<?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>211461</bug_id>
          
          <creation_ts>2020-05-05 12:12:38 -0700</creation_ts>
          <short_desc>Remove HAVE(AVFOUNDATION_LEGIBLE_OUTPUT_SUPPORT)</short_desc>
          <delta_ts>2020-05-05 15:32:19 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>annulen</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1649318</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-05-05 12:12:38 -0700</bug_when>
    <thetext>Remove HAVE(AVFOUNDATION_LEGIBLE_OUTPUT_SUPPORT)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649338</commentid>
    <comment_count>1</comment_count>
      <attachid>398544</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-05-05 13:03:27 -0700</bug_when>
    <thetext>Created attachment 398544
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649405</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-05-05 15:31:11 -0700</bug_when>
    <thetext>Committed r261202: &lt;https://trac.webkit.org/changeset/261202&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 398544.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649408</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-05-05 15:32:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/62906315&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398544</attachid>
            <date>2020-05-05 13:03:27 -0700</date>
            <delta_ts>2020-05-05 15:31:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211461-20200505130325.patch</filename>
            <type>text/plain</type>
            <size>42118</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxMTc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDA0YzUyYzA0NzVlZjBmZjlmOTMzNjM4
MTM5NjNkODkyYmY3M2Y4ZjEuLjk0ODJkMGZjMjkxZjI5ZDM2ZDdjYWI5NzQwZTEzYzE4MmNkZjRl
MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAtMDUtMDUgIERhcmluIEFkbGVyICA8ZGFyaW5A
YXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBIQVZFKEFWRk9VTkRBVElPTl9MRUdJQkxFX09V
VFBVVF9TVVBQT1JUKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjExNDYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiB3dGYvUGxhdGZvcm1IYXZlLmg6IERvbid0IGRlZmluZSBIQVZFX0FWRk9VTkRBVElP
Tl9MRUdJQkxFX09VVFBVVF9TVVBQT1JULgorCiAyMDIwLTA1LTA1ICBEYXJpbiBBZGxlciAgPGRh
cmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgbm93LXVubmVlZGVkIFVTRShDT1JFTUVE
SUEpIGFuZCBVU0UoVklERU9UT09MQk9YKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDA4MjgzNmE1M2YyN2Y4ZjRi
NDRjMzRiMzYyZmQyYWY2NTYyZDU4YTEuLmMxNDIxMTFmZmJkNjkzZDY2ZTkzY2Y4YmEyNDhjNDNi
NjgzZTg0YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAyMC0wNS0wNSAgRGFyaW4g
QWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIEhBVkUoQVZGT1VOREFU
SU9OX0xFR0lCTEVfT1VUUFVUX1NVUFBPUlQpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTE0NjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFBsYXRmb3JtTWFjLmNtYWtlOiBSZW1vdmVkIEluYmFuZFRl
eHRUcmFja1ByaXZhdGVMZWdhY3lBVkZPYmpDLm1tLgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50
eHQ6IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajog
RGl0dG8sIGFsc28gdGhlIGhlYWRlci4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9JbmJhbmRUZXh0VHJhY2tQcml2YXRlTGVnYWN5QVZGT2JqQy5oOiBSZW1v
dmVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0luYmFu
ZFRleHRUcmFja1ByaXZhdGVMZWdhY3lBVkZPYmpDLm1tOiBSZW1vdmVkLgorCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5oOgorICAgICAgICBSZW1vdmVkIEhBVkUoQVZGT1VOREFUSU9OX0xFR0lC
TEVfT1VUUFVUX1NVUFBPUlQpLiBBbHNvIG1vdmVkIGRhdGEgbWVtYmVyCisgICAgICAgIGluaXRp
YWxpemF0aW9uIHRvIHRoZSBjbGFzcyBkZWZpbml0aW9uLCBtYWRlIG1vcmUgdGhpbmdzIHByaXZh
dGUgYW5kIGZpbmFsLAorICAgICAgICBtYWRlIG91dHB1dE9ic2N1cmVkRHVlVG9JbnN1ZmZpY2ll
bnRFeHRlcm5hbFByb3RlY3Rpb25DaGFuZ2VkIHVuY29uZGl0aW9uYWwsCisgICAgICAgIGNoYW5n
ZWQgZnJpZW5kIGNsYXNzIE1lZGlhUGxheWVyRmFjdG9yeUFWRm91bmRhdGlvbk9iakMgaW50byBt
ZW1iZXIgY2xhc3MKKyAgICAgICAgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6
RmFjdG9yeSwgcmVtb3ZlZCB1bnVzZWQgcmVtb3ZlU2Vzc2lvbiBmdW5jdGlvbiwKKyAgICAgICAg
YW5kIHR3ZWFrZWQgY29uZGl0aW9uYWxzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToK
KyAgICAgICAgUmVtb3ZlZCBpbXBvcnQgb2YgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUxlZ2FjeUFW
Rk9iakMuaC4gTW92ZWQgZGF0YSBtZW1iZXIKKyAgICAgICAgaW5pdGlhbGl6YXRpb24gdG8gdGhl
IGNsYXNzIGRlZmluaXRpb24uIE1vdmVkIGluY2x1ZGUgb2YgQmluYXJ5U2VtYXBob3JlIGhlcmUu
CisKIDIwMjAtMDUtMDUgIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBB
IFVSTCBjYW5ub3QgaGF2ZSBhIHVzZXJuYW1lL3Bhc3N3b3JkL3BvcnQgaWYgaXRzIGhvc3QgaXMg
bnVsbApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmggYi9Tb3VyY2Uv
V1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaAppbmRleCA0YWQyZjRjNDVlMTI4NjIwNjVjNzNjOThjOTJj
ZWZhMTUxMWY1OTE2Li4wZTRiOWJhOGJkYWFiZTdkYjBiMjVkYTAyYjYzY2ExMDZjNDQxOWUxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9QbGF0Zm9ybUhhdmUuaApAQCAtMjczLDEwICsyNzMsNiBAQAogI2RlZmluZSBIQVZFX0NP
UkVfVklERU8gMQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShDT0NPQSkKLSNkZWZpbmUgSEFWRV9B
VkZPVU5EQVRJT05fTEVHSUJMRV9PVVRQVVRfU1VQUE9SVCAxCi0jZW5kaWYKLQogI2lmIFBMQVRG
T1JNKENPQ09BKQogI2RlZmluZSBIQVZFX01FRElBX0FDQ0VTU0lCSUxJVFlfRlJBTUVXT1JLIDEK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UgYi9T
b3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQppbmRleCBhMDc4OGE3ZTg3NGRkZjEwMjg3
ZGI2YzIxMTZkOGNkZmEzMDZkMTQwLi5lNDhkNTZiNjI1ZDhkNjlhZWEyMjE5ZWYxMzcxNGU1Njdi
Y2VkYTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQpAQCAtMjU3LDcgKzI1Nyw2IEBAIGxp
c3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMubW0KICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9JbWFnZURlY29kZXJBVkZPYmpDLm1tCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFW
Rk9iakMubW0KLSAgICBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9JbmJhbmRU
ZXh0VHJhY2tQcml2YXRlTGVnYWN5QVZGT2JqQy5tbQogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KICAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakMubW0KICAgICBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVNhbXBsZUFWRk9iakMubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGY0
MTFkMTc5OWY2NDQyYmYxNDBlMjlmM2I1YmQzZmMyMTdiNWNhZGUuLjcxYmFiMzg2NmExNzlhNjk1
Yzc2OTI1MjU4NGY3N2MyYmNiNjQ2MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dApAQCAtMjYw
LDcgKzI2MCw2IEBAIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Np
b25BVlN0cmVhbVNlc3Npb24ubW0gQG5vLXVuaWZ5CiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLm1tIEBuby11bmlmeQogcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvSW1hZ2VEZWNvZGVyQVZGT2JqQy5tbSBA
bm8tdW5pZnkKIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0luYmFuZFRleHRU
cmFja1ByaXZhdGVBVkZPYmpDLm1tIEBuby11bmlmeQotcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUxlZ2FjeUFWRk9iakMubW0gQG5vLXVu
aWZ5CiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Mb2NhbFNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllci5tbSBAbm8tdW5pZnkKIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWMubW0gQG5vLXVuaWZ5CiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLm1tIEBuby11bmlmeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDk5MWI2ZDZlZDk2ZjVlMGQ5ODJkM2RiNTg1NTQ2ZWZj
NTEwMmNkODQuLmI1MTdhN2FlNjM0Yjc1Y2Y5ODg5N2IyNTYyYjc5MmVhY2IzOGM5OTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTExNiw4ICsxMTYsNiBAQAogCQkwNzJBRTFFNTE4M0MwNzQxMDAwQTU5ODggLyogUGx1Z2luUmVw
bGFjZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDA3MkFFMURGMTgzQzA3NDEwMDBBNTk4OCAvKiBQbHVnaW5SZXBsYWNlbWVudC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3MkFFMUU4MTgzQzA3
NDEwMDBBNTk4OCAvKiBRdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyQUUxRTIxODNDMDc0MTAwMEE1OTg4
IC8qIFF1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50LmggKi87IH07CiAJCTA3MkM4QjExMTMxQzUx
ODYwMEE0RkNFOSAvKiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc2RjBEMDkxMkI4MTkyNzAw
QzI2QUE0IC8qIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAgKi87IH07Ci0JCTA3
MzY3RERGMTcyQ0E2N0YwMEQ4NjFCOSAvKiBJbmJhbmRUZXh0VHJhY2tQcml2YXRlTGVnYWN5QVZG
T2JqQy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcz
NjdEREQxNzJDQTY3RjAwRDg2MUI5IC8qIEluYmFuZFRleHRUcmFja1ByaXZhdGVMZWdhY3lBVkZP
YmpDLmggKi87IH07Ci0JCTA3MzY3REUwMTcyQ0E2ODIwMEQ4NjFCOSAvKiBJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlTGVnYWN5QVZGT2JqQy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDA3MzY3RERFMTcyQ0E2N0YwMEQ4NjFCOSAvKiBJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlTGVnYWN5QVZGT2JqQy5tbSAqLzsgfTsKIAkJMDczNzk0REUxOUVFMkM1MjAwRTVB
MDQ1IC8qIFJUQ09mZmVyQW5zd2VyT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMDczNzk0REMxOUVFMkM1MjAwRTVBMDQ1IC8qIFJUQ09mZmVy
QW5zd2VyT3B0aW9ucy5oICovOyB9OwogCQkwNzM3OTRFNjE5RUUyRkYyMDBFNUEwNDUgLyogSlNS
VENDb25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwNzM3OTRFNDE5RUUyRkYyMDBFNUEwNDUgLyogSlNSVENDb25maWd1cmF0aW9uLmgg
Ki87IH07CiAJCTA3Mzc5NEVDMTlFRTM0MUUwMEU1QTA0NSAvKiBKU1JUQ0ljZVNlcnZlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczNzk0RUExOUVF
MzQxRTAwRTVBMDQ1IC8qIEpTUlRDSWNlU2VydmVyLmggKi87IH07CkBAIC01NTQ2LDggKzU1NDQs
NiBAQAogCQkwNzJBRTFFMzE4M0MwNzQxMDAwQTU5ODggLyogUXVpY2tUaW1lUGx1Z2luUmVwbGFj
ZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFF1aWNrVGltZVBsdWdpblJlcGxhY2Vt
ZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcyQUUxRTQxODNDMDc0MTAw
MEE1OTg4IC8qIFF1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50LmpzICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5qYXZhc2NyaXB0OyBwYXRoID0gUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQuanM7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MkNBODYwMTZDQjREQzMwMDhBRTEzMSAvKiBD
YXB0aW9uVXNlclByZWZlcmVuY2VzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IENhcHRpb25Vc2VyUHJlZmVyZW5jZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQkwNzM2N0RERDE3MkNBNjdGMDBEODYxQjkgLyogSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZUxlZ2FjeUFWRk9iakMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZUxlZ2FjeUFWRk9iakMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJMDczNjdEREUxNzJDQTY3RjAwRDg2MUI5IC8qIEluYmFuZFRleHRUcmFja1ByaXZhdGVM
ZWdhY3lBVkZPYmpDLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUxlZ2FjeUFWRk9iakMubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTA3Mzc5NERDMTlFRTJDNTIwMEU1QTA0NSAvKiBSVENPZmZlckFuc3dlck9w
dGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUlRDT2ZmZXJBbnN3ZXJP
cHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3Mzc5NEUzMTlFRTJGRjIw
MEU1QTA0NSAvKiBKU1JUQ0NvbmZpZ3VyYXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNSVENDb25maWd1cmF0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMDczNzk0RTQxOUVFMkZGMjAwRTVBMDQ1IC8qIEpTUlRDQ29uZmlndXJhdGlv
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1JUQ0NvbmZpZ3VyYXRpb24u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI3MTUxLDggKzI3MTQ3LDYgQEAKIAkJ
CQlDRDE5RkVBRDFGNTc0QjZEMDAwQzQyRkIgLyogSW1hZ2VEZWNvZGVyQVZGT2JqQy5tbSAqLywK
IAkJCQkwN0FBNkI2OTE2NkQwMTk1MDBENDU2NzEgLyogSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFW
Rk9iakMuaCAqLywKIAkJCQkwN0FBNkI2QTE2NkQwMTk1MDBENDU2NzEgLyogSW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZUFWRk9iakMubW0gKi8sCi0JCQkJMDczNjdEREQxNzJDQTY3RjAwRDg2MUI5IC8q
IEluYmFuZFRleHRUcmFja1ByaXZhdGVMZWdhY3lBVkZPYmpDLmggKi8sCi0JCQkJMDczNjdEREUx
NzJDQTY3RjAwRDg2MUI5IC8qIEluYmFuZFRleHRUcmFja1ByaXZhdGVMZWdhY3lBVkZPYmpDLm1t
ICovLAogCQkJCTQxNDU5OEMwMjNDOEFENzgwMDJCOUNDOCAvKiBMb2NhbFNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllci5oICovLAogCQkJCTQxNDU5OEMxMjNDOEFENzkwMDJCOUNDOCAvKiBMb2NhbFNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllci5tbSAqLywKIAkJCQkwNzhFNDNEQjFBQkI2RjZGMDAxQzJG
QTYgLyogTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYy5oICovLApAQCAtMzA4ODksNyArMzA4
ODMsNiBAQAogCQkJCTA3QjQ0MkQ3MTY2QzcwQjAwMDU1NkNBRCAvKiBJbmJhbmRUZXh0VHJhY2tQ
cml2YXRlQVZGLmggaW4gSGVhZGVycyAqLywKIAkJCQkwN0FBNkI2QzE2NkQyQzEzMDBENDU2NzEg
LyogSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRk9iakMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3
Q0U3N0Q1MTY3MTJBNkEwMEM1NUE0NyAvKiBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQ2xpZW50Lmgg
aW4gSGVhZGVycyAqLywKLQkJCQkwNzM2N0RERjE3MkNBNjdGMDBEODYxQjkgLyogSW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZUxlZ2FjeUFWRk9iakMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJFMTZDNTk1
MTdDRkUxNzIwMDg1MkMwNCAvKiBJbmJhbmRXZWJWVFRUZXh0VHJhY2suaCBpbiBIZWFkZXJzICov
LAogCQkJCURCMjNDMkNDMEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTE4NUZDQjIxQkI0QzRFODAwMTI4OThGIC8qIEluZGV4ZWRE
Qi5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNDIxNiw3ICszNDIwOSw2IEBACiAJCQkJMDc5NDE3OTEx
NjZFODU1RjAwOTQxNkMyIC8qIEluYmFuZFRleHRUcmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkwN0I0NDJENjE2NkM3MEIwMDA1NTZDQUQgLyogSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkwN0FBNkI2QjE2NkQyQzA3MDBENDU2NzEgLyogSW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZUFWRk9iakMubW0gaW4gU291cmNlcyAqLywKLQkJCQkwNzM2N0RFMDE3
MkNBNjgyMDBEODYxQjkgLyogSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUxlZ2FjeUFWRk9iakMubW0g
aW4gU291cmNlcyAqLywKIAkJCQlCRTE2QzU5NDE3Q0ZFMTcyMDA4NTJDMDQgLyogSW5iYW5kV2Vi
VlRUVGV4dFRyYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEMDYzRjgyMUUyM0ZBODkwMDgx
MkJFMyAvKiBJbml0RGF0YVJlZ2lzdHJ5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUzOEVDOTNF
MUY5OUJGNUEwMDREMjJBOCAvKiBKU1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50LmNwcCBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUxlZ2FjeUFWRk9iakMuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0luYmFu
ZFRleHRUcmFja1ByaXZhdGVMZWdhY3lBVkZPYmpDLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDU5Njg5NWM0ZGViM2Y4MzNhZTliOTE4MDliYjM5NjFmOWY5ZDEyY2IuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUxl
Z2FjeUFWRk9iakMuaAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTMtMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaWZuZGVmIEluYmFuZFRl
eHRUcmFja1ByaXZhdGVMZWdhY3lBVkZPYmpDX2gKLSNkZWZpbmUgSW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZUxlZ2FjeUFWRk9iakNfaAotCi0jaWYgRU5BQkxFKFZJREVPKSAmJiBVU0UoQVZGT1VOREFU
SU9OKSAmJiAhSEFWRShBVkZPVU5EQVRJT05fTEVHSUJMRV9PVVRQVVRfU1VQUE9SVCkgJiYgIVBM
QVRGT1JNKElPU19GQU1JTFkpCi0KLSNpbmNsdWRlICJJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZG
LmgiCi0jaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgotCi1PQkpDX0NMQVNTIEFWUGxheWVySXRl
bVRyYWNrOwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakM7Ci0KLWNsYXNzIEluYmFuZFRleHRUcmFja1ByaXZhdGVMZWdhY3lB
VkZPYmpDIDogcHVibGljIEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkYgewotcHVibGljOgotICAg
IHN0YXRpYyBSZWY8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUxlZ2FjeUFWRk9iakM+IGNyZWF0ZShN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDKiBwbGF5ZXIsIEFWUGxheWVySXRlbVRy
YWNrICp0cmFjaykKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluYmFuZFRl
eHRUcmFja1ByaXZhdGVMZWdhY3lBVkZPYmpDKHBsYXllciwgdHJhY2spKTsKLSAgICB9Ci0KLSAg
ICB+SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUxlZ2FjeUFWRk9iakMoKSA9IGRlZmF1bHQ7Ci0KLSAg
ICBJbmJhbmRUZXh0VHJhY2tQcml2YXRlOjpLaW5kIGtpbmQoKSBjb25zdCBvdmVycmlkZTsKLSAg
ICBib29sIGlzQ2xvc2VkQ2FwdGlvbnMoKSBjb25zdCBvdmVycmlkZTsKLSAgICBib29sIGNvbnRh
aW5zT25seUZvcmNlZFN1YnRpdGxlcygpIGNvbnN0IG92ZXJyaWRlOwotICAgIGJvb2wgaXNNYWlu
UHJvZ3JhbUNvbnRlbnQoKSBjb25zdCBvdmVycmlkZTsKLSAgICBib29sIGlzRWFzeVRvUmVhZCgp
IGNvbnN0IG92ZXJyaWRlOwotICAgIEF0b21TdHJpbmcgbGFiZWwoKSBjb25zdCBvdmVycmlkZTsK
LSAgICBBdG9tU3RyaW5nIGxhbmd1YWdlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0KLSAgICB2b2lkIGRp
c2Nvbm5lY3QoKSBvdmVycmlkZTsKLQotICAgIENhdGVnb3J5IHRleHRUcmFja0NhdGVnb3J5KCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gTGVnYWN5Q2xvc2VkQ2FwdGlvbjsgfQotICAgIAotICAg
IEFWUGxheWVySXRlbVRyYWNrICphdlBsYXllckl0ZW1UcmFjaygpIGNvbnN0IHsgcmV0dXJuIG1f
cGxheWVySXRlbVRyYWNrLmdldCgpOyB9Ci0KLXByb3RlY3RlZDoKLSAgICBJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlTGVnYWN5QVZGT2JqQyhNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
KiwgQVZQbGF5ZXJJdGVtVHJhY2sgKik7Ci0gICAgCi0gICAgUmV0YWluUHRyPEFWUGxheWVySXRl
bVRyYWNrPiBtX3BsYXllckl0ZW1UcmFjazsKLX07Ci0KLX0KLQotI2VuZGlmIC8vIEVOQUJMRShW
SURFTykgJiYgVVNFKEFWRk9VTkRBVElPTikgJiYgIUhBVkUoQVZGT1VOREFUSU9OX0xFR0lCTEVf
T1VUUFVUX1NVUFBPUlQpICYmICFQTEFURk9STShJT1NfRkFNSUxZKQotCi0jZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L0luYmFuZFRleHRUcmFja1ByaXZhdGVMZWdhY3lBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZUxlZ2FjeUFWRk9iakMubW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQwZmMzMTcx
YmZkZTQyYmM2YzZhNGUxZWY0YTAyNjg4ZWYwOGUxMDguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUxlZ2FjeUFWRk9iakMubW0K
KysrIC9kZXYvbnVsbApAQCAtMSwxMTQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0g
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW1wb3J0ICJjb25maWcuaCIKLQotI2lmIEVOQUJMRShW
SURFTykgJiYgVVNFKEFWRk9VTkRBVElPTikgJiYgIUhBVkUoQVZGT1VOREFUSU9OX0xFR0lCTEVf
T1VUUFVUX1NVUFBPUlQpICYmICFQTEFURk9STShJT1NfRkFNSUxZKQotCi0jaW1wb3J0ICJJbmJh
bmRUZXh0VHJhY2tQcml2YXRlTGVnYWN5QVZGT2JqQy5oIgotCi0jaW1wb3J0ICJJbmJhbmRUZXh0
VHJhY2tQcml2YXRlQVZGLmgiCi0jaW1wb3J0ICJMb2dnaW5nLmgiCi0jaW1wb3J0ICJNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgiCi0jaW1wb3J0IDxvYmpjL3J1bnRpbWUuaD4K
LQotI2ltcG9ydCA8cGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmg+Ci0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLQotSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUxlZ2FjeUFWRk9iakM6OkluYmFu
ZFRleHRUcmFja1ByaXZhdGVMZWdhY3lBVkZPYmpDKE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakMqIHBsYXllciwgQVZQbGF5ZXJJdGVtVHJhY2sqIHRyYWNrKQotICAgIDogSW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZUFWRihwbGF5ZXIsIEluYmFuZFRleHRUcmFja1ByaXZhdGU6OkdlbmVy
aWMpCi0gICAgLCBtX3BsYXllckl0ZW1UcmFjayh0cmFjaykKLXsKLX0KLQotdm9pZCBJbmJhbmRU
ZXh0VHJhY2tQcml2YXRlTGVnYWN5QVZGT2JqQzo6ZGlzY29ubmVjdCgpCi17Ci0gICAgbV9wbGF5
ZXJJdGVtVHJhY2sgPSAwOwotICAgIEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkY6OmRpc2Nvbm5l
Y3QoKTsKLX0KLQotSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6S2luZCBJbmJhbmRUZXh0VHJhY2tQ
cml2YXRlTGVnYWN5QVZGT2JqQzo6a2luZCgpIGNvbnN0Ci17Ci0gICAgaWYgKCFtX3BsYXllckl0
ZW1UcmFjaykKLSAgICAgICAgcmV0dXJuIEluYmFuZFRleHRUcmFja1ByaXZhdGU6Ok5vbmU7Ci0K
LSAgICByZXR1cm4gSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6Q2FwdGlvbnM7Ci19Ci0KLWJvb2wg
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUxlZ2FjeUFWRk9iakM6OmlzQ2xvc2VkQ2FwdGlvbnMoKSBj
b25zdAotewotICAgIHJldHVybiBtX3BsYXllckl0ZW1UcmFjazsKLX0KLQotYm9vbCBJbmJhbmRU
ZXh0VHJhY2tQcml2YXRlTGVnYWN5QVZGT2JqQzo6Y29udGFpbnNPbmx5Rm9yY2VkU3VidGl0bGVz
KCkgY29uc3QKLXsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgSW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZUxlZ2FjeUFWRk9iakM6OmlzTWFpblByb2dyYW1Db250ZW50KCkgY29uc3QKLXsKLSAg
ICByZXR1cm4gbV9wbGF5ZXJJdGVtVHJhY2s7Ci19Ci0KLWJvb2wgSW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZUxlZ2FjeUFWRk9iakM6OmlzRWFzeVRvUmVhZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGZh
bHNlOwotfQotCi1BdG9tU3RyaW5nIEluYmFuZFRleHRUcmFja1ByaXZhdGVMZWdhY3lBVkZPYmpD
OjpsYWJlbCgpIGNvbnN0Ci17Ci0gICAgaWYgKCFtX3BsYXllckl0ZW1UcmFjaykKLSAgICAgICAg
cmV0dXJuIGVtcHR5QXRvbSgpOwotCi0gICAgTlNTdHJpbmcgKnRpdGxlID0gMDsKLQotICAgIE5T
QXJyYXkgKnRpdGxlcyA9IFtQQUw6OmdldEFWTWV0YWRhdGFJdGVtQ2xhc3MoKSBtZXRhZGF0YUl0
ZW1zRnJvbUFycmF5OltbbV9wbGF5ZXJJdGVtVHJhY2sgYXNzZXRUcmFja10gY29tbW9uTWV0YWRh
dGFdIHdpdGhLZXk6QVZNZXRhZGF0YUNvbW1vbktleVRpdGxlIGtleVNwYWNlOkFWTWV0YWRhdGFL
ZXlTcGFjZUNvbW1vbl07Ci0gICAgaWYgKFt0aXRsZXMgY291bnRdKSB7Ci0gICAgICAgIC8vIElm
IHBvc3NpYmxlLCByZXR1cm4gYSB0aXRsZSBpbiBvbmUgb2YgdGhlIHVzZXIncyBwcmVmZXJyZWQg
bGFuZ3VhZ2VzLgotICAgICAgICBOU0FycmF5ICp0aXRsZXNGb3JQcmVmZXJyZWRMYW5ndWFnZXMg
PSBbUEFMOjpnZXRBVk1ldGFkYXRhSXRlbUNsYXNzKCkgbWV0YWRhdGFJdGVtc0Zyb21BcnJheTp0
aXRsZXMgZmlsdGVyZWRBbmRTb3J0ZWRBY2NvcmRpbmdUb1ByZWZlcnJlZExhbmd1YWdlczpbTlNM
b2NhbGUgcHJlZmVycmVkTGFuZ3VhZ2VzXV07Ci0gICAgICAgIGlmIChbdGl0bGVzRm9yUHJlZmVy
cmVkTGFuZ3VhZ2VzIGNvdW50XSkKLSAgICAgICAgICAgIHRpdGxlID0gW1t0aXRsZXNGb3JQcmVm
ZXJyZWRMYW5ndWFnZXMgb2JqZWN0QXRJbmRleDowXSBzdHJpbmdWYWx1ZV07Ci0KLSAgICAgICAg
aWYgKCF0aXRsZSkKLSAgICAgICAgICAgIHRpdGxlID0gW1t0aXRsZXMgb2JqZWN0QXRJbmRleDow
XSBzdHJpbmdWYWx1ZV07Ci0gICAgfQotCi0gICAgcmV0dXJuIHRpdGxlID8gQXRvbVN0cmluZyh0
aXRsZSkgOiBlbXB0eUF0b20oKTsKLX0KLQotQXRvbVN0cmluZyBJbmJhbmRUZXh0VHJhY2tQcml2
YXRlTGVnYWN5QVZGT2JqQzo6bGFuZ3VhZ2UoKSBjb25zdAotewotICAgIGlmICghbV9wbGF5ZXJJ
dGVtVHJhY2spCi0gICAgICAgIHJldHVybiBlbXB0eUF0b20oKTsKLQotICAgIE5TU3RyaW5nICps
YW5ndWFnZUNvZGUgPSBbW21fcGxheWVySXRlbVRyYWNrIGFzc2V0VHJhY2tdIGxhbmd1YWdlQ29k
ZV07Ci0gICAgUmV0YWluUHRyPE5TTG9jYWxlPiBsb2NhbGUgPSBhZG9wdE5TKFtbTlNMb2NhbGUg
YWxsb2NdIGluaXRXaXRoTG9jYWxlSWRlbnRpZmllcjpsYW5ndWFnZUNvZGVdKTsKLSAgICByZXR1
cm4gW2xvY2FsZSBsb2NhbGVJZGVudGlmaWVyXTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAppbmRleCBjYzQyNTYyYzFlNmRkZWZmNjBl
MjFlODU2ZDJiMzYwYjY2N2NmY2UwLi5iM2FjZTBmZDkwOTBlOWU4MTM1NDg1M2M5OGVmNGExMmMx
YWE5MDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCkBAIC0yNywxMSArMjcsOSBAQAogCiAjaWYg
RU5BQkxFKFZJREVPKSAmJiBVU0UoQVZGT1VOREFUSU9OKQogCi0jaW5jbHVkZSAiTWVkaWFQbGF5
YmFja1RhcmdldC5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5o
IgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0j
aW5jbHVkZSA8d3RmL3RocmVhZHMvQmluYXJ5U2VtYXBob3JlLmg+CiAKIE9CSkNfQ0xBU1MgQVZB
c3NldEltYWdlR2VuZXJhdG9yOwogT0JKQ19DTEFTUyBBVkFzc2V0UmVzb3VyY2VMb2FkaW5nUmVx
dWVzdDsKQEAgLTQ5LDggKzQ3LDYgQEAgT0JKQ19DTEFTUyBXZWJDb3JlQVZGTG9hZGVyRGVsZWdh
dGU7CiBPQkpDX0NMQVNTIFdlYkNvcmVBVkZNb3ZpZU9ic2VydmVyOwogT0JKQ19DTEFTUyBXZWJD
b3JlQVZGUHVsbERlbGVnYXRlOwogCi10eXBlZGVmIHN0cnVjdCBvYmpjX29iamVjdCogaWQ7Ci0K
IHR5cGVkZWYgc3RydWN0IENHSW1hZ2UgKkNHSW1hZ2VSZWY7CiB0eXBlZGVmIHN0cnVjdCBfX0NW
QnVmZmVyICpDVlBpeGVsQnVmZmVyUmVmOwogCkBAIC02Miw2ICs1OCw3IEBAIGNsYXNzIENETUlu
c3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOwogY2xhc3MgQ0RNU2Vzc2lvbkFWRm91bmRh
dGlvbk9iakM7CiBjbGFzcyBJbWFnZVJvdGF0aW9uU2Vzc2lvblZUOwogY2xhc3MgSW5iYW5kTWV0
YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGOworY2xhc3MgTWVkaWFQbGF5YmFja1RhcmdldDsKIGNs
YXNzIE1lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDOwogY2xhc3MgUGl4ZWxCdWZmZXJDb25mb3Jt
ZXJDVjsKIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKQEAgLTcwLDM2ICs2NywyNyBAQCBjbGFzcyBWaWRl
b1RleHR1cmVDb3BpZXJDVjsKIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQzsKIGNsYXNz
IFdlYkNvcmVBVkZSZXNvdXJjZUxvYWRlcjsKIAotY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQyA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24gewor
Y2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQyBmaW5hbCA6IHB1YmxpYyBN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24gewogcHVibGljOgogICAgIGV4cGxpY2l0IE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMoTWVkaWFQbGF5ZXIqKTsKICAgICB2aXJ0
dWFsIH5NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDKCk7CiAKICAgICBzdGF0aWMg
dm9pZCByZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyKTsKIAotICAgIHN0
YXRpYyBIYXNoU2V0PFJlZlB0cjxTZWN1cml0eU9yaWdpbj4+IG9yaWdpbnNJbk1lZGlhQ2FjaGUo
Y29uc3QgU3RyaW5nJik7Ci0gICAgc3RhdGljIHZvaWQgY2xlYXJNZWRpYUNhY2hlKGNvbnN0IFN0
cmluZyYsIFdhbGxUaW1lIG1vZGlmaWVkU2luY2UpOwotICAgIHN0YXRpYyB2b2lkIGNsZWFyTWVk
aWFDYWNoZUZvck9yaWdpbnMoY29uc3QgU3RyaW5nJiwgY29uc3QgSGFzaFNldDxSZWZQdHI8U2Vj
dXJpdHlPcmlnaW4+PiYpOwotCiAgICAgdm9pZCBzZXRBc3NldChSZXRhaW5QdHI8aWQ+JiYpOwot
ICAgIHZvaWQgdHJhY2tzQ2hhbmdlZCgpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlkRW5kKCkgb3Zl
cnJpZGU7CisgICAgdm9pZCBkaWRFbmQoKSBmaW5hbDsKIAotICAgIFJldGFpblB0cjxBVlBsYXll
ckl0ZW0+IHBsYXllckl0ZW0oKSBjb25zdCB7IHJldHVybiBtX2F2UGxheWVySXRlbTsgfQogICAg
IHZvaWQgcHJvY2Vzc0N1ZShOU0FycmF5ICosIE5TQXJyYXkgKiwgY29uc3QgTWVkaWFUaW1lJik7
CiAgICAgdm9pZCBmbHVzaEN1ZXMoKTsKIAotICAgIEFWUGxheWVyICphdlBsYXllcigpIGNvbnN0
IHsgcmV0dXJuIG1fYXZQbGF5ZXIuZ2V0KCk7IH0KLQogI2lmIEhBVkUoQVZGT1VOREFUSU9OX0xP
QURFUl9ERUxFR0FURSkKLSAgICBib29sIHNob3VsZFdhaXRGb3JMb2FkaW5nT2ZSZXNvdXJjZShB
VkFzc2V0UmVzb3VyY2VMb2FkaW5nUmVxdWVzdCopOwotICAgIHZvaWQgZGlkQ2FuY2VsTG9hZGlu
Z1JlcXVlc3QoQVZBc3NldFJlc291cmNlTG9hZGluZ1JlcXVlc3QqKTsKKyAgICBib29sIHNob3Vs
ZFdhaXRGb3JMb2FkaW5nT2ZSZXNvdXJjZShBVkFzc2V0UmVzb3VyY2VMb2FkaW5nUmVxdWVzdCAq
KTsKKyAgICB2b2lkIGRpZENhbmNlbExvYWRpbmdSZXF1ZXN0KEFWQXNzZXRSZXNvdXJjZUxvYWRp
bmdSZXF1ZXN0ICopOwogICAgIHZvaWQgZGlkU3RvcExvYWRpbmdSZXF1ZXN0KEFWQXNzZXRSZXNv
dXJjZUxvYWRpbmdSZXF1ZXN0ICopOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoTEVHQUNZX0VOQ1JZ
UFRFRF9NRURJQSkKICAgICBSZXRhaW5QdHI8QVZBc3NldFJlc291cmNlTG9hZGluZ1JlcXVlc3Q+
IHRha2VSZXF1ZXN0Rm9yS2V5VVJJKGNvbnN0IFN0cmluZyYpOwotICAgIHZvaWQga2V5QWRkZWQo
KSBvdmVycmlkZTsKICNlbmRpZgogCiAgICAgdm9pZCBwbGF5ZXJJdGVtU3RhdHVzRGlkQ2hhbmdl
KGludCk7CkBAIC0xMjQsMjcgKzExMiwxNSBAQCBwdWJsaWM6CiAgICAgdm9pZCBjYW5QbGF5RmFz
dFJldmVyc2VEaWRDaGFuZ2UoYm9vbCk7CiAgICAgdm9pZCBjYW5QbGF5RmFzdEZvcndhcmREaWRD
aGFuZ2UoYm9vbCk7CiAKLSAgICB2b2lkIHNldEJ1ZmZlcmluZ1BvbGljeShNZWRpYVBsYXllcjo6
QnVmZmVyaW5nUG9saWN5KSBvdmVycmlkZTsKLQogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFD
S19UQVJHRVQpCiAgICAgdm9pZCBwbGF5YmFja1RhcmdldElzV2lyZWxlc3NEaWRDaGFuZ2UoKTsK
ICNlbmRpZgogCi0jaWYgRU5BQkxFKExFR0FDWV9FTkNSWVBURURfTUVESUEpIHx8IChFTkFCTEUo
RU5DUllQVEVEX01FRElBKSAmJiBIQVZFKEFWQ09OVEVOVEtFWVNFU1NJT04pKQogICAgIHZvaWQg
b3V0cHV0T2JzY3VyZWREdWVUb0luc3VmZmljaWVudEV4dGVybmFsUHJvdGVjdGlvbkNoYW5nZWQo
Ym9vbCk7Ci0gICAgdm9pZCBiZWdpblNpbXVsYXRlZEhEQ1BFcnJvcigpIG92ZXJyaWRlIHsgb3V0
cHV0T2JzY3VyZWREdWVUb0luc3VmZmljaWVudEV4dGVybmFsUHJvdGVjdGlvbkNoYW5nZWQodHJ1
ZSk7IH0KLSAgICB2b2lkIGVuZFNpbXVsYXRlZEhEQ1BFcnJvcigpIG92ZXJyaWRlIHsgb3V0cHV0
T2JzY3VyZWREdWVUb0luc3VmZmljaWVudEV4dGVybmFsUHJvdGVjdGlvbkNoYW5nZWQoZmFsc2Up
OyB9Ci0jZW5kaWYKIAotI2lmIEVOQUJMRShBVkZfQ0FQVElPTlMpCi0gICAgdm9pZCBub3RpZnlU
cmFja01vZGVDaGFuZ2VkKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzeW5jaHJvbml6ZVRleHRUcmFj
a1N0YXRlKCkgb3ZlcnJpZGU7Ci0jZW5kaWYKLQotI2lmIEVOQUJMRShMRUdBQ1lfRU5DUllQVEVE
X01FRElBKQotICAgIHZvaWQgcmVtb3ZlU2Vzc2lvbihMZWdhY3lDRE1TZXNzaW9uJik7Ci0jZW5k
aWYKKyAgICBNZWRpYVRpbWUgY3VycmVudE1lZGlhVGltZSgpIGNvbnN0IGZpbmFsOwogCitwcml2
YXRlOgogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCiAgICAgdm9pZCBjZG1JbnN0YW5jZUF0
dGFjaGVkKENETUluc3RhbmNlJikgZmluYWw7CiAgICAgdm9pZCBjZG1JbnN0YW5jZURldGFjaGVk
KENETUluc3RhbmNlJikgZmluYWw7CkBAIC0xNTMsMTA0ICsxMjksMTE2IEBAIHB1YmxpYzoKICAg
ICBib29sIHdhaXRpbmdGb3JLZXkoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3dhaXRpbmdGb3JL
ZXk7IH0KICNlbmRpZgogCi0gICAgZmxvYXQgY3VycmVudFRpbWUoKSBjb25zdCBvdmVycmlkZTsK
LSAgICBNZWRpYVRpbWUgY3VycmVudE1lZGlhVGltZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIGZs
b2F0IGN1cnJlbnRUaW1lKCkgY29uc3QgZmluYWw7CiAKLXByaXZhdGU6CiAgICAgLy8gZW5naW5l
IHN1cHBvcnQKLSAgICBmcmllbmQgY2xhc3MgTWVkaWFQbGF5ZXJGYWN0b3J5QVZGb3VuZGF0aW9u
T2JqQzsKKyAgICBjbGFzcyBGYWN0b3J5OwogICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5
cGVzKEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiB0eXBlcyk7CiAg
ICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlQW5kQ29kZWNz
KGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmKTsKICAgICBzdGF0aWMgYm9vbCBz
dXBwb3J0c0tleVN5c3RlbShjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgY29uc3QgU3RyaW5nJiBt
aW1lVHlwZSk7CisgICAgc3RhdGljIEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPj4gb3Jp
Z2luc0luTWVkaWFDYWNoZShjb25zdCBTdHJpbmcmKTsKKyAgICBzdGF0aWMgdm9pZCBjbGVhck1l
ZGlhQ2FjaGUoY29uc3QgU3RyaW5nJiwgV2FsbFRpbWUgbW9kaWZpZWRTaW5jZSk7CisgICAgc3Rh
dGljIHZvaWQgY2xlYXJNZWRpYUNhY2hlRm9yT3JpZ2lucyhjb25zdCBTdHJpbmcmLCBjb25zdCBI
YXNoU2V0PFJlZlB0cjxTZWN1cml0eU9yaWdpbj4+Jik7CiAKICAgICBzdGF0aWMgYm9vbCBpc0F2
YWlsYWJsZSgpOwogCi0gICAgdm9pZCBjYW5jZWxMb2FkKCkgb3ZlcnJpZGU7Ci0KLSAgICB2b2lk
IHBsYXRmb3JtU2V0VmlzaWJsZShib29sKSBvdmVycmlkZTsKLSAgICB2b2lkIHBsYXRmb3JtUGxh
eSgpIG92ZXJyaWRlOwotICAgIHZvaWQgcGxhdGZvcm1QYXVzZSgpIG92ZXJyaWRlOwotICAgIGJv
b2wgcGxhdGZvcm1QYXVzZWQoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lkIHNldFZvbHVtZShm
bG9hdCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRNdXRlZChib29sKSBvdmVycmlkZTsKLSAgICB2
b2lkIHBhaW50KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRlOwot
ICAgIHZvaWQgcGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoR3JhcGhpY3NDb250ZXh0JiwgY29u
c3QgRmxvYXRSZWN0Jikgb3ZlcnJpZGU7Ci0gICAgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXll
cigpIGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQgc2V0QnVmZmVyaW5nUG9saWN5KE1lZGlhUGxh
eWVyOjpCdWZmZXJpbmdQb2xpY3kpIGZpbmFsOworCisgICAgdm9pZCB0cmFja3NDaGFuZ2VkKCkg
ZmluYWw7CisKKyAgICB2b2lkIGNhbmNlbExvYWQoKSBmaW5hbDsKKworICAgIHZvaWQgYmVnaW5T
aW11bGF0ZWRIRENQRXJyb3IoKSBmaW5hbCB7IG91dHB1dE9ic2N1cmVkRHVlVG9JbnN1ZmZpY2ll
bnRFeHRlcm5hbFByb3RlY3Rpb25DaGFuZ2VkKHRydWUpOyB9CisgICAgdm9pZCBlbmRTaW11bGF0
ZWRIRENQRXJyb3IoKSBmaW5hbCB7IG91dHB1dE9ic2N1cmVkRHVlVG9JbnN1ZmZpY2llbnRFeHRl
cm5hbFByb3RlY3Rpb25DaGFuZ2VkKGZhbHNlKTsgfQorCisjaWYgRU5BQkxFKEFWRl9DQVBUSU9O
UykKKyAgICB2b2lkIG5vdGlmeVRyYWNrTW9kZUNoYW5nZWQoKSBmaW5hbDsKKyAgICB2b2lkIHN5
bmNocm9uaXplVGV4dFRyYWNrU3RhdGUoKSBmaW5hbDsKKyNlbmRpZgorCisgICAgdm9pZCBwbGF0
Zm9ybVNldFZpc2libGUoYm9vbCkgZmluYWw7CisgICAgdm9pZCBwbGF0Zm9ybVBsYXkoKSBmaW5h
bDsKKyAgICB2b2lkIHBsYXRmb3JtUGF1c2UoKSBmaW5hbDsKKyAgICBib29sIHBsYXRmb3JtUGF1
c2VkKCkgY29uc3QgZmluYWw7CisgICAgdm9pZCBzZXRWb2x1bWUoZmxvYXQpIGZpbmFsOworICAg
IHZvaWQgc2V0TXV0ZWQoYm9vbCkgZmluYWw7CisgICAgdm9pZCBwYWludChHcmFwaGljc0NvbnRl
eHQmLCBjb25zdCBGbG9hdFJlY3QmKSBmaW5hbDsKKyAgICB2b2lkIHBhaW50Q3VycmVudEZyYW1l
SW5Db250ZXh0KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpIGZpbmFsOworICAg
IFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCBmaW5hbDsKICNpZiBFTkFCTEUo
VklERU9fUFJFU0VOVEFUSU9OX01PREUpCi0gICAgUmV0YWluUHRyPFBsYXRmb3JtTGF5ZXI+IGNy
ZWF0ZVZpZGVvRnVsbHNjcmVlbkxheWVyKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRWaWRlb0Z1
bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxheWVyKiwgRnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKSBvdmVycmlkZTsKKyAgICBSZXRhaW5QdHI8UGxhdGZvcm1MYXllcj4gY3JlYXRl
VmlkZW9GdWxsc2NyZWVuTGF5ZXIoKSBmaW5hbDsKKyAgICB2b2lkIHNldFZpZGVvRnVsbHNjcmVl
bkxheWVyKFBsYXRmb3JtTGF5ZXIqLCBGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpIGZpbmFsOwogICAgIHZvaWQgdXBkYXRlVmlkZW9GdWxsc2NyZWVuSW5saW5lSW1hZ2UoKSBm
aW5hbDsKLSAgICB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKEZsb2F0UmVjdCkgb3ZlcnJp
ZGU7Ci0gICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5HcmF2aXR5KE1lZGlhUGxheWVyOjpWaWRl
b0dyYXZpdHkpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuTW9kZShNZWRp
YVBsYXllcjo6VmlkZW9GdWxsc2NyZWVuTW9kZSkgb3ZlcnJpZGU7Ci0gICAgdm9pZCB2aWRlb0Z1
bGxzY3JlZW5TdGFuZGJ5Q2hhbmdlZCgpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0VmlkZW9GdWxs
c2NyZWVuRnJhbWUoRmxvYXRSZWN0KSBmaW5hbDsKKyAgICB2b2lkIHNldFZpZGVvRnVsbHNjcmVl
bkdyYXZpdHkoTWVkaWFQbGF5ZXI6OlZpZGVvR3Jhdml0eSkgZmluYWw7CisgICAgdm9pZCBzZXRW
aWRlb0Z1bGxzY3JlZW5Nb2RlKE1lZGlhUGxheWVyOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKSBmaW5h
bDsKKyAgICB2b2lkIHZpZGVvRnVsbHNjcmVlblN0YW5kYnlDaGFuZ2VkKCkgZmluYWw7CiAjZW5k
aWYKICAgICB2b2lkIHNldFBsYXllclJhdGUoZG91YmxlKTsKIAogI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpCi0gICAgTlNBcnJheSAqdGltZWRNZXRhZGF0YSgpIGNvbnN0IG92ZXJyaWRlOwotICAg
IFN0cmluZyBhY2Nlc3NMb2coKSBjb25zdCBvdmVycmlkZTsKLSAgICBTdHJpbmcgZXJyb3JMb2co
KSBjb25zdCBvdmVycmlkZTsKKyAgICBOU0FycmF5ICp0aW1lZE1ldGFkYXRhKCkgY29uc3QgZmlu
YWw7CisgICAgU3RyaW5nIGFjY2Vzc0xvZygpIGNvbnN0IGZpbmFsOworICAgIFN0cmluZyBlcnJv
ckxvZygpIGNvbnN0IGZpbmFsOwogI2VuZGlmCiAKLSAgICBib29sIHN1cHBvcnRzQWNjZWxlcmF0
ZWRSZW5kZXJpbmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9Ci0gICAgTWVkaWFU
aW1lIG1lZGlhVGltZUZvclRpbWVWYWx1ZShjb25zdCBNZWRpYVRpbWUmKSBjb25zdCBvdmVycmlk
ZTsKKyAgICBib29sIHN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSBjb25zdCBmaW5hbCB7
IHJldHVybiB0cnVlOyB9CisgICAgTWVkaWFUaW1lIG1lZGlhVGltZUZvclRpbWVWYWx1ZShjb25z
dCBNZWRpYVRpbWUmKSBjb25zdCBmaW5hbDsKIAotICAgIHZvaWQgY3JlYXRlQVZQbGF5ZXIoKSBv
dmVycmlkZTsKLSAgICB2b2lkIGNyZWF0ZUFWUGxheWVySXRlbSgpIG92ZXJyaWRlOworICAgIHZv
aWQgY3JlYXRlQVZQbGF5ZXIoKSBmaW5hbDsKKyAgICB2b2lkIGNyZWF0ZUFWUGxheWVySXRlbSgp
IGZpbmFsOwogICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVBVlBsYXllckxheWVyKCk7Ci0gICAgdm9p
ZCBjcmVhdGVBVkFzc2V0Rm9yVVJMKGNvbnN0IFVSTCYpIG92ZXJyaWRlOwotICAgIE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6SXRlbVN0YXR1cyBwbGF5ZXJJdGVtU3RhdHVzKCkgY29u
c3Qgb3ZlcnJpZGU7Ci0gICAgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpBc3NldFN0
YXR1cyBhc3NldFN0YXR1cygpIGNvbnN0IG92ZXJyaWRlOwotICAgIGxvbmcgYXNzZXRFcnJvckNv
ZGUoKSBjb25zdCBvdmVycmlkZTsKLQotICAgIGRvdWJsZSBzZWVrYWJsZVRpbWVSYW5nZXNMYXN0
TW9kaWZpZWRUaW1lKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgZG91YmxlIGxpdmVVcGRhdGVJbnRl
cnZhbCgpIGNvbnN0IG92ZXJyaWRlOwotCi0gICAgdm9pZCBjaGVja1BsYXlhYmlsaXR5KCkgb3Zl
cnJpZGU7Ci0gICAgdm9pZCBzZXRSYXRlRG91YmxlKGRvdWJsZSkgb3ZlcnJpZGU7Ci0gICAgZG91
YmxlIHJhdGUoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lkIHNldFByZXNlcnZlc1BpdGNoKGJv
b2wpIG92ZXJyaWRlOwotICAgIHZvaWQgc2Vla1RvVGltZShjb25zdCBNZWRpYVRpbWUmLCBjb25z
dCBNZWRpYVRpbWUmIG5lZ2F0aXZlVG9sZXJhbmNlLCBjb25zdCBNZWRpYVRpbWUmIHBvc2l0aXZl
VG9sZXJhbmNlKSBvdmVycmlkZTsKLSAgICB1bnNpZ25lZCBsb25nIGxvbmcgdG90YWxCeXRlcygp
IGNvbnN0IG92ZXJyaWRlOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVRpbWVSYW5nZXM+
IHBsYXRmb3JtQnVmZmVyZWRUaW1lUmFuZ2VzKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgTWVkaWFU
aW1lIHBsYXRmb3JtTWluVGltZVNlZWthYmxlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgTWVkaWFU
aW1lIHBsYXRmb3JtTWF4VGltZVNlZWthYmxlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgTWVkaWFU
aW1lIHBsYXRmb3JtRHVyYXRpb24oKSBjb25zdCBvdmVycmlkZTsKLSAgICBNZWRpYVRpbWUgcGxh
dGZvcm1NYXhUaW1lTG9hZGVkKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBiZWdpbkxvYWRp
bmdNZXRhZGF0YSgpIG92ZXJyaWRlOwotICAgIHZvaWQgc2l6ZUNoYW5nZWQoKSBvdmVycmlkZTsK
LSAgICB2b2lkIHJlc29sdmVkVVJMQ2hhbmdlZCgpIG92ZXJyaWRlOwotCi0gICAgYm9vbCBoYXNB
dmFpbGFibGVWaWRlb0ZyYW1lKCkgY29uc3Qgb3ZlcnJpZGU7Ci0KLSAgICB2b2lkIGNyZWF0ZUNv
bnRleHRWaWRlb1JlbmRlcmVyKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkZXN0cm95Q29udGV4dFZp
ZGVvUmVuZGVyZXIoKSBvdmVycmlkZTsKLQotICAgIHZvaWQgY3JlYXRlVmlkZW9MYXllcigpIG92
ZXJyaWRlOwotICAgIHZvaWQgZGVzdHJveVZpZGVvTGF5ZXIoKSBvdmVycmlkZTsKLQotICAgIGJv
b2wgaGFzQ29udGV4dFJlbmRlcmVyKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgYm9vbCBoYXNMYXll
clJlbmRlcmVyKCkgY29uc3Qgb3ZlcnJpZGU7Ci0KLSAgICB2b2lkIHVwZGF0ZVZpZGVvTGF5ZXJH
cmF2aXR5KCkgb3ZlcnJpZGU7Ci0KLSAgICBib29sIGRpZFBhc3NDT1JTQWNjZXNzQ2hlY2soKSBj
b25zdCBvdmVycmlkZTsKKyAgICB2b2lkIGNyZWF0ZUFWQXNzZXRGb3JVUkwoY29uc3QgVVJMJikg
ZmluYWw7CisgICAgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpJdGVtU3RhdHVzIHBs
YXllckl0ZW1TdGF0dXMoKSBjb25zdCBmaW5hbDsKKyAgICBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb246OkFzc2V0U3RhdHVzIGFzc2V0U3RhdHVzKCkgY29uc3QgZmluYWw7CisgICAgbG9u
ZyBhc3NldEVycm9yQ29kZSgpIGNvbnN0IGZpbmFsOworCisgICAgZG91YmxlIHNlZWthYmxlVGlt
ZVJhbmdlc0xhc3RNb2RpZmllZFRpbWUoKSBjb25zdCBmaW5hbDsKKyAgICBkb3VibGUgbGl2ZVVw
ZGF0ZUludGVydmFsKCkgY29uc3QgZmluYWw7CisKKyAgICB2b2lkIGNoZWNrUGxheWFiaWxpdHko
KSBmaW5hbDsKKyAgICB2b2lkIHNldFJhdGVEb3VibGUoZG91YmxlKSBmaW5hbDsKKyAgICBkb3Vi
bGUgcmF0ZSgpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgc2V0UHJlc2VydmVzUGl0Y2goYm9vbCkg
ZmluYWw7CisgICAgdm9pZCBzZWVrVG9UaW1lKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlh
VGltZSYgbmVnYXRpdmVUb2xlcmFuY2UsIGNvbnN0IE1lZGlhVGltZSYgcG9zaXRpdmVUb2xlcmFu
Y2UpIGZpbmFsOworICAgIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbEJ5dGVzKCkgY29uc3QgZmlu
YWw7CisgICAgc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtVGltZVJhbmdlcz4gcGxhdGZvcm1CdWZm
ZXJlZFRpbWVSYW5nZXMoKSBjb25zdCBmaW5hbDsKKyAgICBNZWRpYVRpbWUgcGxhdGZvcm1NaW5U
aW1lU2Vla2FibGUoKSBjb25zdCBmaW5hbDsKKyAgICBNZWRpYVRpbWUgcGxhdGZvcm1NYXhUaW1l
U2Vla2FibGUoKSBjb25zdCBmaW5hbDsKKyAgICBNZWRpYVRpbWUgcGxhdGZvcm1EdXJhdGlvbigp
IGNvbnN0IGZpbmFsOworICAgIE1lZGlhVGltZSBwbGF0Zm9ybU1heFRpbWVMb2FkZWQoKSBjb25z
dCBmaW5hbDsKKyAgICB2b2lkIGJlZ2luTG9hZGluZ01ldGFkYXRhKCkgZmluYWw7CisgICAgdm9p
ZCBzaXplQ2hhbmdlZCgpIGZpbmFsOworICAgIHZvaWQgcmVzb2x2ZWRVUkxDaGFuZ2VkKCkgZmlu
YWw7CisKKyAgICBib29sIGhhc0F2YWlsYWJsZVZpZGVvRnJhbWUoKSBjb25zdCBmaW5hbDsKKwor
ICAgIHZvaWQgY3JlYXRlQ29udGV4dFZpZGVvUmVuZGVyZXIoKSBmaW5hbDsKKyAgICB2b2lkIGRl
c3Ryb3lDb250ZXh0VmlkZW9SZW5kZXJlcigpIGZpbmFsOworCisgICAgdm9pZCBjcmVhdGVWaWRl
b0xheWVyKCkgZmluYWw7CisgICAgdm9pZCBkZXN0cm95VmlkZW9MYXllcigpIGZpbmFsOworCisg
ICAgYm9vbCBoYXNDb250ZXh0UmVuZGVyZXIoKSBjb25zdCBmaW5hbDsKKyAgICBib29sIGhhc0xh
eWVyUmVuZGVyZXIoKSBjb25zdCBmaW5hbDsKKworICAgIHZvaWQgdXBkYXRlVmlkZW9MYXllckdy
YXZpdHkoKSBmaW5hbDsKKworICAgIGJvb2wgZGlkUGFzc0NPUlNBY2Nlc3NDaGVjaygpIGNvbnN0
IGZpbmFsOwogICAgIE9wdGlvbmFsPGJvb2w+IHdvdWxkVGFpbnRPcmlnaW4oY29uc3QgU2VjdXJp
dHlPcmlnaW4mKSBjb25zdCBmaW5hbDsKIAotCi0gICAgTWVkaWFUaW1lIGdldFN0YXJ0RGF0ZSgp
IGNvbnN0IG92ZXJyaWRlOworICAgIE1lZGlhVGltZSBnZXRTdGFydERhdGUoKSBjb25zdCBmaW5h
bDsKIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKLSAgICBib29sIHJlcXVpcmVzVGV4dFRyYWNr
UmVwcmVzZW50YXRpb24oKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lkIHNldFRleHRUcmFja1Jl
cHJlc2VudGF0aW9uKFRleHRUcmFja1JlcHJlc2VudGF0aW9uKikgb3ZlcnJpZGU7Ci0gICAgdm9p
ZCBzeW5jVGV4dFRyYWNrQm91bmRzKCkgb3ZlcnJpZGU7CisgICAgYm9vbCByZXF1aXJlc1RleHRU
cmFja1JlcHJlc2VudGF0aW9uKCkgY29uc3QgZmluYWw7CisgICAgdm9pZCBzZXRUZXh0VHJhY2tS
ZXByZXNlbnRhdGlvbihUZXh0VHJhY2tSZXByZXNlbnRhdGlvbiopIGZpbmFsOworICAgIHZvaWQg
c3luY1RleHRUcmFja0JvdW5kcygpIGZpbmFsOwogI2VuZGlmCiAKICAgICB2b2lkIHNldEFWUGxh
eWVySXRlbShBVlBsYXllckl0ZW0gKik7CiAKICNpZiBFTkFCTEUoV0VCX0FVRElPKSAmJiBVU0Uo
TUVESUFUT09MQk9YKQotICAgIEF1ZGlvU291cmNlUHJvdmlkZXIqIGF1ZGlvU291cmNlUHJvdmlk
ZXIoKSBvdmVycmlkZTsKKyAgICBBdWRpb1NvdXJjZVByb3ZpZGVyKiBhdWRpb1NvdXJjZVByb3Zp
ZGVyKCkgZmluYWw7CiAjZW5kaWYKIAogICAgIHZvaWQgY3JlYXRlSW1hZ2VHZW5lcmF0b3IoKTsK
QEAgLTI2NiwzNiArMjU0LDMzIEBAIHByaXZhdGU6CiAgICAgYm9vbCB1cGRhdGVMYXN0UGl4ZWxC
dWZmZXIoKTsKICAgICBib29sIHZpZGVvT3V0cHV0SGFzQXZhaWxhYmxlRnJhbWUoKTsKICAgICB2
b2lkIHBhaW50V2l0aFZpZGVvT3V0cHV0KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVj
dCYpOwotICAgIE5hdGl2ZUltYWdlUHRyIG5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKSBvdmVy
cmlkZTsKKyAgICBOYXRpdmVJbWFnZVB0ciBuYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCkgZmlu
YWw7CiAgICAgdm9pZCB3YWl0Rm9yVmlkZW9PdXRwdXRNZWRpYURhdGFXaWxsQ2hhbmdlKCk7CiAK
LSAgICBib29sIGNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTCosIFBsYXRmb3JtR0xPYmplY3QsIEdDR0xlbnVtIHRhcmdldCwgR0NHTGludCBs
ZXZlbCwgR0NHTGVudW0gaW50ZXJuYWxGb3JtYXQsIEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVudW0g
dHlwZSwgYm9vbCBwcmVtdWx0aXBseUFscGhhLCBib29sIGZsaXBZKSBvdmVycmlkZTsKKyAgICBi
b29sIGNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTCosIFBsYXRmb3JtR0xPYmplY3QsIEdDR0xlbnVtIHRhcmdldCwgR0NHTGludCBsZXZlbCwg
R0NHTGVudW0gaW50ZXJuYWxGb3JtYXQsIEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlwZSwg
Ym9vbCBwcmVtdWx0aXBseUFscGhhLCBib29sIGZsaXBZKSBmaW5hbDsKIAogI2lmIEVOQUJMRShM
RUdBQ1lfRU5DUllQVEVEX01FRElBKQotICAgIHN0ZDo6dW5pcXVlX3B0cjxMZWdhY3lDRE1TZXNz
aW9uPiBjcmVhdGVTZXNzaW9uKGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBMZWdhY3lDRE1TZXNz
aW9uQ2xpZW50Kikgb3ZlcnJpZGU7CisgICAgdm9pZCBrZXlBZGRlZCgpIGZpbmFsOworICAgIHN0
ZDo6dW5pcXVlX3B0cjxMZWdhY3lDRE1TZXNzaW9uPiBjcmVhdGVTZXNzaW9uKGNvbnN0IFN0cmlu
ZyYga2V5U3lzdGVtLCBMZWdhY3lDRE1TZXNzaW9uQ2xpZW50KikgZmluYWw7CiAjZW5kaWYKIAot
ICAgIFN0cmluZyBsYW5ndWFnZU9mUHJpbWFyeUF1ZGlvVHJhY2soKSBjb25zdCBvdmVycmlkZTsK
KyAgICBTdHJpbmcgbGFuZ3VhZ2VPZlByaW1hcnlBdWRpb1RyYWNrKCkgY29uc3QgZmluYWw7CiAK
ICAgICB2b2lkIHByb2Nlc3NNZWRpYVNlbGVjdGlvbk9wdGlvbnMoKTsKICAgICBib29sIGhhc0xv
YWRlZE1lZGlhU2VsZWN0aW9uR3JvdXBzKCk7CiAKLSAgICBBVk1lZGlhU2VsZWN0aW9uR3JvdXAq
IHNhZmVNZWRpYVNlbGVjdGlvbkdyb3VwRm9yTGVnaWJsZU1lZGlhKCk7Ci0gICAgQVZNZWRpYVNl
bGVjdGlvbkdyb3VwKiBzYWZlTWVkaWFTZWxlY3Rpb25Hcm91cEZvckF1ZGlibGVNZWRpYSgpOwot
ICAgIEFWTWVkaWFTZWxlY3Rpb25Hcm91cCogc2FmZU1lZGlhU2VsZWN0aW9uR3JvdXBGb3JWaXN1
YWxNZWRpYSgpOworICAgIEFWTWVkaWFTZWxlY3Rpb25Hcm91cCAqc2FmZU1lZGlhU2VsZWN0aW9u
R3JvdXBGb3JMZWdpYmxlTWVkaWEoKTsKKyAgICBBVk1lZGlhU2VsZWN0aW9uR3JvdXAgKnNhZmVN
ZWRpYVNlbGVjdGlvbkdyb3VwRm9yQXVkaWJsZU1lZGlhKCk7CisgICAgQVZNZWRpYVNlbGVjdGlv
bkdyb3VwICpzYWZlTWVkaWFTZWxlY3Rpb25Hcm91cEZvclZpc3VhbE1lZGlhKCk7CiAKLSAgICBO
U0FycmF5KiBzYWZlQVZBc3NldFRyYWNrc0ZvckF1ZGlibGVNZWRpYSgpOworICAgIE5TQXJyYXkg
KnNhZmVBVkFzc2V0VHJhY2tzRm9yQXVkaWJsZU1lZGlhKCk7CiAKICNpZiBFTkFCTEUoREFUQUNV
RV9WQUxVRSkKICAgICB2b2lkIHByb2Nlc3NNZXRhZGF0YVRyYWNrKCk7CiAjZW5kaWYKIAotICAg
IHZvaWQgc2V0Q3VycmVudFRleHRUcmFjayhJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGKikgb3Zl
cnJpZGU7Ci0gICAgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRiogY3VycmVudFRleHRUcmFjaygp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fY3VycmVudFRleHRUcmFjazsgfQotCi0jaWYgIUhB
VkUoQVZGT1VOREFUSU9OX0xFR0lCTEVfT1VUUFVUX1NVUFBPUlQpCi0gICAgdm9pZCBwcm9jZXNz
TGVnYWN5Q2xvc2VkQ2FwdGlvbnNUcmFja3MoKTsKLSNlbmRpZgorICAgIHZvaWQgc2V0Q3VycmVu
dFRleHRUcmFjayhJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGKikgZmluYWw7CisgICAgSW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZUFWRiogY3VycmVudFRleHRUcmFjaygpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIG1fY3VycmVudFRleHRUcmFjazsgfQogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogICAg
IHZvaWQgdXBkYXRlQXVkaW9UcmFja3MoKTsKQEAgLTMwNSwyNiArMjkwLDI2IEBAIHByaXZhdGU6
CiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKICAgICBib29sIGhhc1ZpZGVv
KCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBoYXNBdWRpbygpIGNvbnN0IGZpbmFsOwotICAgIGJv
b2wgaXNDdXJyZW50UGxheWJhY2tUYXJnZXRXaXJlbGVzcygpIGNvbnN0IG92ZXJyaWRlOwotICAg
IFN0cmluZyB3aXJlbGVzc1BsYXliYWNrVGFyZ2V0TmFtZSgpIGNvbnN0IG92ZXJyaWRlOwotICAg
IE1lZGlhUGxheWVyOjpXaXJlbGVzc1BsYXliYWNrVGFyZ2V0VHlwZSB3aXJlbGVzc1BsYXliYWNr
VGFyZ2V0VHlwZSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIGJvb2wgd2lyZWxlc3NWaWRlb1BsYXli
YWNrRGlzYWJsZWQoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lkIHNldFdpcmVsZXNzVmlkZW9Q
bGF5YmFja0Rpc2FibGVkKGJvb2wpIG92ZXJyaWRlOwotICAgIGJvb2wgY2FuUGxheVRvV2lyZWxl
c3NQbGF5YmFja1RhcmdldCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICBi
b29sIGlzQ3VycmVudFBsYXliYWNrVGFyZ2V0V2lyZWxlc3MoKSBjb25zdCBmaW5hbDsKKyAgICBT
dHJpbmcgd2lyZWxlc3NQbGF5YmFja1RhcmdldE5hbWUoKSBjb25zdCBmaW5hbDsKKyAgICBNZWRp
YVBsYXllcjo6V2lyZWxlc3NQbGF5YmFja1RhcmdldFR5cGUgd2lyZWxlc3NQbGF5YmFja1Rhcmdl
dFR5cGUoKSBjb25zdCBmaW5hbDsKKyAgICBib29sIHdpcmVsZXNzVmlkZW9QbGF5YmFja0Rpc2Fi
bGVkKCkgY29uc3QgZmluYWw7CisgICAgdm9pZCBzZXRXaXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNh
YmxlZChib29sKSBmaW5hbDsKKyAgICBib29sIGNhblBsYXlUb1dpcmVsZXNzUGxheWJhY2tUYXJn
ZXQoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAgICAgdm9pZCB1cGRhdGVEaXNhYmxl
RXh0ZXJuYWxQbGF5YmFjaygpOwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJB
Q0tfVEFSR0VUKSAmJiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICB2b2lkIHNldFdpcmVsZXNz
UGxheWJhY2tUYXJnZXQoUmVmPE1lZGlhUGxheWJhY2tUYXJnZXQ+JiYpIG92ZXJyaWRlOwotICAg
IHZvaWQgc2V0U2hvdWxkUGxheVRvUGxheWJhY2tUYXJnZXQoYm9vbCkgb3ZlcnJpZGU7CisjaWYg
RU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgJiYgUExBVEZPUk0oTUFDKQorICAgIHZv
aWQgc2V0V2lyZWxlc3NQbGF5YmFja1RhcmdldChSZWY8TWVkaWFQbGF5YmFja1RhcmdldD4mJikg
ZmluYWw7CisgICAgdm9pZCBzZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldChib29sKSBmaW5h
bDsKICNlbmRpZgogCi0gICAgZG91YmxlIG1heEZhc3RGb3J3YXJkUmF0ZSgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIG1fY2FjaGVkQ2FuUGxheUZhc3RGb3J3YXJkID8gc3RkOjpudW1lcmljX2xp
bWl0czxkb3VibGU+OjppbmZpbml0eSgpIDogMi4wOyB9Ci0gICAgZG91YmxlIG1pbkZhc3RSZXZl
cnNlUmF0ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fY2FjaGVkQ2FuUGxheUZhc3RSZXZl
cnNlID8gLXN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5maW5pdHkoKSA6IDAuMDsgfQor
ICAgIGRvdWJsZSBtYXhGYXN0Rm9yd2FyZFJhdGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2Nh
Y2hlZENhblBsYXlGYXN0Rm9yd2FyZCA/IHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5m
aW5pdHkoKSA6IDIuMDsgfQorICAgIGRvdWJsZSBtaW5GYXN0UmV2ZXJzZVJhdGUoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBtX2NhY2hlZENhblBsYXlGYXN0UmV2ZXJzZSA/IC1zdGQ6Om51bWVyaWNf
bGltaXRzPGRvdWJsZT46OmluZmluaXR5KCkgOiAwLjA7IH0KIAogICAgIFZlY3RvcjxTdHJpbmc+
IHByZWZlcnJlZEF1ZGlvQ2hhcmFjdGVyaXN0aWNzKCkgY29uc3Q7CiAKLSAgICB2b2lkIHNldFNo
b3VsZERpc2FibGVTbGVlcChib29sKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldFNob3VsZERpc2Fi
bGVTbGVlcChib29sKSBmaW5hbDsKICAgICB2b2lkIHVwZGF0ZVJvdGF0aW9uU2Vzc2lvbigpOwog
CiAgICAgT3B0aW9uYWw8VmlkZW9QbGF5YmFja1F1YWxpdHlNZXRyaWNzPiB2aWRlb1BsYXliYWNr
UXVhbGl0eU1ldHJpY3MoKSBmaW5hbDsKQEAgLTM0MywxMiArMzI4LDEyIEBAIHByaXZhdGU6CiAg
ICAgUmV0YWluUHRyPEFWUGxheWVySXRlbT4gbV9hdlBsYXllckl0ZW07CiAgICAgUmV0YWluUHRy
PEFWUGxheWVyTGF5ZXI+IG1fdmlkZW9MYXllcjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VmlkZW9M
YXllck1hbmFnZXJPYmpDPiBtX3ZpZGVvTGF5ZXJNYW5hZ2VyOwotICAgIE1lZGlhUGxheWVyOjpW
aWRlb0dyYXZpdHkgbV92aWRlb0Z1bGxzY3JlZW5HcmF2aXR5OworICAgIE1lZGlhUGxheWVyOjpW
aWRlb0dyYXZpdHkgbV92aWRlb0Z1bGxzY3JlZW5HcmF2aXR5IHsgTWVkaWFQbGF5ZXI6OlZpZGVv
R3Jhdml0eTo6UmVzaXplQXNwZWN0IH07CiAgICAgUmV0YWluUHRyPFdlYkNvcmVBVkZNb3ZpZU9i
c2VydmVyPiBtX29iamNPYnNlcnZlcjsKICAgICBSZXRhaW5QdHI8aWQ+IG1fdGltZU9ic2VydmVy
OwogICAgIG11dGFibGUgU3RyaW5nIG1fbGFuZ3VhZ2VPZlByaW1hcnlBdWRpb1RyYWNrOwotICAg
IGJvb2wgbV92aWRlb0ZyYW1lSGFzRHJhd247Ci0gICAgYm9vbCBtX2hhdmVDaGVja2VkUGxheWFi
aWxpdHk7CisgICAgYm9vbCBtX3ZpZGVvRnJhbWVIYXNEcmF3biB7IGZhbHNlIH07CisgICAgYm9v
bCBtX2hhdmVDaGVja2VkUGxheWFiaWxpdHkgeyBmYWxzZSB9OwogCiAjaWYgRU5BQkxFKFdFQl9B
VURJTykgJiYgVVNFKE1FRElBVE9PTEJPWCkKICAgICBSZWZQdHI8QXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakM+IG1fcHJvdmlkZXI7CkBAIC0zNzQsOSArMzU5LDcgQEAgcHJpdmF0ZToKICAgICBI
YXNoTWFwPFN0cmluZywgUmV0YWluUHRyPEFWQXNzZXRSZXNvdXJjZUxvYWRpbmdSZXF1ZXN0Pj4g
bV9zZXNzaW9uSURUb1JlcXVlc3RNYXA7CiAjZW5kaWYKIAotI2lmIEhBVkUoQVZGT1VOREFUSU9O
X0xFR0lCTEVfT1VUUFVUX1NVUFBPUlQpCiAgICAgUmV0YWluUHRyPEFWUGxheWVySXRlbUxlZ2li
bGVPdXRwdXQ+IG1fbGVnaWJsZU91dHB1dDsKLSNlbmRpZgogCiAjaWYgRU5BQkxFKFZJREVPX1RS
QUNLKQogICAgIFZlY3RvcjxSZWZQdHI8QXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDPj4gbV9hdWRp
b1RyYWNrczsKQEAgLTM4NSwxMyArMzY4LDEzIEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPE1lZGlh
U2VsZWN0aW9uR3JvdXBBVkZPYmpDPiBtX3Zpc3VhbEdyb3VwOwogI2VuZGlmCiAKLSAgICBJbmJh
bmRUZXh0VHJhY2tQcml2YXRlQVZGKiBtX2N1cnJlbnRUZXh0VHJhY2s7CisgICAgSW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZUFWRiogbV9jdXJyZW50VGV4dFRyYWNrIHsgbnVsbHB0ciB9OwogCiAjaWYg
RU5BQkxFKERBVEFDVUVfVkFMVUUpCiAgICAgUmVmUHRyPEluYmFuZE1ldGFkYXRhVGV4dFRyYWNr
UHJpdmF0ZUFWRj4gbV9tZXRhZGF0YVRyYWNrOwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShNQUMp
ICYmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCisjaWYgRU5BQkxFKFdJUkVMRVNT
X1BMQVlCQUNLX1RBUkdFVCkgJiYgUExBVEZPUk0oTUFDKQogICAgIFJldGFpblB0cjxBVk91dHB1
dENvbnRleHQ+IG1fb3V0cHV0Q29udGV4dDsKICAgICBSZWZQdHI8TWVkaWFQbGF5YmFja1Rhcmdl
dD4gbV9wbGF5YmFja1RhcmdldCB7IG51bGxwdHIgfTsKICNlbmRpZgpAQCAtMzk5LDExICszODIs
MTMgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkKICAgICBX
ZWFrUHRyPENETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDPiBtX3Nlc3Npb247CiAjZW5kaWYKKwog
I2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCiAgICAgYm9vbCBtX3dhaXRpbmdGb3JLZXkgeyBm
YWxzZSB9OwotI2lmIEhBVkUoQVZDT05URU5US0VZU0VTU0lPTikKLSAgICBSZWZQdHI8Q0RNSW5z
dGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakM+IG1fY2RtSW5zdGFuY2U7CiAjZW5kaWYKKwor
I2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpICYmIEhBVkUoQVZDT05URU5US0VZU0VTU0lPTikK
KyAgICBSZWZQdHI8Q0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakM+IG1fY2RtSW5z
dGFuY2U7CiAjZW5kaWYKIAogICAgIFJldGFpblB0cjxBVlBsYXllckl0ZW1NZXRhZGF0YUNvbGxl
Y3Rvcj4gbV9tZXRhZGF0YUNvbGxlY3RvcjsKQEAgLTQxNiwyNyArNDAxLDI3IEBAIHByaXZhdGU6
CiAgICAgRmxvYXRTaXplIG1fY2FjaGVkUHJlc2VudGF0aW9uU2l6ZTsKICAgICBNZWRpYVRpbWUg
bV9jYWNoZWREdXJhdGlvbjsKICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBtX2tleUlEOwotICAg
IGRvdWJsZSBtX2NhY2hlZFJhdGU7CisgICAgZG91YmxlIG1fY2FjaGVkUmF0ZSB7IDAgfTsKICAg
ICBib29sIG1fcmVxdWVzdGVkUGxheWluZyB7IGZhbHNlIH07CiAgICAgZG91YmxlIG1fcmVxdWVz
dGVkUmF0ZSB7IDEuMCB9OwogICAgIGludCBtX2NhY2hlZFRpbWVDb250cm9sU3RhdHVzIHsgMCB9
OwotICAgIG11dGFibGUgbG9uZyBsb25nIG1fY2FjaGVkVG90YWxCeXRlczsKLSAgICB1bnNpZ25l
ZCBtX3BlbmRpbmdTdGF0dXNDaGFuZ2VzOworICAgIG11dGFibGUgbG9uZyBsb25nIG1fY2FjaGVk
VG90YWxCeXRlcyB7IDAgfTsKKyAgICB1bnNpZ25lZCBtX3BlbmRpbmdTdGF0dXNDaGFuZ2VzIHsg
MCB9OwogICAgIGludCBtX2NhY2hlZEl0ZW1TdGF0dXM7CiAgICAgTWVkaWFQbGF5ZXI6OkJ1ZmZl
cmluZ1BvbGljeSBtX2J1ZmZlcmluZ1BvbGljeSB7IE1lZGlhUGxheWVyOjpCdWZmZXJpbmdQb2xp
Y3k6OkRlZmF1bHQgfTsKLSAgICBib29sIG1fY2FjaGVkTGlrZWx5VG9LZWVwVXA7Ci0gICAgYm9v
bCBtX2NhY2hlZEJ1ZmZlckVtcHR5OwotICAgIGJvb2wgbV9jYWNoZWRCdWZmZXJGdWxsOwotICAg
IGJvb2wgbV9jYWNoZWRIYXNFbmFibGVkQXVkaW87Ci0gICAgYm9vbCBtX2NhY2hlZElzUmVhZHlG
b3JEaXNwbGF5OwotICAgIGJvb2wgbV9oYXZlQmVlbkFza2VkVG9DcmVhdGVMYXllcjsKLSAgICBi
b29sIG1fY2FjaGVkQ2FuUGxheUZhc3RGb3J3YXJkOwotICAgIGJvb2wgbV9jYWNoZWRDYW5QbGF5
RmFzdFJldmVyc2U7CisgICAgYm9vbCBtX2NhY2hlZExpa2VseVRvS2VlcFVwIHsgZmFsc2UgfTsK
KyAgICBib29sIG1fY2FjaGVkQnVmZmVyRW1wdHkgeyBmYWxzZSB9OworICAgIGJvb2wgbV9jYWNo
ZWRCdWZmZXJGdWxsIHsgZmFsc2UgfTsKKyAgICBib29sIG1fY2FjaGVkSGFzRW5hYmxlZEF1ZGlv
IHsgZmFsc2UgfTsKKyAgICBib29sIG1fY2FjaGVkSXNSZWFkeUZvckRpc3BsYXkgeyBmYWxzZSB9
OworICAgIGJvb2wgbV9oYXZlQmVlbkFza2VkVG9DcmVhdGVMYXllciB7IGZhbHNlIH07CisgICAg
Ym9vbCBtX2NhY2hlZENhblBsYXlGYXN0Rm9yd2FyZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX2Nh
Y2hlZENhblBsYXlGYXN0UmV2ZXJzZSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX211dGVkIHsgZmFs
c2UgfTsKICAgICBib29sIG1fc2hvdWxkT2JzZXJ2ZVRpbWVDb250cm9sU3RhdHVzIHsgZmFsc2Ug
fTsKICAgICBtdXRhYmxlIE9wdGlvbmFsPGJvb2w+IG1fdHJhY2tzQXJlUGxheWFibGU7CiAjaWYg
RU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKLSAgICBtdXRhYmxlIGJvb2wgbV9hbGxv
d3NXaXJlbGVzc1ZpZGVvUGxheWJhY2s7CisgICAgbXV0YWJsZSBib29sIG1fYWxsb3dzV2lyZWxl
c3NWaWRlb1BsYXliYWNrIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9zaG91bGRQbGF5VG9QbGF5YmFj
a1RhcmdldCB7IGZhbHNlIH07CiAjZW5kaWYKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRl
eCA0OGEzNTEyY2QwOWY4NDQwZjdhZTc5MTY5N2Y2ZmU5OTQ4MGY5Nzg3Li4zYjE1MGJjYWI3N2Fh
M2FiMDAzYjhkNDc0NzE0ZmMxMGUzZDQ5ZGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KQEAg
LTQ2LDcgKzQ2LDYgQEAKICNpbXBvcnQgIkltYWdlUm90YXRpb25TZXNzaW9uVlQuaCIKICNpbXBv
cnQgIkluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRi5oIgogI2ltcG9ydCAiSW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZUFWRk9iakMuaCIKLSNpbXBvcnQgIkluYmFuZFRleHRUcmFja1ByaXZh
dGVMZWdhY3lBVkZPYmpDLmgiCiAjaW1wb3J0ICJMb2NhbGl6ZWREZXZpY2VNb2RlbC5oIgogI2lt
cG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiTWVkaWFQbGF5YmFja1RhcmdldENvY29hLmgiCkBA
IC05OCw2ICs5Nyw3IEBACiAjaW1wb3J0IDx3dGYvVVJMLmg+CiAjaW1wb3J0IDx3dGYvY29jb2Ev
VmVjdG9yQ29jb2EuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKyNpbXBvcnQgPHd0
Zi90aHJlYWRzL0JpbmFyeVNlbWFwaG9yZS5oPgogCiAjaWYgRU5BQkxFKEFWRl9DQVBUSU9OUykK
ICNpbXBvcnQgIlRleHRUcmFjay5oIgpAQCAtMjY5LDcgKzI2OSw3IEBAIHN0YXRpYyBkaXNwYXRj
aF9xdWV1ZV90IGdsb2JhbFB1bGxEZWxlZ2F0ZVF1ZXVlKCkKICAgICByZXR1cm4gZ2xvYmFsUXVl
dWU7CiB9CiAKLWNsYXNzIE1lZGlhUGxheWVyRmFjdG9yeUFWRm91bmRhdGlvbk9iakMgZmluYWwg
OiBwdWJsaWMgTWVkaWFQbGF5ZXJGYWN0b3J5IHsKK2NsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6OkZhY3RvcnkgZmluYWwgOiBwdWJsaWMgTWVkaWFQbGF5ZXJGYWN0b3J5
IHsKIHByaXZhdGU6CiAgICAgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVy
IGlkZW50aWZpZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBNZWRpYVBsYXllckVudW1zOjpNZWRp
YUVuZ2luZUlkZW50aWZpZXI6OkFWRm91bmRhdGlvbjsgfTsKIApAQCAtMzE2LDcgKzMxNiw3IEBA
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cmVnaXN0ZXJNZWRpYUVu
Z2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhCiAKICAgICBBU1NFUlQoQVZBc3NldE1JTUVUeXBlQ2Fj
aGU6OnNpbmdsZXRvbigpLmlzQXZhaWxhYmxlKCkpOwogCi0gICAgcmVnaXN0cmFyKG1ha2VVbmlx
dWU8TWVkaWFQbGF5ZXJGYWN0b3J5QVZGb3VuZGF0aW9uT2JqQz4oKSk7CisgICAgcmVnaXN0cmFy
KG1ha2VVbmlxdWU8RmFjdG9yeT4oKSk7CiB9CiAKIHN0YXRpYyBBVkFzc2V0Q2FjaGUgKmFzc2V0
Q2FjaGVGb3JQYXRoKGNvbnN0IFN0cmluZyYgcGF0aCkKQEAgLTQzMiwyNyArNDMyLDExIEBAIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y2xlYXJNZWRpYUNhY2hlRm9y
T3JpZ2lucyhjb25zdCBTdHJpbmcmCiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
OjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDKE1lZGlhUGxheWVyKiBwbGF5ZXIp
CiAgICAgOiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24ocGxheWVyKQogICAgICwgbV92
aWRlb0xheWVyTWFuYWdlcihtYWtlVW5pcXVlPFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQz4obG9nZ2Vy
KCksIGxvZ0lkZW50aWZpZXIoKSkpCi0gICAgLCBtX3ZpZGVvRnVsbHNjcmVlbkdyYXZpdHkoTWVk
aWFQbGF5ZXI6OlZpZGVvR3Jhdml0eTo6UmVzaXplQXNwZWN0KQogICAgICwgbV9vYmpjT2JzZXJ2
ZXIoYWRvcHROUyhbW1dlYkNvcmVBVkZNb3ZpZU9ic2VydmVyIGFsbG9jXSBpbml0V2l0aFBsYXll
cjptYWtlV2Vha1B0cigqdGhpcyldKSkKLSAgICAsIG1fdmlkZW9GcmFtZUhhc0RyYXduKGZhbHNl
KQotICAgICwgbV9oYXZlQ2hlY2tlZFBsYXlhYmlsaXR5KGZhbHNlKQogI2lmIEhBVkUoQVZGT1VO
REFUSU9OX0xPQURFUl9ERUxFR0FURSkKICAgICAsIG1fbG9hZGVyRGVsZWdhdGUoYWRvcHROUyhb
W1dlYkNvcmVBVkZMb2FkZXJEZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhQbGF5ZXI6bWFrZVdlYWtQ
dHIoKnRoaXMpXSkpCiAjZW5kaWYKLSAgICAsIG1fY3VycmVudFRleHRUcmFjaygwKQotICAgICwg
bV9jYWNoZWRSYXRlKDApCi0gICAgLCBtX2NhY2hlZFRvdGFsQnl0ZXMoMCkKLSAgICAsIG1fcGVu
ZGluZ1N0YXR1c0NoYW5nZXMoMCkKICAgICAsIG1fY2FjaGVkSXRlbVN0YXR1cyhNZWRpYVBsYXll
ckFWUGxheWVySXRlbVN0YXR1c0RvZXNOb3RFeGlzdCkKLSAgICAsIG1fY2FjaGVkTGlrZWx5VG9L
ZWVwVXAoZmFsc2UpCi0gICAgLCBtX2NhY2hlZEJ1ZmZlckVtcHR5KGZhbHNlKQotICAgICwgbV9j
YWNoZWRCdWZmZXJGdWxsKGZhbHNlKQotICAgICwgbV9jYWNoZWRIYXNFbmFibGVkQXVkaW8oZmFs
c2UpCi0gICAgLCBtX2NhY2hlZElzUmVhZHlGb3JEaXNwbGF5KGZhbHNlKQotICAgICwgbV9oYXZl
QmVlbkFza2VkVG9DcmVhdGVMYXllcihmYWxzZSkKLSNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJB
Q0tfVEFSR0VUKQotICAgICwgbV9hbGxvd3NXaXJlbGVzc1ZpZGVvUGxheWJhY2sodHJ1ZSkKLSNl
bmRpZgogewogfQogCkBAIC00NjYsNiArNDUwLDcgQEAgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6fk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMoKQogICAgIGZv
ciAoYXV0byYgcGFpciA6IG1fcmVzb3VyY2VMb2FkZXJNYXApCiAgICAgICAgIHBhaXIudmFsdWUt
PmludmFsaWRhdGUoKTsKICNlbmRpZgorCiAgICAgW21fdmlkZW9PdXRwdXQgc2V0RGVsZWdhdGU6
bmlsIHF1ZXVlOjBdOwogCiAgICAgaWYgKG1fdmlkZW9MYXllcikKQEAgLTIzMzUsMTIgKzIzMjAs
NiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmtleUFkZGVkKCkK
ICAgICAgICAgbV9rZXlVUklUb1JlcXVlc3RNYXAucmVtb3ZlKGtleUlkKTsKIH0KIAotdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpyZW1vdmVTZXNzaW9uKExlZ2FjeUNE
TVNlc3Npb24mIHNlc3Npb24pCi17Ci0gICAgQVNTRVJUX1VOVVNFRChzZXNzaW9uLCAmc2Vzc2lv
biA9PSBtX3Nlc3Npb24pOwotICAgIG1fc2Vzc2lvbiA9IG51bGxwdHI7Ci19Ci0KIHN0ZDo6dW5p
cXVlX3B0cjxMZWdhY3lDRE1TZXNzaW9uPiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjpjcmVhdGVTZXNzaW9uKGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBMZWdhY3lDRE1TZXNz
aW9uQ2xpZW50KiBjbGllbnQpCiB7CiAgICAgaWYgKCFrZXlTeXN0ZW1Jc1N1cHBvcnRlZChrZXlT
eXN0ZW0pKQpAQCAtMjM0OSw5ICsyMzI4LDkgQEAgc3RkOjp1bmlxdWVfcHRyPExlZ2FjeUNETVNl
c3Npb24+IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZVNlc3MKICAg
ICBtX3Nlc3Npb24gPSBtYWtlV2Vha1B0cigqc2Vzc2lvbik7CiAgICAgcmV0dXJuIFdURk1vdmUo
c2Vzc2lvbik7CiB9CisKICNlbmRpZgogCi0jaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkgfHwg
RU5BQkxFKExFR0FDWV9FTkNSWVBURURfTUVESUEpCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6Om91dHB1dE9ic2N1cmVkRHVlVG9JbnN1ZmZpY2llbnRFeHRlcm5hbFBy
b3RlY3Rpb25DaGFuZ2VkKGJvb2wgbmV3VmFsdWUpCiB7CiAjaWYgRU5BQkxFKExFR0FDWV9FTkNS
WVBURURfTUVESUEpCkBAIC0yMzY2LDcgKzIzNDUsNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakM6Om91dHB1dE9ic2N1cmVkRHVlVG9JbnN1ZmZpY2llbnRFeHRlcm5h
bAogICAgIFVOVVNFRF9QQVJBTShuZXdWYWx1ZSk7CiAjZW5kaWYKIH0KLSNlbmRpZgogCiAjaWYg
RU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6Y2RtSW5zdGFuY2VBdHRhY2hlZChDRE1JbnN0YW5jZSYgaW5zdGFuY2UpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>