<?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>182955</bug_id>
          
          <creation_ts>2018-02-19 23:22:45 -0800</creation_ts>
          <short_desc>Introduce HAVE(IOSURFACE_ACCELERATOR)</short_desc>
          <delta_ts>2018-02-20 17:32:33 -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="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>aestes</cc>
    
    <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1400677</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2018-02-19 23:22:45 -0800</bug_when>
    <thetext>Introduce HAVE(IOSURFACE_ACCELERATOR)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1400678</commentid>
    <comment_count>1</comment_count>
      <attachid>334245</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2018-02-19 23:23:28 -0800</bug_when>
    <thetext>Created attachment 334245
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1400685</commentid>
    <comment_count>2</comment_count>
      <attachid>334248</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2018-02-19 23:41:40 -0800</bug_when>
    <thetext>Created attachment 334248
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1400686</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-02-19 23:41:45 -0800</bug_when>
    <thetext>&lt;rdar://problem/37699510&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1400857</commentid>
    <comment_count>4</comment_count>
      <attachid>334289</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2018-02-20 11:52:58 -0800</bug_when>
    <thetext>Created attachment 334289
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1400931</commentid>
    <comment_count>5</comment_count>
      <attachid>334309</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2018-02-20 15:50:28 -0800</bug_when>
    <thetext>Created attachment 334309
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1400935</commentid>
    <comment_count>6</comment_count>
      <attachid>334311</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2018-02-20 15:56:55 -0800</bug_when>
    <thetext>Created attachment 334311
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1400936</commentid>
    <comment_count>7</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2018-02-20 15:57:10 -0800</bug_when>
    <thetext>EWS is thwarting my attempts to test this</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1400952</commentid>
    <comment_count>8</comment_count>
      <attachid>334318</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2018-02-20 16:40:05 -0800</bug_when>
    <thetext>Created attachment 334318
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1400975</commentid>
    <comment_count>9</comment_count>
      <attachid>334318</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-02-20 17:32:31 -0800</bug_when>
    <thetext>Comment on attachment 334318
Patch

Clearing flags on attachment: 334318

Committed r228853: &lt;https://trac.webkit.org/changeset/228853&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1400976</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-02-20 17:32:33 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>334245</attachid>
            <date>2018-02-19 23:23:28 -0800</date>
            <delta_ts>2018-02-19 23:41:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-182955-20180219232327.patch</filename>
            <type>text/plain</type>
            <size>32820</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI4NzA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDhmOGY5MDNiNGExMzBlOGEzNmE3OWI5
NTIyNTEzMzUzODVjMTBmY2IuLjRkNThmZDRhNDEyYTU0ZTI5ODJkOWE4NDE4YjUwNzU3NmZiMmRh
MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTgtMDItMTkgIFRpbSBIb3J0b24gIDx0aW1vdGh5
X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgSW50cm9kdWNlIEhBVkUoSU9TVVJGQUNFX0FD
Q0VMRVJBVE9SKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTgyOTU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiB3dGYvUGxhdGZvcm0uaDoKKwogMjAxOC0wMi0xNiAgRGVhbiBKYWNrc29uICA8ZGlub0Bh
cHBsZS5jb20+CiAKICAgICAgICAgVXNlIE9QRU5HTCBtYWNyb3MgdG8gYmUgbW9yZSBjbGVhciBh
Ym91dCB3aGljaCBPcGVuR0wvRVMgV2ViR0wgdXNlcyBvbiBDb2NvYQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDQw
NmNjNDMwYzU4YTRlYzVjMmIyODkxMjNjNTY5MWZjOGFkMmNkYjQuLjBiNGNjNWFkOWM5OWQ5MGRj
NDM4MGY3YmRjNDA5ZDZlN2IzYjdkMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAx
OC0wMi0xOSAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAg
ICBJbnRyb2R1Y2UgSEFWRShJT1NVUkZBQ0VfQUNDRUxFUkFUT1IpCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODI5NTUKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGNoYW5nZSBp
biBiZWhhdmlvci4KKworICAgICAgICBJbnRyb2R1Y2UgSEFWRShJT1NVUkZBQ0VfQUNDRUxFUkFU
T1IpIGFuZCBndWFyZCBhbGwgdXNlcyBvZgorICAgICAgICBJT1N1cmZhY2VBY2NlbGVyYXRvciBi
ZWhpbmQgaXQuCisKKyAgICAgICAgUmVuYW1lIFVTRShJT1NVUkZBQ0UpIHRvIEhBVkUoSU9TVVJG
QUNFKSBmb3IgYWNjdXJhY3kuCisKKyAgICAgICAgKiBwYWdlL2NvY29hL01lbW9yeVJlbGVhc2VD
b2NvYS5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlQ29udHJvbGxlci5j
cHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSU9TdXJmYWNlUG9vbC5jcHA6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSU9TdXJmYWNlUG9vbC5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL0lPU3VyZmFjZS5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9JT1N1cmZhY2VQb29sQ29jb2EubW06CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY3Yv
VmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2N2
L1ZpZGVvVGV4dHVyZUNvcGllckNWLmg6CisKIDIwMTgtMDItMTkgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBDcmFzaFRyYWNlcjogY29tLmFwcGxlLldlYktpdC5X
ZWJDb250ZW50IGF0IFdlYkNvcmU6IFdlYkNvcmU6OlRpbWVyQmFzZTo6flRpbWVyQmFzZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9DaGFuZ2VMb2cKaW5kZXggOWRkNDZlYjEwNzU4YjQ1Mzg0NzRlODE4YjNmMjQxOTZkMjRlNmNm
Yi4uZmMzZDkxMzBlMjQwODA1MWJjNzYwMjIxYjYwNDRiOTM5MTU1ZjMxMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTgtMDItMTkgIFRpbSBIb3J0b24gIDx0aW1vdGh5
X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgSW50cm9kdWNlIEhBVkUoSU9TVVJGQUNFX0FD
Q0VMRVJBVE9SKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTgyOTU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBwYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oOgorICAgICAgICAqIHBhbC9zcGkvY29j
b2EvSU9TdXJmYWNlU1BJLmg6CisgICAgICAgICogcGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJ
Lmg6CisKIDIwMTgtMDItMTUgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+
CiAKICAgICAgICAgU3RvcCB1c2luZyBFWENMVURFRF9TT1VSQ0VfRklMRV9OQU1FUyBmb3IgYWN0
dWFsIHNvdXJjZSBmaWxlcyBpbiBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDkxMWM1N2ZhOTM1MWE5ZTlk
NzFjZTAxYTJjNDI4MjllNzVjY2JhODguLjcxNjFlZjIyNDU2ZDdlNTAyOTlmNTk0YjFkM2Y5N2Ix
YTlhZmFlNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTgtMDItMTkgIFRpbSBIb3J0
b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgSW50cm9kdWNlIEhBVkUo
SU9TVVJGQUNFX0FDQ0VMRVJBVE9SKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTgyOTU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBTaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2lu
Z1N0b3JlLmg6CisgICAgICAgICogU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJh
Y2tpbmdTdG9yZS5tbToKKyAgICAgICAgKiBTaGFyZWQvY2cvU2hhcmVhYmxlQml0bWFwQ0cuY3Bw
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAq
IFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94
eS5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJl
ZUhvc3QubW06CisgICAgICAgICogVUlQcm9jZXNzL21hYy9WaWV3U25hcHNob3RTdG9yZS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvVmlld1NuYXBzaG90U3RvcmUubW06CisKIDIwMTgtMDIt
MTkgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIE51bGwgcG9p
bnRlciBkZXJlZmVyZW5jZSBpbiBXZWJQYWdlUHJveHk6OnVybFNjaGVtZUhhbmRsZXJGb3JTY2hl
bWUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtLmgKaW5kZXggZWE3OWExNTA5MTdhNjc1NTQ4NzU3ODZiZGVlNTgzMzczNzg0
M2JjYS4uYzAyYjY2ZDA3ODBmNzRiZTZlNGEzYmYzYTZkMDk5MzA1NDZlOTE2YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bS5oCkBAIC0xMjA0LDcgKzEyMDQsMTEgQEAKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0Ep
ICYmICFQTEFURk9STShJT1NfU0lNVUxBVE9SKQotI2RlZmluZSBVU0VfSU9TVVJGQUNFIDEKKyNk
ZWZpbmUgSEFWRV9JT1NVUkZBQ0UgMQorI2VuZGlmCisKKyNpZiBQTEFURk9STShJT1MpICYmICFQ
TEFURk9STShJT1NfU0lNVUxBVE9SKQorI2RlZmluZSBIQVZFX0lPU1VSRkFDRV9BQ0NFTEVSQVRP
UiAxCiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaAppbmRleCA4NDdmNDU5YmFiOWYzMzlhMWQ0
OWE5M2JmYTY4MGU5YmNlMzJiNmMxLi43NjliYzM5NzhlN2ZjNWRmNGJlODg0OTJhZDQ1M2QzYmFk
NWY0MzU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZy9Db3JlR3Jh
cGhpY3NTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZy9Db3JlR3JhcGhp
Y3NTUEkuaApAQCAtMjgsNyArMjgsNyBAQAogI2luY2x1ZGUgPENvcmVGb3VuZGF0aW9uL0NvcmVG
b3VuZGF0aW9uLmg+CiAjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NvcmVHcmFwaGljcy5oPgogCi0j
aWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKICNpbmNsdWRlIDxwYWwvc3Bp
L2NvY29hL0lPU3VyZmFjZVNQSS5oPgogI2VuZGlmCiAKQEAgLTI0OSw3ICsyNDksNyBAQCBib29s
IENHQ29udGV4dEdldEFsbG93c0ZvbnRTdWJwaXhlbFBvc2l0aW9uaW5nKENHQ29udGV4dFJlZik7
CiBib29sIENHQ29udGV4dERyYXdzV2l0aENvcnJlY3RTaGFkb3dPZmZzZXRzKENHQ29udGV4dFJl
Zik7CiBDR1BhdHRlcm5SZWYgQ0dQYXR0ZXJuQ3JlYXRlV2l0aEltYWdlMihDR0ltYWdlUmVmLCBD
R0FmZmluZVRyYW5zZm9ybSwgQ0dQYXR0ZXJuVGlsaW5nKTsKIAotI2lmIFVTRShJT1NVUkZBQ0Up
CisjaWYgSEFWRShJT1NVUkZBQ0UpCiBDR0NvbnRleHRSZWYgQ0dJT1N1cmZhY2VDb250ZXh0Q3Jl
YXRlKElPU3VyZmFjZVJlZiwgc2l6ZV90LCBzaXplX3QsIHNpemVfdCwgc2l6ZV90LCBDR0NvbG9y
U3BhY2VSZWYsIENHQml0bWFwSW5mbyk7CiBDR0ltYWdlUmVmIENHSU9TdXJmYWNlQ29udGV4dENy
ZWF0ZUltYWdlKENHQ29udGV4dFJlZik7CiBDR0ltYWdlUmVmIENHSU9TdXJmYWNlQ29udGV4dENy
ZWF0ZUltYWdlUmVmZXJlbmNlKENHQ29udGV4dFJlZik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL3NwaS9jb2NvYS9JT1N1cmZhY2VTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvc3BpL2NvY29hL0lPU3VyZmFjZVNQSS5oCmluZGV4IGU3MmY0ZDI2NzQzOWI5ZmI1NWY0
OTkwMjViNTkyYmExMzA2OTY5ZmYuLjgyYTNkNjJmZDIxODk2MmY2OGI3MjI4MDVlNTIzMWRlMzVh
YTk0ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0lPU3Vy
ZmFjZVNQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0lPU3VyZmFj
ZVNQSS5oCkBAIC0yNSw3ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaWYgIVBMQVRGT1JN
KElPU19TSU1VTEFUT1IpCisjaWYgSEFWRShJT1NVUkZBQ0UpCiAKICNpZiBQTEFURk9STShNQUMp
IHx8IFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAKQEAgLTExMyw3ICsxMTMsNyBAQCBJT1JldHVy
biBJT1N1cmZhY2VTZXRQdXJnZWFibGUoSU9TdXJmYWNlUmVmIGJ1ZmZlciwgdWludDMyX3QgbmV3
U3RhdGUsIHVpbnQzMl90CiAKIFdURl9FWFRFUk5fQ19FTkQKIAotI2lmIFBMQVRGT1JNKElPUykK
KyNpZiBIQVZFKElPU1VSRkFDRV9BQ0NFTEVSQVRPUikKICNpZiBVU0UoQVBQTEVfSU5URVJOQUxf
U0RLKQogCiAjaW1wb3J0IDxJT1N1cmZhY2VBY2NlbGVyYXRvci9JT1N1cmZhY2VBY2NlbGVyYXRv
ci5oPgpAQCAtMTI4LDYgKzEyOCw4IEBAIHR5cGVkZWYgc3RydWN0IF9fSU9TdXJmYWNlQWNjZWxl
cmF0b3IgKklPU3VyZmFjZUFjY2VsZXJhdG9yUmVmOwogCiBXVEZfRVhURVJOX0NfQkVHSU4KIAor
ZXh0ZXJuIGNvbnN0IENGU3RyaW5nUmVmIGtJT1N1cmZhY2VBY2NlbGVyYXRvclVud2lyZVN1cmZh
Y2VLZXk7CisKIElPUmV0dXJuIElPU3VyZmFjZUFjY2VsZXJhdG9yQ3JlYXRlKENGQWxsb2NhdG9y
UmVmLCBDRkRpY3Rpb25hcnlSZWYgcHJvcGVydGllcywgSU9TdXJmYWNlQWNjZWxlcmF0b3JSZWYq
IGFjY2VsZXJhdG9yT3V0KTsKIENGUnVuTG9vcFNvdXJjZVJlZiBJT1N1cmZhY2VBY2NlbGVyYXRv
ckdldFJ1bkxvb3BTb3VyY2UoSU9TdXJmYWNlQWNjZWxlcmF0b3JSZWYpOwogCkBAIC0xNDQsNiAr
MTQ2LDYgQEAgSU9SZXR1cm4gSU9TdXJmYWNlQWNjZWxlcmF0b3JUcmFuc2Zvcm1TdXJmYWNlKElP
U3VyZmFjZUFjY2VsZXJhdG9yUmVmLCBJT1N1cmZhY2UKIFdURl9FWFRFUk5fQ19FTkQKIAogI2Vu
ZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCi0jZW5kaWYgLy8gUExBVEZPUk0oSU9TKQor
I2VuZGlmIC8vIEhBVkUoSU9TVVJGQUNFX0FDQ0VMRVJBVE9SKQogCi0jZW5kaWYgLy8gIVBMQVRG
T1JNKElPU19TSU1VTEFUT1IpCisjZW5kaWYgLy8gSEFWRShJT1NVUkZBQ0UpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmgKaW5kZXggZmY5NmMw
YjU4MmZlMzE4NzFjOGE0ZDMyMDExNTU4MjE1ODQ1M2ViZC4uOTcxZDBiY2I4ZjBjYzM4MGFmZjY4
ZDRjMTRiYzk1OGFkOTkyMjkwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9z
cGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3Bp
L2NvY29hL1F1YXJ0ekNvcmVTUEkuaApAQCAtMTcwLDcgKzE3MCw3IEBAIFdURl9FWFRFUk5fQ19C
RUdJTgogI2lmICFVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogdm9pZCBDQVJlbmRlclNlcnZlckNh
cHR1cmVMYXllcldpdGhUcmFuc2Zvcm0obWFjaF9wb3J0X3QsIHVpbnQzMl90IGNsaWVudElkLCB1
aW50NjRfdCBsYXllcklkLCB1aW50MzJfdCBzbG90SWQsIGludDMyX3Qgb3gsIGludDMyX3Qgb3ks
IGNvbnN0IENBVHJhbnNmb3JtM0QqKTsKIAotI2lmIFVTRShJT1NVUkZBQ0UpCisjaWYgSEFWRShJ
T1NVUkZBQ0UpCiB2b2lkIENBUmVuZGVyU2VydmVyUmVuZGVyTGF5ZXJXaXRoVHJhbnNmb3JtKG1h
Y2hfcG9ydF90IHNlcnZlcl9wb3J0LCB1aW50MzJfdCBjbGllbnRfaWQsIHVpbnQ2NF90IGxheWVy
X2lkLCBJT1N1cmZhY2VSZWYsIGludDMyX3Qgb3gsIGludDMyX3Qgb3ksIGNvbnN0IENBVHJhbnNm
b3JtM0QqKTsKIHZvaWQgQ0FSZW5kZXJTZXJ2ZXJSZW5kZXJEaXNwbGF5TGF5ZXJXaXRoVHJhbnNm
b3JtQW5kVGltZU9mZnNldChtYWNoX3BvcnRfdCwgQ0ZTdHJpbmdSZWYgZGlzcGxheV9uYW1lLCB1
aW50MzJfdCBjbGllbnRfaWQsIHVpbnQ2NF90IGxheWVyX2lkLCBJT1N1cmZhY2VSZWYsIGludDMy
X3Qgb3gsIGludDMyX3Qgb3ksIGNvbnN0IENBVHJhbnNmb3JtM0QqLCBDRlRpbWVJbnRlcnZhbCk7
CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9NZW1vcnlSZWxl
YXNlQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL01lbW9yeVJlbGVhc2VDb2Nv
YS5tbQppbmRleCBiMzdiNWNiZTY0ZjQxNjI0MmRlOGFjZjQxZGQ2NTY0ZTA3N2ZhNjgxLi4yMDZl
YWZhNWQ2NGFjNzdkYTgwNDA3NmYyNjNkM2E2NTJiNWUwYzA4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2NvY29hL01lbW9yeVJlbGVhc2VDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL2NvY29hL01lbW9yeVJlbGVhc2VDb2NvYS5tbQpAQCAtNTYsNyArNTYsNyBAQCB2
b2lkIHBsYXRmb3JtUmVsZWFzZU1lbW9yeShDcml0aWNhbCkKICAgICB0aWxlQ29udHJvbGxlck1l
bW9yeUhhbmRsZXIoKS50cmltVW5wYXJlbnRlZFRpbGVzVG9UYXJnZXQoMCk7CiAjZW5kaWYKIAot
I2lmIFVTRShJT1NVUkZBQ0UpCisjaWYgSEFWRShJT1NVUkZBQ0UpCiAgICAgSU9TdXJmYWNlUG9v
bDo6c2hhcmVkUG9vbCgpLmRpc2NhcmRBbGxTdXJmYWNlcygpOwogI2VuZGlmCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlQ29udHJvbGxlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlQ29udHJvbGxlci5j
cHAKaW5kZXggYTMzMDJhOWEwN2M0YzFlMzM0OThiMTI4YzRiNWVmNjMzMmYxMTM2My4uZWMzYWU0
ZjFjZjZlN2ZhY2Q4NTllYTdlZTM3NjJmYjY2NTAwNzI1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGlsZUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVDb250cm9sbGVyLmNwcApAQCAtMzgs
NyArMzgsNyBAQAogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvVGV4dFN0cmVhbS5oPgogCi0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFD
RSkKICNpbmNsdWRlICJJT1N1cmZhY2UuaCIKICNlbmRpZgogCkBAIC01MzQsNyArNTM0LDcgQEAg
SW50U2l6ZSBUaWxlQ29udHJvbGxlcjo6dGlsZVNpemUoKSBjb25zdAogICAgIGNvbnN0IGludCBr
TG93ZXN0Q29tbW9uRGVub21pbmF0b3JNYXhUaWxlU2l6ZSA9IDQgKiAxMDI0OwogICAgIEludFNp
emUgbWF4VGlsZVNpemUoa0xvd2VzdENvbW1vbkRlbm9taW5hdG9yTWF4VGlsZVNpemUsIGtMb3dl
c3RDb21tb25EZW5vbWluYXRvck1heFRpbGVTaXplKTsKIAotI2lmIFVTRShJT1NVUkZBQ0UpCisj
aWYgSEFWRShJT1NVUkZBQ0UpCiAgICAgSW50U2l6ZSBzdXJmYWNlU2l6ZUxpbWl0ID0gSU9TdXJm
YWNlOjptYXhpbXVtU2l6ZSgpOwogICAgIHN1cmZhY2VTaXplTGltaXQuc2NhbGUoMSAvIG1fZGV2
aWNlU2NhbGVGYWN0b3IpOwogICAgIG1heFRpbGVTaXplID0gbWF4VGlsZVNpemUuc2hydW5rVG8o
c3VyZmFjZVNpemVMaW1pdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jZy9JT1N1cmZhY2VQb29sLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NnL0lPU3VyZmFjZVBvb2wuY3BwCmluZGV4IGUzZjA3M2U5NWVmMTUxZmEyZDY4YTdj
ZmRlZTI2OTQwNjY3MjEyYTQuLjFiMGUxYjYxZjI4M2ZlNTMyN2Y1OTVkN2QzNjgwNGZhMjhjMDEy
OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0lPU3Vy
ZmFjZVBvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0lP
U3VyZmFjZVBvb2wuY3BwCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiSU9TdXJmYWNlUG9vbC5oIgogCi0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZF
KElPU1VSRkFDRSkKIAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dENHLmgiCiAjaW5jbHVkZSA8
Q29yZUdyYXBoaWNzL0NvcmVHcmFwaGljcy5oPgpAQCAtMzgzLDQgKzM4Myw0IEBAIHZvaWQgSU9T
dXJmYWNlUG9vbDo6c2hvd1Bvb2xTdGF0aXN0aWNzKGNvbnN0IGNoYXIqIHJlYXNvbikKIH0KIAog
fQotI2VuZGlmIC8vIFVTRShJT1NVUkZBQ0UpCisjZW5kaWYgLy8gSEFWRShJT1NVUkZBQ0UpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JT1N1cmZhY2VQ
b29sLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JT1N1cmZhY2VQb29s
LmgKaW5kZXggZGY0YmVjN2ZkOTg4MGRhOTk0OTlhN2UzMTQ0MWRhMGI3Mzc4OTFkZC4uOTJiOGRi
OWQxOGNmOWMwM2I0M2YwN2Q1MjllNWI2MGE0MThiYzM3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSU9TdXJmYWNlUG9vbC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0lPU3VyZmFjZVBvb2wuaApAQCAtMjUsNyArMjUs
NyBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2lmIFVTRShJT1NVUkZBQ0UpCisjaWYgSEFWRShJT1NV
UkZBQ0UpCiAKICNpbmNsdWRlICJJT1N1cmZhY2UuaCIKICNpbmNsdWRlICJJbnRTaXplLmgiCkBA
IC0xMDMsNCArMTAzLDQgQEAgcHJpdmF0ZToKIH07CiAKIH0KLSNlbmRpZiAvLyBVU0UoSU9TVVJG
QUNFKQorI2VuZGlmIC8vIEhBVkUoSU9TVVJGQUNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHLmNwcAppbmRleCA4MjRmOWY3NDBk
ZDNlMDFhYzI5NjYwZmVjYWM2OGM3NzNjYzU1OGY5Li5mNDg1YTM0MTRlNWQwZWVmZWVkY2E4NzVi
NWUzMzBhYmY2MDBkZGM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jZy9JbWFnZUJ1ZmZlckNHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHLmNwcApAQCAtNzksNyArNzksNyBAQCBzdGQ6OnVuaXF1
ZV9wdHI8SW1hZ2VCdWZmZXI+IEltYWdlQnVmZmVyOjpjcmVhdGVDb21wYXRpYmxlQnVmZmVyKGNv
bnN0IEZsb2F0U2l6ZQogICAgIGNhc2Uga0NHQ29udGV4dFR5cGVCaXRtYXA6CiAgICAgICAgIGNv
bG9yU3BhY2UgPSBDR0JpdG1hcENvbnRleHRHZXRDb2xvclNwYWNlKGNnQ29udGV4dCk7CiAgICAg
ICAgIGJyZWFrOwotI2lmIFVTRShJT1NVUkZBQ0UpCisjaWYgSEFWRShJT1NVUkZBQ0UpCiAgICAg
Y2FzZSBrQ0dDb250ZXh0VHlwZUlPU3VyZmFjZToKICAgICAgICAgY29sb3JTcGFjZSA9IENHSU9T
dXJmYWNlQ29udGV4dEdldENvbG9yU3BhY2UoY2dDb250ZXh0KTsKICAgICAgICAgYnJlYWs7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZh
Y2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5o
CmluZGV4IGI1N2FlOTc4NjRiMzVlODdjMDZhMTc0ZDk5YWRlOGJlMzA3MjMwOTcuLmUyYjRhMTg5
OWQ3M2JkODZiZTk2OTFkZTlhNjY4OWMyOGUyN2I1OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5oCkBAIC0yNSw3ICsyNSw3IEBA
CiAKICNwcmFnbWEgb25jZQogCi0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFD
RSkKIAogI2luY2x1ZGUgPG9iamMvb2JqYy5oPgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5o
IgpAQCAtMTM0LDEwICsxMzQsMTAgQEAgcHVibGljOgogICAgIC8vIGFuIGFjY3VyYXRlIHJlc3Vs
dCBmcm9tIGlzSW5Vc2UoKSwgaXQgbmVlZHMgdG8gYmUgcmVsZWFzZWQuCiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCByZWxlYXNlR3JhcGhpY3NDb250ZXh0KCk7CiAKLSNpZiBQTEFURk9STShJT1Mp
CisjaWYgSEFWRShJT1NVUkZBQ0VfQUNDRUxFUkFUT1IpCiAgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIGJvb2wgYWxsb3dDb252ZXJzaW9uRnJvbUZvcm1hdFRvRm9ybWF0KEZvcm1hdCwgRm9ybWF0
KTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBjb252ZXJ0VG9Gb3JtYXQoc3RkOjp1
bmlxdWVfcHRyPFdlYkNvcmU6OklPU3VyZmFjZT4mJiBpblN1cmZhY2UsIEZvcm1hdCwgV1RGOjpG
dW5jdGlvbjx2b2lkKHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJT1N1cmZhY2U+KT4mJik7Ci0j
ZW5kaWYKKyNlbmRpZiAvLyBIQVZFKElPU1VSRkFDRV9BQ0NFTEVSQVRPUikKIAogICAgIHZvaWQg
bWlncmF0ZUNvbG9yU3BhY2VUb1Byb3BlcnRpZXMoKTsKIApAQCAtMTY0LDUgKzE2NCw1IEBAIFdF
QkNPUkVfRVhQT1JUIFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0m
LCBjb25zdCBXZWJDb3JlOjpJT1N1CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlm
IC8vIFVTRShJT1NVUkZBQ0UpCisjZW5kaWYgLy8gSEFWRShJT1NVUkZBQ0UpCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5tbQppbmRl
eCA1NDJhZTA0ZGMwOWM5NjllYzYxOTRkNWViN2Y1YzIwOWVjMzg2ZGFkLi5jYjA3YWY3NGEwYThj
Nzg2MTVkNDI3NjA0OGJlMTA1MjRjZmIxNGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1tCkBAIC0yNiw3ICsyNiw3IEBACiAj
aW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIklPU3VyZmFjZS5oIgogCi0jaWYgVVNFKElPU1VS
RkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKIAogI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0Q0cu
aCIKICNpbXBvcnQgIklPU3VyZmFjZVBvb2wuaCIKQEAgLTQwLDExICs0MCw2IEBACiAjaW1wb3J0
IDx3dGYvTWF0aEV4dHJhcy5oPgogI2ltcG9ydCA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgogCi0j
aWYgUExBVEZPUk0oSU9TKQotLy8gTW92ZSB0aGlzIGludG8gdGhlIFNQSSBoZWFkZXIgb25jZSBp
dCdzIHBvc3NpYmxlIHRvIHB1dCBpbnNpZGUgdGhlIEFQUExFX0lOVEVSTkFMX1NESyBibG9jay4K
LU5TU3RyaW5nICogY29uc3QgV2ViSU9TdXJmYWNlQWNjZWxlcmF0b3JVbndpcmVTdXJmYWNlS2V5
ID0gQCJVbndpcmVTdXJmYWNlIjsKLSNlbmRpZgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGlu
bGluZSBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiBJT1N1cmZhY2U6OnN1cmZhY2VGcm9tUG9v
bChJbnRTaXplIHNpemUsIEludFNpemUgY29udGV4dFNpemUsIENHQ29sb3JTcGFjZVJlZiBjb2xv
clNwYWNlLCBGb3JtYXQgcGl4ZWxGb3JtYXQpCkBAIC0zODgsNyArMzgzLDggQEAgdm9pZCBJT1N1
cmZhY2U6OnJlbGVhc2VHcmFwaGljc0NvbnRleHQoKQogICAgIG1fY2dDb250ZXh0ID0gbnVsbHB0
cjsKIH0KIAotI2lmIFBMQVRGT1JNKElPUykKKyNpZiBIQVZFKElPU1VSRkFDRV9BQ0NFTEVSQVRP
UikKKwogYm9vbCBJT1N1cmZhY2U6OmFsbG93Q29udmVyc2lvbkZyb21Gb3JtYXRUb0Zvcm1hdChG
b3JtYXQgc291cmNlRm9ybWF0LCBGb3JtYXQgZGVzdEZvcm1hdCkKIHsKICAgICBpZiAoKHNvdXJj
ZUZvcm1hdCA9PSBGb3JtYXQ6OlJHQjEwIHx8IHNvdXJjZUZvcm1hdCA9PSBGb3JtYXQ6OlJHQjEw
QTgpICYmIGRlc3RGb3JtYXQgPT0gRm9ybWF0OjpZVVY0MjIpCkBAIC00MzAsMTIgKzQyNiwxMyBA
QCB2b2lkIElPU3VyZmFjZTo6Y29udmVydFRvRm9ybWF0KHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZh
Y2U+JiYgaW5TdXJmYWNlLCBGb3JtYXQgZgogICAgICAgICBkZWxldGUgY2FsbGJhY2s7CiAgICAg
fTsKIAotICAgIE5TRGljdGlvbmFyeSAqb3B0aW9ucyA9IEB7IFdlYklPU3VyZmFjZUFjY2VsZXJh
dG9yVW53aXJlU3VyZmFjZUtleSA6IEBZRVMgfTsKKyAgICBOU0RpY3Rpb25hcnkgKm9wdGlvbnMg
PSBAeyBrSU9TdXJmYWNlQWNjZWxlcmF0b3JVbndpcmVTdXJmYWNlS2V5IDogQFlFUyB9OwogCiAg
ICAgSU9SZXR1cm4gcmV0ID0gSU9TdXJmYWNlQWNjZWxlcmF0b3JUcmFuc2Zvcm1TdXJmYWNlKGFj
Y2VsZXJhdG9yLCBpblN1cmZhY2UtPnN1cmZhY2UoKSwgZGVzdGluYXRpb25JT1N1cmZhY2VSZWYs
IChDRkRpY3Rpb25hcnlSZWYpb3B0aW9ucywgbnVsbHB0ciwgJmNvbXBsZXRpb24sIG51bGxwdHIs
IG51bGxwdHIpOwogICAgIEFTU0VSVF9VTlVTRUQocmV0LCByZXQgPT0ga0lPUmV0dXJuU3VjY2Vz
cyk7CiB9Ci0jZW5kaWYgLy8gUExBVEZPUk0oSU9TKQorCisjZW5kaWYgLy8gSEFWRShJT1NVUkZB
Q0VfQUNDRUxFUkFUT1IpCiAKIHZvaWQgSU9TdXJmYWNlOjptaWdyYXRlQ29sb3JTcGFjZVRvUHJv
cGVydGllcygpCiB7CkBAIC00ODIsNCArNDc5LDQgQEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChU
ZXh0U3RyZWFtJiB0cywgY29uc3QgSU9TdXJmYWNlJiBzdXJmYWNlKQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBVU0UoSU9TVVJGQUNFKQorI2VuZGlmIC8vIEhBVkUoSU9T
VVJGQUNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvSU9TdXJmYWNlUG9vbENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvSU9TdXJmYWNlUG9vbENvY29hLm1tCmluZGV4IDRhZDVkMmUwYjczNWU1NmY5MmI1
ZjhkNTllMTljZmY0YmEzZjIyZjIuLmZiMTNmMWNlNmYyNDBiZDNjOWJiNTg4ZWZkM2FiYTg2NTk1
MDMzNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0lPU3VyZmFjZVBvb2xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9JT1N1cmZhY2VQb29sQ29jb2EubW0KQEAgLTI2LDcgKzI2LDcgQEAKICNpbXBv
cnQgImNvbmZpZy5oIgogI2ltcG9ydCAiSU9TdXJmYWNlUG9vbC5oIgogCi0jaWYgVVNFKElPU1VS
RkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKIAogI2luY2x1ZGUgPFF1YXJ0ekNvcmUvUXVhcnR6
Q29yZS5oPgogCkBAIC00MCw0ICs0MCw0IEBAIHZvaWQgSU9TdXJmYWNlUG9vbDo6cGxhdGZvcm1H
YXJiYWdlQ29sbGVjdE5vdygpCiAKIH0KIAotI2VuZGlmIC8vIFVTRShJT1NVUkZBQ0UpCisjZW5k
aWYgLy8gSEFWRShJT1NVUkZBQ0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jdi9WaWRlb1RleHR1cmVDb3BpZXJDVi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1RleHR1cmVDb3BpZXJDVi5jcHAKaW5kZXggZjY3Nzll
NmI5NmY2M2I4OGZlY2I2OGVhYTE5NjBhZWVhM2ZhZThhYi4uYTE2NGQ1YmZkYTc2ODJhOWE5ODFj
NjRiMTk3NDljMDIxYWQyNzZiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvVGV4dHVyZUNvcGllckNWLmNwcApAQCAtNDEsNyAr
NDEsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSNpZiBVU0UoSU9TVVJGQUNFKQorI2lm
IEhBVkUoSU9TVVJGQUNFKQogZW51bSBjbGFzcyBQaXhlbFJhbmdlIHsKICAgICBVbmtub3duLAog
ICAgIFZpZGVvLApAQCAtMzY4LDcgKzM2OCw3IEBAIHN0YXRpYyBjb25zdCBWZWN0b3I8R0xmbG9h
dD4gWUNiQ3JUb1JHQk1hdHJpeEZvclJhbmdlQW5kVHJhbnNmZXJGdW5jdGlvbihQaXhlbFJhCiAg
ICAgQVNTRVJUKGl0ZXJhdG9yICE9IG1hdHJpY2VzLmdldCgpLmVuZCgpKTsKICAgICByZXR1cm4g
aXRlcmF0b3ItPnNlY29uZDsKIH0KLSNlbmRpZiAvLyBVU0UoSU9TVVJGQUNFKQorI2VuZGlmIC8v
IEhBVkUoSU9TVVJGQUNFKQogCiBWaWRlb1RleHR1cmVDb3BpZXJDVjo6VmlkZW9UZXh0dXJlQ29w
aWVyQ1YoR3JhcGhpY3NDb250ZXh0M0QmIGNvbnRleHQpCiAgICAgOiBtX3NoYXJlZENvbnRleHQo
Y29udGV4dCkKQEAgLTcyOCw3ICs3MjgsNyBAQCBib29sIFZpZGVvVGV4dHVyZUNvcGllckNWOjpj
b3B5SW1hZ2VUb1BsYXRmb3JtVGV4dHVyZShDVlBpeGVsQnVmZmVyUmVmIGltYWdlLCBzaQogICAg
ICAgICByZXR1cm4gY29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKHRleHR1cmUuZ2V0
KCksIHdpZHRoLCBoZWlnaHQsIG91dHB1dFRleHR1cmUsIG91dHB1dFRhcmdldCwgbGV2ZWwsIGlu
dGVybmFsRm9ybWF0LCBmb3JtYXQsIHR5cGUsIHByZW11bHRpcGx5QWxwaGEsIGZsaXBZLCBzd2Fw
Q29sb3JDaGFubmVscyk7CiAgICAgfQogCi0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElP
U1VSRkFDRSkKICAgICAvLyBGSVhNRTogVGhpcyBjdXJyZW50bHkgb25seSBzdXBwb3J0cyAnNDIw
dicgYW5kICc0MjBmJyBwaXhlbCBmb3JtYXRzLiBJbnZlc3RpZ2F0ZSBzdXBwb3J0aW5nIG1vcmUg
cGl4ZWwgZm9ybWF0cy4KICAgICBPU1R5cGUgcGl4ZWxGb3JtYXQgPSBDVlBpeGVsQnVmZmVyR2V0
UGl4ZWxGb3JtYXRUeXBlKGltYWdlKTsKICAgICBpZiAocGl4ZWxGb3JtYXQgIT0ga0NWUGl4ZWxG
b3JtYXRUeXBlXzQyMFlwQ2JDcjhCaVBsYW5hclZpZGVvUmFuZ2UgJiYgcGl4ZWxGb3JtYXQgIT0g
a0NWUGl4ZWxGb3JtYXRUeXBlXzQyMFlwQ2JDcjhCaVBsYW5hckZ1bGxSYW5nZSkgewpAQCAtODQ2
LDcgKzg0Niw3IEBAIGJvb2wgVmlkZW9UZXh0dXJlQ29waWVyQ1Y6OmNvcHlJbWFnZVRvUGxhdGZv
cm1UZXh0dXJlKENWUGl4ZWxCdWZmZXJSZWYgaW1hZ2UsIHNpCiAgICAgcmV0dXJuIHRydWU7CiAj
ZWxzZQogICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZiAvLyBVU0UoSU9TVVJGQUNFKQorI2VuZGlm
IC8vIEhBVkUoSU9TVVJGQUNFKQogfQogCiBib29sIFZpZGVvVGV4dHVyZUNvcGllckNWOjpjb3B5
VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoVGV4dHVyZVR5cGUgaW5wdXRWaWRlb1RleHR1
cmUsIHNpemVfdCB3aWR0aCwgc2l6ZV90IGhlaWdodCwgUGxhdGZvcm0zRE9iamVjdCBvdXRwdXRU
ZXh0dXJlLCBHQzNEZW51bSBvdXRwdXRUYXJnZXQsIEdDM0RpbnQgbGV2ZWwsIEdDM0RlbnVtIGlu
dGVybmFsRm9ybWF0LCBHQzNEZW51bSBmb3JtYXQsIEdDM0RlbnVtIHR5cGUsIGJvb2wgcHJlbXVs
dGlwbHlBbHBoYSwgYm9vbCBmbGlwWSwgYm9vbCBzd2FwQ29sb3JDaGFubmVscykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvVGV4dHVyZUNvcGll
ckNWLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1RleHR1cmVD
b3BpZXJDVi5oCmluZGV4IGMzNTQxYWFkM2Y4ZDM0MzM3YTc4MDJjN2NhMjFiNThhZGU2NDdhNjEu
LjQ3MmY5ZjE2MTE4ODc5ODlmMDI1Njk4YjA3NWNlMjU4YzYxMzVmOTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvVGV4dHVyZUNvcGllckNWLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29w
aWVyQ1YuaApAQCAtNjAsNyArNjAsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgaW5pdGlhbGl6ZUNv
bnRleHRPYmplY3RzKCk7CiAgICAgYm9vbCBpbml0aWFsaXplVVZDb250ZXh0T2JqZWN0cygpOwog
Ci0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKICAgICB1bnNpZ25lZCBs
YXN0VGV4dHVyZVNlZWQoR0MzRHVpbnQgdGV4dHVyZSkKICAgICB7CiAgICAgICAgIGF1dG8gaXRl
cmF0b3IgPSBtX2xhc3RUZXh0dXJlU2VlZC5maW5kKHRleHR1cmUpOwpAQCAtOTAsNyArOTAsNyBA
QCBwcml2YXRlOgogICAgIEdDM0RpbnQgbV95VGV4dHVyZVNpemVVbmlmb3JtTG9jYXRpb24geyAt
MSB9OwogICAgIEdDM0RpbnQgbV91dlRleHR1cmVTaXplVW5pZm9ybUxvY2F0aW9uIHsgLTEgfTsK
IAotI2lmIFVTRShJT1NVUkZBQ0UpCisjaWYgSEFWRShJT1NVUkZBQ0UpCiAgICAgYm9vbCBtX2xh
c3RGbGlwWSB7IGZhbHNlIH07CiAgICAgVW5zYWZlUG9pbnRlcjxJT1N1cmZhY2VSZWY+IG1fbGFz
dFN1cmZhY2U7CiAgICAgdWludDMyX3QgbV9sYXN0U3VyZmFjZVNlZWQgeyAwIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNr
aW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVM
YXllckJhY2tpbmdTdG9yZS5oCmluZGV4IDI4YTQ5ODA1N2I4ZTQxNzNjYjIzOTBiZmM3NWVhZTdh
NWQzMGE5YzAuLjg4NWIwNmM3ZWFiY2JkMWU1MzZjN2E5MmZiOGMxYTY5MWE0YWVjMmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJh
Y2tpbmdTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVMYXllckJhY2tpbmdTdG9yZS5oCkBAIC03NSw3ICs3NSw3IEBAIHB1YmxpYzoKIAogICAg
IGJvb2wgaGFzRnJvbnRCdWZmZXIoKSBjb25zdAogICAgIHsKLSNpZiBVU0UoSU9TVVJGQUNFKQor
I2lmIEhBVkUoSU9TVVJGQUNFKQogICAgICAgICBpZiAobV9hY2NlbGVyYXRlc0RyYXdpbmcpCiAg
ICAgICAgICAgICByZXR1cm4gISFtX2Zyb250QnVmZmVyLnN1cmZhY2U7CiAjZW5kaWYKQEAgLTk5
LDcgKzk5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNsZWFyQmFja2luZ1N0b3JlKCk7CiAgICAg
dm9pZCBzd2FwVG9WYWxpZEZyb250QnVmZmVyKCk7CiAKLSNpZiBVU0UoSU9TVVJGQUNFKQorI2lm
IEhBVkUoSU9TVVJGQUNFKQogICAgIFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0IHN1cmZhY2VC
dWZmZXJGb3JtYXQoKSBjb25zdDsKICNlbmRpZgogCkBAIC0xMTUsMTQgKzExNSwxNCBAQCBwcml2
YXRlOgogCiAgICAgc3RydWN0IEJ1ZmZlciB7CiAgICAgICAgIFJlZlB0cjxTaGFyZWFibGVCaXRt
YXA+IGJpdG1hcDsKLSNpZiBVU0UoSU9TVVJGQUNFKQorI2lmIEhBVkUoSU9TVVJGQUNFKQogICAg
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPiBzdXJmYWNlOwogICAgICAg
ICBib29sIGlzVm9sYXRpbGUgPSBmYWxzZTsKICNlbmRpZgogCiAgICAgICAgIGV4cGxpY2l0IG9w
ZXJhdG9yIGJvb2woKSBjb25zdAogICAgICAgICB7Ci0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBI
QVZFKElPU1VSRkFDRSkKICAgICAgICAgICAgIGlmIChzdXJmYWNlKQogICAgICAgICAgICAgICAg
IHJldHVybiB0cnVlOwogI2VuZGlmCkBAIC0xMzcsNyArMTM3LDcgQEAgcHJpdmF0ZToKIAogICAg
IEJ1ZmZlciBtX2Zyb250QnVmZmVyOwogICAgIEJ1ZmZlciBtX2JhY2tCdWZmZXI7Ci0jaWYgVVNF
KElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKICAgICBCdWZmZXIgbV9zZWNvbmRhcnlC
YWNrQnVmZmVyOwogICAgIFdlYkNvcmU6Ok1hY2hTZW5kUmlnaHQgbV9mcm9udEJ1ZmZlclNlbmRS
aWdodDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5
ZXJUcmVlL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tCmluZGV4IDQwN2Y3NTZh
NTUyODhkOGMzMjRmNjQ1M2U5OGRjZjZlMzY0N2ZkZTQuLjA0ZWJjZDZjYzQzMjg5MzAyMTYzNzJk
MmFhN2JiNWU5MDdkOGY2YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90
ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0KQEAgLTQw
LDcgKzQwLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvV2ViTGF5ZXIuaD4KICNpbXBvcnQgPHBhbC9z
cGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oPgogCi0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZF
KElPU1VSRkFDRSkKICNpbXBvcnQgPG1hY2gvbWFjaF9wb3J0Lmg+CiAjZW5kaWYKIApAQCAtNzIs
NyArNzIsNyBAQCBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6flJlbW90ZUxheWVyQmFja2luZ1N0
b3JlKCkKIAogdm9pZCBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6ZW5zdXJlQmFja2luZ1N0b3Jl
KEZsb2F0U2l6ZSBzaXplLCBmbG9hdCBzY2FsZSwgYm9vbCBhY2NlbGVyYXRlc0RyYXdpbmcsIGJv
b2wgZGVlcENvbG9yLCBib29sIGlzT3BhcXVlKQogewotI2lmICFVU0UoSU9TVVJGQUNFKQorI2lm
ICFIQVZFKElPU1VSRkFDRSkKICAgICBhY2NlbGVyYXRlc0RyYXdpbmcgPSBmYWxzZTsKICNlbmRp
ZgogICAgIGlmIChtX3NpemUgPT0gc2l6ZSAmJiBtX3NjYWxlID09IHNjYWxlICYmIG1fZGVlcENv
bG9yID09IGRlZXBDb2xvciAmJiBtX2FjY2VsZXJhdGVzRHJhd2luZyA9PSBhY2NlbGVyYXRlc0Ry
YXdpbmcgJiYgbV9pc09wYXF1ZSA9PSBpc09wYXF1ZSkKQEAgLTk3LDcgKzk3LDcgQEAgdm9pZCBS
ZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6Y2xlYXJCYWNraW5nU3RvcmUoKQogewogICAgIG1fZnJv
bnRCdWZmZXIuZGlzY2FyZCgpOwogICAgIG1fYmFja0J1ZmZlci5kaXNjYXJkKCk7Ci0jaWYgVVNF
KElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKICAgICBtX3NlY29uZGFyeUJhY2tCdWZm
ZXIuZGlzY2FyZCgpOwogI2VuZGlmCiB9CkBAIC0xMDksNyArMTA5LDcgQEAgdm9pZCBSZW1vdGVM
YXllckJhY2tpbmdTdG9yZTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAg
ICBlbmNvZGVyIDw8IG1fYWNjZWxlcmF0ZXNEcmF3aW5nOwogICAgIGVuY29kZXIgPDwgbV9pc09w
YXF1ZTsKIAotI2lmIFVTRShJT1NVUkZBQ0UpCisjaWYgSEFWRShJT1NVUkZBQ0UpCiAgICAgaWYg
KG1fYWNjZWxlcmF0ZXNEcmF3aW5nKSB7CiAgICAgICAgIGlmIChtX2Zyb250QnVmZmVyLnN1cmZh
Y2UpCiAgICAgICAgICAgICBlbmNvZGVyIDw8IG1fZnJvbnRCdWZmZXIuc3VyZmFjZS0+Y3JlYXRl
U2VuZFJpZ2h0KCk7CkBAIC0xNDAsNyArMTQwLDcgQEAgYm9vbCBSZW1vdGVMYXllckJhY2tpbmdT
dG9yZTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgUmVtb3RlTGF5ZXJCYWNraW5nU3QK
ICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX2lzT3BhcXVlKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCi0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKICAg
ICBpZiAocmVzdWx0Lm1fYWNjZWxlcmF0ZXNEcmF3aW5nKSB7CiAgICAgICAgIE1hY2hTZW5kUmln
aHQgc2VuZFJpZ2h0OwogICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNlbmRSaWdodCkpCkBA
IC0xNzksNyArMTc5LDcgQEAgSW50U2l6ZSBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6YmFja2lu
Z1N0b3JlU2l6ZSgpIGNvbnN0CiAKIHVuc2lnbmVkIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpi
eXRlc1BlclBpeGVsKCkgY29uc3QKIHsKLSNpZiBVU0UoSU9TVVJGQUNFKQorI2lmIEhBVkUoSU9T
VVJGQUNFKQogICAgIHN3aXRjaCAoc3VyZmFjZUJ1ZmZlckZvcm1hdCgpKSB7CiAgICAgY2FzZSBX
ZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdDo6UkdCQTogcmV0dXJuIDQ7CiAgICAgY2FzZSBXZWJD
b3JlOjpJT1N1cmZhY2U6OkZvcm1hdDo6WVVWNDIyOiByZXR1cm4gMjsKQEAgLTE5NCw3ICsxOTQs
NyBAQCB2b2lkIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpzd2FwVG9WYWxpZEZyb250QnVmZmVy
KCkKIHsKICAgICBJbnRTaXplIGV4cGFuZGVkU2NhbGVkU2l6ZSA9IGJhY2tpbmdTdG9yZVNpemUo
KTsKIAotI2lmIFVTRShJT1NVUkZBQ0UpCisjaWYgSEFWRShJT1NVUkZBQ0UpCiAgICAgaWYgKG1f
YWNjZWxlcmF0ZXNEcmF3aW5nKSB7CiAgICAgICAgIGlmICghbV9iYWNrQnVmZmVyLnN1cmZhY2Ug
fHwgbV9iYWNrQnVmZmVyLnN1cmZhY2UtPmlzSW5Vc2UoKSkgewogICAgICAgICAgICAgc3RkOjpz
d2FwKG1fYmFja0J1ZmZlciwgbV9zZWNvbmRhcnlCYWNrQnVmZmVyKTsKQEAgLTI1NCw3ICsyNTQs
NyBAQCBib29sIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpkaXNwbGF5KCkKIAogICAgIHN3YXBU
b1ZhbGlkRnJvbnRCdWZmZXIoKTsKIAotI2lmIFVTRShJT1NVUkZBQ0UpCisjaWYgSEFWRShJT1NV
UkZBQ0UpCiAgICAgaWYgKG1fYWNjZWxlcmF0ZXNEcmF3aW5nKSB7CiAgICAgICAgIFJldGFpblB0
cjxDR0ltYWdlUmVmPiBiYWNrSW1hZ2U7CiAgICAgICAgIGlmIChtX2JhY2tCdWZmZXIuc3VyZmFj
ZSAmJiAhd2lsbFBhaW50RW50aXJlQmFja2luZ1N0b3JlKQpAQCAtMzk5LDcgKzM5OSw3IEBAIHZv
aWQgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmFwcGx5QmFja2luZ1N0b3JlVG9MYXllcihDQUxh
eWVyICpsYXllciwgTGF5ZXJDb250CiB7CiAgICAgbGF5ZXIuY29udGVudHNPcGFxdWUgPSBtX2lz
T3BhcXVlOwogCi0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKICAgICBp
ZiAoYWNjZWxlcmF0ZXNEcmF3aW5nKCkpIHsKICAgICAgICAgc3dpdGNoIChjb250ZW50c1R5cGUp
IHsKICAgICAgICAgY2FzZSBMYXllckNvbnRlbnRzVHlwZTo6SU9TdXJmYWNlOgpAQCAtNDI3LDcg
KzQyNyw3IEBAIFJldGFpblB0cjxDR0NvbnRleHRSZWY+IFJlbW90ZUxheWVyQmFja2luZ1N0b3Jl
Ojp0YWtlRnJvbnRDb250ZXh0UGVuZGluZ0ZsdXNoKCkKICAgICByZXR1cm4gV1RGTW92ZShtX2Zy
b250Q29udGV4dFBlbmRpbmdGbHVzaCk7CiB9CiAKLSNpZiBVU0UoSU9TVVJGQUNFKQorI2lmIEhB
VkUoSU9TVVJGQUNFKQogYm9vbCBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6c2V0QnVmZmVyVm9s
YXRpbGl0eShCdWZmZXJUeXBlIHR5cGUsIGJvb2wgaXNWb2xhdGlsZSkKIHsKICAgICBzd2l0Y2gg
KHR5cGUpIHsKQEAgLTQ4MCw3ICs0ODAsNyBAQCBib29sIFJlbW90ZUxheWVyQmFja2luZ1N0b3Jl
OjpzZXRCdWZmZXJWb2xhdGlsaXR5KEJ1ZmZlclR5cGUsIGJvb2wpCiAKIHZvaWQgUmVtb3RlTGF5
ZXJCYWNraW5nU3RvcmU6OkJ1ZmZlcjo6ZGlzY2FyZCgpCiB7Ci0jaWYgVVNFKElPU1VSRkFDRSkK
KyNpZiBIQVZFKElPU1VSRkFDRSkKICAgICBpZiAoc3VyZmFjZSkKICAgICAgICAgV2ViQ29yZTo6
SU9TdXJmYWNlOjptb3ZlVG9Qb29sKFdURk1vdmUoc3VyZmFjZSkpOwogICAgIGlzVm9sYXRpbGUg
PSBmYWxzZTsKQEAgLTQ4OCw3ICs0ODgsNyBAQCB2b2lkIFJlbW90ZUxheWVyQmFja2luZ1N0b3Jl
OjpCdWZmZXI6OmRpc2NhcmQoKQogICAgIGJpdG1hcCA9IG51bGxwdHI7CiB9CiAKLSNpZiBVU0Uo
SU9TVVJGQUNFKQorI2lmIEhBVkUoSU9TVVJGQUNFKQogV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3Jt
YXQgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OnN1cmZhY2VCdWZmZXJGb3JtYXQoKSBjb25zdAog
ewogICAgIGlmIChtX2RlZXBDb2xvcikKQEAgLTQ5Niw2ICs0OTYsNiBAQCBXZWJDb3JlOjpJT1N1
cmZhY2U6OkZvcm1hdCBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6c3VyZmFjZUJ1ZmZlckZvcm1h
dCgpIGNvbnN0CiAKICAgICByZXR1cm4gV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3JtYXQ6OlJHQkE7
CiB9Ci0jZW5kaWYgLy8gVVNFKElPU1VSRkFDRSkKKyNlbmRpZiAvLyBIQVZFKElPU1VSRkFDRSkK
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9jZy9TaGFyZWFibGVCaXRtYXBDRy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jZy9TaGFy
ZWFibGVCaXRtYXBDRy5jcHAKaW5kZXggMzgwNjIxNzc2ZDcxOWI4YTQwYTlkMmVkNmFlMGE0NjVk
NjgzMDNmZi4uNDFiMmZlYTMyYjE1M2YzYmY0ZmVmNjU5MmUyOWUyMzU0MmU2NTQ1ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvY2cvU2hhcmVhYmxlQml0bWFwQ0cuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL2NnL1NoYXJlYWJsZUJpdG1hcENHLmNwcApAQCAtNzMsNyAr
NzMsNyBAQCBzdGF0aWMgQ0dCaXRtYXBJbmZvIGJpdG1hcEluZm8oY29uc3QgU2hhcmVhYmxlQml0
bWFwOjpDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aQogQ2hlY2tlZDx1bnNpZ25lZCwgUmVjb3Jk
T3ZlcmZsb3c+IFNoYXJlYWJsZUJpdG1hcDo6Y2FsY3VsYXRlQnl0ZXNQZXJSb3coV2ViQ29yZTo6
SW50U2l6ZSBzaXplLCBjb25zdCBDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKQogewogICAg
IHVuc2lnbmVkIGJ5dGVzUGVyUm93ID0gY2FsY3VsYXRlQnl0ZXNQZXJQaXhlbChjb25maWd1cmF0
aW9uKSAqIHNpemUud2lkdGgoKTsKLSNpZiBVU0UoSU9TVVJGQUNFKQorI2lmIEhBVkUoSU9TVVJG
QUNFKQogICAgIHJldHVybiBJT1N1cmZhY2VBbGlnblByb3BlcnR5KGtJT1N1cmZhY2VCeXRlc1Bl
clJvdywgYnl0ZXNQZXJSb3cpOwogI2Vsc2UKICAgICByZXR1cm4gYnl0ZXNQZXJSb3c7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCAyMGU0
Y2Y0OWQyNDhjNjFmZjY1MTI1ZmNhZDMwMmZhNmUyNzMzMzZjLi44YzE1M2RiMjVjODVkNTM3ZDg1
MGM2MjFkNjhlOGFmODE5MzRhZjQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTE4NzEsMTMgKzE4NzEsMTQgQEAgLSAoUmVmUHRyPFdl
YktpdDo6Vmlld1NuYXBzaG90PilfdGFrZVZpZXdTbmFwc2hvdAogCiAgICAgQ0FUcmFuc2Zvcm0z
RCB0cmFuc2Zvcm0gPSBDQVRyYW5zZm9ybTNETWFrZVNjYWxlKGRldmljZVNjYWxlLCBkZXZpY2VT
Y2FsZSwgMSk7CiAKLSNpZiBVU0UoSU9TVVJGQUNFKQorI2lmIEhBVkUoSU9TVVJGQUNFKQogICAg
IFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0IHNuYXBzaG90Rm9ybWF0ID0gV2ViQ29yZTo6c2Ny
ZWVuU3VwcG9ydHNFeHRlbmRlZENvbG9yKCkgPyBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdDo6
UkdCMTAgOiBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdDo6UkdCQTsKICAgICBhdXRvIHN1cmZh
Y2UgPSBXZWJDb3JlOjpJT1N1cmZhY2U6OmNyZWF0ZShXZWJDb3JlOjpleHBhbmRlZEludFNpemUo
c25hcHNob3RTaXplKSwgV2ViQ29yZTo6c1JHQkNvbG9yU3BhY2VSZWYoKSwgc25hcHNob3RGb3Jt
YXQpOwogICAgIGlmICghc3VyZmFjZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgQ0FS
ZW5kZXJTZXJ2ZXJSZW5kZXJMYXllcldpdGhUcmFuc2Zvcm0oTUFDSF9QT1JUX05VTEwsIHNlbGYu
bGF5ZXIuY29udGV4dC5jb250ZXh0SWQsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3Q+KHNlbGYu
bGF5ZXIpLCBzdXJmYWNlLT5zdXJmYWNlKCksIDAsIDAsICZ0cmFuc2Zvcm0pOwogCisjaWYgSEFW
RShJT1NVUkZBQ0VfQUNDRUxFUkFUT1IpCiAgICAgV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3JtYXQg
Y29tcHJlc3NlZEZvcm1hdCA9IFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0OjpZVVY0MjI7CiAg
ICAgaWYgKFdlYkNvcmU6OklPU3VyZmFjZTo6YWxsb3dDb252ZXJzaW9uRnJvbUZvcm1hdFRvRm9y
bWF0KHNuYXBzaG90Rm9ybWF0LCBjb21wcmVzc2VkRm9ybWF0KSkgewogICAgICAgICBSZWZQdHI8
V2ViS2l0OjpWaWV3U25hcHNob3Q+IHZpZXdTbmFwc2hvdCA9IFdlYktpdDo6Vmlld1NuYXBzaG90
OjpjcmVhdGUobnVsbHB0cik7CkBAIC0xODg4LDkgKzE4ODksMTAgQEAgLSAoUmVmUHRyPFdlYktp
dDo6Vmlld1NuYXBzaG90PilfdGFrZVZpZXdTbmFwc2hvdAogCiAgICAgICAgIHJldHVybiB2aWV3
U25hcHNob3Q7CiAgICAgfQorI2VuZGlmIC8vIEhBVkUoSU9TVVJGQUNFX0FDQ0VMRVJBVE9SKQog
CiAgICAgcmV0dXJuIFdlYktpdDo6Vmlld1NuYXBzaG90OjpjcmVhdGUoV1RGTW92ZShzdXJmYWNl
KSk7Ci0jZWxzZQorI2Vsc2UgLy8gSEFWRShJT1NVUkZBQ0UpCiAgICAgdWludDMyX3Qgc2xvdElE
ID0gW1dlYktpdDo6Vmlld1NuYXBzaG90U3RvcmU6OnNuYXBzaG90dGluZ0NvbnRleHQoKSBjcmVh
dGVJbWFnZVNsb3Q6c25hcHNob3RTaXplIGhhc0FscGhhOllFU107CiAKICAgICBpZiAoIXNsb3RJ
RCkKQEAgLTE4OTksNyArMTkwMSw3IEBAIC0gKFJlZlB0cjxXZWJLaXQ6OlZpZXdTbmFwc2hvdD4p
X3Rha2VWaWV3U25hcHNob3QKICAgICBDQVJlbmRlclNlcnZlckNhcHR1cmVMYXllcldpdGhUcmFu
c2Zvcm0oTUFDSF9QT1JUX05VTEwsIHNlbGYubGF5ZXIuY29udGV4dC5jb250ZXh0SWQsICh1aW50
NjRfdClzZWxmLmxheWVyLCBzbG90SUQsIDAsIDAsICZ0cmFuc2Zvcm0pOwogICAgIFdlYkNvcmU6
OkludFNpemUgaW1hZ2VTaXplID0gV2ViQ29yZTo6ZXhwYW5kZWRJbnRTaXplKFdlYkNvcmU6OkZs
b2F0U2l6ZShzbmFwc2hvdFNpemUpKTsKICAgICByZXR1cm4gV2ViS2l0OjpWaWV3U25hcHNob3Q6
OmNyZWF0ZShzbG90SUQsIGltYWdlU2l6ZSwgKGltYWdlU2l6ZS5hcmVhKCkgKiA0KS51bnNhZmVH
ZXQoKSk7Ci0jZW5kaWYKKyNlbmRpZiAvLyBIQVZFKElPU1VSRkFDRSkKIH0KIAogLSAodm9pZClf
em9vbVRvUG9pbnQ6KFdlYkNvcmU6OkZsb2F0UG9pbnQpcG9pbnQgYXRTY2FsZTooZG91YmxlKXNj
YWxlIGFuaW1hdGVkOihCT09MKWFuaW1hdGVkCkBAIC01MjYxLDcgKzUyNjMsNyBAQCAtICh2b2lk
KV9zbmFwc2hvdFJlY3Q6KENHUmVjdClyZWN0SW5WaWV3Q29vcmRpbmF0ZXMgaW50b0ltYWdlT2ZX
aWR0aDooQ0dGbG9hdClpbQogICAgIENHRmxvYXQgaW1hZ2VIZWlnaHQgPSBpbWFnZVNjYWxlICog
c25hcHNob3RSZWN0SW5Db250ZW50Q29vcmRpbmF0ZXMuc2l6ZS5oZWlnaHQ7CiAgICAgQ0dTaXpl
IGltYWdlU2l6ZSA9IENHU2l6ZU1ha2UoaW1hZ2VXaWR0aCwgaW1hZ2VIZWlnaHQpOwogCi0jaWYg
VVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKICAgICAvLyBJZiB3ZSBhcmUgcGFy
ZW50ZWQgYW5kIHRodXMgd29uJ3QgaW5jdXIgYSBzaWduaWZpY2FudCBwZW5hbHR5IGZyb20gcGFn
aW5nIGluIHRpbGVzLCBzbmFwc2hvdCB0aGUgdmlldyBoaWVyYXJjaHkgZGlyZWN0bHkuCiAjcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94
eS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCmluZGV4IGUyM2M5ZWUyZjRiMWMxNGExYzA4MDM2NjBm
ZGFhMTQ4MTgwMjMwYzguLjgwOTM2Nzc1OWIwY2MxMGYyOGFkM2U3OGJlN2UxN2U5ODBkZDM0MzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCkBA
IC0xMTAsNyArMTEwLDcgQEAgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6UmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eShXZWJQYWdlUHJveHkmIHcKICAgICA6IERyYXdpbmdB
cmVhUHJveHkoRHJhd2luZ0FyZWFUeXBlUmVtb3RlTGF5ZXJUcmVlLCB3ZWJQYWdlUHJveHkpCiAg
ICAgLCBtX3JlbW90ZUxheWVyVHJlZUhvc3QoKnRoaXMpCiB7Ci0jaWYgVVNFKElPU1VSRkFDRSkK
KyNpZiBIQVZFKElPU1VSRkFDRSkKICAgICAvLyBXZSBkb24ndCB3YW50IHRvIHBvb2wgc3VyZmFj
ZXMgaW4gdGhlIFVJIHByb2Nlc3MuCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBkbyB0aGlzIHNv
bWV3aGVyZSBlbHNlLgogICAgIElPU3VyZmFjZVBvb2w6OnNoYXJlZFBvb2woKS5zZXRQb29sU2l6
ZSgwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJl
ZS9SZW1vdGVMYXllclRyZWVIb3N0Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3Rl
TGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZUhvc3QubW0KaW5kZXggYzg3ZDc1MmM3MTY2NWFhZDZk
NDUyNDQ5YjU2M2IxNDlmZjc4NzU2Mi4uOWRmMWRjZmIyMTljYWI3ZTRiMTE4NDc4Nzg0M2M1OThi
MTA1NmM5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZUxheWVyVHJlZUhvc3QubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZUhvc3QubW0KQEAgLTI4OSw3ICsyODksNyBA
QCB2b2lkIFJlbW90ZUxheWVyVHJlZUhvc3Q6OmRldGFjaFJvb3RMYXllcigpCiAgICAgbV9yb290
TGF5ZXIgPSBudWxscHRyOwogfQogCi0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VS
RkFDRSkKIHN0YXRpYyB2b2lkIHJlY3Vyc2l2ZWx5TWFwSU9TdXJmYWNlQmFja2luZ1N0b3JlKENB
TGF5ZXIgKmxheWVyKQogewogICAgIGlmIChsYXllci5jb250ZW50cyAmJiBDRkdldFR5cGVJRChs
YXllci5jb250ZW50cykgPT0gQ0FNYWNoUG9ydEdldFR5cGVJRCgpKSB7CkBAIC0zMDUsNyArMzA1
LDcgQEAgc3RhdGljIHZvaWQgcmVjdXJzaXZlbHlNYXBJT1N1cmZhY2VCYWNraW5nU3RvcmUoQ0FM
YXllciAqbGF5ZXIpCiAKIHZvaWQgUmVtb3RlTGF5ZXJUcmVlSG9zdDo6bWFwQWxsSU9TdXJmYWNl
QmFja2luZ1N0b3JlKCkKIHsKLSNpZiBVU0UoSU9TVVJGQUNFKQorI2lmIEhBVkUoSU9TVVJGQUNF
KQogICAgIHJlY3Vyc2l2ZWx5TWFwSU9TdXJmYWNlQmFja2luZ1N0b3JlKGFzTGF5ZXIobV9yb290
TGF5ZXIpKTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
bWFjL1ZpZXdTbmFwc2hvdFN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVmll
d1NuYXBzaG90U3RvcmUuaAppbmRleCA3MGI1ODc5YWIyZjNhOWRlZjg2NWYzOTVkMDk1OGM2NmZj
ZTVmMjM1Li5hZmVkMzMyMzhjYzg2NTEwZGMyNTcwZjBmNTNmZTIxZDIyNDVmNzdkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVmlld1NuYXBzaG90U3RvcmUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVmlld1NuYXBzaG90U3RvcmUuaApAQCAtNTMs
NyArNTMsNyBAQCBjbGFzcyBXZWJQYWdlUHJveHk7CiAKIGNsYXNzIFZpZXdTbmFwc2hvdCA6IHB1
YmxpYyBSZWZDb3VudGVkPFZpZXdTbmFwc2hvdD4gewogcHVibGljOgotI2lmIFVTRShJT1NVUkZB
Q0UpCisjaWYgSEFWRShJT1NVUkZBQ0UpCiAgICAgc3RhdGljIFJlZjxWaWV3U25hcHNob3Q+IGNy
ZWF0ZShzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPik7CiAjZWxzZQogICAgIHN0
YXRpYyBSZWY8Vmlld1NuYXBzaG90PiBjcmVhdGUodWludDMyX3Qgc2xvdElELCBXZWJDb3JlOjpJ
bnRTaXplLCBzaXplX3QgaW1hZ2VTaXplSW5CeXRlcyk7CkBAIC03OCw3ICs3OCw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldERldmljZVNjYWxlRmFjdG9yKGZsb2F0IGRldmljZVNjYWxlRmFjdG9y
KSB7IG1fZGV2aWNlU2NhbGVGYWN0b3IgPSBkZXZpY2VTY2FsZUZhY3RvcjsgfQogICAgIGZsb2F0
IGRldmljZVNjYWxlRmFjdG9yKCkgY29uc3QgeyByZXR1cm4gbV9kZXZpY2VTY2FsZUZhY3Rvcjsg
fQogCi0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKICAgICBXZWJDb3Jl
OjpJT1N1cmZhY2UqIHN1cmZhY2UoKSBjb25zdCB7IHJldHVybiBtX3N1cmZhY2UuZ2V0KCk7IH0K
IAogICAgIHNpemVfdCBpbWFnZVNpemVJbkJ5dGVzKCkgY29uc3QgeyByZXR1cm4gbV9zdXJmYWNl
ID8gbV9zdXJmYWNlLT50b3RhbEJ5dGVzKCkgOiAwOyB9CkBAIC05Myw3ICs5Myw3IEBAIHB1Ymxp
YzoKICNlbmRpZgogCiBwcml2YXRlOgotI2lmIFVTRShJT1NVUkZBQ0UpCisjaWYgSEFWRShJT1NV
UkZBQ0UpCiAgICAgZXhwbGljaXQgVmlld1NuYXBzaG90KHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3Jl
OjpJT1N1cmZhY2U+KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJT1N1cmZhY2U+
IG1fc3VyZmFjZTsKQEAgLTEyNyw3ICsxMjcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXREaXNh
YmxlU25hcHNob3RWb2xhdGlsaXR5Rm9yVGVzdGluZyhib29sIGRpc2FibGUpIHsgbV9kaXNhYmxl
U25hcHNob3RWb2xhdGlsaXR5ID0gZGlzYWJsZTsgfQogICAgIGJvb2wgZGlzYWJsZVNuYXBzaG90
Vm9sYXRpbGl0eUZvclRlc3RpbmcoKSBjb25zdCB7IHJldHVybiBtX2Rpc2FibGVTbmFwc2hvdFZv
bGF0aWxpdHk7IH0KIAotI2lmICFVU0UoSU9TVVJGQUNFKQorI2lmICFIQVZFKElPU1VSRkFDRSkK
ICAgICBzdGF0aWMgQ0FDb250ZXh0ICpzbmFwc2hvdHRpbmdDb250ZXh0KCk7CiAjZW5kaWYKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1ZpZXdTbmFwc2hvdFN0b3Jl
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1ZpZXdTbmFwc2hvdFN0b3JlLm1tCmlu
ZGV4IGFlZjdjMzM2MjIxMWIxOGVkY2U4NTIxMzY1N2I5YTUxMzdlNmJlMTEuLjg2ZGFlNWY3MTg1
YTI3N2E5OWE0MzQ2MTg4NjA2MGIxZTRhOWJjNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL21hYy9WaWV3U25hcHNob3RTdG9yZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9tYWMvVmlld1NuYXBzaG90U3RvcmUubW0KQEAgLTYwLDcgKzYwLDcgQEAgVmlld1Nu
YXBzaG90U3RvcmUmIFZpZXdTbmFwc2hvdFN0b3JlOjpzaW5nbGV0b24oKQogICAgIHJldHVybiBz
dG9yZTsKIH0KIAotI2lmICFVU0UoSU9TVVJGQUNFKQorI2lmICFIQVZFKElPU1VSRkFDRSkKIENB
Q29udGV4dCAqVmlld1NuYXBzaG90U3RvcmU6OnNuYXBzaG90dGluZ0NvbnRleHQoKQogewogICAg
IHN0YXRpYyBDQUNvbnRleHQgKmNvbnRleHQ7CkBAIC0xMzEsNyArMTMxLDcgQEAgdm9pZCBWaWV3
U25hcHNob3RTdG9yZTo6ZGlzY2FyZFNuYXBzaG90SW1hZ2VzKCkKICAgICAgICAgbV9zbmFwc2hv
dHNXaXRoSW1hZ2VzLmZpcnN0KCktPmNsZWFySW1hZ2UoKTsKIH0KIAotI2lmIFVTRShJT1NVUkZB
Q0UpCisjaWYgSEFWRShJT1NVUkZBQ0UpCiBSZWY8Vmlld1NuYXBzaG90PiBWaWV3U25hcHNob3Q6
OmNyZWF0ZShzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPiBzdXJmYWNlKQogewog
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFZpZXdTbmFwc2hvdChXVEZNb3ZlKHN1cmZhY2UpKSk7
CkBAIC0xNDMsNyArMTQzLDcgQEAgUmVmPFZpZXdTbmFwc2hvdD4gVmlld1NuYXBzaG90OjpjcmVh
dGUodWludDMyX3Qgc2xvdElELCBJbnRTaXplIHNpemUsIHNpemVfdCBpbWEKIH0KICNlbmRpZgog
Ci0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKIFZpZXdTbmFwc2hvdDo6
Vmlld1NuYXBzaG90KHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJT1N1cmZhY2U+IHN1cmZhY2Up
CiAgICAgOiBtX3N1cmZhY2UoV1RGTW92ZShzdXJmYWNlKSkKICNlbHNlCkBAIC0xNjIsNyArMTYy
LDcgQEAgVmlld1NuYXBzaG90Ojp+Vmlld1NuYXBzaG90KCkKICAgICBjbGVhckltYWdlKCk7CiB9
CiAKLSNpZiBVU0UoSU9TVVJGQUNFKQorI2lmIEhBVkUoSU9TVVJGQUNFKQogdm9pZCBWaWV3U25h
cHNob3Q6OnNldFN1cmZhY2Uoc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3VyZmFjZT4gc3Vy
ZmFjZSkKIHsKICAgICBBU1NFUlQoIW1fc3VyZmFjZSk7CkBAIC0xNzgsNyArMTc4LDcgQEAgdm9p
ZCBWaWV3U25hcHNob3Q6OnNldFN1cmZhY2Uoc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3Vy
ZmFjZT4gc3VyZmFjZSkKIAogYm9vbCBWaWV3U25hcHNob3Q6Omhhc0ltYWdlKCkgY29uc3QKIHsK
LSNpZiBVU0UoSU9TVVJGQUNFKQorI2lmIEhBVkUoSU9TVVJGQUNFKQogICAgIHJldHVybiAhIW1f
c3VyZmFjZTsKICNlbHNlCiAgICAgcmV0dXJuIG1fc2xvdElEOwpAQCAtMTkyLDcgKzE5Miw3IEBA
IHZvaWQgVmlld1NuYXBzaG90OjpjbGVhckltYWdlKCkKIAogICAgIFZpZXdTbmFwc2hvdFN0b3Jl
OjpzaW5nbGV0b24oKS53aWxsUmVtb3ZlSW1hZ2VGcm9tU25hcHNob3QoKnRoaXMpOwogCi0jaWYg
VVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKICAgICBtX3N1cmZhY2UgPSBudWxs
cHRyOwogI2Vsc2UKICAgICBbVmlld1NuYXBzaG90U3RvcmU6OnNuYXBzaG90dGluZ0NvbnRleHQo
KSBkZWxldGVTbG90Om1fc2xvdElEXTsKQEAgLTIwMSw3ICsyMDEsNyBAQCB2b2lkIFZpZXdTbmFw
c2hvdDo6Y2xlYXJJbWFnZSgpCiAjZW5kaWYKIH0KIAotI2lmIFVTRShJT1NVUkZBQ0UpCisjaWYg
SEFWRShJT1NVUkZBQ0UpCiBXZWJDb3JlOjpJT1N1cmZhY2U6OlN1cmZhY2VTdGF0ZSBWaWV3U25h
cHNob3Q6OnNldFZvbGF0aWxlKGJvb2wgYmVjb21lVm9sYXRpbGUpCiB7CiAgICAgaWYgKFZpZXdT
bmFwc2hvdFN0b3JlOjpzaW5nbGV0b24oKS5kaXNhYmxlU25hcHNob3RWb2xhdGlsaXR5Rm9yVGVz
dGluZygpKQpAQCAtMjE2LDcgKzIxNiw3IEBAIFdlYkNvcmU6OklPU3VyZmFjZTo6U3VyZmFjZVN0
YXRlIFZpZXdTbmFwc2hvdDo6c2V0Vm9sYXRpbGUoYm9vbCBiZWNvbWVWb2xhdGlsZSkKIAogaWQg
Vmlld1NuYXBzaG90Ojphc0xheWVyQ29udGVudHMoKQogewotI2lmIFVTRShJT1NVUkZBQ0UpCisj
aWYgSEFWRShJT1NVUkZBQ0UpCiAgICAgaWYgKCFtX3N1cmZhY2UpCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwogCkBAIC0yMzMsNyArMjMzLDcgQEAgaWQgVmlld1NuYXBzaG90Ojphc0xheWVyQ29u
dGVudHMoKQogCiBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gVmlld1NuYXBzaG90Ojphc0ltYWdlRm9y
VGVzdGluZygpCiB7Ci0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKICAg
ICBpZiAoIW1fc3VyZmFjZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>334248</attachid>
            <date>2018-02-19 23:41:40 -0800</date>
            <delta_ts>2018-02-20 11:52:57 -0800</delta_ts>
            <desc>patch</desc>
            <filename>bug-182955-20180219232327.patch</filename>
            <type>text/plain</type>
            <size>32824</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI4NzA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDhmOGY5MDNiNGExMzBlOGEzNmE3OWI5
NTIyNTEzMzUzODVjMTBmY2IuLjRkNThmZDRhNDEyYTU0ZTI5ODJkOWE4NDE4YjUwNzU3NmZiMmRh
MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTgtMDItMTkgIFRpbSBIb3J0b24gIDx0aW1vdGh5
X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgSW50cm9kdWNlIEhBVkUoSU9TVVJGQUNFX0FD
Q0VMRVJBVE9SKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTgyOTU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiB3dGYvUGxhdGZvcm0uaDoKKwogMjAxOC0wMi0xNiAgRGVhbiBKYWNrc29uICA8ZGlub0Bh
cHBsZS5jb20+CiAKICAgICAgICAgVXNlIE9QRU5HTCBtYWNyb3MgdG8gYmUgbW9yZSBjbGVhciBh
Ym91dCB3aGljaCBPcGVuR0wvRVMgV2ViR0wgdXNlcyBvbiBDb2NvYQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDQw
NmNjNDMwYzU4YTRlYzVjMmIyODkxMjNjNTY5MWZjOGFkMmNkYjQuLjBiNGNjNWFkOWM5OWQ5MGRj
NDM4MGY3YmRjNDA5ZDZlN2IzYjdkMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAx
OC0wMi0xOSAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAg
ICBJbnRyb2R1Y2UgSEFWRShJT1NVUkZBQ0VfQUNDRUxFUkFUT1IpCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODI5NTUKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGNoYW5nZSBp
biBiZWhhdmlvci4KKworICAgICAgICBJbnRyb2R1Y2UgSEFWRShJT1NVUkZBQ0VfQUNDRUxFUkFU
T1IpIGFuZCBndWFyZCBhbGwgdXNlcyBvZgorICAgICAgICBJT1N1cmZhY2VBY2NlbGVyYXRvciBi
ZWhpbmQgaXQuCisKKyAgICAgICAgUmVuYW1lIFVTRShJT1NVUkZBQ0UpIHRvIEhBVkUoSU9TVVJG
QUNFKSBmb3IgYWNjdXJhY3kuCisKKyAgICAgICAgKiBwYWdlL2NvY29hL01lbW9yeVJlbGVhc2VD
b2NvYS5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlQ29udHJvbGxlci5j
cHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSU9TdXJmYWNlUG9vbC5jcHA6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSU9TdXJmYWNlUG9vbC5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL0lPU3VyZmFjZS5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9JT1N1cmZhY2VQb29sQ29jb2EubW06CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY3Yv
VmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2N2
L1ZpZGVvVGV4dHVyZUNvcGllckNWLmg6CisKIDIwMTgtMDItMTkgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBDcmFzaFRyYWNlcjogY29tLmFwcGxlLldlYktpdC5X
ZWJDb250ZW50IGF0IFdlYkNvcmU6IFdlYkNvcmU6OlRpbWVyQmFzZTo6flRpbWVyQmFzZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9DaGFuZ2VMb2cKaW5kZXggOWRkNDZlYjEwNzU4YjQ1Mzg0NzRlODE4YjNmMjQxOTZkMjRlNmNm
Yi4uZmMzZDkxMzBlMjQwODA1MWJjNzYwMjIxYjYwNDRiOTM5MTU1ZjMxMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTgtMDItMTkgIFRpbSBIb3J0b24gIDx0aW1vdGh5
X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgSW50cm9kdWNlIEhBVkUoSU9TVVJGQUNFX0FD
Q0VMRVJBVE9SKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTgyOTU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBwYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oOgorICAgICAgICAqIHBhbC9zcGkvY29j
b2EvSU9TdXJmYWNlU1BJLmg6CisgICAgICAgICogcGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJ
Lmg6CisKIDIwMTgtMDItMTUgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+
CiAKICAgICAgICAgU3RvcCB1c2luZyBFWENMVURFRF9TT1VSQ0VfRklMRV9OQU1FUyBmb3IgYWN0
dWFsIHNvdXJjZSBmaWxlcyBpbiBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDkxMWM1N2ZhOTM1MWE5ZTlk
NzFjZTAxYTJjNDI4MjllNzVjY2JhODguLjcxNjFlZjIyNDU2ZDdlNTAyOTlmNTk0YjFkM2Y5N2Ix
YTlhZmFlNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTgtMDItMTkgIFRpbSBIb3J0
b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgSW50cm9kdWNlIEhBVkUo
SU9TVVJGQUNFX0FDQ0VMRVJBVE9SKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTgyOTU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBTaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2lu
Z1N0b3JlLmg6CisgICAgICAgICogU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJh
Y2tpbmdTdG9yZS5tbToKKyAgICAgICAgKiBTaGFyZWQvY2cvU2hhcmVhYmxlQml0bWFwQ0cuY3Bw
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAq
IFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94
eS5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJl
ZUhvc3QubW06CisgICAgICAgICogVUlQcm9jZXNzL21hYy9WaWV3U25hcHNob3RTdG9yZS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvVmlld1NuYXBzaG90U3RvcmUubW06CisKIDIwMTgtMDIt
MTkgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIE51bGwgcG9p
bnRlciBkZXJlZmVyZW5jZSBpbiBXZWJQYWdlUHJveHk6OnVybFNjaGVtZUhhbmRsZXJGb3JTY2hl
bWUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtLmgKaW5kZXggZWE3OWExNTA5MTdhNjc1NTQ4NzU3ODZiZGVlNTgzMzczNzg0
M2JjYS4uYzAyYjY2ZDA3ODBmNzRiZTZlNGEzYmYzYTZkMDk5MzA1NDZlOTE2YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bS5oCkBAIC0xMjA0LDcgKzEyMDQsMTEgQEAKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0Ep
ICYmICFQTEFURk9STShJT1NfU0lNVUxBVE9SKQotI2RlZmluZSBVU0VfSU9TVVJGQUNFIDEKKyNk
ZWZpbmUgSEFWRV9JT1NVUkZBQ0UgMQorI2VuZGlmCisKKyNpZiBQTEFURk9STShJT1MpICYmICFQ
TEFURk9STShJT1NfU0lNVUxBVE9SKQorI2RlZmluZSBIQVZFX0lPU1VSRkFDRV9BQ0NFTEVSQVRP
UiAxCiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaAppbmRleCA4NDdmNDU5YmFiOWYzMzlhMWQ0
OWE5M2JmYTY4MGU5YmNlMzJiNmMxLi43NjliYzM5NzhlN2ZjNWRmNGJlODg0OTJhZDQ1M2QzYmFk
NWY0MzU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZy9Db3JlR3Jh
cGhpY3NTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZy9Db3JlR3JhcGhp
Y3NTUEkuaApAQCAtMjgsNyArMjgsNyBAQAogI2luY2x1ZGUgPENvcmVGb3VuZGF0aW9uL0NvcmVG
b3VuZGF0aW9uLmg+CiAjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NvcmVHcmFwaGljcy5oPgogCi0j
aWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKICNpbmNsdWRlIDxwYWwvc3Bp
L2NvY29hL0lPU3VyZmFjZVNQSS5oPgogI2VuZGlmCiAKQEAgLTI0OSw3ICsyNDksNyBAQCBib29s
IENHQ29udGV4dEdldEFsbG93c0ZvbnRTdWJwaXhlbFBvc2l0aW9uaW5nKENHQ29udGV4dFJlZik7
CiBib29sIENHQ29udGV4dERyYXdzV2l0aENvcnJlY3RTaGFkb3dPZmZzZXRzKENHQ29udGV4dFJl
Zik7CiBDR1BhdHRlcm5SZWYgQ0dQYXR0ZXJuQ3JlYXRlV2l0aEltYWdlMihDR0ltYWdlUmVmLCBD
R0FmZmluZVRyYW5zZm9ybSwgQ0dQYXR0ZXJuVGlsaW5nKTsKIAotI2lmIFVTRShJT1NVUkZBQ0Up
CisjaWYgSEFWRShJT1NVUkZBQ0UpCiBDR0NvbnRleHRSZWYgQ0dJT1N1cmZhY2VDb250ZXh0Q3Jl
YXRlKElPU3VyZmFjZVJlZiwgc2l6ZV90LCBzaXplX3QsIHNpemVfdCwgc2l6ZV90LCBDR0NvbG9y
U3BhY2VSZWYsIENHQml0bWFwSW5mbyk7CiBDR0ltYWdlUmVmIENHSU9TdXJmYWNlQ29udGV4dENy
ZWF0ZUltYWdlKENHQ29udGV4dFJlZik7CiBDR0ltYWdlUmVmIENHSU9TdXJmYWNlQ29udGV4dENy
ZWF0ZUltYWdlUmVmZXJlbmNlKENHQ29udGV4dFJlZik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL3NwaS9jb2NvYS9JT1N1cmZhY2VTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvc3BpL2NvY29hL0lPU3VyZmFjZVNQSS5oCmluZGV4IGU3MmY0ZDI2NzQzOWI5ZmI1NWY0
OTkwMjViNTkyYmExMzA2OTY5ZmYuLjgyYTNkNjJmZDIxODk2MmY2OGI3MjI4MDVlNTIzMWRlMzVh
YTk0ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0lPU3Vy
ZmFjZVNQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0lPU3VyZmFj
ZVNQSS5oCkBAIC0yNSw3ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaWYgIVBMQVRGT1JN
KElPU19TSU1VTEFUT1IpCisjaWYgSEFWRShJT1NVUkZBQ0UpCiAKICNpZiBQTEFURk9STShNQUMp
IHx8IFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAKQEAgLTExMyw3ICsxMTMsNyBAQCBJT1JldHVy
biBJT1N1cmZhY2VTZXRQdXJnZWFibGUoSU9TdXJmYWNlUmVmIGJ1ZmZlciwgdWludDMyX3QgbmV3
U3RhdGUsIHVpbnQzMl90CiAKIFdURl9FWFRFUk5fQ19FTkQKIAotI2lmIFBMQVRGT1JNKElPUykK
KyNpZiBIQVZFKElPU1VSRkFDRV9BQ0NFTEVSQVRPUikKICNpZiBVU0UoQVBQTEVfSU5URVJOQUxf
U0RLKQogCiAjaW1wb3J0IDxJT1N1cmZhY2VBY2NlbGVyYXRvci9JT1N1cmZhY2VBY2NlbGVyYXRv
ci5oPgpAQCAtMTI4LDYgKzEyOCw4IEBAIHR5cGVkZWYgc3RydWN0IF9fSU9TdXJmYWNlQWNjZWxl
cmF0b3IgKklPU3VyZmFjZUFjY2VsZXJhdG9yUmVmOwogCiBXVEZfRVhURVJOX0NfQkVHSU4KIAor
ZXh0ZXJuIGNvbnN0IENGU3RyaW5nUmVmIGtJT1N1cmZhY2VBY2NlbGVyYXRvclVud2lyZVN1cmZh
Y2VLZXk7CisKIElPUmV0dXJuIElPU3VyZmFjZUFjY2VsZXJhdG9yQ3JlYXRlKENGQWxsb2NhdG9y
UmVmLCBDRkRpY3Rpb25hcnlSZWYgcHJvcGVydGllcywgSU9TdXJmYWNlQWNjZWxlcmF0b3JSZWYq
IGFjY2VsZXJhdG9yT3V0KTsKIENGUnVuTG9vcFNvdXJjZVJlZiBJT1N1cmZhY2VBY2NlbGVyYXRv
ckdldFJ1bkxvb3BTb3VyY2UoSU9TdXJmYWNlQWNjZWxlcmF0b3JSZWYpOwogCkBAIC0xNDQsNiAr
MTQ2LDYgQEAgSU9SZXR1cm4gSU9TdXJmYWNlQWNjZWxlcmF0b3JUcmFuc2Zvcm1TdXJmYWNlKElP
U3VyZmFjZUFjY2VsZXJhdG9yUmVmLCBJT1N1cmZhY2UKIFdURl9FWFRFUk5fQ19FTkQKIAogI2Vu
ZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCi0jZW5kaWYgLy8gUExBVEZPUk0oSU9TKQor
I2VuZGlmIC8vIEhBVkUoSU9TVVJGQUNFX0FDQ0VMRVJBVE9SKQogCi0jZW5kaWYgLy8gIVBMQVRG
T1JNKElPU19TSU1VTEFUT1IpCisjZW5kaWYgLy8gSEFWRShJT1NVUkZBQ0UpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmgKaW5kZXggZmY5NmMw
YjU4MmZlMzE4NzFjOGE0ZDMyMDExNTU4MjE1ODQ1M2ViZC4uOTcxZDBiY2I4ZjBjYzM4MGFmZjY4
ZDRjMTRiYzk1OGFkOTkyMjkwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9z
cGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3Bp
L2NvY29hL1F1YXJ0ekNvcmVTUEkuaApAQCAtMTcwLDcgKzE3MCw3IEBAIFdURl9FWFRFUk5fQ19C
RUdJTgogI2lmICFVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogdm9pZCBDQVJlbmRlclNlcnZlckNh
cHR1cmVMYXllcldpdGhUcmFuc2Zvcm0obWFjaF9wb3J0X3QsIHVpbnQzMl90IGNsaWVudElkLCB1
aW50NjRfdCBsYXllcklkLCB1aW50MzJfdCBzbG90SWQsIGludDMyX3Qgb3gsIGludDMyX3Qgb3ks
IGNvbnN0IENBVHJhbnNmb3JtM0QqKTsKIAotI2lmIFVTRShJT1NVUkZBQ0UpCisjaWYgSEFWRShJ
T1NVUkZBQ0UpCiB2b2lkIENBUmVuZGVyU2VydmVyUmVuZGVyTGF5ZXJXaXRoVHJhbnNmb3JtKG1h
Y2hfcG9ydF90IHNlcnZlcl9wb3J0LCB1aW50MzJfdCBjbGllbnRfaWQsIHVpbnQ2NF90IGxheWVy
X2lkLCBJT1N1cmZhY2VSZWYsIGludDMyX3Qgb3gsIGludDMyX3Qgb3ksIGNvbnN0IENBVHJhbnNm
b3JtM0QqKTsKIHZvaWQgQ0FSZW5kZXJTZXJ2ZXJSZW5kZXJEaXNwbGF5TGF5ZXJXaXRoVHJhbnNm
b3JtQW5kVGltZU9mZnNldChtYWNoX3BvcnRfdCwgQ0ZTdHJpbmdSZWYgZGlzcGxheV9uYW1lLCB1
aW50MzJfdCBjbGllbnRfaWQsIHVpbnQ2NF90IGxheWVyX2lkLCBJT1N1cmZhY2VSZWYsIGludDMy
X3Qgb3gsIGludDMyX3Qgb3ksIGNvbnN0IENBVHJhbnNmb3JtM0QqLCBDRlRpbWVJbnRlcnZhbCk7
CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9NZW1vcnlSZWxl
YXNlQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL01lbW9yeVJlbGVhc2VDb2Nv
YS5tbQppbmRleCBiMzdiNWNiZTY0ZjQxNjI0MmRlOGFjZjQxZGQ2NTY0ZTA3N2ZhNjgxLi4yMDZl
YWZhNWQ2NGFjNzdkYTgwNDA3NmYyNjNkM2E2NTJiNWUwYzA4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2NvY29hL01lbW9yeVJlbGVhc2VDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL2NvY29hL01lbW9yeVJlbGVhc2VDb2NvYS5tbQpAQCAtNTYsNyArNTYsNyBAQCB2
b2lkIHBsYXRmb3JtUmVsZWFzZU1lbW9yeShDcml0aWNhbCkKICAgICB0aWxlQ29udHJvbGxlck1l
bW9yeUhhbmRsZXIoKS50cmltVW5wYXJlbnRlZFRpbGVzVG9UYXJnZXQoMCk7CiAjZW5kaWYKIAot
I2lmIFVTRShJT1NVUkZBQ0UpCisjaWYgSEFWRShJT1NVUkZBQ0UpCiAgICAgSU9TdXJmYWNlUG9v
bDo6c2hhcmVkUG9vbCgpLmRpc2NhcmRBbGxTdXJmYWNlcygpOwogI2VuZGlmCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlQ29udHJvbGxlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlQ29udHJvbGxlci5j
cHAKaW5kZXggYTMzMDJhOWEwN2M0YzFlMzM0OThiMTI4YzRiNWVmNjMzMmYxMTM2My4uZWMzYWU0
ZjFjZjZlN2ZhY2Q4NTllYTdlZTM3NjJmYjY2NTAwNzI1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGlsZUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVDb250cm9sbGVyLmNwcApAQCAtMzgs
NyArMzgsNyBAQAogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvVGV4dFN0cmVhbS5oPgogCi0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFD
RSkKICNpbmNsdWRlICJJT1N1cmZhY2UuaCIKICNlbmRpZgogCkBAIC01MzQsNyArNTM0LDcgQEAg
SW50U2l6ZSBUaWxlQ29udHJvbGxlcjo6dGlsZVNpemUoKSBjb25zdAogICAgIGNvbnN0IGludCBr
TG93ZXN0Q29tbW9uRGVub21pbmF0b3JNYXhUaWxlU2l6ZSA9IDQgKiAxMDI0OwogICAgIEludFNp
emUgbWF4VGlsZVNpemUoa0xvd2VzdENvbW1vbkRlbm9taW5hdG9yTWF4VGlsZVNpemUsIGtMb3dl
c3RDb21tb25EZW5vbWluYXRvck1heFRpbGVTaXplKTsKIAotI2lmIFVTRShJT1NVUkZBQ0UpCisj
aWYgSEFWRShJT1NVUkZBQ0UpCiAgICAgSW50U2l6ZSBzdXJmYWNlU2l6ZUxpbWl0ID0gSU9TdXJm
YWNlOjptYXhpbXVtU2l6ZSgpOwogICAgIHN1cmZhY2VTaXplTGltaXQuc2NhbGUoMSAvIG1fZGV2
aWNlU2NhbGVGYWN0b3IpOwogICAgIG1heFRpbGVTaXplID0gbWF4VGlsZVNpemUuc2hydW5rVG8o
c3VyZmFjZVNpemVMaW1pdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jZy9JT1N1cmZhY2VQb29sLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NnL0lPU3VyZmFjZVBvb2wuY3BwCmluZGV4IGUzZjA3M2U5NWVmMTUxZmEyZDY4YTdj
ZmRlZTI2OTQwNjY3MjEyYTQuLjFiMGUxYjYxZjI4M2ZlNTMyN2Y1OTVkN2QzNjgwNGZhMjhjMDEy
OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0lPU3Vy
ZmFjZVBvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0lP
U3VyZmFjZVBvb2wuY3BwCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiSU9TdXJmYWNlUG9vbC5oIgogCi0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZF
KElPU1VSRkFDRSkKIAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dENHLmgiCiAjaW5jbHVkZSA8
Q29yZUdyYXBoaWNzL0NvcmVHcmFwaGljcy5oPgpAQCAtMzgzLDQgKzM4Myw0IEBAIHZvaWQgSU9T
dXJmYWNlUG9vbDo6c2hvd1Bvb2xTdGF0aXN0aWNzKGNvbnN0IGNoYXIqIHJlYXNvbikKIH0KIAog
fQotI2VuZGlmIC8vIFVTRShJT1NVUkZBQ0UpCisjZW5kaWYgLy8gSEFWRShJT1NVUkZBQ0UpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JT1N1cmZhY2VQ
b29sLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JT1N1cmZhY2VQb29s
LmgKaW5kZXggZGY0YmVjN2ZkOTg4MGRhOTk0OTlhN2UzMTQ0MWRhMGI3Mzc4OTFkZC4uOTJiOGRi
OWQxOGNmOWMwM2I0M2YwN2Q1MjllNWI2MGE0MThiYzM3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSU9TdXJmYWNlUG9vbC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0lPU3VyZmFjZVBvb2wuaApAQCAtMjUsNyArMjUs
NyBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2lmIFVTRShJT1NVUkZBQ0UpCisjaWYgSEFWRShJT1NV
UkZBQ0UpCiAKICNpbmNsdWRlICJJT1N1cmZhY2UuaCIKICNpbmNsdWRlICJJbnRTaXplLmgiCkBA
IC0xMDMsNCArMTAzLDQgQEAgcHJpdmF0ZToKIH07CiAKIH0KLSNlbmRpZiAvLyBVU0UoSU9TVVJG
QUNFKQorI2VuZGlmIC8vIEhBVkUoSU9TVVJGQUNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHLmNwcAppbmRleCA4MjRmOWY3NDBk
ZDNlMDFhYzI5NjYwZmVjYWM2OGM3NzNjYzU1OGY5Li5mNDg1YTM0MTRlNWQwZWVmZWVkY2E4NzVi
NWUzMzBhYmY2MDBkZGM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jZy9JbWFnZUJ1ZmZlckNHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHLmNwcApAQCAtNzksNyArNzksNyBAQCBzdGQ6OnVuaXF1
ZV9wdHI8SW1hZ2VCdWZmZXI+IEltYWdlQnVmZmVyOjpjcmVhdGVDb21wYXRpYmxlQnVmZmVyKGNv
bnN0IEZsb2F0U2l6ZQogICAgIGNhc2Uga0NHQ29udGV4dFR5cGVCaXRtYXA6CiAgICAgICAgIGNv
bG9yU3BhY2UgPSBDR0JpdG1hcENvbnRleHRHZXRDb2xvclNwYWNlKGNnQ29udGV4dCk7CiAgICAg
ICAgIGJyZWFrOwotI2lmIFVTRShJT1NVUkZBQ0UpCisjaWYgSEFWRShJT1NVUkZBQ0UpCiAgICAg
Y2FzZSBrQ0dDb250ZXh0VHlwZUlPU3VyZmFjZToKICAgICAgICAgY29sb3JTcGFjZSA9IENHSU9T
dXJmYWNlQ29udGV4dEdldENvbG9yU3BhY2UoY2dDb250ZXh0KTsKICAgICAgICAgYnJlYWs7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZh
Y2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5o
CmluZGV4IGI1N2FlOTc4NjRiMzVlODdjMDZhMTc0ZDk5YWRlOGJlMzA3MjMwOTcuLmUyYjRhMTg5
OWQ3M2JkODZiZTk2OTFkZTlhNjY4OWMyOGUyN2I1OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5oCkBAIC0yNSw3ICsyNSw3IEBA
CiAKICNwcmFnbWEgb25jZQogCi0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFD
RSkKIAogI2luY2x1ZGUgPG9iamMvb2JqYy5oPgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5o
IgpAQCAtMTM0LDEwICsxMzQsMTAgQEAgcHVibGljOgogICAgIC8vIGFuIGFjY3VyYXRlIHJlc3Vs
dCBmcm9tIGlzSW5Vc2UoKSwgaXQgbmVlZHMgdG8gYmUgcmVsZWFzZWQuCiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCByZWxlYXNlR3JhcGhpY3NDb250ZXh0KCk7CiAKLSNpZiBQTEFURk9STShJT1Mp
CisjaWYgSEFWRShJT1NVUkZBQ0VfQUNDRUxFUkFUT1IpCiAgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIGJvb2wgYWxsb3dDb252ZXJzaW9uRnJvbUZvcm1hdFRvRm9ybWF0KEZvcm1hdCwgRm9ybWF0
KTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBjb252ZXJ0VG9Gb3JtYXQoc3RkOjp1
bmlxdWVfcHRyPFdlYkNvcmU6OklPU3VyZmFjZT4mJiBpblN1cmZhY2UsIEZvcm1hdCwgV1RGOjpG
dW5jdGlvbjx2b2lkKHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJT1N1cmZhY2U+KT4mJik7Ci0j
ZW5kaWYKKyNlbmRpZiAvLyBIQVZFKElPU1VSRkFDRV9BQ0NFTEVSQVRPUikKIAogICAgIHZvaWQg
bWlncmF0ZUNvbG9yU3BhY2VUb1Byb3BlcnRpZXMoKTsKIApAQCAtMTY0LDUgKzE2NCw1IEBAIFdF
QkNPUkVfRVhQT1JUIFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0m
LCBjb25zdCBXZWJDb3JlOjpJT1N1CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlm
IC8vIFVTRShJT1NVUkZBQ0UpCisjZW5kaWYgLy8gSEFWRShJT1NVUkZBQ0UpCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5tbQppbmRl
eCA1NDJhZTA0ZGMwOWM5NjllYzYxOTRkNWViN2Y1YzIwOWVjMzg2ZGFkLi5jYjA3YWY3NGEwYThj
Nzg2MTVkNDI3NjA0OGJlMTA1MjRjZmIxNGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1tCkBAIC0yNiw3ICsyNiw3IEBACiAj
aW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIklPU3VyZmFjZS5oIgogCi0jaWYgVVNFKElPU1VS
RkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKIAogI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0Q0cu
aCIKICNpbXBvcnQgIklPU3VyZmFjZVBvb2wuaCIKQEAgLTQwLDExICs0MCw2IEBACiAjaW1wb3J0
IDx3dGYvTWF0aEV4dHJhcy5oPgogI2ltcG9ydCA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgogCi0j
aWYgUExBVEZPUk0oSU9TKQotLy8gTW92ZSB0aGlzIGludG8gdGhlIFNQSSBoZWFkZXIgb25jZSBp
dCdzIHBvc3NpYmxlIHRvIHB1dCBpbnNpZGUgdGhlIEFQUExFX0lOVEVSTkFMX1NESyBibG9jay4K
LU5TU3RyaW5nICogY29uc3QgV2ViSU9TdXJmYWNlQWNjZWxlcmF0b3JVbndpcmVTdXJmYWNlS2V5
ID0gQCJVbndpcmVTdXJmYWNlIjsKLSNlbmRpZgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGlu
bGluZSBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiBJT1N1cmZhY2U6OnN1cmZhY2VGcm9tUG9v
bChJbnRTaXplIHNpemUsIEludFNpemUgY29udGV4dFNpemUsIENHQ29sb3JTcGFjZVJlZiBjb2xv
clNwYWNlLCBGb3JtYXQgcGl4ZWxGb3JtYXQpCkBAIC0zODgsNyArMzgzLDggQEAgdm9pZCBJT1N1
cmZhY2U6OnJlbGVhc2VHcmFwaGljc0NvbnRleHQoKQogICAgIG1fY2dDb250ZXh0ID0gbnVsbHB0
cjsKIH0KIAotI2lmIFBMQVRGT1JNKElPUykKKyNpZiBIQVZFKElPU1VSRkFDRV9BQ0NFTEVSQVRP
UikKKwogYm9vbCBJT1N1cmZhY2U6OmFsbG93Q29udmVyc2lvbkZyb21Gb3JtYXRUb0Zvcm1hdChG
b3JtYXQgc291cmNlRm9ybWF0LCBGb3JtYXQgZGVzdEZvcm1hdCkKIHsKICAgICBpZiAoKHNvdXJj
ZUZvcm1hdCA9PSBGb3JtYXQ6OlJHQjEwIHx8IHNvdXJjZUZvcm1hdCA9PSBGb3JtYXQ6OlJHQjEw
QTgpICYmIGRlc3RGb3JtYXQgPT0gRm9ybWF0OjpZVVY0MjIpCkBAIC00MzAsMTIgKzQyNiwxMyBA
QCB2b2lkIElPU3VyZmFjZTo6Y29udmVydFRvRm9ybWF0KHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZh
Y2U+JiYgaW5TdXJmYWNlLCBGb3JtYXQgZgogICAgICAgICBkZWxldGUgY2FsbGJhY2s7CiAgICAg
fTsKIAotICAgIE5TRGljdGlvbmFyeSAqb3B0aW9ucyA9IEB7IFdlYklPU3VyZmFjZUFjY2VsZXJh
dG9yVW53aXJlU3VyZmFjZUtleSA6IEBZRVMgfTsKKyAgICBOU0RpY3Rpb25hcnkgKm9wdGlvbnMg
PSBAeyAoaWQpa0lPU3VyZmFjZUFjY2VsZXJhdG9yVW53aXJlU3VyZmFjZUtleSA6IEBZRVMgfTsK
IAogICAgIElPUmV0dXJuIHJldCA9IElPU3VyZmFjZUFjY2VsZXJhdG9yVHJhbnNmb3JtU3VyZmFj
ZShhY2NlbGVyYXRvciwgaW5TdXJmYWNlLT5zdXJmYWNlKCksIGRlc3RpbmF0aW9uSU9TdXJmYWNl
UmVmLCAoQ0ZEaWN0aW9uYXJ5UmVmKW9wdGlvbnMsIG51bGxwdHIsICZjb21wbGV0aW9uLCBudWxs
cHRyLCBudWxscHRyKTsKICAgICBBU1NFUlRfVU5VU0VEKHJldCwgcmV0ID09IGtJT1JldHVyblN1
Y2Nlc3MpOwogfQotI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKKworI2VuZGlmIC8vIEhBVkUoSU9T
VVJGQUNFX0FDQ0VMRVJBVE9SKQogCiB2b2lkIElPU3VyZmFjZTo6bWlncmF0ZUNvbG9yU3BhY2VU
b1Byb3BlcnRpZXMoKQogewpAQCAtNDgyLDQgKzQ3OSw0IEBAIFRleHRTdHJlYW0mIG9wZXJhdG9y
PDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IElPU3VyZmFjZSYgc3VyZmFjZSkKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8gVVNFKElPU1VSRkFDRSkKKyNlbmRpZiAvLyBIQVZF
KElPU1VSRkFDRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL0lPU3VyZmFjZVBvb2xDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL0lPU3VyZmFjZVBvb2xDb2NvYS5tbQppbmRleCA0YWQ1ZDJlMGI3MzVlNTZm
OTJiNWY4ZDU5ZTE5Y2ZmNGJhM2YyMmYyLi5mYjEzZjFjZTZmMjQwYmQzYzliYjU4OGVmZDNhYmE4
NjU5NTAzMzUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9JT1N1cmZhY2VQb29sQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlUG9vbENvY29hLm1tCkBAIC0yNiw3ICsyNiw3IEBACiAj
aW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIklPU3VyZmFjZVBvb2wuaCIKIAotI2lmIFVTRShJ
T1NVUkZBQ0UpCisjaWYgSEFWRShJT1NVUkZBQ0UpCiAKICNpbmNsdWRlIDxRdWFydHpDb3JlL1F1
YXJ0ekNvcmUuaD4KIApAQCAtNDAsNCArNDAsNCBAQCB2b2lkIElPU3VyZmFjZVBvb2w6OnBsYXRm
b3JtR2FyYmFnZUNvbGxlY3ROb3coKQogCiB9CiAKLSNlbmRpZiAvLyBVU0UoSU9TVVJGQUNFKQor
I2VuZGlmIC8vIEhBVkUoSU9TVVJGQUNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwCmluZGV4IGY2
Nzc5ZTZiOTZmNjNiODhmZWNiNjhlYWExOTYwYWVlYTNmYWU4YWIuLmExNjRkNWJmZGE3NjgyYTlh
OTgxYzY0YjE5NzQ5YzAyMWFkMjc2YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2N2L1ZpZGVvVGV4dHVyZUNvcGllckNWLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1RleHR1cmVDb3BpZXJDVi5jcHAKQEAgLTQx
LDcgKzQxLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0jaWYgVVNFKElPU1VSRkFDRSkK
KyNpZiBIQVZFKElPU1VSRkFDRSkKIGVudW0gY2xhc3MgUGl4ZWxSYW5nZSB7CiAgICAgVW5rbm93
biwKICAgICBWaWRlbywKQEAgLTM2OCw3ICszNjgsNyBAQCBzdGF0aWMgY29uc3QgVmVjdG9yPEdM
ZmxvYXQ+IFlDYkNyVG9SR0JNYXRyaXhGb3JSYW5nZUFuZFRyYW5zZmVyRnVuY3Rpb24oUGl4ZWxS
YQogICAgIEFTU0VSVChpdGVyYXRvciAhPSBtYXRyaWNlcy5nZXQoKS5lbmQoKSk7CiAgICAgcmV0
dXJuIGl0ZXJhdG9yLT5zZWNvbmQ7CiB9Ci0jZW5kaWYgLy8gVVNFKElPU1VSRkFDRSkKKyNlbmRp
ZiAvLyBIQVZFKElPU1VSRkFDRSkKIAogVmlkZW9UZXh0dXJlQ29waWVyQ1Y6OlZpZGVvVGV4dHVy
ZUNvcGllckNWKEdyYXBoaWNzQ29udGV4dDNEJiBjb250ZXh0KQogICAgIDogbV9zaGFyZWRDb250
ZXh0KGNvbnRleHQpCkBAIC03MjgsNyArNzI4LDcgQEAgYm9vbCBWaWRlb1RleHR1cmVDb3BpZXJD
Vjo6Y29weUltYWdlVG9QbGF0Zm9ybVRleHR1cmUoQ1ZQaXhlbEJ1ZmZlclJlZiBpbWFnZSwgc2kK
ICAgICAgICAgcmV0dXJuIGNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZSh0ZXh0dXJl
LmdldCgpLCB3aWR0aCwgaGVpZ2h0LCBvdXRwdXRUZXh0dXJlLCBvdXRwdXRUYXJnZXQsIGxldmVs
LCBpbnRlcm5hbEZvcm1hdCwgZm9ybWF0LCB0eXBlLCBwcmVtdWx0aXBseUFscGhhLCBmbGlwWSwg
c3dhcENvbG9yQ2hhbm5lbHMpOwogICAgIH0KIAotI2lmIFVTRShJT1NVUkZBQ0UpCisjaWYgSEFW
RShJT1NVUkZBQ0UpCiAgICAgLy8gRklYTUU6IFRoaXMgY3VycmVudGx5IG9ubHkgc3VwcG9ydHMg
JzQyMHYnIGFuZCAnNDIwZicgcGl4ZWwgZm9ybWF0cy4gSW52ZXN0aWdhdGUgc3VwcG9ydGluZyBt
b3JlIHBpeGVsIGZvcm1hdHMuCiAgICAgT1NUeXBlIHBpeGVsRm9ybWF0ID0gQ1ZQaXhlbEJ1ZmZl
ckdldFBpeGVsRm9ybWF0VHlwZShpbWFnZSk7CiAgICAgaWYgKHBpeGVsRm9ybWF0ICE9IGtDVlBp
eGVsRm9ybWF0VHlwZV80MjBZcENiQ3I4QmlQbGFuYXJWaWRlb1JhbmdlICYmIHBpeGVsRm9ybWF0
ICE9IGtDVlBpeGVsRm9ybWF0VHlwZV80MjBZcENiQ3I4QmlQbGFuYXJGdWxsUmFuZ2UpIHsKQEAg
LTg0Niw3ICs4NDYsNyBAQCBib29sIFZpZGVvVGV4dHVyZUNvcGllckNWOjpjb3B5SW1hZ2VUb1Bs
YXRmb3JtVGV4dHVyZShDVlBpeGVsQnVmZmVyUmVmIGltYWdlLCBzaQogICAgIHJldHVybiB0cnVl
OwogI2Vsc2UKICAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYgLy8gVVNFKElPU1VSRkFDRSkKKyNl
bmRpZiAvLyBIQVZFKElPU1VSRkFDRSkKIH0KIAogYm9vbCBWaWRlb1RleHR1cmVDb3BpZXJDVjo6
Y29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKFRleHR1cmVUeXBlIGlucHV0VmlkZW9U
ZXh0dXJlLCBzaXplX3Qgd2lkdGgsIHNpemVfdCBoZWlnaHQsIFBsYXRmb3JtM0RPYmplY3Qgb3V0
cHV0VGV4dHVyZSwgR0MzRGVudW0gb3V0cHV0VGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEZW51
bSBpbnRlcm5hbEZvcm1hdCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCBib29sIHBy
ZW11bHRpcGx5QWxwaGEsIGJvb2wgZmxpcFksIGJvb2wgc3dhcENvbG9yQ2hhbm5lbHMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1RleHR1cmVD
b3BpZXJDVi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9UZXh0
dXJlQ29waWVyQ1YuaAppbmRleCBjMzU0MWFhZDNmOGQzNDMzN2E3ODAyYzdjYTIxYjU4YWRlNjQ3
YTYxLi40NzJmOWYxNjExODg3OTg5ZjAyNTY5OGIwNzVjZTI1OGM2MTM1ZjkxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1RleHR1cmVDb3BpZXJD
Vi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvVGV4dHVy
ZUNvcGllckNWLmgKQEAgLTYwLDcgKzYwLDcgQEAgcHJpdmF0ZToKICAgICBib29sIGluaXRpYWxp
emVDb250ZXh0T2JqZWN0cygpOwogICAgIGJvb2wgaW5pdGlhbGl6ZVVWQ29udGV4dE9iamVjdHMo
KTsKIAotI2lmIFVTRShJT1NVUkZBQ0UpCisjaWYgSEFWRShJT1NVUkZBQ0UpCiAgICAgdW5zaWdu
ZWQgbGFzdFRleHR1cmVTZWVkKEdDM0R1aW50IHRleHR1cmUpCiAgICAgewogICAgICAgICBhdXRv
IGl0ZXJhdG9yID0gbV9sYXN0VGV4dHVyZVNlZWQuZmluZCh0ZXh0dXJlKTsKQEAgLTkwLDcgKzkw
LDcgQEAgcHJpdmF0ZToKICAgICBHQzNEaW50IG1feVRleHR1cmVTaXplVW5pZm9ybUxvY2F0aW9u
IHsgLTEgfTsKICAgICBHQzNEaW50IG1fdXZUZXh0dXJlU2l6ZVVuaWZvcm1Mb2NhdGlvbiB7IC0x
IH07CiAKLSNpZiBVU0UoSU9TVVJGQUNFKQorI2lmIEhBVkUoSU9TVVJGQUNFKQogICAgIGJvb2wg
bV9sYXN0RmxpcFkgeyBmYWxzZSB9OwogICAgIFVuc2FmZVBvaW50ZXI8SU9TdXJmYWNlUmVmPiBt
X2xhc3RTdXJmYWNlOwogICAgIHVpbnQzMl90IG1fbGFzdFN1cmZhY2VTZWVkIHsgMCB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVy
QmFja2luZ1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVt
b3RlTGF5ZXJCYWNraW5nU3RvcmUuaAppbmRleCAyOGE0OTgwNTdiOGU0MTczY2IyMzkwYmZjNzVl
YWU3YTVkMzBhOWMwLi44ODViMDZjN2VhYmNiZDFlNTM2YzdhOTJmYjhjMWE2OTFhNGFlYzJhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5
ZXJCYWNraW5nU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRy
ZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUuaApAQCAtNzUsNyArNzUsNyBAQCBwdWJsaWM6CiAK
ICAgICBib29sIGhhc0Zyb250QnVmZmVyKCkgY29uc3QKICAgICB7Ci0jaWYgVVNFKElPU1VSRkFD
RSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKICAgICAgICAgaWYgKG1fYWNjZWxlcmF0ZXNEcmF3aW5n
KQogICAgICAgICAgICAgcmV0dXJuICEhbV9mcm9udEJ1ZmZlci5zdXJmYWNlOwogI2VuZGlmCkBA
IC05OSw3ICs5OSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjbGVhckJhY2tpbmdTdG9yZSgpOwog
ICAgIHZvaWQgc3dhcFRvVmFsaWRGcm9udEJ1ZmZlcigpOwogCi0jaWYgVVNFKElPU1VSRkFDRSkK
KyNpZiBIQVZFKElPU1VSRkFDRSkKICAgICBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdCBzdXJm
YWNlQnVmZmVyRm9ybWF0KCkgY29uc3Q7CiAjZW5kaWYKIApAQCAtMTE1LDE0ICsxMTUsMTQgQEAg
cHJpdmF0ZToKIAogICAgIHN0cnVjdCBCdWZmZXIgewogICAgICAgICBSZWZQdHI8U2hhcmVhYmxl
Qml0bWFwPiBiaXRtYXA7Ci0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkK
ICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3VyZmFjZT4gc3VyZmFjZTsKICAg
ICAgICAgYm9vbCBpc1ZvbGF0aWxlID0gZmFsc2U7CiAjZW5kaWYKIAogICAgICAgICBleHBsaWNp
dCBvcGVyYXRvciBib29sKCkgY29uc3QKICAgICAgICAgewotI2lmIFVTRShJT1NVUkZBQ0UpCisj
aWYgSEFWRShJT1NVUkZBQ0UpCiAgICAgICAgICAgICBpZiAoc3VyZmFjZSkKICAgICAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKICNlbmRpZgpAQCAtMTM3LDcgKzEzNyw3IEBAIHByaXZhdGU6CiAK
ICAgICBCdWZmZXIgbV9mcm9udEJ1ZmZlcjsKICAgICBCdWZmZXIgbV9iYWNrQnVmZmVyOwotI2lm
IFVTRShJT1NVUkZBQ0UpCisjaWYgSEFWRShJT1NVUkZBQ0UpCiAgICAgQnVmZmVyIG1fc2Vjb25k
YXJ5QmFja0J1ZmZlcjsKICAgICBXZWJDb3JlOjpNYWNoU2VuZFJpZ2h0IG1fZnJvbnRCdWZmZXJT
ZW5kUmlnaHQ7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90
ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbSBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbQppbmRleCA0MDdm
NzU2YTU1Mjg4ZDhjMzI0ZjY0NTNlOThkY2Y2ZTM2NDdmZGU0Li4wNGViY2Q2Y2M0MzI4OTMwMjE2
MzcyZDJhYTdiYjVlOTA3ZDhmNmI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9S
ZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0KKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tCkBA
IC00MCw3ICs0MCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1dlYkxheWVyLmg+CiAjaW1wb3J0IDxw
YWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaD4KIAotI2lmIFVTRShJT1NVUkZBQ0UpCisjaWYg
SEFWRShJT1NVUkZBQ0UpCiAjaW1wb3J0IDxtYWNoL21hY2hfcG9ydC5oPgogI2VuZGlmCiAKQEAg
LTcyLDcgKzcyLDcgQEAgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6On5SZW1vdGVMYXllckJhY2tp
bmdTdG9yZSgpCiAKIHZvaWQgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmVuc3VyZUJhY2tpbmdT
dG9yZShGbG9hdFNpemUgc2l6ZSwgZmxvYXQgc2NhbGUsIGJvb2wgYWNjZWxlcmF0ZXNEcmF3aW5n
LCBib29sIGRlZXBDb2xvciwgYm9vbCBpc09wYXF1ZSkKIHsKLSNpZiAhVVNFKElPU1VSRkFDRSkK
KyNpZiAhSEFWRShJT1NVUkZBQ0UpCiAgICAgYWNjZWxlcmF0ZXNEcmF3aW5nID0gZmFsc2U7CiAj
ZW5kaWYKICAgICBpZiAobV9zaXplID09IHNpemUgJiYgbV9zY2FsZSA9PSBzY2FsZSAmJiBtX2Rl
ZXBDb2xvciA9PSBkZWVwQ29sb3IgJiYgbV9hY2NlbGVyYXRlc0RyYXdpbmcgPT0gYWNjZWxlcmF0
ZXNEcmF3aW5nICYmIG1faXNPcGFxdWUgPT0gaXNPcGFxdWUpCkBAIC05Nyw3ICs5Nyw3IEBAIHZv
aWQgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmNsZWFyQmFja2luZ1N0b3JlKCkKIHsKICAgICBt
X2Zyb250QnVmZmVyLmRpc2NhcmQoKTsKICAgICBtX2JhY2tCdWZmZXIuZGlzY2FyZCgpOwotI2lm
IFVTRShJT1NVUkZBQ0UpCisjaWYgSEFWRShJT1NVUkZBQ0UpCiAgICAgbV9zZWNvbmRhcnlCYWNr
QnVmZmVyLmRpc2NhcmQoKTsKICNlbmRpZgogfQpAQCAtMTA5LDcgKzEwOSw3IEBAIHZvaWQgUmVt
b3RlTGF5ZXJCYWNraW5nU3RvcmU6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0
CiAgICAgZW5jb2RlciA8PCBtX2FjY2VsZXJhdGVzRHJhd2luZzsKICAgICBlbmNvZGVyIDw8IG1f
aXNPcGFxdWU7CiAKLSNpZiBVU0UoSU9TVVJGQUNFKQorI2lmIEhBVkUoSU9TVVJGQUNFKQogICAg
IGlmIChtX2FjY2VsZXJhdGVzRHJhd2luZykgewogICAgICAgICBpZiAobV9mcm9udEJ1ZmZlci5z
dXJmYWNlKQogICAgICAgICAgICAgZW5jb2RlciA8PCBtX2Zyb250QnVmZmVyLnN1cmZhY2UtPmNy
ZWF0ZVNlbmRSaWdodCgpOwpAQCAtMTQwLDcgKzE0MCw3IEBAIGJvb2wgUmVtb3RlTGF5ZXJCYWNr
aW5nU3RvcmU6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFJlbW90ZUxheWVyQmFja2lu
Z1N0CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubV9pc09wYXF1ZSkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAotI2lmIFVTRShJT1NVUkZBQ0UpCisjaWYgSEFWRShJT1NVUkZBQ0Up
CiAgICAgaWYgKHJlc3VsdC5tX2FjY2VsZXJhdGVzRHJhd2luZykgewogICAgICAgICBNYWNoU2Vu
ZFJpZ2h0IHNlbmRSaWdodDsKICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzZW5kUmlnaHQp
KQpAQCAtMTc5LDcgKzE3OSw3IEBAIEludFNpemUgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmJh
Y2tpbmdTdG9yZVNpemUoKSBjb25zdAogCiB1bnNpZ25lZCBSZW1vdGVMYXllckJhY2tpbmdTdG9y
ZTo6Ynl0ZXNQZXJQaXhlbCgpIGNvbnN0CiB7Ci0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZF
KElPU1VSRkFDRSkKICAgICBzd2l0Y2ggKHN1cmZhY2VCdWZmZXJGb3JtYXQoKSkgewogICAgIGNh
c2UgV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3JtYXQ6OlJHQkE6IHJldHVybiA0OwogICAgIGNhc2Ug
V2ViQ29yZTo6SU9TdXJmYWNlOjpGb3JtYXQ6OllVVjQyMjogcmV0dXJuIDI7CkBAIC0xOTQsNyAr
MTk0LDcgQEAgdm9pZCBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6c3dhcFRvVmFsaWRGcm9udEJ1
ZmZlcigpCiB7CiAgICAgSW50U2l6ZSBleHBhbmRlZFNjYWxlZFNpemUgPSBiYWNraW5nU3RvcmVT
aXplKCk7CiAKLSNpZiBVU0UoSU9TVVJGQUNFKQorI2lmIEhBVkUoSU9TVVJGQUNFKQogICAgIGlm
IChtX2FjY2VsZXJhdGVzRHJhd2luZykgewogICAgICAgICBpZiAoIW1fYmFja0J1ZmZlci5zdXJm
YWNlIHx8IG1fYmFja0J1ZmZlci5zdXJmYWNlLT5pc0luVXNlKCkpIHsKICAgICAgICAgICAgIHN0
ZDo6c3dhcChtX2JhY2tCdWZmZXIsIG1fc2Vjb25kYXJ5QmFja0J1ZmZlcik7CkBAIC0yNTQsNyAr
MjU0LDcgQEAgYm9vbCBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6ZGlzcGxheSgpCiAKICAgICBz
d2FwVG9WYWxpZEZyb250QnVmZmVyKCk7CiAKLSNpZiBVU0UoSU9TVVJGQUNFKQorI2lmIEhBVkUo
SU9TVVJGQUNFKQogICAgIGlmIChtX2FjY2VsZXJhdGVzRHJhd2luZykgewogICAgICAgICBSZXRh
aW5QdHI8Q0dJbWFnZVJlZj4gYmFja0ltYWdlOwogICAgICAgICBpZiAobV9iYWNrQnVmZmVyLnN1
cmZhY2UgJiYgIXdpbGxQYWludEVudGlyZUJhY2tpbmdTdG9yZSkKQEAgLTM5OSw3ICszOTksNyBA
QCB2b2lkIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjphcHBseUJhY2tpbmdTdG9yZVRvTGF5ZXIo
Q0FMYXllciAqbGF5ZXIsIExheWVyQ29udAogewogICAgIGxheWVyLmNvbnRlbnRzT3BhcXVlID0g
bV9pc09wYXF1ZTsKIAotI2lmIFVTRShJT1NVUkZBQ0UpCisjaWYgSEFWRShJT1NVUkZBQ0UpCiAg
ICAgaWYgKGFjY2VsZXJhdGVzRHJhd2luZygpKSB7CiAgICAgICAgIHN3aXRjaCAoY29udGVudHNU
eXBlKSB7CiAgICAgICAgIGNhc2UgTGF5ZXJDb250ZW50c1R5cGU6OklPU3VyZmFjZToKQEAgLTQy
Nyw3ICs0MjcsNyBAQCBSZXRhaW5QdHI8Q0dDb250ZXh0UmVmPiBSZW1vdGVMYXllckJhY2tpbmdT
dG9yZTo6dGFrZUZyb250Q29udGV4dFBlbmRpbmdGbHVzaCgpCiAgICAgcmV0dXJuIFdURk1vdmUo
bV9mcm9udENvbnRleHRQZW5kaW5nRmx1c2gpOwogfQogCi0jaWYgVVNFKElPU1VSRkFDRSkKKyNp
ZiBIQVZFKElPU1VSRkFDRSkKIGJvb2wgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OnNldEJ1ZmZl
clZvbGF0aWxpdHkoQnVmZmVyVHlwZSB0eXBlLCBib29sIGlzVm9sYXRpbGUpCiB7CiAgICAgc3dp
dGNoICh0eXBlKSB7CkBAIC00ODAsNyArNDgwLDcgQEAgYm9vbCBSZW1vdGVMYXllckJhY2tpbmdT
dG9yZTo6c2V0QnVmZmVyVm9sYXRpbGl0eShCdWZmZXJUeXBlLCBib29sKQogCiB2b2lkIFJlbW90
ZUxheWVyQmFja2luZ1N0b3JlOjpCdWZmZXI6OmRpc2NhcmQoKQogewotI2lmIFVTRShJT1NVUkZB
Q0UpCisjaWYgSEFWRShJT1NVUkZBQ0UpCiAgICAgaWYgKHN1cmZhY2UpCiAgICAgICAgIFdlYkNv
cmU6OklPU3VyZmFjZTo6bW92ZVRvUG9vbChXVEZNb3ZlKHN1cmZhY2UpKTsKICAgICBpc1ZvbGF0
aWxlID0gZmFsc2U7CkBAIC00ODgsNyArNDg4LDcgQEAgdm9pZCBSZW1vdGVMYXllckJhY2tpbmdT
dG9yZTo6QnVmZmVyOjpkaXNjYXJkKCkKICAgICBiaXRtYXAgPSBudWxscHRyOwogfQogCi0jaWYg
VVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKIFdlYkNvcmU6OklPU3VyZmFjZTo6
Rm9ybWF0IFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpzdXJmYWNlQnVmZmVyRm9ybWF0KCkgY29u
c3QKIHsKICAgICBpZiAobV9kZWVwQ29sb3IpCkBAIC00OTYsNiArNDk2LDYgQEAgV2ViQ29yZTo6
SU9TdXJmYWNlOjpGb3JtYXQgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OnN1cmZhY2VCdWZmZXJG
b3JtYXQoKSBjb25zdAogCiAgICAgcmV0dXJuIFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0OjpS
R0JBOwogfQotI2VuZGlmIC8vIFVTRShJT1NVUkZBQ0UpCisjZW5kaWYgLy8gSEFWRShJT1NVUkZB
Q0UpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvY2cvU2hhcmVhYmxlQml0bWFwQ0cuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvY2cv
U2hhcmVhYmxlQml0bWFwQ0cuY3BwCmluZGV4IDM4MDYyMTc3NmQ3MTliOGE0MGE5ZDJlZDZhZTBh
NDY1ZDY4MzAzZmYuLjQxYjJmZWEzMmIxNTNmM2JmNGZlZjY1OTJlMjllMjM1NDJlNjU0NWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2NnL1NoYXJlYWJsZUJpdG1hcENHLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jZy9TaGFyZWFibGVCaXRtYXBDRy5jcHAKQEAgLTcz
LDcgKzczLDcgQEAgc3RhdGljIENHQml0bWFwSW5mbyBiaXRtYXBJbmZvKGNvbnN0IFNoYXJlYWJs
ZUJpdG1hcDo6Q29uZmlndXJhdGlvbiYgY29uZmlndXJhdGkKIENoZWNrZWQ8dW5zaWduZWQsIFJl
Y29yZE92ZXJmbG93PiBTaGFyZWFibGVCaXRtYXA6OmNhbGN1bGF0ZUJ5dGVzUGVyUm93KFdlYkNv
cmU6OkludFNpemUgc2l6ZSwgY29uc3QgQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbikKIHsK
ICAgICB1bnNpZ25lZCBieXRlc1BlclJvdyA9IGNhbGN1bGF0ZUJ5dGVzUGVyUGl4ZWwoY29uZmln
dXJhdGlvbikgKiBzaXplLndpZHRoKCk7Ci0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElP
U1VSRkFDRSkKICAgICByZXR1cm4gSU9TdXJmYWNlQWxpZ25Qcm9wZXJ0eShrSU9TdXJmYWNlQnl0
ZXNQZXJSb3csIGJ5dGVzUGVyUm93KTsKICNlbHNlCiAgICAgcmV0dXJuIGJ5dGVzUGVyUm93Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXgg
MjBlNGNmNDlkMjQ4YzYxZmY2NTEyNWZjYWQzMDJmYTZlMjczMzM2Yy4uOGMxNTNkYjI1Yzg1ZDUz
N2Q4NTBjNjIxZDY4ZThhZjgxOTM0YWY0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC0xODcxLDEzICsxODcxLDE0IEBAIC0gKFJlZlB0
cjxXZWJLaXQ6OlZpZXdTbmFwc2hvdD4pX3Rha2VWaWV3U25hcHNob3QKIAogICAgIENBVHJhbnNm
b3JtM0QgdHJhbnNmb3JtID0gQ0FUcmFuc2Zvcm0zRE1ha2VTY2FsZShkZXZpY2VTY2FsZSwgZGV2
aWNlU2NhbGUsIDEpOwogCi0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkK
ICAgICBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdCBzbmFwc2hvdEZvcm1hdCA9IFdlYkNvcmU6
OnNjcmVlblN1cHBvcnRzRXh0ZW5kZWRDb2xvcigpID8gV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3Jt
YXQ6OlJHQjEwIDogV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3JtYXQ6OlJHQkE7CiAgICAgYXV0byBz
dXJmYWNlID0gV2ViQ29yZTo6SU9TdXJmYWNlOjpjcmVhdGUoV2ViQ29yZTo6ZXhwYW5kZWRJbnRT
aXplKHNuYXBzaG90U2l6ZSksIFdlYkNvcmU6OnNSR0JDb2xvclNwYWNlUmVmKCksIHNuYXBzaG90
Rm9ybWF0KTsKICAgICBpZiAoIXN1cmZhY2UpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAg
IENBUmVuZGVyU2VydmVyUmVuZGVyTGF5ZXJXaXRoVHJhbnNmb3JtKE1BQ0hfUE9SVF9OVUxMLCBz
ZWxmLmxheWVyLmNvbnRleHQuY29udGV4dElkLCByZWludGVycHJldF9jYXN0PHVpbnQ2NF90Pihz
ZWxmLmxheWVyKSwgc3VyZmFjZS0+c3VyZmFjZSgpLCAwLCAwLCAmdHJhbnNmb3JtKTsKIAorI2lm
IEhBVkUoSU9TVVJGQUNFX0FDQ0VMRVJBVE9SKQogICAgIFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9y
bWF0IGNvbXByZXNzZWRGb3JtYXQgPSBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdDo6WVVWNDIy
OwogICAgIGlmIChXZWJDb3JlOjpJT1N1cmZhY2U6OmFsbG93Q29udmVyc2lvbkZyb21Gb3JtYXRU
b0Zvcm1hdChzbmFwc2hvdEZvcm1hdCwgY29tcHJlc3NlZEZvcm1hdCkpIHsKICAgICAgICAgUmVm
UHRyPFdlYktpdDo6Vmlld1NuYXBzaG90PiB2aWV3U25hcHNob3QgPSBXZWJLaXQ6OlZpZXdTbmFw
c2hvdDo6Y3JlYXRlKG51bGxwdHIpOwpAQCAtMTg4OCw5ICsxODg5LDEwIEBAIC0gKFJlZlB0cjxX
ZWJLaXQ6OlZpZXdTbmFwc2hvdD4pX3Rha2VWaWV3U25hcHNob3QKIAogICAgICAgICByZXR1cm4g
dmlld1NuYXBzaG90OwogICAgIH0KKyNlbmRpZiAvLyBIQVZFKElPU1VSRkFDRV9BQ0NFTEVSQVRP
UikKIAogICAgIHJldHVybiBXZWJLaXQ6OlZpZXdTbmFwc2hvdDo6Y3JlYXRlKFdURk1vdmUoc3Vy
ZmFjZSkpOwotI2Vsc2UKKyNlbHNlIC8vIEhBVkUoSU9TVVJGQUNFKQogICAgIHVpbnQzMl90IHNs
b3RJRCA9IFtXZWJLaXQ6OlZpZXdTbmFwc2hvdFN0b3JlOjpzbmFwc2hvdHRpbmdDb250ZXh0KCkg
Y3JlYXRlSW1hZ2VTbG90OnNuYXBzaG90U2l6ZSBoYXNBbHBoYTpZRVNdOwogCiAgICAgaWYgKCFz
bG90SUQpCkBAIC0xODk5LDcgKzE5MDEsNyBAQCAtIChSZWZQdHI8V2ViS2l0OjpWaWV3U25hcHNo
b3Q+KV90YWtlVmlld1NuYXBzaG90CiAgICAgQ0FSZW5kZXJTZXJ2ZXJDYXB0dXJlTGF5ZXJXaXRo
VHJhbnNmb3JtKE1BQ0hfUE9SVF9OVUxMLCBzZWxmLmxheWVyLmNvbnRleHQuY29udGV4dElkLCAo
dWludDY0X3Qpc2VsZi5sYXllciwgc2xvdElELCAwLCAwLCAmdHJhbnNmb3JtKTsKICAgICBXZWJD
b3JlOjpJbnRTaXplIGltYWdlU2l6ZSA9IFdlYkNvcmU6OmV4cGFuZGVkSW50U2l6ZShXZWJDb3Jl
OjpGbG9hdFNpemUoc25hcHNob3RTaXplKSk7CiAgICAgcmV0dXJuIFdlYktpdDo6Vmlld1NuYXBz
aG90OjpjcmVhdGUoc2xvdElELCBpbWFnZVNpemUsIChpbWFnZVNpemUuYXJlYSgpICogNCkudW5z
YWZlR2V0KCkpOwotI2VuZGlmCisjZW5kaWYgLy8gSEFWRShJT1NVUkZBQ0UpCiB9CiAKIC0gKHZv
aWQpX3pvb21Ub1BvaW50OihXZWJDb3JlOjpGbG9hdFBvaW50KXBvaW50IGF0U2NhbGU6KGRvdWJs
ZSlzY2FsZSBhbmltYXRlZDooQk9PTClhbmltYXRlZApAQCAtNTI2MSw3ICs1MjYzLDcgQEAgLSAo
dm9pZClfc25hcHNob3RSZWN0OihDR1JlY3QpcmVjdEluVmlld0Nvb3JkaW5hdGVzIGludG9JbWFn
ZU9mV2lkdGg6KENHRmxvYXQpaW0KICAgICBDR0Zsb2F0IGltYWdlSGVpZ2h0ID0gaW1hZ2VTY2Fs
ZSAqIHNuYXBzaG90UmVjdEluQ29udGVudENvb3JkaW5hdGVzLnNpemUuaGVpZ2h0OwogICAgIENH
U2l6ZSBpbWFnZVNpemUgPSBDR1NpemVNYWtlKGltYWdlV2lkdGgsIGltYWdlSGVpZ2h0KTsKIAot
I2lmIFVTRShJT1NVUkZBQ0UpCisjaWYgSEFWRShJT1NVUkZBQ0UpCiAgICAgLy8gSWYgd2UgYXJl
IHBhcmVudGVkIGFuZCB0aHVzIHdvbid0IGluY3VyIGEgc2lnbmlmaWNhbnQgcGVuYWx0eSBmcm9t
IHBhZ2luZyBpbiB0aWxlcywgc25hcHNob3QgdGhlIHZpZXcgaGllcmFyY2h5IGRpcmVjdGx5Lgog
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
UHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbQppbmRleCBlMjNjOWVlMmY0YjFjMTRhMWMwODAz
NjYwZmRhYTE0ODE4MDIzMGM4Li44MDkzNjc3NTliMGNjMTBmMjhhZDNlNzhiZTdlMTdlOTgwZGQz
NDMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUv
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5t
bQpAQCAtMTEwLDcgKzExMCw3IEBAIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OlJl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkoV2ViUGFnZVByb3h5JiB3CiAgICAgOiBEcmF3
aW5nQXJlYVByb3h5KERyYXdpbmdBcmVhVHlwZVJlbW90ZUxheWVyVHJlZSwgd2ViUGFnZVByb3h5
KQogICAgICwgbV9yZW1vdGVMYXllclRyZWVIb3N0KCp0aGlzKQogewotI2lmIFVTRShJT1NVUkZB
Q0UpCisjaWYgSEFWRShJT1NVUkZBQ0UpCiAgICAgLy8gV2UgZG9uJ3Qgd2FudCB0byBwb29sIHN1
cmZhY2VzIGluIHRoZSBVSSBwcm9jZXNzLgogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgZG8gdGhp
cyBzb21ld2hlcmUgZWxzZS4KICAgICBJT1N1cmZhY2VQb29sOjpzaGFyZWRQb29sKCkuc2V0UG9v
bFNpemUoMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXll
clRyZWUvUmVtb3RlTGF5ZXJUcmVlSG9zdC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jl
bW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVIb3N0Lm1tCmluZGV4IGM4N2Q3NTJjNzE2NjVh
YWQ2ZDQ1MjQ0OWI1NjNiMTQ5ZmY3ODc1NjIuLjlkZjFkY2ZiMjE5Y2FiN2U0YjExODQ3ODc4NDNj
NTk4YjEwNTZjOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVMYXllclRyZWVIb3N0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVIb3N0Lm1tCkBAIC0yODksNyArMjg5
LDcgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVIb3N0OjpkZXRhY2hSb290TGF5ZXIoKQogICAgIG1f
cm9vdExheWVyID0gbnVsbHB0cjsKIH0KIAotI2lmIFVTRShJT1NVUkZBQ0UpCisjaWYgSEFWRShJ
T1NVUkZBQ0UpCiBzdGF0aWMgdm9pZCByZWN1cnNpdmVseU1hcElPU3VyZmFjZUJhY2tpbmdTdG9y
ZShDQUxheWVyICpsYXllcikKIHsKICAgICBpZiAobGF5ZXIuY29udGVudHMgJiYgQ0ZHZXRUeXBl
SUQobGF5ZXIuY29udGVudHMpID09IENBTWFjaFBvcnRHZXRUeXBlSUQoKSkgewpAQCAtMzA1LDcg
KzMwNSw3IEBAIHN0YXRpYyB2b2lkIHJlY3Vyc2l2ZWx5TWFwSU9TdXJmYWNlQmFja2luZ1N0b3Jl
KENBTGF5ZXIgKmxheWVyKQogCiB2b2lkIFJlbW90ZUxheWVyVHJlZUhvc3Q6Om1hcEFsbElPU3Vy
ZmFjZUJhY2tpbmdTdG9yZSgpCiB7Ci0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VS
RkFDRSkKICAgICByZWN1cnNpdmVseU1hcElPU3VyZmFjZUJhY2tpbmdTdG9yZShhc0xheWVyKG1f
cm9vdExheWVyKSk7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL21hYy9WaWV3U25hcHNob3RTdG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1ZpZXdTbmFwc2hvdFN0b3JlLmgKaW5kZXggNzBiNTg3OWFiMmYzYTlkZWY4NjVmMzk1ZDA5NThj
NjZmY2U1ZjIzNS4uYWZlZDMzMjM4Y2M4NjUxMGRjMjU3MGYwZjUzZmUyMWQyMjQ1Zjc3ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1ZpZXdTbmFwc2hvdFN0b3JlLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1ZpZXdTbmFwc2hvdFN0b3JlLmgKQEAg
LTUzLDcgKzUzLDcgQEAgY2xhc3MgV2ViUGFnZVByb3h5OwogCiBjbGFzcyBWaWV3U25hcHNob3Qg
OiBwdWJsaWMgUmVmQ291bnRlZDxWaWV3U25hcHNob3Q+IHsKIHB1YmxpYzoKLSNpZiBVU0UoSU9T
VVJGQUNFKQorI2lmIEhBVkUoSU9TVVJGQUNFKQogICAgIHN0YXRpYyBSZWY8Vmlld1NuYXBzaG90
PiBjcmVhdGUoc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3VyZmFjZT4pOwogI2Vsc2UKICAg
ICBzdGF0aWMgUmVmPFZpZXdTbmFwc2hvdD4gY3JlYXRlKHVpbnQzMl90IHNsb3RJRCwgV2ViQ29y
ZTo6SW50U2l6ZSwgc2l6ZV90IGltYWdlU2l6ZUluQnl0ZXMpOwpAQCAtNzgsNyArNzgsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzZXREZXZpY2VTY2FsZUZhY3RvcihmbG9hdCBkZXZpY2VTY2FsZUZh
Y3RvcikgeyBtX2RldmljZVNjYWxlRmFjdG9yID0gZGV2aWNlU2NhbGVGYWN0b3I7IH0KICAgICBm
bG9hdCBkZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlU2NhbGVGYWN0
b3I7IH0KIAotI2lmIFVTRShJT1NVUkZBQ0UpCisjaWYgSEFWRShJT1NVUkZBQ0UpCiAgICAgV2Vi
Q29yZTo6SU9TdXJmYWNlKiBzdXJmYWNlKCkgY29uc3QgeyByZXR1cm4gbV9zdXJmYWNlLmdldCgp
OyB9CiAKICAgICBzaXplX3QgaW1hZ2VTaXplSW5CeXRlcygpIGNvbnN0IHsgcmV0dXJuIG1fc3Vy
ZmFjZSA/IG1fc3VyZmFjZS0+dG90YWxCeXRlcygpIDogMDsgfQpAQCAtOTMsNyArOTMsNyBAQCBw
dWJsaWM6CiAjZW5kaWYKIAogcHJpdmF0ZToKLSNpZiBVU0UoSU9TVVJGQUNFKQorI2lmIEhBVkUo
SU9TVVJGQUNFKQogICAgIGV4cGxpY2l0IFZpZXdTbmFwc2hvdChzdGQ6OnVuaXF1ZV9wdHI8V2Vi
Q29yZTo6SU9TdXJmYWNlPik7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJm
YWNlPiBtX3N1cmZhY2U7CkBAIC0xMjcsNyArMTI3LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0
RGlzYWJsZVNuYXBzaG90Vm9sYXRpbGl0eUZvclRlc3RpbmcoYm9vbCBkaXNhYmxlKSB7IG1fZGlz
YWJsZVNuYXBzaG90Vm9sYXRpbGl0eSA9IGRpc2FibGU7IH0KICAgICBib29sIGRpc2FibGVTbmFw
c2hvdFZvbGF0aWxpdHlGb3JUZXN0aW5nKCkgY29uc3QgeyByZXR1cm4gbV9kaXNhYmxlU25hcHNo
b3RWb2xhdGlsaXR5OyB9CiAKLSNpZiAhVVNFKElPU1VSRkFDRSkKKyNpZiAhSEFWRShJT1NVUkZB
Q0UpCiAgICAgc3RhdGljIENBQ29udGV4dCAqc25hcHNob3R0aW5nQ29udGV4dCgpOwogI2VuZGlm
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9WaWV3U25hcHNob3RT
dG9yZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9WaWV3U25hcHNob3RTdG9yZS5t
bQppbmRleCBhZWY3YzMzNjIyMTFiMThlZGNlODUyMTM2NTdiOWE1MTM3ZTZiZTExLi44NmRhZTVm
NzE4NWEyNzdhOTlhNDM0NjE4ODYwNjBiMWU0YTliYzZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9tYWMvVmlld1NuYXBzaG90U3RvcmUubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvbWFjL1ZpZXdTbmFwc2hvdFN0b3JlLm1tCkBAIC02MCw3ICs2MCw3IEBAIFZp
ZXdTbmFwc2hvdFN0b3JlJiBWaWV3U25hcHNob3RTdG9yZTo6c2luZ2xldG9uKCkKICAgICByZXR1
cm4gc3RvcmU7CiB9CiAKLSNpZiAhVVNFKElPU1VSRkFDRSkKKyNpZiAhSEFWRShJT1NVUkZBQ0Up
CiBDQUNvbnRleHQgKlZpZXdTbmFwc2hvdFN0b3JlOjpzbmFwc2hvdHRpbmdDb250ZXh0KCkKIHsK
ICAgICBzdGF0aWMgQ0FDb250ZXh0ICpjb250ZXh0OwpAQCAtMTMxLDcgKzEzMSw3IEBAIHZvaWQg
Vmlld1NuYXBzaG90U3RvcmU6OmRpc2NhcmRTbmFwc2hvdEltYWdlcygpCiAgICAgICAgIG1fc25h
cHNob3RzV2l0aEltYWdlcy5maXJzdCgpLT5jbGVhckltYWdlKCk7CiB9CiAKLSNpZiBVU0UoSU9T
VVJGQUNFKQorI2lmIEhBVkUoSU9TVVJGQUNFKQogUmVmPFZpZXdTbmFwc2hvdD4gVmlld1NuYXBz
aG90OjpjcmVhdGUoc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3VyZmFjZT4gc3VyZmFjZSkK
IHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBWaWV3U25hcHNob3QoV1RGTW92ZShzdXJmYWNl
KSkpOwpAQCAtMTQzLDcgKzE0Myw3IEBAIFJlZjxWaWV3U25hcHNob3Q+IFZpZXdTbmFwc2hvdDo6
Y3JlYXRlKHVpbnQzMl90IHNsb3RJRCwgSW50U2l6ZSBzaXplLCBzaXplX3QgaW1hCiB9CiAjZW5k
aWYKIAotI2lmIFVTRShJT1NVUkZBQ0UpCisjaWYgSEFWRShJT1NVUkZBQ0UpCiBWaWV3U25hcHNo
b3Q6OlZpZXdTbmFwc2hvdChzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPiBzdXJm
YWNlKQogICAgIDogbV9zdXJmYWNlKFdURk1vdmUoc3VyZmFjZSkpCiAjZWxzZQpAQCAtMTYyLDcg
KzE2Miw3IEBAIFZpZXdTbmFwc2hvdDo6flZpZXdTbmFwc2hvdCgpCiAgICAgY2xlYXJJbWFnZSgp
OwogfQogCi0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKIHZvaWQgVmll
d1NuYXBzaG90OjpzZXRTdXJmYWNlKHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJT1N1cmZhY2U+
IHN1cmZhY2UpCiB7CiAgICAgQVNTRVJUKCFtX3N1cmZhY2UpOwpAQCAtMTc4LDcgKzE3OCw3IEBA
IHZvaWQgVmlld1NuYXBzaG90OjpzZXRTdXJmYWNlKHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJ
T1N1cmZhY2U+IHN1cmZhY2UpCiAKIGJvb2wgVmlld1NuYXBzaG90OjpoYXNJbWFnZSgpIGNvbnN0
CiB7Ci0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKICAgICByZXR1cm4g
ISFtX3N1cmZhY2U7CiAjZWxzZQogICAgIHJldHVybiBtX3Nsb3RJRDsKQEAgLTE5Miw3ICsxOTIs
NyBAQCB2b2lkIFZpZXdTbmFwc2hvdDo6Y2xlYXJJbWFnZSgpCiAKICAgICBWaWV3U25hcHNob3RT
dG9yZTo6c2luZ2xldG9uKCkud2lsbFJlbW92ZUltYWdlRnJvbVNuYXBzaG90KCp0aGlzKTsKIAot
I2lmIFVTRShJT1NVUkZBQ0UpCisjaWYgSEFWRShJT1NVUkZBQ0UpCiAgICAgbV9zdXJmYWNlID0g
bnVsbHB0cjsKICNlbHNlCiAgICAgW1ZpZXdTbmFwc2hvdFN0b3JlOjpzbmFwc2hvdHRpbmdDb250
ZXh0KCkgZGVsZXRlU2xvdDptX3Nsb3RJRF07CkBAIC0yMDEsNyArMjAxLDcgQEAgdm9pZCBWaWV3
U25hcHNob3Q6OmNsZWFySW1hZ2UoKQogI2VuZGlmCiB9CiAKLSNpZiBVU0UoSU9TVVJGQUNFKQor
I2lmIEhBVkUoSU9TVVJGQUNFKQogV2ViQ29yZTo6SU9TdXJmYWNlOjpTdXJmYWNlU3RhdGUgVmll
d1NuYXBzaG90OjpzZXRWb2xhdGlsZShib29sIGJlY29tZVZvbGF0aWxlKQogewogICAgIGlmIChW
aWV3U25hcHNob3RTdG9yZTo6c2luZ2xldG9uKCkuZGlzYWJsZVNuYXBzaG90Vm9sYXRpbGl0eUZv
clRlc3RpbmcoKSkKQEAgLTIxNiw3ICsyMTYsNyBAQCBXZWJDb3JlOjpJT1N1cmZhY2U6OlN1cmZh
Y2VTdGF0ZSBWaWV3U25hcHNob3Q6OnNldFZvbGF0aWxlKGJvb2wgYmVjb21lVm9sYXRpbGUpCiAK
IGlkIFZpZXdTbmFwc2hvdDo6YXNMYXllckNvbnRlbnRzKCkKIHsKLSNpZiBVU0UoSU9TVVJGQUNF
KQorI2lmIEhBVkUoSU9TVVJGQUNFKQogICAgIGlmICghbV9zdXJmYWNlKQogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKIApAQCAtMjMzLDcgKzIzMyw3IEBAIGlkIFZpZXdTbmFwc2hvdDo6YXNMYXll
ckNvbnRlbnRzKCkKIAogUmV0YWluUHRyPENHSW1hZ2VSZWY+IFZpZXdTbmFwc2hvdDo6YXNJbWFn
ZUZvclRlc3RpbmcoKQogewotI2lmIFVTRShJT1NVUkZBQ0UpCisjaWYgSEFWRShJT1NVUkZBQ0Up
CiAgICAgaWYgKCFtX3N1cmZhY2UpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>334289</attachid>
            <date>2018-02-20 11:52:58 -0800</date>
            <delta_ts>2018-02-20 15:50:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-182955-20180220115257.patch</filename>
            <type>text/plain</type>
            <size>34324</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI4ODI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDhmOGY5MDNiNGExMzBlOGEzNmE3OWI5
NTIyNTEzMzUzODVjMTBmY2IuLjRmMzQ3OWNmNmUwOGUzNjA3ZTM2YTMyMTNhM2RkMzczYjAwNTAz
NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTgtMDItMjAgIFRpbSBIb3J0b24gIDx0aW1vdGh5
X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgSW50cm9kdWNlIEhBVkUoSU9TVVJGQUNFX0FD
Q0VMRVJBVE9SKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTgyOTU1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNzY5OTUxMD4KKworICAgICAgICBS
ZXZpZXdlZCBieSBTYW0gV2VpbmlnLgorCisgICAgICAgICogd3RmL1BsYXRmb3JtLmg6CisKIDIw
MTgtMDItMTYgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBP
UEVOR0wgbWFjcm9zIHRvIGJlIG1vcmUgY2xlYXIgYWJvdXQgd2hpY2ggT3BlbkdML0VTIFdlYkdM
IHVzZXMgb24gQ29jb2EKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxMDBjZWNjN2E1YzFlNGU1ZDcxNGY0ZDQwZDI0
MmJhNDdkMTBhMzJiLi43MTMyZjE4MTQyY2Q4M2UwOTk0ZDNlOWZiYzIyMTdiNWMwYzU1ZTEzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTgtMDItMjAgIFRpbSBIb3J0b24gIDx0aW1v
dGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgSW50cm9kdWNlIEhBVkUoSU9TVVJGQUNF
X0FDQ0VMRVJBVE9SKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTgyOTU1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNzY5OTUxMD4KKworICAgICAg
ICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gY2hh
bmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgIEludHJvZHVjZSBIQVZFKElPU1VSRkFDRV9BQ0NF
TEVSQVRPUikgYW5kIGd1YXJkIGFsbCB1c2VzIG9mCisgICAgICAgIElPU3VyZmFjZUFjY2VsZXJh
dG9yIGJlaGluZCBpdC4KKworICAgICAgICBSZW5hbWUgVVNFKElPU1VSRkFDRSkgdG8gSEFWRShJ
T1NVUkZBQ0UpIGZvciBhY2N1cmFjeS4KKworICAgICAgICAqIHBhZ2UvY29jb2EvTWVtb3J5UmVs
ZWFzZUNvY29hLm1tOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVDb250cm9s
bGVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JT1N1cmZhY2VQb29sLmNw
cDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JT1N1cmZhY2VQb29sLmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHA6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1tOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL0lPU3VyZmFjZVBvb2xDb2NvYS5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jdi9WaWRlb1RleHR1cmVDb3BpZXJDVi5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuaDoKKwogMjAxOC0wMi0yMCAgV2Vuc29uIEhzaWVo
ICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TIDExLjMgQmV0YV0gQ2Fu
J3QgY29weSBhIFVSTCBmcm9tIFNhZmFyaSBhbmQgcGFzdGUgaXQgaW50byB0aGUgR21haWwgYXBw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNv
cmUvUEFML0NoYW5nZUxvZwppbmRleCA5ZGQ0NmViMTA3NThiNDUzODQ3NGU4MThiM2YyNDE5NmQy
NGU2Y2ZiLi5iMzA0NzZmMjQ4YTBlZTkzNGUxOWIzZDFhNGNhOGQxYzZiYWQ1ZjIwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxOC0wMi0yMCAgVGltIEhvcnRvbiAgPHRp
bW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgSEFWRShJT1NVUkZB
Q0VfQUNDRUxFUkFUT1IpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODI5NTUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM3Njk5NTEwPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCisKKyAgICAgICAgKiBwYWwvc3BpL2NnL0NvcmVH
cmFwaGljc1NQSS5oOgorICAgICAgICAqIHBhbC9zcGkvY29jb2EvSU9TdXJmYWNlU1BJLmg6Cisg
ICAgICAgICogcGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmg6CisKIDIwMTgtMDItMTUgIFRp
bSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgU3RvcCB1c2lu
ZyBFWENMVURFRF9TT1VSQ0VfRklMRV9OQU1FUyBmb3IgYWN0dWFsIHNvdXJjZSBmaWxlcyBpbiBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IDAxYjJmZTFhYjBiMGY3NWI5ZTZjOTgwMGFkZDk1ZWUzMTQyZDk3
ZDUuLjk2NDEyNjY1ZDRiODdjYjIyYWQ4OTA4ZDA2YTgxYmFmM2YxNGFlYjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMTgtMDItMjAgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBh
cHBsZS5jb20+CisKKyAgICAgICAgSW50cm9kdWNlIEhBVkUoSU9TVVJGQUNFX0FDQ0VMRVJBVE9S
KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgyOTU1
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNzY5OTUxMD4KKworICAgICAgICBSZXZpZXdlZCBi
eSBTYW0gV2VpbmlnLgorCisgICAgICAgICogU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVM
YXllckJhY2tpbmdTdG9yZS5oOgorICAgICAgICAqIFNoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVt
b3RlTGF5ZXJCYWNraW5nU3RvcmUubW06CisgICAgICAgICogU2hhcmVkL2NnL1NoYXJlYWJsZUJp
dG1hcENHLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToK
KyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhUHJveHkubW06CisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVMYXllclRyZWVIb3N0Lm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvVmlld1NuYXBzaG90
U3RvcmUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1ZpZXdTbmFwc2hvdFN0b3JlLm1tOgor
CiAyMDE4LTAyLTIwICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAogICAg
ICAgICBbQ2Fpcm9dIERyb3AgdGFyZ2V0IEdyYXBoaWNzQ29udGV4dCB1c2FnZSBpbiBDYWlybyBv
cGVyYXRpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oIGIvU291cmNl
L1dURi93dGYvUGxhdGZvcm0uaAppbmRleCBlYTc5YTE1MDkxN2E2NzU1NDg3NTc4NmJkZWU1ODMz
NzM3ODQzYmNhLi5jMDJiNjZkMDc4MGY3NGJlNmU0YTNiZjNhNmQwOTkzMDU0NmU5MTZjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtLmgKQEAgLTEyMDQsNyArMTIwNCwxMSBAQAogI2VuZGlmCiAKICNpZiBQTEFURk9STShD
T0NPQSkgJiYgIVBMQVRGT1JNKElPU19TSU1VTEFUT1IpCi0jZGVmaW5lIFVTRV9JT1NVUkZBQ0Ug
MQorI2RlZmluZSBIQVZFX0lPU1VSRkFDRSAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKElPUykg
JiYgIVBMQVRGT1JNKElPU19TSU1VTEFUT1IpCisjZGVmaW5lIEhBVkVfSU9TVVJGQUNFX0FDQ0VM
RVJBVE9SIDEKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaCBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oCmluZGV4IDg0N2Y0NTliYWI5ZjMz
OWExZDQ5YTkzYmZhNjgwZTliY2UzMmI2YzEuLjc2OWJjMzk3OGU3ZmM1ZGY0YmU4ODQ5MmFkNDUz
ZDNiYWQ1ZjQzNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NnL0Nv
cmVHcmFwaGljc1NQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NnL0NvcmVH
cmFwaGljc1NQSS5oCkBAIC0yOCw3ICsyOCw3IEBACiAjaW5jbHVkZSA8Q29yZUZvdW5kYXRpb24v
Q29yZUZvdW5kYXRpb24uaD4KICNpbmNsdWRlIDxDb3JlR3JhcGhpY3MvQ29yZUdyYXBoaWNzLmg+
CiAKLSNpZiBVU0UoSU9TVVJGQUNFKQorI2lmIEhBVkUoSU9TVVJGQUNFKQogI2luY2x1ZGUgPHBh
bC9zcGkvY29jb2EvSU9TdXJmYWNlU1BJLmg+CiAjZW5kaWYKIApAQCAtMjQ5LDcgKzI0OSw3IEBA
IGJvb2wgQ0dDb250ZXh0R2V0QWxsb3dzRm9udFN1YnBpeGVsUG9zaXRpb25pbmcoQ0dDb250ZXh0
UmVmKTsKIGJvb2wgQ0dDb250ZXh0RHJhd3NXaXRoQ29ycmVjdFNoYWRvd09mZnNldHMoQ0dDb250
ZXh0UmVmKTsKIENHUGF0dGVyblJlZiBDR1BhdHRlcm5DcmVhdGVXaXRoSW1hZ2UyKENHSW1hZ2VS
ZWYsIENHQWZmaW5lVHJhbnNmb3JtLCBDR1BhdHRlcm5UaWxpbmcpOwogCi0jaWYgVVNFKElPU1VS
RkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKIENHQ29udGV4dFJlZiBDR0lPU3VyZmFjZUNvbnRl
eHRDcmVhdGUoSU9TdXJmYWNlUmVmLCBzaXplX3QsIHNpemVfdCwgc2l6ZV90LCBzaXplX3QsIENH
Q29sb3JTcGFjZVJlZiwgQ0dCaXRtYXBJbmZvKTsKIENHSW1hZ2VSZWYgQ0dJT1N1cmZhY2VDb250
ZXh0Q3JlYXRlSW1hZ2UoQ0dDb250ZXh0UmVmKTsKIENHSW1hZ2VSZWYgQ0dJT1N1cmZhY2VDb250
ZXh0Q3JlYXRlSW1hZ2VSZWZlcmVuY2UoQ0dDb250ZXh0UmVmKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0lPU3VyZmFjZVNQSS5oIGIvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9zcGkvY29jb2EvSU9TdXJmYWNlU1BJLmgKaW5kZXggZTcyZjRkMjY3NDM5Yjlm
YjU1ZjQ5OTAyNWI1OTJiYTEzMDY5NjlmZi4uODJhM2Q2MmZkMjE4OTYyZjY4YjcyMjgwNWU1MjMx
ZGUzNWFhOTQ4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2Ev
SU9TdXJmYWNlU1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvSU9T
dXJmYWNlU1BJLmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiAhUExB
VEZPUk0oSU9TX1NJTVVMQVRPUikKKyNpZiBIQVZFKElPU1VSRkFDRSkKIAogI2lmIFBMQVRGT1JN
KE1BQykgfHwgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKIApAQCAtMTEzLDcgKzExMyw3IEBAIElP
UmV0dXJuIElPU3VyZmFjZVNldFB1cmdlYWJsZShJT1N1cmZhY2VSZWYgYnVmZmVyLCB1aW50MzJf
dCBuZXdTdGF0ZSwgdWludDMyX3QKIAogV1RGX0VYVEVSTl9DX0VORAogCi0jaWYgUExBVEZPUk0o
SU9TKQorI2lmIEhBVkUoSU9TVVJGQUNFX0FDQ0VMRVJBVE9SKQogI2lmIFVTRShBUFBMRV9JTlRF
Uk5BTF9TREspCiAKICNpbXBvcnQgPElPU3VyZmFjZUFjY2VsZXJhdG9yL0lPU3VyZmFjZUFjY2Vs
ZXJhdG9yLmg+CkBAIC0xMjgsNiArMTI4LDggQEAgdHlwZWRlZiBzdHJ1Y3QgX19JT1N1cmZhY2VB
Y2NlbGVyYXRvciAqSU9TdXJmYWNlQWNjZWxlcmF0b3JSZWY7CiAKIFdURl9FWFRFUk5fQ19CRUdJ
TgogCitleHRlcm4gY29uc3QgQ0ZTdHJpbmdSZWYga0lPU3VyZmFjZUFjY2VsZXJhdG9yVW53aXJl
U3VyZmFjZUtleTsKKwogSU9SZXR1cm4gSU9TdXJmYWNlQWNjZWxlcmF0b3JDcmVhdGUoQ0ZBbGxv
Y2F0b3JSZWYsIENGRGljdGlvbmFyeVJlZiBwcm9wZXJ0aWVzLCBJT1N1cmZhY2VBY2NlbGVyYXRv
clJlZiogYWNjZWxlcmF0b3JPdXQpOwogQ0ZSdW5Mb29wU291cmNlUmVmIElPU3VyZmFjZUFjY2Vs
ZXJhdG9yR2V0UnVuTG9vcFNvdXJjZShJT1N1cmZhY2VBY2NlbGVyYXRvclJlZik7CiAKQEAgLTE0
NCw2ICsxNDYsNiBAQCBJT1JldHVybiBJT1N1cmZhY2VBY2NlbGVyYXRvclRyYW5zZm9ybVN1cmZh
Y2UoSU9TdXJmYWNlQWNjZWxlcmF0b3JSZWYsIElPU3VyZmFjZQogV1RGX0VYVEVSTl9DX0VORAog
CiAjZW5kaWYgLy8gVVNFKEFQUExFX0lOVEVSTkFMX1NESykKLSNlbmRpZiAvLyBQTEFURk9STShJ
T1MpCisjZW5kaWYgLy8gSEFWRShJT1NVUkZBQ0VfQUNDRUxFUkFUT1IpCiAKLSNlbmRpZiAvLyAh
UExBVEZPUk0oSU9TX1NJTVVMQVRPUikKKyNlbmRpZiAvLyBIQVZFKElPU1VSRkFDRSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaCBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaAppbmRleCBm
Zjk2YzBiNTgyZmUzMTg3MWM4YTRkMzIwMTE1NTgyMTU4NDUzZWJkLi45NzFkMGJjYjhmMGNjMzgw
YWZmNjhkNGMxNGJjOTU4YWQ5OTIyOTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oCkBAIC0xNzAsNyArMTcwLDcgQEAgV1RGX0VYVEVS
Tl9DX0JFR0lOCiAjaWYgIVVTRShBUFBMRV9JTlRFUk5BTF9TREspCiB2b2lkIENBUmVuZGVyU2Vy
dmVyQ2FwdHVyZUxheWVyV2l0aFRyYW5zZm9ybShtYWNoX3BvcnRfdCwgdWludDMyX3QgY2xpZW50
SWQsIHVpbnQ2NF90IGxheWVySWQsIHVpbnQzMl90IHNsb3RJZCwgaW50MzJfdCBveCwgaW50MzJf
dCBveSwgY29uc3QgQ0FUcmFuc2Zvcm0zRCopOwogCi0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBI
QVZFKElPU1VSRkFDRSkKIHZvaWQgQ0FSZW5kZXJTZXJ2ZXJSZW5kZXJMYXllcldpdGhUcmFuc2Zv
cm0obWFjaF9wb3J0X3Qgc2VydmVyX3BvcnQsIHVpbnQzMl90IGNsaWVudF9pZCwgdWludDY0X3Qg
bGF5ZXJfaWQsIElPU3VyZmFjZVJlZiwgaW50MzJfdCBveCwgaW50MzJfdCBveSwgY29uc3QgQ0FU
cmFuc2Zvcm0zRCopOwogdm9pZCBDQVJlbmRlclNlcnZlclJlbmRlckRpc3BsYXlMYXllcldpdGhU
cmFuc2Zvcm1BbmRUaW1lT2Zmc2V0KG1hY2hfcG9ydF90LCBDRlN0cmluZ1JlZiBkaXNwbGF5X25h
bWUsIHVpbnQzMl90IGNsaWVudF9pZCwgdWludDY0X3QgbGF5ZXJfaWQsIElPU3VyZmFjZVJlZiwg
aW50MzJfdCBveCwgaW50MzJfdCBveSwgY29uc3QgQ0FUcmFuc2Zvcm0zRCosIENGVGltZUludGVy
dmFsKTsKICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL01lbW9y
eVJlbGVhc2VDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvTWVtb3J5UmVsZWFz
ZUNvY29hLm1tCmluZGV4IGIzN2I1Y2JlNjRmNDE2MjQyZGU4YWNmNDFkZDY1NjRlMDc3ZmE2ODEu
LjIwNmVhZmE1ZDY0YWM3N2RhODA0MDc2ZjI2M2QzYTY1MmI1ZTBjMDggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvTWVtb3J5UmVsZWFzZUNvY29hLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvY29jb2EvTWVtb3J5UmVsZWFzZUNvY29hLm1tCkBAIC01Niw3ICs1Niw3
IEBAIHZvaWQgcGxhdGZvcm1SZWxlYXNlTWVtb3J5KENyaXRpY2FsKQogICAgIHRpbGVDb250cm9s
bGVyTWVtb3J5SGFuZGxlcigpLnRyaW1VbnBhcmVudGVkVGlsZXNUb1RhcmdldCgwKTsKICNlbmRp
ZgogCi0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKICAgICBJT1N1cmZh
Y2VQb29sOjpzaGFyZWRQb29sKCkuZGlzY2FyZEFsbFN1cmZhY2VzKCk7CiAjZW5kaWYKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVDb250cm9s
bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVDb250cm9s
bGVyLmNwcAppbmRleCBhMzMwMmE5YTA3YzRjMWUzMzQ5OGIxMjhjNGI1ZWY2MzMyZjExMzYzLi5l
YzNhZTRmMWNmNmU3ZmFjZDg1OWVhN2VlMzc2MmZiNjY1MDA3MjVhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlQ29udHJvbGxlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGlsZUNvbnRyb2xsZXIuY3BwCkBA
IC0zOCw3ICszOCw3IEBACiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9UZXh0U3RyZWFtLmg+CiAKLSNpZiBVU0UoSU9TVVJGQUNFKQorI2lmIEhBVkUoSU9T
VVJGQUNFKQogI2luY2x1ZGUgIklPU3VyZmFjZS5oIgogI2VuZGlmCiAKQEAgLTUzNCw3ICs1MzQs
NyBAQCBJbnRTaXplIFRpbGVDb250cm9sbGVyOjp0aWxlU2l6ZSgpIGNvbnN0CiAgICAgY29uc3Qg
aW50IGtMb3dlc3RDb21tb25EZW5vbWluYXRvck1heFRpbGVTaXplID0gNCAqIDEwMjQ7CiAgICAg
SW50U2l6ZSBtYXhUaWxlU2l6ZShrTG93ZXN0Q29tbW9uRGVub21pbmF0b3JNYXhUaWxlU2l6ZSwg
a0xvd2VzdENvbW1vbkRlbm9taW5hdG9yTWF4VGlsZVNpemUpOwogCi0jaWYgVVNFKElPU1VSRkFD
RSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKICAgICBJbnRTaXplIHN1cmZhY2VTaXplTGltaXQgPSBJ
T1N1cmZhY2U6Om1heGltdW1TaXplKCk7CiAgICAgc3VyZmFjZVNpemVMaW1pdC5zY2FsZSgxIC8g
bV9kZXZpY2VTY2FsZUZhY3Rvcik7CiAgICAgbWF4VGlsZVNpemUgPSBtYXhUaWxlU2l6ZS5zaHJ1
bmtUbyhzdXJmYWNlU2l6ZUxpbWl0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NnL0lPU3VyZmFjZVBvb2wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvSU9TdXJmYWNlUG9vbC5jcHAKaW5kZXggZTNmMDczZTk1ZWYxNTFmYTJk
NjhhN2NmZGVlMjY5NDA2NjcyMTJhNC4uMWIwZTFiNjFmMjgzZmU1MzI3ZjU5NWQ3ZDM2ODA0ZmEy
OGMwMTI5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cv
SU9TdXJmYWNlUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvSU9TdXJmYWNlUG9vbC5jcHAKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJJT1N1cmZhY2VQb29sLmgiCiAKLSNpZiBVU0UoSU9TVVJGQUNFKQorI2lm
IEhBVkUoSU9TVVJGQUNFKQogCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0Q0cuaCIKICNpbmNs
dWRlIDxDb3JlR3JhcGhpY3MvQ29yZUdyYXBoaWNzLmg+CkBAIC0zODMsNCArMzgzLDQgQEAgdm9p
ZCBJT1N1cmZhY2VQb29sOjpzaG93UG9vbFN0YXRpc3RpY3MoY29uc3QgY2hhciogcmVhc29uKQog
fQogCiB9Ci0jZW5kaWYgLy8gVVNFKElPU1VSRkFDRSkKKyNlbmRpZiAvLyBIQVZFKElPU1VSRkFD
RSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0lPU3Vy
ZmFjZVBvb2wuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0lPU3VyZmFj
ZVBvb2wuaAppbmRleCBkZjRiZWM3ZmQ5ODgwZGE5OTQ5OWE3ZTMxNDQxZGEwYjczNzg5MWRkLi45
MmI4ZGI5ZDE4Y2Y5YzAzYjQzZjA3ZDUyOWU1YjYwYTQxOGJjMzc5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JT1N1cmZhY2VQb29sLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSU9TdXJmYWNlUG9vbC5oCkBAIC0yNSw3
ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZF
KElPU1VSRkFDRSkKIAogI2luY2x1ZGUgIklPU3VyZmFjZS5oIgogI2luY2x1ZGUgIkludFNpemUu
aCIKQEAgLTEwMyw0ICsxMDMsNCBAQCBwcml2YXRlOgogfTsKIAogfQotI2VuZGlmIC8vIFVTRShJ
T1NVUkZBQ0UpCisjZW5kaWYgLy8gSEFWRShJT1NVUkZBQ0UpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwCmluZGV4IDgyNGY5
Zjc0MGRkM2UwMWFjMjk2NjBmZWNhYzY4Yzc3M2NjNTU4ZjkuLmY0ODVhMzQxNGU1ZDBlZWZlZWRj
YTg3NWI1ZTMzMGFiZjYwMGRkYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwCkBAIC03OSw3ICs3OSw3IEBAIHN0ZDo6
dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gSW1hZ2VCdWZmZXI6OmNyZWF0ZUNvbXBhdGlibGVCdWZm
ZXIoY29uc3QgRmxvYXRTaXplCiAgICAgY2FzZSBrQ0dDb250ZXh0VHlwZUJpdG1hcDoKICAgICAg
ICAgY29sb3JTcGFjZSA9IENHQml0bWFwQ29udGV4dEdldENvbG9yU3BhY2UoY2dDb250ZXh0KTsK
ICAgICAgICAgYnJlYWs7Ci0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkK
ICAgICBjYXNlIGtDR0NvbnRleHRUeXBlSU9TdXJmYWNlOgogICAgICAgICBjb2xvclNwYWNlID0g
Q0dJT1N1cmZhY2VDb250ZXh0R2V0Q29sb3JTcGFjZShjZ0NvbnRleHQpOwogICAgICAgICBicmVh
azsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lP
U3VyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJm
YWNlLmgKaW5kZXggYjU3YWU5Nzg2NGIzNWU4N2MwNmExNzRkOTlhZGU4YmUzMDcyMzA5Ny4uZTJi
NGExODk5ZDczYmQ4NmJlOTY5MWRlOWE2Njg5YzI4ZTI3YjU4ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLmgKQEAgLTI1LDcgKzI1
LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiBVU0UoSU9TVVJGQUNFKQorI2lmIEhBVkUoSU9T
VVJGQUNFKQogCiAjaW5jbHVkZSA8b2JqYy9vYmpjLmg+CiAjaW5jbHVkZSAiR3JhcGhpY3NDb250
ZXh0LmgiCkBAIC0xMzQsMTAgKzEzNCwxMCBAQCBwdWJsaWM6CiAgICAgLy8gYW4gYWNjdXJhdGUg
cmVzdWx0IGZyb20gaXNJblVzZSgpLCBpdCBuZWVkcyB0byBiZSByZWxlYXNlZC4KICAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHJlbGVhc2VHcmFwaGljc0NvbnRleHQoKTsKIAotI2lmIFBMQVRGT1JN
KElPUykKKyNpZiBIQVZFKElPU1VSRkFDRV9BQ0NFTEVSQVRPUikKICAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgYm9vbCBhbGxvd0NvbnZlcnNpb25Gcm9tRm9ybWF0VG9Gb3JtYXQoRm9ybWF0LCBG
b3JtYXQpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIGNvbnZlcnRUb0Zvcm1hdChz
dGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPiYmIGluU3VyZmFjZSwgRm9ybWF0LCBX
VEY6OkZ1bmN0aW9uPHZvaWQoc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3VyZmFjZT4pPiYm
KTsKLSNlbmRpZgorI2VuZGlmIC8vIEhBVkUoSU9TVVJGQUNFX0FDQ0VMRVJBVE9SKQogCiAgICAg
dm9pZCBtaWdyYXRlQ29sb3JTcGFjZVRvUHJvcGVydGllcygpOwogCkBAIC0xNjQsNSArMTY0LDUg
QEAgV0VCQ09SRV9FWFBPUlQgV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0
cmVhbSYsIGNvbnN0IFdlYkNvcmU6OklPU3UKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0j
ZW5kaWYgLy8gVVNFKElPU1VSRkFDRSkKKyNlbmRpZiAvLyBIQVZFKElPU1VSRkFDRSkKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNl
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1t
CmluZGV4IDU0MmFlMDRkYzA5Yzk2OWVjNjE5NGQ1ZWI3ZjVjMjA5ZWMzODZkYWQuLjhjOGFkZmU0
NmIyZjU5NjUwNzRhMjkyYzhkYzQxOWZiNzllMzc5ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0KQEAgLTI2LDcgKzI2LDcg
QEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiSU9TdXJmYWNlLmgiCiAKLSNpZiBVU0Uo
SU9TVVJGQUNFKQorI2lmIEhBVkUoSU9TVVJGQUNFKQogCiAjaW1wb3J0ICJHcmFwaGljc0NvbnRl
eHRDRy5oIgogI2ltcG9ydCAiSU9TdXJmYWNlUG9vbC5oIgpAQCAtNDAsMTEgKzQwLDYgQEAKICNp
bXBvcnQgPHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+
CiAKLSNpZiBQTEFURk9STShJT1MpCi0vLyBNb3ZlIHRoaXMgaW50byB0aGUgU1BJIGhlYWRlciBv
bmNlIGl0J3MgcG9zc2libGUgdG8gcHV0IGluc2lkZSB0aGUgQVBQTEVfSU5URVJOQUxfU0RLIGJs
b2NrLgotTlNTdHJpbmcgKiBjb25zdCBXZWJJT1N1cmZhY2VBY2NlbGVyYXRvclVud2lyZVN1cmZh
Y2VLZXkgPSBAIlVud2lyZVN1cmZhY2UiOwotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogaW5saW5lIHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+IElPU3VyZmFjZTo6c3VyZmFjZUZy
b21Qb29sKEludFNpemUgc2l6ZSwgSW50U2l6ZSBjb250ZXh0U2l6ZSwgQ0dDb2xvclNwYWNlUmVm
IGNvbG9yU3BhY2UsIEZvcm1hdCBwaXhlbEZvcm1hdCkKQEAgLTM4OCw3ICszODMsOCBAQCB2b2lk
IElPU3VyZmFjZTo6cmVsZWFzZUdyYXBoaWNzQ29udGV4dCgpCiAgICAgbV9jZ0NvbnRleHQgPSBu
dWxscHRyOwogfQogCi0jaWYgUExBVEZPUk0oSU9TKQorI2lmIEhBVkUoSU9TVVJGQUNFX0FDQ0VM
RVJBVE9SKQorCiBib29sIElPU3VyZmFjZTo6YWxsb3dDb252ZXJzaW9uRnJvbUZvcm1hdFRvRm9y
bWF0KEZvcm1hdCBzb3VyY2VGb3JtYXQsIEZvcm1hdCBkZXN0Rm9ybWF0KQogewogICAgIGlmICgo
c291cmNlRm9ybWF0ID09IEZvcm1hdDo6UkdCMTAgfHwgc291cmNlRm9ybWF0ID09IEZvcm1hdDo6
UkdCMTBBOCkgJiYgZGVzdEZvcm1hdCA9PSBGb3JtYXQ6OllVVjQyMikKQEAgLTQzMCwxMiArNDI2
LDEzIEBAIHZvaWQgSU9TdXJmYWNlOjpjb252ZXJ0VG9Gb3JtYXQoc3RkOjp1bmlxdWVfcHRyPElP
U3VyZmFjZT4mJiBpblN1cmZhY2UsIEZvcm1hdCBmCiAgICAgICAgIGRlbGV0ZSBjYWxsYmFjazsK
ICAgICB9OwogCi0gICAgTlNEaWN0aW9uYXJ5ICpvcHRpb25zID0gQHsgV2ViSU9TdXJmYWNlQWNj
ZWxlcmF0b3JVbndpcmVTdXJmYWNlS2V5IDogQFlFUyB9OworICAgIE5TRGljdGlvbmFyeSAqb3B0
aW9ucyA9IEB7IChpZClrSU9TdXJmYWNlQWNjZWxlcmF0b3JVbndpcmVTdXJmYWNlS2V5IDogQFlF
UyB9OwogCiAgICAgSU9SZXR1cm4gcmV0ID0gSU9TdXJmYWNlQWNjZWxlcmF0b3JUcmFuc2Zvcm1T
dXJmYWNlKGFjY2VsZXJhdG9yLCBpblN1cmZhY2UtPnN1cmZhY2UoKSwgZGVzdGluYXRpb25JT1N1
cmZhY2VSZWYsIChDRkRpY3Rpb25hcnlSZWYpb3B0aW9ucywgbnVsbHB0ciwgJmNvbXBsZXRpb24s
IG51bGxwdHIsIG51bGxwdHIpOwogICAgIEFTU0VSVF9VTlVTRUQocmV0LCByZXQgPT0ga0lPUmV0
dXJuU3VjY2Vzcyk7CiB9Ci0jZW5kaWYgLy8gUExBVEZPUk0oSU9TKQorCisjZW5kaWYgLy8gSEFW
RShJT1NVUkZBQ0VfQUNDRUxFUkFUT1IpCiAKIHZvaWQgSU9TdXJmYWNlOjptaWdyYXRlQ29sb3JT
cGFjZVRvUHJvcGVydGllcygpCiB7CkBAIC00ODIsNCArNDc5LDQgQEAgVGV4dFN0cmVhbSYgb3Bl
cmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgSU9TdXJmYWNlJiBzdXJmYWNlKQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBVU0UoSU9TVVJGQUNFKQorI2VuZGlmIC8v
IEhBVkUoSU9TVVJGQUNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvSU9TdXJmYWNlUG9vbENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlUG9vbENvY29hLm1tCmluZGV4IDRhZDVkMmUwYjcz
NWU1NmY5MmI1ZjhkNTllMTljZmY0YmEzZjIyZjIuLmZiMTNmMWNlNmYyNDBiZDNjOWJiNTg4ZWZk
M2FiYTg2NTk1MDMzNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL0lPU3VyZmFjZVBvb2xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2VQb29sQ29jb2EubW0KQEAgLTI2LDcgKzI2LDcg
QEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiSU9TdXJmYWNlUG9vbC5oIgogCi0jaWYg
VVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKIAogI2luY2x1ZGUgPFF1YXJ0ekNv
cmUvUXVhcnR6Q29yZS5oPgogCkBAIC00MCw0ICs0MCw0IEBAIHZvaWQgSU9TdXJmYWNlUG9vbDo6
cGxhdGZvcm1HYXJiYWdlQ29sbGVjdE5vdygpCiAKIH0KIAotI2VuZGlmIC8vIFVTRShJT1NVUkZB
Q0UpCisjZW5kaWYgLy8gSEFWRShJT1NVUkZBQ0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1RleHR1cmVDb3BpZXJDVi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1RleHR1cmVDb3BpZXJDVi5jcHAKaW5k
ZXggZjY3NzllNmI5NmY2M2I4OGZlY2I2OGVhYTE5NjBhZWVhM2ZhZThhYi4uYTE2NGQ1YmZkYTc2
ODJhOWE5ODFjNjRiMTk3NDljMDIxYWQyNzZiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvVGV4dHVyZUNvcGllckNWLmNwcApA
QCAtNDEsNyArNDEsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSNpZiBVU0UoSU9TVVJG
QUNFKQorI2lmIEhBVkUoSU9TVVJGQUNFKQogZW51bSBjbGFzcyBQaXhlbFJhbmdlIHsKICAgICBV
bmtub3duLAogICAgIFZpZGVvLApAQCAtMzY4LDcgKzM2OCw3IEBAIHN0YXRpYyBjb25zdCBWZWN0
b3I8R0xmbG9hdD4gWUNiQ3JUb1JHQk1hdHJpeEZvclJhbmdlQW5kVHJhbnNmZXJGdW5jdGlvbihQ
aXhlbFJhCiAgICAgQVNTRVJUKGl0ZXJhdG9yICE9IG1hdHJpY2VzLmdldCgpLmVuZCgpKTsKICAg
ICByZXR1cm4gaXRlcmF0b3ItPnNlY29uZDsKIH0KLSNlbmRpZiAvLyBVU0UoSU9TVVJGQUNFKQor
I2VuZGlmIC8vIEhBVkUoSU9TVVJGQUNFKQogCiBWaWRlb1RleHR1cmVDb3BpZXJDVjo6VmlkZW9U
ZXh0dXJlQ29waWVyQ1YoR3JhcGhpY3NDb250ZXh0M0QmIGNvbnRleHQpCiAgICAgOiBtX3NoYXJl
ZENvbnRleHQoY29udGV4dCkKQEAgLTcyOCw3ICs3MjgsNyBAQCBib29sIFZpZGVvVGV4dHVyZUNv
cGllckNWOjpjb3B5SW1hZ2VUb1BsYXRmb3JtVGV4dHVyZShDVlBpeGVsQnVmZmVyUmVmIGltYWdl
LCBzaQogICAgICAgICByZXR1cm4gY29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKHRl
eHR1cmUuZ2V0KCksIHdpZHRoLCBoZWlnaHQsIG91dHB1dFRleHR1cmUsIG91dHB1dFRhcmdldCwg
bGV2ZWwsIGludGVybmFsRm9ybWF0LCBmb3JtYXQsIHR5cGUsIHByZW11bHRpcGx5QWxwaGEsIGZs
aXBZLCBzd2FwQ29sb3JDaGFubmVscyk7CiAgICAgfQogCi0jaWYgVVNFKElPU1VSRkFDRSkKKyNp
ZiBIQVZFKElPU1VSRkFDRSkKICAgICAvLyBGSVhNRTogVGhpcyBjdXJyZW50bHkgb25seSBzdXBw
b3J0cyAnNDIwdicgYW5kICc0MjBmJyBwaXhlbCBmb3JtYXRzLiBJbnZlc3RpZ2F0ZSBzdXBwb3J0
aW5nIG1vcmUgcGl4ZWwgZm9ybWF0cy4KICAgICBPU1R5cGUgcGl4ZWxGb3JtYXQgPSBDVlBpeGVs
QnVmZmVyR2V0UGl4ZWxGb3JtYXRUeXBlKGltYWdlKTsKICAgICBpZiAocGl4ZWxGb3JtYXQgIT0g
a0NWUGl4ZWxGb3JtYXRUeXBlXzQyMFlwQ2JDcjhCaVBsYW5hclZpZGVvUmFuZ2UgJiYgcGl4ZWxG
b3JtYXQgIT0ga0NWUGl4ZWxGb3JtYXRUeXBlXzQyMFlwQ2JDcjhCaVBsYW5hckZ1bGxSYW5nZSkg
ewpAQCAtODQ2LDcgKzg0Niw3IEBAIGJvb2wgVmlkZW9UZXh0dXJlQ29waWVyQ1Y6OmNvcHlJbWFn
ZVRvUGxhdGZvcm1UZXh0dXJlKENWUGl4ZWxCdWZmZXJSZWYgaW1hZ2UsIHNpCiAgICAgcmV0dXJu
IHRydWU7CiAjZWxzZQogICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZiAvLyBVU0UoSU9TVVJGQUNF
KQorI2VuZGlmIC8vIEhBVkUoSU9TVVJGQUNFKQogfQogCiBib29sIFZpZGVvVGV4dHVyZUNvcGll
ckNWOjpjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoVGV4dHVyZVR5cGUgaW5wdXRW
aWRlb1RleHR1cmUsIHNpemVfdCB3aWR0aCwgc2l6ZV90IGhlaWdodCwgUGxhdGZvcm0zRE9iamVj
dCBvdXRwdXRUZXh0dXJlLCBHQzNEZW51bSBvdXRwdXRUYXJnZXQsIEdDM0RpbnQgbGV2ZWwsIEdD
M0RlbnVtIGludGVybmFsRm9ybWF0LCBHQzNEZW51bSBmb3JtYXQsIEdDM0RlbnVtIHR5cGUsIGJv
b2wgcHJlbXVsdGlwbHlBbHBoYSwgYm9vbCBmbGlwWSwgYm9vbCBzd2FwQ29sb3JDaGFubmVscykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvVGV4
dHVyZUNvcGllckNWLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRl
b1RleHR1cmVDb3BpZXJDVi5oCmluZGV4IGMzNTQxYWFkM2Y4ZDM0MzM3YTc4MDJjN2NhMjFiNThh
ZGU2NDdhNjEuLjQ3MmY5ZjE2MTE4ODc5ODlmMDI1Njk4YjA3NWNlMjU4YzYxMzVmOTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvVGV4dHVyZUNv
cGllckNWLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9U
ZXh0dXJlQ29waWVyQ1YuaApAQCAtNjAsNyArNjAsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgaW5p
dGlhbGl6ZUNvbnRleHRPYmplY3RzKCk7CiAgICAgYm9vbCBpbml0aWFsaXplVVZDb250ZXh0T2Jq
ZWN0cygpOwogCi0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKICAgICB1
bnNpZ25lZCBsYXN0VGV4dHVyZVNlZWQoR0MzRHVpbnQgdGV4dHVyZSkKICAgICB7CiAgICAgICAg
IGF1dG8gaXRlcmF0b3IgPSBtX2xhc3RUZXh0dXJlU2VlZC5maW5kKHRleHR1cmUpOwpAQCAtOTAs
NyArOTAsNyBAQCBwcml2YXRlOgogICAgIEdDM0RpbnQgbV95VGV4dHVyZVNpemVVbmlmb3JtTG9j
YXRpb24geyAtMSB9OwogICAgIEdDM0RpbnQgbV91dlRleHR1cmVTaXplVW5pZm9ybUxvY2F0aW9u
IHsgLTEgfTsKIAotI2lmIFVTRShJT1NVUkZBQ0UpCisjaWYgSEFWRShJT1NVUkZBQ0UpCiAgICAg
Ym9vbCBtX2xhc3RGbGlwWSB7IGZhbHNlIH07CiAgICAgVW5zYWZlUG9pbnRlcjxJT1N1cmZhY2VS
ZWY+IG1fbGFzdFN1cmZhY2U7CiAgICAgdWludDMyX3QgbV9sYXN0U3VyZmFjZVNlZWQgeyAwIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
TGF5ZXJCYWNraW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJl
ZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5oCmluZGV4IDI4YTQ5ODA1N2I4ZTQxNzNjYjIzOTBi
ZmM3NWVhZTdhNWQzMGE5YzAuLjg4NWIwNmM3ZWFiY2JkMWU1MzZjN2E5MmZiOGMxYTY5MWE0YWVj
MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVMYXllckJhY2tpbmdTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5oCkBAIC03NSw3ICs3NSw3IEBAIHB1Ymxp
YzoKIAogICAgIGJvb2wgaGFzRnJvbnRCdWZmZXIoKSBjb25zdAogICAgIHsKLSNpZiBVU0UoSU9T
VVJGQUNFKQorI2lmIEhBVkUoSU9TVVJGQUNFKQogICAgICAgICBpZiAobV9hY2NlbGVyYXRlc0Ry
YXdpbmcpCiAgICAgICAgICAgICByZXR1cm4gISFtX2Zyb250QnVmZmVyLnN1cmZhY2U7CiAjZW5k
aWYKQEAgLTk5LDcgKzk5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNsZWFyQmFja2luZ1N0b3Jl
KCk7CiAgICAgdm9pZCBzd2FwVG9WYWxpZEZyb250QnVmZmVyKCk7CiAKLSNpZiBVU0UoSU9TVVJG
QUNFKQorI2lmIEhBVkUoSU9TVVJGQUNFKQogICAgIFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0
IHN1cmZhY2VCdWZmZXJGb3JtYXQoKSBjb25zdDsKICNlbmRpZgogCkBAIC0xMTUsMTQgKzExNSwx
NCBAQCBwcml2YXRlOgogCiAgICAgc3RydWN0IEJ1ZmZlciB7CiAgICAgICAgIFJlZlB0cjxTaGFy
ZWFibGVCaXRtYXA+IGJpdG1hcDsKLSNpZiBVU0UoSU9TVVJGQUNFKQorI2lmIEhBVkUoSU9TVVJG
QUNFKQogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPiBzdXJmYWNl
OwogICAgICAgICBib29sIGlzVm9sYXRpbGUgPSBmYWxzZTsKICNlbmRpZgogCiAgICAgICAgIGV4
cGxpY2l0IG9wZXJhdG9yIGJvb2woKSBjb25zdAogICAgICAgICB7Ci0jaWYgVVNFKElPU1VSRkFD
RSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKICAgICAgICAgICAgIGlmIChzdXJmYWNlKQogICAgICAg
ICAgICAgICAgIHJldHVybiB0cnVlOwogI2VuZGlmCkBAIC0xMzcsNyArMTM3LDcgQEAgcHJpdmF0
ZToKIAogICAgIEJ1ZmZlciBtX2Zyb250QnVmZmVyOwogICAgIEJ1ZmZlciBtX2JhY2tCdWZmZXI7
Ci0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKICAgICBCdWZmZXIgbV9z
ZWNvbmRhcnlCYWNrQnVmZmVyOwogICAgIFdlYkNvcmU6Ok1hY2hTZW5kUmlnaHQgbV9mcm9udEJ1
ZmZlclNlbmRSaWdodDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tCmluZGV4
IDQwN2Y3NTZhNTUyODhkOGMzMjRmNjQ1M2U5OGRjZjZlMzY0N2ZkZTQuLjA0ZWJjZDZjYzQzMjg5
MzAyMTYzNzJkMmFhN2JiNWU5MDdkOGY2YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUu
bW0KQEAgLTQwLDcgKzQwLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvV2ViTGF5ZXIuaD4KICNpbXBv
cnQgPHBhbC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oPgogCi0jaWYgVVNFKElPU1VSRkFDRSkK
KyNpZiBIQVZFKElPU1VSRkFDRSkKICNpbXBvcnQgPG1hY2gvbWFjaF9wb3J0Lmg+CiAjZW5kaWYK
IApAQCAtNzIsNyArNzIsNyBAQCBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6flJlbW90ZUxheWVy
QmFja2luZ1N0b3JlKCkKIAogdm9pZCBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6ZW5zdXJlQmFj
a2luZ1N0b3JlKEZsb2F0U2l6ZSBzaXplLCBmbG9hdCBzY2FsZSwgYm9vbCBhY2NlbGVyYXRlc0Ry
YXdpbmcsIGJvb2wgZGVlcENvbG9yLCBib29sIGlzT3BhcXVlKQogewotI2lmICFVU0UoSU9TVVJG
QUNFKQorI2lmICFIQVZFKElPU1VSRkFDRSkKICAgICBhY2NlbGVyYXRlc0RyYXdpbmcgPSBmYWxz
ZTsKICNlbmRpZgogICAgIGlmIChtX3NpemUgPT0gc2l6ZSAmJiBtX3NjYWxlID09IHNjYWxlICYm
IG1fZGVlcENvbG9yID09IGRlZXBDb2xvciAmJiBtX2FjY2VsZXJhdGVzRHJhd2luZyA9PSBhY2Nl
bGVyYXRlc0RyYXdpbmcgJiYgbV9pc09wYXF1ZSA9PSBpc09wYXF1ZSkKQEAgLTk3LDcgKzk3LDcg
QEAgdm9pZCBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6Y2xlYXJCYWNraW5nU3RvcmUoKQogewog
ICAgIG1fZnJvbnRCdWZmZXIuZGlzY2FyZCgpOwogICAgIG1fYmFja0J1ZmZlci5kaXNjYXJkKCk7
Ci0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKICAgICBtX3NlY29uZGFy
eUJhY2tCdWZmZXIuZGlzY2FyZCgpOwogI2VuZGlmCiB9CkBAIC0xMDksNyArMTA5LDcgQEAgdm9p
ZCBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2Rlcikg
Y29uc3QKICAgICBlbmNvZGVyIDw8IG1fYWNjZWxlcmF0ZXNEcmF3aW5nOwogICAgIGVuY29kZXIg
PDwgbV9pc09wYXF1ZTsKIAotI2lmIFVTRShJT1NVUkZBQ0UpCisjaWYgSEFWRShJT1NVUkZBQ0Up
CiAgICAgaWYgKG1fYWNjZWxlcmF0ZXNEcmF3aW5nKSB7CiAgICAgICAgIGlmIChtX2Zyb250QnVm
ZmVyLnN1cmZhY2UpCiAgICAgICAgICAgICBlbmNvZGVyIDw8IG1fZnJvbnRCdWZmZXIuc3VyZmFj
ZS0+Y3JlYXRlU2VuZFJpZ2h0KCk7CkBAIC0xNDAsNyArMTQwLDcgQEAgYm9vbCBSZW1vdGVMYXll
ckJhY2tpbmdTdG9yZTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgUmVtb3RlTGF5ZXJC
YWNraW5nU3QKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX2lzT3BhcXVlKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCi0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VS
RkFDRSkKICAgICBpZiAocmVzdWx0Lm1fYWNjZWxlcmF0ZXNEcmF3aW5nKSB7CiAgICAgICAgIE1h
Y2hTZW5kUmlnaHQgc2VuZFJpZ2h0OwogICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNlbmRS
aWdodCkpCkBAIC0xNzksNyArMTc5LDcgQEAgSW50U2l6ZSBSZW1vdGVMYXllckJhY2tpbmdTdG9y
ZTo6YmFja2luZ1N0b3JlU2l6ZSgpIGNvbnN0CiAKIHVuc2lnbmVkIFJlbW90ZUxheWVyQmFja2lu
Z1N0b3JlOjpieXRlc1BlclBpeGVsKCkgY29uc3QKIHsKLSNpZiBVU0UoSU9TVVJGQUNFKQorI2lm
IEhBVkUoSU9TVVJGQUNFKQogICAgIHN3aXRjaCAoc3VyZmFjZUJ1ZmZlckZvcm1hdCgpKSB7CiAg
ICAgY2FzZSBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdDo6UkdCQTogcmV0dXJuIDQ7CiAgICAg
Y2FzZSBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdDo6WVVWNDIyOiByZXR1cm4gMjsKQEAgLTE5
NCw3ICsxOTQsNyBAQCB2b2lkIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpzd2FwVG9WYWxpZEZy
b250QnVmZmVyKCkKIHsKICAgICBJbnRTaXplIGV4cGFuZGVkU2NhbGVkU2l6ZSA9IGJhY2tpbmdT
dG9yZVNpemUoKTsKIAotI2lmIFVTRShJT1NVUkZBQ0UpCisjaWYgSEFWRShJT1NVUkZBQ0UpCiAg
ICAgaWYgKG1fYWNjZWxlcmF0ZXNEcmF3aW5nKSB7CiAgICAgICAgIGlmICghbV9iYWNrQnVmZmVy
LnN1cmZhY2UgfHwgbV9iYWNrQnVmZmVyLnN1cmZhY2UtPmlzSW5Vc2UoKSkgewogICAgICAgICAg
ICAgc3RkOjpzd2FwKG1fYmFja0J1ZmZlciwgbV9zZWNvbmRhcnlCYWNrQnVmZmVyKTsKQEAgLTI1
NCw3ICsyNTQsNyBAQCBib29sIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpkaXNwbGF5KCkKIAog
ICAgIHN3YXBUb1ZhbGlkRnJvbnRCdWZmZXIoKTsKIAotI2lmIFVTRShJT1NVUkZBQ0UpCisjaWYg
SEFWRShJT1NVUkZBQ0UpCiAgICAgaWYgKG1fYWNjZWxlcmF0ZXNEcmF3aW5nKSB7CiAgICAgICAg
IFJldGFpblB0cjxDR0ltYWdlUmVmPiBiYWNrSW1hZ2U7CiAgICAgICAgIGlmIChtX2JhY2tCdWZm
ZXIuc3VyZmFjZSAmJiAhd2lsbFBhaW50RW50aXJlQmFja2luZ1N0b3JlKQpAQCAtMzk5LDcgKzM5
OSw3IEBAIHZvaWQgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmFwcGx5QmFja2luZ1N0b3JlVG9M
YXllcihDQUxheWVyICpsYXllciwgTGF5ZXJDb250CiB7CiAgICAgbGF5ZXIuY29udGVudHNPcGFx
dWUgPSBtX2lzT3BhcXVlOwogCi0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFD
RSkKICAgICBpZiAoYWNjZWxlcmF0ZXNEcmF3aW5nKCkpIHsKICAgICAgICAgc3dpdGNoIChjb250
ZW50c1R5cGUpIHsKICAgICAgICAgY2FzZSBMYXllckNvbnRlbnRzVHlwZTo6SU9TdXJmYWNlOgpA
QCAtNDI3LDcgKzQyNyw3IEBAIFJldGFpblB0cjxDR0NvbnRleHRSZWY+IFJlbW90ZUxheWVyQmFj
a2luZ1N0b3JlOjp0YWtlRnJvbnRDb250ZXh0UGVuZGluZ0ZsdXNoKCkKICAgICByZXR1cm4gV1RG
TW92ZShtX2Zyb250Q29udGV4dFBlbmRpbmdGbHVzaCk7CiB9CiAKLSNpZiBVU0UoSU9TVVJGQUNF
KQorI2lmIEhBVkUoSU9TVVJGQUNFKQogYm9vbCBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6c2V0
QnVmZmVyVm9sYXRpbGl0eShCdWZmZXJUeXBlIHR5cGUsIGJvb2wgaXNWb2xhdGlsZSkKIHsKICAg
ICBzd2l0Y2ggKHR5cGUpIHsKQEAgLTQ4MCw3ICs0ODAsNyBAQCBib29sIFJlbW90ZUxheWVyQmFj
a2luZ1N0b3JlOjpzZXRCdWZmZXJWb2xhdGlsaXR5KEJ1ZmZlclR5cGUsIGJvb2wpCiAKIHZvaWQg
UmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OkJ1ZmZlcjo6ZGlzY2FyZCgpCiB7Ci0jaWYgVVNFKElP
U1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKICAgICBpZiAoc3VyZmFjZSkKICAgICAgICAg
V2ViQ29yZTo6SU9TdXJmYWNlOjptb3ZlVG9Qb29sKFdURk1vdmUoc3VyZmFjZSkpOwogICAgIGlz
Vm9sYXRpbGUgPSBmYWxzZTsKQEAgLTQ4OCw3ICs0ODgsNyBAQCB2b2lkIFJlbW90ZUxheWVyQmFj
a2luZ1N0b3JlOjpCdWZmZXI6OmRpc2NhcmQoKQogICAgIGJpdG1hcCA9IG51bGxwdHI7CiB9CiAK
LSNpZiBVU0UoSU9TVVJGQUNFKQorI2lmIEhBVkUoSU9TVVJGQUNFKQogV2ViQ29yZTo6SU9TdXJm
YWNlOjpGb3JtYXQgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OnN1cmZhY2VCdWZmZXJGb3JtYXQo
KSBjb25zdAogewogICAgIGlmIChtX2RlZXBDb2xvcikKQEAgLTQ5Niw2ICs0OTYsNiBAQCBXZWJD
b3JlOjpJT1N1cmZhY2U6OkZvcm1hdCBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6c3VyZmFjZUJ1
ZmZlckZvcm1hdCgpIGNvbnN0CiAKICAgICByZXR1cm4gV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3Jt
YXQ6OlJHQkE7CiB9Ci0jZW5kaWYgLy8gVVNFKElPU1VSRkFDRSkKKyNlbmRpZiAvLyBIQVZFKElP
U1VSRkFDRSkKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9jZy9TaGFyZWFibGVCaXRtYXBDRy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9jZy9TaGFyZWFibGVCaXRtYXBDRy5jcHAKaW5kZXggMzgwNjIxNzc2ZDcxOWI4YTQwYTlkMmVk
NmFlMGE0NjVkNjgzMDNmZi4uNDFiMmZlYTMyYjE1M2YzYmY0ZmVmNjU5MmUyOWUyMzU0MmU2NTQ1
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvY2cvU2hhcmVhYmxlQml0bWFwQ0cu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2NnL1NoYXJlYWJsZUJpdG1hcENHLmNwcApA
QCAtNzMsNyArNzMsNyBAQCBzdGF0aWMgQ0dCaXRtYXBJbmZvIGJpdG1hcEluZm8oY29uc3QgU2hh
cmVhYmxlQml0bWFwOjpDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aQogQ2hlY2tlZDx1bnNpZ25l
ZCwgUmVjb3JkT3ZlcmZsb3c+IFNoYXJlYWJsZUJpdG1hcDo6Y2FsY3VsYXRlQnl0ZXNQZXJSb3co
V2ViQ29yZTo6SW50U2l6ZSBzaXplLCBjb25zdCBDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9u
KQogewogICAgIHVuc2lnbmVkIGJ5dGVzUGVyUm93ID0gY2FsY3VsYXRlQnl0ZXNQZXJQaXhlbChj
b25maWd1cmF0aW9uKSAqIHNpemUud2lkdGgoKTsKLSNpZiBVU0UoSU9TVVJGQUNFKQorI2lmIEhB
VkUoSU9TVVJGQUNFKQogICAgIHJldHVybiBJT1N1cmZhY2VBbGlnblByb3BlcnR5KGtJT1N1cmZh
Y2VCeXRlc1BlclJvdywgYnl0ZXNQZXJSb3cpOwogI2Vsc2UKICAgICByZXR1cm4gYnl0ZXNQZXJS
b3c7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpp
bmRleCAyMGU0Y2Y0OWQyNDhjNjFmZjY1MTI1ZmNhZDMwMmZhNmUyNzMzMzZjLi44YzE1M2RiMjVj
ODVkNTM3ZDg1MGM2MjFkNjhlOGFmODE5MzRhZjQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTE4NzEsMTMgKzE4NzEsMTQgQEAgLSAo
UmVmUHRyPFdlYktpdDo6Vmlld1NuYXBzaG90PilfdGFrZVZpZXdTbmFwc2hvdAogCiAgICAgQ0FU
cmFuc2Zvcm0zRCB0cmFuc2Zvcm0gPSBDQVRyYW5zZm9ybTNETWFrZVNjYWxlKGRldmljZVNjYWxl
LCBkZXZpY2VTY2FsZSwgMSk7CiAKLSNpZiBVU0UoSU9TVVJGQUNFKQorI2lmIEhBVkUoSU9TVVJG
QUNFKQogICAgIFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0IHNuYXBzaG90Rm9ybWF0ID0gV2Vi
Q29yZTo6c2NyZWVuU3VwcG9ydHNFeHRlbmRlZENvbG9yKCkgPyBXZWJDb3JlOjpJT1N1cmZhY2U6
OkZvcm1hdDo6UkdCMTAgOiBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdDo6UkdCQTsKICAgICBh
dXRvIHN1cmZhY2UgPSBXZWJDb3JlOjpJT1N1cmZhY2U6OmNyZWF0ZShXZWJDb3JlOjpleHBhbmRl
ZEludFNpemUoc25hcHNob3RTaXplKSwgV2ViQ29yZTo6c1JHQkNvbG9yU3BhY2VSZWYoKSwgc25h
cHNob3RGb3JtYXQpOwogICAgIGlmICghc3VyZmFjZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAgICAgQ0FSZW5kZXJTZXJ2ZXJSZW5kZXJMYXllcldpdGhUcmFuc2Zvcm0oTUFDSF9QT1JUX05V
TEwsIHNlbGYubGF5ZXIuY29udGV4dC5jb250ZXh0SWQsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0
X3Q+KHNlbGYubGF5ZXIpLCBzdXJmYWNlLT5zdXJmYWNlKCksIDAsIDAsICZ0cmFuc2Zvcm0pOwog
CisjaWYgSEFWRShJT1NVUkZBQ0VfQUNDRUxFUkFUT1IpCiAgICAgV2ViQ29yZTo6SU9TdXJmYWNl
OjpGb3JtYXQgY29tcHJlc3NlZEZvcm1hdCA9IFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0OjpZ
VVY0MjI7CiAgICAgaWYgKFdlYkNvcmU6OklPU3VyZmFjZTo6YWxsb3dDb252ZXJzaW9uRnJvbUZv
cm1hdFRvRm9ybWF0KHNuYXBzaG90Rm9ybWF0LCBjb21wcmVzc2VkRm9ybWF0KSkgewogICAgICAg
ICBSZWZQdHI8V2ViS2l0OjpWaWV3U25hcHNob3Q+IHZpZXdTbmFwc2hvdCA9IFdlYktpdDo6Vmll
d1NuYXBzaG90OjpjcmVhdGUobnVsbHB0cik7CkBAIC0xODg4LDkgKzE4ODksMTAgQEAgLSAoUmVm
UHRyPFdlYktpdDo6Vmlld1NuYXBzaG90PilfdGFrZVZpZXdTbmFwc2hvdAogCiAgICAgICAgIHJl
dHVybiB2aWV3U25hcHNob3Q7CiAgICAgfQorI2VuZGlmIC8vIEhBVkUoSU9TVVJGQUNFX0FDQ0VM
RVJBVE9SKQogCiAgICAgcmV0dXJuIFdlYktpdDo6Vmlld1NuYXBzaG90OjpjcmVhdGUoV1RGTW92
ZShzdXJmYWNlKSk7Ci0jZWxzZQorI2Vsc2UgLy8gSEFWRShJT1NVUkZBQ0UpCiAgICAgdWludDMy
X3Qgc2xvdElEID0gW1dlYktpdDo6Vmlld1NuYXBzaG90U3RvcmU6OnNuYXBzaG90dGluZ0NvbnRl
eHQoKSBjcmVhdGVJbWFnZVNsb3Q6c25hcHNob3RTaXplIGhhc0FscGhhOllFU107CiAKICAgICBp
ZiAoIXNsb3RJRCkKQEAgLTE4OTksNyArMTkwMSw3IEBAIC0gKFJlZlB0cjxXZWJLaXQ6OlZpZXdT
bmFwc2hvdD4pX3Rha2VWaWV3U25hcHNob3QKICAgICBDQVJlbmRlclNlcnZlckNhcHR1cmVMYXll
cldpdGhUcmFuc2Zvcm0oTUFDSF9QT1JUX05VTEwsIHNlbGYubGF5ZXIuY29udGV4dC5jb250ZXh0
SWQsICh1aW50NjRfdClzZWxmLmxheWVyLCBzbG90SUQsIDAsIDAsICZ0cmFuc2Zvcm0pOwogICAg
IFdlYkNvcmU6OkludFNpemUgaW1hZ2VTaXplID0gV2ViQ29yZTo6ZXhwYW5kZWRJbnRTaXplKFdl
YkNvcmU6OkZsb2F0U2l6ZShzbmFwc2hvdFNpemUpKTsKICAgICByZXR1cm4gV2ViS2l0OjpWaWV3
U25hcHNob3Q6OmNyZWF0ZShzbG90SUQsIGltYWdlU2l6ZSwgKGltYWdlU2l6ZS5hcmVhKCkgKiA0
KS51bnNhZmVHZXQoKSk7Ci0jZW5kaWYKKyNlbmRpZiAvLyBIQVZFKElPU1VSRkFDRSkKIH0KIAog
LSAodm9pZClfem9vbVRvUG9pbnQ6KFdlYkNvcmU6OkZsb2F0UG9pbnQpcG9pbnQgYXRTY2FsZToo
ZG91YmxlKXNjYWxlIGFuaW1hdGVkOihCT09MKWFuaW1hdGVkCkBAIC01MjYxLDcgKzUyNjMsNyBA
QCAtICh2b2lkKV9zbmFwc2hvdFJlY3Q6KENHUmVjdClyZWN0SW5WaWV3Q29vcmRpbmF0ZXMgaW50
b0ltYWdlT2ZXaWR0aDooQ0dGbG9hdClpbQogICAgIENHRmxvYXQgaW1hZ2VIZWlnaHQgPSBpbWFn
ZVNjYWxlICogc25hcHNob3RSZWN0SW5Db250ZW50Q29vcmRpbmF0ZXMuc2l6ZS5oZWlnaHQ7CiAg
ICAgQ0dTaXplIGltYWdlU2l6ZSA9IENHU2l6ZU1ha2UoaW1hZ2VXaWR0aCwgaW1hZ2VIZWlnaHQp
OwogCi0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKICAgICAvLyBJZiB3
ZSBhcmUgcGFyZW50ZWQgYW5kIHRodXMgd29uJ3QgaW5jdXIgYSBzaWduaWZpY2FudCBwZW5hbHR5
IGZyb20gcGFnaW5nIGluIHRpbGVzLCBzbmFwc2hvdCB0aGUgdmlldyBoaWVyYXJjaHkgZGlyZWN0
bHkuCiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAogI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWFQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCmluZGV4IGUyM2M5ZWUyZjRiMWMxNGEx
YzA4MDM2NjBmZGFhMTQ4MTgwMjMwYzguLjgwOTM2Nzc1OWIwY2MxMGYyOGFkM2U3OGJlN2UxN2U5
ODBkZDM0MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVy
VHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVBy
b3h5Lm1tCkBAIC0xMTAsNyArMTEwLDcgQEAgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94
eTo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eShXZWJQYWdlUHJveHkmIHcKICAgICA6
IERyYXdpbmdBcmVhUHJveHkoRHJhd2luZ0FyZWFUeXBlUmVtb3RlTGF5ZXJUcmVlLCB3ZWJQYWdl
UHJveHkpCiAgICAgLCBtX3JlbW90ZUxheWVyVHJlZUhvc3QoKnRoaXMpCiB7Ci0jaWYgVVNFKElP
U1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKICAgICAvLyBXZSBkb24ndCB3YW50IHRvIHBv
b2wgc3VyZmFjZXMgaW4gdGhlIFVJIHByb2Nlc3MuCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBk
byB0aGlzIHNvbWV3aGVyZSBlbHNlLgogICAgIElPU3VyZmFjZVBvb2w6OnNoYXJlZFBvb2woKS5z
ZXRQb29sU2l6ZSgwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90
ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVIb3N0Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZUhvc3QubW0KaW5kZXggYzg3ZDc1MmM3
MTY2NWFhZDZkNDUyNDQ5YjU2M2IxNDlmZjc4NzU2Mi4uOWRmMWRjZmIyMTljYWI3ZTRiMTE4NDc4
Nzg0M2M1OThiMTA1NmM5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVt
b3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZUhvc3QubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZUhvc3QubW0KQEAgLTI4OSw3
ICsyODksNyBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZUhvc3Q6OmRldGFjaFJvb3RMYXllcigpCiAg
ICAgbV9yb290TGF5ZXIgPSBudWxscHRyOwogfQogCi0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBI
QVZFKElPU1VSRkFDRSkKIHN0YXRpYyB2b2lkIHJlY3Vyc2l2ZWx5TWFwSU9TdXJmYWNlQmFja2lu
Z1N0b3JlKENBTGF5ZXIgKmxheWVyKQogewogICAgIGlmIChsYXllci5jb250ZW50cyAmJiBDRkdl
dFR5cGVJRChsYXllci5jb250ZW50cykgPT0gQ0FNYWNoUG9ydEdldFR5cGVJRCgpKSB7CkBAIC0z
MDUsNyArMzA1LDcgQEAgc3RhdGljIHZvaWQgcmVjdXJzaXZlbHlNYXBJT1N1cmZhY2VCYWNraW5n
U3RvcmUoQ0FMYXllciAqbGF5ZXIpCiAKIHZvaWQgUmVtb3RlTGF5ZXJUcmVlSG9zdDo6bWFwQWxs
SU9TdXJmYWNlQmFja2luZ1N0b3JlKCkKIHsKLSNpZiBVU0UoSU9TVVJGQUNFKQorI2lmIEhBVkUo
SU9TVVJGQUNFKQogICAgIHJlY3Vyc2l2ZWx5TWFwSU9TdXJmYWNlQmFja2luZ1N0b3JlKGFzTGF5
ZXIobV9yb290TGF5ZXIpKTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL1ZpZXdTbmFwc2hvdFN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvVmlld1NuYXBzaG90U3RvcmUuaAppbmRleCA3MGI1ODc5YWIyZjNhOWRlZjg2NWYzOTVk
MDk1OGM2NmZjZTVmMjM1Li5hZmVkMzMyMzhjYzg2NTEwZGMyNTcwZjBmNTNmZTIxZDIyNDVmNzdk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVmlld1NuYXBzaG90U3Rv
cmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVmlld1NuYXBzaG90U3RvcmUu
aApAQCAtNTMsNyArNTMsNyBAQCBjbGFzcyBXZWJQYWdlUHJveHk7CiAKIGNsYXNzIFZpZXdTbmFw
c2hvdCA6IHB1YmxpYyBSZWZDb3VudGVkPFZpZXdTbmFwc2hvdD4gewogcHVibGljOgotI2lmIFVT
RShJT1NVUkZBQ0UpCisjaWYgSEFWRShJT1NVUkZBQ0UpCiAgICAgc3RhdGljIFJlZjxWaWV3U25h
cHNob3Q+IGNyZWF0ZShzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPik7CiAjZWxz
ZQogICAgIHN0YXRpYyBSZWY8Vmlld1NuYXBzaG90PiBjcmVhdGUodWludDMyX3Qgc2xvdElELCBX
ZWJDb3JlOjpJbnRTaXplLCBzaXplX3QgaW1hZ2VTaXplSW5CeXRlcyk7CkBAIC03OCw3ICs3OCw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldERldmljZVNjYWxlRmFjdG9yKGZsb2F0IGRldmljZVNj
YWxlRmFjdG9yKSB7IG1fZGV2aWNlU2NhbGVGYWN0b3IgPSBkZXZpY2VTY2FsZUZhY3RvcjsgfQog
ICAgIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKCkgY29uc3QgeyByZXR1cm4gbV9kZXZpY2VTY2Fs
ZUZhY3RvcjsgfQogCi0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKICAg
ICBXZWJDb3JlOjpJT1N1cmZhY2UqIHN1cmZhY2UoKSBjb25zdCB7IHJldHVybiBtX3N1cmZhY2Uu
Z2V0KCk7IH0KIAogICAgIHNpemVfdCBpbWFnZVNpemVJbkJ5dGVzKCkgY29uc3QgeyByZXR1cm4g
bV9zdXJmYWNlID8gbV9zdXJmYWNlLT50b3RhbEJ5dGVzKCkgOiAwOyB9CkBAIC05Myw3ICs5Myw3
IEBAIHB1YmxpYzoKICNlbmRpZgogCiBwcml2YXRlOgotI2lmIFVTRShJT1NVUkZBQ0UpCisjaWYg
SEFWRShJT1NVUkZBQ0UpCiAgICAgZXhwbGljaXQgVmlld1NuYXBzaG90KHN0ZDo6dW5pcXVlX3B0
cjxXZWJDb3JlOjpJT1N1cmZhY2U+KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJ
T1N1cmZhY2U+IG1fc3VyZmFjZTsKQEAgLTEyNyw3ICsxMjcsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZXREaXNhYmxlU25hcHNob3RWb2xhdGlsaXR5Rm9yVGVzdGluZyhib29sIGRpc2FibGUpIHsg
bV9kaXNhYmxlU25hcHNob3RWb2xhdGlsaXR5ID0gZGlzYWJsZTsgfQogICAgIGJvb2wgZGlzYWJs
ZVNuYXBzaG90Vm9sYXRpbGl0eUZvclRlc3RpbmcoKSBjb25zdCB7IHJldHVybiBtX2Rpc2FibGVT
bmFwc2hvdFZvbGF0aWxpdHk7IH0KIAotI2lmICFVU0UoSU9TVVJGQUNFKQorI2lmICFIQVZFKElP
U1VSRkFDRSkKICAgICBzdGF0aWMgQ0FDb250ZXh0ICpzbmFwc2hvdHRpbmdDb250ZXh0KCk7CiAj
ZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1ZpZXdTbmFw
c2hvdFN0b3JlLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1ZpZXdTbmFwc2hvdFN0
b3JlLm1tCmluZGV4IGFlZjdjMzM2MjIxMWIxOGVkY2U4NTIxMzY1N2I5YTUxMzdlNmJlMTEuLjg2
ZGFlNWY3MTg1YTI3N2E5OWE0MzQ2MTg4NjA2MGIxZTRhOWJjNmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9WaWV3U25hcHNob3RTdG9yZS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9tYWMvVmlld1NuYXBzaG90U3RvcmUubW0KQEAgLTYwLDcgKzYwLDcg
QEAgVmlld1NuYXBzaG90U3RvcmUmIFZpZXdTbmFwc2hvdFN0b3JlOjpzaW5nbGV0b24oKQogICAg
IHJldHVybiBzdG9yZTsKIH0KIAotI2lmICFVU0UoSU9TVVJGQUNFKQorI2lmICFIQVZFKElPU1VS
RkFDRSkKIENBQ29udGV4dCAqVmlld1NuYXBzaG90U3RvcmU6OnNuYXBzaG90dGluZ0NvbnRleHQo
KQogewogICAgIHN0YXRpYyBDQUNvbnRleHQgKmNvbnRleHQ7CkBAIC0xMzEsNyArMTMxLDcgQEAg
dm9pZCBWaWV3U25hcHNob3RTdG9yZTo6ZGlzY2FyZFNuYXBzaG90SW1hZ2VzKCkKICAgICAgICAg
bV9zbmFwc2hvdHNXaXRoSW1hZ2VzLmZpcnN0KCktPmNsZWFySW1hZ2UoKTsKIH0KIAotI2lmIFVT
RShJT1NVUkZBQ0UpCisjaWYgSEFWRShJT1NVUkZBQ0UpCiBSZWY8Vmlld1NuYXBzaG90PiBWaWV3
U25hcHNob3Q6OmNyZWF0ZShzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPiBzdXJm
YWNlKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFZpZXdTbmFwc2hvdChXVEZNb3ZlKHN1
cmZhY2UpKSk7CkBAIC0xNDMsNyArMTQzLDcgQEAgUmVmPFZpZXdTbmFwc2hvdD4gVmlld1NuYXBz
aG90OjpjcmVhdGUodWludDMyX3Qgc2xvdElELCBJbnRTaXplIHNpemUsIHNpemVfdCBpbWEKIH0K
ICNlbmRpZgogCi0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKIFZpZXdT
bmFwc2hvdDo6Vmlld1NuYXBzaG90KHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJT1N1cmZhY2U+
IHN1cmZhY2UpCiAgICAgOiBtX3N1cmZhY2UoV1RGTW92ZShzdXJmYWNlKSkKICNlbHNlCkBAIC0x
NjIsNyArMTYyLDcgQEAgVmlld1NuYXBzaG90Ojp+Vmlld1NuYXBzaG90KCkKICAgICBjbGVhcklt
YWdlKCk7CiB9CiAKLSNpZiBVU0UoSU9TVVJGQUNFKQorI2lmIEhBVkUoSU9TVVJGQUNFKQogdm9p
ZCBWaWV3U25hcHNob3Q6OnNldFN1cmZhY2Uoc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3Vy
ZmFjZT4gc3VyZmFjZSkKIHsKICAgICBBU1NFUlQoIW1fc3VyZmFjZSk7CkBAIC0xNzgsNyArMTc4
LDcgQEAgdm9pZCBWaWV3U25hcHNob3Q6OnNldFN1cmZhY2Uoc3RkOjp1bmlxdWVfcHRyPFdlYkNv
cmU6OklPU3VyZmFjZT4gc3VyZmFjZSkKIAogYm9vbCBWaWV3U25hcHNob3Q6Omhhc0ltYWdlKCkg
Y29uc3QKIHsKLSNpZiBVU0UoSU9TVVJGQUNFKQorI2lmIEhBVkUoSU9TVVJGQUNFKQogICAgIHJl
dHVybiAhIW1fc3VyZmFjZTsKICNlbHNlCiAgICAgcmV0dXJuIG1fc2xvdElEOwpAQCAtMTkyLDcg
KzE5Miw3IEBAIHZvaWQgVmlld1NuYXBzaG90OjpjbGVhckltYWdlKCkKIAogICAgIFZpZXdTbmFw
c2hvdFN0b3JlOjpzaW5nbGV0b24oKS53aWxsUmVtb3ZlSW1hZ2VGcm9tU25hcHNob3QoKnRoaXMp
OwogCi0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKICAgICBtX3N1cmZh
Y2UgPSBudWxscHRyOwogI2Vsc2UKICAgICBbVmlld1NuYXBzaG90U3RvcmU6OnNuYXBzaG90dGlu
Z0NvbnRleHQoKSBkZWxldGVTbG90Om1fc2xvdElEXTsKQEAgLTIwMSw3ICsyMDEsNyBAQCB2b2lk
IFZpZXdTbmFwc2hvdDo6Y2xlYXJJbWFnZSgpCiAjZW5kaWYKIH0KIAotI2lmIFVTRShJT1NVUkZB
Q0UpCisjaWYgSEFWRShJT1NVUkZBQ0UpCiBXZWJDb3JlOjpJT1N1cmZhY2U6OlN1cmZhY2VTdGF0
ZSBWaWV3U25hcHNob3Q6OnNldFZvbGF0aWxlKGJvb2wgYmVjb21lVm9sYXRpbGUpCiB7CiAgICAg
aWYgKFZpZXdTbmFwc2hvdFN0b3JlOjpzaW5nbGV0b24oKS5kaXNhYmxlU25hcHNob3RWb2xhdGls
aXR5Rm9yVGVzdGluZygpKQpAQCAtMjE2LDcgKzIxNiw3IEBAIFdlYkNvcmU6OklPU3VyZmFjZTo6
U3VyZmFjZVN0YXRlIFZpZXdTbmFwc2hvdDo6c2V0Vm9sYXRpbGUoYm9vbCBiZWNvbWVWb2xhdGls
ZSkKIAogaWQgVmlld1NuYXBzaG90Ojphc0xheWVyQ29udGVudHMoKQogewotI2lmIFVTRShJT1NV
UkZBQ0UpCisjaWYgSEFWRShJT1NVUkZBQ0UpCiAgICAgaWYgKCFtX3N1cmZhY2UpCiAgICAgICAg
IHJldHVybiBudWxscHRyOwogCkBAIC0yMzMsNyArMjMzLDcgQEAgaWQgVmlld1NuYXBzaG90Ojph
c0xheWVyQ29udGVudHMoKQogCiBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gVmlld1NuYXBzaG90Ojph
c0ltYWdlRm9yVGVzdGluZygpCiB7Ci0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VS
RkFDRSkKICAgICBpZiAoIW1fc3VyZmFjZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKZGlm
ZiAtLWdpdCBhL1dlYktpdExpYnJhcmllcy9DaGFuZ2VMb2cgYi9XZWJLaXRMaWJyYXJpZXMvQ2hh
bmdlTG9nCmluZGV4IDMwNjk0ZGY3N2I1OGY3ZDY2MjA0MWMwMzg5YjhmY2ViM2ViZjAzMDkuLjE1
ZTMyOTE3NWU3ZWFmYWRiMWE4ZThlZGU3NmFjYzAyMjJjNDJmNGUgMTAwNjQ0Ci0tLSBhL1dlYktp
dExpYnJhcmllcy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0TGlicmFyaWVzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDEzIEBACisyMDE4LTAyLTIwICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBw
bGUuY29tPgorCisgICAgICAgIEludHJvZHVjZSBIQVZFKElPU1VSRkFDRV9BQ0NFTEVSQVRPUikK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4Mjk1NQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzc2OTk1MTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
U2FtIFdlaW5pZy4KKworICAgICAgICAqIFdlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9pT1Mv
MTAvSU9TdXJmYWNlLmZyYW1ld29yay9JT1N1cmZhY2UudGJkOgorCiAyMDE4LTAxLTE5ICBSeWFu
IEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJv
bGxpbmcgb3V0IHIyMjcyMTEuCmRpZmYgLS1naXQgYS9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJp
dmF0ZUZyYW1ld29ya1N0dWJzL2lPUy8xMC9JT1N1cmZhY2UuZnJhbWV3b3JrL0lPU3VyZmFjZS50
YmQgYi9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2lPUy8xMC9J
T1N1cmZhY2UuZnJhbWV3b3JrL0lPU3VyZmFjZS50YmQKaW5kZXggNTdiOWI5N2JiOGFkYzM1Njc0
N2MyYmVlMmI3MDIxNTI2YzJkZDQ0OC4uZGE4OGI4NDVmMzIwYjliNjExYjgxZjFlNTcxZGIyYTE2
MDVlZTFhNSAxMDA2NDQKLS0tIGEvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdv
cmtTdHVicy9pT1MvMTAvSU9TdXJmYWNlLmZyYW1ld29yay9JT1N1cmZhY2UudGJkCisrKyBiL1dl
YktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzEwL0lPU3VyZmFj
ZS5mcmFtZXdvcmsvSU9TdXJmYWNlLnRiZApAQCAtMzIsNiArMzIsNyBAQCBleHBvcnRzOgogICAg
ICAgLSBfSU9TdXJmYWNlTG9va3VwRnJvbU1hY2hQb3J0CiAgICAgICAtIF9JT1N1cmZhY2VTZXRQ
dXJnZWFibGUKICAgICAgIC0gX0lPU3VyZmFjZVVubG9jaworICAgICAgLSBfa0lPU3VyZmFjZUFj
Y2VsZXJhdG9yVW53aXJlU3VyZmFjZUtleQogICAgICAgLSBfa0lPU3VyZmFjZUFsbG9jU2l6ZQog
ICAgICAgLSBfa0lPU3VyZmFjZUJ5dGVzUGVyRWxlbWVudAogICAgICAgLSBfa0lPU3VyZmFjZUJ5
dGVzUGVyUm93Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>334309</attachid>
            <date>2018-02-20 15:50:28 -0800</date>
            <delta_ts>2018-02-20 15:56:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-182955-20180220155027.patch</filename>
            <type>text/plain</type>
            <size>38472</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI4ODQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGJhMzNlNzEzZWFiNjgyYmJhNTI1NTY0
YmMzYzllNGEwM2M1NzIyNjYuLjQ0YzNhMTJiZDM2OWY1ODZmMWE1OWM3OTVlNDYzN2UyNTVjZjc0
ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTgtMDItMjAgIFRpbSBIb3J0b24gIDx0aW1vdGh5
X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgSW50cm9kdWNlIEhBVkUoSU9TVVJGQUNFX0FD
Q0VMRVJBVE9SKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTgyOTU1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNzY5OTUxMD4KKworICAgICAgICBS
ZXZpZXdlZCBieSBTYW0gV2VpbmlnLgorCisgICAgICAgICogd3RmL1BsYXRmb3JtLmg6CisKIDIw
MTgtMDItMjAgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgQWx3YXlzIGlubGluZSBzb2Z0IGxpbmtpbmcgZnVuY3Rpb25zIHRvIHdvcmsgYXJvdW5kIGEg
Y2xhbmcgYnVnCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDYzOWQ3NmVhMjRmNzgyOTM3NTM1NGZiMzVkZGQwNDFl
Y2YwZjQ0ZC4uMTFkZjBkZjBlYTRjZjc0ZWM5YjA4ZjY4NWFjMTdjZDM3MWVhZWU3MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE4LTAyLTIwICBUaW0gSG9ydG9uICA8dGltb3RoeV9o
b3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEludHJvZHVjZSBIQVZFKElPU1VSRkFDRV9BQ0NF
TEVSQVRPUikKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE4Mjk1NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzc2OTk1MTA+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgU2FtIFdlaW5pZy4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGNoYW5nZSBp
biBiZWhhdmlvci4KKworICAgICAgICBJbnRyb2R1Y2UgSEFWRShJT1NVUkZBQ0VfQUNDRUxFUkFU
T1IpIGFuZCBndWFyZCBhbGwgdXNlcyBvZgorICAgICAgICBJT1N1cmZhY2VBY2NlbGVyYXRvciBi
ZWhpbmQgaXQuCisKKyAgICAgICAgUmVuYW1lIFVTRShJT1NVUkZBQ0UpIHRvIEhBVkUoSU9TVVJG
QUNFKSBmb3IgYWNjdXJhY3kuCisKKyAgICAgICAgKiBwYWdlL2NvY29hL01lbW9yeVJlbGVhc2VD
b2NvYS5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlQ29udHJvbGxlci5j
cHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSU9TdXJmYWNlUG9vbC5jcHA6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSU9TdXJmYWNlUG9vbC5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL0lPU3VyZmFjZS5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9JT1N1cmZhY2VQb29sQ29jb2EubW06CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY3Yv
VmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2N2
L1ZpZGVvVGV4dHVyZUNvcGllckNWLmg6CisKIDIwMTgtMDItMjAgIE5hbiBXYW5nICA8bl93YW5n
QGFwcGxlLmNvbT4KIAogICAgICAgICBBWDogQU9NOiBEaXNwYXRjaCBhY2Nlc3NpYmxlY2xpY2sg
ZXZlbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IDlkZDQ2ZWIxMDc1OGI0NTM4NDc0ZTgxOGIzZjI0
MTk2ZDI0ZTZjZmIuLmIzMDQ3NmYyNDhhMGVlOTM0ZTE5YjNkMWE0Y2E4ZDFjNmJhZDVmMjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE4LTAyLTIwICBUaW0gSG9ydG9u
ICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEludHJvZHVjZSBIQVZFKElP
U1VSRkFDRV9BQ0NFTEVSQVRPUikKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE4Mjk1NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzc2OTk1MTA+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KKworICAgICAgICAqIHBhbC9zcGkvY2cv
Q29yZUdyYXBoaWNzU1BJLmg6CisgICAgICAgICogcGFsL3NwaS9jb2NvYS9JT1N1cmZhY2VTUEku
aDoKKyAgICAgICAgKiBwYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaDoKKwogMjAxOC0wMi0x
NSAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBTdG9w
IHVzaW5nIEVYQ0xVREVEX1NPVVJDRV9GSUxFX05BTUVTIGZvciBhY3R1YWwgc291cmNlIGZpbGVz
IGluIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZDlmZDMwNmIwZmYyODhjNDZiOGI1NzRhMjMwZmY1YzUy
M2IyNjc2NC4uNzhhNzNiMzU2ODBhZWU1YmRmMGFhYzdjODUzMWU1NDc0MzNkNjQyZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyMCBAQAorMjAxOC0wMi0yMCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9y
dG9uQGFwcGxlLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgSEFWRShJT1NVUkZBQ0VfQUNDRUxF
UkFUT1IpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
ODI5NTUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM3Njk5NTEwPgorCisgICAgICAgIFJldmll
d2VkIGJ5IFNhbSBXZWluaWcuCisKKyAgICAgICAgKiBTaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1Jl
bW90ZUxheWVyQmFja2luZ1N0b3JlLmg6CisgICAgICAgICogU2hhcmVkL1JlbW90ZUxheWVyVHJl
ZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbToKKyAgICAgICAgKiBTaGFyZWQvY2cvU2hhcmVh
YmxlQml0bWFwQ0cuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
Lm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWFQcm94eS5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVl
L1JlbW90ZUxheWVyVHJlZUhvc3QubW06CisgICAgICAgICogVUlQcm9jZXNzL21hYy9WaWV3U25h
cHNob3RTdG9yZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvVmlld1NuYXBzaG90U3RvcmUu
bW06CisKIDIwMTgtMDItMjAgIE1hdHQgTGV3aXMgIDxqbGV3aXMzQGFwcGxlLmNvbT4KIAogICAg
ICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjI4ODI5LgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKaW5kZXggZWE3
OWExNTA5MTdhNjc1NTQ4NzU3ODZiZGVlNTgzMzczNzg0M2JjYS4uYzAyYjY2ZDA3ODBmNzRiZTZl
NGEzYmYzYTZkMDk5MzA1NDZlOTE2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZv
cm0uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCkBAIC0xMjA0LDcgKzEyMDQsMTEg
QEAKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpICYmICFQTEFURk9STShJT1NfU0lNVUxB
VE9SKQotI2RlZmluZSBVU0VfSU9TVVJGQUNFIDEKKyNkZWZpbmUgSEFWRV9JT1NVUkZBQ0UgMQor
I2VuZGlmCisKKyNpZiBQTEFURk9STShJT1MpICYmICFQTEFURk9STShJT1NfU0lNVUxBVE9SKQor
I2RlZmluZSBIQVZFX0lPU1VSRkFDRV9BQ0NFTEVSQVRPUiAxCiAjZW5kaWYKIAogI2lmIFBMQVRG
T1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvV2Vi
Q29yZS54Y2NvbmZpZyBiL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL1dlYkNvcmUueGNj
b25maWcKaW5kZXggYmRlZTdlNDQ4MTExMTJiNjNlNGExOTU4ZmRiNTI2M2M5YWU4MjI0Mi4uNzQ5
MWU0MzRkYzc5YjE1ZmMxYzZjYTdmNmVkYWY5OTNlMDEyOTI3NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvV2ViQ29yZS54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Db25maWd1cmF0aW9ucy9XZWJDb3JlLnhjY29uZmlnCkBAIC04MCw3ICs4MCw3IEBAIE9U
SEVSX0xERkxBR1MgPSAkKGluaGVyaXRlZCkgJChXS19SRUxPQ0FUQUJMRV9GUkFNRVdPUktfTERG
TEFHUykgJChXS19VTkRFRklORURfCiBPVEhFUl9MREZMQUdTX0JBU0UgPSAtbHNxbGl0ZTMgLWxv
YmpjIC1sQU5HTEUgLWZyYW1ld29yayBDb3JlQXVkaW8gLWZyYW1ld29yayBNZXRhbCAtYWxsb3dh
YmxlX2NsaWVudCBXZWJDb3JlVGVzdFN1cHBvcnQgLWFsbG93YWJsZV9jbGllbnQgV2ViS2l0TGVn
YWN5IC1mb3JjZV9sb2FkICQoQlVJTFRfUFJPRFVDVFNfRElSKS9saWJQQUwuYTsKIC8vIEZJWE1F
OiBSZWR1Y2UgdGhlIG51bWJlciBvZiBhbGxvd2FibGVfY2xpZW50IDxyZGFyOi8vcHJvYmxlbS8z
MTgyMzk2OT4KIE9USEVSX0xERkxBR1NfQkFTRV9pb3MgPSAkKE9USEVSX0xERkxBR1NfQkFTRSkg
LWZyYW1ld29yayBDRk5ldHdvcmsgLWZyYW1ld29yayBDb3JlR3JhcGhpY3MgLWZyYW1ld29yayBD
b3JlVGV4dCAtZnJhbWV3b3JrIEZvdW5kYXRpb24gLWZyYW1ld29yayBJbWFnZUlPIC1mcmFtZXdv
cmsgTW9iaWxlQ29yZVNlcnZpY2VzIC1mcmFtZXdvcmsgT3BlbkdMRVMgLWxNb2JpbGVHZXN0YWx0
ICQoV0tfSU9TX0JJTkNPTVBBVF9MREZMQUdTKSAtYWxsb3dhYmxlX2NsaWVudCBXZWJLaXQgLWFs
bG93YWJsZV9jbGllbnQgaVR1bmVzVSAtYWxsb3dhYmxlX2NsaWVudCBDYXNhYmxhbmNhIC1hbGxv
d2FibGVfY2xpZW50IFJlbW90ZSAtYWxsb3dhYmxlX2NsaWVudCBUVkJvb2tzIC1hbGxvd2FibGVf
Y2xpZW50IER1bXBSZW5kZXJUcmVlIC1hbGxvd2FibGVfY2xpZW50IFdlYktpdFRlc3RSdW5uZXIg
LWFsbG93YWJsZV9jbGllbnQgVGVzdFdlYktpdEFQSTsKLU9USEVSX0xERkxBR1NfUExBVEZPUk1b
c2RrPWlwaG9uZW9zKl0gPSAkKE9USEVSX0xERkxBR1NfQkFTRV9pb3MpIC1mcmFtZXdvcmsgSU9T
dXJmYWNlIC1mcmFtZXdvcmsgR3JhcGhpY3NTZXJ2aWNlcyAkKExJQldFQlJUQ19MREZMQUdTKTsK
K09USEVSX0xERkxBR1NfUExBVEZPUk1bc2RrPWlwaG9uZW9zKl0gPSAkKE9USEVSX0xERkxBR1Nf
QkFTRV9pb3MpIC1mcmFtZXdvcmsgSU9TdXJmYWNlIC1mcmFtZXdvcmsgSU9TdXJmYWNlQWNjZWxl
cmF0b3IgLWZyYW1ld29yayBHcmFwaGljc1NlcnZpY2VzICQoTElCV0VCUlRDX0xERkxBR1MpOwog
T1RIRVJfTERGTEFHU19QTEFURk9STVtzZGs9aXBob25lc2ltdWxhdG9yKl0gPSAkKE9USEVSX0xE
RkxBR1NfQkFTRV9pb3MpICQoTElCV0VCUlRDX0xERkxBR1MpOwogT1RIRVJfTERGTEFHU19QTEFU
Rk9STVtzZGs9bWFjb3N4Kl0gPSAkKE9USEVSX0xERkxBR1NfQkFTRSkgLXN1Yl9saWJyYXJ5IGxp
Ym9iamMgLXVtYnJlbGxhIFdlYktpdCAtZnJhbWV3b3JrIEFwcGxpY2F0aW9uU2VydmljZXMgLWZy
YW1ld29yayBBdWRpb1VuaXQgLWZyYW1ld29yayBDYXJib24gLWZyYW1ld29yayBDb2NvYSAtZnJh
bWV3b3JrIERhdGFEZXRlY3RvcnNDb3JlIC1mcmFtZXdvcmsgSU9TdXJmYWNlIC1mcmFtZXdvcmsg
T3BlbkdMIC1mcmFtZXdvcmsgU3lzdGVtQ29uZmlndXJhdGlvbiAkKExJQldFQlJUQ19MREZMQUdT
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2cvQ29yZUdyYXBo
aWNzU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEku
aAppbmRleCA4NDdmNDU5YmFiOWYzMzlhMWQ0OWE5M2JmYTY4MGU5YmNlMzJiNmMxLi43NjliYzM5
NzhlN2ZjNWRmNGJlODg0OTJhZDQ1M2QzYmFkNWY0MzU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaApAQCAtMjgsNyArMjgsNyBAQAogI2lu
Y2x1ZGUgPENvcmVGb3VuZGF0aW9uL0NvcmVGb3VuZGF0aW9uLmg+CiAjaW5jbHVkZSA8Q29yZUdy
YXBoaWNzL0NvcmVHcmFwaGljcy5oPgogCi0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElP
U1VSRkFDRSkKICNpbmNsdWRlIDxwYWwvc3BpL2NvY29hL0lPU3VyZmFjZVNQSS5oPgogI2VuZGlm
CiAKQEAgLTI0OSw3ICsyNDksNyBAQCBib29sIENHQ29udGV4dEdldEFsbG93c0ZvbnRTdWJwaXhl
bFBvc2l0aW9uaW5nKENHQ29udGV4dFJlZik7CiBib29sIENHQ29udGV4dERyYXdzV2l0aENvcnJl
Y3RTaGFkb3dPZmZzZXRzKENHQ29udGV4dFJlZik7CiBDR1BhdHRlcm5SZWYgQ0dQYXR0ZXJuQ3Jl
YXRlV2l0aEltYWdlMihDR0ltYWdlUmVmLCBDR0FmZmluZVRyYW5zZm9ybSwgQ0dQYXR0ZXJuVGls
aW5nKTsKIAotI2lmIFVTRShJT1NVUkZBQ0UpCisjaWYgSEFWRShJT1NVUkZBQ0UpCiBDR0NvbnRl
eHRSZWYgQ0dJT1N1cmZhY2VDb250ZXh0Q3JlYXRlKElPU3VyZmFjZVJlZiwgc2l6ZV90LCBzaXpl
X3QsIHNpemVfdCwgc2l6ZV90LCBDR0NvbG9yU3BhY2VSZWYsIENHQml0bWFwSW5mbyk7CiBDR0lt
YWdlUmVmIENHSU9TdXJmYWNlQ29udGV4dENyZWF0ZUltYWdlKENHQ29udGV4dFJlZik7CiBDR0lt
YWdlUmVmIENHSU9TdXJmYWNlQ29udGV4dENyZWF0ZUltYWdlUmVmZXJlbmNlKENHQ29udGV4dFJl
Zik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9JT1N1cmZh
Y2VTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0lPU3VyZmFjZVNQSS5o
CmluZGV4IGU3MmY0ZDI2NzQzOWI5ZmI1NWY0OTkwMjViNTkyYmExMzA2OTY5ZmYuLjgyYTNkNjJm
ZDIxODk2MmY2OGI3MjI4MDVlNTIzMWRlMzVhYTk0ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvc3BpL2NvY29hL0lPU3VyZmFjZVNQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvc3BpL2NvY29hL0lPU3VyZmFjZVNQSS5oCkBAIC0yNSw3ICsyNSw3IEBACiAKICNw
cmFnbWEgb25jZQogCi0jaWYgIVBMQVRGT1JNKElPU19TSU1VTEFUT1IpCisjaWYgSEFWRShJT1NV
UkZBQ0UpCiAKICNpZiBQTEFURk9STShNQUMpIHx8IFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAK
QEAgLTExMyw3ICsxMTMsNyBAQCBJT1JldHVybiBJT1N1cmZhY2VTZXRQdXJnZWFibGUoSU9TdXJm
YWNlUmVmIGJ1ZmZlciwgdWludDMyX3QgbmV3U3RhdGUsIHVpbnQzMl90CiAKIFdURl9FWFRFUk5f
Q19FTkQKIAotI2lmIFBMQVRGT1JNKElPUykKKyNpZiBIQVZFKElPU1VSRkFDRV9BQ0NFTEVSQVRP
UikKICNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogCiAjaW1wb3J0IDxJT1N1cmZhY2VBY2Nl
bGVyYXRvci9JT1N1cmZhY2VBY2NlbGVyYXRvci5oPgpAQCAtMTI4LDYgKzEyOCw4IEBAIHR5cGVk
ZWYgc3RydWN0IF9fSU9TdXJmYWNlQWNjZWxlcmF0b3IgKklPU3VyZmFjZUFjY2VsZXJhdG9yUmVm
OwogCiBXVEZfRVhURVJOX0NfQkVHSU4KIAorZXh0ZXJuIGNvbnN0IENGU3RyaW5nUmVmIGtJT1N1
cmZhY2VBY2NlbGVyYXRvclVud2lyZVN1cmZhY2VLZXk7CisKIElPUmV0dXJuIElPU3VyZmFjZUFj
Y2VsZXJhdG9yQ3JlYXRlKENGQWxsb2NhdG9yUmVmLCBDRkRpY3Rpb25hcnlSZWYgcHJvcGVydGll
cywgSU9TdXJmYWNlQWNjZWxlcmF0b3JSZWYqIGFjY2VsZXJhdG9yT3V0KTsKIENGUnVuTG9vcFNv
dXJjZVJlZiBJT1N1cmZhY2VBY2NlbGVyYXRvckdldFJ1bkxvb3BTb3VyY2UoSU9TdXJmYWNlQWNj
ZWxlcmF0b3JSZWYpOwogCkBAIC0xNDQsNiArMTQ2LDYgQEAgSU9SZXR1cm4gSU9TdXJmYWNlQWNj
ZWxlcmF0b3JUcmFuc2Zvcm1TdXJmYWNlKElPU3VyZmFjZUFjY2VsZXJhdG9yUmVmLCBJT1N1cmZh
Y2UKIFdURl9FWFRFUk5fQ19FTkQKIAogI2VuZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5BTF9TREsp
Ci0jZW5kaWYgLy8gUExBVEZPUk0oSU9TKQorI2VuZGlmIC8vIEhBVkUoSU9TVVJGQUNFX0FDQ0VM
RVJBVE9SKQogCi0jZW5kaWYgLy8gIVBMQVRGT1JNKElPU19TSU1VTEFUT1IpCisjZW5kaWYgLy8g
SEFWRShJT1NVUkZBQ0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9j
b2NvYS9RdWFydHpDb3JlU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9R
dWFydHpDb3JlU1BJLmgKaW5kZXggZmY5NmMwYjU4MmZlMzE4NzFjOGE0ZDMyMDExNTU4MjE1ODQ1
M2ViZC4uOTcxZDBiY2I4ZjBjYzM4MGFmZjY4ZDRjMTRiYzk1OGFkOTkyMjkwZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaApAQCAtMTcw
LDcgKzE3MCw3IEBAIFdURl9FWFRFUk5fQ19CRUdJTgogI2lmICFVU0UoQVBQTEVfSU5URVJOQUxf
U0RLKQogdm9pZCBDQVJlbmRlclNlcnZlckNhcHR1cmVMYXllcldpdGhUcmFuc2Zvcm0obWFjaF9w
b3J0X3QsIHVpbnQzMl90IGNsaWVudElkLCB1aW50NjRfdCBsYXllcklkLCB1aW50MzJfdCBzbG90
SWQsIGludDMyX3Qgb3gsIGludDMyX3Qgb3ksIGNvbnN0IENBVHJhbnNmb3JtM0QqKTsKIAotI2lm
IFVTRShJT1NVUkZBQ0UpCisjaWYgSEFWRShJT1NVUkZBQ0UpCiB2b2lkIENBUmVuZGVyU2VydmVy
UmVuZGVyTGF5ZXJXaXRoVHJhbnNmb3JtKG1hY2hfcG9ydF90IHNlcnZlcl9wb3J0LCB1aW50MzJf
dCBjbGllbnRfaWQsIHVpbnQ2NF90IGxheWVyX2lkLCBJT1N1cmZhY2VSZWYsIGludDMyX3Qgb3gs
IGludDMyX3Qgb3ksIGNvbnN0IENBVHJhbnNmb3JtM0QqKTsKIHZvaWQgQ0FSZW5kZXJTZXJ2ZXJS
ZW5kZXJEaXNwbGF5TGF5ZXJXaXRoVHJhbnNmb3JtQW5kVGltZU9mZnNldChtYWNoX3BvcnRfdCwg
Q0ZTdHJpbmdSZWYgZGlzcGxheV9uYW1lLCB1aW50MzJfdCBjbGllbnRfaWQsIHVpbnQ2NF90IGxh
eWVyX2lkLCBJT1N1cmZhY2VSZWYsIGludDMyX3Qgb3gsIGludDMyX3Qgb3ksIGNvbnN0IENBVHJh
bnNmb3JtM0QqLCBDRlRpbWVJbnRlcnZhbCk7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9jb2NvYS9NZW1vcnlSZWxlYXNlQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2NvY29hL01lbW9yeVJlbGVhc2VDb2NvYS5tbQppbmRleCBiMzdiNWNiZTY0ZjQxNjI0MmRl
OGFjZjQxZGQ2NTY0ZTA3N2ZhNjgxLi4yMDZlYWZhNWQ2NGFjNzdkYTgwNDA3NmYyNjNkM2E2NTJi
NWUwYzA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL01lbW9yeVJlbGVh
c2VDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL01lbW9yeVJlbGVhc2VD
b2NvYS5tbQpAQCAtNTYsNyArNTYsNyBAQCB2b2lkIHBsYXRmb3JtUmVsZWFzZU1lbW9yeShDcml0
aWNhbCkKICAgICB0aWxlQ29udHJvbGxlck1lbW9yeUhhbmRsZXIoKS50cmltVW5wYXJlbnRlZFRp
bGVzVG9UYXJnZXQoMCk7CiAjZW5kaWYKIAotI2lmIFVTRShJT1NVUkZBQ0UpCisjaWYgSEFWRShJ
T1NVUkZBQ0UpCiAgICAgSU9TdXJmYWNlUG9vbDo6c2hhcmVkUG9vbCgpLmRpc2NhcmRBbGxTdXJm
YWNlcygpOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS9UaWxlQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS9UaWxlQ29udHJvbGxlci5jcHAKaW5kZXggYTMzMDJhOWEwN2M0YzFlMzM0OThi
MTI4YzRiNWVmNjMzMmYxMTM2My4uZWMzYWU0ZjFjZjZlN2ZhY2Q4NTllYTdlZTM3NjJmYjY2NTAw
NzI1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGls
ZUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
L1RpbGVDb250cm9sbGVyLmNwcApAQCAtMzgsNyArMzgsNyBAQAogI2luY2x1ZGUgPHd0Zi9NYWlu
VGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgogCi0jaWYgVVNFKElP
U1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKICNpbmNsdWRlICJJT1N1cmZhY2UuaCIKICNl
bmRpZgogCkBAIC01MzQsNyArNTM0LDcgQEAgSW50U2l6ZSBUaWxlQ29udHJvbGxlcjo6dGlsZVNp
emUoKSBjb25zdAogICAgIGNvbnN0IGludCBrTG93ZXN0Q29tbW9uRGVub21pbmF0b3JNYXhUaWxl
U2l6ZSA9IDQgKiAxMDI0OwogICAgIEludFNpemUgbWF4VGlsZVNpemUoa0xvd2VzdENvbW1vbkRl
bm9taW5hdG9yTWF4VGlsZVNpemUsIGtMb3dlc3RDb21tb25EZW5vbWluYXRvck1heFRpbGVTaXpl
KTsKIAotI2lmIFVTRShJT1NVUkZBQ0UpCisjaWYgSEFWRShJT1NVUkZBQ0UpCiAgICAgSW50U2l6
ZSBzdXJmYWNlU2l6ZUxpbWl0ID0gSU9TdXJmYWNlOjptYXhpbXVtU2l6ZSgpOwogICAgIHN1cmZh
Y2VTaXplTGltaXQuc2NhbGUoMSAvIG1fZGV2aWNlU2NhbGVGYWN0b3IpOwogICAgIG1heFRpbGVT
aXplID0gbWF4VGlsZVNpemUuc2hydW5rVG8oc3VyZmFjZVNpemVMaW1pdCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JT1N1cmZhY2VQb29sLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0lPU3VyZmFjZVBvb2wuY3BwCmlu
ZGV4IGUzZjA3M2U5NWVmMTUxZmEyZDY4YTdjZmRlZTI2OTQwNjY3MjEyYTQuLjFiMGUxYjYxZjI4
M2ZlNTMyN2Y1OTVkN2QzNjgwNGZhMjhjMDEyOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NnL0lPU3VyZmFjZVBvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0lPU3VyZmFjZVBvb2wuY3BwCkBAIC0yNiw3ICsyNiw3
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSU9TdXJmYWNlUG9vbC5oIgogCi0j
aWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKIAogI2luY2x1ZGUgIkdyYXBo
aWNzQ29udGV4dENHLmgiCiAjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NvcmVHcmFwaGljcy5oPgpA
QCAtMzgzLDQgKzM4Myw0IEBAIHZvaWQgSU9TdXJmYWNlUG9vbDo6c2hvd1Bvb2xTdGF0aXN0aWNz
KGNvbnN0IGNoYXIqIHJlYXNvbikKIH0KIAogfQotI2VuZGlmIC8vIFVTRShJT1NVUkZBQ0UpCisj
ZW5kaWYgLy8gSEFWRShJT1NVUkZBQ0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jZy9JT1N1cmZhY2VQb29sLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jZy9JT1N1cmZhY2VQb29sLmgKaW5kZXggZGY0YmVjN2ZkOTg4MGRhOTk0OTlh
N2UzMTQ0MWRhMGI3Mzc4OTFkZC4uOTJiOGRiOWQxOGNmOWMwM2I0M2YwN2Q1MjllNWI2MGE0MThi
YzM3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSU9T
dXJmYWNlUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0lP
U3VyZmFjZVBvb2wuaApAQCAtMjUsNyArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2lmIFVT
RShJT1NVUkZBQ0UpCisjaWYgSEFWRShJT1NVUkZBQ0UpCiAKICNpbmNsdWRlICJJT1N1cmZhY2Uu
aCIKICNpbmNsdWRlICJJbnRTaXplLmgiCkBAIC0xMDMsNCArMTAzLDQgQEAgcHJpdmF0ZToKIH07
CiAKIH0KLSNlbmRpZiAvLyBVU0UoSU9TVVJGQUNFKQorI2VuZGlmIC8vIEhBVkUoSU9TVVJGQUNF
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VC
dWZmZXJDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1
ZmZlckNHLmNwcAppbmRleCA4MjRmOWY3NDBkZDNlMDFhYzI5NjYwZmVjYWM2OGM3NzNjYzU1OGY5
Li5mNDg1YTM0MTRlNWQwZWVmZWVkY2E4NzViNWUzMzBhYmY2MDBkZGM5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHLmNwcApA
QCAtNzksNyArNzksNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IEltYWdlQnVmZmVy
OjpjcmVhdGVDb21wYXRpYmxlQnVmZmVyKGNvbnN0IEZsb2F0U2l6ZQogICAgIGNhc2Uga0NHQ29u
dGV4dFR5cGVCaXRtYXA6CiAgICAgICAgIGNvbG9yU3BhY2UgPSBDR0JpdG1hcENvbnRleHRHZXRD
b2xvclNwYWNlKGNnQ29udGV4dCk7CiAgICAgICAgIGJyZWFrOwotI2lmIFVTRShJT1NVUkZBQ0Up
CisjaWYgSEFWRShJT1NVUkZBQ0UpCiAgICAgY2FzZSBrQ0dDb250ZXh0VHlwZUlPU3VyZmFjZToK
ICAgICAgICAgY29sb3JTcGFjZSA9IENHSU9TdXJmYWNlQ29udGV4dEdldENvbG9yU3BhY2UoY2dD
b250ZXh0KTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5oCmluZGV4IGI1N2FlOTc4NjRiMzVlODdjMDZhMTc0
ZDk5YWRlOGJlMzA3MjMwOTcuLmUyYjRhMTg5OWQ3M2JkODZiZTk2OTFkZTlhNjY4OWMyOGUyN2I1
OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lP
U3VyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lP
U3VyZmFjZS5oCkBAIC0yNSw3ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaWYgVVNFKElP
U1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKIAogI2luY2x1ZGUgPG9iamMvb2JqYy5oPgog
I2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgpAQCAtMTM0LDEwICsxMzQsMTAgQEAgcHVibGlj
OgogICAgIC8vIGFuIGFjY3VyYXRlIHJlc3VsdCBmcm9tIGlzSW5Vc2UoKSwgaXQgbmVlZHMgdG8g
YmUgcmVsZWFzZWQuCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZWxlYXNlR3JhcGhpY3NDb250
ZXh0KCk7CiAKLSNpZiBQTEFURk9STShJT1MpCisjaWYgSEFWRShJT1NVUkZBQ0VfQUNDRUxFUkFU
T1IpCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wgYWxsb3dDb252ZXJzaW9uRnJvbUZv
cm1hdFRvRm9ybWF0KEZvcm1hdCwgRm9ybWF0KTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMg
dm9pZCBjb252ZXJ0VG9Gb3JtYXQoc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3VyZmFjZT4m
JiBpblN1cmZhY2UsIEZvcm1hdCwgV1RGOjpGdW5jdGlvbjx2b2lkKHN0ZDo6dW5pcXVlX3B0cjxX
ZWJDb3JlOjpJT1N1cmZhY2U+KT4mJik7Ci0jZW5kaWYKKyNlbmRpZiAvLyBIQVZFKElPU1VSRkFD
RV9BQ0NFTEVSQVRPUikKIAogICAgIHZvaWQgbWlncmF0ZUNvbG9yU3BhY2VUb1Byb3BlcnRpZXMo
KTsKIApAQCAtMTY0LDUgKzE2NCw1IEBAIFdFQkNPUkVfRVhQT1JUIFdURjo6VGV4dFN0cmVhbSYg
b3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBjb25zdCBXZWJDb3JlOjpJT1N1CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIFVTRShJT1NVUkZBQ0UpCisjZW5kaWYgLy8g
SEFWRShJT1NVUkZBQ0UpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL0lPU3VyZmFjZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL0lPU3VyZmFjZS5tbQppbmRleCA1NDJhZTA0ZGMwOWM5NjllYzYxOTRkNWViN2Y1
YzIwOWVjMzg2ZGFkLi44YzhhZGZlNDZiMmY1OTY1MDc0YTI5MmM4ZGM0MTlmYjc5ZTM3OWYxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZh
Y2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJm
YWNlLm1tCkBAIC0yNiw3ICsyNiw3IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIklP
U3VyZmFjZS5oIgogCi0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKIAog
I2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0Q0cuaCIKICNpbXBvcnQgIklPU3VyZmFjZVBvb2wuaCIK
QEAgLTQwLDExICs0MCw2IEBACiAjaW1wb3J0IDx3dGYvTWF0aEV4dHJhcy5oPgogI2ltcG9ydCA8
d3RmL3RleHQvVGV4dFN0cmVhbS5oPgogCi0jaWYgUExBVEZPUk0oSU9TKQotLy8gTW92ZSB0aGlz
IGludG8gdGhlIFNQSSBoZWFkZXIgb25jZSBpdCdzIHBvc3NpYmxlIHRvIHB1dCBpbnNpZGUgdGhl
IEFQUExFX0lOVEVSTkFMX1NESyBibG9jay4KLU5TU3RyaW5nICogY29uc3QgV2ViSU9TdXJmYWNl
QWNjZWxlcmF0b3JVbndpcmVTdXJmYWNlS2V5ID0gQCJVbndpcmVTdXJmYWNlIjsKLSNlbmRpZgot
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGlubGluZSBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNl
PiBJT1N1cmZhY2U6OnN1cmZhY2VGcm9tUG9vbChJbnRTaXplIHNpemUsIEludFNpemUgY29udGV4
dFNpemUsIENHQ29sb3JTcGFjZVJlZiBjb2xvclNwYWNlLCBGb3JtYXQgcGl4ZWxGb3JtYXQpCkBA
IC0zODgsNyArMzgzLDggQEAgdm9pZCBJT1N1cmZhY2U6OnJlbGVhc2VHcmFwaGljc0NvbnRleHQo
KQogICAgIG1fY2dDb250ZXh0ID0gbnVsbHB0cjsKIH0KIAotI2lmIFBMQVRGT1JNKElPUykKKyNp
ZiBIQVZFKElPU1VSRkFDRV9BQ0NFTEVSQVRPUikKKwogYm9vbCBJT1N1cmZhY2U6OmFsbG93Q29u
dmVyc2lvbkZyb21Gb3JtYXRUb0Zvcm1hdChGb3JtYXQgc291cmNlRm9ybWF0LCBGb3JtYXQgZGVz
dEZvcm1hdCkKIHsKICAgICBpZiAoKHNvdXJjZUZvcm1hdCA9PSBGb3JtYXQ6OlJHQjEwIHx8IHNv
dXJjZUZvcm1hdCA9PSBGb3JtYXQ6OlJHQjEwQTgpICYmIGRlc3RGb3JtYXQgPT0gRm9ybWF0OjpZ
VVY0MjIpCkBAIC00MzAsMTIgKzQyNiwxMyBAQCB2b2lkIElPU3VyZmFjZTo6Y29udmVydFRvRm9y
bWF0KHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+JiYgaW5TdXJmYWNlLCBGb3JtYXQgZgogICAg
ICAgICBkZWxldGUgY2FsbGJhY2s7CiAgICAgfTsKIAotICAgIE5TRGljdGlvbmFyeSAqb3B0aW9u
cyA9IEB7IFdlYklPU3VyZmFjZUFjY2VsZXJhdG9yVW53aXJlU3VyZmFjZUtleSA6IEBZRVMgfTsK
KyAgICBOU0RpY3Rpb25hcnkgKm9wdGlvbnMgPSBAeyAoaWQpa0lPU3VyZmFjZUFjY2VsZXJhdG9y
VW53aXJlU3VyZmFjZUtleSA6IEBZRVMgfTsKIAogICAgIElPUmV0dXJuIHJldCA9IElPU3VyZmFj
ZUFjY2VsZXJhdG9yVHJhbnNmb3JtU3VyZmFjZShhY2NlbGVyYXRvciwgaW5TdXJmYWNlLT5zdXJm
YWNlKCksIGRlc3RpbmF0aW9uSU9TdXJmYWNlUmVmLCAoQ0ZEaWN0aW9uYXJ5UmVmKW9wdGlvbnMs
IG51bGxwdHIsICZjb21wbGV0aW9uLCBudWxscHRyLCBudWxscHRyKTsKICAgICBBU1NFUlRfVU5V
U0VEKHJldCwgcmV0ID09IGtJT1JldHVyblN1Y2Nlc3MpOwogfQotI2VuZGlmIC8vIFBMQVRGT1JN
KElPUykKKworI2VuZGlmIC8vIEhBVkUoSU9TVVJGQUNFX0FDQ0VMRVJBVE9SKQogCiB2b2lkIElP
U3VyZmFjZTo6bWlncmF0ZUNvbG9yU3BhY2VUb1Byb3BlcnRpZXMoKQogewpAQCAtNDgyLDQgKzQ3
OSw0IEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IElPU3Vy
ZmFjZSYgc3VyZmFjZSkKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8gVVNF
KElPU1VSRkFDRSkKKyNlbmRpZiAvLyBIQVZFKElPU1VSRkFDRSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZVBvb2xDb2NvYS5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZVBvb2xDb2Nv
YS5tbQppbmRleCA0YWQ1ZDJlMGI3MzVlNTZmOTJiNWY4ZDU5ZTE5Y2ZmNGJhM2YyMmYyLi5mYjEz
ZjFjZTZmMjQwYmQzYzliYjU4OGVmZDNhYmE4NjU5NTAzMzUxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2VQb29sQ29jb2EubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlUG9vbENv
Y29hLm1tCkBAIC0yNiw3ICsyNiw3IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIklP
U3VyZmFjZVBvb2wuaCIKIAotI2lmIFVTRShJT1NVUkZBQ0UpCisjaWYgSEFWRShJT1NVUkZBQ0Up
CiAKICNpbmNsdWRlIDxRdWFydHpDb3JlL1F1YXJ0ekNvcmUuaD4KIApAQCAtNDAsNCArNDAsNCBA
QCB2b2lkIElPU3VyZmFjZVBvb2w6OnBsYXRmb3JtR2FyYmFnZUNvbGxlY3ROb3coKQogCiB9CiAK
LSNlbmRpZiAvLyBVU0UoSU9TVVJGQUNFKQorI2VuZGlmIC8vIEhBVkUoSU9TVVJGQUNFKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9UZXh0dXJl
Q29waWVyQ1YuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9U
ZXh0dXJlQ29waWVyQ1YuY3BwCmluZGV4IGY2Nzc5ZTZiOTZmNjNiODhmZWNiNjhlYWExOTYwYWVl
YTNmYWU4YWIuLmExNjRkNWJmZGE3NjgyYTlhOTgxYzY0YjE5NzQ5YzAyMWFkMjc2YmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvVGV4dHVyZUNv
cGllckNWLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRl
b1RleHR1cmVDb3BpZXJDVi5jcHAKQEAgLTQxLDcgKzQxLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKIGVudW0gY2xh
c3MgUGl4ZWxSYW5nZSB7CiAgICAgVW5rbm93biwKICAgICBWaWRlbywKQEAgLTM2OCw3ICszNjgs
NyBAQCBzdGF0aWMgY29uc3QgVmVjdG9yPEdMZmxvYXQ+IFlDYkNyVG9SR0JNYXRyaXhGb3JSYW5n
ZUFuZFRyYW5zZmVyRnVuY3Rpb24oUGl4ZWxSYQogICAgIEFTU0VSVChpdGVyYXRvciAhPSBtYXRy
aWNlcy5nZXQoKS5lbmQoKSk7CiAgICAgcmV0dXJuIGl0ZXJhdG9yLT5zZWNvbmQ7CiB9Ci0jZW5k
aWYgLy8gVVNFKElPU1VSRkFDRSkKKyNlbmRpZiAvLyBIQVZFKElPU1VSRkFDRSkKIAogVmlkZW9U
ZXh0dXJlQ29waWVyQ1Y6OlZpZGVvVGV4dHVyZUNvcGllckNWKEdyYXBoaWNzQ29udGV4dDNEJiBj
b250ZXh0KQogICAgIDogbV9zaGFyZWRDb250ZXh0KGNvbnRleHQpCkBAIC03MjgsNyArNzI4LDcg
QEAgYm9vbCBWaWRlb1RleHR1cmVDb3BpZXJDVjo6Y29weUltYWdlVG9QbGF0Zm9ybVRleHR1cmUo
Q1ZQaXhlbEJ1ZmZlclJlZiBpbWFnZSwgc2kKICAgICAgICAgcmV0dXJuIGNvcHlWaWRlb1RleHR1
cmVUb1BsYXRmb3JtVGV4dHVyZSh0ZXh0dXJlLmdldCgpLCB3aWR0aCwgaGVpZ2h0LCBvdXRwdXRU
ZXh0dXJlLCBvdXRwdXRUYXJnZXQsIGxldmVsLCBpbnRlcm5hbEZvcm1hdCwgZm9ybWF0LCB0eXBl
LCBwcmVtdWx0aXBseUFscGhhLCBmbGlwWSwgc3dhcENvbG9yQ2hhbm5lbHMpOwogICAgIH0KIAot
I2lmIFVTRShJT1NVUkZBQ0UpCisjaWYgSEFWRShJT1NVUkZBQ0UpCiAgICAgLy8gRklYTUU6IFRo
aXMgY3VycmVudGx5IG9ubHkgc3VwcG9ydHMgJzQyMHYnIGFuZCAnNDIwZicgcGl4ZWwgZm9ybWF0
cy4gSW52ZXN0aWdhdGUgc3VwcG9ydGluZyBtb3JlIHBpeGVsIGZvcm1hdHMuCiAgICAgT1NUeXBl
IHBpeGVsRm9ybWF0ID0gQ1ZQaXhlbEJ1ZmZlckdldFBpeGVsRm9ybWF0VHlwZShpbWFnZSk7CiAg
ICAgaWYgKHBpeGVsRm9ybWF0ICE9IGtDVlBpeGVsRm9ybWF0VHlwZV80MjBZcENiQ3I4QmlQbGFu
YXJWaWRlb1JhbmdlICYmIHBpeGVsRm9ybWF0ICE9IGtDVlBpeGVsRm9ybWF0VHlwZV80MjBZcENi
Q3I4QmlQbGFuYXJGdWxsUmFuZ2UpIHsKQEAgLTg0Niw3ICs4NDYsNyBAQCBib29sIFZpZGVvVGV4
dHVyZUNvcGllckNWOjpjb3B5SW1hZ2VUb1BsYXRmb3JtVGV4dHVyZShDVlBpeGVsQnVmZmVyUmVm
IGltYWdlLCBzaQogICAgIHJldHVybiB0cnVlOwogI2Vsc2UKICAgICByZXR1cm4gZmFsc2U7Ci0j
ZW5kaWYgLy8gVVNFKElPU1VSRkFDRSkKKyNlbmRpZiAvLyBIQVZFKElPU1VSRkFDRSkKIH0KIAog
Ym9vbCBWaWRlb1RleHR1cmVDb3BpZXJDVjo6Y29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0
dXJlKFRleHR1cmVUeXBlIGlucHV0VmlkZW9UZXh0dXJlLCBzaXplX3Qgd2lkdGgsIHNpemVfdCBo
ZWlnaHQsIFBsYXRmb3JtM0RPYmplY3Qgb3V0cHV0VGV4dHVyZSwgR0MzRGVudW0gb3V0cHV0VGFy
Z2V0LCBHQzNEaW50IGxldmVsLCBHQzNEZW51bSBpbnRlcm5hbEZvcm1hdCwgR0MzRGVudW0gZm9y
bWF0LCBHQzNEZW51bSB0eXBlLCBib29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wgZmxpcFksIGJv
b2wgc3dhcENvbG9yQ2hhbm5lbHMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jdi9WaWRlb1RleHR1cmVDb3BpZXJDVi5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuaAppbmRleCBjMzU0MWFhZDNm
OGQzNDMzN2E3ODAyYzdjYTIxYjU4YWRlNjQ3YTYxLi40NzJmOWYxNjExODg3OTg5ZjAyNTY5OGIw
NzVjZTI1OGM2MTM1ZjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jdi9WaWRlb1RleHR1cmVDb3BpZXJDVi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2N2L1ZpZGVvVGV4dHVyZUNvcGllckNWLmgKQEAgLTYwLDcgKzYwLDcgQEAg
cHJpdmF0ZToKICAgICBib29sIGluaXRpYWxpemVDb250ZXh0T2JqZWN0cygpOwogICAgIGJvb2wg
aW5pdGlhbGl6ZVVWQ29udGV4dE9iamVjdHMoKTsKIAotI2lmIFVTRShJT1NVUkZBQ0UpCisjaWYg
SEFWRShJT1NVUkZBQ0UpCiAgICAgdW5zaWduZWQgbGFzdFRleHR1cmVTZWVkKEdDM0R1aW50IHRl
eHR1cmUpCiAgICAgewogICAgICAgICBhdXRvIGl0ZXJhdG9yID0gbV9sYXN0VGV4dHVyZVNlZWQu
ZmluZCh0ZXh0dXJlKTsKQEAgLTkwLDcgKzkwLDcgQEAgcHJpdmF0ZToKICAgICBHQzNEaW50IG1f
eVRleHR1cmVTaXplVW5pZm9ybUxvY2F0aW9uIHsgLTEgfTsKICAgICBHQzNEaW50IG1fdXZUZXh0
dXJlU2l6ZVVuaWZvcm1Mb2NhdGlvbiB7IC0xIH07CiAKLSNpZiBVU0UoSU9TVVJGQUNFKQorI2lm
IEhBVkUoSU9TVVJGQUNFKQogICAgIGJvb2wgbV9sYXN0RmxpcFkgeyBmYWxzZSB9OwogICAgIFVu
c2FmZVBvaW50ZXI8SU9TdXJmYWNlUmVmPiBtX2xhc3RTdXJmYWNlOwogICAgIHVpbnQzMl90IG1f
bGFzdFN1cmZhY2VTZWVkIHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUuaAppbmRleCAy
OGE0OTgwNTdiOGU0MTczY2IyMzkwYmZjNzVlYWU3YTVkMzBhOWMwLi44ODViMDZjN2VhYmNiZDFl
NTM2YzdhOTJmYjhjMWE2OTFhNGFlYzJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUuaApA
QCAtNzUsNyArNzUsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIGhhc0Zyb250QnVmZmVyKCkgY29u
c3QKICAgICB7Ci0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKICAgICAg
ICAgaWYgKG1fYWNjZWxlcmF0ZXNEcmF3aW5nKQogICAgICAgICAgICAgcmV0dXJuICEhbV9mcm9u
dEJ1ZmZlci5zdXJmYWNlOwogI2VuZGlmCkBAIC05OSw3ICs5OSw3IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBjbGVhckJhY2tpbmdTdG9yZSgpOwogICAgIHZvaWQgc3dhcFRvVmFsaWRGcm9udEJ1ZmZl
cigpOwogCi0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKICAgICBXZWJD
b3JlOjpJT1N1cmZhY2U6OkZvcm1hdCBzdXJmYWNlQnVmZmVyRm9ybWF0KCkgY29uc3Q7CiAjZW5k
aWYKIApAQCAtMTE1LDE0ICsxMTUsMTQgQEAgcHJpdmF0ZToKIAogICAgIHN0cnVjdCBCdWZmZXIg
ewogICAgICAgICBSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBiaXRtYXA7Ci0jaWYgVVNFKElPU1VS
RkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNv
cmU6OklPU3VyZmFjZT4gc3VyZmFjZTsKICAgICAgICAgYm9vbCBpc1ZvbGF0aWxlID0gZmFsc2U7
CiAjZW5kaWYKIAogICAgICAgICBleHBsaWNpdCBvcGVyYXRvciBib29sKCkgY29uc3QKICAgICAg
ICAgewotI2lmIFVTRShJT1NVUkZBQ0UpCisjaWYgSEFWRShJT1NVUkZBQ0UpCiAgICAgICAgICAg
ICBpZiAoc3VyZmFjZSkKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbmRpZgpAQCAt
MTM3LDcgKzEzNyw3IEBAIHByaXZhdGU6CiAKICAgICBCdWZmZXIgbV9mcm9udEJ1ZmZlcjsKICAg
ICBCdWZmZXIgbV9iYWNrQnVmZmVyOwotI2lmIFVTRShJT1NVUkZBQ0UpCisjaWYgSEFWRShJT1NV
UkZBQ0UpCiAgICAgQnVmZmVyIG1fc2Vjb25kYXJ5QmFja0J1ZmZlcjsKICAgICBXZWJDb3JlOjpN
YWNoU2VuZFJpZ2h0IG1fZnJvbnRCdWZmZXJTZW5kUmlnaHQ7CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdT
dG9yZS5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXll
ckJhY2tpbmdTdG9yZS5tbQppbmRleCA0MDdmNzU2YTU1Mjg4ZDhjMzI0ZjY0NTNlOThkY2Y2ZTM2
NDdmZGU0Li4wNGViY2Q2Y2M0MzI4OTMwMjE2MzcyZDJhYTdiYjVlOTA3ZDhmNmI3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNr
aW5nU3RvcmUubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1Jl
bW90ZUxheWVyQmFja2luZ1N0b3JlLm1tCkBAIC00MCw3ICs0MCw3IEBACiAjaW1wb3J0IDxXZWJD
b3JlL1dlYkxheWVyLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaD4K
IAotI2lmIFVTRShJT1NVUkZBQ0UpCisjaWYgSEFWRShJT1NVUkZBQ0UpCiAjaW1wb3J0IDxtYWNo
L21hY2hfcG9ydC5oPgogI2VuZGlmCiAKQEAgLTcyLDcgKzcyLDcgQEAgUmVtb3RlTGF5ZXJCYWNr
aW5nU3RvcmU6On5SZW1vdGVMYXllckJhY2tpbmdTdG9yZSgpCiAKIHZvaWQgUmVtb3RlTGF5ZXJC
YWNraW5nU3RvcmU6OmVuc3VyZUJhY2tpbmdTdG9yZShGbG9hdFNpemUgc2l6ZSwgZmxvYXQgc2Nh
bGUsIGJvb2wgYWNjZWxlcmF0ZXNEcmF3aW5nLCBib29sIGRlZXBDb2xvciwgYm9vbCBpc09wYXF1
ZSkKIHsKLSNpZiAhVVNFKElPU1VSRkFDRSkKKyNpZiAhSEFWRShJT1NVUkZBQ0UpCiAgICAgYWNj
ZWxlcmF0ZXNEcmF3aW5nID0gZmFsc2U7CiAjZW5kaWYKICAgICBpZiAobV9zaXplID09IHNpemUg
JiYgbV9zY2FsZSA9PSBzY2FsZSAmJiBtX2RlZXBDb2xvciA9PSBkZWVwQ29sb3IgJiYgbV9hY2Nl
bGVyYXRlc0RyYXdpbmcgPT0gYWNjZWxlcmF0ZXNEcmF3aW5nICYmIG1faXNPcGFxdWUgPT0gaXNP
cGFxdWUpCkBAIC05Nyw3ICs5Nyw3IEBAIHZvaWQgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmNs
ZWFyQmFja2luZ1N0b3JlKCkKIHsKICAgICBtX2Zyb250QnVmZmVyLmRpc2NhcmQoKTsKICAgICBt
X2JhY2tCdWZmZXIuZGlzY2FyZCgpOwotI2lmIFVTRShJT1NVUkZBQ0UpCisjaWYgSEFWRShJT1NV
UkZBQ0UpCiAgICAgbV9zZWNvbmRhcnlCYWNrQnVmZmVyLmRpc2NhcmQoKTsKICNlbmRpZgogfQpA
QCAtMTA5LDcgKzEwOSw3IEBAIHZvaWQgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmVuY29kZShJ
UEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBtX2FjY2VsZXJhdGVz
RHJhd2luZzsKICAgICBlbmNvZGVyIDw8IG1faXNPcGFxdWU7CiAKLSNpZiBVU0UoSU9TVVJGQUNF
KQorI2lmIEhBVkUoSU9TVVJGQUNFKQogICAgIGlmIChtX2FjY2VsZXJhdGVzRHJhd2luZykgewog
ICAgICAgICBpZiAobV9mcm9udEJ1ZmZlci5zdXJmYWNlKQogICAgICAgICAgICAgZW5jb2RlciA8
PCBtX2Zyb250QnVmZmVyLnN1cmZhY2UtPmNyZWF0ZVNlbmRSaWdodCgpOwpAQCAtMTQwLDcgKzE0
MCw3IEBAIGJvb2wgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmRlY29kZShJUEM6OkRlY29kZXIm
IGRlY29kZXIsIFJlbW90ZUxheWVyQmFja2luZ1N0CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShy
ZXN1bHQubV9pc09wYXF1ZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotI2lmIFVTRShJT1NV
UkZBQ0UpCisjaWYgSEFWRShJT1NVUkZBQ0UpCiAgICAgaWYgKHJlc3VsdC5tX2FjY2VsZXJhdGVz
RHJhd2luZykgewogICAgICAgICBNYWNoU2VuZFJpZ2h0IHNlbmRSaWdodDsKICAgICAgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShzZW5kUmlnaHQpKQpAQCAtMTc5LDcgKzE3OSw3IEBAIEludFNpemUg
UmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmJhY2tpbmdTdG9yZVNpemUoKSBjb25zdAogCiB1bnNp
Z25lZCBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6Ynl0ZXNQZXJQaXhlbCgpIGNvbnN0CiB7Ci0j
aWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKICAgICBzd2l0Y2ggKHN1cmZh
Y2VCdWZmZXJGb3JtYXQoKSkgewogICAgIGNhc2UgV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3JtYXQ6
OlJHQkE6IHJldHVybiA0OwogICAgIGNhc2UgV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3JtYXQ6OllV
VjQyMjogcmV0dXJuIDI7CkBAIC0xOTQsNyArMTk0LDcgQEAgdm9pZCBSZW1vdGVMYXllckJhY2tp
bmdTdG9yZTo6c3dhcFRvVmFsaWRGcm9udEJ1ZmZlcigpCiB7CiAgICAgSW50U2l6ZSBleHBhbmRl
ZFNjYWxlZFNpemUgPSBiYWNraW5nU3RvcmVTaXplKCk7CiAKLSNpZiBVU0UoSU9TVVJGQUNFKQor
I2lmIEhBVkUoSU9TVVJGQUNFKQogICAgIGlmIChtX2FjY2VsZXJhdGVzRHJhd2luZykgewogICAg
ICAgICBpZiAoIW1fYmFja0J1ZmZlci5zdXJmYWNlIHx8IG1fYmFja0J1ZmZlci5zdXJmYWNlLT5p
c0luVXNlKCkpIHsKICAgICAgICAgICAgIHN0ZDo6c3dhcChtX2JhY2tCdWZmZXIsIG1fc2Vjb25k
YXJ5QmFja0J1ZmZlcik7CkBAIC0yNTQsNyArMjU0LDcgQEAgYm9vbCBSZW1vdGVMYXllckJhY2tp
bmdTdG9yZTo6ZGlzcGxheSgpCiAKICAgICBzd2FwVG9WYWxpZEZyb250QnVmZmVyKCk7CiAKLSNp
ZiBVU0UoSU9TVVJGQUNFKQorI2lmIEhBVkUoSU9TVVJGQUNFKQogICAgIGlmIChtX2FjY2VsZXJh
dGVzRHJhd2luZykgewogICAgICAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gYmFja0ltYWdlOwog
ICAgICAgICBpZiAobV9iYWNrQnVmZmVyLnN1cmZhY2UgJiYgIXdpbGxQYWludEVudGlyZUJhY2tp
bmdTdG9yZSkKQEAgLTM5OSw3ICszOTksNyBAQCB2b2lkIFJlbW90ZUxheWVyQmFja2luZ1N0b3Jl
OjphcHBseUJhY2tpbmdTdG9yZVRvTGF5ZXIoQ0FMYXllciAqbGF5ZXIsIExheWVyQ29udAogewog
ICAgIGxheWVyLmNvbnRlbnRzT3BhcXVlID0gbV9pc09wYXF1ZTsKIAotI2lmIFVTRShJT1NVUkZB
Q0UpCisjaWYgSEFWRShJT1NVUkZBQ0UpCiAgICAgaWYgKGFjY2VsZXJhdGVzRHJhd2luZygpKSB7
CiAgICAgICAgIHN3aXRjaCAoY29udGVudHNUeXBlKSB7CiAgICAgICAgIGNhc2UgTGF5ZXJDb250
ZW50c1R5cGU6OklPU3VyZmFjZToKQEAgLTQyNyw3ICs0MjcsNyBAQCBSZXRhaW5QdHI8Q0dDb250
ZXh0UmVmPiBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6dGFrZUZyb250Q29udGV4dFBlbmRpbmdG
bHVzaCgpCiAgICAgcmV0dXJuIFdURk1vdmUobV9mcm9udENvbnRleHRQZW5kaW5nRmx1c2gpOwog
fQogCi0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKIGJvb2wgUmVtb3Rl
TGF5ZXJCYWNraW5nU3RvcmU6OnNldEJ1ZmZlclZvbGF0aWxpdHkoQnVmZmVyVHlwZSB0eXBlLCBi
b29sIGlzVm9sYXRpbGUpCiB7CiAgICAgc3dpdGNoICh0eXBlKSB7CkBAIC00ODAsNyArNDgwLDcg
QEAgYm9vbCBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6c2V0QnVmZmVyVm9sYXRpbGl0eShCdWZm
ZXJUeXBlLCBib29sKQogCiB2b2lkIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpCdWZmZXI6OmRp
c2NhcmQoKQogewotI2lmIFVTRShJT1NVUkZBQ0UpCisjaWYgSEFWRShJT1NVUkZBQ0UpCiAgICAg
aWYgKHN1cmZhY2UpCiAgICAgICAgIFdlYkNvcmU6OklPU3VyZmFjZTo6bW92ZVRvUG9vbChXVEZN
b3ZlKHN1cmZhY2UpKTsKICAgICBpc1ZvbGF0aWxlID0gZmFsc2U7CkBAIC00ODgsNyArNDg4LDcg
QEAgdm9pZCBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6QnVmZmVyOjpkaXNjYXJkKCkKICAgICBi
aXRtYXAgPSBudWxscHRyOwogfQogCi0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VS
RkFDRSkKIFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0IFJlbW90ZUxheWVyQmFja2luZ1N0b3Jl
OjpzdXJmYWNlQnVmZmVyRm9ybWF0KCkgY29uc3QKIHsKICAgICBpZiAobV9kZWVwQ29sb3IpCkBA
IC00OTYsNiArNDk2LDYgQEAgV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3JtYXQgUmVtb3RlTGF5ZXJC
YWNraW5nU3RvcmU6OnN1cmZhY2VCdWZmZXJGb3JtYXQoKSBjb25zdAogCiAgICAgcmV0dXJuIFdl
YkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0OjpSR0JBOwogfQotI2VuZGlmIC8vIFVTRShJT1NVUkZB
Q0UpCisjZW5kaWYgLy8gSEFWRShJT1NVUkZBQ0UpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvY2cvU2hhcmVhYmxlQml0bWFwQ0cuY3Bw
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvY2cvU2hhcmVhYmxlQml0bWFwQ0cuY3BwCmluZGV4IDM4
MDYyMTc3NmQ3MTliOGE0MGE5ZDJlZDZhZTBhNDY1ZDY4MzAzZmYuLjQxYjJmZWEzMmIxNTNmM2Jm
NGZlZjY1OTJlMjllMjM1NDJlNjU0NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L2NnL1NoYXJlYWJsZUJpdG1hcENHLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jZy9T
aGFyZWFibGVCaXRtYXBDRy5jcHAKQEAgLTczLDcgKzczLDcgQEAgc3RhdGljIENHQml0bWFwSW5m
byBiaXRtYXBJbmZvKGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6Q29uZmlndXJhdGlvbiYgY29uZmln
dXJhdGkKIENoZWNrZWQ8dW5zaWduZWQsIFJlY29yZE92ZXJmbG93PiBTaGFyZWFibGVCaXRtYXA6
OmNhbGN1bGF0ZUJ5dGVzUGVyUm93KFdlYkNvcmU6OkludFNpemUgc2l6ZSwgY29uc3QgQ29uZmln
dXJhdGlvbiYgY29uZmlndXJhdGlvbikKIHsKICAgICB1bnNpZ25lZCBieXRlc1BlclJvdyA9IGNh
bGN1bGF0ZUJ5dGVzUGVyUGl4ZWwoY29uZmlndXJhdGlvbikgKiBzaXplLndpZHRoKCk7Ci0jaWYg
VVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKICAgICByZXR1cm4gSU9TdXJmYWNl
QWxpZ25Qcm9wZXJ0eShrSU9TdXJmYWNlQnl0ZXNQZXJSb3csIGJ5dGVzUGVyUm93KTsKICNlbHNl
CiAgICAgcmV0dXJuIGJ5dGVzUGVyUm93OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggMjBlNGNmNDlkMjQ4YzYxZmY2NTEyNWZjYWQzMDJm
YTZlMjczMzM2Yy4uOGMxNTNkYjI1Yzg1ZDUzN2Q4NTBjNjIxZDY4ZThhZjgxOTM0YWY0MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC0x
ODcxLDEzICsxODcxLDE0IEBAIC0gKFJlZlB0cjxXZWJLaXQ6OlZpZXdTbmFwc2hvdD4pX3Rha2VW
aWV3U25hcHNob3QKIAogICAgIENBVHJhbnNmb3JtM0QgdHJhbnNmb3JtID0gQ0FUcmFuc2Zvcm0z
RE1ha2VTY2FsZShkZXZpY2VTY2FsZSwgZGV2aWNlU2NhbGUsIDEpOwogCi0jaWYgVVNFKElPU1VS
RkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKICAgICBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1h
dCBzbmFwc2hvdEZvcm1hdCA9IFdlYkNvcmU6OnNjcmVlblN1cHBvcnRzRXh0ZW5kZWRDb2xvcigp
ID8gV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3JtYXQ6OlJHQjEwIDogV2ViQ29yZTo6SU9TdXJmYWNl
OjpGb3JtYXQ6OlJHQkE7CiAgICAgYXV0byBzdXJmYWNlID0gV2ViQ29yZTo6SU9TdXJmYWNlOjpj
cmVhdGUoV2ViQ29yZTo6ZXhwYW5kZWRJbnRTaXplKHNuYXBzaG90U2l6ZSksIFdlYkNvcmU6OnNS
R0JDb2xvclNwYWNlUmVmKCksIHNuYXBzaG90Rm9ybWF0KTsKICAgICBpZiAoIXN1cmZhY2UpCiAg
ICAgICAgIHJldHVybiBudWxscHRyOwogICAgIENBUmVuZGVyU2VydmVyUmVuZGVyTGF5ZXJXaXRo
VHJhbnNmb3JtKE1BQ0hfUE9SVF9OVUxMLCBzZWxmLmxheWVyLmNvbnRleHQuY29udGV4dElkLCBy
ZWludGVycHJldF9jYXN0PHVpbnQ2NF90PihzZWxmLmxheWVyKSwgc3VyZmFjZS0+c3VyZmFjZSgp
LCAwLCAwLCAmdHJhbnNmb3JtKTsKIAorI2lmIEhBVkUoSU9TVVJGQUNFX0FDQ0VMRVJBVE9SKQog
ICAgIFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0IGNvbXByZXNzZWRGb3JtYXQgPSBXZWJDb3Jl
OjpJT1N1cmZhY2U6OkZvcm1hdDo6WVVWNDIyOwogICAgIGlmIChXZWJDb3JlOjpJT1N1cmZhY2U6
OmFsbG93Q29udmVyc2lvbkZyb21Gb3JtYXRUb0Zvcm1hdChzbmFwc2hvdEZvcm1hdCwgY29tcHJl
c3NlZEZvcm1hdCkpIHsKICAgICAgICAgUmVmUHRyPFdlYktpdDo6Vmlld1NuYXBzaG90PiB2aWV3
U25hcHNob3QgPSBXZWJLaXQ6OlZpZXdTbmFwc2hvdDo6Y3JlYXRlKG51bGxwdHIpOwpAQCAtMTg4
OCw5ICsxODg5LDEwIEBAIC0gKFJlZlB0cjxXZWJLaXQ6OlZpZXdTbmFwc2hvdD4pX3Rha2VWaWV3
U25hcHNob3QKIAogICAgICAgICByZXR1cm4gdmlld1NuYXBzaG90OwogICAgIH0KKyNlbmRpZiAv
LyBIQVZFKElPU1VSRkFDRV9BQ0NFTEVSQVRPUikKIAogICAgIHJldHVybiBXZWJLaXQ6OlZpZXdT
bmFwc2hvdDo6Y3JlYXRlKFdURk1vdmUoc3VyZmFjZSkpOwotI2Vsc2UKKyNlbHNlIC8vIEhBVkUo
SU9TVVJGQUNFKQogICAgIHVpbnQzMl90IHNsb3RJRCA9IFtXZWJLaXQ6OlZpZXdTbmFwc2hvdFN0
b3JlOjpzbmFwc2hvdHRpbmdDb250ZXh0KCkgY3JlYXRlSW1hZ2VTbG90OnNuYXBzaG90U2l6ZSBo
YXNBbHBoYTpZRVNdOwogCiAgICAgaWYgKCFzbG90SUQpCkBAIC0xODk5LDcgKzE5MDEsNyBAQCAt
IChSZWZQdHI8V2ViS2l0OjpWaWV3U25hcHNob3Q+KV90YWtlVmlld1NuYXBzaG90CiAgICAgQ0FS
ZW5kZXJTZXJ2ZXJDYXB0dXJlTGF5ZXJXaXRoVHJhbnNmb3JtKE1BQ0hfUE9SVF9OVUxMLCBzZWxm
LmxheWVyLmNvbnRleHQuY29udGV4dElkLCAodWludDY0X3Qpc2VsZi5sYXllciwgc2xvdElELCAw
LCAwLCAmdHJhbnNmb3JtKTsKICAgICBXZWJDb3JlOjpJbnRTaXplIGltYWdlU2l6ZSA9IFdlYkNv
cmU6OmV4cGFuZGVkSW50U2l6ZShXZWJDb3JlOjpGbG9hdFNpemUoc25hcHNob3RTaXplKSk7CiAg
ICAgcmV0dXJuIFdlYktpdDo6Vmlld1NuYXBzaG90OjpjcmVhdGUoc2xvdElELCBpbWFnZVNpemUs
IChpbWFnZVNpemUuYXJlYSgpICogNCkudW5zYWZlR2V0KCkpOwotI2VuZGlmCisjZW5kaWYgLy8g
SEFWRShJT1NVUkZBQ0UpCiB9CiAKIC0gKHZvaWQpX3pvb21Ub1BvaW50OihXZWJDb3JlOjpGbG9h
dFBvaW50KXBvaW50IGF0U2NhbGU6KGRvdWJsZSlzY2FsZSBhbmltYXRlZDooQk9PTClhbmltYXRl
ZApAQCAtNTI2MSw3ICs1MjYzLDcgQEAgLSAodm9pZClfc25hcHNob3RSZWN0OihDR1JlY3QpcmVj
dEluVmlld0Nvb3JkaW5hdGVzIGludG9JbWFnZU9mV2lkdGg6KENHRmxvYXQpaW0KICAgICBDR0Zs
b2F0IGltYWdlSGVpZ2h0ID0gaW1hZ2VTY2FsZSAqIHNuYXBzaG90UmVjdEluQ29udGVudENvb3Jk
aW5hdGVzLnNpemUuaGVpZ2h0OwogICAgIENHU2l6ZSBpbWFnZVNpemUgPSBDR1NpemVNYWtlKGlt
YWdlV2lkdGgsIGltYWdlSGVpZ2h0KTsKIAotI2lmIFVTRShJT1NVUkZBQ0UpCisjaWYgSEFWRShJ
T1NVUkZBQ0UpCiAgICAgLy8gSWYgd2UgYXJlIHBhcmVudGVkIGFuZCB0aHVzIHdvbid0IGluY3Vy
IGEgc2lnbmlmaWNhbnQgcGVuYWx0eSBmcm9tIHBhZ2luZyBpbiB0aWxlcywgc25hcHNob3QgdGhl
IHZpZXcgaGllcmFyY2h5IGRpcmVjdGx5LgogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
ICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVl
L1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbQpp
bmRleCBlMjNjOWVlMmY0YjFjMTRhMWMwODAzNjYwZmRhYTE0ODE4MDIzMGM4Li44MDkzNjc3NTli
MGNjMTBmMjhhZDNlNzhiZTdlMTdlOTgwZGQzNDMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94
eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbQpAQCAtMTEwLDcgKzExMCw3IEBAIFJlbW90ZUxh
eWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHko
V2ViUGFnZVByb3h5JiB3CiAgICAgOiBEcmF3aW5nQXJlYVByb3h5KERyYXdpbmdBcmVhVHlwZVJl
bW90ZUxheWVyVHJlZSwgd2ViUGFnZVByb3h5KQogICAgICwgbV9yZW1vdGVMYXllclRyZWVIb3N0
KCp0aGlzKQogewotI2lmIFVTRShJT1NVUkZBQ0UpCisjaWYgSEFWRShJT1NVUkZBQ0UpCiAgICAg
Ly8gV2UgZG9uJ3Qgd2FudCB0byBwb29sIHN1cmZhY2VzIGluIHRoZSBVSSBwcm9jZXNzLgogICAg
IC8vIEZJWE1FOiBXZSBzaG91bGQgZG8gdGhpcyBzb21ld2hlcmUgZWxzZS4KICAgICBJT1N1cmZh
Y2VQb29sOjpzaGFyZWRQb29sKCkuc2V0UG9vbFNpemUoMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlSG9zdC5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVI
b3N0Lm1tCmluZGV4IGM4N2Q3NTJjNzE2NjVhYWQ2ZDQ1MjQ0OWI1NjNiMTQ5ZmY3ODc1NjIuLjlk
ZjFkY2ZiMjE5Y2FiN2U0YjExODQ3ODc4NDNjNTk4YjEwNTZjOTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVIb3N0Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXll
clRyZWVIb3N0Lm1tCkBAIC0yODksNyArMjg5LDcgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVIb3N0
OjpkZXRhY2hSb290TGF5ZXIoKQogICAgIG1fcm9vdExheWVyID0gbnVsbHB0cjsKIH0KIAotI2lm
IFVTRShJT1NVUkZBQ0UpCisjaWYgSEFWRShJT1NVUkZBQ0UpCiBzdGF0aWMgdm9pZCByZWN1cnNp
dmVseU1hcElPU3VyZmFjZUJhY2tpbmdTdG9yZShDQUxheWVyICpsYXllcikKIHsKICAgICBpZiAo
bGF5ZXIuY29udGVudHMgJiYgQ0ZHZXRUeXBlSUQobGF5ZXIuY29udGVudHMpID09IENBTWFjaFBv
cnRHZXRUeXBlSUQoKSkgewpAQCAtMzA1LDcgKzMwNSw3IEBAIHN0YXRpYyB2b2lkIHJlY3Vyc2l2
ZWx5TWFwSU9TdXJmYWNlQmFja2luZ1N0b3JlKENBTGF5ZXIgKmxheWVyKQogCiB2b2lkIFJlbW90
ZUxheWVyVHJlZUhvc3Q6Om1hcEFsbElPU3VyZmFjZUJhY2tpbmdTdG9yZSgpCiB7Ci0jaWYgVVNF
KElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKICAgICByZWN1cnNpdmVseU1hcElPU3Vy
ZmFjZUJhY2tpbmdTdG9yZShhc0xheWVyKG1fcm9vdExheWVyKSk7CiAjZW5kaWYKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9WaWV3U25hcHNob3RTdG9yZS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1ZpZXdTbmFwc2hvdFN0b3JlLmgKaW5kZXggNzBi
NTg3OWFiMmYzYTlkZWY4NjVmMzk1ZDA5NThjNjZmY2U1ZjIzNS4uYWZlZDMzMjM4Y2M4NjUxMGRj
MjU3MGYwZjUzZmUyMWQyMjQ1Zjc3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL1ZpZXdTbmFwc2hvdFN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
bWFjL1ZpZXdTbmFwc2hvdFN0b3JlLmgKQEAgLTUzLDcgKzUzLDcgQEAgY2xhc3MgV2ViUGFnZVBy
b3h5OwogCiBjbGFzcyBWaWV3U25hcHNob3QgOiBwdWJsaWMgUmVmQ291bnRlZDxWaWV3U25hcHNo
b3Q+IHsKIHB1YmxpYzoKLSNpZiBVU0UoSU9TVVJGQUNFKQorI2lmIEhBVkUoSU9TVVJGQUNFKQog
ICAgIHN0YXRpYyBSZWY8Vmlld1NuYXBzaG90PiBjcmVhdGUoc3RkOjp1bmlxdWVfcHRyPFdlYkNv
cmU6OklPU3VyZmFjZT4pOwogI2Vsc2UKICAgICBzdGF0aWMgUmVmPFZpZXdTbmFwc2hvdD4gY3Jl
YXRlKHVpbnQzMl90IHNsb3RJRCwgV2ViQ29yZTo6SW50U2l6ZSwgc2l6ZV90IGltYWdlU2l6ZUlu
Qnl0ZXMpOwpAQCAtNzgsNyArNzgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXREZXZpY2VTY2Fs
ZUZhY3RvcihmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcikgeyBtX2RldmljZVNjYWxlRmFjdG9yID0g
ZGV2aWNlU2NhbGVGYWN0b3I7IH0KICAgICBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0
IHsgcmV0dXJuIG1fZGV2aWNlU2NhbGVGYWN0b3I7IH0KIAotI2lmIFVTRShJT1NVUkZBQ0UpCisj
aWYgSEFWRShJT1NVUkZBQ0UpCiAgICAgV2ViQ29yZTo6SU9TdXJmYWNlKiBzdXJmYWNlKCkgY29u
c3QgeyByZXR1cm4gbV9zdXJmYWNlLmdldCgpOyB9CiAKICAgICBzaXplX3QgaW1hZ2VTaXplSW5C
eXRlcygpIGNvbnN0IHsgcmV0dXJuIG1fc3VyZmFjZSA/IG1fc3VyZmFjZS0+dG90YWxCeXRlcygp
IDogMDsgfQpAQCAtOTMsNyArOTMsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogcHJpdmF0ZToKLSNp
ZiBVU0UoSU9TVVJGQUNFKQorI2lmIEhBVkUoSU9TVVJGQUNFKQogICAgIGV4cGxpY2l0IFZpZXdT
bmFwc2hvdChzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPik7CiAKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPiBtX3N1cmZhY2U7CkBAIC0xMjcsNyArMTI3
LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0RGlzYWJsZVNuYXBzaG90Vm9sYXRpbGl0eUZvclRl
c3RpbmcoYm9vbCBkaXNhYmxlKSB7IG1fZGlzYWJsZVNuYXBzaG90Vm9sYXRpbGl0eSA9IGRpc2Fi
bGU7IH0KICAgICBib29sIGRpc2FibGVTbmFwc2hvdFZvbGF0aWxpdHlGb3JUZXN0aW5nKCkgY29u
c3QgeyByZXR1cm4gbV9kaXNhYmxlU25hcHNob3RWb2xhdGlsaXR5OyB9CiAKLSNpZiAhVVNFKElP
U1VSRkFDRSkKKyNpZiAhSEFWRShJT1NVUkZBQ0UpCiAgICAgc3RhdGljIENBQ29udGV4dCAqc25h
cHNob3R0aW5nQ29udGV4dCgpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL21hYy9WaWV3U25hcHNob3RTdG9yZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL21hYy9WaWV3U25hcHNob3RTdG9yZS5tbQppbmRleCBhZWY3YzMzNjIyMTFiMThlZGNlODUy
MTM2NTdiOWE1MTM3ZTZiZTExLi44NmRhZTVmNzE4NWEyNzdhOTlhNDM0NjE4ODYwNjBiMWU0YTli
YzZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVmlld1NuYXBzaG90
U3RvcmUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1ZpZXdTbmFwc2hvdFN0
b3JlLm1tCkBAIC02MCw3ICs2MCw3IEBAIFZpZXdTbmFwc2hvdFN0b3JlJiBWaWV3U25hcHNob3RT
dG9yZTo6c2luZ2xldG9uKCkKICAgICByZXR1cm4gc3RvcmU7CiB9CiAKLSNpZiAhVVNFKElPU1VS
RkFDRSkKKyNpZiAhSEFWRShJT1NVUkZBQ0UpCiBDQUNvbnRleHQgKlZpZXdTbmFwc2hvdFN0b3Jl
OjpzbmFwc2hvdHRpbmdDb250ZXh0KCkKIHsKICAgICBzdGF0aWMgQ0FDb250ZXh0ICpjb250ZXh0
OwpAQCAtMTMxLDcgKzEzMSw3IEBAIHZvaWQgVmlld1NuYXBzaG90U3RvcmU6OmRpc2NhcmRTbmFw
c2hvdEltYWdlcygpCiAgICAgICAgIG1fc25hcHNob3RzV2l0aEltYWdlcy5maXJzdCgpLT5jbGVh
ckltYWdlKCk7CiB9CiAKLSNpZiBVU0UoSU9TVVJGQUNFKQorI2lmIEhBVkUoSU9TVVJGQUNFKQog
UmVmPFZpZXdTbmFwc2hvdD4gVmlld1NuYXBzaG90OjpjcmVhdGUoc3RkOjp1bmlxdWVfcHRyPFdl
YkNvcmU6OklPU3VyZmFjZT4gc3VyZmFjZSkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBW
aWV3U25hcHNob3QoV1RGTW92ZShzdXJmYWNlKSkpOwpAQCAtMTQzLDcgKzE0Myw3IEBAIFJlZjxW
aWV3U25hcHNob3Q+IFZpZXdTbmFwc2hvdDo6Y3JlYXRlKHVpbnQzMl90IHNsb3RJRCwgSW50U2l6
ZSBzaXplLCBzaXplX3QgaW1hCiB9CiAjZW5kaWYKIAotI2lmIFVTRShJT1NVUkZBQ0UpCisjaWYg
SEFWRShJT1NVUkZBQ0UpCiBWaWV3U25hcHNob3Q6OlZpZXdTbmFwc2hvdChzdGQ6OnVuaXF1ZV9w
dHI8V2ViQ29yZTo6SU9TdXJmYWNlPiBzdXJmYWNlKQogICAgIDogbV9zdXJmYWNlKFdURk1vdmUo
c3VyZmFjZSkpCiAjZWxzZQpAQCAtMTYyLDcgKzE2Miw3IEBAIFZpZXdTbmFwc2hvdDo6flZpZXdT
bmFwc2hvdCgpCiAgICAgY2xlYXJJbWFnZSgpOwogfQogCi0jaWYgVVNFKElPU1VSRkFDRSkKKyNp
ZiBIQVZFKElPU1VSRkFDRSkKIHZvaWQgVmlld1NuYXBzaG90OjpzZXRTdXJmYWNlKHN0ZDo6dW5p
cXVlX3B0cjxXZWJDb3JlOjpJT1N1cmZhY2U+IHN1cmZhY2UpCiB7CiAgICAgQVNTRVJUKCFtX3N1
cmZhY2UpOwpAQCAtMTc4LDcgKzE3OCw3IEBAIHZvaWQgVmlld1NuYXBzaG90OjpzZXRTdXJmYWNl
KHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJT1N1cmZhY2U+IHN1cmZhY2UpCiAKIGJvb2wgVmll
d1NuYXBzaG90OjpoYXNJbWFnZSgpIGNvbnN0CiB7Ci0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBI
QVZFKElPU1VSRkFDRSkKICAgICByZXR1cm4gISFtX3N1cmZhY2U7CiAjZWxzZQogICAgIHJldHVy
biBtX3Nsb3RJRDsKQEAgLTE5Miw3ICsxOTIsNyBAQCB2b2lkIFZpZXdTbmFwc2hvdDo6Y2xlYXJJ
bWFnZSgpCiAKICAgICBWaWV3U25hcHNob3RTdG9yZTo6c2luZ2xldG9uKCkud2lsbFJlbW92ZUlt
YWdlRnJvbVNuYXBzaG90KCp0aGlzKTsKIAotI2lmIFVTRShJT1NVUkZBQ0UpCisjaWYgSEFWRShJ
T1NVUkZBQ0UpCiAgICAgbV9zdXJmYWNlID0gbnVsbHB0cjsKICNlbHNlCiAgICAgW1ZpZXdTbmFw
c2hvdFN0b3JlOjpzbmFwc2hvdHRpbmdDb250ZXh0KCkgZGVsZXRlU2xvdDptX3Nsb3RJRF07CkBA
IC0yMDEsNyArMjAxLDcgQEAgdm9pZCBWaWV3U25hcHNob3Q6OmNsZWFySW1hZ2UoKQogI2VuZGlm
CiB9CiAKLSNpZiBVU0UoSU9TVVJGQUNFKQorI2lmIEhBVkUoSU9TVVJGQUNFKQogV2ViQ29yZTo6
SU9TdXJmYWNlOjpTdXJmYWNlU3RhdGUgVmlld1NuYXBzaG90OjpzZXRWb2xhdGlsZShib29sIGJl
Y29tZVZvbGF0aWxlKQogewogICAgIGlmIChWaWV3U25hcHNob3RTdG9yZTo6c2luZ2xldG9uKCku
ZGlzYWJsZVNuYXBzaG90Vm9sYXRpbGl0eUZvclRlc3RpbmcoKSkKQEAgLTIxNiw3ICsyMTYsNyBA
QCBXZWJDb3JlOjpJT1N1cmZhY2U6OlN1cmZhY2VTdGF0ZSBWaWV3U25hcHNob3Q6OnNldFZvbGF0
aWxlKGJvb2wgYmVjb21lVm9sYXRpbGUpCiAKIGlkIFZpZXdTbmFwc2hvdDo6YXNMYXllckNvbnRl
bnRzKCkKIHsKLSNpZiBVU0UoSU9TVVJGQUNFKQorI2lmIEhBVkUoSU9TVVJGQUNFKQogICAgIGlm
ICghbV9zdXJmYWNlKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIApAQCAtMjMzLDcgKzIzMyw3
IEBAIGlkIFZpZXdTbmFwc2hvdDo6YXNMYXllckNvbnRlbnRzKCkKIAogUmV0YWluUHRyPENHSW1h
Z2VSZWY+IFZpZXdTbmFwc2hvdDo6YXNJbWFnZUZvclRlc3RpbmcoKQogewotI2lmIFVTRShJT1NV
UkZBQ0UpCisjaWYgSEFWRShJT1NVUkZBQ0UpCiAgICAgaWYgKCFtX3N1cmZhY2UpCiAgICAgICAg
IHJldHVybiBudWxscHRyOwogCmRpZmYgLS1naXQgYS9XZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9n
IGIvV2ViS2l0TGlicmFyaWVzL0NoYW5nZUxvZwppbmRleCAzMDY5NGRmNzdiNThmN2Q2NjIwNDFj
MDM4OWI4ZmNlYjNlYmYwMzA5Li5kYjc1NzUzNDA2NmEyYTVjZGQ4YWFiNjFjMTg0NjgzN2NkM2E0
YjQxIDEwMDY0NAotLS0gYS9XZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdExp
YnJhcmllcy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOC0wMi0yMCAgVGltIEhvcnRv
biAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgSEFWRShJ
T1NVUkZBQ0VfQUNDRUxFUkFUT1IpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xODI5NTUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM3Njk5NTEwPgor
CisgICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCisKKyAgICAgICAgKiBXZWJLaXRQcml2
YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzEwL0lPU3VyZmFjZS5mcmFtZXdvcmsvSU9TdXJmYWNlLnRi
ZDoKKyAgICAgICAgKiBXZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzEwL0lPU3VyZmFj
ZUFjY2VsZXJhdG9yLmZyYW1ld29yay9JT1N1cmZhY2VBY2NlbGVyYXRvci50YmQ6IEFkZGVkLgor
ICAgICAgICAqIFdlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9pT1MvMTEvSU9TdXJmYWNlQWNj
ZWxlcmF0b3IuZnJhbWV3b3JrL0lPU3VyZmFjZUFjY2VsZXJhdG9yLnRiZDogQWRkZWQuCisgICAg
ICAgIFN3aXRjaCBJT1N1cmZhY2VBY2NlbGVyYXRvciBzeW1ib2xzIG92ZXIgdG8gdGhlIHN0aWxs
LXByaXZhdGUgSU9TdXJmYWNlQWNjZWxlcmF0b3IgZnJhbWV3b3JrLgorCiAyMDE4LTAxLTE5ICBS
eWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IHJvbGxpbmcgb3V0IHIyMjcyMTEuCmRpZmYgLS1naXQgYS9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0
UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2lPUy8xMC9JT1N1cmZhY2UuZnJhbWV3b3JrL0lPU3VyZmFj
ZS50YmQgYi9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2lPUy8x
MC9JT1N1cmZhY2UuZnJhbWV3b3JrL0lPU3VyZmFjZS50YmQKaW5kZXggNTdiOWI5N2JiOGFkYzM1
Njc0N2MyYmVlMmI3MDIxNTI2YzJkZDQ0OC4uYzdiZmY0ZjE3MTc1MzdlNDEyMTIwZGI0YjVmZWE0
MWI2MGQ5NzA3MSAxMDA2NDQKLS0tIGEvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFt
ZXdvcmtTdHVicy9pT1MvMTAvSU9TdXJmYWNlLmZyYW1ld29yay9JT1N1cmZhY2UudGJkCisrKyBi
L1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzEwL0lPU3Vy
ZmFjZS5mcmFtZXdvcmsvSU9TdXJmYWNlLnRiZApAQCAtMTQsOSArMTQsNiBAQCBleHBvcnRzOgog
ICAgICAgLSBpMzg2CiAgICAgICAtIHg4Nl82NAogICAgIHN5bWJvbHM6Ci0gICAgICAtIF9JT1N1
cmZhY2VBY2NlbGVyYXRvckNyZWF0ZQotICAgICAgLSBfSU9TdXJmYWNlQWNjZWxlcmF0b3JHZXRS
dW5Mb29wU291cmNlCi0gICAgICAtIF9JT1N1cmZhY2VBY2NlbGVyYXRvclRyYW5zZm9ybVN1cmZh
Y2UKICAgICAgIC0gX0lPU3VyZmFjZUFsaWduUHJvcGVydHkKICAgICAgIC0gX0lPU3VyZmFjZUNy
ZWF0ZQogICAgICAgLSBfSU9TdXJmYWNlQ3JlYXRlTWFjaFBvcnQKZGlmZiAtLWdpdCBhL1dlYktp
dExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzEwL0lPU3VyZmFjZUFj
Y2VsZXJhdG9yLmZyYW1ld29yay9JT1N1cmZhY2VBY2NlbGVyYXRvci50YmQgYi9XZWJLaXRMaWJy
YXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2lPUy8xMC9JT1N1cmZhY2VBY2NlbGVy
YXRvci5mcmFtZXdvcmsvSU9TdXJmYWNlQWNjZWxlcmF0b3IudGJkCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzZDNi
Y2VkNTUzOTNmNTZiYjI4ODUzZTY1ZGY4NmMxMTE3OTUwY2IKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2lPUy8xMC9JT1N1cmZh
Y2VBY2NlbGVyYXRvci5mcmFtZXdvcmsvSU9TdXJmYWNlQWNjZWxlcmF0b3IudGJkCkBAIC0wLDAg
KzEsMjQgQEAKKy0tLSAhdGFwaS10YmQtdjIKK2FyY2hzOgorICAtIGFybXY3CisgIC0gYXJtdjdz
CisgIC0gYXJtNjQKKyAgLSBpMzg2CisgIC0geDg2XzY0CitleHBvcnRzOgorICAtCisgICAgYXJj
aHM6CisgICAgICAtIGFybXY3CisgICAgICAtIGFybXY3cworICAgICAgLSBhcm02NAorICAgICAg
LSBpMzg2CisgICAgICAtIHg4Nl82NAorICAgIHN5bWJvbHM6CisgICAgICAtIF9JT1N1cmZhY2VB
Y2NlbGVyYXRvckNyZWF0ZQorICAgICAgLSBfSU9TdXJmYWNlQWNjZWxlcmF0b3JHZXRSdW5Mb29w
U291cmNlCisgICAgICAtIF9JT1N1cmZhY2VBY2NlbGVyYXRvclRyYW5zZm9ybVN1cmZhY2UKKyAg
ICAgIC0gX2tJT1N1cmZhY2VBY2NlbGVyYXRvclVud2lyZVN1cmZhY2VLZXkKK2luc3RhbGwtbmFt
ZTogL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0lPU3VyZmFjZUFjY2VsZXJhdG9y
LmZyYW1ld29yay9JT1N1cmZhY2VBY2NlbGVyYXRvcgorb2JqYy1jb25zdHJhaW50OiBub25lCitw
bGF0Zm9ybTogaW9zCisuLi4KZGlmZiAtLWdpdCBhL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2
YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzExL0lPU3VyZmFjZUFjY2VsZXJhdG9yLmZyYW1ld29yay9J
T1N1cmZhY2VBY2NlbGVyYXRvci50YmQgYi9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZy
YW1ld29ya1N0dWJzL2lPUy8xMS9JT1N1cmZhY2VBY2NlbGVyYXRvci5mcmFtZXdvcmsvSU9TdXJm
YWNlQWNjZWxlcmF0b3IudGJkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzZDNiY2VkNTUzOTNmNTZiYjI4ODUzZTY1
ZGY4NmMxMTE3OTUwY2IKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0
UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2lPUy8xMS9JT1N1cmZhY2VBY2NlbGVyYXRvci5mcmFtZXdv
cmsvSU9TdXJmYWNlQWNjZWxlcmF0b3IudGJkCkBAIC0wLDAgKzEsMjQgQEAKKy0tLSAhdGFwaS10
YmQtdjIKK2FyY2hzOgorICAtIGFybXY3CisgIC0gYXJtdjdzCisgIC0gYXJtNjQKKyAgLSBpMzg2
CisgIC0geDg2XzY0CitleHBvcnRzOgorICAtCisgICAgYXJjaHM6CisgICAgICAtIGFybXY3Cisg
ICAgICAtIGFybXY3cworICAgICAgLSBhcm02NAorICAgICAgLSBpMzg2CisgICAgICAtIHg4Nl82
NAorICAgIHN5bWJvbHM6CisgICAgICAtIF9JT1N1cmZhY2VBY2NlbGVyYXRvckNyZWF0ZQorICAg
ICAgLSBfSU9TdXJmYWNlQWNjZWxlcmF0b3JHZXRSdW5Mb29wU291cmNlCisgICAgICAtIF9JT1N1
cmZhY2VBY2NlbGVyYXRvclRyYW5zZm9ybVN1cmZhY2UKKyAgICAgIC0gX2tJT1N1cmZhY2VBY2Nl
bGVyYXRvclVud2lyZVN1cmZhY2VLZXkKK2luc3RhbGwtbmFtZTogL1N5c3RlbS9MaWJyYXJ5L1By
aXZhdGVGcmFtZXdvcmtzL0lPU3VyZmFjZUFjY2VsZXJhdG9yLmZyYW1ld29yay9JT1N1cmZhY2VB
Y2NlbGVyYXRvcgorb2JqYy1jb25zdHJhaW50OiBub25lCitwbGF0Zm9ybTogaW9zCisuLi4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>334311</attachid>
            <date>2018-02-20 15:56:55 -0800</date>
            <delta_ts>2018-02-20 16:40:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-182955-20180220155655.patch</filename>
            <type>text/plain</type>
            <size>38495</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI4ODQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGJhMzNlNzEzZWFiNjgyYmJhNTI1NTY0
YmMzYzllNGEwM2M1NzIyNjYuLjQ0YzNhMTJiZDM2OWY1ODZmMWE1OWM3OTVlNDYzN2UyNTVjZjc0
ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTgtMDItMjAgIFRpbSBIb3J0b24gIDx0aW1vdGh5
X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgSW50cm9kdWNlIEhBVkUoSU9TVVJGQUNFX0FD
Q0VMRVJBVE9SKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTgyOTU1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNzY5OTUxMD4KKworICAgICAgICBS
ZXZpZXdlZCBieSBTYW0gV2VpbmlnLgorCisgICAgICAgICogd3RmL1BsYXRmb3JtLmg6CisKIDIw
MTgtMDItMjAgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgQWx3YXlzIGlubGluZSBzb2Z0IGxpbmtpbmcgZnVuY3Rpb25zIHRvIHdvcmsgYXJvdW5kIGEg
Y2xhbmcgYnVnCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTNjNzA1MTE4YmQxM2I0ZGIyNzE2ZGZmNmU0MjVkMTE2
NTM3MmMwNC4uMDIyZmVhYTBhNTczOTI3YjkxMjFmZWRjODU3Mjg1YjBlNjRhNTE0NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE4LTAyLTIwICBUaW0gSG9ydG9uICA8dGltb3RoeV9o
b3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEludHJvZHVjZSBIQVZFKElPU1VSRkFDRV9BQ0NF
TEVSQVRPUikKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE4Mjk1NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzc2OTk1MTA+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgU2FtIFdlaW5pZy4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGNoYW5nZSBp
biBiZWhhdmlvci4KKworICAgICAgICBJbnRyb2R1Y2UgSEFWRShJT1NVUkZBQ0VfQUNDRUxFUkFU
T1IpIGFuZCBndWFyZCBhbGwgdXNlcyBvZgorICAgICAgICBJT1N1cmZhY2VBY2NlbGVyYXRvciBi
ZWhpbmQgaXQuCisKKyAgICAgICAgUmVuYW1lIFVTRShJT1NVUkZBQ0UpIHRvIEhBVkUoSU9TVVJG
QUNFKSBmb3IgYWNjdXJhY3kuCisKKyAgICAgICAgKiBwYWdlL2NvY29hL01lbW9yeVJlbGVhc2VD
b2NvYS5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlQ29udHJvbGxlci5j
cHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSU9TdXJmYWNlUG9vbC5jcHA6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSU9TdXJmYWNlUG9vbC5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL0lPU3VyZmFjZS5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9JT1N1cmZhY2VQb29sQ29jb2EubW06CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY3Yv
VmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2N2
L1ZpZGVvVGV4dHVyZUNvcGllckNWLmg6CisKIDIwMTgtMDItMjAgIFRpbSBIb3J0b24gIDx0aW1v
dGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBtb3JlIHVzZSBvZiBVU0UoT1BF
TkdMX0VTKSB3aGVyZSBpdCBtYWtlcyBzZW5zZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
UEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggOWRkNDZl
YjEwNzU4YjQ1Mzg0NzRlODE4YjNmMjQxOTZkMjRlNmNmYi4uYjMwNDc2ZjI0OGEwZWU5MzRlMTli
M2QxYTRjYThkMWM2YmFkNWYyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTgtMDItMjAgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAg
ICAgICAgSW50cm9kdWNlIEhBVkUoSU9TVVJGQUNFX0FDQ0VMRVJBVE9SKQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgyOTU1CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS8zNzY5OTUxMD4KKworICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgor
CisgICAgICAgICogcGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaDoKKyAgICAgICAgKiBwYWwv
c3BpL2NvY29hL0lPU3VyZmFjZVNQSS5oOgorICAgICAgICAqIHBhbC9zcGkvY29jb2EvUXVhcnR6
Q29yZVNQSS5oOgorCiAyMDE4LTAyLTE1ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBw
bGUuY29tPgogCiAgICAgICAgIFN0b3AgdXNpbmcgRVhDTFVERURfU09VUkNFX0ZJTEVfTkFNRVMg
Zm9yIGFjdHVhbCBzb3VyY2UgZmlsZXMgaW4gV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBkOWZkMzA2YjBm
ZjI4OGM0NmI4YjU3NGEyMzBmZjVjNTIzYjI2NzY0Li43OGE3M2IzNTY4MGFlZTViZGYwYWFjN2M4
NTMxZTU0NzQzM2Q2NDJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE4LTAyLTIwICBU
aW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEludHJvZHVj
ZSBIQVZFKElPU1VSRkFDRV9BQ0NFTEVSQVRPUikKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE4Mjk1NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzc2
OTk1MTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KKworICAgICAgICAqIFNo
YXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUuaDoKKyAgICAgICAg
KiBTaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tOgorICAg
ICAgICAqIFNoYXJlZC9jZy9TaGFyZWFibGVCaXRtYXBDRy5jcHA6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlSG9zdC5tbToKKyAgICAgICAg
KiBVSVByb2Nlc3MvbWFjL1ZpZXdTbmFwc2hvdFN0b3JlLmg6CisgICAgICAgICogVUlQcm9jZXNz
L21hYy9WaWV3U25hcHNob3RTdG9yZS5tbToKKwogMjAxOC0wMi0yMCAgTWF0dCBMZXdpcyAgPGps
ZXdpczNAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyMjg4
MjkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oIGIvU291cmNlL1dURi93
dGYvUGxhdGZvcm0uaAppbmRleCBlYTc5YTE1MDkxN2E2NzU1NDg3NTc4NmJkZWU1ODMzNzM3ODQz
YmNhLi5jMDJiNjZkMDc4MGY3NGJlNmU0YTNiZjNhNmQwOTkzMDU0NmU5MTZjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
LmgKQEAgLTEyMDQsNyArMTIwNCwxMSBAQAogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkg
JiYgIVBMQVRGT1JNKElPU19TSU1VTEFUT1IpCi0jZGVmaW5lIFVTRV9JT1NVUkZBQ0UgMQorI2Rl
ZmluZSBIQVZFX0lPU1VSRkFDRSAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKElPUykgJiYgIVBM
QVRGT1JNKElPU19TSU1VTEFUT1IpCisjZGVmaW5lIEhBVkVfSU9TVVJGQUNFX0FDQ0VMRVJBVE9S
IDEKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Db25maWd1cmF0aW9ucy9XZWJDb3JlLnhjY29uZmlnIGIvU291cmNlL1dlYkNvcmUvQ29u
ZmlndXJhdGlvbnMvV2ViQ29yZS54Y2NvbmZpZwppbmRleCBiZGVlN2U0NDgxMTExMmI2M2U0YTE5
NThmZGI1MjYzYzlhZTgyMjQyLi43NDkxZTQzNGRjNzliMTVmYzFjNmNhN2Y2ZWRhZjk5M2UwMTI5
Mjc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9XZWJDb3JlLnhj
Y29uZmlnCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL1dlYkNvcmUueGNjb25m
aWcKQEAgLTgwLDcgKzgwLDcgQEAgT1RIRVJfTERGTEFHUyA9ICQoaW5oZXJpdGVkKSAkKFdLX1JF
TE9DQVRBQkxFX0ZSQU1FV09SS19MREZMQUdTKSAkKFdLX1VOREVGSU5FRF8KIE9USEVSX0xERkxB
R1NfQkFTRSA9IC1sc3FsaXRlMyAtbG9iamMgLWxBTkdMRSAtZnJhbWV3b3JrIENvcmVBdWRpbyAt
ZnJhbWV3b3JrIE1ldGFsIC1hbGxvd2FibGVfY2xpZW50IFdlYkNvcmVUZXN0U3VwcG9ydCAtYWxs
b3dhYmxlX2NsaWVudCBXZWJLaXRMZWdhY3kgLWZvcmNlX2xvYWQgJChCVUlMVF9QUk9EVUNUU19E
SVIpL2xpYlBBTC5hOwogLy8gRklYTUU6IFJlZHVjZSB0aGUgbnVtYmVyIG9mIGFsbG93YWJsZV9j
bGllbnQgPHJkYXI6Ly9wcm9ibGVtLzMxODIzOTY5PgogT1RIRVJfTERGTEFHU19CQVNFX2lvcyA9
ICQoT1RIRVJfTERGTEFHU19CQVNFKSAtZnJhbWV3b3JrIENGTmV0d29yayAtZnJhbWV3b3JrIENv
cmVHcmFwaGljcyAtZnJhbWV3b3JrIENvcmVUZXh0IC1mcmFtZXdvcmsgRm91bmRhdGlvbiAtZnJh
bWV3b3JrIEltYWdlSU8gLWZyYW1ld29yayBNb2JpbGVDb3JlU2VydmljZXMgLWZyYW1ld29yayBP
cGVuR0xFUyAtbE1vYmlsZUdlc3RhbHQgJChXS19JT1NfQklOQ09NUEFUX0xERkxBR1MpIC1hbGxv
d2FibGVfY2xpZW50IFdlYktpdCAtYWxsb3dhYmxlX2NsaWVudCBpVHVuZXNVIC1hbGxvd2FibGVf
Y2xpZW50IENhc2FibGFuY2EgLWFsbG93YWJsZV9jbGllbnQgUmVtb3RlIC1hbGxvd2FibGVfY2xp
ZW50IFRWQm9va3MgLWFsbG93YWJsZV9jbGllbnQgRHVtcFJlbmRlclRyZWUgLWFsbG93YWJsZV9j
bGllbnQgV2ViS2l0VGVzdFJ1bm5lciAtYWxsb3dhYmxlX2NsaWVudCBUZXN0V2ViS2l0QVBJOwot
T1RIRVJfTERGTEFHU19QTEFURk9STVtzZGs9aXBob25lb3MqXSA9ICQoT1RIRVJfTERGTEFHU19C
QVNFX2lvcykgLWZyYW1ld29yayBJT1N1cmZhY2UgLWZyYW1ld29yayBHcmFwaGljc1NlcnZpY2Vz
ICQoTElCV0VCUlRDX0xERkxBR1MpOworT1RIRVJfTERGTEFHU19QTEFURk9STVtzZGs9aXBob25l
b3MqXSA9ICQoT1RIRVJfTERGTEFHU19CQVNFX2lvcykgLWZyYW1ld29yayBJT1N1cmZhY2UgLWZy
YW1ld29yayBJT1N1cmZhY2VBY2NlbGVyYXRvciAtZnJhbWV3b3JrIEdyYXBoaWNzU2VydmljZXMg
JChMSUJXRUJSVENfTERGTEFHUyk7CiBPVEhFUl9MREZMQUdTX1BMQVRGT1JNW3Nkaz1pcGhvbmVz
aW11bGF0b3IqXSA9ICQoT1RIRVJfTERGTEFHU19CQVNFX2lvcykgJChMSUJXRUJSVENfTERGTEFH
Uyk7CiBPVEhFUl9MREZMQUdTX1BMQVRGT1JNW3Nkaz1tYWNvc3gqXSA9ICQoT1RIRVJfTERGTEFH
U19CQVNFKSAtc3ViX2xpYnJhcnkgbGlib2JqYyAtdW1icmVsbGEgV2ViS2l0IC1mcmFtZXdvcmsg
QXBwbGljYXRpb25TZXJ2aWNlcyAtZnJhbWV3b3JrIEF1ZGlvVW5pdCAtZnJhbWV3b3JrIENhcmJv
biAtZnJhbWV3b3JrIENvY29hIC1mcmFtZXdvcmsgRGF0YURldGVjdG9yc0NvcmUgLWZyYW1ld29y
ayBJT1N1cmZhY2UgLWZyYW1ld29yayBPcGVuR0wgLWZyYW1ld29yayBTeXN0ZW1Db25maWd1cmF0
aW9uICQoTElCV0VCUlRDX0xERkxBR1MpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
c3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oCmluZGV4IDg0N2Y0NTliYWI5ZjMzOWExZDQ5YTkzYmZh
NjgwZTliY2UzMmI2YzEuLjc2OWJjMzk3OGU3ZmM1ZGY0YmU4ODQ5MmFkNDUzZDNiYWQ1ZjQzNTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQ
SS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5o
CkBAIC0yOCw3ICsyOCw3IEBACiAjaW5jbHVkZSA8Q29yZUZvdW5kYXRpb24vQ29yZUZvdW5kYXRp
b24uaD4KICNpbmNsdWRlIDxDb3JlR3JhcGhpY3MvQ29yZUdyYXBoaWNzLmg+CiAKLSNpZiBVU0Uo
SU9TVVJGQUNFKQorI2lmIEhBVkUoSU9TVVJGQUNFKQogI2luY2x1ZGUgPHBhbC9zcGkvY29jb2Ev
SU9TdXJmYWNlU1BJLmg+CiAjZW5kaWYKIApAQCAtMjQ5LDcgKzI0OSw3IEBAIGJvb2wgQ0dDb250
ZXh0R2V0QWxsb3dzRm9udFN1YnBpeGVsUG9zaXRpb25pbmcoQ0dDb250ZXh0UmVmKTsKIGJvb2wg
Q0dDb250ZXh0RHJhd3NXaXRoQ29ycmVjdFNoYWRvd09mZnNldHMoQ0dDb250ZXh0UmVmKTsKIENH
UGF0dGVyblJlZiBDR1BhdHRlcm5DcmVhdGVXaXRoSW1hZ2UyKENHSW1hZ2VSZWYsIENHQWZmaW5l
VHJhbnNmb3JtLCBDR1BhdHRlcm5UaWxpbmcpOwogCi0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBI
QVZFKElPU1VSRkFDRSkKIENHQ29udGV4dFJlZiBDR0lPU3VyZmFjZUNvbnRleHRDcmVhdGUoSU9T
dXJmYWNlUmVmLCBzaXplX3QsIHNpemVfdCwgc2l6ZV90LCBzaXplX3QsIENHQ29sb3JTcGFjZVJl
ZiwgQ0dCaXRtYXBJbmZvKTsKIENHSW1hZ2VSZWYgQ0dJT1N1cmZhY2VDb250ZXh0Q3JlYXRlSW1h
Z2UoQ0dDb250ZXh0UmVmKTsKIENHSW1hZ2VSZWYgQ0dJT1N1cmZhY2VDb250ZXh0Q3JlYXRlSW1h
Z2VSZWZlcmVuY2UoQ0dDb250ZXh0UmVmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvc3BpL2NvY29hL0lPU3VyZmFjZVNQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9z
cGkvY29jb2EvSU9TdXJmYWNlU1BJLmgKaW5kZXggZTcyZjRkMjY3NDM5YjlmYjU1ZjQ5OTAyNWI1
OTJiYTEzMDY5NjlmZi4uODJhM2Q2MmZkMjE4OTYyZjY4YjcyMjgwNWU1MjMxZGUzNWFhOTQ4MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvSU9TdXJmYWNlU1BJ
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvSU9TdXJmYWNlU1BJLmgK
QEAgLTI1LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiAhUExBVEZPUk0oSU9TX1NJ
TVVMQVRPUikKKyNpZiBIQVZFKElPU1VSRkFDRSkKIAogI2lmIFBMQVRGT1JNKE1BQykgfHwgVVNF
KEFQUExFX0lOVEVSTkFMX1NESykKIApAQCAtMTEzLDcgKzExMyw3IEBAIElPUmV0dXJuIElPU3Vy
ZmFjZVNldFB1cmdlYWJsZShJT1N1cmZhY2VSZWYgYnVmZmVyLCB1aW50MzJfdCBuZXdTdGF0ZSwg
dWludDMyX3QKIAogV1RGX0VYVEVSTl9DX0VORAogCi0jaWYgUExBVEZPUk0oSU9TKQorI2lmIEhB
VkUoSU9TVVJGQUNFX0FDQ0VMRVJBVE9SKQogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAK
ICNpbXBvcnQgPElPU3VyZmFjZUFjY2VsZXJhdG9yL0lPU3VyZmFjZUFjY2VsZXJhdG9yLmg+CkBA
IC0xMjgsNiArMTI4LDggQEAgdHlwZWRlZiBzdHJ1Y3QgX19JT1N1cmZhY2VBY2NlbGVyYXRvciAq
SU9TdXJmYWNlQWNjZWxlcmF0b3JSZWY7CiAKIFdURl9FWFRFUk5fQ19CRUdJTgogCitleHRlcm4g
Y29uc3QgQ0ZTdHJpbmdSZWYga0lPU3VyZmFjZUFjY2VsZXJhdG9yVW53aXJlU3VyZmFjZUtleTsK
KwogSU9SZXR1cm4gSU9TdXJmYWNlQWNjZWxlcmF0b3JDcmVhdGUoQ0ZBbGxvY2F0b3JSZWYsIENG
RGljdGlvbmFyeVJlZiBwcm9wZXJ0aWVzLCBJT1N1cmZhY2VBY2NlbGVyYXRvclJlZiogYWNjZWxl
cmF0b3JPdXQpOwogQ0ZSdW5Mb29wU291cmNlUmVmIElPU3VyZmFjZUFjY2VsZXJhdG9yR2V0UnVu
TG9vcFNvdXJjZShJT1N1cmZhY2VBY2NlbGVyYXRvclJlZik7CiAKQEAgLTE0NCw2ICsxNDYsNiBA
QCBJT1JldHVybiBJT1N1cmZhY2VBY2NlbGVyYXRvclRyYW5zZm9ybVN1cmZhY2UoSU9TdXJmYWNl
QWNjZWxlcmF0b3JSZWYsIElPU3VyZmFjZQogV1RGX0VYVEVSTl9DX0VORAogCiAjZW5kaWYgLy8g
VVNFKEFQUExFX0lOVEVSTkFMX1NESykKLSNlbmRpZiAvLyBQTEFURk9STShJT1MpCisjZW5kaWYg
Ly8gSEFWRShJT1NVUkZBQ0VfQUNDRUxFUkFUT1IpCiAKLSNlbmRpZiAvLyAhUExBVEZPUk0oSU9T
X1NJTVVMQVRPUikKKyNlbmRpZiAvLyBIQVZFKElPU1VSRkFDRSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaCBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaAppbmRleCBmZjk2YzBiNTgyZmUz
MTg3MWM4YTRkMzIwMTE1NTgyMTU4NDUzZWJkLi45NzFkMGJjYjhmMGNjMzgwYWZmNjhkNGMxNGJj
OTU4YWQ5OTIyOTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2Nv
YS9RdWFydHpDb3JlU1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2Ev
UXVhcnR6Q29yZVNQSS5oCkBAIC0xNzAsNyArMTcwLDcgQEAgV1RGX0VYVEVSTl9DX0JFR0lOCiAj
aWYgIVVTRShBUFBMRV9JTlRFUk5BTF9TREspCiB2b2lkIENBUmVuZGVyU2VydmVyQ2FwdHVyZUxh
eWVyV2l0aFRyYW5zZm9ybShtYWNoX3BvcnRfdCwgdWludDMyX3QgY2xpZW50SWQsIHVpbnQ2NF90
IGxheWVySWQsIHVpbnQzMl90IHNsb3RJZCwgaW50MzJfdCBveCwgaW50MzJfdCBveSwgY29uc3Qg
Q0FUcmFuc2Zvcm0zRCopOwogCi0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFD
RSkKIHZvaWQgQ0FSZW5kZXJTZXJ2ZXJSZW5kZXJMYXllcldpdGhUcmFuc2Zvcm0obWFjaF9wb3J0
X3Qgc2VydmVyX3BvcnQsIHVpbnQzMl90IGNsaWVudF9pZCwgdWludDY0X3QgbGF5ZXJfaWQsIElP
U3VyZmFjZVJlZiwgaW50MzJfdCBveCwgaW50MzJfdCBveSwgY29uc3QgQ0FUcmFuc2Zvcm0zRCop
Owogdm9pZCBDQVJlbmRlclNlcnZlclJlbmRlckRpc3BsYXlMYXllcldpdGhUcmFuc2Zvcm1BbmRU
aW1lT2Zmc2V0KG1hY2hfcG9ydF90LCBDRlN0cmluZ1JlZiBkaXNwbGF5X25hbWUsIHVpbnQzMl90
IGNsaWVudF9pZCwgdWludDY0X3QgbGF5ZXJfaWQsIElPU3VyZmFjZVJlZiwgaW50MzJfdCBveCwg
aW50MzJfdCBveSwgY29uc3QgQ0FUcmFuc2Zvcm0zRCosIENGVGltZUludGVydmFsKTsKICNlbHNl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL01lbW9yeVJlbGVhc2VDb2Nv
YS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvTWVtb3J5UmVsZWFzZUNvY29hLm1tCmlu
ZGV4IGIzN2I1Y2JlNjRmNDE2MjQyZGU4YWNmNDFkZDY1NjRlMDc3ZmE2ODEuLjIwNmVhZmE1ZDY0
YWM3N2RhODA0MDc2ZjI2M2QzYTY1MmI1ZTBjMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvY29jb2EvTWVtb3J5UmVsZWFzZUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvY29jb2EvTWVtb3J5UmVsZWFzZUNvY29hLm1tCkBAIC01Niw3ICs1Niw3IEBAIHZvaWQgcGxh
dGZvcm1SZWxlYXNlTWVtb3J5KENyaXRpY2FsKQogICAgIHRpbGVDb250cm9sbGVyTWVtb3J5SGFu
ZGxlcigpLnRyaW1VbnBhcmVudGVkVGlsZXNUb1RhcmdldCgwKTsKICNlbmRpZgogCi0jaWYgVVNF
KElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKICAgICBJT1N1cmZhY2VQb29sOjpzaGFy
ZWRQb29sKCkuZGlzY2FyZEFsbFN1cmZhY2VzKCk7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVDb250cm9sbGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVDb250cm9sbGVyLmNwcAppbmRl
eCBhMzMwMmE5YTA3YzRjMWUzMzQ5OGIxMjhjNGI1ZWY2MzMyZjExMzYzLi5lYzNhZTRmMWNmNmU3
ZmFjZDg1OWVhN2VlMzc2MmZiNjY1MDA3MjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGlsZUNvbnRyb2xsZXIuY3BwCkBAIC0zOCw3ICszOCw3
IEBACiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0
U3RyZWFtLmg+CiAKLSNpZiBVU0UoSU9TVVJGQUNFKQorI2lmIEhBVkUoSU9TVVJGQUNFKQogI2lu
Y2x1ZGUgIklPU3VyZmFjZS5oIgogI2VuZGlmCiAKQEAgLTUzNCw3ICs1MzQsNyBAQCBJbnRTaXpl
IFRpbGVDb250cm9sbGVyOjp0aWxlU2l6ZSgpIGNvbnN0CiAgICAgY29uc3QgaW50IGtMb3dlc3RD
b21tb25EZW5vbWluYXRvck1heFRpbGVTaXplID0gNCAqIDEwMjQ7CiAgICAgSW50U2l6ZSBtYXhU
aWxlU2l6ZShrTG93ZXN0Q29tbW9uRGVub21pbmF0b3JNYXhUaWxlU2l6ZSwga0xvd2VzdENvbW1v
bkRlbm9taW5hdG9yTWF4VGlsZVNpemUpOwogCi0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZF
KElPU1VSRkFDRSkKICAgICBJbnRTaXplIHN1cmZhY2VTaXplTGltaXQgPSBJT1N1cmZhY2U6Om1h
eGltdW1TaXplKCk7CiAgICAgc3VyZmFjZVNpemVMaW1pdC5zY2FsZSgxIC8gbV9kZXZpY2VTY2Fs
ZUZhY3Rvcik7CiAgICAgbWF4VGlsZVNpemUgPSBtYXhUaWxlU2l6ZS5zaHJ1bmtUbyhzdXJmYWNl
U2l6ZUxpbWl0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NnL0lPU3VyZmFjZVBvb2wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvSU9TdXJmYWNlUG9vbC5jcHAKaW5kZXggZTNmMDczZTk1ZWYxNTFmYTJkNjhhN2NmZGVlMjY5
NDA2NjcyMTJhNC4uMWIwZTFiNjFmMjgzZmU1MzI3ZjU5NWQ3ZDM2ODA0ZmEyOGMwMTI5YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSU9TdXJmYWNlUG9v
bC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSU9TdXJmYWNl
UG9vbC5jcHAKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJJT1N1cmZhY2VQb29sLmgiCiAKLSNpZiBVU0UoSU9TVVJGQUNFKQorI2lmIEhBVkUoSU9TVVJG
QUNFKQogCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0Q0cuaCIKICNpbmNsdWRlIDxDb3JlR3Jh
cGhpY3MvQ29yZUdyYXBoaWNzLmg+CkBAIC0zODMsNCArMzgzLDQgQEAgdm9pZCBJT1N1cmZhY2VQ
b29sOjpzaG93UG9vbFN0YXRpc3RpY3MoY29uc3QgY2hhciogcmVhc29uKQogfQogCiB9Ci0jZW5k
aWYgLy8gVVNFKElPU1VSRkFDRSkKKyNlbmRpZiAvLyBIQVZFKElPU1VSRkFDRSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0lPU3VyZmFjZVBvb2wuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0lPU3VyZmFjZVBvb2wuaAppbmRl
eCBkZjRiZWM3ZmQ5ODgwZGE5OTQ5OWE3ZTMxNDQxZGEwYjczNzg5MWRkLi45MmI4ZGI5ZDE4Y2Y5
YzAzYjQzZjA3ZDUyOWU1YjYwYTQxOGJjMzc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jZy9JT1N1cmZhY2VQb29sLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2cvSU9TdXJmYWNlUG9vbC5oCkBAIC0yNSw3ICsyNSw3IEBACiAK
ICNwcmFnbWEgb25jZQogCi0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkK
IAogI2luY2x1ZGUgIklPU3VyZmFjZS5oIgogI2luY2x1ZGUgIkludFNpemUuaCIKQEAgLTEwMyw0
ICsxMDMsNCBAQCBwcml2YXRlOgogfTsKIAogfQotI2VuZGlmIC8vIFVTRShJT1NVUkZBQ0UpCisj
ZW5kaWYgLy8gSEFWRShJT1NVUkZBQ0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwCmluZGV4IDgyNGY5Zjc0MGRkM2UwMWFj
Mjk2NjBmZWNhYzY4Yzc3M2NjNTU4ZjkuLmY0ODVhMzQxNGU1ZDBlZWZlZWRjYTg3NWI1ZTMzMGFi
ZjYwMGRkYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nn
L0ltYWdlQnVmZmVyQ0cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NnL0ltYWdlQnVmZmVyQ0cuY3BwCkBAIC03OSw3ICs3OSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxJ
bWFnZUJ1ZmZlcj4gSW1hZ2VCdWZmZXI6OmNyZWF0ZUNvbXBhdGlibGVCdWZmZXIoY29uc3QgRmxv
YXRTaXplCiAgICAgY2FzZSBrQ0dDb250ZXh0VHlwZUJpdG1hcDoKICAgICAgICAgY29sb3JTcGFj
ZSA9IENHQml0bWFwQ29udGV4dEdldENvbG9yU3BhY2UoY2dDb250ZXh0KTsKICAgICAgICAgYnJl
YWs7Ci0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKICAgICBjYXNlIGtD
R0NvbnRleHRUeXBlSU9TdXJmYWNlOgogICAgICAgICBjb2xvclNwYWNlID0gQ0dJT1N1cmZhY2VD
b250ZXh0R2V0Q29sb3JTcGFjZShjZ0NvbnRleHQpOwogICAgICAgICBicmVhazsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLmgKaW5kZXgg
YjU3YWU5Nzg2NGIzNWU4N2MwNmExNzRkOTlhZGU4YmUzMDcyMzA5Ny4uZTJiNGExODk5ZDczYmQ4
NmJlOTY5MWRlOWE2Njg5YzI4ZTI3YjU4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogI3By
YWdtYSBvbmNlCiAKLSNpZiBVU0UoSU9TVVJGQUNFKQorI2lmIEhBVkUoSU9TVVJGQUNFKQogCiAj
aW5jbHVkZSA8b2JqYy9vYmpjLmg+CiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCkBAIC0x
MzQsMTAgKzEzNCwxMCBAQCBwdWJsaWM6CiAgICAgLy8gYW4gYWNjdXJhdGUgcmVzdWx0IGZyb20g
aXNJblVzZSgpLCBpdCBuZWVkcyB0byBiZSByZWxlYXNlZC4KICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHJlbGVhc2VHcmFwaGljc0NvbnRleHQoKTsKIAotI2lmIFBMQVRGT1JNKElPUykKKyNpZiBI
QVZFKElPU1VSRkFDRV9BQ0NFTEVSQVRPUikKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9v
bCBhbGxvd0NvbnZlcnNpb25Gcm9tRm9ybWF0VG9Gb3JtYXQoRm9ybWF0LCBGb3JtYXQpOwogICAg
IFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIGNvbnZlcnRUb0Zvcm1hdChzdGQ6OnVuaXF1ZV9w
dHI8V2ViQ29yZTo6SU9TdXJmYWNlPiYmIGluU3VyZmFjZSwgRm9ybWF0LCBXVEY6OkZ1bmN0aW9u
PHZvaWQoc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3VyZmFjZT4pPiYmKTsKLSNlbmRpZgor
I2VuZGlmIC8vIEhBVkUoSU9TVVJGQUNFX0FDQ0VMRVJBVE9SKQogCiAgICAgdm9pZCBtaWdyYXRl
Q29sb3JTcGFjZVRvUHJvcGVydGllcygpOwogCkBAIC0xNjQsNSArMTY0LDUgQEAgV0VCQ09SRV9F
WFBPUlQgV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIGNvbnN0
IFdlYkNvcmU6OklPU3UKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8gVVNF
KElPU1VSRkFDRSkKKyNlbmRpZiAvLyBIQVZFKElPU1VSRkFDRSkKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1tCmluZGV4IDU0MmFl
MDRkYzA5Yzk2OWVjNjE5NGQ1ZWI3ZjVjMjA5ZWMzODZkYWQuLjhjOGFkZmU0NmIyZjU5NjUwNzRh
MjkyYzhkYzQxOWZiNzllMzc5ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0KQEAgLTI2LDcgKzI2LDcgQEAKICNpbXBvcnQg
ImNvbmZpZy5oIgogI2ltcG9ydCAiSU9TdXJmYWNlLmgiCiAKLSNpZiBVU0UoSU9TVVJGQUNFKQor
I2lmIEhBVkUoSU9TVVJGQUNFKQogCiAjaW1wb3J0ICJHcmFwaGljc0NvbnRleHRDRy5oIgogI2lt
cG9ydCAiSU9TdXJmYWNlUG9vbC5oIgpAQCAtNDAsMTEgKzQwLDYgQEAKICNpbXBvcnQgPHd0Zi9N
YXRoRXh0cmFzLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+CiAKLSNpZiBQTEFU
Rk9STShJT1MpCi0vLyBNb3ZlIHRoaXMgaW50byB0aGUgU1BJIGhlYWRlciBvbmNlIGl0J3MgcG9z
c2libGUgdG8gcHV0IGluc2lkZSB0aGUgQVBQTEVfSU5URVJOQUxfU0RLIGJsb2NrLgotTlNTdHJp
bmcgKiBjb25zdCBXZWJJT1N1cmZhY2VBY2NlbGVyYXRvclVud2lyZVN1cmZhY2VLZXkgPSBAIlVu
d2lyZVN1cmZhY2UiOwotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogaW5saW5lIHN0
ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+IElPU3VyZmFjZTo6c3VyZmFjZUZyb21Qb29sKEludFNp
emUgc2l6ZSwgSW50U2l6ZSBjb250ZXh0U2l6ZSwgQ0dDb2xvclNwYWNlUmVmIGNvbG9yU3BhY2Us
IEZvcm1hdCBwaXhlbEZvcm1hdCkKQEAgLTM4OCw3ICszODMsOCBAQCB2b2lkIElPU3VyZmFjZTo6
cmVsZWFzZUdyYXBoaWNzQ29udGV4dCgpCiAgICAgbV9jZ0NvbnRleHQgPSBudWxscHRyOwogfQog
Ci0jaWYgUExBVEZPUk0oSU9TKQorI2lmIEhBVkUoSU9TVVJGQUNFX0FDQ0VMRVJBVE9SKQorCiBi
b29sIElPU3VyZmFjZTo6YWxsb3dDb252ZXJzaW9uRnJvbUZvcm1hdFRvRm9ybWF0KEZvcm1hdCBz
b3VyY2VGb3JtYXQsIEZvcm1hdCBkZXN0Rm9ybWF0KQogewogICAgIGlmICgoc291cmNlRm9ybWF0
ID09IEZvcm1hdDo6UkdCMTAgfHwgc291cmNlRm9ybWF0ID09IEZvcm1hdDo6UkdCMTBBOCkgJiYg
ZGVzdEZvcm1hdCA9PSBGb3JtYXQ6OllVVjQyMikKQEAgLTQzMCwxMiArNDI2LDEzIEBAIHZvaWQg
SU9TdXJmYWNlOjpjb252ZXJ0VG9Gb3JtYXQoc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4mJiBp
blN1cmZhY2UsIEZvcm1hdCBmCiAgICAgICAgIGRlbGV0ZSBjYWxsYmFjazsKICAgICB9OwogCi0g
ICAgTlNEaWN0aW9uYXJ5ICpvcHRpb25zID0gQHsgV2ViSU9TdXJmYWNlQWNjZWxlcmF0b3JVbndp
cmVTdXJmYWNlS2V5IDogQFlFUyB9OworICAgIE5TRGljdGlvbmFyeSAqb3B0aW9ucyA9IEB7IChp
ZClrSU9TdXJmYWNlQWNjZWxlcmF0b3JVbndpcmVTdXJmYWNlS2V5IDogQFlFUyB9OwogCiAgICAg
SU9SZXR1cm4gcmV0ID0gSU9TdXJmYWNlQWNjZWxlcmF0b3JUcmFuc2Zvcm1TdXJmYWNlKGFjY2Vs
ZXJhdG9yLCBpblN1cmZhY2UtPnN1cmZhY2UoKSwgZGVzdGluYXRpb25JT1N1cmZhY2VSZWYsIChD
RkRpY3Rpb25hcnlSZWYpb3B0aW9ucywgbnVsbHB0ciwgJmNvbXBsZXRpb24sIG51bGxwdHIsIG51
bGxwdHIpOwogICAgIEFTU0VSVF9VTlVTRUQocmV0LCByZXQgPT0ga0lPUmV0dXJuU3VjY2Vzcyk7
CiB9Ci0jZW5kaWYgLy8gUExBVEZPUk0oSU9TKQorCisjZW5kaWYgLy8gSEFWRShJT1NVUkZBQ0Vf
QUNDRUxFUkFUT1IpCiAKIHZvaWQgSU9TdXJmYWNlOjptaWdyYXRlQ29sb3JTcGFjZVRvUHJvcGVy
dGllcygpCiB7CkBAIC00ODIsNCArNDc5LDQgQEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0
U3RyZWFtJiB0cywgY29uc3QgSU9TdXJmYWNlJiBzdXJmYWNlKQogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKLSNlbmRpZiAvLyBVU0UoSU9TVVJGQUNFKQorI2VuZGlmIC8vIEhBVkUoSU9TVVJG
QUNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
SU9TdXJmYWNlUG9vbENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvSU9TdXJmYWNlUG9vbENvY29hLm1tCmluZGV4IDRhZDVkMmUwYjczNWU1NmY5MmI1Zjhk
NTllMTljZmY0YmEzZjIyZjIuLmZiMTNmMWNlNmYyNDBiZDNjOWJiNTg4ZWZkM2FiYTg2NTk1MDMz
NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lP
U3VyZmFjZVBvb2xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9JT1N1cmZhY2VQb29sQ29jb2EubW0KQEAgLTI2LDcgKzI2LDcgQEAKICNpbXBvcnQg
ImNvbmZpZy5oIgogI2ltcG9ydCAiSU9TdXJmYWNlUG9vbC5oIgogCi0jaWYgVVNFKElPU1VSRkFD
RSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKIAogI2luY2x1ZGUgPFF1YXJ0ekNvcmUvUXVhcnR6Q29y
ZS5oPgogCkBAIC00MCw0ICs0MCw0IEBAIHZvaWQgSU9TdXJmYWNlUG9vbDo6cGxhdGZvcm1HYXJi
YWdlQ29sbGVjdE5vdygpCiAKIH0KIAotI2VuZGlmIC8vIFVTRShJT1NVUkZBQ0UpCisjZW5kaWYg
Ly8gSEFWRShJT1NVUkZBQ0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jdi9WaWRlb1RleHR1cmVDb3BpZXJDVi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1RleHR1cmVDb3BpZXJDVi5jcHAKaW5kZXggN2I5Y2I2NDJl
NzAyNDFlMmFiNGIwNjhmNWIxNGM0MDA4ZjkzY2M1ZS4uMzMxNmI0NzNhODc2MzY0ZGQ3NjRkY2Q1
MzNiYzUxYTM2YzA1NjkyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvVGV4dHVyZUNvcGllckNWLmNwcApAQCAtNDEsNyArNDEs
NyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSNpZiBVU0UoSU9TVVJGQUNFKQorI2lmIEhB
VkUoSU9TVVJGQUNFKQogZW51bSBjbGFzcyBQaXhlbFJhbmdlIHsKICAgICBVbmtub3duLAogICAg
IFZpZGVvLApAQCAtMzY4LDcgKzM2OCw3IEBAIHN0YXRpYyBjb25zdCBWZWN0b3I8R0xmbG9hdD4g
WUNiQ3JUb1JHQk1hdHJpeEZvclJhbmdlQW5kVHJhbnNmZXJGdW5jdGlvbihQaXhlbFJhCiAgICAg
QVNTRVJUKGl0ZXJhdG9yICE9IG1hdHJpY2VzLmdldCgpLmVuZCgpKTsKICAgICByZXR1cm4gaXRl
cmF0b3ItPnNlY29uZDsKIH0KLSNlbmRpZiAvLyBVU0UoSU9TVVJGQUNFKQorI2VuZGlmIC8vIEhB
VkUoSU9TVVJGQUNFKQogCiBWaWRlb1RleHR1cmVDb3BpZXJDVjo6VmlkZW9UZXh0dXJlQ29waWVy
Q1YoR3JhcGhpY3NDb250ZXh0M0QmIGNvbnRleHQpCiAgICAgOiBtX3NoYXJlZENvbnRleHQoY29u
dGV4dCkKQEAgLTcyOCw3ICs3MjgsNyBAQCBib29sIFZpZGVvVGV4dHVyZUNvcGllckNWOjpjb3B5
SW1hZ2VUb1BsYXRmb3JtVGV4dHVyZShDVlBpeGVsQnVmZmVyUmVmIGltYWdlLCBzaQogICAgICAg
ICByZXR1cm4gY29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKHRleHR1cmUuZ2V0KCks
IHdpZHRoLCBoZWlnaHQsIG91dHB1dFRleHR1cmUsIG91dHB1dFRhcmdldCwgbGV2ZWwsIGludGVy
bmFsRm9ybWF0LCBmb3JtYXQsIHR5cGUsIHByZW11bHRpcGx5QWxwaGEsIGZsaXBZLCBzd2FwQ29s
b3JDaGFubmVscyk7CiAgICAgfQogCi0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VS
RkFDRSkKICAgICAvLyBGSVhNRTogVGhpcyBjdXJyZW50bHkgb25seSBzdXBwb3J0cyAnNDIwdicg
YW5kICc0MjBmJyBwaXhlbCBmb3JtYXRzLiBJbnZlc3RpZ2F0ZSBzdXBwb3J0aW5nIG1vcmUgcGl4
ZWwgZm9ybWF0cy4KICAgICBPU1R5cGUgcGl4ZWxGb3JtYXQgPSBDVlBpeGVsQnVmZmVyR2V0UGl4
ZWxGb3JtYXRUeXBlKGltYWdlKTsKICAgICBpZiAocGl4ZWxGb3JtYXQgIT0ga0NWUGl4ZWxGb3Jt
YXRUeXBlXzQyMFlwQ2JDcjhCaVBsYW5hclZpZGVvUmFuZ2UgJiYgcGl4ZWxGb3JtYXQgIT0ga0NW
UGl4ZWxGb3JtYXRUeXBlXzQyMFlwQ2JDcjhCaVBsYW5hckZ1bGxSYW5nZSkgewpAQCAtODQ2LDcg
Kzg0Niw3IEBAIGJvb2wgVmlkZW9UZXh0dXJlQ29waWVyQ1Y6OmNvcHlJbWFnZVRvUGxhdGZvcm1U
ZXh0dXJlKENWUGl4ZWxCdWZmZXJSZWYgaW1hZ2UsIHNpCiAgICAgcmV0dXJuIHRydWU7CiAjZWxz
ZQogICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZiAvLyBVU0UoSU9TVVJGQUNFKQorI2VuZGlmIC8v
IEhBVkUoSU9TVVJGQUNFKQogfQogCiBib29sIFZpZGVvVGV4dHVyZUNvcGllckNWOjpjb3B5Vmlk
ZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoVGV4dHVyZVR5cGUgaW5wdXRWaWRlb1RleHR1cmUs
IHNpemVfdCB3aWR0aCwgc2l6ZV90IGhlaWdodCwgUGxhdGZvcm0zRE9iamVjdCBvdXRwdXRUZXh0
dXJlLCBHQzNEZW51bSBvdXRwdXRUYXJnZXQsIEdDM0RpbnQgbGV2ZWwsIEdDM0RlbnVtIGludGVy
bmFsRm9ybWF0LCBHQzNEZW51bSBmb3JtYXQsIEdDM0RlbnVtIHR5cGUsIGJvb2wgcHJlbXVsdGlw
bHlBbHBoYSwgYm9vbCBmbGlwWSwgYm9vbCBzd2FwQ29sb3JDaGFubmVscykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvVGV4dHVyZUNvcGllckNW
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1RleHR1cmVDb3Bp
ZXJDVi5oCmluZGV4IGMzNTQxYWFkM2Y4ZDM0MzM3YTc4MDJjN2NhMjFiNThhZGU2NDdhNjEuLjQ3
MmY5ZjE2MTE4ODc5ODlmMDI1Njk4YjA3NWNlMjU4YzYxMzVmOTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvVGV4dHVyZUNvcGllckNWLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVy
Q1YuaApAQCAtNjAsNyArNjAsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgaW5pdGlhbGl6ZUNvbnRl
eHRPYmplY3RzKCk7CiAgICAgYm9vbCBpbml0aWFsaXplVVZDb250ZXh0T2JqZWN0cygpOwogCi0j
aWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKICAgICB1bnNpZ25lZCBsYXN0
VGV4dHVyZVNlZWQoR0MzRHVpbnQgdGV4dHVyZSkKICAgICB7CiAgICAgICAgIGF1dG8gaXRlcmF0
b3IgPSBtX2xhc3RUZXh0dXJlU2VlZC5maW5kKHRleHR1cmUpOwpAQCAtOTAsNyArOTAsNyBAQCBw
cml2YXRlOgogICAgIEdDM0RpbnQgbV95VGV4dHVyZVNpemVVbmlmb3JtTG9jYXRpb24geyAtMSB9
OwogICAgIEdDM0RpbnQgbV91dlRleHR1cmVTaXplVW5pZm9ybUxvY2F0aW9uIHsgLTEgfTsKIAot
I2lmIFVTRShJT1NVUkZBQ0UpCisjaWYgSEFWRShJT1NVUkZBQ0UpCiAgICAgYm9vbCBtX2xhc3RG
bGlwWSB7IGZhbHNlIH07CiAgICAgVW5zYWZlUG9pbnRlcjxJT1N1cmZhY2VSZWY+IG1fbGFzdFN1
cmZhY2U7CiAgICAgdWludDMyX3QgbV9sYXN0U3VyZmFjZVNlZWQgeyAwIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5n
U3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXll
ckJhY2tpbmdTdG9yZS5oCmluZGV4IDI4YTQ5ODA1N2I4ZTQxNzNjYjIzOTBiZmM3NWVhZTdhNWQz
MGE5YzAuLjg4NWIwNmM3ZWFiY2JkMWU1MzZjN2E5MmZiOGMxYTY5MWE0YWVjMmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tp
bmdTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVMYXllckJhY2tpbmdTdG9yZS5oCkBAIC03NSw3ICs3NSw3IEBAIHB1YmxpYzoKIAogICAgIGJv
b2wgaGFzRnJvbnRCdWZmZXIoKSBjb25zdAogICAgIHsKLSNpZiBVU0UoSU9TVVJGQUNFKQorI2lm
IEhBVkUoSU9TVVJGQUNFKQogICAgICAgICBpZiAobV9hY2NlbGVyYXRlc0RyYXdpbmcpCiAgICAg
ICAgICAgICByZXR1cm4gISFtX2Zyb250QnVmZmVyLnN1cmZhY2U7CiAjZW5kaWYKQEAgLTk5LDcg
Kzk5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNsZWFyQmFja2luZ1N0b3JlKCk7CiAgICAgdm9p
ZCBzd2FwVG9WYWxpZEZyb250QnVmZmVyKCk7CiAKLSNpZiBVU0UoSU9TVVJGQUNFKQorI2lmIEhB
VkUoSU9TVVJGQUNFKQogICAgIFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0IHN1cmZhY2VCdWZm
ZXJGb3JtYXQoKSBjb25zdDsKICNlbmRpZgogCkBAIC0xMTUsMTQgKzExNSwxNCBAQCBwcml2YXRl
OgogCiAgICAgc3RydWN0IEJ1ZmZlciB7CiAgICAgICAgIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+
IGJpdG1hcDsKLSNpZiBVU0UoSU9TVVJGQUNFKQorI2lmIEhBVkUoSU9TVVJGQUNFKQogICAgICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPiBzdXJmYWNlOwogICAgICAgICBi
b29sIGlzVm9sYXRpbGUgPSBmYWxzZTsKICNlbmRpZgogCiAgICAgICAgIGV4cGxpY2l0IG9wZXJh
dG9yIGJvb2woKSBjb25zdAogICAgICAgICB7Ci0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZF
KElPU1VSRkFDRSkKICAgICAgICAgICAgIGlmIChzdXJmYWNlKQogICAgICAgICAgICAgICAgIHJl
dHVybiB0cnVlOwogI2VuZGlmCkBAIC0xMzcsNyArMTM3LDcgQEAgcHJpdmF0ZToKIAogICAgIEJ1
ZmZlciBtX2Zyb250QnVmZmVyOwogICAgIEJ1ZmZlciBtX2JhY2tCdWZmZXI7Ci0jaWYgVVNFKElP
U1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKICAgICBCdWZmZXIgbV9zZWNvbmRhcnlCYWNr
QnVmZmVyOwogICAgIFdlYkNvcmU6Ok1hY2hTZW5kUmlnaHQgbV9mcm9udEJ1ZmZlclNlbmRSaWdo
dDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVt
b3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tCmluZGV4IDQwN2Y3NTZhNTUy
ODhkOGMzMjRmNjQ1M2U5OGRjZjZlMzY0N2ZkZTQuLjA0ZWJjZDZjYzQzMjg5MzAyMTYzNzJkMmFh
N2JiNWU5MDdkOGY2YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0KQEAgLTQwLDcg
KzQwLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvV2ViTGF5ZXIuaD4KICNpbXBvcnQgPHBhbC9zcGkv
Y29jb2EvUXVhcnR6Q29yZVNQSS5oPgogCi0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElP
U1VSRkFDRSkKICNpbXBvcnQgPG1hY2gvbWFjaF9wb3J0Lmg+CiAjZW5kaWYKIApAQCAtNzIsNyAr
NzIsNyBAQCBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6flJlbW90ZUxheWVyQmFja2luZ1N0b3Jl
KCkKIAogdm9pZCBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6ZW5zdXJlQmFja2luZ1N0b3JlKEZs
b2F0U2l6ZSBzaXplLCBmbG9hdCBzY2FsZSwgYm9vbCBhY2NlbGVyYXRlc0RyYXdpbmcsIGJvb2wg
ZGVlcENvbG9yLCBib29sIGlzT3BhcXVlKQogewotI2lmICFVU0UoSU9TVVJGQUNFKQorI2lmICFI
QVZFKElPU1VSRkFDRSkKICAgICBhY2NlbGVyYXRlc0RyYXdpbmcgPSBmYWxzZTsKICNlbmRpZgog
ICAgIGlmIChtX3NpemUgPT0gc2l6ZSAmJiBtX3NjYWxlID09IHNjYWxlICYmIG1fZGVlcENvbG9y
ID09IGRlZXBDb2xvciAmJiBtX2FjY2VsZXJhdGVzRHJhd2luZyA9PSBhY2NlbGVyYXRlc0RyYXdp
bmcgJiYgbV9pc09wYXF1ZSA9PSBpc09wYXF1ZSkKQEAgLTk3LDcgKzk3LDcgQEAgdm9pZCBSZW1v
dGVMYXllckJhY2tpbmdTdG9yZTo6Y2xlYXJCYWNraW5nU3RvcmUoKQogewogICAgIG1fZnJvbnRC
dWZmZXIuZGlzY2FyZCgpOwogICAgIG1fYmFja0J1ZmZlci5kaXNjYXJkKCk7Ci0jaWYgVVNFKElP
U1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKICAgICBtX3NlY29uZGFyeUJhY2tCdWZmZXIu
ZGlzY2FyZCgpOwogI2VuZGlmCiB9CkBAIC0xMDksNyArMTA5LDcgQEAgdm9pZCBSZW1vdGVMYXll
ckJhY2tpbmdTdG9yZTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBl
bmNvZGVyIDw8IG1fYWNjZWxlcmF0ZXNEcmF3aW5nOwogICAgIGVuY29kZXIgPDwgbV9pc09wYXF1
ZTsKIAotI2lmIFVTRShJT1NVUkZBQ0UpCisjaWYgSEFWRShJT1NVUkZBQ0UpCiAgICAgaWYgKG1f
YWNjZWxlcmF0ZXNEcmF3aW5nKSB7CiAgICAgICAgIGlmIChtX2Zyb250QnVmZmVyLnN1cmZhY2Up
CiAgICAgICAgICAgICBlbmNvZGVyIDw8IG1fZnJvbnRCdWZmZXIuc3VyZmFjZS0+Y3JlYXRlU2Vu
ZFJpZ2h0KCk7CkBAIC0xNDAsNyArMTQwLDcgQEAgYm9vbCBSZW1vdGVMYXllckJhY2tpbmdTdG9y
ZTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgUmVtb3RlTGF5ZXJCYWNraW5nU3QKICAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX2lzT3BhcXVlKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCi0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKICAgICBp
ZiAocmVzdWx0Lm1fYWNjZWxlcmF0ZXNEcmF3aW5nKSB7CiAgICAgICAgIE1hY2hTZW5kUmlnaHQg
c2VuZFJpZ2h0OwogICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNlbmRSaWdodCkpCkBAIC0x
NzksNyArMTc5LDcgQEAgSW50U2l6ZSBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6YmFja2luZ1N0
b3JlU2l6ZSgpIGNvbnN0CiAKIHVuc2lnbmVkIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpieXRl
c1BlclBpeGVsKCkgY29uc3QKIHsKLSNpZiBVU0UoSU9TVVJGQUNFKQorI2lmIEhBVkUoSU9TVVJG
QUNFKQogICAgIHN3aXRjaCAoc3VyZmFjZUJ1ZmZlckZvcm1hdCgpKSB7CiAgICAgY2FzZSBXZWJD
b3JlOjpJT1N1cmZhY2U6OkZvcm1hdDo6UkdCQTogcmV0dXJuIDQ7CiAgICAgY2FzZSBXZWJDb3Jl
OjpJT1N1cmZhY2U6OkZvcm1hdDo6WVVWNDIyOiByZXR1cm4gMjsKQEAgLTE5NCw3ICsxOTQsNyBA
QCB2b2lkIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpzd2FwVG9WYWxpZEZyb250QnVmZmVyKCkK
IHsKICAgICBJbnRTaXplIGV4cGFuZGVkU2NhbGVkU2l6ZSA9IGJhY2tpbmdTdG9yZVNpemUoKTsK
IAotI2lmIFVTRShJT1NVUkZBQ0UpCisjaWYgSEFWRShJT1NVUkZBQ0UpCiAgICAgaWYgKG1fYWNj
ZWxlcmF0ZXNEcmF3aW5nKSB7CiAgICAgICAgIGlmICghbV9iYWNrQnVmZmVyLnN1cmZhY2UgfHwg
bV9iYWNrQnVmZmVyLnN1cmZhY2UtPmlzSW5Vc2UoKSkgewogICAgICAgICAgICAgc3RkOjpzd2Fw
KG1fYmFja0J1ZmZlciwgbV9zZWNvbmRhcnlCYWNrQnVmZmVyKTsKQEAgLTI1NCw3ICsyNTQsNyBA
QCBib29sIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpkaXNwbGF5KCkKIAogICAgIHN3YXBUb1Zh
bGlkRnJvbnRCdWZmZXIoKTsKIAotI2lmIFVTRShJT1NVUkZBQ0UpCisjaWYgSEFWRShJT1NVUkZB
Q0UpCiAgICAgaWYgKG1fYWNjZWxlcmF0ZXNEcmF3aW5nKSB7CiAgICAgICAgIFJldGFpblB0cjxD
R0ltYWdlUmVmPiBiYWNrSW1hZ2U7CiAgICAgICAgIGlmIChtX2JhY2tCdWZmZXIuc3VyZmFjZSAm
JiAhd2lsbFBhaW50RW50aXJlQmFja2luZ1N0b3JlKQpAQCAtMzk5LDcgKzM5OSw3IEBAIHZvaWQg
UmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmFwcGx5QmFja2luZ1N0b3JlVG9MYXllcihDQUxheWVy
ICpsYXllciwgTGF5ZXJDb250CiB7CiAgICAgbGF5ZXIuY29udGVudHNPcGFxdWUgPSBtX2lzT3Bh
cXVlOwogCi0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKICAgICBpZiAo
YWNjZWxlcmF0ZXNEcmF3aW5nKCkpIHsKICAgICAgICAgc3dpdGNoIChjb250ZW50c1R5cGUpIHsK
ICAgICAgICAgY2FzZSBMYXllckNvbnRlbnRzVHlwZTo6SU9TdXJmYWNlOgpAQCAtNDI3LDcgKzQy
Nyw3IEBAIFJldGFpblB0cjxDR0NvbnRleHRSZWY+IFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjp0
YWtlRnJvbnRDb250ZXh0UGVuZGluZ0ZsdXNoKCkKICAgICByZXR1cm4gV1RGTW92ZShtX2Zyb250
Q29udGV4dFBlbmRpbmdGbHVzaCk7CiB9CiAKLSNpZiBVU0UoSU9TVVJGQUNFKQorI2lmIEhBVkUo
SU9TVVJGQUNFKQogYm9vbCBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6c2V0QnVmZmVyVm9sYXRp
bGl0eShCdWZmZXJUeXBlIHR5cGUsIGJvb2wgaXNWb2xhdGlsZSkKIHsKICAgICBzd2l0Y2ggKHR5
cGUpIHsKQEAgLTQ4MCw3ICs0ODAsNyBAQCBib29sIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpz
ZXRCdWZmZXJWb2xhdGlsaXR5KEJ1ZmZlclR5cGUsIGJvb2wpCiAKIHZvaWQgUmVtb3RlTGF5ZXJC
YWNraW5nU3RvcmU6OkJ1ZmZlcjo6ZGlzY2FyZCgpCiB7Ci0jaWYgVVNFKElPU1VSRkFDRSkKKyNp
ZiBIQVZFKElPU1VSRkFDRSkKICAgICBpZiAoc3VyZmFjZSkKICAgICAgICAgV2ViQ29yZTo6SU9T
dXJmYWNlOjptb3ZlVG9Qb29sKFdURk1vdmUoc3VyZmFjZSkpOwogICAgIGlzVm9sYXRpbGUgPSBm
YWxzZTsKQEAgLTQ4OCw3ICs0ODgsNyBAQCB2b2lkIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpC
dWZmZXI6OmRpc2NhcmQoKQogICAgIGJpdG1hcCA9IG51bGxwdHI7CiB9CiAKLSNpZiBVU0UoSU9T
VVJGQUNFKQorI2lmIEhBVkUoSU9TVVJGQUNFKQogV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3JtYXQg
UmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OnN1cmZhY2VCdWZmZXJGb3JtYXQoKSBjb25zdAogewog
ICAgIGlmIChtX2RlZXBDb2xvcikKQEAgLTQ5Niw2ICs0OTYsNiBAQCBXZWJDb3JlOjpJT1N1cmZh
Y2U6OkZvcm1hdCBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6c3VyZmFjZUJ1ZmZlckZvcm1hdCgp
IGNvbnN0CiAKICAgICByZXR1cm4gV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3JtYXQ6OlJHQkE7CiB9
Ci0jZW5kaWYgLy8gVVNFKElPU1VSRkFDRSkKKyNlbmRpZiAvLyBIQVZFKElPU1VSRkFDRSkKIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9j
Zy9TaGFyZWFibGVCaXRtYXBDRy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jZy9TaGFyZWFi
bGVCaXRtYXBDRy5jcHAKaW5kZXggMzgwNjIxNzc2ZDcxOWI4YTQwYTlkMmVkNmFlMGE0NjVkNjgz
MDNmZi4uNDFiMmZlYTMyYjE1M2YzYmY0ZmVmNjU5MmUyOWUyMzU0MmU2NTQ1ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvY2cvU2hhcmVhYmxlQml0bWFwQ0cuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL2NnL1NoYXJlYWJsZUJpdG1hcENHLmNwcApAQCAtNzMsNyArNzMs
NyBAQCBzdGF0aWMgQ0dCaXRtYXBJbmZvIGJpdG1hcEluZm8oY29uc3QgU2hhcmVhYmxlQml0bWFw
OjpDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aQogQ2hlY2tlZDx1bnNpZ25lZCwgUmVjb3JkT3Zl
cmZsb3c+IFNoYXJlYWJsZUJpdG1hcDo6Y2FsY3VsYXRlQnl0ZXNQZXJSb3coV2ViQ29yZTo6SW50
U2l6ZSBzaXplLCBjb25zdCBDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKQogewogICAgIHVu
c2lnbmVkIGJ5dGVzUGVyUm93ID0gY2FsY3VsYXRlQnl0ZXNQZXJQaXhlbChjb25maWd1cmF0aW9u
KSAqIHNpemUud2lkdGgoKTsKLSNpZiBVU0UoSU9TVVJGQUNFKQorI2lmIEhBVkUoSU9TVVJGQUNF
KQogICAgIHJldHVybiBJT1N1cmZhY2VBbGlnblByb3BlcnR5KGtJT1N1cmZhY2VCeXRlc1BlclJv
dywgYnl0ZXNQZXJSb3cpOwogI2Vsc2UKICAgICByZXR1cm4gYnl0ZXNQZXJSb3c7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCAyMGU0Y2Y0
OWQyNDhjNjFmZjY1MTI1ZmNhZDMwMmZhNmUyNzMzMzZjLi44YzE1M2RiMjVjODVkNTM3ZDg1MGM2
MjFkNjhlOGFmODE5MzRhZjQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0KQEAgLTE4NzEsMTMgKzE4NzEsMTQgQEAgLSAoUmVmUHRyPFdlYktp
dDo6Vmlld1NuYXBzaG90PilfdGFrZVZpZXdTbmFwc2hvdAogCiAgICAgQ0FUcmFuc2Zvcm0zRCB0
cmFuc2Zvcm0gPSBDQVRyYW5zZm9ybTNETWFrZVNjYWxlKGRldmljZVNjYWxlLCBkZXZpY2VTY2Fs
ZSwgMSk7CiAKLSNpZiBVU0UoSU9TVVJGQUNFKQorI2lmIEhBVkUoSU9TVVJGQUNFKQogICAgIFdl
YkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0IHNuYXBzaG90Rm9ybWF0ID0gV2ViQ29yZTo6c2NyZWVu
U3VwcG9ydHNFeHRlbmRlZENvbG9yKCkgPyBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdDo6UkdC
MTAgOiBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdDo6UkdCQTsKICAgICBhdXRvIHN1cmZhY2Ug
PSBXZWJDb3JlOjpJT1N1cmZhY2U6OmNyZWF0ZShXZWJDb3JlOjpleHBhbmRlZEludFNpemUoc25h
cHNob3RTaXplKSwgV2ViQ29yZTo6c1JHQkNvbG9yU3BhY2VSZWYoKSwgc25hcHNob3RGb3JtYXQp
OwogICAgIGlmICghc3VyZmFjZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgQ0FSZW5k
ZXJTZXJ2ZXJSZW5kZXJMYXllcldpdGhUcmFuc2Zvcm0oTUFDSF9QT1JUX05VTEwsIHNlbGYubGF5
ZXIuY29udGV4dC5jb250ZXh0SWQsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3Q+KHNlbGYubGF5
ZXIpLCBzdXJmYWNlLT5zdXJmYWNlKCksIDAsIDAsICZ0cmFuc2Zvcm0pOwogCisjaWYgSEFWRShJ
T1NVUkZBQ0VfQUNDRUxFUkFUT1IpCiAgICAgV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3JtYXQgY29t
cHJlc3NlZEZvcm1hdCA9IFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0OjpZVVY0MjI7CiAgICAg
aWYgKFdlYkNvcmU6OklPU3VyZmFjZTo6YWxsb3dDb252ZXJzaW9uRnJvbUZvcm1hdFRvRm9ybWF0
KHNuYXBzaG90Rm9ybWF0LCBjb21wcmVzc2VkRm9ybWF0KSkgewogICAgICAgICBSZWZQdHI8V2Vi
S2l0OjpWaWV3U25hcHNob3Q+IHZpZXdTbmFwc2hvdCA9IFdlYktpdDo6Vmlld1NuYXBzaG90Ojpj
cmVhdGUobnVsbHB0cik7CkBAIC0xODg4LDkgKzE4ODksMTAgQEAgLSAoUmVmUHRyPFdlYktpdDo6
Vmlld1NuYXBzaG90PilfdGFrZVZpZXdTbmFwc2hvdAogCiAgICAgICAgIHJldHVybiB2aWV3U25h
cHNob3Q7CiAgICAgfQorI2VuZGlmIC8vIEhBVkUoSU9TVVJGQUNFX0FDQ0VMRVJBVE9SKQogCiAg
ICAgcmV0dXJuIFdlYktpdDo6Vmlld1NuYXBzaG90OjpjcmVhdGUoV1RGTW92ZShzdXJmYWNlKSk7
Ci0jZWxzZQorI2Vsc2UgLy8gSEFWRShJT1NVUkZBQ0UpCiAgICAgdWludDMyX3Qgc2xvdElEID0g
W1dlYktpdDo6Vmlld1NuYXBzaG90U3RvcmU6OnNuYXBzaG90dGluZ0NvbnRleHQoKSBjcmVhdGVJ
bWFnZVNsb3Q6c25hcHNob3RTaXplIGhhc0FscGhhOllFU107CiAKICAgICBpZiAoIXNsb3RJRCkK
QEAgLTE4OTksNyArMTkwMSw3IEBAIC0gKFJlZlB0cjxXZWJLaXQ6OlZpZXdTbmFwc2hvdD4pX3Rh
a2VWaWV3U25hcHNob3QKICAgICBDQVJlbmRlclNlcnZlckNhcHR1cmVMYXllcldpdGhUcmFuc2Zv
cm0oTUFDSF9QT1JUX05VTEwsIHNlbGYubGF5ZXIuY29udGV4dC5jb250ZXh0SWQsICh1aW50NjRf
dClzZWxmLmxheWVyLCBzbG90SUQsIDAsIDAsICZ0cmFuc2Zvcm0pOwogICAgIFdlYkNvcmU6Oklu
dFNpemUgaW1hZ2VTaXplID0gV2ViQ29yZTo6ZXhwYW5kZWRJbnRTaXplKFdlYkNvcmU6OkZsb2F0
U2l6ZShzbmFwc2hvdFNpemUpKTsKICAgICByZXR1cm4gV2ViS2l0OjpWaWV3U25hcHNob3Q6OmNy
ZWF0ZShzbG90SUQsIGltYWdlU2l6ZSwgKGltYWdlU2l6ZS5hcmVhKCkgKiA0KS51bnNhZmVHZXQo
KSk7Ci0jZW5kaWYKKyNlbmRpZiAvLyBIQVZFKElPU1VSRkFDRSkKIH0KIAogLSAodm9pZClfem9v
bVRvUG9pbnQ6KFdlYkNvcmU6OkZsb2F0UG9pbnQpcG9pbnQgYXRTY2FsZTooZG91YmxlKXNjYWxl
IGFuaW1hdGVkOihCT09MKWFuaW1hdGVkCkBAIC01MjYxLDcgKzUyNjMsNyBAQCAtICh2b2lkKV9z
bmFwc2hvdFJlY3Q6KENHUmVjdClyZWN0SW5WaWV3Q29vcmRpbmF0ZXMgaW50b0ltYWdlT2ZXaWR0
aDooQ0dGbG9hdClpbQogICAgIENHRmxvYXQgaW1hZ2VIZWlnaHQgPSBpbWFnZVNjYWxlICogc25h
cHNob3RSZWN0SW5Db250ZW50Q29vcmRpbmF0ZXMuc2l6ZS5oZWlnaHQ7CiAgICAgQ0dTaXplIGlt
YWdlU2l6ZSA9IENHU2l6ZU1ha2UoaW1hZ2VXaWR0aCwgaW1hZ2VIZWlnaHQpOwogCi0jaWYgVVNF
KElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKICAgICAvLyBJZiB3ZSBhcmUgcGFyZW50
ZWQgYW5kIHRodXMgd29uJ3QgaW5jdXIgYSBzaWduaWZpY2FudCBwZW5hbHR5IGZyb20gcGFnaW5n
IGluIHRpbGVzLCBzbmFwc2hvdCB0aGUgdmlldyBoaWVyYXJjaHkgZGlyZWN0bHkuCiAjcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRy
ZWVEcmF3aW5nQXJlYVByb3h5Lm1tCmluZGV4IGUyM2M5ZWUyZjRiMWMxNGExYzA4MDM2NjBmZGFh
MTQ4MTgwMjMwYzguLjgwOTM2Nzc1OWIwY2MxMGYyOGFkM2U3OGJlN2UxN2U5ODBkZDM0MzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVM
YXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCkBAIC0x
MTAsNyArMTEwLDcgQEAgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6UmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWFQcm94eShXZWJQYWdlUHJveHkmIHcKICAgICA6IERyYXdpbmdBcmVh
UHJveHkoRHJhd2luZ0FyZWFUeXBlUmVtb3RlTGF5ZXJUcmVlLCB3ZWJQYWdlUHJveHkpCiAgICAg
LCBtX3JlbW90ZUxheWVyVHJlZUhvc3QoKnRoaXMpCiB7Ci0jaWYgVVNFKElPU1VSRkFDRSkKKyNp
ZiBIQVZFKElPU1VSRkFDRSkKICAgICAvLyBXZSBkb24ndCB3YW50IHRvIHBvb2wgc3VyZmFjZXMg
aW4gdGhlIFVJIHByb2Nlc3MuCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBkbyB0aGlzIHNvbWV3
aGVyZSBlbHNlLgogICAgIElPU3VyZmFjZVBvb2w6OnNoYXJlZFBvb2woKS5zZXRQb29sU2l6ZSgw
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVMYXllclRyZWVIb3N0Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5
ZXJUcmVlL1JlbW90ZUxheWVyVHJlZUhvc3QubW0KaW5kZXggYzg3ZDc1MmM3MTY2NWFhZDZkNDUy
NDQ5YjU2M2IxNDlmZjc4NzU2Mi4uOWRmMWRjZmIyMTljYWI3ZTRiMTE4NDc4Nzg0M2M1OThiMTA1
NmM5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVl
L1JlbW90ZUxheWVyVHJlZUhvc3QubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVt
b3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZUhvc3QubW0KQEAgLTI4OSw3ICsyODksNyBAQCB2
b2lkIFJlbW90ZUxheWVyVHJlZUhvc3Q6OmRldGFjaFJvb3RMYXllcigpCiAgICAgbV9yb290TGF5
ZXIgPSBudWxscHRyOwogfQogCi0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFD
RSkKIHN0YXRpYyB2b2lkIHJlY3Vyc2l2ZWx5TWFwSU9TdXJmYWNlQmFja2luZ1N0b3JlKENBTGF5
ZXIgKmxheWVyKQogewogICAgIGlmIChsYXllci5jb250ZW50cyAmJiBDRkdldFR5cGVJRChsYXll
ci5jb250ZW50cykgPT0gQ0FNYWNoUG9ydEdldFR5cGVJRCgpKSB7CkBAIC0zMDUsNyArMzA1LDcg
QEAgc3RhdGljIHZvaWQgcmVjdXJzaXZlbHlNYXBJT1N1cmZhY2VCYWNraW5nU3RvcmUoQ0FMYXll
ciAqbGF5ZXIpCiAKIHZvaWQgUmVtb3RlTGF5ZXJUcmVlSG9zdDo6bWFwQWxsSU9TdXJmYWNlQmFj
a2luZ1N0b3JlKCkKIHsKLSNpZiBVU0UoSU9TVVJGQUNFKQorI2lmIEhBVkUoSU9TVVJGQUNFKQog
ICAgIHJlY3Vyc2l2ZWx5TWFwSU9TdXJmYWNlQmFja2luZ1N0b3JlKGFzTGF5ZXIobV9yb290TGF5
ZXIpKTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1ZpZXdTbmFwc2hvdFN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVmlld1Nu
YXBzaG90U3RvcmUuaAppbmRleCA3MGI1ODc5YWIyZjNhOWRlZjg2NWYzOTVkMDk1OGM2NmZjZTVm
MjM1Li5hZmVkMzMyMzhjYzg2NTEwZGMyNTcwZjBmNTNmZTIxZDIyNDVmNzdkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVmlld1NuYXBzaG90U3RvcmUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVmlld1NuYXBzaG90U3RvcmUuaApAQCAtNTMsNyAr
NTMsNyBAQCBjbGFzcyBXZWJQYWdlUHJveHk7CiAKIGNsYXNzIFZpZXdTbmFwc2hvdCA6IHB1Ymxp
YyBSZWZDb3VudGVkPFZpZXdTbmFwc2hvdD4gewogcHVibGljOgotI2lmIFVTRShJT1NVUkZBQ0Up
CisjaWYgSEFWRShJT1NVUkZBQ0UpCiAgICAgc3RhdGljIFJlZjxWaWV3U25hcHNob3Q+IGNyZWF0
ZShzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPik7CiAjZWxzZQogICAgIHN0YXRp
YyBSZWY8Vmlld1NuYXBzaG90PiBjcmVhdGUodWludDMyX3Qgc2xvdElELCBXZWJDb3JlOjpJbnRT
aXplLCBzaXplX3QgaW1hZ2VTaXplSW5CeXRlcyk7CkBAIC03OCw3ICs3OCw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldERldmljZVNjYWxlRmFjdG9yKGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKSB7
IG1fZGV2aWNlU2NhbGVGYWN0b3IgPSBkZXZpY2VTY2FsZUZhY3RvcjsgfQogICAgIGZsb2F0IGRl
dmljZVNjYWxlRmFjdG9yKCkgY29uc3QgeyByZXR1cm4gbV9kZXZpY2VTY2FsZUZhY3RvcjsgfQog
Ci0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKICAgICBXZWJDb3JlOjpJ
T1N1cmZhY2UqIHN1cmZhY2UoKSBjb25zdCB7IHJldHVybiBtX3N1cmZhY2UuZ2V0KCk7IH0KIAog
ICAgIHNpemVfdCBpbWFnZVNpemVJbkJ5dGVzKCkgY29uc3QgeyByZXR1cm4gbV9zdXJmYWNlID8g
bV9zdXJmYWNlLT50b3RhbEJ5dGVzKCkgOiAwOyB9CkBAIC05Myw3ICs5Myw3IEBAIHB1YmxpYzoK
ICNlbmRpZgogCiBwcml2YXRlOgotI2lmIFVTRShJT1NVUkZBQ0UpCisjaWYgSEFWRShJT1NVUkZB
Q0UpCiAgICAgZXhwbGljaXQgVmlld1NuYXBzaG90KHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJ
T1N1cmZhY2U+KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJT1N1cmZhY2U+IG1f
c3VyZmFjZTsKQEAgLTEyNyw3ICsxMjcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXREaXNhYmxl
U25hcHNob3RWb2xhdGlsaXR5Rm9yVGVzdGluZyhib29sIGRpc2FibGUpIHsgbV9kaXNhYmxlU25h
cHNob3RWb2xhdGlsaXR5ID0gZGlzYWJsZTsgfQogICAgIGJvb2wgZGlzYWJsZVNuYXBzaG90Vm9s
YXRpbGl0eUZvclRlc3RpbmcoKSBjb25zdCB7IHJldHVybiBtX2Rpc2FibGVTbmFwc2hvdFZvbGF0
aWxpdHk7IH0KIAotI2lmICFVU0UoSU9TVVJGQUNFKQorI2lmICFIQVZFKElPU1VSRkFDRSkKICAg
ICBzdGF0aWMgQ0FDb250ZXh0ICpzbmFwc2hvdHRpbmdDb250ZXh0KCk7CiAjZW5kaWYKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1ZpZXdTbmFwc2hvdFN0b3JlLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1ZpZXdTbmFwc2hvdFN0b3JlLm1tCmluZGV4
IGFlZjdjMzM2MjIxMWIxOGVkY2U4NTIxMzY1N2I5YTUxMzdlNmJlMTEuLjg2ZGFlNWY3MTg1YTI3
N2E5OWE0MzQ2MTg4NjA2MGIxZTRhOWJjNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL21hYy9WaWV3U25hcHNob3RTdG9yZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9tYWMvVmlld1NuYXBzaG90U3RvcmUubW0KQEAgLTYwLDcgKzYwLDcgQEAgVmlld1NuYXBz
aG90U3RvcmUmIFZpZXdTbmFwc2hvdFN0b3JlOjpzaW5nbGV0b24oKQogICAgIHJldHVybiBzdG9y
ZTsKIH0KIAotI2lmICFVU0UoSU9TVVJGQUNFKQorI2lmICFIQVZFKElPU1VSRkFDRSkKIENBQ29u
dGV4dCAqVmlld1NuYXBzaG90U3RvcmU6OnNuYXBzaG90dGluZ0NvbnRleHQoKQogewogICAgIHN0
YXRpYyBDQUNvbnRleHQgKmNvbnRleHQ7CkBAIC0xMzEsNyArMTMxLDcgQEAgdm9pZCBWaWV3U25h
cHNob3RTdG9yZTo6ZGlzY2FyZFNuYXBzaG90SW1hZ2VzKCkKICAgICAgICAgbV9zbmFwc2hvdHNX
aXRoSW1hZ2VzLmZpcnN0KCktPmNsZWFySW1hZ2UoKTsKIH0KIAotI2lmIFVTRShJT1NVUkZBQ0Up
CisjaWYgSEFWRShJT1NVUkZBQ0UpCiBSZWY8Vmlld1NuYXBzaG90PiBWaWV3U25hcHNob3Q6OmNy
ZWF0ZShzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPiBzdXJmYWNlKQogewogICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFZpZXdTbmFwc2hvdChXVEZNb3ZlKHN1cmZhY2UpKSk7CkBA
IC0xNDMsNyArMTQzLDcgQEAgUmVmPFZpZXdTbmFwc2hvdD4gVmlld1NuYXBzaG90OjpjcmVhdGUo
dWludDMyX3Qgc2xvdElELCBJbnRTaXplIHNpemUsIHNpemVfdCBpbWEKIH0KICNlbmRpZgogCi0j
aWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKIFZpZXdTbmFwc2hvdDo6Vmll
d1NuYXBzaG90KHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJT1N1cmZhY2U+IHN1cmZhY2UpCiAg
ICAgOiBtX3N1cmZhY2UoV1RGTW92ZShzdXJmYWNlKSkKICNlbHNlCkBAIC0xNjIsNyArMTYyLDcg
QEAgVmlld1NuYXBzaG90Ojp+Vmlld1NuYXBzaG90KCkKICAgICBjbGVhckltYWdlKCk7CiB9CiAK
LSNpZiBVU0UoSU9TVVJGQUNFKQorI2lmIEhBVkUoSU9TVVJGQUNFKQogdm9pZCBWaWV3U25hcHNo
b3Q6OnNldFN1cmZhY2Uoc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3VyZmFjZT4gc3VyZmFj
ZSkKIHsKICAgICBBU1NFUlQoIW1fc3VyZmFjZSk7CkBAIC0xNzgsNyArMTc4LDcgQEAgdm9pZCBW
aWV3U25hcHNob3Q6OnNldFN1cmZhY2Uoc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3VyZmFj
ZT4gc3VyZmFjZSkKIAogYm9vbCBWaWV3U25hcHNob3Q6Omhhc0ltYWdlKCkgY29uc3QKIHsKLSNp
ZiBVU0UoSU9TVVJGQUNFKQorI2lmIEhBVkUoSU9TVVJGQUNFKQogICAgIHJldHVybiAhIW1fc3Vy
ZmFjZTsKICNlbHNlCiAgICAgcmV0dXJuIG1fc2xvdElEOwpAQCAtMTkyLDcgKzE5Miw3IEBAIHZv
aWQgVmlld1NuYXBzaG90OjpjbGVhckltYWdlKCkKIAogICAgIFZpZXdTbmFwc2hvdFN0b3JlOjpz
aW5nbGV0b24oKS53aWxsUmVtb3ZlSW1hZ2VGcm9tU25hcHNob3QoKnRoaXMpOwogCi0jaWYgVVNF
KElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKICAgICBtX3N1cmZhY2UgPSBudWxscHRy
OwogI2Vsc2UKICAgICBbVmlld1NuYXBzaG90U3RvcmU6OnNuYXBzaG90dGluZ0NvbnRleHQoKSBk
ZWxldGVTbG90Om1fc2xvdElEXTsKQEAgLTIwMSw3ICsyMDEsNyBAQCB2b2lkIFZpZXdTbmFwc2hv
dDo6Y2xlYXJJbWFnZSgpCiAjZW5kaWYKIH0KIAotI2lmIFVTRShJT1NVUkZBQ0UpCisjaWYgSEFW
RShJT1NVUkZBQ0UpCiBXZWJDb3JlOjpJT1N1cmZhY2U6OlN1cmZhY2VTdGF0ZSBWaWV3U25hcHNo
b3Q6OnNldFZvbGF0aWxlKGJvb2wgYmVjb21lVm9sYXRpbGUpCiB7CiAgICAgaWYgKFZpZXdTbmFw
c2hvdFN0b3JlOjpzaW5nbGV0b24oKS5kaXNhYmxlU25hcHNob3RWb2xhdGlsaXR5Rm9yVGVzdGlu
ZygpKQpAQCAtMjE2LDcgKzIxNiw3IEBAIFdlYkNvcmU6OklPU3VyZmFjZTo6U3VyZmFjZVN0YXRl
IFZpZXdTbmFwc2hvdDo6c2V0Vm9sYXRpbGUoYm9vbCBiZWNvbWVWb2xhdGlsZSkKIAogaWQgVmll
d1NuYXBzaG90Ojphc0xheWVyQ29udGVudHMoKQogewotI2lmIFVTRShJT1NVUkZBQ0UpCisjaWYg
SEFWRShJT1NVUkZBQ0UpCiAgICAgaWYgKCFtX3N1cmZhY2UpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogCkBAIC0yMzMsNyArMjMzLDcgQEAgaWQgVmlld1NuYXBzaG90Ojphc0xheWVyQ29udGVu
dHMoKQogCiBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gVmlld1NuYXBzaG90Ojphc0ltYWdlRm9yVGVz
dGluZygpCiB7Ci0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKICAgICBp
ZiAoIW1fc3VyZmFjZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKZGlmZiAtLWdpdCBhL1dl
YktpdExpYnJhcmllcy9DaGFuZ2VMb2cgYi9XZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nCmluZGV4
IDMwNjk0ZGY3N2I1OGY3ZDY2MjA0MWMwMzg5YjhmY2ViM2ViZjAzMDkuLmRiNzU3NTM0MDY2YTJh
NWNkZDhhYWI2MWMxODQ2ODM3Y2QzYTRiNDEgMTAwNjQ0Ci0tLSBhL1dlYktpdExpYnJhcmllcy9D
aGFuZ2VMb2cKKysrIGIvV2ViS2l0TGlicmFyaWVzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBA
CisyMDE4LTAyLTIwICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisg
ICAgICAgIEludHJvZHVjZSBIQVZFKElPU1VSRkFDRV9BQ0NFTEVSQVRPUikKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4Mjk1NQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMzc2OTk1MTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4K
KworICAgICAgICAqIFdlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9pT1MvMTAvSU9TdXJmYWNl
LmZyYW1ld29yay9JT1N1cmZhY2UudGJkOgorICAgICAgICAqIFdlYktpdFByaXZhdGVGcmFtZXdv
cmtTdHVicy9pT1MvMTAvSU9TdXJmYWNlQWNjZWxlcmF0b3IuZnJhbWV3b3JrL0lPU3VyZmFjZUFj
Y2VsZXJhdG9yLnRiZDogQWRkZWQuCisgICAgICAgICogV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0
dWJzL2lPUy8xMS9JT1N1cmZhY2VBY2NlbGVyYXRvci5mcmFtZXdvcmsvSU9TdXJmYWNlQWNjZWxl
cmF0b3IudGJkOiBBZGRlZC4KKyAgICAgICAgU3dpdGNoIElPU3VyZmFjZUFjY2VsZXJhdG9yIHN5
bWJvbHMgb3ZlciB0byB0aGUgc3RpbGwtcHJpdmF0ZSBJT1N1cmZhY2VBY2NlbGVyYXRvciBmcmFt
ZXdvcmsuCisKIDIwMTgtMDEtMTkgIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+
CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIyNzIxMS4KZGlmZiAtLWdpdCBh
L1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzEwL0lPU3Vy
ZmFjZS5mcmFtZXdvcmsvSU9TdXJmYWNlLnRiZCBiL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2
YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzEwL0lPU3VyZmFjZS5mcmFtZXdvcmsvSU9TdXJmYWNlLnRi
ZAppbmRleCA1N2I5Yjk3YmI4YWRjMzU2NzQ3YzJiZWUyYjcwMjE1MjZjMmRkNDQ4Li5jN2JmZjRm
MTcxNzUzN2U0MTIxMjBkYjRiNWZlYTQxYjYwZDk3MDcxIDEwMDY0NAotLS0gYS9XZWJLaXRMaWJy
YXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2lPUy8xMC9JT1N1cmZhY2UuZnJhbWV3
b3JrL0lPU3VyZmFjZS50YmQKKysrIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFt
ZXdvcmtTdHVicy9pT1MvMTAvSU9TdXJmYWNlLmZyYW1ld29yay9JT1N1cmZhY2UudGJkCkBAIC0x
NCw5ICsxNCw2IEBAIGV4cG9ydHM6CiAgICAgICAtIGkzODYKICAgICAgIC0geDg2XzY0CiAgICAg
c3ltYm9sczoKLSAgICAgIC0gX0lPU3VyZmFjZUFjY2VsZXJhdG9yQ3JlYXRlCi0gICAgICAtIF9J
T1N1cmZhY2VBY2NlbGVyYXRvckdldFJ1bkxvb3BTb3VyY2UKLSAgICAgIC0gX0lPU3VyZmFjZUFj
Y2VsZXJhdG9yVHJhbnNmb3JtU3VyZmFjZQogICAgICAgLSBfSU9TdXJmYWNlQWxpZ25Qcm9wZXJ0
eQogICAgICAgLSBfSU9TdXJmYWNlQ3JlYXRlCiAgICAgICAtIF9JT1N1cmZhY2VDcmVhdGVNYWNo
UG9ydApkaWZmIC0tZ2l0IGEvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtT
dHVicy9pT1MvMTAvSU9TdXJmYWNlQWNjZWxlcmF0b3IuZnJhbWV3b3JrL0lPU3VyZmFjZUFjY2Vs
ZXJhdG9yLnRiZCBiL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMv
aU9TLzEwL0lPU3VyZmFjZUFjY2VsZXJhdG9yLmZyYW1ld29yay9JT1N1cmZhY2VBY2NlbGVyYXRv
ci50YmQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMjNkM2JjZWQ1NTM5M2Y1NmJiMjg4NTNlNjVkZjg2YzExMTc5NTBj
YgotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3
b3JrU3R1YnMvaU9TLzEwL0lPU3VyZmFjZUFjY2VsZXJhdG9yLmZyYW1ld29yay9JT1N1cmZhY2VB
Y2NlbGVyYXRvci50YmQKQEAgLTAsMCArMSwyNCBAQAorLS0tICF0YXBpLXRiZC12MgorYXJjaHM6
CisgIC0gYXJtdjcKKyAgLSBhcm12N3MKKyAgLSBhcm02NAorICAtIGkzODYKKyAgLSB4ODZfNjQK
K2V4cG9ydHM6CisgIC0KKyAgICBhcmNoczoKKyAgICAgIC0gYXJtdjcKKyAgICAgIC0gYXJtdjdz
CisgICAgICAtIGFybTY0CisgICAgICAtIGkzODYKKyAgICAgIC0geDg2XzY0CisgICAgc3ltYm9s
czoKKyAgICAgIC0gX0lPU3VyZmFjZUFjY2VsZXJhdG9yQ3JlYXRlCisgICAgICAtIF9JT1N1cmZh
Y2VBY2NlbGVyYXRvckdldFJ1bkxvb3BTb3VyY2UKKyAgICAgIC0gX0lPU3VyZmFjZUFjY2VsZXJh
dG9yVHJhbnNmb3JtU3VyZmFjZQorICAgICAgLSBfa0lPU3VyZmFjZUFjY2VsZXJhdG9yVW53aXJl
U3VyZmFjZUtleQoraW5zdGFsbC1uYW1lOiAvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29y
a3MvSU9TdXJmYWNlQWNjZWxlcmF0b3IuZnJhbWV3b3JrL0lPU3VyZmFjZUFjY2VsZXJhdG9yCitv
YmpjLWNvbnN0cmFpbnQ6IG5vbmUKK3BsYXRmb3JtOiBpb3MKKy4uLgpkaWZmIC0tZ2l0IGEvV2Vi
S2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9pT1MvMTEvSU9TdXJmYWNl
QWNjZWxlcmF0b3IuZnJhbWV3b3JrL0lPU3VyZmFjZUFjY2VsZXJhdG9yLnRiZCBiL1dlYktpdExp
YnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzExL0lPU3VyZmFjZUFjY2Vs
ZXJhdG9yLmZyYW1ld29yay9JT1N1cmZhY2VBY2NlbGVyYXRvci50YmQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjNk
M2JjZWQ1NTM5M2Y1NmJiMjg4NTNlNjVkZjg2YzExMTc5NTBjYgotLS0gL2Rldi9udWxsCisrKyBi
L1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzExL0lPU3Vy
ZmFjZUFjY2VsZXJhdG9yLmZyYW1ld29yay9JT1N1cmZhY2VBY2NlbGVyYXRvci50YmQKQEAgLTAs
MCArMSwyNCBAQAorLS0tICF0YXBpLXRiZC12MgorYXJjaHM6CisgIC0gYXJtdjcKKyAgLSBhcm12
N3MKKyAgLSBhcm02NAorICAtIGkzODYKKyAgLSB4ODZfNjQKK2V4cG9ydHM6CisgIC0KKyAgICBh
cmNoczoKKyAgICAgIC0gYXJtdjcKKyAgICAgIC0gYXJtdjdzCisgICAgICAtIGFybTY0CisgICAg
ICAtIGkzODYKKyAgICAgIC0geDg2XzY0CisgICAgc3ltYm9sczoKKyAgICAgIC0gX0lPU3VyZmFj
ZUFjY2VsZXJhdG9yQ3JlYXRlCisgICAgICAtIF9JT1N1cmZhY2VBY2NlbGVyYXRvckdldFJ1bkxv
b3BTb3VyY2UKKyAgICAgIC0gX0lPU3VyZmFjZUFjY2VsZXJhdG9yVHJhbnNmb3JtU3VyZmFjZQor
ICAgICAgLSBfa0lPU3VyZmFjZUFjY2VsZXJhdG9yVW53aXJlU3VyZmFjZUtleQoraW5zdGFsbC1u
YW1lOiAvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvSU9TdXJmYWNlQWNjZWxlcmF0
b3IuZnJhbWV3b3JrL0lPU3VyZmFjZUFjY2VsZXJhdG9yCitvYmpjLWNvbnN0cmFpbnQ6IG5vbmUK
K3BsYXRmb3JtOiBpb3MKKy4uLgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>334318</attachid>
            <date>2018-02-20 16:40:05 -0800</date>
            <delta_ts>2018-02-20 17:32:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-182955-20180220164005.patch</filename>
            <type>text/plain</type>
            <size>40846</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI4ODQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGJhMzNlNzEzZWFiNjgyYmJhNTI1NTY0
YmMzYzllNGEwM2M1NzIyNjYuLjQ0YzNhMTJiZDM2OWY1ODZmMWE1OWM3OTVlNDYzN2UyNTVjZjc0
ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTgtMDItMjAgIFRpbSBIb3J0b24gIDx0aW1vdGh5
X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgSW50cm9kdWNlIEhBVkUoSU9TVVJGQUNFX0FD
Q0VMRVJBVE9SKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTgyOTU1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNzY5OTUxMD4KKworICAgICAgICBS
ZXZpZXdlZCBieSBTYW0gV2VpbmlnLgorCisgICAgICAgICogd3RmL1BsYXRmb3JtLmg6CisKIDIw
MTgtMDItMjAgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgQWx3YXlzIGlubGluZSBzb2Z0IGxpbmtpbmcgZnVuY3Rpb25zIHRvIHdvcmsgYXJvdW5kIGEg
Y2xhbmcgYnVnCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTNjNzA1MTE4YmQxM2I0ZGIyNzE2ZGZmNmU0MjVkMTE2
NTM3MmMwNC4uMDIyZmVhYTBhNTczOTI3YjkxMjFmZWRjODU3Mjg1YjBlNjRhNTE0NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE4LTAyLTIwICBUaW0gSG9ydG9uICA8dGltb3RoeV9o
b3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEludHJvZHVjZSBIQVZFKElPU1VSRkFDRV9BQ0NF
TEVSQVRPUikKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE4Mjk1NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzc2OTk1MTA+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgU2FtIFdlaW5pZy4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGNoYW5nZSBp
biBiZWhhdmlvci4KKworICAgICAgICBJbnRyb2R1Y2UgSEFWRShJT1NVUkZBQ0VfQUNDRUxFUkFU
T1IpIGFuZCBndWFyZCBhbGwgdXNlcyBvZgorICAgICAgICBJT1N1cmZhY2VBY2NlbGVyYXRvciBi
ZWhpbmQgaXQuCisKKyAgICAgICAgUmVuYW1lIFVTRShJT1NVUkZBQ0UpIHRvIEhBVkUoSU9TVVJG
QUNFKSBmb3IgYWNjdXJhY3kuCisKKyAgICAgICAgKiBwYWdlL2NvY29hL01lbW9yeVJlbGVhc2VD
b2NvYS5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlQ29udHJvbGxlci5j
cHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSU9TdXJmYWNlUG9vbC5jcHA6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSU9TdXJmYWNlUG9vbC5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL0lPU3VyZmFjZS5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9JT1N1cmZhY2VQb29sQ29jb2EubW06CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY3Yv
VmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2N2
L1ZpZGVvVGV4dHVyZUNvcGllckNWLmg6CisKIDIwMTgtMDItMjAgIFRpbSBIb3J0b24gIDx0aW1v
dGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBtb3JlIHVzZSBvZiBVU0UoT1BF
TkdMX0VTKSB3aGVyZSBpdCBtYWtlcyBzZW5zZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
UEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggOWRkNDZl
YjEwNzU4YjQ1Mzg0NzRlODE4YjNmMjQxOTZkMjRlNmNmYi4uYjMwNDc2ZjI0OGEwZWU5MzRlMTli
M2QxYTRjYThkMWM2YmFkNWYyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTgtMDItMjAgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAg
ICAgICAgSW50cm9kdWNlIEhBVkUoSU9TVVJGQUNFX0FDQ0VMRVJBVE9SKQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgyOTU1CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS8zNzY5OTUxMD4KKworICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgor
CisgICAgICAgICogcGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaDoKKyAgICAgICAgKiBwYWwv
c3BpL2NvY29hL0lPU3VyZmFjZVNQSS5oOgorICAgICAgICAqIHBhbC9zcGkvY29jb2EvUXVhcnR6
Q29yZVNQSS5oOgorCiAyMDE4LTAyLTE1ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBw
bGUuY29tPgogCiAgICAgICAgIFN0b3AgdXNpbmcgRVhDTFVERURfU09VUkNFX0ZJTEVfTkFNRVMg
Zm9yIGFjdHVhbCBzb3VyY2UgZmlsZXMgaW4gV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBkOWZkMzA2YjBm
ZjI4OGM0NmI4YjU3NGEyMzBmZjVjNTIzYjI2NzY0Li43OGE3M2IzNTY4MGFlZTViZGYwYWFjN2M4
NTMxZTU0NzQzM2Q2NDJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE4LTAyLTIwICBU
aW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEludHJvZHVj
ZSBIQVZFKElPU1VSRkFDRV9BQ0NFTEVSQVRPUikKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE4Mjk1NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzc2
OTk1MTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KKworICAgICAgICAqIFNo
YXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUuaDoKKyAgICAgICAg
KiBTaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tOgorICAg
ICAgICAqIFNoYXJlZC9jZy9TaGFyZWFibGVCaXRtYXBDRy5jcHA6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlSG9zdC5tbToKKyAgICAgICAg
KiBVSVByb2Nlc3MvbWFjL1ZpZXdTbmFwc2hvdFN0b3JlLmg6CisgICAgICAgICogVUlQcm9jZXNz
L21hYy9WaWV3U25hcHNob3RTdG9yZS5tbToKKwogMjAxOC0wMi0yMCAgTWF0dCBMZXdpcyAgPGps
ZXdpczNAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyMjg4
MjkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oIGIvU291cmNlL1dURi93
dGYvUGxhdGZvcm0uaAppbmRleCBlYTc5YTE1MDkxN2E2NzU1NDg3NTc4NmJkZWU1ODMzNzM3ODQz
YmNhLi5jMDJiNjZkMDc4MGY3NGJlNmU0YTNiZjNhNmQwOTkzMDU0NmU5MTZjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
LmgKQEAgLTEyMDQsNyArMTIwNCwxMSBAQAogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkg
JiYgIVBMQVRGT1JNKElPU19TSU1VTEFUT1IpCi0jZGVmaW5lIFVTRV9JT1NVUkZBQ0UgMQorI2Rl
ZmluZSBIQVZFX0lPU1VSRkFDRSAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKElPUykgJiYgIVBM
QVRGT1JNKElPU19TSU1VTEFUT1IpCisjZGVmaW5lIEhBVkVfSU9TVVJGQUNFX0FDQ0VMRVJBVE9S
IDEKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Db25maWd1cmF0aW9ucy9XZWJDb3JlLnhjY29uZmlnIGIvU291cmNlL1dlYkNvcmUvQ29u
ZmlndXJhdGlvbnMvV2ViQ29yZS54Y2NvbmZpZwppbmRleCBiZGVlN2U0NDgxMTExMmI2M2U0YTE5
NThmZGI1MjYzYzlhZTgyMjQyLi43NDkxZTQzNGRjNzliMTVmYzFjNmNhN2Y2ZWRhZjk5M2UwMTI5
Mjc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9XZWJDb3JlLnhj
Y29uZmlnCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL1dlYkNvcmUueGNjb25m
aWcKQEAgLTgwLDcgKzgwLDcgQEAgT1RIRVJfTERGTEFHUyA9ICQoaW5oZXJpdGVkKSAkKFdLX1JF
TE9DQVRBQkxFX0ZSQU1FV09SS19MREZMQUdTKSAkKFdLX1VOREVGSU5FRF8KIE9USEVSX0xERkxB
R1NfQkFTRSA9IC1sc3FsaXRlMyAtbG9iamMgLWxBTkdMRSAtZnJhbWV3b3JrIENvcmVBdWRpbyAt
ZnJhbWV3b3JrIE1ldGFsIC1hbGxvd2FibGVfY2xpZW50IFdlYkNvcmVUZXN0U3VwcG9ydCAtYWxs
b3dhYmxlX2NsaWVudCBXZWJLaXRMZWdhY3kgLWZvcmNlX2xvYWQgJChCVUlMVF9QUk9EVUNUU19E
SVIpL2xpYlBBTC5hOwogLy8gRklYTUU6IFJlZHVjZSB0aGUgbnVtYmVyIG9mIGFsbG93YWJsZV9j
bGllbnQgPHJkYXI6Ly9wcm9ibGVtLzMxODIzOTY5PgogT1RIRVJfTERGTEFHU19CQVNFX2lvcyA9
ICQoT1RIRVJfTERGTEFHU19CQVNFKSAtZnJhbWV3b3JrIENGTmV0d29yayAtZnJhbWV3b3JrIENv
cmVHcmFwaGljcyAtZnJhbWV3b3JrIENvcmVUZXh0IC1mcmFtZXdvcmsgRm91bmRhdGlvbiAtZnJh
bWV3b3JrIEltYWdlSU8gLWZyYW1ld29yayBNb2JpbGVDb3JlU2VydmljZXMgLWZyYW1ld29yayBP
cGVuR0xFUyAtbE1vYmlsZUdlc3RhbHQgJChXS19JT1NfQklOQ09NUEFUX0xERkxBR1MpIC1hbGxv
d2FibGVfY2xpZW50IFdlYktpdCAtYWxsb3dhYmxlX2NsaWVudCBpVHVuZXNVIC1hbGxvd2FibGVf
Y2xpZW50IENhc2FibGFuY2EgLWFsbG93YWJsZV9jbGllbnQgUmVtb3RlIC1hbGxvd2FibGVfY2xp
ZW50IFRWQm9va3MgLWFsbG93YWJsZV9jbGllbnQgRHVtcFJlbmRlclRyZWUgLWFsbG93YWJsZV9j
bGllbnQgV2ViS2l0VGVzdFJ1bm5lciAtYWxsb3dhYmxlX2NsaWVudCBUZXN0V2ViS2l0QVBJOwot
T1RIRVJfTERGTEFHU19QTEFURk9STVtzZGs9aXBob25lb3MqXSA9ICQoT1RIRVJfTERGTEFHU19C
QVNFX2lvcykgLWZyYW1ld29yayBJT1N1cmZhY2UgLWZyYW1ld29yayBHcmFwaGljc1NlcnZpY2Vz
ICQoTElCV0VCUlRDX0xERkxBR1MpOworT1RIRVJfTERGTEFHU19QTEFURk9STVtzZGs9aXBob25l
b3MqXSA9ICQoT1RIRVJfTERGTEFHU19CQVNFX2lvcykgLWZyYW1ld29yayBJT1N1cmZhY2UgLWZy
YW1ld29yayBJT1N1cmZhY2VBY2NlbGVyYXRvciAtZnJhbWV3b3JrIEdyYXBoaWNzU2VydmljZXMg
JChMSUJXRUJSVENfTERGTEFHUyk7CiBPVEhFUl9MREZMQUdTX1BMQVRGT1JNW3Nkaz1pcGhvbmVz
aW11bGF0b3IqXSA9ICQoT1RIRVJfTERGTEFHU19CQVNFX2lvcykgJChMSUJXRUJSVENfTERGTEFH
Uyk7CiBPVEhFUl9MREZMQUdTX1BMQVRGT1JNW3Nkaz1tYWNvc3gqXSA9ICQoT1RIRVJfTERGTEFH
U19CQVNFKSAtc3ViX2xpYnJhcnkgbGlib2JqYyAtdW1icmVsbGEgV2ViS2l0IC1mcmFtZXdvcmsg
QXBwbGljYXRpb25TZXJ2aWNlcyAtZnJhbWV3b3JrIEF1ZGlvVW5pdCAtZnJhbWV3b3JrIENhcmJv
biAtZnJhbWV3b3JrIENvY29hIC1mcmFtZXdvcmsgRGF0YURldGVjdG9yc0NvcmUgLWZyYW1ld29y
ayBJT1N1cmZhY2UgLWZyYW1ld29yayBPcGVuR0wgLWZyYW1ld29yayBTeXN0ZW1Db25maWd1cmF0
aW9uICQoTElCV0VCUlRDX0xERkxBR1MpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
c3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oCmluZGV4IDg0N2Y0NTliYWI5ZjMzOWExZDQ5YTkzYmZh
NjgwZTliY2UzMmI2YzEuLjc2OWJjMzk3OGU3ZmM1ZGY0YmU4ODQ5MmFkNDUzZDNiYWQ1ZjQzNTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQ
SS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5o
CkBAIC0yOCw3ICsyOCw3IEBACiAjaW5jbHVkZSA8Q29yZUZvdW5kYXRpb24vQ29yZUZvdW5kYXRp
b24uaD4KICNpbmNsdWRlIDxDb3JlR3JhcGhpY3MvQ29yZUdyYXBoaWNzLmg+CiAKLSNpZiBVU0Uo
SU9TVVJGQUNFKQorI2lmIEhBVkUoSU9TVVJGQUNFKQogI2luY2x1ZGUgPHBhbC9zcGkvY29jb2Ev
SU9TdXJmYWNlU1BJLmg+CiAjZW5kaWYKIApAQCAtMjQ5LDcgKzI0OSw3IEBAIGJvb2wgQ0dDb250
ZXh0R2V0QWxsb3dzRm9udFN1YnBpeGVsUG9zaXRpb25pbmcoQ0dDb250ZXh0UmVmKTsKIGJvb2wg
Q0dDb250ZXh0RHJhd3NXaXRoQ29ycmVjdFNoYWRvd09mZnNldHMoQ0dDb250ZXh0UmVmKTsKIENH
UGF0dGVyblJlZiBDR1BhdHRlcm5DcmVhdGVXaXRoSW1hZ2UyKENHSW1hZ2VSZWYsIENHQWZmaW5l
VHJhbnNmb3JtLCBDR1BhdHRlcm5UaWxpbmcpOwogCi0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBI
QVZFKElPU1VSRkFDRSkKIENHQ29udGV4dFJlZiBDR0lPU3VyZmFjZUNvbnRleHRDcmVhdGUoSU9T
dXJmYWNlUmVmLCBzaXplX3QsIHNpemVfdCwgc2l6ZV90LCBzaXplX3QsIENHQ29sb3JTcGFjZVJl
ZiwgQ0dCaXRtYXBJbmZvKTsKIENHSW1hZ2VSZWYgQ0dJT1N1cmZhY2VDb250ZXh0Q3JlYXRlSW1h
Z2UoQ0dDb250ZXh0UmVmKTsKIENHSW1hZ2VSZWYgQ0dJT1N1cmZhY2VDb250ZXh0Q3JlYXRlSW1h
Z2VSZWZlcmVuY2UoQ0dDb250ZXh0UmVmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvc3BpL2NvY29hL0lPU3VyZmFjZVNQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9z
cGkvY29jb2EvSU9TdXJmYWNlU1BJLmgKaW5kZXggZTcyZjRkMjY3NDM5YjlmYjU1ZjQ5OTAyNWI1
OTJiYTEzMDY5NjlmZi4uODJhM2Q2MmZkMjE4OTYyZjY4YjcyMjgwNWU1MjMxZGUzNWFhOTQ4MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvSU9TdXJmYWNlU1BJ
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvSU9TdXJmYWNlU1BJLmgK
QEAgLTI1LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiAhUExBVEZPUk0oSU9TX1NJ
TVVMQVRPUikKKyNpZiBIQVZFKElPU1VSRkFDRSkKIAogI2lmIFBMQVRGT1JNKE1BQykgfHwgVVNF
KEFQUExFX0lOVEVSTkFMX1NESykKIApAQCAtMTEzLDcgKzExMyw3IEBAIElPUmV0dXJuIElPU3Vy
ZmFjZVNldFB1cmdlYWJsZShJT1N1cmZhY2VSZWYgYnVmZmVyLCB1aW50MzJfdCBuZXdTdGF0ZSwg
dWludDMyX3QKIAogV1RGX0VYVEVSTl9DX0VORAogCi0jaWYgUExBVEZPUk0oSU9TKQorI2lmIEhB
VkUoSU9TVVJGQUNFX0FDQ0VMRVJBVE9SKQogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAK
ICNpbXBvcnQgPElPU3VyZmFjZUFjY2VsZXJhdG9yL0lPU3VyZmFjZUFjY2VsZXJhdG9yLmg+CkBA
IC0xMjgsNiArMTI4LDggQEAgdHlwZWRlZiBzdHJ1Y3QgX19JT1N1cmZhY2VBY2NlbGVyYXRvciAq
SU9TdXJmYWNlQWNjZWxlcmF0b3JSZWY7CiAKIFdURl9FWFRFUk5fQ19CRUdJTgogCitleHRlcm4g
Y29uc3QgQ0ZTdHJpbmdSZWYga0lPU3VyZmFjZUFjY2VsZXJhdG9yVW53aXJlU3VyZmFjZUtleTsK
KwogSU9SZXR1cm4gSU9TdXJmYWNlQWNjZWxlcmF0b3JDcmVhdGUoQ0ZBbGxvY2F0b3JSZWYsIENG
RGljdGlvbmFyeVJlZiBwcm9wZXJ0aWVzLCBJT1N1cmZhY2VBY2NlbGVyYXRvclJlZiogYWNjZWxl
cmF0b3JPdXQpOwogQ0ZSdW5Mb29wU291cmNlUmVmIElPU3VyZmFjZUFjY2VsZXJhdG9yR2V0UnVu
TG9vcFNvdXJjZShJT1N1cmZhY2VBY2NlbGVyYXRvclJlZik7CiAKQEAgLTE0NCw2ICsxNDYsNiBA
QCBJT1JldHVybiBJT1N1cmZhY2VBY2NlbGVyYXRvclRyYW5zZm9ybVN1cmZhY2UoSU9TdXJmYWNl
QWNjZWxlcmF0b3JSZWYsIElPU3VyZmFjZQogV1RGX0VYVEVSTl9DX0VORAogCiAjZW5kaWYgLy8g
VVNFKEFQUExFX0lOVEVSTkFMX1NESykKLSNlbmRpZiAvLyBQTEFURk9STShJT1MpCisjZW5kaWYg
Ly8gSEFWRShJT1NVUkZBQ0VfQUNDRUxFUkFUT1IpCiAKLSNlbmRpZiAvLyAhUExBVEZPUk0oSU9T
X1NJTVVMQVRPUikKKyNlbmRpZiAvLyBIQVZFKElPU1VSRkFDRSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaCBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaAppbmRleCBmZjk2YzBiNTgyZmUz
MTg3MWM4YTRkMzIwMTE1NTgyMTU4NDUzZWJkLi45NzFkMGJjYjhmMGNjMzgwYWZmNjhkNGMxNGJj
OTU4YWQ5OTIyOTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2Nv
YS9RdWFydHpDb3JlU1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2Ev
UXVhcnR6Q29yZVNQSS5oCkBAIC0xNzAsNyArMTcwLDcgQEAgV1RGX0VYVEVSTl9DX0JFR0lOCiAj
aWYgIVVTRShBUFBMRV9JTlRFUk5BTF9TREspCiB2b2lkIENBUmVuZGVyU2VydmVyQ2FwdHVyZUxh
eWVyV2l0aFRyYW5zZm9ybShtYWNoX3BvcnRfdCwgdWludDMyX3QgY2xpZW50SWQsIHVpbnQ2NF90
IGxheWVySWQsIHVpbnQzMl90IHNsb3RJZCwgaW50MzJfdCBveCwgaW50MzJfdCBveSwgY29uc3Qg
Q0FUcmFuc2Zvcm0zRCopOwogCi0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFD
RSkKIHZvaWQgQ0FSZW5kZXJTZXJ2ZXJSZW5kZXJMYXllcldpdGhUcmFuc2Zvcm0obWFjaF9wb3J0
X3Qgc2VydmVyX3BvcnQsIHVpbnQzMl90IGNsaWVudF9pZCwgdWludDY0X3QgbGF5ZXJfaWQsIElP
U3VyZmFjZVJlZiwgaW50MzJfdCBveCwgaW50MzJfdCBveSwgY29uc3QgQ0FUcmFuc2Zvcm0zRCop
Owogdm9pZCBDQVJlbmRlclNlcnZlclJlbmRlckRpc3BsYXlMYXllcldpdGhUcmFuc2Zvcm1BbmRU
aW1lT2Zmc2V0KG1hY2hfcG9ydF90LCBDRlN0cmluZ1JlZiBkaXNwbGF5X25hbWUsIHVpbnQzMl90
IGNsaWVudF9pZCwgdWludDY0X3QgbGF5ZXJfaWQsIElPU3VyZmFjZVJlZiwgaW50MzJfdCBveCwg
aW50MzJfdCBveSwgY29uc3QgQ0FUcmFuc2Zvcm0zRCosIENGVGltZUludGVydmFsKTsKICNlbHNl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL01lbW9yeVJlbGVhc2VDb2Nv
YS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvTWVtb3J5UmVsZWFzZUNvY29hLm1tCmlu
ZGV4IGIzN2I1Y2JlNjRmNDE2MjQyZGU4YWNmNDFkZDY1NjRlMDc3ZmE2ODEuLjIwNmVhZmE1ZDY0
YWM3N2RhODA0MDc2ZjI2M2QzYTY1MmI1ZTBjMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvY29jb2EvTWVtb3J5UmVsZWFzZUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvY29jb2EvTWVtb3J5UmVsZWFzZUNvY29hLm1tCkBAIC01Niw3ICs1Niw3IEBAIHZvaWQgcGxh
dGZvcm1SZWxlYXNlTWVtb3J5KENyaXRpY2FsKQogICAgIHRpbGVDb250cm9sbGVyTWVtb3J5SGFu
ZGxlcigpLnRyaW1VbnBhcmVudGVkVGlsZXNUb1RhcmdldCgwKTsKICNlbmRpZgogCi0jaWYgVVNF
KElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKICAgICBJT1N1cmZhY2VQb29sOjpzaGFy
ZWRQb29sKCkuZGlzY2FyZEFsbFN1cmZhY2VzKCk7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVDb250cm9sbGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVDb250cm9sbGVyLmNwcAppbmRl
eCBhMzMwMmE5YTA3YzRjMWUzMzQ5OGIxMjhjNGI1ZWY2MzMyZjExMzYzLi5lYzNhZTRmMWNmNmU3
ZmFjZDg1OWVhN2VlMzc2MmZiNjY1MDA3MjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGlsZUNvbnRyb2xsZXIuY3BwCkBAIC0zOCw3ICszOCw3
IEBACiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0
U3RyZWFtLmg+CiAKLSNpZiBVU0UoSU9TVVJGQUNFKQorI2lmIEhBVkUoSU9TVVJGQUNFKQogI2lu
Y2x1ZGUgIklPU3VyZmFjZS5oIgogI2VuZGlmCiAKQEAgLTUzNCw3ICs1MzQsNyBAQCBJbnRTaXpl
IFRpbGVDb250cm9sbGVyOjp0aWxlU2l6ZSgpIGNvbnN0CiAgICAgY29uc3QgaW50IGtMb3dlc3RD
b21tb25EZW5vbWluYXRvck1heFRpbGVTaXplID0gNCAqIDEwMjQ7CiAgICAgSW50U2l6ZSBtYXhU
aWxlU2l6ZShrTG93ZXN0Q29tbW9uRGVub21pbmF0b3JNYXhUaWxlU2l6ZSwga0xvd2VzdENvbW1v
bkRlbm9taW5hdG9yTWF4VGlsZVNpemUpOwogCi0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZF
KElPU1VSRkFDRSkKICAgICBJbnRTaXplIHN1cmZhY2VTaXplTGltaXQgPSBJT1N1cmZhY2U6Om1h
eGltdW1TaXplKCk7CiAgICAgc3VyZmFjZVNpemVMaW1pdC5zY2FsZSgxIC8gbV9kZXZpY2VTY2Fs
ZUZhY3Rvcik7CiAgICAgbWF4VGlsZVNpemUgPSBtYXhUaWxlU2l6ZS5zaHJ1bmtUbyhzdXJmYWNl
U2l6ZUxpbWl0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NnL0lPU3VyZmFjZVBvb2wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvSU9TdXJmYWNlUG9vbC5jcHAKaW5kZXggZTNmMDczZTk1ZWYxNTFmYTJkNjhhN2NmZGVlMjY5
NDA2NjcyMTJhNC4uMWIwZTFiNjFmMjgzZmU1MzI3ZjU5NWQ3ZDM2ODA0ZmEyOGMwMTI5YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSU9TdXJmYWNlUG9v
bC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSU9TdXJmYWNl
UG9vbC5jcHAKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJJT1N1cmZhY2VQb29sLmgiCiAKLSNpZiBVU0UoSU9TVVJGQUNFKQorI2lmIEhBVkUoSU9TVVJG
QUNFKQogCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0Q0cuaCIKICNpbmNsdWRlIDxDb3JlR3Jh
cGhpY3MvQ29yZUdyYXBoaWNzLmg+CkBAIC0zODMsNCArMzgzLDQgQEAgdm9pZCBJT1N1cmZhY2VQ
b29sOjpzaG93UG9vbFN0YXRpc3RpY3MoY29uc3QgY2hhciogcmVhc29uKQogfQogCiB9Ci0jZW5k
aWYgLy8gVVNFKElPU1VSRkFDRSkKKyNlbmRpZiAvLyBIQVZFKElPU1VSRkFDRSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0lPU3VyZmFjZVBvb2wuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0lPU3VyZmFjZVBvb2wuaAppbmRl
eCBkZjRiZWM3ZmQ5ODgwZGE5OTQ5OWE3ZTMxNDQxZGEwYjczNzg5MWRkLi45MmI4ZGI5ZDE4Y2Y5
YzAzYjQzZjA3ZDUyOWU1YjYwYTQxOGJjMzc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jZy9JT1N1cmZhY2VQb29sLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2cvSU9TdXJmYWNlUG9vbC5oCkBAIC0yNSw3ICsyNSw3IEBACiAK
ICNwcmFnbWEgb25jZQogCi0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkK
IAogI2luY2x1ZGUgIklPU3VyZmFjZS5oIgogI2luY2x1ZGUgIkludFNpemUuaCIKQEAgLTEwMyw0
ICsxMDMsNCBAQCBwcml2YXRlOgogfTsKIAogfQotI2VuZGlmIC8vIFVTRShJT1NVUkZBQ0UpCisj
ZW5kaWYgLy8gSEFWRShJT1NVUkZBQ0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwCmluZGV4IDgyNGY5Zjc0MGRkM2UwMWFj
Mjk2NjBmZWNhYzY4Yzc3M2NjNTU4ZjkuLmY0ODVhMzQxNGU1ZDBlZWZlZWRjYTg3NWI1ZTMzMGFi
ZjYwMGRkYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nn
L0ltYWdlQnVmZmVyQ0cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NnL0ltYWdlQnVmZmVyQ0cuY3BwCkBAIC03OSw3ICs3OSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxJ
bWFnZUJ1ZmZlcj4gSW1hZ2VCdWZmZXI6OmNyZWF0ZUNvbXBhdGlibGVCdWZmZXIoY29uc3QgRmxv
YXRTaXplCiAgICAgY2FzZSBrQ0dDb250ZXh0VHlwZUJpdG1hcDoKICAgICAgICAgY29sb3JTcGFj
ZSA9IENHQml0bWFwQ29udGV4dEdldENvbG9yU3BhY2UoY2dDb250ZXh0KTsKICAgICAgICAgYnJl
YWs7Ci0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKICAgICBjYXNlIGtD
R0NvbnRleHRUeXBlSU9TdXJmYWNlOgogICAgICAgICBjb2xvclNwYWNlID0gQ0dJT1N1cmZhY2VD
b250ZXh0R2V0Q29sb3JTcGFjZShjZ0NvbnRleHQpOwogICAgICAgICBicmVhazsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLmgKaW5kZXgg
YjU3YWU5Nzg2NGIzNWU4N2MwNmExNzRkOTlhZGU4YmUzMDcyMzA5Ny4uZTJiNGExODk5ZDczYmQ4
NmJlOTY5MWRlOWE2Njg5YzI4ZTI3YjU4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogI3By
YWdtYSBvbmNlCiAKLSNpZiBVU0UoSU9TVVJGQUNFKQorI2lmIEhBVkUoSU9TVVJGQUNFKQogCiAj
aW5jbHVkZSA8b2JqYy9vYmpjLmg+CiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCkBAIC0x
MzQsMTAgKzEzNCwxMCBAQCBwdWJsaWM6CiAgICAgLy8gYW4gYWNjdXJhdGUgcmVzdWx0IGZyb20g
aXNJblVzZSgpLCBpdCBuZWVkcyB0byBiZSByZWxlYXNlZC4KICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHJlbGVhc2VHcmFwaGljc0NvbnRleHQoKTsKIAotI2lmIFBMQVRGT1JNKElPUykKKyNpZiBI
QVZFKElPU1VSRkFDRV9BQ0NFTEVSQVRPUikKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9v
bCBhbGxvd0NvbnZlcnNpb25Gcm9tRm9ybWF0VG9Gb3JtYXQoRm9ybWF0LCBGb3JtYXQpOwogICAg
IFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIGNvbnZlcnRUb0Zvcm1hdChzdGQ6OnVuaXF1ZV9w
dHI8V2ViQ29yZTo6SU9TdXJmYWNlPiYmIGluU3VyZmFjZSwgRm9ybWF0LCBXVEY6OkZ1bmN0aW9u
PHZvaWQoc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3VyZmFjZT4pPiYmKTsKLSNlbmRpZgor
I2VuZGlmIC8vIEhBVkUoSU9TVVJGQUNFX0FDQ0VMRVJBVE9SKQogCiAgICAgdm9pZCBtaWdyYXRl
Q29sb3JTcGFjZVRvUHJvcGVydGllcygpOwogCkBAIC0xNjQsNSArMTY0LDUgQEAgV0VCQ09SRV9F
WFBPUlQgV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIGNvbnN0
IFdlYkNvcmU6OklPU3UKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8gVVNF
KElPU1VSRkFDRSkKKyNlbmRpZiAvLyBIQVZFKElPU1VSRkFDRSkKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1tCmluZGV4IDU0MmFl
MDRkYzA5Yzk2OWVjNjE5NGQ1ZWI3ZjVjMjA5ZWMzODZkYWQuLjhjOGFkZmU0NmIyZjU5NjUwNzRh
MjkyYzhkYzQxOWZiNzllMzc5ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0KQEAgLTI2LDcgKzI2LDcgQEAKICNpbXBvcnQg
ImNvbmZpZy5oIgogI2ltcG9ydCAiSU9TdXJmYWNlLmgiCiAKLSNpZiBVU0UoSU9TVVJGQUNFKQor
I2lmIEhBVkUoSU9TVVJGQUNFKQogCiAjaW1wb3J0ICJHcmFwaGljc0NvbnRleHRDRy5oIgogI2lt
cG9ydCAiSU9TdXJmYWNlUG9vbC5oIgpAQCAtNDAsMTEgKzQwLDYgQEAKICNpbXBvcnQgPHd0Zi9N
YXRoRXh0cmFzLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+CiAKLSNpZiBQTEFU
Rk9STShJT1MpCi0vLyBNb3ZlIHRoaXMgaW50byB0aGUgU1BJIGhlYWRlciBvbmNlIGl0J3MgcG9z
c2libGUgdG8gcHV0IGluc2lkZSB0aGUgQVBQTEVfSU5URVJOQUxfU0RLIGJsb2NrLgotTlNTdHJp
bmcgKiBjb25zdCBXZWJJT1N1cmZhY2VBY2NlbGVyYXRvclVud2lyZVN1cmZhY2VLZXkgPSBAIlVu
d2lyZVN1cmZhY2UiOwotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogaW5saW5lIHN0
ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+IElPU3VyZmFjZTo6c3VyZmFjZUZyb21Qb29sKEludFNp
emUgc2l6ZSwgSW50U2l6ZSBjb250ZXh0U2l6ZSwgQ0dDb2xvclNwYWNlUmVmIGNvbG9yU3BhY2Us
IEZvcm1hdCBwaXhlbEZvcm1hdCkKQEAgLTM4OCw3ICszODMsOCBAQCB2b2lkIElPU3VyZmFjZTo6
cmVsZWFzZUdyYXBoaWNzQ29udGV4dCgpCiAgICAgbV9jZ0NvbnRleHQgPSBudWxscHRyOwogfQog
Ci0jaWYgUExBVEZPUk0oSU9TKQorI2lmIEhBVkUoSU9TVVJGQUNFX0FDQ0VMRVJBVE9SKQorCiBi
b29sIElPU3VyZmFjZTo6YWxsb3dDb252ZXJzaW9uRnJvbUZvcm1hdFRvRm9ybWF0KEZvcm1hdCBz
b3VyY2VGb3JtYXQsIEZvcm1hdCBkZXN0Rm9ybWF0KQogewogICAgIGlmICgoc291cmNlRm9ybWF0
ID09IEZvcm1hdDo6UkdCMTAgfHwgc291cmNlRm9ybWF0ID09IEZvcm1hdDo6UkdCMTBBOCkgJiYg
ZGVzdEZvcm1hdCA9PSBGb3JtYXQ6OllVVjQyMikKQEAgLTQzMCwxMiArNDI2LDEzIEBAIHZvaWQg
SU9TdXJmYWNlOjpjb252ZXJ0VG9Gb3JtYXQoc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4mJiBp
blN1cmZhY2UsIEZvcm1hdCBmCiAgICAgICAgIGRlbGV0ZSBjYWxsYmFjazsKICAgICB9OwogCi0g
ICAgTlNEaWN0aW9uYXJ5ICpvcHRpb25zID0gQHsgV2ViSU9TdXJmYWNlQWNjZWxlcmF0b3JVbndp
cmVTdXJmYWNlS2V5IDogQFlFUyB9OworICAgIE5TRGljdGlvbmFyeSAqb3B0aW9ucyA9IEB7IChp
ZClrSU9TdXJmYWNlQWNjZWxlcmF0b3JVbndpcmVTdXJmYWNlS2V5IDogQFlFUyB9OwogCiAgICAg
SU9SZXR1cm4gcmV0ID0gSU9TdXJmYWNlQWNjZWxlcmF0b3JUcmFuc2Zvcm1TdXJmYWNlKGFjY2Vs
ZXJhdG9yLCBpblN1cmZhY2UtPnN1cmZhY2UoKSwgZGVzdGluYXRpb25JT1N1cmZhY2VSZWYsIChD
RkRpY3Rpb25hcnlSZWYpb3B0aW9ucywgbnVsbHB0ciwgJmNvbXBsZXRpb24sIG51bGxwdHIsIG51
bGxwdHIpOwogICAgIEFTU0VSVF9VTlVTRUQocmV0LCByZXQgPT0ga0lPUmV0dXJuU3VjY2Vzcyk7
CiB9Ci0jZW5kaWYgLy8gUExBVEZPUk0oSU9TKQorCisjZW5kaWYgLy8gSEFWRShJT1NVUkZBQ0Vf
QUNDRUxFUkFUT1IpCiAKIHZvaWQgSU9TdXJmYWNlOjptaWdyYXRlQ29sb3JTcGFjZVRvUHJvcGVy
dGllcygpCiB7CkBAIC00ODIsNCArNDc5LDQgQEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0
U3RyZWFtJiB0cywgY29uc3QgSU9TdXJmYWNlJiBzdXJmYWNlKQogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKLSNlbmRpZiAvLyBVU0UoSU9TVVJGQUNFKQorI2VuZGlmIC8vIEhBVkUoSU9TVVJG
QUNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
SU9TdXJmYWNlUG9vbENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvSU9TdXJmYWNlUG9vbENvY29hLm1tCmluZGV4IDRhZDVkMmUwYjczNWU1NmY5MmI1Zjhk
NTllMTljZmY0YmEzZjIyZjIuLmZiMTNmMWNlNmYyNDBiZDNjOWJiNTg4ZWZkM2FiYTg2NTk1MDMz
NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lP
U3VyZmFjZVBvb2xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9JT1N1cmZhY2VQb29sQ29jb2EubW0KQEAgLTI2LDcgKzI2LDcgQEAKICNpbXBvcnQg
ImNvbmZpZy5oIgogI2ltcG9ydCAiSU9TdXJmYWNlUG9vbC5oIgogCi0jaWYgVVNFKElPU1VSRkFD
RSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKIAogI2luY2x1ZGUgPFF1YXJ0ekNvcmUvUXVhcnR6Q29y
ZS5oPgogCkBAIC00MCw0ICs0MCw0IEBAIHZvaWQgSU9TdXJmYWNlUG9vbDo6cGxhdGZvcm1HYXJi
YWdlQ29sbGVjdE5vdygpCiAKIH0KIAotI2VuZGlmIC8vIFVTRShJT1NVUkZBQ0UpCisjZW5kaWYg
Ly8gSEFWRShJT1NVUkZBQ0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jdi9WaWRlb1RleHR1cmVDb3BpZXJDVi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1RleHR1cmVDb3BpZXJDVi5jcHAKaW5kZXggN2I5Y2I2NDJl
NzAyNDFlMmFiNGIwNjhmNWIxNGM0MDA4ZjkzY2M1ZS4uMzMxNmI0NzNhODc2MzY0ZGQ3NjRkY2Q1
MzNiYzUxYTM2YzA1NjkyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvVGV4dHVyZUNvcGllckNWLmNwcApAQCAtNDEsNyArNDEs
NyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSNpZiBVU0UoSU9TVVJGQUNFKQorI2lmIEhB
VkUoSU9TVVJGQUNFKQogZW51bSBjbGFzcyBQaXhlbFJhbmdlIHsKICAgICBVbmtub3duLAogICAg
IFZpZGVvLApAQCAtMzY4LDcgKzM2OCw3IEBAIHN0YXRpYyBjb25zdCBWZWN0b3I8R0xmbG9hdD4g
WUNiQ3JUb1JHQk1hdHJpeEZvclJhbmdlQW5kVHJhbnNmZXJGdW5jdGlvbihQaXhlbFJhCiAgICAg
QVNTRVJUKGl0ZXJhdG9yICE9IG1hdHJpY2VzLmdldCgpLmVuZCgpKTsKICAgICByZXR1cm4gaXRl
cmF0b3ItPnNlY29uZDsKIH0KLSNlbmRpZiAvLyBVU0UoSU9TVVJGQUNFKQorI2VuZGlmIC8vIEhB
VkUoSU9TVVJGQUNFKQogCiBWaWRlb1RleHR1cmVDb3BpZXJDVjo6VmlkZW9UZXh0dXJlQ29waWVy
Q1YoR3JhcGhpY3NDb250ZXh0M0QmIGNvbnRleHQpCiAgICAgOiBtX3NoYXJlZENvbnRleHQoY29u
dGV4dCkKQEAgLTcyOCw3ICs3MjgsNyBAQCBib29sIFZpZGVvVGV4dHVyZUNvcGllckNWOjpjb3B5
SW1hZ2VUb1BsYXRmb3JtVGV4dHVyZShDVlBpeGVsQnVmZmVyUmVmIGltYWdlLCBzaQogICAgICAg
ICByZXR1cm4gY29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKHRleHR1cmUuZ2V0KCks
IHdpZHRoLCBoZWlnaHQsIG91dHB1dFRleHR1cmUsIG91dHB1dFRhcmdldCwgbGV2ZWwsIGludGVy
bmFsRm9ybWF0LCBmb3JtYXQsIHR5cGUsIHByZW11bHRpcGx5QWxwaGEsIGZsaXBZLCBzd2FwQ29s
b3JDaGFubmVscyk7CiAgICAgfQogCi0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VS
RkFDRSkKICAgICAvLyBGSVhNRTogVGhpcyBjdXJyZW50bHkgb25seSBzdXBwb3J0cyAnNDIwdicg
YW5kICc0MjBmJyBwaXhlbCBmb3JtYXRzLiBJbnZlc3RpZ2F0ZSBzdXBwb3J0aW5nIG1vcmUgcGl4
ZWwgZm9ybWF0cy4KICAgICBPU1R5cGUgcGl4ZWxGb3JtYXQgPSBDVlBpeGVsQnVmZmVyR2V0UGl4
ZWxGb3JtYXRUeXBlKGltYWdlKTsKICAgICBpZiAocGl4ZWxGb3JtYXQgIT0ga0NWUGl4ZWxGb3Jt
YXRUeXBlXzQyMFlwQ2JDcjhCaVBsYW5hclZpZGVvUmFuZ2UgJiYgcGl4ZWxGb3JtYXQgIT0ga0NW
UGl4ZWxGb3JtYXRUeXBlXzQyMFlwQ2JDcjhCaVBsYW5hckZ1bGxSYW5nZSkgewpAQCAtODQ2LDcg
Kzg0Niw3IEBAIGJvb2wgVmlkZW9UZXh0dXJlQ29waWVyQ1Y6OmNvcHlJbWFnZVRvUGxhdGZvcm1U
ZXh0dXJlKENWUGl4ZWxCdWZmZXJSZWYgaW1hZ2UsIHNpCiAgICAgcmV0dXJuIHRydWU7CiAjZWxz
ZQogICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZiAvLyBVU0UoSU9TVVJGQUNFKQorI2VuZGlmIC8v
IEhBVkUoSU9TVVJGQUNFKQogfQogCiBib29sIFZpZGVvVGV4dHVyZUNvcGllckNWOjpjb3B5Vmlk
ZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoVGV4dHVyZVR5cGUgaW5wdXRWaWRlb1RleHR1cmUs
IHNpemVfdCB3aWR0aCwgc2l6ZV90IGhlaWdodCwgUGxhdGZvcm0zRE9iamVjdCBvdXRwdXRUZXh0
dXJlLCBHQzNEZW51bSBvdXRwdXRUYXJnZXQsIEdDM0RpbnQgbGV2ZWwsIEdDM0RlbnVtIGludGVy
bmFsRm9ybWF0LCBHQzNEZW51bSBmb3JtYXQsIEdDM0RlbnVtIHR5cGUsIGJvb2wgcHJlbXVsdGlw
bHlBbHBoYSwgYm9vbCBmbGlwWSwgYm9vbCBzd2FwQ29sb3JDaGFubmVscykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvVGV4dHVyZUNvcGllckNW
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1RleHR1cmVDb3Bp
ZXJDVi5oCmluZGV4IGMzNTQxYWFkM2Y4ZDM0MzM3YTc4MDJjN2NhMjFiNThhZGU2NDdhNjEuLjQ3
MmY5ZjE2MTE4ODc5ODlmMDI1Njk4YjA3NWNlMjU4YzYxMzVmOTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvVGV4dHVyZUNvcGllckNWLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVy
Q1YuaApAQCAtNjAsNyArNjAsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgaW5pdGlhbGl6ZUNvbnRl
eHRPYmplY3RzKCk7CiAgICAgYm9vbCBpbml0aWFsaXplVVZDb250ZXh0T2JqZWN0cygpOwogCi0j
aWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKICAgICB1bnNpZ25lZCBsYXN0
VGV4dHVyZVNlZWQoR0MzRHVpbnQgdGV4dHVyZSkKICAgICB7CiAgICAgICAgIGF1dG8gaXRlcmF0
b3IgPSBtX2xhc3RUZXh0dXJlU2VlZC5maW5kKHRleHR1cmUpOwpAQCAtOTAsNyArOTAsNyBAQCBw
cml2YXRlOgogICAgIEdDM0RpbnQgbV95VGV4dHVyZVNpemVVbmlmb3JtTG9jYXRpb24geyAtMSB9
OwogICAgIEdDM0RpbnQgbV91dlRleHR1cmVTaXplVW5pZm9ybUxvY2F0aW9uIHsgLTEgfTsKIAot
I2lmIFVTRShJT1NVUkZBQ0UpCisjaWYgSEFWRShJT1NVUkZBQ0UpCiAgICAgYm9vbCBtX2xhc3RG
bGlwWSB7IGZhbHNlIH07CiAgICAgVW5zYWZlUG9pbnRlcjxJT1N1cmZhY2VSZWY+IG1fbGFzdFN1
cmZhY2U7CiAgICAgdWludDMyX3QgbV9sYXN0U3VyZmFjZVNlZWQgeyAwIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5n
U3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXll
ckJhY2tpbmdTdG9yZS5oCmluZGV4IDI4YTQ5ODA1N2I4ZTQxNzNjYjIzOTBiZmM3NWVhZTdhNWQz
MGE5YzAuLjg4NWIwNmM3ZWFiY2JkMWU1MzZjN2E5MmZiOGMxYTY5MWE0YWVjMmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tp
bmdTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVMYXllckJhY2tpbmdTdG9yZS5oCkBAIC03NSw3ICs3NSw3IEBAIHB1YmxpYzoKIAogICAgIGJv
b2wgaGFzRnJvbnRCdWZmZXIoKSBjb25zdAogICAgIHsKLSNpZiBVU0UoSU9TVVJGQUNFKQorI2lm
IEhBVkUoSU9TVVJGQUNFKQogICAgICAgICBpZiAobV9hY2NlbGVyYXRlc0RyYXdpbmcpCiAgICAg
ICAgICAgICByZXR1cm4gISFtX2Zyb250QnVmZmVyLnN1cmZhY2U7CiAjZW5kaWYKQEAgLTk5LDcg
Kzk5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNsZWFyQmFja2luZ1N0b3JlKCk7CiAgICAgdm9p
ZCBzd2FwVG9WYWxpZEZyb250QnVmZmVyKCk7CiAKLSNpZiBVU0UoSU9TVVJGQUNFKQorI2lmIEhB
VkUoSU9TVVJGQUNFKQogICAgIFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0IHN1cmZhY2VCdWZm
ZXJGb3JtYXQoKSBjb25zdDsKICNlbmRpZgogCkBAIC0xMTUsMTQgKzExNSwxNCBAQCBwcml2YXRl
OgogCiAgICAgc3RydWN0IEJ1ZmZlciB7CiAgICAgICAgIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+
IGJpdG1hcDsKLSNpZiBVU0UoSU9TVVJGQUNFKQorI2lmIEhBVkUoSU9TVVJGQUNFKQogICAgICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPiBzdXJmYWNlOwogICAgICAgICBi
b29sIGlzVm9sYXRpbGUgPSBmYWxzZTsKICNlbmRpZgogCiAgICAgICAgIGV4cGxpY2l0IG9wZXJh
dG9yIGJvb2woKSBjb25zdAogICAgICAgICB7Ci0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZF
KElPU1VSRkFDRSkKICAgICAgICAgICAgIGlmIChzdXJmYWNlKQogICAgICAgICAgICAgICAgIHJl
dHVybiB0cnVlOwogI2VuZGlmCkBAIC0xMzcsNyArMTM3LDcgQEAgcHJpdmF0ZToKIAogICAgIEJ1
ZmZlciBtX2Zyb250QnVmZmVyOwogICAgIEJ1ZmZlciBtX2JhY2tCdWZmZXI7Ci0jaWYgVVNFKElP
U1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKICAgICBCdWZmZXIgbV9zZWNvbmRhcnlCYWNr
QnVmZmVyOwogICAgIFdlYkNvcmU6Ok1hY2hTZW5kUmlnaHQgbV9mcm9udEJ1ZmZlclNlbmRSaWdo
dDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVt
b3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tCmluZGV4IDQwN2Y3NTZhNTUy
ODhkOGMzMjRmNjQ1M2U5OGRjZjZlMzY0N2ZkZTQuLjA0ZWJjZDZjYzQzMjg5MzAyMTYzNzJkMmFh
N2JiNWU5MDdkOGY2YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0KQEAgLTQwLDcg
KzQwLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvV2ViTGF5ZXIuaD4KICNpbXBvcnQgPHBhbC9zcGkv
Y29jb2EvUXVhcnR6Q29yZVNQSS5oPgogCi0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElP
U1VSRkFDRSkKICNpbXBvcnQgPG1hY2gvbWFjaF9wb3J0Lmg+CiAjZW5kaWYKIApAQCAtNzIsNyAr
NzIsNyBAQCBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6flJlbW90ZUxheWVyQmFja2luZ1N0b3Jl
KCkKIAogdm9pZCBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6ZW5zdXJlQmFja2luZ1N0b3JlKEZs
b2F0U2l6ZSBzaXplLCBmbG9hdCBzY2FsZSwgYm9vbCBhY2NlbGVyYXRlc0RyYXdpbmcsIGJvb2wg
ZGVlcENvbG9yLCBib29sIGlzT3BhcXVlKQogewotI2lmICFVU0UoSU9TVVJGQUNFKQorI2lmICFI
QVZFKElPU1VSRkFDRSkKICAgICBhY2NlbGVyYXRlc0RyYXdpbmcgPSBmYWxzZTsKICNlbmRpZgog
ICAgIGlmIChtX3NpemUgPT0gc2l6ZSAmJiBtX3NjYWxlID09IHNjYWxlICYmIG1fZGVlcENvbG9y
ID09IGRlZXBDb2xvciAmJiBtX2FjY2VsZXJhdGVzRHJhd2luZyA9PSBhY2NlbGVyYXRlc0RyYXdp
bmcgJiYgbV9pc09wYXF1ZSA9PSBpc09wYXF1ZSkKQEAgLTk3LDcgKzk3LDcgQEAgdm9pZCBSZW1v
dGVMYXllckJhY2tpbmdTdG9yZTo6Y2xlYXJCYWNraW5nU3RvcmUoKQogewogICAgIG1fZnJvbnRC
dWZmZXIuZGlzY2FyZCgpOwogICAgIG1fYmFja0J1ZmZlci5kaXNjYXJkKCk7Ci0jaWYgVVNFKElP
U1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKICAgICBtX3NlY29uZGFyeUJhY2tCdWZmZXIu
ZGlzY2FyZCgpOwogI2VuZGlmCiB9CkBAIC0xMDksNyArMTA5LDcgQEAgdm9pZCBSZW1vdGVMYXll
ckJhY2tpbmdTdG9yZTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBl
bmNvZGVyIDw8IG1fYWNjZWxlcmF0ZXNEcmF3aW5nOwogICAgIGVuY29kZXIgPDwgbV9pc09wYXF1
ZTsKIAotI2lmIFVTRShJT1NVUkZBQ0UpCisjaWYgSEFWRShJT1NVUkZBQ0UpCiAgICAgaWYgKG1f
YWNjZWxlcmF0ZXNEcmF3aW5nKSB7CiAgICAgICAgIGlmIChtX2Zyb250QnVmZmVyLnN1cmZhY2Up
CiAgICAgICAgICAgICBlbmNvZGVyIDw8IG1fZnJvbnRCdWZmZXIuc3VyZmFjZS0+Y3JlYXRlU2Vu
ZFJpZ2h0KCk7CkBAIC0xNDAsNyArMTQwLDcgQEAgYm9vbCBSZW1vdGVMYXllckJhY2tpbmdTdG9y
ZTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgUmVtb3RlTGF5ZXJCYWNraW5nU3QKICAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX2lzT3BhcXVlKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCi0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKICAgICBp
ZiAocmVzdWx0Lm1fYWNjZWxlcmF0ZXNEcmF3aW5nKSB7CiAgICAgICAgIE1hY2hTZW5kUmlnaHQg
c2VuZFJpZ2h0OwogICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNlbmRSaWdodCkpCkBAIC0x
NzksNyArMTc5LDcgQEAgSW50U2l6ZSBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6YmFja2luZ1N0
b3JlU2l6ZSgpIGNvbnN0CiAKIHVuc2lnbmVkIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpieXRl
c1BlclBpeGVsKCkgY29uc3QKIHsKLSNpZiBVU0UoSU9TVVJGQUNFKQorI2lmIEhBVkUoSU9TVVJG
QUNFKQogICAgIHN3aXRjaCAoc3VyZmFjZUJ1ZmZlckZvcm1hdCgpKSB7CiAgICAgY2FzZSBXZWJD
b3JlOjpJT1N1cmZhY2U6OkZvcm1hdDo6UkdCQTogcmV0dXJuIDQ7CiAgICAgY2FzZSBXZWJDb3Jl
OjpJT1N1cmZhY2U6OkZvcm1hdDo6WVVWNDIyOiByZXR1cm4gMjsKQEAgLTE5NCw3ICsxOTQsNyBA
QCB2b2lkIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpzd2FwVG9WYWxpZEZyb250QnVmZmVyKCkK
IHsKICAgICBJbnRTaXplIGV4cGFuZGVkU2NhbGVkU2l6ZSA9IGJhY2tpbmdTdG9yZVNpemUoKTsK
IAotI2lmIFVTRShJT1NVUkZBQ0UpCisjaWYgSEFWRShJT1NVUkZBQ0UpCiAgICAgaWYgKG1fYWNj
ZWxlcmF0ZXNEcmF3aW5nKSB7CiAgICAgICAgIGlmICghbV9iYWNrQnVmZmVyLnN1cmZhY2UgfHwg
bV9iYWNrQnVmZmVyLnN1cmZhY2UtPmlzSW5Vc2UoKSkgewogICAgICAgICAgICAgc3RkOjpzd2Fw
KG1fYmFja0J1ZmZlciwgbV9zZWNvbmRhcnlCYWNrQnVmZmVyKTsKQEAgLTI1NCw3ICsyNTQsNyBA
QCBib29sIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpkaXNwbGF5KCkKIAogICAgIHN3YXBUb1Zh
bGlkRnJvbnRCdWZmZXIoKTsKIAotI2lmIFVTRShJT1NVUkZBQ0UpCisjaWYgSEFWRShJT1NVUkZB
Q0UpCiAgICAgaWYgKG1fYWNjZWxlcmF0ZXNEcmF3aW5nKSB7CiAgICAgICAgIFJldGFpblB0cjxD
R0ltYWdlUmVmPiBiYWNrSW1hZ2U7CiAgICAgICAgIGlmIChtX2JhY2tCdWZmZXIuc3VyZmFjZSAm
JiAhd2lsbFBhaW50RW50aXJlQmFja2luZ1N0b3JlKQpAQCAtMzk5LDcgKzM5OSw3IEBAIHZvaWQg
UmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmFwcGx5QmFja2luZ1N0b3JlVG9MYXllcihDQUxheWVy
ICpsYXllciwgTGF5ZXJDb250CiB7CiAgICAgbGF5ZXIuY29udGVudHNPcGFxdWUgPSBtX2lzT3Bh
cXVlOwogCi0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKICAgICBpZiAo
YWNjZWxlcmF0ZXNEcmF3aW5nKCkpIHsKICAgICAgICAgc3dpdGNoIChjb250ZW50c1R5cGUpIHsK
ICAgICAgICAgY2FzZSBMYXllckNvbnRlbnRzVHlwZTo6SU9TdXJmYWNlOgpAQCAtNDI3LDcgKzQy
Nyw3IEBAIFJldGFpblB0cjxDR0NvbnRleHRSZWY+IFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjp0
YWtlRnJvbnRDb250ZXh0UGVuZGluZ0ZsdXNoKCkKICAgICByZXR1cm4gV1RGTW92ZShtX2Zyb250
Q29udGV4dFBlbmRpbmdGbHVzaCk7CiB9CiAKLSNpZiBVU0UoSU9TVVJGQUNFKQorI2lmIEhBVkUo
SU9TVVJGQUNFKQogYm9vbCBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6c2V0QnVmZmVyVm9sYXRp
bGl0eShCdWZmZXJUeXBlIHR5cGUsIGJvb2wgaXNWb2xhdGlsZSkKIHsKICAgICBzd2l0Y2ggKHR5
cGUpIHsKQEAgLTQ4MCw3ICs0ODAsNyBAQCBib29sIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpz
ZXRCdWZmZXJWb2xhdGlsaXR5KEJ1ZmZlclR5cGUsIGJvb2wpCiAKIHZvaWQgUmVtb3RlTGF5ZXJC
YWNraW5nU3RvcmU6OkJ1ZmZlcjo6ZGlzY2FyZCgpCiB7Ci0jaWYgVVNFKElPU1VSRkFDRSkKKyNp
ZiBIQVZFKElPU1VSRkFDRSkKICAgICBpZiAoc3VyZmFjZSkKICAgICAgICAgV2ViQ29yZTo6SU9T
dXJmYWNlOjptb3ZlVG9Qb29sKFdURk1vdmUoc3VyZmFjZSkpOwogICAgIGlzVm9sYXRpbGUgPSBm
YWxzZTsKQEAgLTQ4OCw3ICs0ODgsNyBAQCB2b2lkIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpC
dWZmZXI6OmRpc2NhcmQoKQogICAgIGJpdG1hcCA9IG51bGxwdHI7CiB9CiAKLSNpZiBVU0UoSU9T
VVJGQUNFKQorI2lmIEhBVkUoSU9TVVJGQUNFKQogV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3JtYXQg
UmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OnN1cmZhY2VCdWZmZXJGb3JtYXQoKSBjb25zdAogewog
ICAgIGlmIChtX2RlZXBDb2xvcikKQEAgLTQ5Niw2ICs0OTYsNiBAQCBXZWJDb3JlOjpJT1N1cmZh
Y2U6OkZvcm1hdCBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6c3VyZmFjZUJ1ZmZlckZvcm1hdCgp
IGNvbnN0CiAKICAgICByZXR1cm4gV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3JtYXQ6OlJHQkE7CiB9
Ci0jZW5kaWYgLy8gVVNFKElPU1VSRkFDRSkKKyNlbmRpZiAvLyBIQVZFKElPU1VSRkFDRSkKIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9j
Zy9TaGFyZWFibGVCaXRtYXBDRy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jZy9TaGFyZWFi
bGVCaXRtYXBDRy5jcHAKaW5kZXggMzgwNjIxNzc2ZDcxOWI4YTQwYTlkMmVkNmFlMGE0NjVkNjgz
MDNmZi4uNDFiMmZlYTMyYjE1M2YzYmY0ZmVmNjU5MmUyOWUyMzU0MmU2NTQ1ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvY2cvU2hhcmVhYmxlQml0bWFwQ0cuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL2NnL1NoYXJlYWJsZUJpdG1hcENHLmNwcApAQCAtNzMsNyArNzMs
NyBAQCBzdGF0aWMgQ0dCaXRtYXBJbmZvIGJpdG1hcEluZm8oY29uc3QgU2hhcmVhYmxlQml0bWFw
OjpDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aQogQ2hlY2tlZDx1bnNpZ25lZCwgUmVjb3JkT3Zl
cmZsb3c+IFNoYXJlYWJsZUJpdG1hcDo6Y2FsY3VsYXRlQnl0ZXNQZXJSb3coV2ViQ29yZTo6SW50
U2l6ZSBzaXplLCBjb25zdCBDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKQogewogICAgIHVu
c2lnbmVkIGJ5dGVzUGVyUm93ID0gY2FsY3VsYXRlQnl0ZXNQZXJQaXhlbChjb25maWd1cmF0aW9u
KSAqIHNpemUud2lkdGgoKTsKLSNpZiBVU0UoSU9TVVJGQUNFKQorI2lmIEhBVkUoSU9TVVJGQUNF
KQogICAgIHJldHVybiBJT1N1cmZhY2VBbGlnblByb3BlcnR5KGtJT1N1cmZhY2VCeXRlc1BlclJv
dywgYnl0ZXNQZXJSb3cpOwogI2Vsc2UKICAgICByZXR1cm4gYnl0ZXNQZXJSb3c7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCAyMGU0Y2Y0
OWQyNDhjNjFmZjY1MTI1ZmNhZDMwMmZhNmUyNzMzMzZjLi44YzE1M2RiMjVjODVkNTM3ZDg1MGM2
MjFkNjhlOGFmODE5MzRhZjQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0KQEAgLTE4NzEsMTMgKzE4NzEsMTQgQEAgLSAoUmVmUHRyPFdlYktp
dDo6Vmlld1NuYXBzaG90PilfdGFrZVZpZXdTbmFwc2hvdAogCiAgICAgQ0FUcmFuc2Zvcm0zRCB0
cmFuc2Zvcm0gPSBDQVRyYW5zZm9ybTNETWFrZVNjYWxlKGRldmljZVNjYWxlLCBkZXZpY2VTY2Fs
ZSwgMSk7CiAKLSNpZiBVU0UoSU9TVVJGQUNFKQorI2lmIEhBVkUoSU9TVVJGQUNFKQogICAgIFdl
YkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0IHNuYXBzaG90Rm9ybWF0ID0gV2ViQ29yZTo6c2NyZWVu
U3VwcG9ydHNFeHRlbmRlZENvbG9yKCkgPyBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdDo6UkdC
MTAgOiBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdDo6UkdCQTsKICAgICBhdXRvIHN1cmZhY2Ug
PSBXZWJDb3JlOjpJT1N1cmZhY2U6OmNyZWF0ZShXZWJDb3JlOjpleHBhbmRlZEludFNpemUoc25h
cHNob3RTaXplKSwgV2ViQ29yZTo6c1JHQkNvbG9yU3BhY2VSZWYoKSwgc25hcHNob3RGb3JtYXQp
OwogICAgIGlmICghc3VyZmFjZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgQ0FSZW5k
ZXJTZXJ2ZXJSZW5kZXJMYXllcldpdGhUcmFuc2Zvcm0oTUFDSF9QT1JUX05VTEwsIHNlbGYubGF5
ZXIuY29udGV4dC5jb250ZXh0SWQsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3Q+KHNlbGYubGF5
ZXIpLCBzdXJmYWNlLT5zdXJmYWNlKCksIDAsIDAsICZ0cmFuc2Zvcm0pOwogCisjaWYgSEFWRShJ
T1NVUkZBQ0VfQUNDRUxFUkFUT1IpCiAgICAgV2ViQ29yZTo6SU9TdXJmYWNlOjpGb3JtYXQgY29t
cHJlc3NlZEZvcm1hdCA9IFdlYkNvcmU6OklPU3VyZmFjZTo6Rm9ybWF0OjpZVVY0MjI7CiAgICAg
aWYgKFdlYkNvcmU6OklPU3VyZmFjZTo6YWxsb3dDb252ZXJzaW9uRnJvbUZvcm1hdFRvRm9ybWF0
KHNuYXBzaG90Rm9ybWF0LCBjb21wcmVzc2VkRm9ybWF0KSkgewogICAgICAgICBSZWZQdHI8V2Vi
S2l0OjpWaWV3U25hcHNob3Q+IHZpZXdTbmFwc2hvdCA9IFdlYktpdDo6Vmlld1NuYXBzaG90Ojpj
cmVhdGUobnVsbHB0cik7CkBAIC0xODg4LDkgKzE4ODksMTAgQEAgLSAoUmVmUHRyPFdlYktpdDo6
Vmlld1NuYXBzaG90PilfdGFrZVZpZXdTbmFwc2hvdAogCiAgICAgICAgIHJldHVybiB2aWV3U25h
cHNob3Q7CiAgICAgfQorI2VuZGlmIC8vIEhBVkUoSU9TVVJGQUNFX0FDQ0VMRVJBVE9SKQogCiAg
ICAgcmV0dXJuIFdlYktpdDo6Vmlld1NuYXBzaG90OjpjcmVhdGUoV1RGTW92ZShzdXJmYWNlKSk7
Ci0jZWxzZQorI2Vsc2UgLy8gSEFWRShJT1NVUkZBQ0UpCiAgICAgdWludDMyX3Qgc2xvdElEID0g
W1dlYktpdDo6Vmlld1NuYXBzaG90U3RvcmU6OnNuYXBzaG90dGluZ0NvbnRleHQoKSBjcmVhdGVJ
bWFnZVNsb3Q6c25hcHNob3RTaXplIGhhc0FscGhhOllFU107CiAKICAgICBpZiAoIXNsb3RJRCkK
QEAgLTE4OTksNyArMTkwMSw3IEBAIC0gKFJlZlB0cjxXZWJLaXQ6OlZpZXdTbmFwc2hvdD4pX3Rh
a2VWaWV3U25hcHNob3QKICAgICBDQVJlbmRlclNlcnZlckNhcHR1cmVMYXllcldpdGhUcmFuc2Zv
cm0oTUFDSF9QT1JUX05VTEwsIHNlbGYubGF5ZXIuY29udGV4dC5jb250ZXh0SWQsICh1aW50NjRf
dClzZWxmLmxheWVyLCBzbG90SUQsIDAsIDAsICZ0cmFuc2Zvcm0pOwogICAgIFdlYkNvcmU6Oklu
dFNpemUgaW1hZ2VTaXplID0gV2ViQ29yZTo6ZXhwYW5kZWRJbnRTaXplKFdlYkNvcmU6OkZsb2F0
U2l6ZShzbmFwc2hvdFNpemUpKTsKICAgICByZXR1cm4gV2ViS2l0OjpWaWV3U25hcHNob3Q6OmNy
ZWF0ZShzbG90SUQsIGltYWdlU2l6ZSwgKGltYWdlU2l6ZS5hcmVhKCkgKiA0KS51bnNhZmVHZXQo
KSk7Ci0jZW5kaWYKKyNlbmRpZiAvLyBIQVZFKElPU1VSRkFDRSkKIH0KIAogLSAodm9pZClfem9v
bVRvUG9pbnQ6KFdlYkNvcmU6OkZsb2F0UG9pbnQpcG9pbnQgYXRTY2FsZTooZG91YmxlKXNjYWxl
IGFuaW1hdGVkOihCT09MKWFuaW1hdGVkCkBAIC01MjYxLDcgKzUyNjMsNyBAQCAtICh2b2lkKV9z
bmFwc2hvdFJlY3Q6KENHUmVjdClyZWN0SW5WaWV3Q29vcmRpbmF0ZXMgaW50b0ltYWdlT2ZXaWR0
aDooQ0dGbG9hdClpbQogICAgIENHRmxvYXQgaW1hZ2VIZWlnaHQgPSBpbWFnZVNjYWxlICogc25h
cHNob3RSZWN0SW5Db250ZW50Q29vcmRpbmF0ZXMuc2l6ZS5oZWlnaHQ7CiAgICAgQ0dTaXplIGlt
YWdlU2l6ZSA9IENHU2l6ZU1ha2UoaW1hZ2VXaWR0aCwgaW1hZ2VIZWlnaHQpOwogCi0jaWYgVVNF
KElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKICAgICAvLyBJZiB3ZSBhcmUgcGFyZW50
ZWQgYW5kIHRodXMgd29uJ3QgaW5jdXIgYSBzaWduaWZpY2FudCBwZW5hbHR5IGZyb20gcGFnaW5n
IGluIHRpbGVzLCBzbmFwc2hvdCB0aGUgdmlldyBoaWVyYXJjaHkgZGlyZWN0bHkuCiAjcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRy
ZWVEcmF3aW5nQXJlYVByb3h5Lm1tCmluZGV4IGUyM2M5ZWUyZjRiMWMxNGExYzA4MDM2NjBmZGFh
MTQ4MTgwMjMwYzguLjgwOTM2Nzc1OWIwY2MxMGYyOGFkM2U3OGJlN2UxN2U5ODBkZDM0MzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVM
YXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCkBAIC0x
MTAsNyArMTEwLDcgQEAgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6UmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWFQcm94eShXZWJQYWdlUHJveHkmIHcKICAgICA6IERyYXdpbmdBcmVh
UHJveHkoRHJhd2luZ0FyZWFUeXBlUmVtb3RlTGF5ZXJUcmVlLCB3ZWJQYWdlUHJveHkpCiAgICAg
LCBtX3JlbW90ZUxheWVyVHJlZUhvc3QoKnRoaXMpCiB7Ci0jaWYgVVNFKElPU1VSRkFDRSkKKyNp
ZiBIQVZFKElPU1VSRkFDRSkKICAgICAvLyBXZSBkb24ndCB3YW50IHRvIHBvb2wgc3VyZmFjZXMg
aW4gdGhlIFVJIHByb2Nlc3MuCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBkbyB0aGlzIHNvbWV3
aGVyZSBlbHNlLgogICAgIElPU3VyZmFjZVBvb2w6OnNoYXJlZFBvb2woKS5zZXRQb29sU2l6ZSgw
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVMYXllclRyZWVIb3N0Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5
ZXJUcmVlL1JlbW90ZUxheWVyVHJlZUhvc3QubW0KaW5kZXggYzg3ZDc1MmM3MTY2NWFhZDZkNDUy
NDQ5YjU2M2IxNDlmZjc4NzU2Mi4uOWRmMWRjZmIyMTljYWI3ZTRiMTE4NDc4Nzg0M2M1OThiMTA1
NmM5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVl
L1JlbW90ZUxheWVyVHJlZUhvc3QubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVt
b3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZUhvc3QubW0KQEAgLTI4OSw3ICsyODksNyBAQCB2
b2lkIFJlbW90ZUxheWVyVHJlZUhvc3Q6OmRldGFjaFJvb3RMYXllcigpCiAgICAgbV9yb290TGF5
ZXIgPSBudWxscHRyOwogfQogCi0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFD
RSkKIHN0YXRpYyB2b2lkIHJlY3Vyc2l2ZWx5TWFwSU9TdXJmYWNlQmFja2luZ1N0b3JlKENBTGF5
ZXIgKmxheWVyKQogewogICAgIGlmIChsYXllci5jb250ZW50cyAmJiBDRkdldFR5cGVJRChsYXll
ci5jb250ZW50cykgPT0gQ0FNYWNoUG9ydEdldFR5cGVJRCgpKSB7CkBAIC0zMDUsNyArMzA1LDcg
QEAgc3RhdGljIHZvaWQgcmVjdXJzaXZlbHlNYXBJT1N1cmZhY2VCYWNraW5nU3RvcmUoQ0FMYXll
ciAqbGF5ZXIpCiAKIHZvaWQgUmVtb3RlTGF5ZXJUcmVlSG9zdDo6bWFwQWxsSU9TdXJmYWNlQmFj
a2luZ1N0b3JlKCkKIHsKLSNpZiBVU0UoSU9TVVJGQUNFKQorI2lmIEhBVkUoSU9TVVJGQUNFKQog
ICAgIHJlY3Vyc2l2ZWx5TWFwSU9TdXJmYWNlQmFja2luZ1N0b3JlKGFzTGF5ZXIobV9yb290TGF5
ZXIpKTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1ZpZXdTbmFwc2hvdFN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVmlld1Nu
YXBzaG90U3RvcmUuaAppbmRleCA3MGI1ODc5YWIyZjNhOWRlZjg2NWYzOTVkMDk1OGM2NmZjZTVm
MjM1Li5hZmVkMzMyMzhjYzg2NTEwZGMyNTcwZjBmNTNmZTIxZDIyNDVmNzdkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVmlld1NuYXBzaG90U3RvcmUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVmlld1NuYXBzaG90U3RvcmUuaApAQCAtNTMsNyAr
NTMsNyBAQCBjbGFzcyBXZWJQYWdlUHJveHk7CiAKIGNsYXNzIFZpZXdTbmFwc2hvdCA6IHB1Ymxp
YyBSZWZDb3VudGVkPFZpZXdTbmFwc2hvdD4gewogcHVibGljOgotI2lmIFVTRShJT1NVUkZBQ0Up
CisjaWYgSEFWRShJT1NVUkZBQ0UpCiAgICAgc3RhdGljIFJlZjxWaWV3U25hcHNob3Q+IGNyZWF0
ZShzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPik7CiAjZWxzZQogICAgIHN0YXRp
YyBSZWY8Vmlld1NuYXBzaG90PiBjcmVhdGUodWludDMyX3Qgc2xvdElELCBXZWJDb3JlOjpJbnRT
aXplLCBzaXplX3QgaW1hZ2VTaXplSW5CeXRlcyk7CkBAIC03OCw3ICs3OCw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldERldmljZVNjYWxlRmFjdG9yKGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKSB7
IG1fZGV2aWNlU2NhbGVGYWN0b3IgPSBkZXZpY2VTY2FsZUZhY3RvcjsgfQogICAgIGZsb2F0IGRl
dmljZVNjYWxlRmFjdG9yKCkgY29uc3QgeyByZXR1cm4gbV9kZXZpY2VTY2FsZUZhY3RvcjsgfQog
Ci0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKICAgICBXZWJDb3JlOjpJ
T1N1cmZhY2UqIHN1cmZhY2UoKSBjb25zdCB7IHJldHVybiBtX3N1cmZhY2UuZ2V0KCk7IH0KIAog
ICAgIHNpemVfdCBpbWFnZVNpemVJbkJ5dGVzKCkgY29uc3QgeyByZXR1cm4gbV9zdXJmYWNlID8g
bV9zdXJmYWNlLT50b3RhbEJ5dGVzKCkgOiAwOyB9CkBAIC05Myw3ICs5Myw3IEBAIHB1YmxpYzoK
ICNlbmRpZgogCiBwcml2YXRlOgotI2lmIFVTRShJT1NVUkZBQ0UpCisjaWYgSEFWRShJT1NVUkZB
Q0UpCiAgICAgZXhwbGljaXQgVmlld1NuYXBzaG90KHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJ
T1N1cmZhY2U+KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJT1N1cmZhY2U+IG1f
c3VyZmFjZTsKQEAgLTEyNyw3ICsxMjcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXREaXNhYmxl
U25hcHNob3RWb2xhdGlsaXR5Rm9yVGVzdGluZyhib29sIGRpc2FibGUpIHsgbV9kaXNhYmxlU25h
cHNob3RWb2xhdGlsaXR5ID0gZGlzYWJsZTsgfQogICAgIGJvb2wgZGlzYWJsZVNuYXBzaG90Vm9s
YXRpbGl0eUZvclRlc3RpbmcoKSBjb25zdCB7IHJldHVybiBtX2Rpc2FibGVTbmFwc2hvdFZvbGF0
aWxpdHk7IH0KIAotI2lmICFVU0UoSU9TVVJGQUNFKQorI2lmICFIQVZFKElPU1VSRkFDRSkKICAg
ICBzdGF0aWMgQ0FDb250ZXh0ICpzbmFwc2hvdHRpbmdDb250ZXh0KCk7CiAjZW5kaWYKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1ZpZXdTbmFwc2hvdFN0b3JlLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1ZpZXdTbmFwc2hvdFN0b3JlLm1tCmluZGV4
IGFlZjdjMzM2MjIxMWIxOGVkY2U4NTIxMzY1N2I5YTUxMzdlNmJlMTEuLjg2ZGFlNWY3MTg1YTI3
N2E5OWE0MzQ2MTg4NjA2MGIxZTRhOWJjNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL21hYy9WaWV3U25hcHNob3RTdG9yZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9tYWMvVmlld1NuYXBzaG90U3RvcmUubW0KQEAgLTYwLDcgKzYwLDcgQEAgVmlld1NuYXBz
aG90U3RvcmUmIFZpZXdTbmFwc2hvdFN0b3JlOjpzaW5nbGV0b24oKQogICAgIHJldHVybiBzdG9y
ZTsKIH0KIAotI2lmICFVU0UoSU9TVVJGQUNFKQorI2lmICFIQVZFKElPU1VSRkFDRSkKIENBQ29u
dGV4dCAqVmlld1NuYXBzaG90U3RvcmU6OnNuYXBzaG90dGluZ0NvbnRleHQoKQogewogICAgIHN0
YXRpYyBDQUNvbnRleHQgKmNvbnRleHQ7CkBAIC0xMzEsNyArMTMxLDcgQEAgdm9pZCBWaWV3U25h
cHNob3RTdG9yZTo6ZGlzY2FyZFNuYXBzaG90SW1hZ2VzKCkKICAgICAgICAgbV9zbmFwc2hvdHNX
aXRoSW1hZ2VzLmZpcnN0KCktPmNsZWFySW1hZ2UoKTsKIH0KIAotI2lmIFVTRShJT1NVUkZBQ0Up
CisjaWYgSEFWRShJT1NVUkZBQ0UpCiBSZWY8Vmlld1NuYXBzaG90PiBWaWV3U25hcHNob3Q6OmNy
ZWF0ZShzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPiBzdXJmYWNlKQogewogICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFZpZXdTbmFwc2hvdChXVEZNb3ZlKHN1cmZhY2UpKSk7CkBA
IC0xNDMsNyArMTQzLDcgQEAgUmVmPFZpZXdTbmFwc2hvdD4gVmlld1NuYXBzaG90OjpjcmVhdGUo
dWludDMyX3Qgc2xvdElELCBJbnRTaXplIHNpemUsIHNpemVfdCBpbWEKIH0KICNlbmRpZgogCi0j
aWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKIFZpZXdTbmFwc2hvdDo6Vmll
d1NuYXBzaG90KHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJT1N1cmZhY2U+IHN1cmZhY2UpCiAg
ICAgOiBtX3N1cmZhY2UoV1RGTW92ZShzdXJmYWNlKSkKICNlbHNlCkBAIC0xNjIsNyArMTYyLDcg
QEAgVmlld1NuYXBzaG90Ojp+Vmlld1NuYXBzaG90KCkKICAgICBjbGVhckltYWdlKCk7CiB9CiAK
LSNpZiBVU0UoSU9TVVJGQUNFKQorI2lmIEhBVkUoSU9TVVJGQUNFKQogdm9pZCBWaWV3U25hcHNo
b3Q6OnNldFN1cmZhY2Uoc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3VyZmFjZT4gc3VyZmFj
ZSkKIHsKICAgICBBU1NFUlQoIW1fc3VyZmFjZSk7CkBAIC0xNzgsNyArMTc4LDcgQEAgdm9pZCBW
aWV3U25hcHNob3Q6OnNldFN1cmZhY2Uoc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3VyZmFj
ZT4gc3VyZmFjZSkKIAogYm9vbCBWaWV3U25hcHNob3Q6Omhhc0ltYWdlKCkgY29uc3QKIHsKLSNp
ZiBVU0UoSU9TVVJGQUNFKQorI2lmIEhBVkUoSU9TVVJGQUNFKQogICAgIHJldHVybiAhIW1fc3Vy
ZmFjZTsKICNlbHNlCiAgICAgcmV0dXJuIG1fc2xvdElEOwpAQCAtMTkyLDcgKzE5Miw3IEBAIHZv
aWQgVmlld1NuYXBzaG90OjpjbGVhckltYWdlKCkKIAogICAgIFZpZXdTbmFwc2hvdFN0b3JlOjpz
aW5nbGV0b24oKS53aWxsUmVtb3ZlSW1hZ2VGcm9tU25hcHNob3QoKnRoaXMpOwogCi0jaWYgVVNF
KElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKICAgICBtX3N1cmZhY2UgPSBudWxscHRy
OwogI2Vsc2UKICAgICBbVmlld1NuYXBzaG90U3RvcmU6OnNuYXBzaG90dGluZ0NvbnRleHQoKSBk
ZWxldGVTbG90Om1fc2xvdElEXTsKQEAgLTIwMSw3ICsyMDEsNyBAQCB2b2lkIFZpZXdTbmFwc2hv
dDo6Y2xlYXJJbWFnZSgpCiAjZW5kaWYKIH0KIAotI2lmIFVTRShJT1NVUkZBQ0UpCisjaWYgSEFW
RShJT1NVUkZBQ0UpCiBXZWJDb3JlOjpJT1N1cmZhY2U6OlN1cmZhY2VTdGF0ZSBWaWV3U25hcHNo
b3Q6OnNldFZvbGF0aWxlKGJvb2wgYmVjb21lVm9sYXRpbGUpCiB7CiAgICAgaWYgKFZpZXdTbmFw
c2hvdFN0b3JlOjpzaW5nbGV0b24oKS5kaXNhYmxlU25hcHNob3RWb2xhdGlsaXR5Rm9yVGVzdGlu
ZygpKQpAQCAtMjE2LDcgKzIxNiw3IEBAIFdlYkNvcmU6OklPU3VyZmFjZTo6U3VyZmFjZVN0YXRl
IFZpZXdTbmFwc2hvdDo6c2V0Vm9sYXRpbGUoYm9vbCBiZWNvbWVWb2xhdGlsZSkKIAogaWQgVmll
d1NuYXBzaG90Ojphc0xheWVyQ29udGVudHMoKQogewotI2lmIFVTRShJT1NVUkZBQ0UpCisjaWYg
SEFWRShJT1NVUkZBQ0UpCiAgICAgaWYgKCFtX3N1cmZhY2UpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogCkBAIC0yMzMsNyArMjMzLDcgQEAgaWQgVmlld1NuYXBzaG90Ojphc0xheWVyQ29udGVu
dHMoKQogCiBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gVmlld1NuYXBzaG90Ojphc0ltYWdlRm9yVGVz
dGluZygpCiB7Ci0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKICAgICBp
ZiAoIW1fc3VyZmFjZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBmMWUxMTkzOTg0MzNmYWZkMzlj
ZDhkZjc2NDY1ZmM4M2MxYzBhOTUxLi41MzM1ODJlMzI4ODI3NTQ2MWVjNjZlYWFkMjVlNjgyNzgx
M2E0ZGE2IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTYgQEAKKzIwMTgtMDItMjAgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRv
bkBhcHBsZS5jb20+CisKKyAgICAgICAgSW50cm9kdWNlIEhBVkUoSU9TVVJGQUNFX0FDQ0VMRVJB
VE9SKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgy
OTU1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNzY5OTUxMD4KKworICAgICAgICBSZXZpZXdl
ZCBieSBTYW0gV2VpbmlnLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvaW9zL1BpeGVsRHVt
cFN1cHBvcnRJT1MubW06CisgICAgICAgIChjcmVhdGVCaXRtYXBDb250ZXh0RnJvbVdlYlZpZXcp
OgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvaW9zL1BsYXRmb3JtV2ViVmlld0lPUy5tbToK
KyAgICAgICAgKFdUUjo6UGxhdGZvcm1XZWJWaWV3Ojp3aW5kb3dTbmFwc2hvdEltYWdlKToKKwog
MjAxOC0wMi0yMCAgTmFuIFdhbmcgIDxuX3dhbmdAYXBwbGUuY29tPgogCiAgICAgICAgIEFYOiBB
T006IERpc3BhdGNoIGFjY2Vzc2libGVjbGljayBldmVudApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvaW9zL1BpeGVsRHVtcFN1cHBvcnRJT1MubW0gYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9pb3MvUGl4ZWxEdW1wU3VwcG9ydElPUy5tbQppbmRleCA0OGY3Y2NlNGNmMjFjODNjNjQx
OWYyNzI4ZWIxOWU2ZGVkMWNlY2RkLi41ZTFhMjQzZTg2YzA0OWZkM2Y3NmYwOGJhMzdiYTlkM2Y2
YTE0NTVkIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9pb3MvUGl4ZWxEdW1wU3Vw
cG9ydElPUy5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9pb3MvUGl4ZWxEdW1wU3VwcG9y
dElPUy5tbQpAQCAtNjYsNyArNjYsNyBAQCBSZWZQdHI8Qml0bWFwQ29udGV4dD4gY3JlYXRlQml0
bWFwQ29udGV4dEZyb21XZWJWaWV3KGJvb2wgb25zY3JlZW4sIGJvb2wgaW5jcmVtZQogICAgIGlu
dCBidWZmZXJXaWR0aCA9IGNlaWwodmlld1NpemUud2lkdGggKiBkZXZpY2VTY2FsZUZhY3Rvcik7
CiAgICAgaW50IGJ1ZmZlckhlaWdodCA9IGNlaWwodmlld1NpemUuaGVpZ2h0ICogZGV2aWNlU2Nh
bGVGYWN0b3IpOwogCi0jaWYgVVNFKElPU1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKICAg
ICBXZWJDb3JlOjpGbG9hdFNpemUgc25hcHNob3RTaXplKHZpZXdTaXplKTsKICAgICBzbmFwc2hv
dFNpemUuc2NhbGUoZGV2aWNlU2NhbGVGYWN0b3IpOwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL2lvcy9QbGF0Zm9ybVdlYlZpZXdJT1MubW0gYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL2lvcy9QbGF0Zm9ybVdlYlZpZXdJT1MubW0KaW5kZXggMjQ3MmIzZTM1OWRjN2YzYTIw
ZWQyNDI3ZGY1ODkwNTlkNzMxZThiNC4uZTg1MjI5MmRlMmUwMjAxMzk2NDMyMmY4ZmFjNWQ0NDc5
OTI0ZjhjZCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvUGxhdGZvcm1X
ZWJWaWV3SU9TLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1BsYXRmb3JtV2Vi
Vmlld0lPUy5tbQpAQCAtMjk0LDcgKzI5NCw3IEBAIHZvaWQgUGxhdGZvcm1XZWJWaWV3OjpjaGFu
Z2VXaW5kb3dTY2FsZUlmTmVlZGVkKGZsb2F0KQogICAgIC8vIFJldGluYSBvbmx5IHN1cmZhY2Uu
CiB9CiAKLSNpZiAhVVNFKElPU1VSRkFDRSkKKyNpZiAhSEFWRShJT1NVUkZBQ0UpCiBzdGF0aWMg
dm9pZCByZWxlYXNlRGF0YVByb3ZpZGVyRGF0YSh2b2lkKiBpbmZvLCBjb25zdCB2b2lkKiwgc2l6
ZV90KQogewogICAgIENBUmVuZGVyU2VydmVyRGVzdHJveUJ1ZmZlcihzdGF0aWNfY2FzdDxDQVJl
bmRlclNlcnZlckJ1ZmZlclJlZj4oaW5mbykpOwpAQCAtMzA0LDcgKzMwNCw3IEBAIHN0YXRpYyB2
b2lkIHJlbGVhc2VEYXRhUHJvdmlkZXJEYXRhKHZvaWQqIGluZm8sIGNvbnN0IHZvaWQqLCBzaXpl
X3QpCiBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gUGxhdGZvcm1XZWJWaWV3Ojp3aW5kb3dTbmFwc2hv
dEltYWdlKCkKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7Ci0jaWYgVVNFKElP
U1VSRkFDRSkKKyNpZiBIQVZFKElPU1VSRkFDRSkKICAgICBfX2Jsb2NrIGJvb2wgaXNEb25lID0g
ZmFsc2U7CiAgICAgX19ibG9jayBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gcmVzdWx0OwogICAgIApk
aWZmIC0tZ2l0IGEvV2ViS2l0TGlicmFyaWVzL0NoYW5nZUxvZyBiL1dlYktpdExpYnJhcmllcy9D
aGFuZ2VMb2cKaW5kZXggMzA2OTRkZjc3YjU4ZjdkNjYyMDQxYzAzODliOGZjZWIzZWJmMDMwOS4u
ZGI3NTc1MzQwNjZhMmE1Y2RkOGFhYjYxYzE4NDY4MzdjZDNhNGI0MSAxMDA2NDQKLS0tIGEvV2Vi
S2l0TGlicmFyaWVzL0NoYW5nZUxvZworKysgYi9XZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMTgtMDItMjAgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBh
cHBsZS5jb20+CisKKyAgICAgICAgSW50cm9kdWNlIEhBVkUoSU9TVVJGQUNFX0FDQ0VMRVJBVE9S
KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgyOTU1
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNzY5OTUxMD4KKworICAgICAgICBSZXZpZXdlZCBi
eSBTYW0gV2VpbmlnLgorCisgICAgICAgICogV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2lP
Uy8xMC9JT1N1cmZhY2UuZnJhbWV3b3JrL0lPU3VyZmFjZS50YmQ6CisgICAgICAgICogV2ViS2l0
UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2lPUy8xMC9JT1N1cmZhY2VBY2NlbGVyYXRvci5mcmFtZXdv
cmsvSU9TdXJmYWNlQWNjZWxlcmF0b3IudGJkOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXRQcml2
YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzExL0lPU3VyZmFjZUFjY2VsZXJhdG9yLmZyYW1ld29yay9J
T1N1cmZhY2VBY2NlbGVyYXRvci50YmQ6IEFkZGVkLgorICAgICAgICBTd2l0Y2ggSU9TdXJmYWNl
QWNjZWxlcmF0b3Igc3ltYm9scyBvdmVyIHRvIHRoZSBzdGlsbC1wcml2YXRlIElPU3VyZmFjZUFj
Y2VsZXJhdG9yIGZyYW1ld29yay4KKwogMjAxOC0wMS0xOSAgUnlhbiBIYWRkYWQgIDxyeWFuaGFk
ZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjI3MjEx
LgpkaWZmIC0tZ2l0IGEvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVi
cy9pT1MvMTAvSU9TdXJmYWNlLmZyYW1ld29yay9JT1N1cmZhY2UudGJkIGIvV2ViS2l0TGlicmFy
aWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9pT1MvMTAvSU9TdXJmYWNlLmZyYW1ld29y
ay9JT1N1cmZhY2UudGJkCmluZGV4IDU3YjliOTdiYjhhZGMzNTY3NDdjMmJlZTJiNzAyMTUyNmMy
ZGQ0NDguLmM3YmZmNGYxNzE3NTM3ZTQxMjEyMGRiNGI1ZmVhNDFiNjBkOTcwNzEgMTAwNjQ0Ci0t
LSBhL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzEwL0lP
U3VyZmFjZS5mcmFtZXdvcmsvSU9TdXJmYWNlLnRiZAorKysgYi9XZWJLaXRMaWJyYXJpZXMvV2Vi
S2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2lPUy8xMC9JT1N1cmZhY2UuZnJhbWV3b3JrL0lPU3Vy
ZmFjZS50YmQKQEAgLTE0LDkgKzE0LDYgQEAgZXhwb3J0czoKICAgICAgIC0gaTM4NgogICAgICAg
LSB4ODZfNjQKICAgICBzeW1ib2xzOgotICAgICAgLSBfSU9TdXJmYWNlQWNjZWxlcmF0b3JDcmVh
dGUKLSAgICAgIC0gX0lPU3VyZmFjZUFjY2VsZXJhdG9yR2V0UnVuTG9vcFNvdXJjZQotICAgICAg
LSBfSU9TdXJmYWNlQWNjZWxlcmF0b3JUcmFuc2Zvcm1TdXJmYWNlCiAgICAgICAtIF9JT1N1cmZh
Y2VBbGlnblByb3BlcnR5CiAgICAgICAtIF9JT1N1cmZhY2VDcmVhdGUKICAgICAgIC0gX0lPU3Vy
ZmFjZUNyZWF0ZU1hY2hQb3J0CmRpZmYgLS1naXQgYS9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJp
dmF0ZUZyYW1ld29ya1N0dWJzL2lPUy8xMC9JT1N1cmZhY2VBY2NlbGVyYXRvci5mcmFtZXdvcmsv
SU9TdXJmYWNlQWNjZWxlcmF0b3IudGJkIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVG
cmFtZXdvcmtTdHVicy9pT1MvMTAvSU9TdXJmYWNlQWNjZWxlcmF0b3IuZnJhbWV3b3JrL0lPU3Vy
ZmFjZUFjY2VsZXJhdG9yLnRiZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yM2QzYmNlZDU1MzkzZjU2YmIyODg1M2U2
NWRmODZjMTExNzk1MGNiCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0TGlicmFyaWVzL1dlYktp
dFByaXZhdGVGcmFtZXdvcmtTdHVicy9pT1MvMTAvSU9TdXJmYWNlQWNjZWxlcmF0b3IuZnJhbWV3
b3JrL0lPU3VyZmFjZUFjY2VsZXJhdG9yLnRiZApAQCAtMCwwICsxLDI0IEBACistLS0gIXRhcGkt
dGJkLXYyCithcmNoczoKKyAgLSBhcm12NworICAtIGFybXY3cworICAtIGFybTY0CisgIC0gaTM4
NgorICAtIHg4Nl82NAorZXhwb3J0czoKKyAgLQorICAgIGFyY2hzOgorICAgICAgLSBhcm12Nwor
ICAgICAgLSBhcm12N3MKKyAgICAgIC0gYXJtNjQKKyAgICAgIC0gaTM4NgorICAgICAgLSB4ODZf
NjQKKyAgICBzeW1ib2xzOgorICAgICAgLSBfSU9TdXJmYWNlQWNjZWxlcmF0b3JDcmVhdGUKKyAg
ICAgIC0gX0lPU3VyZmFjZUFjY2VsZXJhdG9yR2V0UnVuTG9vcFNvdXJjZQorICAgICAgLSBfSU9T
dXJmYWNlQWNjZWxlcmF0b3JUcmFuc2Zvcm1TdXJmYWNlCisgICAgICAtIF9rSU9TdXJmYWNlQWNj
ZWxlcmF0b3JVbndpcmVTdXJmYWNlS2V5CitpbnN0YWxsLW5hbWU6IC9TeXN0ZW0vTGlicmFyeS9Q
cml2YXRlRnJhbWV3b3Jrcy9JT1N1cmZhY2VBY2NlbGVyYXRvci5mcmFtZXdvcmsvSU9TdXJmYWNl
QWNjZWxlcmF0b3IKK29iamMtY29uc3RyYWludDogbm9uZQorcGxhdGZvcm06IGlvcworLi4uCmRp
ZmYgLS1naXQgYS9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2lP
Uy8xMS9JT1N1cmZhY2VBY2NlbGVyYXRvci5mcmFtZXdvcmsvSU9TdXJmYWNlQWNjZWxlcmF0b3Iu
dGJkIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9pT1MvMTEv
SU9TdXJmYWNlQWNjZWxlcmF0b3IuZnJhbWV3b3JrL0lPU3VyZmFjZUFjY2VsZXJhdG9yLnRiZApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yM2QzYmNlZDU1MzkzZjU2YmIyODg1M2U2NWRmODZjMTExNzk1MGNiCi0tLSAv
ZGV2L251bGwKKysrIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVi
cy9pT1MvMTEvSU9TdXJmYWNlQWNjZWxlcmF0b3IuZnJhbWV3b3JrL0lPU3VyZmFjZUFjY2VsZXJh
dG9yLnRiZApAQCAtMCwwICsxLDI0IEBACistLS0gIXRhcGktdGJkLXYyCithcmNoczoKKyAgLSBh
cm12NworICAtIGFybXY3cworICAtIGFybTY0CisgIC0gaTM4NgorICAtIHg4Nl82NAorZXhwb3J0
czoKKyAgLQorICAgIGFyY2hzOgorICAgICAgLSBhcm12NworICAgICAgLSBhcm12N3MKKyAgICAg
IC0gYXJtNjQKKyAgICAgIC0gaTM4NgorICAgICAgLSB4ODZfNjQKKyAgICBzeW1ib2xzOgorICAg
ICAgLSBfSU9TdXJmYWNlQWNjZWxlcmF0b3JDcmVhdGUKKyAgICAgIC0gX0lPU3VyZmFjZUFjY2Vs
ZXJhdG9yR2V0UnVuTG9vcFNvdXJjZQorICAgICAgLSBfSU9TdXJmYWNlQWNjZWxlcmF0b3JUcmFu
c2Zvcm1TdXJmYWNlCisgICAgICAtIF9rSU9TdXJmYWNlQWNjZWxlcmF0b3JVbndpcmVTdXJmYWNl
S2V5CitpbnN0YWxsLW5hbWU6IC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9JT1N1
cmZhY2VBY2NlbGVyYXRvci5mcmFtZXdvcmsvSU9TdXJmYWNlQWNjZWxlcmF0b3IKK29iamMtY29u
c3RyYWludDogbm9uZQorcGxhdGZvcm06IGlvcworLi4uCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>