<?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>234780</bug_id>
          
          <creation_ts>2022-01-01 02:26:38 -0800</creation_ts>
          <short_desc>[JSC] Remove JSWebAssemblyCalleeGroup cell</short_desc>
          <delta_ts>2022-01-04 13:27:28 -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="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1827412</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-01-01 02:26:38 -0800</bug_when>
    <thetext>[JSC] Remove JSWebAssemblyCalleeGroup cell</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827413</commentid>
    <comment_count>1</comment_count>
      <attachid>448150</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-01-01 02:28:21 -0800</bug_when>
    <thetext>Created attachment 448150
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827414</commentid>
    <comment_count>2</comment_count>
      <attachid>448151</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-01-01 02:46:16 -0800</bug_when>
    <thetext>Created attachment 448151
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827417</commentid>
    <comment_count>3</comment_count>
      <attachid>448153</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-01-01 03:52:04 -0800</bug_when>
    <thetext>Created attachment 448153
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828041</commentid>
    <comment_count>4</comment_count>
      <attachid>448153</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2022-01-04 12:36:18 -0800</bug_when>
    <thetext>Comment on attachment 448153
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828073</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-01-04 13:26:53 -0800</bug_when>
    <thetext>Committed r287582 (245711@main): &lt;https://commits.webkit.org/245711@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 448153.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828074</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-01-04 13:27:28 -0800</bug_when>
    <thetext>&lt;rdar://problem/87112090&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448150</attachid>
            <date>2022-01-01 02:28:21 -0800</date>
            <delta_ts>2022-01-01 02:51:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234780-20220101022820.patch</filename>
            <type>text/plain</type>
            <size>33354</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NDk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
NzI3OThlMGU3YmE3YTNmNWRlMjZhOGFjNjdmOWNiOTMxZjMyNmYwLi5hYmVjMDBlMGZjMWZkZmQy
MzI0NzJkYzI1OWJjZGQxOTgxOGZhYTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MiBAQAorMjAyMi0wMS0wMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFJlbW92ZSBKU1dlYkFzc2VtYmx5Q2FsbGVlR3JvdXAgY2VsbAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0NzgwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBjZWxs
IGlzIG5vdCBvYnNlcnZhYmxlIHRvIHVzZXJzLiBBbmQgdGhpcyBjZWxsIGp1c3QgaG9sZHMgV2Fz
bS10by1KUyBzdHVicywKKyAgICAgICAgYnV0IGl0IGlzIHRoZSBzYW1lIHRvIGFsbCBtZW1vcnkg
bW9kZXMuIFRodXMsIHdlIHNob3VsZCBqdXN0IGdlbmVyYXRlIGl0IGluIFZNLWxpbmtlZAorICAg
ICAgICBXYXNtOjpNb2R1bGUgKGl0IG1lYW5zLCB3ZSBzaG91bGQgaGF2ZSBpdCBpbiBKU1dlYkFz
c2VtYmx5TW9kdWxlKSwgYW5kIHdlIGRvIG5vdCBuZWVkCisgICAgICAgIHRvIGhhdmUgLyBhbGxv
Y2F0ZSBKU1dlYkFzc2VtYmx5Q2FsbGVlR3JvdXAgY2VsbC4KKworICAgICAgICAqIEphdmFTY3Jp
cHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogU291cmNlcy50eHQ6
CisgICAgICAgICogaGVhcC9IZWFwLmNwcDoKKyAgICAgICAgKEpTQzo6SGVhcDo6SGVhcCk6Cisg
ICAgICAgIChKU0M6OkhlYXA6OmZpbmFsaXplVW5jb25kaXRpb25hbEZpbmFsaXplcnMpOgorICAg
ICAgICAoSlNDOjpIZWFwOjpkZWxldGVBbGxDb2RlQmxvY2tzKToKKyAgICAgICAgKiBoZWFwL0hl
YXAuaDoKKyAgICAgICAgKiBydW50aW1lL1ZNLmNwcDoKKyAgICAgICAgKEpTQzo6Vk06OlZNKToK
KyAgICAgICAgKiB3YXNtL2pzL0pTV2ViQXNzZW1ibHlDYWxsZWVHcm91cC5jcHA6IFJlbW92ZWQu
CisgICAgICAgICogd2FzbS9qcy9KU1dlYkFzc2VtYmx5Q2FsbGVlR3JvdXAuaDogUmVtb3ZlZC4K
KyAgICAgICAgKiB3YXNtL2pzL0pTV2ViQXNzZW1ibHlJbnN0YW5jZS5jcHA6CisgICAgICAgIChK
U0M6OkpTV2ViQXNzZW1ibHlJbnN0YW5jZTo6dmlzaXRDaGlsZHJlbkltcGwpOgorICAgICAgICAo
SlNDOjpKU1dlYkFzc2VtYmx5SW5zdGFuY2U6OmZpbmFsaXplQ3JlYXRpb24pOgorICAgICAgICAq
IHdhc20vanMvSlNXZWJBc3NlbWJseUluc3RhbmNlLmg6CisgICAgICAgICogd2FzbS9qcy9KU1dl
YkFzc2VtYmx5TW9kdWxlLmNwcDoKKyAgICAgICAgKEpTQzo6SlNXZWJBc3NlbWJseU1vZHVsZTo6
Y3JlYXRlU3R1Yik6CisgICAgICAgIChKU0M6OkpTV2ViQXNzZW1ibHlNb2R1bGU6OnZpc2l0Q2hp
bGRyZW5JbXBsKToKKyAgICAgICAgKEpTQzo6SlNXZWJBc3NlbWJseU1vZHVsZTo6Y2xlYXJKU0Nh
bGxJQ3MpOgorICAgICAgICAoSlNDOjpKU1dlYkFzc2VtYmx5TW9kdWxlOjpmaW5hbGl6ZVVuY29u
ZGl0aW9uYWxseSk6CisgICAgICAgIChKU0M6OkpTV2ViQXNzZW1ibHlNb2R1bGU6OmdlbmVyYXRl
V2FzbVRvSlNTdHVicyk6CisgICAgICAgIChKU0M6OkpTV2ViQXNzZW1ibHlNb2R1bGU6OmNhbGxl
ZUdyb3VwKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SlNXZWJBc3NlbWJseU1vZHVsZTo6c2V0
Q2FsbGVlR3JvdXApOiBEZWxldGVkLgorICAgICAgICAqIHdhc20vanMvSlNXZWJBc3NlbWJseU1v
ZHVsZS5oOgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvci5j
cHA6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbi5oOgorCiAy
MDIxLTEyLTMwICBBZHJpYW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CiAK
ICAgICAgICAgTm9uLXVuaWZpZWQgYnVpbGQgZml4ZXMsIGVuZC1vZi15ZWFyIDIwMjEgZWRpdGlv
bgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBhMTZjMmY0NTE0NzVlOWJhM2YyNzIw
NzA4M2EwZjQ4MDAxNjMxNDYyLi5kNjVjY2JhYzBjMzdmZDk5ZWUwZGUzMWE5ZWExMDhhM2ExODEy
NmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTY2Niw3ICsxNjY2LDYgQEAK
IAkJQUQ3QjRCMkUxRkEzRTI5ODAwQzlERjc5IC8qIFdhc21OYW1lU2VjdGlvbi5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUQ3QjRCMkQxRkEzRTI4NjAw
QzlERjc5IC8qIFdhc21OYW1lU2VjdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUFEODZBOTNFMUFBNEQ4OEQwMDJGRTc3RiAvKiBXZWFrR0NN
YXBJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBRDg2QTkzRDFBQTREODdDMDAyRkU3N0YgLyogV2Vha0dDTWFwSW5saW5lcy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUFEOEZGMzk4MUVCNUJE
QjIwMDg3RkY4MiAvKiBXYXNtSW5kZXhPck5hbWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFEOEZGMzk1MUVCNUJEODUwMDg3RkY4MiAvKiBXYXNtSW5k
ZXhPck5hbWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwotCQlBRDlFODUyRjFFOEEwQzdDMDA4REUzOUUgLyogSlNXZWJBc3NlbWJseUNhbGxlZUdyb3Vw
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRDlFODUy
RTFFOEEwQzZFMDA4REUzOUUgLyogSlNXZWJBc3NlbWJseUNhbGxlZUdyb3VwLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQUREOEZBNDYxRUIzMDc5
NzAwREY1NDJGIC8qIFdhc21OYW1lU2VjdGlvblBhcnNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUREOEZBNDMxRUIzMDc3MTAwREY1NDJGIC8qIFdh
c21OYW1lU2VjdGlvblBhcnNlci5oICovOyB9OwogCQlBREU4MDI5OTFFMDhGMURFMDA1OERFNzgg
LyogSlNXZWJBc3NlbWJseUxpbmtFcnJvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQURFODAyOTQxRTA4RjFDOTAwNThERTc4IC8qIEpTV2ViQXNzZW1i
bHlMaW5rRXJyb3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlBREU4MDI5QTFFMDhGMURFMDA1OERFNzggLyogV2ViQXNzZW1ibHlMaW5rRXJyb3JD
b25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQURFODAyOTUxRTA4RjFDOTAwNThERTc4IC8qIFdlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3Ry
dWN0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpA
QCAtMzkzNiw3ICszOTM1LDYgQEAKIAkJNTM3M0I0RDQyMkFEQjMxNDAwODAzNTcyIC8qIFdlYWtP
YmplY3RSZWZDb25zdHJ1Y3Rvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWFrT2JqZWN0UmVm
Q29uc3RydWN0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MzgxQjkzNjFF
NjBFOTY2MDA5MEY3OTQgLyogV2FzbUZhdWx0U2lnbmFsSGFuZGxlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXYXNtRmF1bHRTaWduYWxIYW5kbGVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTM4MUI5MzgxRTYwRTk3RDAwOTBGNzk0IC8qIFdh
c21GYXVsdFNpZ25hbEhhbmRsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2FzbUZhdWx0U2lnbmFsSGFuZGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1
MzgzQUEyRjFFNjVFOEExMDBBNTMyRkMgLyogSlNXZWJBc3NlbWJseUNhbGxlZUdyb3VwLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEpTV2ViQXNzZW1ibHlDYWxsZWVH
cm91cC5jcHA7IHBhdGggPSBqcy9KU1dlYkFzc2VtYmx5Q2FsbGVlR3JvdXAuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1MzhGMTVERDI2OEZCQkIzMDBENjAxQzQgLyogVW5pZmll
ZFNvdXJjZTE0OC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBVbmlm
aWVkU291cmNlMTQ4LmNwcDsgcGF0aCA9ICJEZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0Q29yZS91
bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTE0OC5jcHAiOyBzb3VyY2VUcmVlID0gQlVJTFRf
UFJPRFVDVFNfRElSOyB9OwogCQk1MzhGMTVERTI2OEZCQkIzMDBENjAxQzQgLyogVW5pZmllZFNv
dXJjZTE1MS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBVbmlmaWVk
U291cmNlMTUxLmNwcDsgcGF0aCA9ICJEZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0Q29yZS91bmlm
aWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTE1MS5jcHAiOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJP
RFVDVFNfRElSOyB9OwogCQk1MzhGMTVERjI2OEZCQkIzMDBENjAxQzQgLyogVW5pZmllZFNvdXJj
ZTE1Mi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBVbmlmaWVkU291
cmNlMTUyLmNwcDsgcGF0aCA9ICJEZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0Q29yZS91bmlmaWVk
LXNvdXJjZXMvVW5pZmllZFNvdXJjZTE1Mi5jcHAiOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVD
VFNfRElSOyB9OwpAQCAtNDkyNyw3ICs0OTI1LDYgQEAKIAkJQUQ4REQ2RDAxRjY3MDhBMzAwMDRF
QjUyIC8qIEpTVG9XYXNtLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEpTVG9XYXNtLmNwcDsgcGF0
aCA9IGpzL0pTVG9XYXNtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUQ4RkYz
OTUxRUI1QkQ4NTAwODdGRjgyIC8qIFdhc21JbmRleE9yTmFtZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXYXNtSW5kZXhPck5hbWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQUQ4RkYzOTYxRUI1QkQ4NTAwODdGRjgyIC8qIFdhc21JbmRleE9yTmFtZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXYXNtSW5kZXhPck5hbWUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBRDlFODUyRTFFOEEwQzZFMDA4REUzOUUg
LyogSlNXZWJBc3NlbWJseUNhbGxlZUdyb3VwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IEpTV2ViQXNzZW1ibHlDYWxsZWVHcm91cC5oOyBwYXRoID0ganMvSlNXZWJBc3NlbWJs
eUNhbGxlZUdyb3VwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFEQjZGNjdDMUUx
NUQ3NTAwMDgyRjM4NCAvKiBXYXNtUGFnZUNvdW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdhc21QYWdlQ291bnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBREQwOUFFRTFGNUY2MjNGMDAxMzEzQzIgLyogV2FzbVRvSlMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gV2FzbVRvSlMuaDsgcGF0aCA9IGpzL1dhc21Ub0pTLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUFERDA5QUVGMUY1RjYyM0YwMDEzMTNDMiAvKiBXYXNtVG9KUy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBXYXNtVG9KUy5jcHA7IHBhdGggPSBqcy9XYXNtVG9KUy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05MTg0LDggKzkxODEsNiBAQAogCQkJCTUyN0NF
MzUzMjI1NTVGREQwMEM2RjM4MiAvKiBKU1RvV2FzbUlDQ2FsbGVlLmggKi8sCiAJCQkJQUREMDlB
RjIxRjYyNDgyOTAwMTMxM0MyIC8qIEpTV2ViQXNzZW1ibHkuY3BwICovLAogCQkJCUFERDA5QUYz
MUY2MjQ4MkUwMDEzMTNDMiAvKiBKU1dlYkFzc2VtYmx5LmggKi8sCi0JCQkJNTM4M0FBMkYxRTY1
RThBMTAwQTUzMkZDIC8qIEpTV2ViQXNzZW1ibHlDYWxsZWVHcm91cC5jcHAgKi8sCi0JCQkJQUQ5
RTg1MkUxRThBMEM2RTAwOERFMzlFIC8qIEpTV2ViQXNzZW1ibHlDYWxsZWVHcm91cC5oICovLAog
CQkJCUFEMkZDQkE2MURCNThEQTQwMEIzRTczNiAvKiBKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9y
LmNwcCAqLywKIAkJCQlBRDJGQ0JBNzFEQjU4REE0MDBCM0U3MzYgLyogSlNXZWJBc3NlbWJseUNv
bXBpbGVFcnJvci5oICovLAogCQkJCTE0RDAxQkRDMjZERUVGMzcwMENBRTBEMCAvKiBKU1dlYkFz
c2VtYmx5RXhjZXB0aW9uLmNwcCAqLywKQEAgLTEwNTEwLDcgKzEwNTA1LDYgQEAKIAkJCQk3MDlG
Qjg2ODFBRTMzNUM2MDAzOUQwNjkgLyogSlNXZWFrU2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQk3
QTk3NzRBODIwNkI4MkU0MDA4RDAzRDAgLyogSlNXZWFrVmFsdWUuaCBpbiBIZWFkZXJzICovLAog
CQkJCUFENUMzNkVCMUY3NUFENzMwMDBCQ0FBRiAvKiBKU1dlYkFzc2VtYmx5LmggaW4gSGVhZGVy
cyAqLywKLQkJCQlBRDlFODUyRjFFOEEwQzdDMDA4REUzOUUgLyogSlNXZWJBc3NlbWJseUNhbGxl
ZUdyb3VwLmggaW4gSGVhZGVycyAqLywKIAkJCQlBRDJGQ0JFMzFEQjU4REFEMDBCM0U3MzYgLyog
SlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTREMDFCRUQy
NkRFRUYzODAwQ0FFMEQwIC8qIEpTV2ViQXNzZW1ibHlFeGNlcHRpb24uaCBpbiBIZWFkZXJzICov
LAogCQkJCUUzQkYzQzREMjM5MEQxRTgwMDhCQzc1MiAvKiBKU1dlYkFzc2VtYmx5R2xvYmFsLmgg
aW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2Vz
LnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4dAppbmRleCBmZjhiYmU5YjJk
MzkxZDRiNmRhNWExNDQxYmYwZDhkNzA2ZGM2OTVlLi43MmVjZDljY2I1NWUwN2E4Zjc1ZDk4Yzhj
NzdlZTk4NGU4YzdmYzcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU291cmNl
cy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NvdXJjZXMudHh0CkBAIC0xMTIxLDcg
KzExMjEsNiBAQCB3YXNtL2pzL0pTVG9XYXNtLmNwcAogd2FzbS9qcy9KU1RvV2FzbS5oCiB3YXNt
L2pzL0pTVG9XYXNtSUNDYWxsZWUuY3BwCiB3YXNtL2pzL0pTV2ViQXNzZW1ibHkuY3BwCi13YXNt
L2pzL0pTV2ViQXNzZW1ibHlDYWxsZWVHcm91cC5jcHAKIHdhc20vanMvSlNXZWJBc3NlbWJseUNv
bXBpbGVFcnJvci5jcHAKIHdhc20vanMvSlNXZWJBc3NlbWJseUV4Y2VwdGlvbi5jcHAKIHdhc20v
anMvSlNXZWJBc3NlbWJseUdsb2JhbC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL0hlYXAuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAK
aW5kZXggMzk2MzA4MGRlNzYyMGFkZjI3MjM4YTU0NDhmOTcxZTQ1MDA0YjE4Yy4uMTBiYjk1NGMz
MGFiMjQzZGM5M2JkM2M4YTA2NjEyZmM4OTQ1YjFkZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
SGVhcC5jcHAKQEAgLTU1LDcgKzU1LDYgQEAKICNpbmNsdWRlICJKU1dlYWtNYXAuaCIKICNpbmNs
dWRlICJKU1dlYWtPYmplY3RSZWYuaCIKICNpbmNsdWRlICJKU1dlYWtTZXQuaCIKLSNpbmNsdWRl
ICJKU1dlYkFzc2VtYmx5Q2FsbGVlR3JvdXAuaCIKICNpbmNsdWRlICJNYWNoaW5lU3RhY2tNYXJr
ZXIuaCIKICNpbmNsdWRlICJNYXJrU3RhY2tNZXJnaW5nQ29uc3RyYWludC5oIgogI2luY2x1ZGUg
Ik1hcmtlZEpTVmFsdWVSZWZBcnJheS5oIgpAQCAtMzM1LDcgKzMzNCw2IEBAIEhlYXA6OkhlYXAo
Vk0mIHZtLCBIZWFwVHlwZSBoZWFwVHlwZSkKICAgICAsIGludGxTZWdtZW50ZXJIZWFwQ2VsbFR5
cGUoSXNvSGVhcENlbGxUeXBlOjpBcmdzPEludGxTZWdtZW50ZXI+KCkpCiAgICAgLCBpbnRsU2Vn
bWVudHNIZWFwQ2VsbFR5cGUoSXNvSGVhcENlbGxUeXBlOjpBcmdzPEludGxTZWdtZW50cz4oKSkK
ICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCi0gICAgLCB3ZWJBc3NlbWJseUNhbGxlZUdyb3VwSGVh
cENlbGxUeXBlKElzb0hlYXBDZWxsVHlwZTo6QXJnczxKU1dlYkFzc2VtYmx5Q2FsbGVlR3JvdXA+
KCkpCiAgICAgLCB3ZWJBc3NlbWJseUV4Y2VwdGlvbkhlYXBDZWxsVHlwZShJc29IZWFwQ2VsbFR5
cGU6OkFyZ3M8SlNXZWJBc3NlbWJseUV4Y2VwdGlvbj4oKSkKICAgICAsIHdlYkFzc2VtYmx5RnVu
Y3Rpb25IZWFwQ2VsbFR5cGUoSXNvSGVhcENlbGxUeXBlOjpBcmdzPFdlYkFzc2VtYmx5RnVuY3Rp
b24+KCkpCiAgICAgLCB3ZWJBc3NlbWJseUdsb2JhbEhlYXBDZWxsVHlwZShJc29IZWFwQ2VsbFR5
cGU6OkFyZ3M8SlNXZWJBc3NlbWJseUdsb2JhbD4oKSkKQEAgLTcxNCw4ICs3MTIsOCBAQCB2b2lk
IEhlYXA6OmZpbmFsaXplVW5jb25kaXRpb25hbEZpbmFsaXplcnMoKQogICAgICAgICBmaW5hbGl6
ZU1hcmtlZFVuY29uZGl0aW9uYWxGaW5hbGl6ZXJzPEpTRmluYWxpemF0aW9uUmVnaXN0cnk+KCpt
X2ZpbmFsaXphdGlvblJlZ2lzdHJ5U3BhY2UpOwogCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQot
ICAgIGlmIChtX3dlYkFzc2VtYmx5Q2FsbGVlR3JvdXBTcGFjZSkKLSAgICAgICAgZmluYWxpemVN
YXJrZWRVbmNvbmRpdGlvbmFsRmluYWxpemVyczxKU1dlYkFzc2VtYmx5Q2FsbGVlR3JvdXA+KCpt
X3dlYkFzc2VtYmx5Q2FsbGVlR3JvdXBTcGFjZSk7CisgICAgaWYgKG1fd2ViQXNzZW1ibHlNb2R1
bGVTcGFjZSkKKyAgICAgICAgZmluYWxpemVNYXJrZWRVbmNvbmRpdGlvbmFsRmluYWxpemVyczxK
U1dlYkFzc2VtYmx5TW9kdWxlPigqbV93ZWJBc3NlbWJseU1vZHVsZVNwYWNlKTsKICNlbmRpZgog
fQogCkBAIC0xMDM2LDEwICsxMDM0LDEwIEBAIHZvaWQgSGVhcDo6ZGVsZXRlQWxsQ29kZUJsb2Nr
cyhEZWxldGVBbGxDb2RlRWZmb3J0IGVmZm9ydCkKICAgICAgICAgLy8gcG9pbnRzIGludG8gYSBD
b2RlQmxvY2sgdGhhdCBjb3VsZCBiZSBkZWFkLiBUaGUgSUMgd2lsbCBzdGlsbCBzdWNjZWVkIGJl
Y2F1c2UKICAgICAgICAgLy8gaXQgdXNlcyBhIGNhbGxlZSBjaGVjaywgYnV0IHRoZW4gaXQgd2ls
bCBjYWxsIGludG8gZGVhZCBjb2RlLgogICAgICAgICBIZWFwSXRlcmF0aW9uU2NvcGUgaGVhcEl0
ZXJhdGlvblNjb3BlKCp0aGlzKTsKLSAgICAgICAgaWYgKG1fd2ViQXNzZW1ibHlDYWxsZWVHcm91
cFNwYWNlKSB7Ci0gICAgICAgICAgICBtX3dlYkFzc2VtYmx5Q2FsbGVlR3JvdXBTcGFjZS0+Zm9y
RWFjaExpdmVDZWxsKFsmXSAoSGVhcENlbGwqIGNlbGwsIEhlYXBDZWxsOjpLaW5kIGtpbmQpIHsK
KyAgICAgICAgaWYgKG1fd2ViQXNzZW1ibHlNb2R1bGVTcGFjZSkgeworICAgICAgICAgICAgbV93
ZWJBc3NlbWJseU1vZHVsZVNwYWNlLT5mb3JFYWNoTGl2ZUNlbGwoWyZdIChIZWFwQ2VsbCogY2Vs
bCwgSGVhcENlbGw6OktpbmQga2luZCkgewogICAgICAgICAgICAgICAgIEFTU0VSVF9VTlVTRUQo
a2luZCwga2luZCA9PSBIZWFwQ2VsbDo6SlNDZWxsKTsKLSAgICAgICAgICAgICAgICBzdGF0aWNf
Y2FzdDxKU1dlYkFzc2VtYmx5Q2FsbGVlR3JvdXAqPihjZWxsKS0+Y2xlYXJKU0NhbGxJQ3Modm0p
OworICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PEpTV2ViQXNzZW1ibHlNb2R1bGUqPihjZWxs
KS0+Y2xlYXJKU0NhbGxJQ3Modm0pOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0KICAgICB9
CkBAIC0zMjc0LDcgKzMyNzIsNiBAQCBEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVS
X1NMT1coaW50bFNlZ21lbnRlclNwYWNlLCBpbnRsU2VnbWVudGVySGVhcENlbAogRFlOQU1JQ19J
U09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKGludGxTZWdtZW50c1NwYWNlLCBpbnRsU2Vn
bWVudHNIZWFwQ2VsbFR5cGUsIEludGxTZWdtZW50cykKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkp
CiBEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1coanNUb1dhc21JQ0NhbGxl
ZVNwYWNlLCBjZWxsSGVhcENlbGxUeXBlLCBKU1RvV2FzbUlDQ2FsbGVlKQotRFlOQU1JQ19JU09f
U1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKHdlYkFzc2VtYmx5Q2FsbGVlR3JvdXBTcGFjZSwg
d2ViQXNzZW1ibHlDYWxsZWVHcm91cEhlYXBDZWxsVHlwZSwgSlNXZWJBc3NlbWJseUNhbGxlZUdy
b3VwKSAvLyBIYXNoOjB4OWFkOTk1Y2QKIERZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1C
RVJfU0xPVyh3ZWJBc3NlbWJseUV4Y2VwdGlvblNwYWNlLCB3ZWJBc3NlbWJseUV4Y2VwdGlvbkhl
YXBDZWxsVHlwZSwgSlNXZWJBc3NlbWJseUV4Y2VwdGlvbikKIERZTkFNSUNfSVNPX1NVQlNQQUNF
X0RFRklORV9NRU1CRVJfU0xPVyh3ZWJBc3NlbWJseUZ1bmN0aW9uU3BhY2UsIHdlYkFzc2VtYmx5
RnVuY3Rpb25IZWFwQ2VsbFR5cGUsIFdlYkFzc2VtYmx5RnVuY3Rpb24pIC8vIEhhc2g6MHg4Yjdj
MzJkYgogRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKHdlYkFzc2VtYmx5
R2xvYmFsU3BhY2UsIHdlYkFzc2VtYmx5R2xvYmFsSGVhcENlbGxUeXBlLCBKU1dlYkFzc2VtYmx5
R2xvYmFsKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCmluZGV4IGRhY2QyNzY1ZjEyOWU0Y2Y3
ZmM1M2I4NWM1MGQ0NjFiNWM2NGQ0MjUuLjhkOWExNDc4OTE4NDAwNjExZjY1Y2Q3ZDBjZTQwNTYz
ZDIzNTc2MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgKQEAgLTc4NSw3ICs3ODUsNiBA
QCBjbGFzcyBIZWFwIHsKICAgICBJc29IZWFwQ2VsbFR5cGUgaW50bFNlZ21lbnRlckhlYXBDZWxs
VHlwZTsKICAgICBJc29IZWFwQ2VsbFR5cGUgaW50bFNlZ21lbnRzSGVhcENlbGxUeXBlOwogI2lm
IEVOQUJMRShXRUJBU1NFTUJMWSkKLSAgICBJc29IZWFwQ2VsbFR5cGUgd2ViQXNzZW1ibHlDYWxs
ZWVHcm91cEhlYXBDZWxsVHlwZTsKICAgICBJc29IZWFwQ2VsbFR5cGUgd2ViQXNzZW1ibHlFeGNl
cHRpb25IZWFwQ2VsbFR5cGU7CiAgICAgSXNvSGVhcENlbGxUeXBlIHdlYkFzc2VtYmx5RnVuY3Rp
b25IZWFwQ2VsbFR5cGU7CiAgICAgSXNvSGVhcENlbGxUeXBlIHdlYkFzc2VtYmx5R2xvYmFsSGVh
cENlbGxUeXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0u
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCmluZGV4IGM2YmU0NTdi
NmQwNjAzZDY2ZDI4NTgxMjE4ZTA0ZDRmYzAzY2M0MjMuLmY1NDk0NjQ0ODI0ZjcyMmE3OWIzZGM0
YWUwM2RjMTBiYmU0ODc5ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1ZNLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKQEAg
LTc3LDcgKzc3LDYgQEAKICNpbmNsdWRlICJKU1NldC5oIgogI2luY2x1ZGUgIkpTU291cmNlQ29k
ZS5oIgogI2luY2x1ZGUgIkpTVGVtcGxhdGVPYmplY3REZXNjcmlwdG9yLmgiCi0jaW5jbHVkZSAi
SlNXZWJBc3NlbWJseUNhbGxlZUdyb3VwLmgiCiAjaW5jbHVkZSAiTExJbnREYXRhLmgiCiAjaW5j
bHVkZSAiTExJbnRFeGNlcHRpb25zLmgiCiAjaW5jbHVkZSAiTWFya2VkQmxvY2tJbmxpbmVzLmgi
CkBAIC0yNzAsOSArMjY5LDYgQEAgVk06OlZNKFZNVHlwZSB2bVR5cGUsIEhlYXBUeXBlIGhlYXBU
eXBlLCBXVEY6OlJ1bkxvb3AqIHJ1bkxvb3AsIGJvb2wqIHN1Y2Nlc3MpCiAgICAgZXZhbEV4ZWN1
dGFibGVTdHJ1Y3R1cmUuc2V0KCp0aGlzLCBFdmFsRXhlY3V0YWJsZTo6Y3JlYXRlU3RydWN0dXJl
KCp0aGlzLCBudWxscHRyLCBqc051bGwoKSkpOwogICAgIHByb2dyYW1FeGVjdXRhYmxlU3RydWN0
dXJlLnNldCgqdGhpcywgUHJvZ3JhbUV4ZWN1dGFibGU6OmNyZWF0ZVN0cnVjdHVyZSgqdGhpcywg
bnVsbHB0ciwganNOdWxsKCkpKTsKICAgICBmdW5jdGlvbkV4ZWN1dGFibGVTdHJ1Y3R1cmUuc2V0
KCp0aGlzLCBGdW5jdGlvbkV4ZWN1dGFibGU6OmNyZWF0ZVN0cnVjdHVyZSgqdGhpcywgbnVsbHB0
ciwganNOdWxsKCkpKTsKLSNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCi0gICAgd2ViQXNzZW1ibHlD
YWxsZWVHcm91cFN0cnVjdHVyZS5zZXQoKnRoaXMsIEpTV2ViQXNzZW1ibHlDYWxsZWVHcm91cDo6
Y3JlYXRlU3RydWN0dXJlKCp0aGlzLCBudWxscHRyLCBqc051bGwoKSkpOwotI2VuZGlmCiAgICAg
bW9kdWxlUHJvZ3JhbUV4ZWN1dGFibGVTdHJ1Y3R1cmUuc2V0KCp0aGlzLCBNb2R1bGVQcm9ncmFt
RXhlY3V0YWJsZTo6Y3JlYXRlU3RydWN0dXJlKCp0aGlzLCBudWxscHRyLCBqc051bGwoKSkpOwog
ICAgIHJlZ0V4cFN0cnVjdHVyZS5zZXQoKnRoaXMsIFJlZ0V4cDo6Y3JlYXRlU3RydWN0dXJlKCp0
aGlzLCBudWxscHRyLCBqc051bGwoKSkpOwogICAgIHN5bWJvbFN0cnVjdHVyZS5zZXQoKnRoaXMs
IFN5bWJvbDo6Y3JlYXRlU3RydWN0dXJlKCp0aGlzLCBudWxscHRyLCBqc051bGwoKSkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUNhbGxl
ZUdyb3VwLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlD
YWxsZWVHcm91cC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFhZmJjOGFmN2Uy
NzkxMTdhOTk1NTRmMDY2ODM1MDc5YmU2MzViYzMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJB
c3NlbWJseUNhbGxlZUdyb3VwLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDEwNCArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDE3LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
Ci0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVk
ZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSlNXZWJBc3NlbWJseUNhbGxlZUdyb3VwLmgiCi0KLSNp
ZiBFTkFCTEUoV0VCQVNTRU1CTFkpCi0KLSNpbmNsdWRlICJKU0NKU1ZhbHVlSW5saW5lcy5oIgot
I2luY2x1ZGUgIkpTQ2VsbElubGluZXMuaCIKLSNpbmNsdWRlICJXYXNtTW9kdWxlSW5mb3JtYXRp
b24uaCIKLSNpbmNsdWRlICJXYXNtVG9KUy5oIgotCi1uYW1lc3BhY2UgSlNDIHsKLQotY29uc3Qg
Q2xhc3NJbmZvIEpTV2ViQXNzZW1ibHlDYWxsZWVHcm91cDo6c19pbmZvID0geyAiV2ViQXNzZW1i
bHlDYWxsZWVHcm91cCIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0Rf
VEFCTEUoSlNXZWJBc3NlbWJseUNhbGxlZUdyb3VwKSB9OwotCi1KU1dlYkFzc2VtYmx5Q2FsbGVl
R3JvdXAqIEpTV2ViQXNzZW1ibHlDYWxsZWVHcm91cDo6Y3JlYXRlKFZNJiB2bSwgUmVmPFdhc206
OkNhbGxlZUdyb3VwPiBjYWxsZWVHcm91cCwgY29uc3QgV2FzbTo6TW9kdWxlSW5mb3JtYXRpb24m
IG1vZHVsZUluZm9ybWF0aW9uKQotewotICAgIGF1dG8qIHJlc3VsdCA9IG5ldyAoTm90TnVsbCwg
YWxsb2NhdGVDZWxsPEpTV2ViQXNzZW1ibHlDYWxsZWVHcm91cD4odm0pKSBKU1dlYkFzc2VtYmx5
Q2FsbGVlR3JvdXAodm0sIFdURk1vdmUoY2FsbGVlR3JvdXApLCBtb2R1bGVJbmZvcm1hdGlvbik7
Ci0gICAgcmVzdWx0LT5maW5pc2hDcmVhdGlvbih2bSk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0K
LQotSlNXZWJBc3NlbWJseUNhbGxlZUdyb3VwOjpKU1dlYkFzc2VtYmx5Q2FsbGVlR3JvdXAoVk0m
IHZtLCBSZWY8V2FzbTo6Q2FsbGVlR3JvdXA+JiYgY2FsbGVlR3JvdXAsIGNvbnN0IFdhc206Ok1v
ZHVsZUluZm9ybWF0aW9uJiBtb2R1bGVJbmZvcm1hdGlvbikKLSAgICA6IEJhc2Uodm0sIHZtLndl
YkFzc2VtYmx5Q2FsbGVlR3JvdXBTdHJ1Y3R1cmUuZ2V0KCkpCi0gICAgLCBtX2NhbGxlZUdyb3Vw
KFdURk1vdmUoY2FsbGVlR3JvdXApKQotICAgICwgbV93YXNtVG9KU0V4aXRTdHVicyhtX2NhbGxl
ZUdyb3VwLT5mdW5jdGlvbkltcG9ydENvdW50KCkpCi17Ci0gICAgLy8gRklYTUU6IFdlIHNob3Vs
ZCBub3QgbmVlZCB0byBkbyB0aGlzIHN5bmNocm9ub3VzbHkuCi0gICAgLy8gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MDU2NwotICAgIGZvciAodW5zaWduZWQgaW1w
b3J0SW5kZXggPSAwOyBpbXBvcnRJbmRleCA8IG1fY2FsbGVlR3JvdXAtPmZ1bmN0aW9uSW1wb3J0
Q291bnQoKTsgKytpbXBvcnRJbmRleCkgewotICAgICAgICBXYXNtOjpTaWduYXR1cmVJbmRleCBz
aWduYXR1cmVJbmRleCA9IG1vZHVsZUluZm9ybWF0aW9uLmltcG9ydEZ1bmN0aW9uU2lnbmF0dXJl
SW5kaWNlcy5hdChpbXBvcnRJbmRleCk7Ci0gICAgICAgIGF1dG8gYmluZGluZyA9IFdhc206Ondh
c21Ub0pTKHZtLCBtX2NhbGxMaW5rSW5mb3MsIHNpZ25hdHVyZUluZGV4LCBpbXBvcnRJbmRleCk7
Ci0gICAgICAgIGlmIChVTkxJS0VMWSghYmluZGluZykpIHsKLSAgICAgICAgICAgIHN3aXRjaCAo
YmluZGluZy5lcnJvcigpKSB7Ci0gICAgICAgICAgICBjYXNlIFdhc206OkJpbmRpbmdGYWlsdXJl
OjpPdXRPZk1lbW9yeToKLSAgICAgICAgICAgICAgICBtX2Vycm9yTWVzc2FnZSA9ICJPdXQgb2Yg
ZXhlY3V0YWJsZSBtZW1vcnkiX3M7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAg
ICAgfQotICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAg
fQotICAgICAgICBtX3dhc21Ub0pTRXhpdFN0dWJzW2ltcG9ydEluZGV4XSA9IGJpbmRpbmcudmFs
dWUoKTsKLSAgICB9Ci19Ci0KLXZvaWQgSlNXZWJBc3NlbWJseUNhbGxlZUdyb3VwOjpmaW5pc2hD
cmVhdGlvbihWTSYgdm0pCi17Ci0gICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwotfQotCi12
b2lkIEpTV2ViQXNzZW1ibHlDYWxsZWVHcm91cDo6ZGVzdHJveShKU0NlbGwqIGNlbGwpCi17Ci0g
ICAgc3RhdGljX2Nhc3Q8SlNXZWJBc3NlbWJseUNhbGxlZUdyb3VwKj4oY2VsbCktPkpTV2ViQXNz
ZW1ibHlDYWxsZWVHcm91cDo6fkpTV2ViQXNzZW1ibHlDYWxsZWVHcm91cCgpOwotfQotCi12b2lk
IEpTV2ViQXNzZW1ibHlDYWxsZWVHcm91cDo6Y2xlYXJKU0NhbGxJQ3MoVk0mIHZtKQotewotICAg
IGZvciAoYXV0byBpdGVyID0gbV9jYWxsTGlua0luZm9zLmJlZ2luKCk7ICEhaXRlcjsgKytpdGVy
KQotICAgICAgICAoKml0ZXIpLT51bmxpbmsodm0pOwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBW
aXNpdG9yPgotdm9pZCBKU1dlYkFzc2VtYmx5Q2FsbGVlR3JvdXA6OnZpc2l0Q2hpbGRyZW5JbXBs
KEpTQ2VsbCogY2VsbCwgVmlzaXRvciYgdmlzaXRvcikKLXsKLSAgICBKU1dlYkFzc2VtYmx5Q2Fs
bGVlR3JvdXAqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNXZWJBc3NlbWJseUNhbGxlZUdyb3VwKj4o
Y2VsbCk7Ci0gICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkp
OwotCi0gICAgQmFzZTo6dmlzaXRDaGlsZHJlbih0aGlzT2JqZWN0LCB2aXNpdG9yKTsKLX0KLQot
REVGSU5FX1ZJU0lUX0NISUxEUkVOKEpTV2ViQXNzZW1ibHlDYWxsZWVHcm91cCk7Ci0KLXZvaWQg
SlNXZWJBc3NlbWJseUNhbGxlZUdyb3VwOjpmaW5hbGl6ZVVuY29uZGl0aW9uYWxseShWTSYgdm0p
Ci17Ci0gICAgZm9yIChhdXRvIGl0ZXIgPSBtX2NhbGxMaW5rSW5mb3MuYmVnaW4oKTsgISFpdGVy
OyArK2l0ZXIpCi0gICAgICAgICgqaXRlciktPnZpc2l0V2Vhayh2bSk7Ci19Ci0KLX0gLy8gbmFt
ZXNwYWNlIEpTQwotCi0jZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUNhbGxlZUdyb3VwLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5Q2FsbGVlR3JvdXAu
aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODc0MmVkYTU3YjFlMjZhY2RmMTBmMTUw
NGVlN2E0NjY3OTcxMzM3ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5Q2FsbGVl
R3JvdXAuaAorKysgL2Rldi9udWxsCkBAIC0xLDk5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTctMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0g
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgRU5B
QkxFKFdFQkFTU0VNQkxZKQotCi0jaW5jbHVkZSAiQ2FsbExpbmtJbmZvLmgiCi0jaW5jbHVkZSAi
RGVmZXJyZWRXb3JrVGltZXIuaCIKLSNpbmNsdWRlICJKU0Nhc3QuaCIKLSNpbmNsdWRlICJTdHJ1
Y3R1cmUuaCIKLSNpbmNsdWRlICJXYXNtQ2FsbGVlLmgiCi0jaW5jbHVkZSAiV2FzbUZvcm1hdC5o
IgotI2luY2x1ZGUgIldhc21Nb2R1bGUuaCIKLSNpbmNsdWRlIDx3dGYvQmFnLmg+Ci0jaW5jbHVk
ZSA8d3RmL1JlZi5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQotbmFtZXNwYWNlIEpTQyB7
Ci0KLWNsYXNzIEpTV2ViQXNzZW1ibHlNZW1vcnk7Ci0KLW5hbWVzcGFjZSBXYXNtIHsKLWNsYXNz
IFBsYW47Ci19Ci0KLWNsYXNzIEpTV2ViQXNzZW1ibHlDYWxsZWVHcm91cCBmaW5hbCA6IHB1Ymxp
YyBKU0NlbGwgewotcHVibGljOgotICAgIHR5cGVkZWYgSlNDZWxsIEJhc2U7Ci0gICAgc3RhdGlj
IGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdz
IHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKLQotICAgIHN0YXRpYyBKU1dlYkFzc2VtYmx5Q2FsbGVl
R3JvdXAqIGNyZWF0ZShWTSYsIFJlZjxXYXNtOjpDYWxsZWVHcm91cD4sIGNvbnN0IFdhc206Ok1v
ZHVsZUluZm9ybWF0aW9uJik7Ci0gICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJl
KFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUp
Ci0gICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVj
dCwgcHJvdG90eXBlLCBUeXBlSW5mbyhDZWxsVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkp
OwotICAgIH0KLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIENlbGxUeXBlLCBTdWJzcGFjZUFjY2Vz
cyBtb2RlPgotICAgIHN0YXRpYyBJc29TdWJzcGFjZSogc3Vic3BhY2VGb3IoVk0mIHZtKQotICAg
IHsKLSAgICAgICAgcmV0dXJuIHZtLndlYkFzc2VtYmx5Q2FsbGVlR3JvdXBTcGFjZTxtb2RlPigp
OwotICAgIH0KLQotICAgIFdhc206OkNhbGxlZUdyb3VwJiBjYWxsZWVHcm91cCgpIHsgcmV0dXJu
IG1fY2FsbGVlR3JvdXAuZ2V0KCk7IH0KLSAgICAKLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHI8
V2FzbUVudHJ5UHRyVGFnPiB3YXNtVG9FbWJlZGRlclN0dWIoc2l6ZV90IGltcG9ydEZ1bmN0aW9u
TnVtKSB7IHJldHVybiBtX3dhc21Ub0pTRXhpdFN0dWJzW2ltcG9ydEZ1bmN0aW9uTnVtXS5jb2Rl
KCk7IH0KLQotICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mKTsKLQotICAgIHZvaWQgY2xlYXJK
U0NhbGxJQ3MoVk0mKTsKLQotICAgIGJvb2wgcnVubmFibGUoKSBjb25zdCB7IHJldHVybiAhbV9l
cnJvck1lc3NhZ2U7IH0KLQotICAgIFN0cmluZyBlcnJvck1lc3NhZ2UoKQotICAgIHsKLSAgICAg
ICAgQVNTRVJUKCFydW5uYWJsZSgpKTsKLSAgICAgICAgcmV0dXJuIG1fZXJyb3JNZXNzYWdlOwot
ICAgIH0KLQotICAgIHZvaWQgZmluYWxpemVVbmNvbmRpdGlvbmFsbHkoVk0mKTsKLQotcHJpdmF0
ZToKLSAgICBKU1dlYkFzc2VtYmx5Q2FsbGVlR3JvdXAoVk0mLCBSZWY8V2FzbTo6Q2FsbGVlR3Jv
dXA+JiYsIGNvbnN0IFdhc206Ok1vZHVsZUluZm9ybWF0aW9uJik7Ci0gICAgREVDTEFSRV9FWFBP
UlRfSU5GTzsKLSAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IHRy
dWU7Ci0gICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0NlbGwqKTsKLSAgICBERUNMQVJFX1ZJU0lU
X0NISUxEUkVOOwotCi0gICAgUmVmPFdhc206OkNhbGxlZUdyb3VwPiBtX2NhbGxlZUdyb3VwOwot
ICAgIEZpeGVkVmVjdG9yPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+PiBt
X3dhc21Ub0pTRXhpdFN0dWJzOwotICAgIEJhZzxPcHRpbWl6aW5nQ2FsbExpbmtJbmZvPiBtX2Nh
bGxMaW5rSW5mb3M7Ci0gICAgU3RyaW5nIG1fZXJyb3JNZXNzYWdlOwotfTsKLQotfSAvLyBuYW1l
c3BhY2UgSlNDCi0KLSNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5SW5zdGFuY2UuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUluc3RhbmNlLmNwcApp
bmRleCBjNGQ0OWNjNGM1YTE4ZmE5ZDM2YWQ5ZTJjN2I3YTQ5MzY0NTMzZGVhLi40NDNlYjliYmJj
MTk5YWY4ZjczMjc0YjQ5YWFjNTYzOTJjMWRjMmY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5SW5zdGFuY2UuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlJbnN0YW5jZS5jcHAKQEAgLTgxLDcg
KzgxLDYgQEAgdm9pZCBKU1dlYkFzc2VtYmx5SW5zdGFuY2U6OnZpc2l0Q2hpbGRyZW5JbXBsKEpT
Q2VsbCogY2VsbCwgVmlzaXRvciYgdmlzaXRvcikKIAogICAgIEJhc2U6OnZpc2l0Q2hpbGRyZW4o
dGhpc09iamVjdCwgdmlzaXRvcik7CiAgICAgdmlzaXRvci5hcHBlbmQodGhpc09iamVjdC0+bV9t
b2R1bGUpOwotICAgIHZpc2l0b3IuYXBwZW5kKHRoaXNPYmplY3QtPm1fY2FsbGVlR3JvdXApOwog
ICAgIHZpc2l0b3IuYXBwZW5kKHRoaXNPYmplY3QtPm1fbW9kdWxlUmVjb3JkKTsKICAgICB2aXNp
dG9yLmFwcGVuZCh0aGlzT2JqZWN0LT5tX21lbW9yeSk7CiAgICAgZm9yIChhdXRvJiB0YWJsZSA6
IHRoaXNPYmplY3QtPm1fdGFibGVzKQpAQCAtMTE3LDIzICsxMTYsNiBAQCB2b2lkIEpTV2ViQXNz
ZW1ibHlJbnN0YW5jZTo6ZmluYWxpemVDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplYwogICAgIH0KIAogICAgIFJFTEVBU0VfQVNTRVJUKHdhc21DYWxsZWVHcm91cC0+
aXNTYWZlVG9SdW4obWVtb3J5TW9kZSgpKSk7Ci0gICAgSlNXZWJBc3NlbWJseUNhbGxlZUdyb3Vw
KiBqc0NhbGxlZUdyb3VwID0gbV9tb2R1bGUtPmNhbGxlZUdyb3VwKG1lbW9yeU1vZGUoKSk7Ci0g
ICAgaWYgKGpzQ2FsbGVlR3JvdXApIHsKLSAgICAgICAgLy8gQSBDYWxsZWVHcm91cCBtaWdodCBo
YXZlIGFscmVhZHkgYmVlbiBjb21waWxlZC4gSWYgc28sIGl0IG1lYW5zCi0gICAgICAgIC8vIHRo
YXQgdGhlIENhbGxlZUdyb3VwIHdlIGFyZSB0cnlpbmcgdG8gY29tcGlsZSBtdXN0IGJlIHRoZSBz
YW1lCi0gICAgICAgIC8vIGJlY2F1c2Ugd2Ugd2lsbCBuZXZlciBjb21waWxlIGEgQ2FsbGVlR3Jv
dXAgYWdhaW4gb25jZSBpdCdzCi0gICAgICAgIC8vIHJ1bm5hYmxlLgotICAgICAgICBBU1NFUlQo
JmpzQ2FsbGVlR3JvdXAtPmNhbGxlZUdyb3VwKCkgPT0gd2FzbUNhbGxlZUdyb3VwLnB0cigpKTsK
LSAgICAgICAgbV9jYWxsZWVHcm91cC5zZXQodm0sIHRoaXMsIGpzQ2FsbGVlR3JvdXApOwotICAg
IH0gZWxzZSB7Ci0gICAgICAgIGpzQ2FsbGVlR3JvdXAgPSBKU1dlYkFzc2VtYmx5Q2FsbGVlR3Jv
dXA6OmNyZWF0ZSh2bSwgV1RGTW92ZSh3YXNtQ2FsbGVlR3JvdXApLCBtb2R1bGUoKS0+bW9kdWxl
KCkubW9kdWxlSW5mb3JtYXRpb24oKSk7Ci0gICAgICAgIGlmIChVTkxJS0VMWSghanNDYWxsZWVH
cm91cC0+cnVubmFibGUoKSkpIHsKLSAgICAgICAgICAgIHRocm93RXhjZXB0aW9uKGdsb2JhbE9i
amVjdCwgc2NvcGUsIGNyZWF0ZUpTV2ViQXNzZW1ibHlMaW5rRXJyb3IoZ2xvYmFsT2JqZWN0LCB2
bSwganNDYWxsZWVHcm91cC0+ZXJyb3JNZXNzYWdlKCkpKTsKLSAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgfQotICAgICAgICBtX2NhbGxlZUdyb3VwLnNldCh2bSwgdGhpcywganNDYWxsZWVH
cm91cCk7Ci0gICAgICAgIG1fbW9kdWxlLT5zZXRDYWxsZWVHcm91cCh2bSwgbWVtb3J5TW9kZSgp
LCBqc0NhbGxlZUdyb3VwKTsKLSAgICB9CiAKICAgICAvLyBJbiB0aGUgbW9kdWxlIGxvYWRlciBj
YXNlLCB3ZSB3aWxsIGluaXRpYWxpemUgYWxsIG1lbW9yeSBtb2RlcyB3aXRoIHRoZSBpbml0aWFs
IExMSW50IGNvbXBpbGF0aW9uCiAgICAgLy8gcmVzdWx0cywgc28gdGhhdCBsYXRlciB3aGVuIG1l
bW9yeSBpbXBvcnRzIGJlY29tZSBhdmFpbGFibGUsIHRoZSBhcHByb3ByaWF0ZSBDYWxsZWVHcm91
cCBjYW4gYmUgdXNlZC4KQEAgLTE0OCwxOSArMTMwLDEzIEBAIHZvaWQgSlNXZWJBc3NlbWJseUlu
c3RhbmNlOjpmaW5hbGl6ZUNyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjCiAgICAgICAgICAgICBpZiAoaSA9PSBzdGF0aWNfY2FzdDx1aW50OF90Pihpbml0aWFsTW9k
ZSkpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICBXYXNtOjpNZW1vcnlN
b2RlIG1lbW9yeU1vZGUgPSBzdGF0aWNfY2FzdDxXYXNtOjpNZW1vcnlNb2RlPihpKTsKLSAgICAg
ICAgICAgIFJlZlB0cjxXYXNtOjpDYWxsZWVHcm91cD4gY2FsbGVlR3JvdXAgPSBtb2R1bGUoKS0+
bW9kdWxlKCkuY2FsbGVlR3JvdXBGb3IobWVtb3J5TW9kZSk7Ci0gICAgICAgICAgICBqc0NhbGxl
ZUdyb3VwID0gSlNXZWJBc3NlbWJseUNhbGxlZUdyb3VwOjpjcmVhdGUodm0sIGNhbGxlZUdyb3Vw
LnJlbGVhc2VOb25OdWxsKCksIG1vZHVsZSgpLT5tb2R1bGUoKS5tb2R1bGVJbmZvcm1hdGlvbigp
KTsKLSAgICAgICAgICAgIGlmIChVTkxJS0VMWSghanNDYWxsZWVHcm91cC0+cnVubmFibGUoKSkp
IHsKLSAgICAgICAgICAgICAgICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNjb3BlLCBj
cmVhdGVKU1dlYkFzc2VtYmx5TGlua0Vycm9yKGdsb2JhbE9iamVjdCwgdm0sIGpzQ2FsbGVlR3Jv
dXAtPmVycm9yTWVzc2FnZSgpKSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAg
ICAgfQotICAgICAgICAgICAgbV9tb2R1bGUtPnNldENhbGxlZUdyb3VwKHZtLCBtZW1vcnlNb2Rl
LCBqc0NhbGxlZUdyb3VwKTsKKyAgICAgICAgICAgIG1vZHVsZSgpLT5tb2R1bGUoKS5jYWxsZWVH
cm91cEZvcihtZW1vcnlNb2RlKTsgLy8gTWF0ZXJpYWxpemUgV2FzbTo6Q2FsbGVlR3JvdXAuCiAg
ICAgICAgIH0KICAgICB9CiAKICAgICBmb3IgKHVuc2lnbmVkIGltcG9ydEZ1bmN0aW9uTnVtID0g
MDsgaW1wb3J0RnVuY3Rpb25OdW0gPCBpbnN0YW5jZSgpLm51bUltcG9ydEZ1bmN0aW9ucygpOyAr
K2ltcG9ydEZ1bmN0aW9uTnVtKSB7CiAgICAgICAgIGF1dG8qIGluZm8gPSBpbnN0YW5jZSgpLmlt
cG9ydEZ1bmN0aW9uSW5mbyhpbXBvcnRGdW5jdGlvbk51bSk7Ci0gICAgICAgIGluZm8tPndhc21U
b0VtYmVkZGVyU3R1YiA9IG1fY2FsbGVlR3JvdXAtPndhc21Ub0VtYmVkZGVyU3R1YihpbXBvcnRG
dW5jdGlvbk51bSk7CisgICAgICAgIGluZm8tPndhc21Ub0VtYmVkZGVyU3R1YiA9IG1fbW9kdWxl
LT53YXNtVG9FbWJlZGRlclN0dWIoaW1wb3J0RnVuY3Rpb25OdW0pOwogICAgIH0KIAogICAgIG1f
bW9kdWxlUmVjb3JkLT5wcmVwYXJlTGluayh2bSwgdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5SW5zdGFuY2UuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlJbnN0YW5jZS5oCmluZGV4IGFkZWVm
YTU3ZjczMTQwNGEzYTkzZjljNTM0MmI4MDZiNzQwNDkzZDYuLjBiMWI3YTdkYjEwZDczNTNmYjY5
MzYwYTVmZjQ4M2Q3Mjg0MzBmNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL0pTV2ViQXNzZW1ibHlJbnN0YW5jZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlJbnN0YW5jZS5oCkBAIC0yOCw3ICsyOCw2IEBACiAjaWYg
RU5BQkxFKFdFQkFTU0VNQkxZKQogCiAjaW5jbHVkZSAiSlNEZXN0cnVjdGlibGVPYmplY3QuaCIK
LSNpbmNsdWRlICJKU1dlYkFzc2VtYmx5Q2FsbGVlR3JvdXAuaCIKICNpbmNsdWRlICJKU1dlYkFz
c2VtYmx5R2xvYmFsLmgiCiAjaW5jbHVkZSAiSlNXZWJBc3NlbWJseU1lbW9yeS5oIgogI2luY2x1
ZGUgIkpTV2ViQXNzZW1ibHlUYWJsZS5oIgpAQCAtMTE0LDcgKzExMyw2IEBAIGNsYXNzIEpTV2Vi
QXNzZW1ibHlJbnN0YW5jZSBmaW5hbCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKIAogICAg
IFdyaXRlQmFycmllcjxKU0dsb2JhbE9iamVjdD4gbV9nbG9iYWxPYmplY3Q7CiAgICAgV3JpdGVC
YXJyaWVyPEpTV2ViQXNzZW1ibHlNb2R1bGU+IG1fbW9kdWxlOwotICAgIFdyaXRlQmFycmllcjxK
U1dlYkFzc2VtYmx5Q2FsbGVlR3JvdXA+IG1fY2FsbGVlR3JvdXA7CiAgICAgV3JpdGVCYXJyaWVy
PFdlYkFzc2VtYmx5TW9kdWxlUmVjb3JkPiBtX21vZHVsZVJlY29yZDsKICAgICBXcml0ZUJhcnJp
ZXI8SlNXZWJBc3NlbWJseU1lbW9yeT4gbV9tZW1vcnk7CiAgICAgRml4ZWRWZWN0b3I8V3JpdGVC
YXJyaWVyPEpTV2ViQXNzZW1ibHlUYWJsZT4+IG1fdGFibGVzOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseU1vZHVsZS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5TW9kdWxlLmNwcAppbmRleCBlNjBl
NDQxYTMxMDA5ZDIwNjU1ZjEwZmFhNzU4ZWY0YTdmN2ZjYTg4Li44YWViYmU2NTQxYjA0OTk3OTY3
NzI5OTVkNzhhMjA3NDcxNTdkYWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9KU1dlYkFzc2VtYmx5TW9kdWxlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5TW9kdWxlLmNwcApAQCAtMjksMTEgKzI5LDExIEBACiAj
aWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgotI2luY2x1
ZGUgIkpTV2ViQXNzZW1ibHlDYWxsZWVHcm91cC5oIgogI2luY2x1ZGUgIkpTV2ViQXNzZW1ibHlD
b21waWxlRXJyb3IuaCIKICNpbmNsdWRlICJXYXNtRm9ybWF0LmgiCiAjaW5jbHVkZSAiV2FzbU1v
ZHVsZS5oIgogI2luY2x1ZGUgIldhc21Nb2R1bGVJbmZvcm1hdGlvbi5oIgorI2luY2x1ZGUgIldh
c21Ub0pTLmgiCiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogCiBuYW1lc3BhY2UgSlND
IHsKQEAgLTUyLDYgKzUyLDE2IEBAIEpTV2ViQXNzZW1ibHlNb2R1bGUqIEpTV2ViQXNzZW1ibHlN
b2R1bGU6OmNyZWF0ZVN0dWIoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvCiAKICAgICBhdXRv
KiBtb2R1bGUgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxKU1dlYkFzc2VtYmx5TW9kdWxl
Pih2bSkpIEpTV2ViQXNzZW1ibHlNb2R1bGUodm0sIHN0cnVjdHVyZSwgcmVzdWx0LnZhbHVlKCku
cmVsZWFzZU5vbk51bGwoKSk7CiAgICAgbW9kdWxlLT5maW5pc2hDcmVhdGlvbih2bSk7CisKKyAg
ICBhdXRvIGVycm9yID0gbW9kdWxlLT5nZW5lcmF0ZVdhc21Ub0pTU3R1YnModm0pOworICAgIGlm
IChVTkxJS0VMWSghZXJyb3IpKSB7CisgICAgICAgIHN3aXRjaCAoZXJyb3IuZXJyb3IoKSkgewor
ICAgICAgICBjYXNlIFdhc206OkJpbmRpbmdGYWlsdXJlOjpPdXRPZk1lbW9yeToKKyAgICAgICAg
ICAgIHRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZUpTV2ViQXNzZW1i
bHlMaW5rRXJyb3IoZ2xvYmFsT2JqZWN0LCB2bSwgIk91dCBvZiBleGVjdXRhYmxlIG1lbW9yeSJf
cykpOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIH0KKyAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQogICAgIHJldHVybiBtb2R1bGU7CiB9CiAKQEAgLTEw
OSwyMSArMTE5LDExIEBAIFdhc206OlNpZ25hdHVyZUluZGV4IEpTV2ViQXNzZW1ibHlNb2R1bGU6
OnNpZ25hdHVyZUluZGV4RnJvbUZ1bmN0aW9uSW5kZXhTcGFjZSh1CiAgICAgcmV0dXJuIG1fbW9k
dWxlLT5zaWduYXR1cmVJbmRleEZyb21GdW5jdGlvbkluZGV4U3BhY2UoZnVuY3Rpb25JbmRleFNw
YWNlKTsKIH0KIAotSlNXZWJBc3NlbWJseUNhbGxlZUdyb3VwKiBKU1dlYkFzc2VtYmx5TW9kdWxl
OjpjYWxsZWVHcm91cChXYXNtOjpNZW1vcnlNb2RlIG1vZGUpCi17Ci0gICAgcmV0dXJuIG1fY2Fs
bGVlR3JvdXBzW3N0YXRpY19jYXN0PHNpemVfdD4obW9kZSldLmdldCgpOwotfQotCiBXYXNtOjpN
b2R1bGUmIEpTV2ViQXNzZW1ibHlNb2R1bGU6Om1vZHVsZSgpCiB7CiAgICAgcmV0dXJuIG1fbW9k
dWxlLmdldCgpOwogfQogCi12b2lkIEpTV2ViQXNzZW1ibHlNb2R1bGU6OnNldENhbGxlZUdyb3Vw
KFZNJiB2bSwgV2FzbTo6TWVtb3J5TW9kZSBtb2RlLCBKU1dlYkFzc2VtYmx5Q2FsbGVlR3JvdXAq
IGNhbGxlZUdyb3VwKQotewotICAgIG1fY2FsbGVlR3JvdXBzW3N0YXRpY19jYXN0PHNpemVfdD4o
bW9kZSldLnNldCh2bSwgdGhpcywgY2FsbGVlR3JvdXApOwotfQotCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBWaXNpdG9yPgogdm9pZCBKU1dlYkFzc2VtYmx5TW9kdWxlOjp2aXNpdENoaWxkcmVuSW1wbChK
U0NlbGwqIGNlbGwsIFZpc2l0b3ImIHZpc2l0b3IpCiB7CkBAIC0xMzIsMTIgKzEzMiw0MSBAQCB2
b2lkIEpTV2ViQXNzZW1ibHlNb2R1bGU6OnZpc2l0Q2hpbGRyZW5JbXBsKEpTQ2VsbCogY2VsbCwg
VmlzaXRvciYgdmlzaXRvcikKIAogICAgIEJhc2U6OnZpc2l0Q2hpbGRyZW4odGhpc09iamVjdCwg
dmlzaXRvcik7CiAgICAgdmlzaXRvci5hcHBlbmQodGhpc09iamVjdC0+bV9leHBvcnRTeW1ib2xU
YWJsZSk7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IFdhc206Ok51bWJlck9mTWVtb3J5
TW9kZXM7ICsraSkKLSAgICAgICAgdmlzaXRvci5hcHBlbmQodGhpc09iamVjdC0+bV9jYWxsZWVH
cm91cHNbaV0pOwogfQogCiBERUZJTkVfVklTSVRfQ0hJTERSRU4oSlNXZWJBc3NlbWJseU1vZHVs
ZSk7CiAKK3ZvaWQgSlNXZWJBc3NlbWJseU1vZHVsZTo6Y2xlYXJKU0NhbGxJQ3MoVk0mIHZtKQor
eworICAgIGZvciAoYXV0byBpdGVyID0gbV9jYWxsTGlua0luZm9zLmJlZ2luKCk7ICEhaXRlcjsg
KytpdGVyKQorICAgICAgICAoKml0ZXIpLT51bmxpbmsodm0pOworfQorCit2b2lkIEpTV2ViQXNz
ZW1ibHlNb2R1bGU6OmZpbmFsaXplVW5jb25kaXRpb25hbGx5KFZNJiB2bSkKK3sKKyAgICBmb3Ig
KGF1dG8gaXRlciA9IG1fY2FsbExpbmtJbmZvcy5iZWdpbigpOyAhIWl0ZXI7ICsraXRlcikKKyAg
ICAgICAgKCppdGVyKS0+dmlzaXRXZWFrKHZtKTsKK30KKworRXhwZWN0ZWQ8dm9pZCwgV2FzbTo6
QmluZGluZ0ZhaWx1cmU+IEpTV2ViQXNzZW1ibHlNb2R1bGU6OmdlbmVyYXRlV2FzbVRvSlNTdHVi
cyhWTSYgdm0pCit7CisgICAgY29uc3QgV2FzbTo6TW9kdWxlSW5mb3JtYXRpb24mIG1vZHVsZUlu
Zm9ybWF0aW9uID0gbV9tb2R1bGUtPm1vZHVsZUluZm9ybWF0aW9uKCk7CisgICAgaWYgKG1vZHVs
ZUluZm9ybWF0aW9uLmltcG9ydEZ1bmN0aW9uQ291bnQoKSkgeworICAgICAgICBCYWc8T3B0aW1p
emluZ0NhbGxMaW5rSW5mbz4gY2FsbExpbmtJbmZvczsKKyAgICAgICAgRml4ZWRWZWN0b3I8TWFj
cm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4+IHN0dWJzKG1vZHVsZUluZm9ybWF0
aW9uLmltcG9ydEZ1bmN0aW9uQ291bnQoKSk7CisgICAgICAgIGZvciAodW5zaWduZWQgaW1wb3J0
SW5kZXggPSAwOyBpbXBvcnRJbmRleCA8IG1vZHVsZUluZm9ybWF0aW9uLmltcG9ydEZ1bmN0aW9u
Q291bnQoKTsgKytpbXBvcnRJbmRleCkgeworICAgICAgICAgICAgV2FzbTo6U2lnbmF0dXJlSW5k
ZXggc2lnbmF0dXJlSW5kZXggPSBtb2R1bGVJbmZvcm1hdGlvbi5pbXBvcnRGdW5jdGlvblNpZ25h
dHVyZUluZGljZXMuYXQoaW1wb3J0SW5kZXgpOworICAgICAgICAgICAgYXV0byBiaW5kaW5nID0g
V2FzbTo6d2FzbVRvSlModm0sIGNhbGxMaW5rSW5mb3MsIHNpZ25hdHVyZUluZGV4LCBpbXBvcnRJ
bmRleCk7CisgICAgICAgICAgICBpZiAoVU5MSUtFTFkoIWJpbmRpbmcpKQorICAgICAgICAgICAg
ICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChiaW5kaW5nLmVycm9yKCkpOworICAgICAgICAgICAg
c3R1YnNbaW1wb3J0SW5kZXhdID0gYmluZGluZy52YWx1ZSgpOworICAgICAgICB9CisgICAgICAg
IG1fd2FzbVRvSlNFeGl0U3R1YnMgPSBXVEZNb3ZlKHN0dWJzKTsKKyAgICAgICAgbV9jYWxsTGlu
a0luZm9zID0gV1RGTW92ZShjYWxsTGlua0luZm9zKTsKKyAgICB9CisgICAgcmV0dXJuIHsgfTsK
K30KKwogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5
TW9kdWxlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5TW9k
dWxlLmgKaW5kZXggOTZkMTU2ZjRiYjk1YWQyODc3ZTI0ZDI5ZWIxMDAzODUxNmFkY2JmOS4uNmFi
NTg2ODVmMjgzODhhMjE2MDdkOGZmNmQyMjdiODE3Mjk4MjM2ZCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseU1vZHVsZS5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlNb2R1bGUuaApAQCAtMjksNiAr
MjksNyBAQAogCiAjaW5jbHVkZSAiSlNEZXN0cnVjdGlibGVPYmplY3QuaCIKICNpbmNsdWRlICJK
U09iamVjdC5oIgorI2luY2x1ZGUgIldhc21CaW5kaW5nLmgiCiAjaW5jbHVkZSAiV2FzbU1lbW9y
eU1vZGUuaCIKICNpbmNsdWRlICJXYXNtT3BzLmgiCiAjaW5jbHVkZSA8d3RmL0JhZy5oPgpAQCAt
NDYsNyArNDcsNiBAQCBjbGFzcyBQbGFuOwogfQogCiBjbGFzcyBTeW1ib2xUYWJsZTsKLWNsYXNz
IEpTV2ViQXNzZW1ibHlDYWxsZWVHcm91cDsKIGNsYXNzIEpTV2ViQXNzZW1ibHlNZW1vcnk7CiAK
IGNsYXNzIEpTV2ViQXNzZW1ibHlNb2R1bGUgZmluYWwgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVj
dCB7CkBAIC03MCwyMSArNzAsMjMgQEAgY2xhc3MgSlNXZWJBc3NlbWJseU1vZHVsZSBmaW5hbCA6
IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKICAgICBTeW1ib2xUYWJsZSogZXhwb3J0U3ltYm9s
VGFibGUoKSBjb25zdDsKICAgICBXYXNtOjpTaWduYXR1cmVJbmRleCBzaWduYXR1cmVJbmRleEZy
b21GdW5jdGlvbkluZGV4U3BhY2UodW5zaWduZWQgZnVuY3Rpb25JbmRleFNwYWNlKSBjb25zdDsK
IAotICAgIEpTV2ViQXNzZW1ibHlDYWxsZWVHcm91cCogY2FsbGVlR3JvdXAoV2FzbTo6TWVtb3J5
TW9kZSk7Ci0gICAgdm9pZCBzZXRDYWxsZWVHcm91cChWTSYsIFdhc206Ok1lbW9yeU1vZGUsIEpT
V2ViQXNzZW1ibHlDYWxsZWVHcm91cCopOworICAgIEV4cGVjdGVkPHZvaWQsIFdhc206OkJpbmRp
bmdGYWlsdXJlPiBnZW5lcmF0ZVdhc21Ub0pTU3R1YnMoVk0mKTsKKyAgICBNYWNyb0Fzc2VtYmxl
ckNvZGVQdHI8V2FzbUVudHJ5UHRyVGFnPiB3YXNtVG9FbWJlZGRlclN0dWIoc2l6ZV90IGltcG9y
dEZ1bmN0aW9uTnVtKSB7IHJldHVybiBtX3dhc21Ub0pTRXhpdFN0dWJzW2ltcG9ydEZ1bmN0aW9u
TnVtXS5jb2RlKCk7IH0KKworICAgIHZvaWQgY2xlYXJKU0NhbGxJQ3MoVk0mKTsKKyAgICB2b2lk
IGZpbmFsaXplVW5jb25kaXRpb25hbGx5KFZNJik7CiAKICAgICBKU19FWFBPUlRfUFJJVkFURSBX
YXNtOjpNb2R1bGUmIG1vZHVsZSgpOwogCiBwcml2YXRlOgotICAgIGZyaWVuZCBjbGFzcyBKU1dl
YkFzc2VtYmx5Q2FsbGVlR3JvdXA7Ci0KICAgICBKU1dlYkFzc2VtYmx5TW9kdWxlKFZNJiwgU3Ry
dWN0dXJlKiwgUmVmPFdhc206Ok1vZHVsZT4mJik7CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihW
TSYpOwogICAgIERFQ0xBUkVfVklTSVRfQ0hJTERSRU47CiAKICAgICBSZWY8V2FzbTo6TW9kdWxl
PiBtX21vZHVsZTsKICAgICBXcml0ZUJhcnJpZXI8U3ltYm9sVGFibGU+IG1fZXhwb3J0U3ltYm9s
VGFibGU7Ci0gICAgV3JpdGVCYXJyaWVyPEpTV2ViQXNzZW1ibHlDYWxsZWVHcm91cD4gbV9jYWxs
ZWVHcm91cHNbV2FzbTo6TnVtYmVyT2ZNZW1vcnlNb2Rlc107CisgICAgRml4ZWRWZWN0b3I8TWFj
cm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4+IG1fd2FzbVRvSlNFeGl0U3R1YnM7
CisgICAgQmFnPE9wdGltaXppbmdDYWxsTGlua0luZm8+IG1fY2FsbExpbmtJbmZvczsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yLmNwcAppbmRleCA2NDUw
N2FkMWZiZGRlYjgwY2EyYTQ2YmQwYTJjODdkMTNkZDBjYmVjLi5kMzE3NTY1MGYzZDMzYjQxMThk
MzRkNzg0NDhmYjE0MjZiN2I1ZTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yLmNwcApAQCAt
MzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIkpTV2ViQXNzZW1ibHlIZWxwZXJzLmgiCiAjaW5jbHVk
ZSAiSlNXZWJBc3NlbWJseU1vZHVsZS5oIgogI2luY2x1ZGUgIk9iamVjdENvbnN0cnVjdG9yLmgi
CisjaW5jbHVkZSAiV2FzbU1vZHVsZS5oIgogI2luY2x1ZGUgIldhc21Nb2R1bGVJbmZvcm1hdGlv
bi5oIgogI2luY2x1ZGUgIldlYkFzc2VtYmx5TW9kdWxlUHJvdG90eXBlLmgiCiAjaW5jbHVkZSA8
d3RmL1N0ZExpYkV4dHJhcy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2pzL1dlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uLmgKaW5kZXggZDQ5MDJkMjFiZWYx
MDUzNDRkY2E2MmU0M2IwZGNjNGNmYjgyOWM3NC4uYzMzYjJlNmE0ODdjNTI0YjllNTk5YzBkZWZi
NDcxOGM1YWI1ODFkMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
V2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9XZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbi5oCkBAIC0yNyw3ICsyNyw2IEBACiAK
ICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAKLSNpbmNsdWRlICJKU1dlYkFzc2VtYmx5Q2FsbGVl
R3JvdXAuaCIKICNpbmNsdWRlICJXZWJBc3NlbWJseUZ1bmN0aW9uQmFzZS5oIgogCiBuYW1lc3Bh
Y2UgSlNDIHsK
</data>
<flag name="commit-queue"
          id="473961"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448151</attachid>
            <date>2022-01-01 02:46:16 -0800</date>
            <delta_ts>2022-01-01 04:08:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234780-20220101024616.patch</filename>
            <type>text/plain</type>
            <size>34599</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NDk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
NzI3OThlMGU3YmE3YTNmNWRlMjZhOGFjNjdmOWNiOTMxZjMyNmYwLi43YmI5ODhjZjgxOGNhMWFm
MGI0N2RiZGM1NDA3ODA1ZmYxNjJkZDU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MyBAQAorMjAyMi0wMS0wMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFJlbW92ZSBKU1dlYkFzc2VtYmx5Q2FsbGVlR3JvdXAgY2VsbAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0NzgwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBjZWxs
IGlzIG5vdCBvYnNlcnZhYmxlIHRvIHVzZXJzLiBBbmQgdGhpcyBjZWxsIGp1c3QgaG9sZHMgV2Fz
bS10by1KUyBzdHVicywKKyAgICAgICAgYnV0IGl0IGlzIHRoZSBzYW1lIHRvIGFsbCBtZW1vcnkg
bW9kZXMuIFRodXMsIHdlIHNob3VsZCBqdXN0IGdlbmVyYXRlIGl0IGluIFZNLWxpbmtlZAorICAg
ICAgICBXYXNtOjpNb2R1bGUgKGl0IG1lYW5zLCB3ZSBzaG91bGQgaGF2ZSBpdCBpbiBKU1dlYkFz
c2VtYmx5TW9kdWxlKSwgYW5kIHdlIGRvIG5vdCBuZWVkCisgICAgICAgIHRvIGhhdmUgLyBhbGxv
Y2F0ZSBKU1dlYkFzc2VtYmx5Q2FsbGVlR3JvdXAgY2VsbC4KKworICAgICAgICAqIEphdmFTY3Jp
cHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogU291cmNlcy50eHQ6
CisgICAgICAgICogaGVhcC9IZWFwLmNwcDoKKyAgICAgICAgKEpTQzo6SGVhcDo6SGVhcCk6Cisg
ICAgICAgIChKU0M6OkhlYXA6OmZpbmFsaXplVW5jb25kaXRpb25hbEZpbmFsaXplcnMpOgorICAg
ICAgICAoSlNDOjpIZWFwOjpkZWxldGVBbGxDb2RlQmxvY2tzKToKKyAgICAgICAgKiBoZWFwL0hl
YXAuaDoKKyAgICAgICAgKiBydW50aW1lL1ZNLmNwcDoKKyAgICAgICAgKEpTQzo6Vk06OlZNKToK
KyAgICAgICAgKiBydW50aW1lL1ZNLmg6CisgICAgICAgICogd2FzbS9qcy9KU1dlYkFzc2VtYmx5
Q2FsbGVlR3JvdXAuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHdhc20vanMvSlNXZWJBc3NlbWJs
eUNhbGxlZUdyb3VwLmg6IFJlbW92ZWQuCisgICAgICAgICogd2FzbS9qcy9KU1dlYkFzc2VtYmx5
SW5zdGFuY2UuY3BwOgorICAgICAgICAoSlNDOjpKU1dlYkFzc2VtYmx5SW5zdGFuY2U6OnZpc2l0
Q2hpbGRyZW5JbXBsKToKKyAgICAgICAgKEpTQzo6SlNXZWJBc3NlbWJseUluc3RhbmNlOjpmaW5h
bGl6ZUNyZWF0aW9uKToKKyAgICAgICAgKiB3YXNtL2pzL0pTV2ViQXNzZW1ibHlJbnN0YW5jZS5o
OgorICAgICAgICAqIHdhc20vanMvSlNXZWJBc3NlbWJseU1vZHVsZS5jcHA6CisgICAgICAgIChK
U0M6OkpTV2ViQXNzZW1ibHlNb2R1bGU6OmNyZWF0ZVN0dWIpOgorICAgICAgICAoSlNDOjpKU1dl
YkFzc2VtYmx5TW9kdWxlOjp2aXNpdENoaWxkcmVuSW1wbCk6CisgICAgICAgIChKU0M6OkpTV2Vi
QXNzZW1ibHlNb2R1bGU6OmNsZWFySlNDYWxsSUNzKToKKyAgICAgICAgKEpTQzo6SlNXZWJBc3Nl
bWJseU1vZHVsZTo6ZmluYWxpemVVbmNvbmRpdGlvbmFsbHkpOgorICAgICAgICAoSlNDOjpKU1dl
YkFzc2VtYmx5TW9kdWxlOjpnZW5lcmF0ZVdhc21Ub0pTU3R1YnMpOgorICAgICAgICAoSlNDOjpK
U1dlYkFzc2VtYmx5TW9kdWxlOjpjYWxsZWVHcm91cCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkpTV2ViQXNzZW1ibHlNb2R1bGU6OnNldENhbGxlZUdyb3VwKTogRGVsZXRlZC4KKyAgICAgICAg
KiB3YXNtL2pzL0pTV2ViQXNzZW1ibHlNb2R1bGUuaDoKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFz
c2VtYmx5TW9kdWxlQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1i
bHlXcmFwcGVyRnVuY3Rpb24uaDoKKwogMjAyMS0xMi0zMCAgQWRyaWFuIFBlcmV6IGRlIENhc3Ry
byAgPGFwZXJlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIE5vbi11bmlmaWVkIGJ1aWxkIGZpeGVz
LCBlbmQtb2YteWVhciAyMDIxIGVkaXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggYTE2YzJmNDUxNDc1ZTliYTNmMjcyMDcwODNhMGY0ODAwMTYzMTQ2Mi4uZDY1Y2NiYWMwYzM3
ZmQ5OWVlMGRlMzFhOWVhMTA4YTNhMTgxMjZjMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTE2NjYsNyArMTY2Niw2IEBACiAJCUFEN0I0QjJFMUZBM0UyOTgwMEM5REY3OSAvKiBX
YXNtTmFtZVNlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEFEN0I0QjJEMUZBM0UyODYwMEM5REY3OSAvKiBXYXNtTmFtZVNlY3Rpb24uaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBRDg2QTkzRTFB
QTREODhEMDAyRkU3N0YgLyogV2Vha0dDTWFwSW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUQ4NkE5M0QxQUE0RDg3QzAwMkZFNzdGIC8qIFdl
YWtHQ01hcElubGluZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlBRDhGRjM5ODFFQjVCREIyMDA4N0ZGODIgLyogV2FzbUluZGV4T3JOYW1lLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRDhGRjM5NTFF
QjVCRDg1MDA4N0ZGODIgLyogV2FzbUluZGV4T3JOYW1lLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQUQ5RTg1MkYxRThBMEM3QzAwOERFMzlFIC8q
IEpTV2ViQXNzZW1ibHlDYWxsZWVHcm91cC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQUQ5RTg1MkUxRThBMEM2RTAwOERFMzlFIC8qIEpTV2ViQXNzZW1i
bHlDYWxsZWVHcm91cC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUFERDhGQTQ2MUVCMzA3OTcwMERGNTQyRiAvKiBXYXNtTmFtZVNlY3Rpb25QYXJz
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFERDhG
QTQzMUVCMzA3NzEwMERGNTQyRiAvKiBXYXNtTmFtZVNlY3Rpb25QYXJzZXIuaCAqLzsgfTsKIAkJ
QURFODAyOTkxRTA4RjFERTAwNThERTc4IC8qIEpTV2ViQXNzZW1ibHlMaW5rRXJyb3IuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFERTgwMjk0MUUwOEYx
QzkwMDU4REU3OCAvKiBKU1dlYkFzc2VtYmx5TGlua0Vycm9yLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQURFODAyOUExRTA4RjFERTAwNThERTc4
IC8qIFdlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFERTgwMjk1MUUwOEYxQzkwMDU4REU3OCAvKiBX
ZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTM5MzYsNyArMzkzNSw2IEBACiAJCTUzNzNCNEQ0
MjJBREIzMTQwMDgwMzU3MiAvKiBXZWFrT2JqZWN0UmVmQ29uc3RydWN0b3IuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gV2Vha09iamVjdFJlZkNvbnN0cnVjdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTM4MUI5MzYxRTYwRTk2NjAwOTBGNzk0IC8qIFdhc21GYXVsdFNpZ25h
bEhhbmRsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2FzbUZh
dWx0U2lnbmFsSGFuZGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUzODFC
OTM4MUU2MEU5N0QwMDkwRjc5NCAvKiBXYXNtRmF1bHRTaWduYWxIYW5kbGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdhc21GYXVsdFNpZ25hbEhhbmRsZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTM4M0FBMkYxRTY1RThBMTAwQTUzMkZDIC8qIEpTV2Vi
QXNzZW1ibHlDYWxsZWVHcm91cC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBKU1dlYkFzc2VtYmx5Q2FsbGVlR3JvdXAuY3BwOyBwYXRoID0ganMvSlNXZWJBc3NlbWJs
eUNhbGxlZUdyb3VwLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTM4RjE1REQy
NjhGQkJCMzAwRDYwMUM0IC8qIFVuaWZpZWRTb3VyY2UxNDguY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gVW5pZmllZFNvdXJjZTE0OC5jcHA7IHBhdGggPSAiRGVyaXZl
ZFNvdXJjZXMvSmF2YVNjcmlwdENvcmUvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxNDgu
Y3BwIjsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNTM4RjE1REUyNjhG
QkJCMzAwRDYwMUM0IC8qIFVuaWZpZWRTb3VyY2UxNTEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gVW5pZmllZFNvdXJjZTE1MS5jcHA7IHBhdGggPSAiRGVyaXZlZFNv
dXJjZXMvSmF2YVNjcmlwdENvcmUvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxNTEuY3Bw
Ijsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNTM4RjE1REYyNjhGQkJC
MzAwRDYwMUM0IC8qIFVuaWZpZWRTb3VyY2UxNTIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gVW5pZmllZFNvdXJjZTE1Mi5jcHA7IHBhdGggPSAiRGVyaXZlZFNvdXJj
ZXMvSmF2YVNjcmlwdENvcmUvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxNTIuY3BwIjsg
c291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKQEAgLTQ5MjcsNyArNDkyNSw2IEBA
CiAJCUFEOERENkQwMUY2NzA4QTMwMDA0RUI1MiAvKiBKU1RvV2FzbS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBKU1RvV2FzbS5jcHA7IHBhdGggPSBqcy9KU1RvV2FzbS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUFEOEZGMzk1MUVCNUJEODUwMDg3RkY4MiAvKiBXYXNtSW5kZXhP
ck5hbWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2FzbUluZGV4T3JOYW1l
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFEOEZGMzk2MUVCNUJEODUwMDg3RkY4
MiAvKiBXYXNtSW5kZXhPck5hbWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gV2FzbUluZGV4T3JOYW1lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
QUQ5RTg1MkUxRThBMEM2RTAwOERFMzlFIC8qIEpTV2ViQXNzZW1ibHlDYWxsZWVHcm91cC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBKU1dlYkFzc2VtYmx5Q2FsbGVlR3JvdXAu
aDsgcGF0aCA9IGpzL0pTV2ViQXNzZW1ibHlDYWxsZWVHcm91cC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlBREI2RjY3QzFFMTVENzUwMDA4MkYzODQgLyogV2FzbVBhZ2VDb3VudC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXYXNtUGFnZUNvdW50LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUREMDlBRUUxRjVGNjIzRjAwMTMxM0My
IC8qIFdhc21Ub0pTLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdhc21Ub0pTLmg7IHBhdGggPSBqcy9XYXNt
VG9KUy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBREQwOUFFRjFGNUY2MjNGMDAx
MzEzQzIgLyogV2FzbVRvSlMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2FzbVRvSlMuY3BwOyBw
YXRoID0ganMvV2FzbVRvSlMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTE4
NCw4ICs5MTgxLDYgQEAKIAkJCQk1MjdDRTM1MzIyNTU1RkREMDBDNkYzODIgLyogSlNUb1dhc21J
Q0NhbGxlZS5oICovLAogCQkJCUFERDA5QUYyMUY2MjQ4MjkwMDEzMTNDMiAvKiBKU1dlYkFzc2Vt
Ymx5LmNwcCAqLywKIAkJCQlBREQwOUFGMzFGNjI0ODJFMDAxMzEzQzIgLyogSlNXZWJBc3NlbWJs
eS5oICovLAotCQkJCTUzODNBQTJGMUU2NUU4QTEwMEE1MzJGQyAvKiBKU1dlYkFzc2VtYmx5Q2Fs
bGVlR3JvdXAuY3BwICovLAotCQkJCUFEOUU4NTJFMUU4QTBDNkUwMDhERTM5RSAvKiBKU1dlYkFz
c2VtYmx5Q2FsbGVlR3JvdXAuaCAqLywKIAkJCQlBRDJGQ0JBNjFEQjU4REE0MDBCM0U3MzYgLyog
SlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvci5jcHAgKi8sCiAJCQkJQUQyRkNCQTcxREI1OERBNDAw
QjNFNzM2IC8qIEpTV2ViQXNzZW1ibHlDb21waWxlRXJyb3IuaCAqLywKIAkJCQkxNEQwMUJEQzI2
REVFRjM3MDBDQUUwRDAgLyogSlNXZWJBc3NlbWJseUV4Y2VwdGlvbi5jcHAgKi8sCkBAIC0xMDUx
MCw3ICsxMDUwNSw2IEBACiAJCQkJNzA5RkI4NjgxQUUzMzVDNjAwMzlEMDY5IC8qIEpTV2Vha1Nl
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0E5Nzc0QTgyMDZCODJFNDAwOEQwM0QwIC8qIEpTV2Vh
a1ZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBRDVDMzZFQjFGNzVBRDczMDAwQkNBQUYgLyog
SlNXZWJBc3NlbWJseS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQUQ5RTg1MkYxRThBMEM3QzAwOERF
MzlFIC8qIEpTV2ViQXNzZW1ibHlDYWxsZWVHcm91cC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUQy
RkNCRTMxREI1OERBRDAwQjNFNzM2IC8qIEpTV2ViQXNzZW1ibHlDb21waWxlRXJyb3IuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTE0RDAxQkVEMjZERUVGMzgwMENBRTBEMCAvKiBKU1dlYkFzc2VtYmx5
RXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlFM0JGM0M0RDIzOTBEMUU4MDA4QkM3NTIg
LyogSlNXZWJBc3NlbWJseUdsb2JhbC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU291
cmNlcy50eHQKaW5kZXggZmY4YmJlOWIyZDM5MWQ0YjZkYTVhMTQ0MWJmMGQ4ZDcwNmRjNjk1ZS4u
NzJlY2Q5Y2NiNTVlMDdhOGY3NWQ5OGM4Yzc3ZWU5ODRlOGM3ZmM3MiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9Tb3VyY2VzLnR4dApAQCAtMTEyMSw3ICsxMTIxLDYgQEAgd2FzbS9qcy9KU1RvV2FzbS5jcHAK
IHdhc20vanMvSlNUb1dhc20uaAogd2FzbS9qcy9KU1RvV2FzbUlDQ2FsbGVlLmNwcAogd2FzbS9q
cy9KU1dlYkFzc2VtYmx5LmNwcAotd2FzbS9qcy9KU1dlYkFzc2VtYmx5Q2FsbGVlR3JvdXAuY3Bw
CiB3YXNtL2pzL0pTV2ViQXNzZW1ibHlDb21waWxlRXJyb3IuY3BwCiB3YXNtL2pzL0pTV2ViQXNz
ZW1ibHlFeGNlcHRpb24uY3BwCiB3YXNtL2pzL0pTV2ViQXNzZW1ibHlHbG9iYWwuY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCmluZGV4IDM5NjMwODBkZTc2MjBhZGYyNzIzOGE1NDQ4
Zjk3MWU0NTAwNGIxOGMuLjEwYmI5NTRjMzBhYjI0M2RjOTNiZDNjOGEwNjYxMmZjODk0NWIxZGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCkBAIC01NSw3ICs1NSw2IEBACiAjaW5j
bHVkZSAiSlNXZWFrTWFwLmgiCiAjaW5jbHVkZSAiSlNXZWFrT2JqZWN0UmVmLmgiCiAjaW5jbHVk
ZSAiSlNXZWFrU2V0LmgiCi0jaW5jbHVkZSAiSlNXZWJBc3NlbWJseUNhbGxlZUdyb3VwLmgiCiAj
aW5jbHVkZSAiTWFjaGluZVN0YWNrTWFya2VyLmgiCiAjaW5jbHVkZSAiTWFya1N0YWNrTWVyZ2lu
Z0NvbnN0cmFpbnQuaCIKICNpbmNsdWRlICJNYXJrZWRKU1ZhbHVlUmVmQXJyYXkuaCIKQEAgLTMz
NSw3ICszMzQsNiBAQCBIZWFwOjpIZWFwKFZNJiB2bSwgSGVhcFR5cGUgaGVhcFR5cGUpCiAgICAg
LCBpbnRsU2VnbWVudGVySGVhcENlbGxUeXBlKElzb0hlYXBDZWxsVHlwZTo6QXJnczxJbnRsU2Vn
bWVudGVyPigpKQogICAgICwgaW50bFNlZ21lbnRzSGVhcENlbGxUeXBlKElzb0hlYXBDZWxsVHlw
ZTo6QXJnczxJbnRsU2VnbWVudHM+KCkpCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQotICAgICwg
d2ViQXNzZW1ibHlDYWxsZWVHcm91cEhlYXBDZWxsVHlwZShJc29IZWFwQ2VsbFR5cGU6OkFyZ3M8
SlNXZWJBc3NlbWJseUNhbGxlZUdyb3VwPigpKQogICAgICwgd2ViQXNzZW1ibHlFeGNlcHRpb25I
ZWFwQ2VsbFR5cGUoSXNvSGVhcENlbGxUeXBlOjpBcmdzPEpTV2ViQXNzZW1ibHlFeGNlcHRpb24+
KCkpCiAgICAgLCB3ZWJBc3NlbWJseUZ1bmN0aW9uSGVhcENlbGxUeXBlKElzb0hlYXBDZWxsVHlw
ZTo6QXJnczxXZWJBc3NlbWJseUZ1bmN0aW9uPigpKQogICAgICwgd2ViQXNzZW1ibHlHbG9iYWxI
ZWFwQ2VsbFR5cGUoSXNvSGVhcENlbGxUeXBlOjpBcmdzPEpTV2ViQXNzZW1ibHlHbG9iYWw+KCkp
CkBAIC03MTQsOCArNzEyLDggQEAgdm9pZCBIZWFwOjpmaW5hbGl6ZVVuY29uZGl0aW9uYWxGaW5h
bGl6ZXJzKCkKICAgICAgICAgZmluYWxpemVNYXJrZWRVbmNvbmRpdGlvbmFsRmluYWxpemVyczxK
U0ZpbmFsaXphdGlvblJlZ2lzdHJ5PigqbV9maW5hbGl6YXRpb25SZWdpc3RyeVNwYWNlKTsKIAog
I2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKLSAgICBpZiAobV93ZWJBc3NlbWJseUNhbGxlZUdyb3Vw
U3BhY2UpCi0gICAgICAgIGZpbmFsaXplTWFya2VkVW5jb25kaXRpb25hbEZpbmFsaXplcnM8SlNX
ZWJBc3NlbWJseUNhbGxlZUdyb3VwPigqbV93ZWJBc3NlbWJseUNhbGxlZUdyb3VwU3BhY2UpOwor
ICAgIGlmIChtX3dlYkFzc2VtYmx5TW9kdWxlU3BhY2UpCisgICAgICAgIGZpbmFsaXplTWFya2Vk
VW5jb25kaXRpb25hbEZpbmFsaXplcnM8SlNXZWJBc3NlbWJseU1vZHVsZT4oKm1fd2ViQXNzZW1i
bHlNb2R1bGVTcGFjZSk7CiAjZW5kaWYKIH0KIApAQCAtMTAzNiwxMCArMTAzNCwxMCBAQCB2b2lk
IEhlYXA6OmRlbGV0ZUFsbENvZGVCbG9ja3MoRGVsZXRlQWxsQ29kZUVmZm9ydCBlZmZvcnQpCiAg
ICAgICAgIC8vIHBvaW50cyBpbnRvIGEgQ29kZUJsb2NrIHRoYXQgY291bGQgYmUgZGVhZC4gVGhl
IElDIHdpbGwgc3RpbGwgc3VjY2VlZCBiZWNhdXNlCiAgICAgICAgIC8vIGl0IHVzZXMgYSBjYWxs
ZWUgY2hlY2ssIGJ1dCB0aGVuIGl0IHdpbGwgY2FsbCBpbnRvIGRlYWQgY29kZS4KICAgICAgICAg
SGVhcEl0ZXJhdGlvblNjb3BlIGhlYXBJdGVyYXRpb25TY29wZSgqdGhpcyk7Ci0gICAgICAgIGlm
IChtX3dlYkFzc2VtYmx5Q2FsbGVlR3JvdXBTcGFjZSkgewotICAgICAgICAgICAgbV93ZWJBc3Nl
bWJseUNhbGxlZUdyb3VwU3BhY2UtPmZvckVhY2hMaXZlQ2VsbChbJl0gKEhlYXBDZWxsKiBjZWxs
LCBIZWFwQ2VsbDo6S2luZCBraW5kKSB7CisgICAgICAgIGlmIChtX3dlYkFzc2VtYmx5TW9kdWxl
U3BhY2UpIHsKKyAgICAgICAgICAgIG1fd2ViQXNzZW1ibHlNb2R1bGVTcGFjZS0+Zm9yRWFjaExp
dmVDZWxsKFsmXSAoSGVhcENlbGwqIGNlbGwsIEhlYXBDZWxsOjpLaW5kIGtpbmQpIHsKICAgICAg
ICAgICAgICAgICBBU1NFUlRfVU5VU0VEKGtpbmQsIGtpbmQgPT0gSGVhcENlbGw6OkpTQ2VsbCk7
Ci0gICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8SlNXZWJBc3NlbWJseUNhbGxlZUdyb3VwKj4o
Y2VsbCktPmNsZWFySlNDYWxsSUNzKHZtKTsKKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxK
U1dlYkFzc2VtYmx5TW9kdWxlKj4oY2VsbCktPmNsZWFySlNDYWxsSUNzKHZtKTsKICAgICAgICAg
ICAgIH0pOwogICAgICAgICB9CiAgICAgfQpAQCAtMzI3NCw3ICszMjcyLDYgQEAgRFlOQU1JQ19J
U09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKGludGxTZWdtZW50ZXJTcGFjZSwgaW50bFNl
Z21lbnRlckhlYXBDZWwKIERZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyhp
bnRsU2VnbWVudHNTcGFjZSwgaW50bFNlZ21lbnRzSGVhcENlbGxUeXBlLCBJbnRsU2VnbWVudHMp
CiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01F
TUJFUl9TTE9XKGpzVG9XYXNtSUNDYWxsZWVTcGFjZSwgY2VsbEhlYXBDZWxsVHlwZSwgSlNUb1dh
c21JQ0NhbGxlZSkKLURZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyh3ZWJB
c3NlbWJseUNhbGxlZUdyb3VwU3BhY2UsIHdlYkFzc2VtYmx5Q2FsbGVlR3JvdXBIZWFwQ2VsbFR5
cGUsIEpTV2ViQXNzZW1ibHlDYWxsZWVHcm91cCkgLy8gSGFzaDoweDlhZDk5NWNkCiBEWU5BTUlD
X0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1cod2ViQXNzZW1ibHlFeGNlcHRpb25TcGFj
ZSwgd2ViQXNzZW1ibHlFeGNlcHRpb25IZWFwQ2VsbFR5cGUsIEpTV2ViQXNzZW1ibHlFeGNlcHRp
b24pCiBEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1cod2ViQXNzZW1ibHlG
dW5jdGlvblNwYWNlLCB3ZWJBc3NlbWJseUZ1bmN0aW9uSGVhcENlbGxUeXBlLCBXZWJBc3NlbWJs
eUZ1bmN0aW9uKSAvLyBIYXNoOjB4OGI3YzMyZGIKIERZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklO
RV9NRU1CRVJfU0xPVyh3ZWJBc3NlbWJseUdsb2JhbFNwYWNlLCB3ZWJBc3NlbWJseUdsb2JhbEhl
YXBDZWxsVHlwZSwgSlNXZWJBc3NlbWJseUdsb2JhbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0hlYXAuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAu
aAppbmRleCBkYWNkMjc2NWYxMjllNGNmN2ZjNTNiODVjNTBkNDYxYjVjNjRkNDI1Li40ZGU4MmVi
ODc0OTRjYzc5MDZhMzZlYzk1ODI5NjU1ZmQxYmNkODBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
SGVhcC5oCkBAIC03ODUsNyArNzg1LDYgQEAgY2xhc3MgSGVhcCB7CiAgICAgSXNvSGVhcENlbGxU
eXBlIGludGxTZWdtZW50ZXJIZWFwQ2VsbFR5cGU7CiAgICAgSXNvSGVhcENlbGxUeXBlIGludGxT
ZWdtZW50c0hlYXBDZWxsVHlwZTsKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCi0gICAgSXNvSGVh
cENlbGxUeXBlIHdlYkFzc2VtYmx5Q2FsbGVlR3JvdXBIZWFwQ2VsbFR5cGU7CiAgICAgSXNvSGVh
cENlbGxUeXBlIHdlYkFzc2VtYmx5RXhjZXB0aW9uSGVhcENlbGxUeXBlOwogICAgIElzb0hlYXBD
ZWxsVHlwZSB3ZWJBc3NlbWJseUZ1bmN0aW9uSGVhcENlbGxUeXBlOwogICAgIElzb0hlYXBDZWxs
VHlwZSB3ZWJBc3NlbWJseUdsb2JhbEhlYXBDZWxsVHlwZTsKQEAgLTk2Nyw3ICs5NjYsNiBAQCBj
bGFzcyBIZWFwIHsKICAgICBEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSKGludGxT
ZWdtZW50c1NwYWNlKQogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKICAgICBEWU5BTUlDX0lTT19T
VUJTUEFDRV9ERUZJTkVfTUVNQkVSKGpzVG9XYXNtSUNDYWxsZWVTcGFjZSkKLSAgICBEWU5BTUlD
X0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSKHdlYkFzc2VtYmx5Q2FsbGVlR3JvdXBTcGFjZSkK
ICAgICBEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSKHdlYkFzc2VtYmx5RXhjZXB0
aW9uU3BhY2UpCiAgICAgRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUih3ZWJBc3Nl
bWJseUZ1bmN0aW9uU3BhY2UpCiAgICAgRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJF
Uih3ZWJBc3NlbWJseUdsb2JhbFNwYWNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvVk0uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3Bw
CmluZGV4IGM2YmU0NTdiNmQwNjAzZDY2ZDI4NTgxMjE4ZTA0ZDRmYzAzY2M0MjMuLmY1NDk0NjQ0
ODI0ZjcyMmE3OWIzZGM0YWUwM2RjMTBiYmU0ODc5ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9WTS5jcHAKQEAgLTc3LDcgKzc3LDYgQEAKICNpbmNsdWRlICJKU1NldC5oIgogI2luY2x1
ZGUgIkpTU291cmNlQ29kZS5oIgogI2luY2x1ZGUgIkpTVGVtcGxhdGVPYmplY3REZXNjcmlwdG9y
LmgiCi0jaW5jbHVkZSAiSlNXZWJBc3NlbWJseUNhbGxlZUdyb3VwLmgiCiAjaW5jbHVkZSAiTExJ
bnREYXRhLmgiCiAjaW5jbHVkZSAiTExJbnRFeGNlcHRpb25zLmgiCiAjaW5jbHVkZSAiTWFya2Vk
QmxvY2tJbmxpbmVzLmgiCkBAIC0yNzAsOSArMjY5LDYgQEAgVk06OlZNKFZNVHlwZSB2bVR5cGUs
IEhlYXBUeXBlIGhlYXBUeXBlLCBXVEY6OlJ1bkxvb3AqIHJ1bkxvb3AsIGJvb2wqIHN1Y2Nlc3Mp
CiAgICAgZXZhbEV4ZWN1dGFibGVTdHJ1Y3R1cmUuc2V0KCp0aGlzLCBFdmFsRXhlY3V0YWJsZTo6
Y3JlYXRlU3RydWN0dXJlKCp0aGlzLCBudWxscHRyLCBqc051bGwoKSkpOwogICAgIHByb2dyYW1F
eGVjdXRhYmxlU3RydWN0dXJlLnNldCgqdGhpcywgUHJvZ3JhbUV4ZWN1dGFibGU6OmNyZWF0ZVN0
cnVjdHVyZSgqdGhpcywgbnVsbHB0ciwganNOdWxsKCkpKTsKICAgICBmdW5jdGlvbkV4ZWN1dGFi
bGVTdHJ1Y3R1cmUuc2V0KCp0aGlzLCBGdW5jdGlvbkV4ZWN1dGFibGU6OmNyZWF0ZVN0cnVjdHVy
ZSgqdGhpcywgbnVsbHB0ciwganNOdWxsKCkpKTsKLSNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCi0g
ICAgd2ViQXNzZW1ibHlDYWxsZWVHcm91cFN0cnVjdHVyZS5zZXQoKnRoaXMsIEpTV2ViQXNzZW1i
bHlDYWxsZWVHcm91cDo6Y3JlYXRlU3RydWN0dXJlKCp0aGlzLCBudWxscHRyLCBqc051bGwoKSkp
OwotI2VuZGlmCiAgICAgbW9kdWxlUHJvZ3JhbUV4ZWN1dGFibGVTdHJ1Y3R1cmUuc2V0KCp0aGlz
LCBNb2R1bGVQcm9ncmFtRXhlY3V0YWJsZTo6Y3JlYXRlU3RydWN0dXJlKCp0aGlzLCBudWxscHRy
LCBqc051bGwoKSkpOwogICAgIHJlZ0V4cFN0cnVjdHVyZS5zZXQoKnRoaXMsIFJlZ0V4cDo6Y3Jl
YXRlU3RydWN0dXJlKCp0aGlzLCBudWxscHRyLCBqc051bGwoKSkpOwogICAgIHN5bWJvbFN0cnVj
dHVyZS5zZXQoKnRoaXMsIFN5bWJvbDo6Y3JlYXRlU3RydWN0dXJlKCp0aGlzLCBudWxscHRyLCBq
c051bGwoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0u
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKaW5kZXggMWZjZWM2ZjlhMThm
ZTAxNDM3NGM0YzE5M2RlNmRhNTU5NDczYThmOC4uYTFiMGIzODUzOGJmMjA4MzIwNzlkZmM5NDc0
ZmVhOTU1M2YzMGYwYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Vk0uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCkBAIC00NzYsNyAr
NDc2LDYgQEAgY2xhc3MgVk0gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8Vk0+LCBwdWJs
aWMgRG91Ymx5TGlua2VkTGlzdE5vZGU8Vk0+IHsKICAgICBEWU5BTUlDX0lTT19TVUJTUEFDRV9E
RUZJTkVfTUVNQkVSKGludGxTZWdtZW50c1NwYWNlKQogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkK
ICAgICBEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSKGpzVG9XYXNtSUNDYWxsZWVT
cGFjZSkKLSAgICBEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSKHdlYkFzc2VtYmx5
Q2FsbGVlR3JvdXBTcGFjZSkKICAgICBEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVS
KHdlYkFzc2VtYmx5RXhjZXB0aW9uU3BhY2UpCiAgICAgRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVG
SU5FX01FTUJFUih3ZWJBc3NlbWJseUZ1bmN0aW9uU3BhY2UpCiAgICAgRFlOQU1JQ19JU09fU1VC
U1BBQ0VfREVGSU5FX01FTUJFUih3ZWJBc3NlbWJseUdsb2JhbFNwYWNlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUNhbGxlZUdyb3VwLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlDYWxsZWVHcm91
cC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFhZmJjOGFmN2UyNzkxMTdhOTk1
NTRmMDY2ODM1MDc5YmU2MzViYzMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUNh
bGxlZUdyb3VwLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDEwNCArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDE3LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmln
LmgiCi0jaW5jbHVkZSAiSlNXZWJBc3NlbWJseUNhbGxlZUdyb3VwLmgiCi0KLSNpZiBFTkFCTEUo
V0VCQVNTRU1CTFkpCi0KLSNpbmNsdWRlICJKU0NKU1ZhbHVlSW5saW5lcy5oIgotI2luY2x1ZGUg
IkpTQ2VsbElubGluZXMuaCIKLSNpbmNsdWRlICJXYXNtTW9kdWxlSW5mb3JtYXRpb24uaCIKLSNp
bmNsdWRlICJXYXNtVG9KUy5oIgotCi1uYW1lc3BhY2UgSlNDIHsKLQotY29uc3QgQ2xhc3NJbmZv
IEpTV2ViQXNzZW1ibHlDYWxsZWVHcm91cDo6c19pbmZvID0geyAiV2ViQXNzZW1ibHlDYWxsZWVH
cm91cCIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNX
ZWJBc3NlbWJseUNhbGxlZUdyb3VwKSB9OwotCi1KU1dlYkFzc2VtYmx5Q2FsbGVlR3JvdXAqIEpT
V2ViQXNzZW1ibHlDYWxsZWVHcm91cDo6Y3JlYXRlKFZNJiB2bSwgUmVmPFdhc206OkNhbGxlZUdy
b3VwPiBjYWxsZWVHcm91cCwgY29uc3QgV2FzbTo6TW9kdWxlSW5mb3JtYXRpb24mIG1vZHVsZUlu
Zm9ybWF0aW9uKQotewotICAgIGF1dG8qIHJlc3VsdCA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVD
ZWxsPEpTV2ViQXNzZW1ibHlDYWxsZWVHcm91cD4odm0pKSBKU1dlYkFzc2VtYmx5Q2FsbGVlR3Jv
dXAodm0sIFdURk1vdmUoY2FsbGVlR3JvdXApLCBtb2R1bGVJbmZvcm1hdGlvbik7Ci0gICAgcmVz
dWx0LT5maW5pc2hDcmVhdGlvbih2bSk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotSlNXZWJB
c3NlbWJseUNhbGxlZUdyb3VwOjpKU1dlYkFzc2VtYmx5Q2FsbGVlR3JvdXAoVk0mIHZtLCBSZWY8
V2FzbTo6Q2FsbGVlR3JvdXA+JiYgY2FsbGVlR3JvdXAsIGNvbnN0IFdhc206Ok1vZHVsZUluZm9y
bWF0aW9uJiBtb2R1bGVJbmZvcm1hdGlvbikKLSAgICA6IEJhc2Uodm0sIHZtLndlYkFzc2VtYmx5
Q2FsbGVlR3JvdXBTdHJ1Y3R1cmUuZ2V0KCkpCi0gICAgLCBtX2NhbGxlZUdyb3VwKFdURk1vdmUo
Y2FsbGVlR3JvdXApKQotICAgICwgbV93YXNtVG9KU0V4aXRTdHVicyhtX2NhbGxlZUdyb3VwLT5m
dW5jdGlvbkltcG9ydENvdW50KCkpCi17Ci0gICAgLy8gRklYTUU6IFdlIHNob3VsZCBub3QgbmVl
ZCB0byBkbyB0aGlzIHN5bmNocm9ub3VzbHkuCi0gICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE3MDU2NwotICAgIGZvciAodW5zaWduZWQgaW1wb3J0SW5kZXgg
PSAwOyBpbXBvcnRJbmRleCA8IG1fY2FsbGVlR3JvdXAtPmZ1bmN0aW9uSW1wb3J0Q291bnQoKTsg
KytpbXBvcnRJbmRleCkgewotICAgICAgICBXYXNtOjpTaWduYXR1cmVJbmRleCBzaWduYXR1cmVJ
bmRleCA9IG1vZHVsZUluZm9ybWF0aW9uLmltcG9ydEZ1bmN0aW9uU2lnbmF0dXJlSW5kaWNlcy5h
dChpbXBvcnRJbmRleCk7Ci0gICAgICAgIGF1dG8gYmluZGluZyA9IFdhc206Ondhc21Ub0pTKHZt
LCBtX2NhbGxMaW5rSW5mb3MsIHNpZ25hdHVyZUluZGV4LCBpbXBvcnRJbmRleCk7Ci0gICAgICAg
IGlmIChVTkxJS0VMWSghYmluZGluZykpIHsKLSAgICAgICAgICAgIHN3aXRjaCAoYmluZGluZy5l
cnJvcigpKSB7Ci0gICAgICAgICAgICBjYXNlIFdhc206OkJpbmRpbmdGYWlsdXJlOjpPdXRPZk1l
bW9yeToKLSAgICAgICAgICAgICAgICBtX2Vycm9yTWVzc2FnZSA9ICJPdXQgb2YgZXhlY3V0YWJs
ZSBtZW1vcnkiX3M7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgfQotICAgICAg
ICBtX3dhc21Ub0pTRXhpdFN0dWJzW2ltcG9ydEluZGV4XSA9IGJpbmRpbmcudmFsdWUoKTsKLSAg
ICB9Ci19Ci0KLXZvaWQgSlNXZWJBc3NlbWJseUNhbGxlZUdyb3VwOjpmaW5pc2hDcmVhdGlvbihW
TSYgdm0pCi17Ci0gICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwotfQotCi12b2lkIEpTV2Vi
QXNzZW1ibHlDYWxsZWVHcm91cDo6ZGVzdHJveShKU0NlbGwqIGNlbGwpCi17Ci0gICAgc3RhdGlj
X2Nhc3Q8SlNXZWJBc3NlbWJseUNhbGxlZUdyb3VwKj4oY2VsbCktPkpTV2ViQXNzZW1ibHlDYWxs
ZWVHcm91cDo6fkpTV2ViQXNzZW1ibHlDYWxsZWVHcm91cCgpOwotfQotCi12b2lkIEpTV2ViQXNz
ZW1ibHlDYWxsZWVHcm91cDo6Y2xlYXJKU0NhbGxJQ3MoVk0mIHZtKQotewotICAgIGZvciAoYXV0
byBpdGVyID0gbV9jYWxsTGlua0luZm9zLmJlZ2luKCk7ICEhaXRlcjsgKytpdGVyKQotICAgICAg
ICAoKml0ZXIpLT51bmxpbmsodm0pOwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBWaXNpdG9yPgot
dm9pZCBKU1dlYkFzc2VtYmx5Q2FsbGVlR3JvdXA6OnZpc2l0Q2hpbGRyZW5JbXBsKEpTQ2VsbCog
Y2VsbCwgVmlzaXRvciYgdmlzaXRvcikKLXsKLSAgICBKU1dlYkFzc2VtYmx5Q2FsbGVlR3JvdXAq
IHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNXZWJBc3NlbWJseUNhbGxlZUdyb3VwKj4oY2VsbCk7Ci0g
ICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwotCi0gICAg
QmFzZTo6dmlzaXRDaGlsZHJlbih0aGlzT2JqZWN0LCB2aXNpdG9yKTsKLX0KLQotREVGSU5FX1ZJ
U0lUX0NISUxEUkVOKEpTV2ViQXNzZW1ibHlDYWxsZWVHcm91cCk7Ci0KLXZvaWQgSlNXZWJBc3Nl
bWJseUNhbGxlZUdyb3VwOjpmaW5hbGl6ZVVuY29uZGl0aW9uYWxseShWTSYgdm0pCi17Ci0gICAg
Zm9yIChhdXRvIGl0ZXIgPSBtX2NhbGxMaW5rSW5mb3MuYmVnaW4oKTsgISFpdGVyOyArK2l0ZXIp
Ci0gICAgICAgICgqaXRlciktPnZpc2l0V2Vhayh2bSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIEpT
QwotCi0jZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUNhbGxlZUdyb3VwLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5Q2FsbGVlR3JvdXAuaApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODc0MmVkYTU3YjFlMjZhY2RmMTBmMTUwNGVlN2E0NjY3
OTcxMzM3ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5Q2FsbGVlR3JvdXAuaAor
KysgL2Rldi9udWxsCkBAIC0xLDk5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTct
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0g
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgRU5BQkxFKFdFQkFT
U0VNQkxZKQotCi0jaW5jbHVkZSAiQ2FsbExpbmtJbmZvLmgiCi0jaW5jbHVkZSAiRGVmZXJyZWRX
b3JrVGltZXIuaCIKLSNpbmNsdWRlICJKU0Nhc3QuaCIKLSNpbmNsdWRlICJTdHJ1Y3R1cmUuaCIK
LSNpbmNsdWRlICJXYXNtQ2FsbGVlLmgiCi0jaW5jbHVkZSAiV2FzbUZvcm1hdC5oIgotI2luY2x1
ZGUgIldhc21Nb2R1bGUuaCIKLSNpbmNsdWRlIDx3dGYvQmFnLmg+Ci0jaW5jbHVkZSA8d3RmL1Jl
Zi5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQotbmFtZXNwYWNlIEpTQyB7Ci0KLWNsYXNz
IEpTV2ViQXNzZW1ibHlNZW1vcnk7Ci0KLW5hbWVzcGFjZSBXYXNtIHsKLWNsYXNzIFBsYW47Ci19
Ci0KLWNsYXNzIEpTV2ViQXNzZW1ibHlDYWxsZWVHcm91cCBmaW5hbCA6IHB1YmxpYyBKU0NlbGwg
ewotcHVibGljOgotICAgIHR5cGVkZWYgSlNDZWxsIEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0ZXhw
ciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0
dXJlSXNJbW1vcnRhbDsKLQotICAgIHN0YXRpYyBKU1dlYkFzc2VtYmx5Q2FsbGVlR3JvdXAqIGNy
ZWF0ZShWTSYsIFJlZjxXYXNtOjpDYWxsZWVHcm91cD4sIGNvbnN0IFdhc206Ok1vZHVsZUluZm9y
bWF0aW9uJik7Ci0gICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCi0gICAgewot
ICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90
eXBlLCBUeXBlSW5mbyhDZWxsVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwotICAgIH0K
LQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIENlbGxUeXBlLCBTdWJzcGFjZUFjY2VzcyBtb2RlPgot
ICAgIHN0YXRpYyBJc29TdWJzcGFjZSogc3Vic3BhY2VGb3IoVk0mIHZtKQotICAgIHsKLSAgICAg
ICAgcmV0dXJuIHZtLndlYkFzc2VtYmx5Q2FsbGVlR3JvdXBTcGFjZTxtb2RlPigpOwotICAgIH0K
LQotICAgIFdhc206OkNhbGxlZUdyb3VwJiBjYWxsZWVHcm91cCgpIHsgcmV0dXJuIG1fY2FsbGVl
R3JvdXAuZ2V0KCk7IH0KLSAgICAKLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHI8V2FzbUVudHJ5
UHRyVGFnPiB3YXNtVG9FbWJlZGRlclN0dWIoc2l6ZV90IGltcG9ydEZ1bmN0aW9uTnVtKSB7IHJl
dHVybiBtX3dhc21Ub0pTRXhpdFN0dWJzW2ltcG9ydEZ1bmN0aW9uTnVtXS5jb2RlKCk7IH0KLQot
ICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mKTsKLQotICAgIHZvaWQgY2xlYXJKU0NhbGxJQ3Mo
Vk0mKTsKLQotICAgIGJvb2wgcnVubmFibGUoKSBjb25zdCB7IHJldHVybiAhbV9lcnJvck1lc3Nh
Z2U7IH0KLQotICAgIFN0cmluZyBlcnJvck1lc3NhZ2UoKQotICAgIHsKLSAgICAgICAgQVNTRVJU
KCFydW5uYWJsZSgpKTsKLSAgICAgICAgcmV0dXJuIG1fZXJyb3JNZXNzYWdlOwotICAgIH0KLQot
ICAgIHZvaWQgZmluYWxpemVVbmNvbmRpdGlvbmFsbHkoVk0mKTsKLQotcHJpdmF0ZToKLSAgICBK
U1dlYkFzc2VtYmx5Q2FsbGVlR3JvdXAoVk0mLCBSZWY8V2FzbTo6Q2FsbGVlR3JvdXA+JiYsIGNv
bnN0IFdhc206Ok1vZHVsZUluZm9ybWF0aW9uJik7Ci0gICAgREVDTEFSRV9FWFBPUlRfSU5GTzsK
LSAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IHRydWU7Ci0gICAg
c3RhdGljIHZvaWQgZGVzdHJveShKU0NlbGwqKTsKLSAgICBERUNMQVJFX1ZJU0lUX0NISUxEUkVO
OwotCi0gICAgUmVmPFdhc206OkNhbGxlZUdyb3VwPiBtX2NhbGxlZUdyb3VwOwotICAgIEZpeGVk
VmVjdG9yPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+PiBtX3dhc21Ub0pT
RXhpdFN0dWJzOwotICAgIEJhZzxPcHRpbWl6aW5nQ2FsbExpbmtJbmZvPiBtX2NhbGxMaW5rSW5m
b3M7Ci0gICAgU3RyaW5nIG1fZXJyb3JNZXNzYWdlOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgSlND
Ci0KLSNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5SW5zdGFuY2UuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUluc3RhbmNlLmNwcAppbmRleCBjNGQ0
OWNjNGM1YTE4ZmE5ZDM2YWQ5ZTJjN2I3YTQ5MzY0NTMzZGVhLi40NDNlYjliYmJjMTk5YWY4Zjcz
Mjc0YjQ5YWFjNTYzOTJjMWRjMmY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9KU1dlYkFzc2VtYmx5SW5zdGFuY2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlJbnN0YW5jZS5jcHAKQEAgLTgxLDcgKzgxLDYgQEAg
dm9pZCBKU1dlYkFzc2VtYmx5SW5zdGFuY2U6OnZpc2l0Q2hpbGRyZW5JbXBsKEpTQ2VsbCogY2Vs
bCwgVmlzaXRvciYgdmlzaXRvcikKIAogICAgIEJhc2U6OnZpc2l0Q2hpbGRyZW4odGhpc09iamVj
dCwgdmlzaXRvcik7CiAgICAgdmlzaXRvci5hcHBlbmQodGhpc09iamVjdC0+bV9tb2R1bGUpOwot
ICAgIHZpc2l0b3IuYXBwZW5kKHRoaXNPYmplY3QtPm1fY2FsbGVlR3JvdXApOwogICAgIHZpc2l0
b3IuYXBwZW5kKHRoaXNPYmplY3QtPm1fbW9kdWxlUmVjb3JkKTsKICAgICB2aXNpdG9yLmFwcGVu
ZCh0aGlzT2JqZWN0LT5tX21lbW9yeSk7CiAgICAgZm9yIChhdXRvJiB0YWJsZSA6IHRoaXNPYmpl
Y3QtPm1fdGFibGVzKQpAQCAtMTE3LDIzICsxMTYsNiBAQCB2b2lkIEpTV2ViQXNzZW1ibHlJbnN0
YW5jZTo6ZmluYWxpemVDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
YwogICAgIH0KIAogICAgIFJFTEVBU0VfQVNTRVJUKHdhc21DYWxsZWVHcm91cC0+aXNTYWZlVG9S
dW4obWVtb3J5TW9kZSgpKSk7Ci0gICAgSlNXZWJBc3NlbWJseUNhbGxlZUdyb3VwKiBqc0NhbGxl
ZUdyb3VwID0gbV9tb2R1bGUtPmNhbGxlZUdyb3VwKG1lbW9yeU1vZGUoKSk7Ci0gICAgaWYgKGpz
Q2FsbGVlR3JvdXApIHsKLSAgICAgICAgLy8gQSBDYWxsZWVHcm91cCBtaWdodCBoYXZlIGFscmVh
ZHkgYmVlbiBjb21waWxlZC4gSWYgc28sIGl0IG1lYW5zCi0gICAgICAgIC8vIHRoYXQgdGhlIENh
bGxlZUdyb3VwIHdlIGFyZSB0cnlpbmcgdG8gY29tcGlsZSBtdXN0IGJlIHRoZSBzYW1lCi0gICAg
ICAgIC8vIGJlY2F1c2Ugd2Ugd2lsbCBuZXZlciBjb21waWxlIGEgQ2FsbGVlR3JvdXAgYWdhaW4g
b25jZSBpdCdzCi0gICAgICAgIC8vIHJ1bm5hYmxlLgotICAgICAgICBBU1NFUlQoJmpzQ2FsbGVl
R3JvdXAtPmNhbGxlZUdyb3VwKCkgPT0gd2FzbUNhbGxlZUdyb3VwLnB0cigpKTsKLSAgICAgICAg
bV9jYWxsZWVHcm91cC5zZXQodm0sIHRoaXMsIGpzQ2FsbGVlR3JvdXApOwotICAgIH0gZWxzZSB7
Ci0gICAgICAgIGpzQ2FsbGVlR3JvdXAgPSBKU1dlYkFzc2VtYmx5Q2FsbGVlR3JvdXA6OmNyZWF0
ZSh2bSwgV1RGTW92ZSh3YXNtQ2FsbGVlR3JvdXApLCBtb2R1bGUoKS0+bW9kdWxlKCkubW9kdWxl
SW5mb3JtYXRpb24oKSk7Ci0gICAgICAgIGlmIChVTkxJS0VMWSghanNDYWxsZWVHcm91cC0+cnVu
bmFibGUoKSkpIHsKLSAgICAgICAgICAgIHRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgc2Nv
cGUsIGNyZWF0ZUpTV2ViQXNzZW1ibHlMaW5rRXJyb3IoZ2xvYmFsT2JqZWN0LCB2bSwganNDYWxs
ZWVHcm91cC0+ZXJyb3JNZXNzYWdlKCkpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
fQotICAgICAgICBtX2NhbGxlZUdyb3VwLnNldCh2bSwgdGhpcywganNDYWxsZWVHcm91cCk7Ci0g
ICAgICAgIG1fbW9kdWxlLT5zZXRDYWxsZWVHcm91cCh2bSwgbWVtb3J5TW9kZSgpLCBqc0NhbGxl
ZUdyb3VwKTsKLSAgICB9CiAKICAgICAvLyBJbiB0aGUgbW9kdWxlIGxvYWRlciBjYXNlLCB3ZSB3
aWxsIGluaXRpYWxpemUgYWxsIG1lbW9yeSBtb2RlcyB3aXRoIHRoZSBpbml0aWFsIExMSW50IGNv
bXBpbGF0aW9uCiAgICAgLy8gcmVzdWx0cywgc28gdGhhdCBsYXRlciB3aGVuIG1lbW9yeSBpbXBv
cnRzIGJlY29tZSBhdmFpbGFibGUsIHRoZSBhcHByb3ByaWF0ZSBDYWxsZWVHcm91cCBjYW4gYmUg
dXNlZC4KQEAgLTE0OCwxOSArMTMwLDEzIEBAIHZvaWQgSlNXZWJBc3NlbWJseUluc3RhbmNlOjpm
aW5hbGl6ZUNyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiAgICAg
ICAgICAgICBpZiAoaSA9PSBzdGF0aWNfY2FzdDx1aW50OF90Pihpbml0aWFsTW9kZSkpCiAgICAg
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICBXYXNtOjpNZW1vcnlNb2RlIG1lbW9y
eU1vZGUgPSBzdGF0aWNfY2FzdDxXYXNtOjpNZW1vcnlNb2RlPihpKTsKLSAgICAgICAgICAgIFJl
ZlB0cjxXYXNtOjpDYWxsZWVHcm91cD4gY2FsbGVlR3JvdXAgPSBtb2R1bGUoKS0+bW9kdWxlKCku
Y2FsbGVlR3JvdXBGb3IobWVtb3J5TW9kZSk7Ci0gICAgICAgICAgICBqc0NhbGxlZUdyb3VwID0g
SlNXZWJBc3NlbWJseUNhbGxlZUdyb3VwOjpjcmVhdGUodm0sIGNhbGxlZUdyb3VwLnJlbGVhc2VO
b25OdWxsKCksIG1vZHVsZSgpLT5tb2R1bGUoKS5tb2R1bGVJbmZvcm1hdGlvbigpKTsKLSAgICAg
ICAgICAgIGlmIChVTkxJS0VMWSghanNDYWxsZWVHcm91cC0+cnVubmFibGUoKSkpIHsKLSAgICAg
ICAgICAgICAgICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVKU1dl
YkFzc2VtYmx5TGlua0Vycm9yKGdsb2JhbE9iamVjdCwgdm0sIGpzQ2FsbGVlR3JvdXAtPmVycm9y
TWVzc2FnZSgpKSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgbV9tb2R1bGUtPnNldENhbGxlZUdyb3VwKHZtLCBtZW1vcnlNb2RlLCBqc0NhbGxl
ZUdyb3VwKTsKKyAgICAgICAgICAgIG1vZHVsZSgpLT5tb2R1bGUoKS5jYWxsZWVHcm91cEZvciht
ZW1vcnlNb2RlKTsgLy8gTWF0ZXJpYWxpemUgV2FzbTo6Q2FsbGVlR3JvdXAuCiAgICAgICAgIH0K
ICAgICB9CiAKICAgICBmb3IgKHVuc2lnbmVkIGltcG9ydEZ1bmN0aW9uTnVtID0gMDsgaW1wb3J0
RnVuY3Rpb25OdW0gPCBpbnN0YW5jZSgpLm51bUltcG9ydEZ1bmN0aW9ucygpOyArK2ltcG9ydEZ1
bmN0aW9uTnVtKSB7CiAgICAgICAgIGF1dG8qIGluZm8gPSBpbnN0YW5jZSgpLmltcG9ydEZ1bmN0
aW9uSW5mbyhpbXBvcnRGdW5jdGlvbk51bSk7Ci0gICAgICAgIGluZm8tPndhc21Ub0VtYmVkZGVy
U3R1YiA9IG1fY2FsbGVlR3JvdXAtPndhc21Ub0VtYmVkZGVyU3R1YihpbXBvcnRGdW5jdGlvbk51
bSk7CisgICAgICAgIGluZm8tPndhc21Ub0VtYmVkZGVyU3R1YiA9IG1fbW9kdWxlLT53YXNtVG9F
bWJlZGRlclN0dWIoaW1wb3J0RnVuY3Rpb25OdW0pOwogICAgIH0KIAogICAgIG1fbW9kdWxlUmVj
b3JkLT5wcmVwYXJlTGluayh2bSwgdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5SW5zdGFuY2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlJbnN0YW5jZS5oCmluZGV4IGFkZWVmYTU3ZjczMTQw
NGEzYTkzZjljNTM0MmI4MDZiNzQwNDkzZDYuLjBiMWI3YTdkYjEwZDczNTNmYjY5MzYwYTVmZjQ4
M2Q3Mjg0MzBmNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pT
V2ViQXNzZW1ibHlJbnN0YW5jZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L0pTV2ViQXNzZW1ibHlJbnN0YW5jZS5oCkBAIC0yOCw3ICsyOCw2IEBACiAjaWYgRU5BQkxFKFdF
QkFTU0VNQkxZKQogCiAjaW5jbHVkZSAiSlNEZXN0cnVjdGlibGVPYmplY3QuaCIKLSNpbmNsdWRl
ICJKU1dlYkFzc2VtYmx5Q2FsbGVlR3JvdXAuaCIKICNpbmNsdWRlICJKU1dlYkFzc2VtYmx5R2xv
YmFsLmgiCiAjaW5jbHVkZSAiSlNXZWJBc3NlbWJseU1lbW9yeS5oIgogI2luY2x1ZGUgIkpTV2Vi
QXNzZW1ibHlUYWJsZS5oIgpAQCAtMTE0LDcgKzExMyw2IEBAIGNsYXNzIEpTV2ViQXNzZW1ibHlJ
bnN0YW5jZSBmaW5hbCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKIAogICAgIFdyaXRlQmFy
cmllcjxKU0dsb2JhbE9iamVjdD4gbV9nbG9iYWxPYmplY3Q7CiAgICAgV3JpdGVCYXJyaWVyPEpT
V2ViQXNzZW1ibHlNb2R1bGU+IG1fbW9kdWxlOwotICAgIFdyaXRlQmFycmllcjxKU1dlYkFzc2Vt
Ymx5Q2FsbGVlR3JvdXA+IG1fY2FsbGVlR3JvdXA7CiAgICAgV3JpdGVCYXJyaWVyPFdlYkFzc2Vt
Ymx5TW9kdWxlUmVjb3JkPiBtX21vZHVsZVJlY29yZDsKICAgICBXcml0ZUJhcnJpZXI8SlNXZWJB
c3NlbWJseU1lbW9yeT4gbV9tZW1vcnk7CiAgICAgRml4ZWRWZWN0b3I8V3JpdGVCYXJyaWVyPEpT
V2ViQXNzZW1ibHlUYWJsZT4+IG1fdGFibGVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseU1vZHVsZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5TW9kdWxlLmNwcAppbmRleCBlNjBlNDQxYTMxMDA5
ZDIwNjU1ZjEwZmFhNzU4ZWY0YTdmN2ZjYTg4Li44YWViYmU2NTQxYjA0OTk3OTY3NzI5OTVkNzhh
MjA3NDcxNTdkYWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9K
U1dlYkFzc2VtYmx5TW9kdWxlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9KU1dlYkFzc2VtYmx5TW9kdWxlLmNwcApAQCAtMjksMTEgKzI5LDExIEBACiAjaWYgRU5BQkxF
KFdFQkFTU0VNQkxZKQogCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgotI2luY2x1ZGUgIkpTV2Vi
QXNzZW1ibHlDYWxsZWVHcm91cC5oIgogI2luY2x1ZGUgIkpTV2ViQXNzZW1ibHlDb21waWxlRXJy
b3IuaCIKICNpbmNsdWRlICJXYXNtRm9ybWF0LmgiCiAjaW5jbHVkZSAiV2FzbU1vZHVsZS5oIgog
I2luY2x1ZGUgIldhc21Nb2R1bGVJbmZvcm1hdGlvbi5oIgorI2luY2x1ZGUgIldhc21Ub0pTLmgi
CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogCiBuYW1lc3BhY2UgSlNDIHsKQEAgLTUy
LDYgKzUyLDE2IEBAIEpTV2ViQXNzZW1ibHlNb2R1bGUqIEpTV2ViQXNzZW1ibHlNb2R1bGU6OmNy
ZWF0ZVN0dWIoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvCiAKICAgICBhdXRvKiBtb2R1bGUg
PSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxKU1dlYkFzc2VtYmx5TW9kdWxlPih2bSkpIEpT
V2ViQXNzZW1ibHlNb2R1bGUodm0sIHN0cnVjdHVyZSwgcmVzdWx0LnZhbHVlKCkucmVsZWFzZU5v
bk51bGwoKSk7CiAgICAgbW9kdWxlLT5maW5pc2hDcmVhdGlvbih2bSk7CisKKyAgICBhdXRvIGVy
cm9yID0gbW9kdWxlLT5nZW5lcmF0ZVdhc21Ub0pTU3R1YnModm0pOworICAgIGlmIChVTkxJS0VM
WSghZXJyb3IpKSB7CisgICAgICAgIHN3aXRjaCAoZXJyb3IuZXJyb3IoKSkgeworICAgICAgICBj
YXNlIFdhc206OkJpbmRpbmdGYWlsdXJlOjpPdXRPZk1lbW9yeToKKyAgICAgICAgICAgIHRocm93
RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZUpTV2ViQXNzZW1ibHlMaW5rRXJy
b3IoZ2xvYmFsT2JqZWN0LCB2bSwgIk91dCBvZiBleGVjdXRhYmxlIG1lbW9yeSJfcykpOworICAg
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIH0KKyAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgfQogICAgIHJldHVybiBtb2R1bGU7CiB9CiAKQEAgLTEwOSwyMSArMTE5
LDExIEBAIFdhc206OlNpZ25hdHVyZUluZGV4IEpTV2ViQXNzZW1ibHlNb2R1bGU6OnNpZ25hdHVy
ZUluZGV4RnJvbUZ1bmN0aW9uSW5kZXhTcGFjZSh1CiAgICAgcmV0dXJuIG1fbW9kdWxlLT5zaWdu
YXR1cmVJbmRleEZyb21GdW5jdGlvbkluZGV4U3BhY2UoZnVuY3Rpb25JbmRleFNwYWNlKTsKIH0K
IAotSlNXZWJBc3NlbWJseUNhbGxlZUdyb3VwKiBKU1dlYkFzc2VtYmx5TW9kdWxlOjpjYWxsZWVH
cm91cChXYXNtOjpNZW1vcnlNb2RlIG1vZGUpCi17Ci0gICAgcmV0dXJuIG1fY2FsbGVlR3JvdXBz
W3N0YXRpY19jYXN0PHNpemVfdD4obW9kZSldLmdldCgpOwotfQotCiBXYXNtOjpNb2R1bGUmIEpT
V2ViQXNzZW1ibHlNb2R1bGU6Om1vZHVsZSgpCiB7CiAgICAgcmV0dXJuIG1fbW9kdWxlLmdldCgp
OwogfQogCi12b2lkIEpTV2ViQXNzZW1ibHlNb2R1bGU6OnNldENhbGxlZUdyb3VwKFZNJiB2bSwg
V2FzbTo6TWVtb3J5TW9kZSBtb2RlLCBKU1dlYkFzc2VtYmx5Q2FsbGVlR3JvdXAqIGNhbGxlZUdy
b3VwKQotewotICAgIG1fY2FsbGVlR3JvdXBzW3N0YXRpY19jYXN0PHNpemVfdD4obW9kZSldLnNl
dCh2bSwgdGhpcywgY2FsbGVlR3JvdXApOwotfQotCiB0ZW1wbGF0ZTx0eXBlbmFtZSBWaXNpdG9y
Pgogdm9pZCBKU1dlYkFzc2VtYmx5TW9kdWxlOjp2aXNpdENoaWxkcmVuSW1wbChKU0NlbGwqIGNl
bGwsIFZpc2l0b3ImIHZpc2l0b3IpCiB7CkBAIC0xMzIsMTIgKzEzMiw0MSBAQCB2b2lkIEpTV2Vi
QXNzZW1ibHlNb2R1bGU6OnZpc2l0Q2hpbGRyZW5JbXBsKEpTQ2VsbCogY2VsbCwgVmlzaXRvciYg
dmlzaXRvcikKIAogICAgIEJhc2U6OnZpc2l0Q2hpbGRyZW4odGhpc09iamVjdCwgdmlzaXRvcik7
CiAgICAgdmlzaXRvci5hcHBlbmQodGhpc09iamVjdC0+bV9leHBvcnRTeW1ib2xUYWJsZSk7Ci0g
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IFdhc206Ok51bWJlck9mTWVtb3J5TW9kZXM7ICsr
aSkKLSAgICAgICAgdmlzaXRvci5hcHBlbmQodGhpc09iamVjdC0+bV9jYWxsZWVHcm91cHNbaV0p
OwogfQogCiBERUZJTkVfVklTSVRfQ0hJTERSRU4oSlNXZWJBc3NlbWJseU1vZHVsZSk7CiAKK3Zv
aWQgSlNXZWJBc3NlbWJseU1vZHVsZTo6Y2xlYXJKU0NhbGxJQ3MoVk0mIHZtKQoreworICAgIGZv
ciAoYXV0byBpdGVyID0gbV9jYWxsTGlua0luZm9zLmJlZ2luKCk7ICEhaXRlcjsgKytpdGVyKQor
ICAgICAgICAoKml0ZXIpLT51bmxpbmsodm0pOworfQorCit2b2lkIEpTV2ViQXNzZW1ibHlNb2R1
bGU6OmZpbmFsaXplVW5jb25kaXRpb25hbGx5KFZNJiB2bSkKK3sKKyAgICBmb3IgKGF1dG8gaXRl
ciA9IG1fY2FsbExpbmtJbmZvcy5iZWdpbigpOyAhIWl0ZXI7ICsraXRlcikKKyAgICAgICAgKCpp
dGVyKS0+dmlzaXRXZWFrKHZtKTsKK30KKworRXhwZWN0ZWQ8dm9pZCwgV2FzbTo6QmluZGluZ0Zh
aWx1cmU+IEpTV2ViQXNzZW1ibHlNb2R1bGU6OmdlbmVyYXRlV2FzbVRvSlNTdHVicyhWTSYgdm0p
Cit7CisgICAgY29uc3QgV2FzbTo6TW9kdWxlSW5mb3JtYXRpb24mIG1vZHVsZUluZm9ybWF0aW9u
ID0gbV9tb2R1bGUtPm1vZHVsZUluZm9ybWF0aW9uKCk7CisgICAgaWYgKG1vZHVsZUluZm9ybWF0
aW9uLmltcG9ydEZ1bmN0aW9uQ291bnQoKSkgeworICAgICAgICBCYWc8T3B0aW1pemluZ0NhbGxM
aW5rSW5mbz4gY2FsbExpbmtJbmZvczsKKyAgICAgICAgRml4ZWRWZWN0b3I8TWFjcm9Bc3NlbWJs
ZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4+IHN0dWJzKG1vZHVsZUluZm9ybWF0aW9uLmltcG9y
dEZ1bmN0aW9uQ291bnQoKSk7CisgICAgICAgIGZvciAodW5zaWduZWQgaW1wb3J0SW5kZXggPSAw
OyBpbXBvcnRJbmRleCA8IG1vZHVsZUluZm9ybWF0aW9uLmltcG9ydEZ1bmN0aW9uQ291bnQoKTsg
KytpbXBvcnRJbmRleCkgeworICAgICAgICAgICAgV2FzbTo6U2lnbmF0dXJlSW5kZXggc2lnbmF0
dXJlSW5kZXggPSBtb2R1bGVJbmZvcm1hdGlvbi5pbXBvcnRGdW5jdGlvblNpZ25hdHVyZUluZGlj
ZXMuYXQoaW1wb3J0SW5kZXgpOworICAgICAgICAgICAgYXV0byBiaW5kaW5nID0gV2FzbTo6d2Fz
bVRvSlModm0sIGNhbGxMaW5rSW5mb3MsIHNpZ25hdHVyZUluZGV4LCBpbXBvcnRJbmRleCk7Cisg
ICAgICAgICAgICBpZiAoVU5MSUtFTFkoIWJpbmRpbmcpKQorICAgICAgICAgICAgICAgIHJldHVy
biBtYWtlVW5leHBlY3RlZChiaW5kaW5nLmVycm9yKCkpOworICAgICAgICAgICAgc3R1YnNbaW1w
b3J0SW5kZXhdID0gYmluZGluZy52YWx1ZSgpOworICAgICAgICB9CisgICAgICAgIG1fd2FzbVRv
SlNFeGl0U3R1YnMgPSBXVEZNb3ZlKHN0dWJzKTsKKyAgICAgICAgbV9jYWxsTGlua0luZm9zID0g
V1RGTW92ZShjYWxsTGlua0luZm9zKTsKKyAgICB9CisgICAgcmV0dXJuIHsgfTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5TW9kdWxlLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5TW9kdWxlLmgKaW5k
ZXggOTZkMTU2ZjRiYjk1YWQyODc3ZTI0ZDI5ZWIxMDAzODUxNmFkY2JmOS4uNmFiNTg2ODVmMjgz
ODhhMjE2MDdkOGZmNmQyMjdiODE3Mjk4MjM2ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseU1vZHVsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlNb2R1bGUuaApAQCAtMjksNiArMjksNyBAQAog
CiAjaW5jbHVkZSAiSlNEZXN0cnVjdGlibGVPYmplY3QuaCIKICNpbmNsdWRlICJKU09iamVjdC5o
IgorI2luY2x1ZGUgIldhc21CaW5kaW5nLmgiCiAjaW5jbHVkZSAiV2FzbU1lbW9yeU1vZGUuaCIK
ICNpbmNsdWRlICJXYXNtT3BzLmgiCiAjaW5jbHVkZSA8d3RmL0JhZy5oPgpAQCAtNDYsNyArNDcs
NiBAQCBjbGFzcyBQbGFuOwogfQogCiBjbGFzcyBTeW1ib2xUYWJsZTsKLWNsYXNzIEpTV2ViQXNz
ZW1ibHlDYWxsZWVHcm91cDsKIGNsYXNzIEpTV2ViQXNzZW1ibHlNZW1vcnk7CiAKIGNsYXNzIEpT
V2ViQXNzZW1ibHlNb2R1bGUgZmluYWwgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CkBAIC03
MCwyMSArNzAsMjMgQEAgY2xhc3MgSlNXZWJBc3NlbWJseU1vZHVsZSBmaW5hbCA6IHB1YmxpYyBK
U05vbkZpbmFsT2JqZWN0IHsKICAgICBTeW1ib2xUYWJsZSogZXhwb3J0U3ltYm9sVGFibGUoKSBj
b25zdDsKICAgICBXYXNtOjpTaWduYXR1cmVJbmRleCBzaWduYXR1cmVJbmRleEZyb21GdW5jdGlv
bkluZGV4U3BhY2UodW5zaWduZWQgZnVuY3Rpb25JbmRleFNwYWNlKSBjb25zdDsKIAotICAgIEpT
V2ViQXNzZW1ibHlDYWxsZWVHcm91cCogY2FsbGVlR3JvdXAoV2FzbTo6TWVtb3J5TW9kZSk7Ci0g
ICAgdm9pZCBzZXRDYWxsZWVHcm91cChWTSYsIFdhc206Ok1lbW9yeU1vZGUsIEpTV2ViQXNzZW1i
bHlDYWxsZWVHcm91cCopOworICAgIEV4cGVjdGVkPHZvaWQsIFdhc206OkJpbmRpbmdGYWlsdXJl
PiBnZW5lcmF0ZVdhc21Ub0pTU3R1YnMoVk0mKTsKKyAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHI8
V2FzbUVudHJ5UHRyVGFnPiB3YXNtVG9FbWJlZGRlclN0dWIoc2l6ZV90IGltcG9ydEZ1bmN0aW9u
TnVtKSB7IHJldHVybiBtX3dhc21Ub0pTRXhpdFN0dWJzW2ltcG9ydEZ1bmN0aW9uTnVtXS5jb2Rl
KCk7IH0KKworICAgIHZvaWQgY2xlYXJKU0NhbGxJQ3MoVk0mKTsKKyAgICB2b2lkIGZpbmFsaXpl
VW5jb25kaXRpb25hbGx5KFZNJik7CiAKICAgICBKU19FWFBPUlRfUFJJVkFURSBXYXNtOjpNb2R1
bGUmIG1vZHVsZSgpOwogCiBwcml2YXRlOgotICAgIGZyaWVuZCBjbGFzcyBKU1dlYkFzc2VtYmx5
Q2FsbGVlR3JvdXA7Ci0KICAgICBKU1dlYkFzc2VtYmx5TW9kdWxlKFZNJiwgU3RydWN0dXJlKiwg
UmVmPFdhc206Ok1vZHVsZT4mJik7CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYpOwogICAg
IERFQ0xBUkVfVklTSVRfQ0hJTERSRU47CiAKICAgICBSZWY8V2FzbTo6TW9kdWxlPiBtX21vZHVs
ZTsKICAgICBXcml0ZUJhcnJpZXI8U3ltYm9sVGFibGU+IG1fZXhwb3J0U3ltYm9sVGFibGU7Ci0g
ICAgV3JpdGVCYXJyaWVyPEpTV2ViQXNzZW1ibHlDYWxsZWVHcm91cD4gbV9jYWxsZWVHcm91cHNb
V2FzbTo6TnVtYmVyT2ZNZW1vcnlNb2Rlc107CisgICAgRml4ZWRWZWN0b3I8TWFjcm9Bc3NlbWJs
ZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4+IG1fd2FzbVRvSlNFeGl0U3R1YnM7CisgICAgQmFn
PE9wdGltaXppbmdDYWxsTGlua0luZm8+IG1fY2FsbExpbmtJbmZvczsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2Vi
QXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9XZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yLmNwcAppbmRleCA2NDUwN2FkMWZiZGRl
YjgwY2EyYTQ2YmQwYTJjODdkMTNkZDBjYmVjLi5kMzE3NTY1MGYzZDMzYjQxMThkMzRkNzg0NDhm
YjE0MjZiN2I1ZTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9X
ZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yLmNwcApAQCAtMzcsNiArMzcs
NyBAQAogI2luY2x1ZGUgIkpTV2ViQXNzZW1ibHlIZWxwZXJzLmgiCiAjaW5jbHVkZSAiSlNXZWJB
c3NlbWJseU1vZHVsZS5oIgogI2luY2x1ZGUgIk9iamVjdENvbnN0cnVjdG9yLmgiCisjaW5jbHVk
ZSAiV2FzbU1vZHVsZS5oIgogI2luY2x1ZGUgIldhc21Nb2R1bGVJbmZvcm1hdGlvbi5oIgogI2lu
Y2x1ZGUgIldlYkFzc2VtYmx5TW9kdWxlUHJvdG90eXBlLmgiCiAjaW5jbHVkZSA8d3RmL1N0ZExp
YkV4dHJhcy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2Vi
QXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L1dlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uLmgKaW5kZXggZDQ5MDJkMjFiZWYxMDUzNDRkY2E2
MmU0M2IwZGNjNGNmYjgyOWM3NC4uYzMzYjJlNmE0ODdjNTI0YjllNTk5YzBkZWZiNDcxOGM1YWI1
ODFkMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1i
bHlXcmFwcGVyRnVuY3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9X
ZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbi5oCkBAIC0yNyw3ICsyNyw2IEBACiAKICNpZiBFTkFC
TEUoV0VCQVNTRU1CTFkpCiAKLSNpbmNsdWRlICJKU1dlYkFzc2VtYmx5Q2FsbGVlR3JvdXAuaCIK
ICNpbmNsdWRlICJXZWJBc3NlbWJseUZ1bmN0aW9uQmFzZS5oIgogCiBuYW1lc3BhY2UgSlNDIHsK
</data>
<flag name="commit-queue"
          id="473965"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448153</attachid>
            <date>2022-01-01 03:52:04 -0800</date>
            <delta_ts>2022-01-04 13:26:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234780-20220101035203.patch</filename>
            <type>text/plain</type>
            <size>34984</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NDk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
NzI3OThlMGU3YmE3YTNmNWRlMjZhOGFjNjdmOWNiOTMxZjMyNmYwLi41YmE4NWM1MWUzMWIzYTJk
M2Q4ZjIwYTY5ZGE5OWJhN2VjZjBmNjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NCBAQAorMjAyMi0wMS0wMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFJlbW92ZSBKU1dlYkFzc2VtYmx5Q2FsbGVlR3JvdXAgY2VsbAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0NzgwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBjZWxs
IGlzIG5vdCBvYnNlcnZhYmxlIHRvIHVzZXJzLiBBbmQgdGhpcyBjZWxsIGp1c3QgaG9sZHMgV2Fz
bS10by1KUyBzdHVicywKKyAgICAgICAgYnV0IGl0IGlzIHRoZSBzYW1lIHRvIGFsbCBtZW1vcnkg
bW9kZXMuIFRodXMsIHdlIHNob3VsZCBqdXN0IGdlbmVyYXRlIGl0IGluIFZNLWxpbmtlZAorICAg
ICAgICBXYXNtOjpNb2R1bGUgKGl0IG1lYW5zLCB3ZSBzaG91bGQgaGF2ZSBpdCBpbiBKU1dlYkFz
c2VtYmx5TW9kdWxlKSwgYW5kIHdlIGRvIG5vdCBuZWVkCisgICAgICAgIHRvIGhhdmUgLyBhbGxv
Y2F0ZSBKU1dlYkFzc2VtYmx5Q2FsbGVlR3JvdXAgY2VsbC4KKworICAgICAgICAqIEphdmFTY3Jp
cHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogU291cmNlcy50eHQ6
CisgICAgICAgICogaGVhcC9IZWFwLmNwcDoKKyAgICAgICAgKEpTQzo6SGVhcDo6SGVhcCk6Cisg
ICAgICAgIChKU0M6OkhlYXA6OmZpbmFsaXplVW5jb25kaXRpb25hbEZpbmFsaXplcnMpOgorICAg
ICAgICAoSlNDOjpIZWFwOjpkZWxldGVBbGxDb2RlQmxvY2tzKToKKyAgICAgICAgKiBoZWFwL0hl
YXAuaDoKKyAgICAgICAgKiBydW50aW1lL1ZNLmNwcDoKKyAgICAgICAgKEpTQzo6Vk06OlZNKToK
KyAgICAgICAgKiBydW50aW1lL1ZNLmg6CisgICAgICAgICogd2FzbS9XYXNtQmluZGluZy5oOgor
ICAgICAgICAqIHdhc20vanMvSlNXZWJBc3NlbWJseUNhbGxlZUdyb3VwLmNwcDogUmVtb3ZlZC4K
KyAgICAgICAgKiB3YXNtL2pzL0pTV2ViQXNzZW1ibHlDYWxsZWVHcm91cC5oOiBSZW1vdmVkLgor
ICAgICAgICAqIHdhc20vanMvSlNXZWJBc3NlbWJseUluc3RhbmNlLmNwcDoKKyAgICAgICAgKEpT
Qzo6SlNXZWJBc3NlbWJseUluc3RhbmNlOjp2aXNpdENoaWxkcmVuSW1wbCk6CisgICAgICAgIChK
U0M6OkpTV2ViQXNzZW1ibHlJbnN0YW5jZTo6ZmluYWxpemVDcmVhdGlvbik6CisgICAgICAgICog
d2FzbS9qcy9KU1dlYkFzc2VtYmx5SW5zdGFuY2UuaDoKKyAgICAgICAgKiB3YXNtL2pzL0pTV2Vi
QXNzZW1ibHlNb2R1bGUuY3BwOgorICAgICAgICAoSlNDOjpKU1dlYkFzc2VtYmx5TW9kdWxlOjpj
cmVhdGVTdHViKToKKyAgICAgICAgKEpTQzo6SlNXZWJBc3NlbWJseU1vZHVsZTo6dmlzaXRDaGls
ZHJlbkltcGwpOgorICAgICAgICAoSlNDOjpKU1dlYkFzc2VtYmx5TW9kdWxlOjpjbGVhckpTQ2Fs
bElDcyk6CisgICAgICAgIChKU0M6OkpTV2ViQXNzZW1ibHlNb2R1bGU6OmZpbmFsaXplVW5jb25k
aXRpb25hbGx5KToKKyAgICAgICAgKEpTQzo6SlNXZWJBc3NlbWJseU1vZHVsZTo6Z2VuZXJhdGVX
YXNtVG9KU1N0dWJzKToKKyAgICAgICAgKEpTQzo6SlNXZWJBc3NlbWJseU1vZHVsZTo6Y2FsbGVl
R3JvdXApOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpKU1dlYkFzc2VtYmx5TW9kdWxlOjpzZXRD
YWxsZWVHcm91cCk6IERlbGV0ZWQuCisgICAgICAgICogd2FzbS9qcy9KU1dlYkFzc2VtYmx5TW9k
dWxlLmg6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yLmNw
cDoKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uLmg6CisKIDIw
MjEtMTItMzAgIEFkcmlhbiBQZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBOb24tdW5pZmllZCBidWlsZCBmaXhlcywgZW5kLW9mLXllYXIgMjAyMSBlZGl0aW9u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGExNmMyZjQ1MTQ3NWU5YmEzZjI3MjA3
MDgzYTBmNDgwMDE2MzE0NjIuLmQ2NWNjYmFjMGMzN2ZkOTllZTBkZTMxYTllYTEwOGEzYTE4MTI2
YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNjY2LDcgKzE2NjYsNiBAQAog
CQlBRDdCNEIyRTFGQTNFMjk4MDBDOURGNzkgLyogV2FzbU5hbWVTZWN0aW9uLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRDdCNEIyRDFGQTNFMjg2MDBD
OURGNzkgLyogV2FzbU5hbWVTZWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJQUQ4NkE5M0UxQUE0RDg4RDAwMkZFNzdGIC8qIFdlYWtHQ01h
cElubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEFEODZBOTNEMUFBNEQ4N0MwMDJGRTc3RiAvKiBXZWFrR0NNYXBJbmxpbmVzLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQUQ4RkYzOTgxRUI1QkRC
MjAwODdGRjgyIC8qIFdhc21JbmRleE9yTmFtZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQUQ4RkYzOTUxRUI1QkQ4NTAwODdGRjgyIC8qIFdhc21JbmRl
eE9yTmFtZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
Ci0JCUFEOUU4NTJGMUU4QTBDN0MwMDhERTM5RSAvKiBKU1dlYkFzc2VtYmx5Q2FsbGVlR3JvdXAu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFEOUU4NTJF
MUU4QTBDNkUwMDhERTM5RSAvKiBKU1dlYkFzc2VtYmx5Q2FsbGVlR3JvdXAuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBREQ4RkE0NjFFQjMwNzk3
MDBERjU0MkYgLyogV2FzbU5hbWVTZWN0aW9uUGFyc2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBREQ4RkE0MzFFQjMwNzcxMDBERjU0MkYgLyogV2Fz
bU5hbWVTZWN0aW9uUGFyc2VyLmggKi87IH07CiAJCUFERTgwMjk5MUUwOEYxREUwMDU4REU3OCAv
KiBKU1dlYkFzc2VtYmx5TGlua0Vycm9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBREU4MDI5NDFFMDhGMUM5MDA1OERFNzggLyogSlNXZWJBc3NlbWJs
eUxpbmtFcnJvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUFERTgwMjlBMUUwOEYxREUwMDU4REU3OCAvKiBXZWJBc3NlbWJseUxpbmtFcnJvckNv
bnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBREU4MDI5NTFFMDhGMUM5MDA1OERFNzggLyogV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1
Y3Rvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBA
IC0zOTM2LDcgKzM5MzUsNiBAQAogCQk1MzczQjRENDIyQURCMzE0MDA4MDM1NzIgLyogV2Vha09i
amVjdFJlZkNvbnN0cnVjdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYWtPYmplY3RSZWZD
b25zdHJ1Y3Rvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUzODFCOTM2MUU2
MEU5NjYwMDkwRjc5NCAvKiBXYXNtRmF1bHRTaWduYWxIYW5kbGVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdhc21GYXVsdFNpZ25hbEhhbmRsZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MzgxQjkzODFFNjBFOTdEMDA5MEY3OTQgLyogV2Fz
bUZhdWx0U2lnbmFsSGFuZGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
YXNtRmF1bHRTaWduYWxIYW5kbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUz
ODNBQTJGMUU2NUU4QTEwMEE1MzJGQyAvKiBKU1dlYkFzc2VtYmx5Q2FsbGVlR3JvdXAuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSlNXZWJBc3NlbWJseUNhbGxlZUdy
b3VwLmNwcDsgcGF0aCA9IGpzL0pTV2ViQXNzZW1ibHlDYWxsZWVHcm91cC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUzOEYxNUREMjY4RkJCQjMwMEQ2MDFDNCAvKiBVbmlmaWVk
U291cmNlMTQ4LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFVuaWZp
ZWRTb3VyY2UxNDguY3BwOyBwYXRoID0gIkRlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlL3Vu
aWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTQ4LmNwcCI7IHNvdXJjZVRyZWUgPSBCVUlMVF9Q
Uk9EVUNUU19ESVI7IH07CiAJCTUzOEYxNURFMjY4RkJCQjMwMEQ2MDFDNCAvKiBVbmlmaWVkU291
cmNlMTUxLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFVuaWZpZWRT
b3VyY2UxNTEuY3BwOyBwYXRoID0gIkRlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlL3VuaWZp
ZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTUxLmNwcCI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9E
VUNUU19ESVI7IH07CiAJCTUzOEYxNURGMjY4RkJCQjMwMEQ2MDFDNCAvKiBVbmlmaWVkU291cmNl
MTUyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFVuaWZpZWRTb3Vy
Y2UxNTIuY3BwOyBwYXRoID0gIkRlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlL3VuaWZpZWQt
c291cmNlcy9VbmlmaWVkU291cmNlMTUyLmNwcCI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNU
U19ESVI7IH07CkBAIC00OTI3LDcgKzQ5MjUsNiBAQAogCQlBRDhERDZEMDFGNjcwOEEzMDAwNEVC
NTIgLyogSlNUb1dhc20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSlNUb1dhc20uY3BwOyBwYXRo
ID0ganMvSlNUb1dhc20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBRDhGRjM5
NTFFQjVCRDg1MDA4N0ZGODIgLyogV2FzbUluZGV4T3JOYW1lLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdhc21JbmRleE9yTmFtZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBRDhGRjM5NjFFQjVCRDg1MDA4N0ZGODIgLyogV2FzbUluZGV4T3JOYW1lLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdhc21JbmRleE9yTmFtZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUFEOUU4NTJFMUU4QTBDNkUwMDhERTM5RSAv
KiBKU1dlYkFzc2VtYmx5Q2FsbGVlR3JvdXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gSlNXZWJBc3NlbWJseUNhbGxlZUdyb3VwLmg7IHBhdGggPSBqcy9KU1dlYkFzc2VtYmx5
Q2FsbGVlR3JvdXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQURCNkY2N0MxRTE1
RDc1MDAwODJGMzg0IC8qIFdhc21QYWdlQ291bnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gV2FzbVBhZ2VDb3VudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUFERDA5QUVFMUY1RjYyM0YwMDEzMTNDMiAvKiBXYXNtVG9KUy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBXYXNtVG9KUy5oOyBwYXRoID0ganMvV2FzbVRvSlMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQUREMDlBRUYxRjVGNjIzRjAwMTMxM0MyIC8qIFdhc21Ub0pTLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IFdhc21Ub0pTLmNwcDsgcGF0aCA9IGpzL1dhc21Ub0pTLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTkxODQsOCArOTE4MSw2IEBACiAJCQkJNTI3Q0Uz
NTMyMjU1NUZERDAwQzZGMzgyIC8qIEpTVG9XYXNtSUNDYWxsZWUuaCAqLywKIAkJCQlBREQwOUFG
MjFGNjI0ODI5MDAxMzEzQzIgLyogSlNXZWJBc3NlbWJseS5jcHAgKi8sCiAJCQkJQUREMDlBRjMx
RjYyNDgyRTAwMTMxM0MyIC8qIEpTV2ViQXNzZW1ibHkuaCAqLywKLQkJCQk1MzgzQUEyRjFFNjVF
OEExMDBBNTMyRkMgLyogSlNXZWJBc3NlbWJseUNhbGxlZUdyb3VwLmNwcCAqLywKLQkJCQlBRDlF
ODUyRTFFOEEwQzZFMDA4REUzOUUgLyogSlNXZWJBc3NlbWJseUNhbGxlZUdyb3VwLmggKi8sCiAJ
CQkJQUQyRkNCQTYxREI1OERBNDAwQjNFNzM2IC8qIEpTV2ViQXNzZW1ibHlDb21waWxlRXJyb3Iu
Y3BwICovLAogCQkJCUFEMkZDQkE3MURCNThEQTQwMEIzRTczNiAvKiBKU1dlYkFzc2VtYmx5Q29t
cGlsZUVycm9yLmggKi8sCiAJCQkJMTREMDFCREMyNkRFRUYzNzAwQ0FFMEQwIC8qIEpTV2ViQXNz
ZW1ibHlFeGNlcHRpb24uY3BwICovLApAQCAtMTA1MTAsNyArMTA1MDUsNiBAQAogCQkJCTcwOUZC
ODY4MUFFMzM1QzYwMDM5RDA2OSAvKiBKU1dlYWtTZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTdB
OTc3NEE4MjA2QjgyRTQwMDhEMDNEMCAvKiBKU1dlYWtWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQUQ1QzM2RUIxRjc1QUQ3MzAwMEJDQUFGIC8qIEpTV2ViQXNzZW1ibHkuaCBpbiBIZWFkZXJz
ICovLAotCQkJCUFEOUU4NTJGMUU4QTBDN0MwMDhERTM5RSAvKiBKU1dlYkFzc2VtYmx5Q2FsbGVl
R3JvdXAuaCBpbiBIZWFkZXJzICovLAogCQkJCUFEMkZDQkUzMURCNThEQUQwMEIzRTczNiAvKiBK
U1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNEQwMUJFRDI2
REVFRjM4MDBDQUUwRDAgLyogSlNXZWJBc3NlbWJseUV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRTNCRjNDNEQyMzkwRDFFODAwOEJDNzUyIC8qIEpTV2ViQXNzZW1ibHlHbG9iYWwuaCBp
biBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NvdXJjZXMu
dHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NvdXJjZXMudHh0CmluZGV4IGZmOGJiZTliMmQz
OTFkNGI2ZGE1YTE0NDFiZjBkOGQ3MDZkYzY5NWUuLjcyZWNkOWNjYjU1ZTA3YThmNzVkOThjOGM3
N2VlOTg0ZThjN2ZjNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2Vz
LnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU291cmNlcy50eHQKQEAgLTExMjEsNyAr
MTEyMSw2IEBAIHdhc20vanMvSlNUb1dhc20uY3BwCiB3YXNtL2pzL0pTVG9XYXNtLmgKIHdhc20v
anMvSlNUb1dhc21JQ0NhbGxlZS5jcHAKIHdhc20vanMvSlNXZWJBc3NlbWJseS5jcHAKLXdhc20v
anMvSlNXZWJBc3NlbWJseUNhbGxlZUdyb3VwLmNwcAogd2FzbS9qcy9KU1dlYkFzc2VtYmx5Q29t
cGlsZUVycm9yLmNwcAogd2FzbS9qcy9KU1dlYkFzc2VtYmx5RXhjZXB0aW9uLmNwcAogd2FzbS9q
cy9KU1dlYkFzc2VtYmx5R2xvYmFsLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvSGVhcC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcApp
bmRleCAzOTYzMDgwZGU3NjIwYWRmMjcyMzhhNTQ0OGY5NzFlNDUwMDRiMThjLi4xMGJiOTU0YzMw
YWIyNDNkYzkzYmQzYzhhMDY2MTJmYzg5NDViMWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9IZWFwLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9I
ZWFwLmNwcApAQCAtNTUsNyArNTUsNiBAQAogI2luY2x1ZGUgIkpTV2Vha01hcC5oIgogI2luY2x1
ZGUgIkpTV2Vha09iamVjdFJlZi5oIgogI2luY2x1ZGUgIkpTV2Vha1NldC5oIgotI2luY2x1ZGUg
IkpTV2ViQXNzZW1ibHlDYWxsZWVHcm91cC5oIgogI2luY2x1ZGUgIk1hY2hpbmVTdGFja01hcmtl
ci5oIgogI2luY2x1ZGUgIk1hcmtTdGFja01lcmdpbmdDb25zdHJhaW50LmgiCiAjaW5jbHVkZSAi
TWFya2VkSlNWYWx1ZVJlZkFycmF5LmgiCkBAIC0zMzUsNyArMzM0LDYgQEAgSGVhcDo6SGVhcChW
TSYgdm0sIEhlYXBUeXBlIGhlYXBUeXBlKQogICAgICwgaW50bFNlZ21lbnRlckhlYXBDZWxsVHlw
ZShJc29IZWFwQ2VsbFR5cGU6OkFyZ3M8SW50bFNlZ21lbnRlcj4oKSkKICAgICAsIGludGxTZWdt
ZW50c0hlYXBDZWxsVHlwZShJc29IZWFwQ2VsbFR5cGU6OkFyZ3M8SW50bFNlZ21lbnRzPigpKQog
I2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKLSAgICAsIHdlYkFzc2VtYmx5Q2FsbGVlR3JvdXBIZWFw
Q2VsbFR5cGUoSXNvSGVhcENlbGxUeXBlOjpBcmdzPEpTV2ViQXNzZW1ibHlDYWxsZWVHcm91cD4o
KSkKICAgICAsIHdlYkFzc2VtYmx5RXhjZXB0aW9uSGVhcENlbGxUeXBlKElzb0hlYXBDZWxsVHlw
ZTo6QXJnczxKU1dlYkFzc2VtYmx5RXhjZXB0aW9uPigpKQogICAgICwgd2ViQXNzZW1ibHlGdW5j
dGlvbkhlYXBDZWxsVHlwZShJc29IZWFwQ2VsbFR5cGU6OkFyZ3M8V2ViQXNzZW1ibHlGdW5jdGlv
bj4oKSkKICAgICAsIHdlYkFzc2VtYmx5R2xvYmFsSGVhcENlbGxUeXBlKElzb0hlYXBDZWxsVHlw
ZTo6QXJnczxKU1dlYkFzc2VtYmx5R2xvYmFsPigpKQpAQCAtNzE0LDggKzcxMiw4IEBAIHZvaWQg
SGVhcDo6ZmluYWxpemVVbmNvbmRpdGlvbmFsRmluYWxpemVycygpCiAgICAgICAgIGZpbmFsaXpl
TWFya2VkVW5jb25kaXRpb25hbEZpbmFsaXplcnM8SlNGaW5hbGl6YXRpb25SZWdpc3RyeT4oKm1f
ZmluYWxpemF0aW9uUmVnaXN0cnlTcGFjZSk7CiAKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCi0g
ICAgaWYgKG1fd2ViQXNzZW1ibHlDYWxsZWVHcm91cFNwYWNlKQotICAgICAgICBmaW5hbGl6ZU1h
cmtlZFVuY29uZGl0aW9uYWxGaW5hbGl6ZXJzPEpTV2ViQXNzZW1ibHlDYWxsZWVHcm91cD4oKm1f
d2ViQXNzZW1ibHlDYWxsZWVHcm91cFNwYWNlKTsKKyAgICBpZiAobV93ZWJBc3NlbWJseU1vZHVs
ZVNwYWNlKQorICAgICAgICBmaW5hbGl6ZU1hcmtlZFVuY29uZGl0aW9uYWxGaW5hbGl6ZXJzPEpT
V2ViQXNzZW1ibHlNb2R1bGU+KCptX3dlYkFzc2VtYmx5TW9kdWxlU3BhY2UpOwogI2VuZGlmCiB9
CiAKQEAgLTEwMzYsMTAgKzEwMzQsMTAgQEAgdm9pZCBIZWFwOjpkZWxldGVBbGxDb2RlQmxvY2tz
KERlbGV0ZUFsbENvZGVFZmZvcnQgZWZmb3J0KQogICAgICAgICAvLyBwb2ludHMgaW50byBhIENv
ZGVCbG9jayB0aGF0IGNvdWxkIGJlIGRlYWQuIFRoZSBJQyB3aWxsIHN0aWxsIHN1Y2NlZWQgYmVj
YXVzZQogICAgICAgICAvLyBpdCB1c2VzIGEgY2FsbGVlIGNoZWNrLCBidXQgdGhlbiBpdCB3aWxs
IGNhbGwgaW50byBkZWFkIGNvZGUuCiAgICAgICAgIEhlYXBJdGVyYXRpb25TY29wZSBoZWFwSXRl
cmF0aW9uU2NvcGUoKnRoaXMpOwotICAgICAgICBpZiAobV93ZWJBc3NlbWJseUNhbGxlZUdyb3Vw
U3BhY2UpIHsKLSAgICAgICAgICAgIG1fd2ViQXNzZW1ibHlDYWxsZWVHcm91cFNwYWNlLT5mb3JF
YWNoTGl2ZUNlbGwoWyZdIChIZWFwQ2VsbCogY2VsbCwgSGVhcENlbGw6OktpbmQga2luZCkgewor
ICAgICAgICBpZiAobV93ZWJBc3NlbWJseU1vZHVsZVNwYWNlKSB7CisgICAgICAgICAgICBtX3dl
YkFzc2VtYmx5TW9kdWxlU3BhY2UtPmZvckVhY2hMaXZlQ2VsbChbJl0gKEhlYXBDZWxsKiBjZWxs
LCBIZWFwQ2VsbDo6S2luZCBraW5kKSB7CiAgICAgICAgICAgICAgICAgQVNTRVJUX1VOVVNFRChr
aW5kLCBraW5kID09IEhlYXBDZWxsOjpKU0NlbGwpOwotICAgICAgICAgICAgICAgIHN0YXRpY19j
YXN0PEpTV2ViQXNzZW1ibHlDYWxsZWVHcm91cCo+KGNlbGwpLT5jbGVhckpTQ2FsbElDcyh2bSk7
CisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8SlNXZWJBc3NlbWJseU1vZHVsZSo+KGNlbGwp
LT5jbGVhckpTQ2FsbElDcyh2bSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfQogICAgIH0K
QEAgLTMyNzQsNyArMzI3Miw2IEBAIERZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJf
U0xPVyhpbnRsU2VnbWVudGVyU3BhY2UsIGludGxTZWdtZW50ZXJIZWFwQ2VsCiBEWU5BTUlDX0lT
T19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1coaW50bFNlZ21lbnRzU3BhY2UsIGludGxTZWdt
ZW50c0hlYXBDZWxsVHlwZSwgSW50bFNlZ21lbnRzKQogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkK
IERZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyhqc1RvV2FzbUlDQ2FsbGVl
U3BhY2UsIGNlbGxIZWFwQ2VsbFR5cGUsIEpTVG9XYXNtSUNDYWxsZWUpCi1EWU5BTUlDX0lTT19T
VUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1cod2ViQXNzZW1ibHlDYWxsZWVHcm91cFNwYWNlLCB3
ZWJBc3NlbWJseUNhbGxlZUdyb3VwSGVhcENlbGxUeXBlLCBKU1dlYkFzc2VtYmx5Q2FsbGVlR3Jv
dXApIC8vIEhhc2g6MHg5YWQ5OTVjZAogRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJF
Ul9TTE9XKHdlYkFzc2VtYmx5RXhjZXB0aW9uU3BhY2UsIHdlYkFzc2VtYmx5RXhjZXB0aW9uSGVh
cENlbGxUeXBlLCBKU1dlYkFzc2VtYmx5RXhjZXB0aW9uKQogRFlOQU1JQ19JU09fU1VCU1BBQ0Vf
REVGSU5FX01FTUJFUl9TTE9XKHdlYkFzc2VtYmx5RnVuY3Rpb25TcGFjZSwgd2ViQXNzZW1ibHlG
dW5jdGlvbkhlYXBDZWxsVHlwZSwgV2ViQXNzZW1ibHlGdW5jdGlvbikgLy8gSGFzaDoweDhiN2Mz
MmRiCiBEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1cod2ViQXNzZW1ibHlH
bG9iYWxTcGFjZSwgd2ViQXNzZW1ibHlHbG9iYWxIZWFwQ2VsbFR5cGUsIEpTV2ViQXNzZW1ibHlH
bG9iYWwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgKaW5kZXggZGFjZDI3NjVmMTI5ZTRjZjdm
YzUzYjg1YzUwZDQ2MWI1YzY0ZDQyNS4uNGRlODJlYjg3NDk0Y2M3OTA2YTM2ZWM5NTgyOTY1NWZk
MWJjZDgwYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaApAQCAtNzg1LDcgKzc4NSw2IEBA
IGNsYXNzIEhlYXAgewogICAgIElzb0hlYXBDZWxsVHlwZSBpbnRsU2VnbWVudGVySGVhcENlbGxU
eXBlOwogICAgIElzb0hlYXBDZWxsVHlwZSBpbnRsU2VnbWVudHNIZWFwQ2VsbFR5cGU7CiAjaWYg
RU5BQkxFKFdFQkFTU0VNQkxZKQotICAgIElzb0hlYXBDZWxsVHlwZSB3ZWJBc3NlbWJseUNhbGxl
ZUdyb3VwSGVhcENlbGxUeXBlOwogICAgIElzb0hlYXBDZWxsVHlwZSB3ZWJBc3NlbWJseUV4Y2Vw
dGlvbkhlYXBDZWxsVHlwZTsKICAgICBJc29IZWFwQ2VsbFR5cGUgd2ViQXNzZW1ibHlGdW5jdGlv
bkhlYXBDZWxsVHlwZTsKICAgICBJc29IZWFwQ2VsbFR5cGUgd2ViQXNzZW1ibHlHbG9iYWxIZWFw
Q2VsbFR5cGU7CkBAIC05NjcsNyArOTY2LDYgQEAgY2xhc3MgSGVhcCB7CiAgICAgRFlOQU1JQ19J
U09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUihpbnRsU2VnbWVudHNTcGFjZSkKICNpZiBFTkFCTEUo
V0VCQVNTRU1CTFkpCiAgICAgRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUihqc1Rv
V2FzbUlDQ2FsbGVlU3BhY2UpCi0gICAgRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJF
Uih3ZWJBc3NlbWJseUNhbGxlZUdyb3VwU3BhY2UpCiAgICAgRFlOQU1JQ19JU09fU1VCU1BBQ0Vf
REVGSU5FX01FTUJFUih3ZWJBc3NlbWJseUV4Y2VwdGlvblNwYWNlKQogICAgIERZTkFNSUNfSVNP
X1NVQlNQQUNFX0RFRklORV9NRU1CRVIod2ViQXNzZW1ibHlGdW5jdGlvblNwYWNlKQogICAgIERZ
TkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVIod2ViQXNzZW1ibHlHbG9iYWxTcGFjZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAppbmRleCBjNmJlNDU3YjZkMDYwM2Q2NmQy
ODU4MTIxOGUwNGQ0ZmMwM2NjNDIzLi5mNTQ5NDY0NDgyNGY3MjJhNzliM2RjNGFlMDNkYzEwYmJl
NDg3OTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCkBAIC03Nyw3ICs3Nyw2
IEBACiAjaW5jbHVkZSAiSlNTZXQuaCIKICNpbmNsdWRlICJKU1NvdXJjZUNvZGUuaCIKICNpbmNs
dWRlICJKU1RlbXBsYXRlT2JqZWN0RGVzY3JpcHRvci5oIgotI2luY2x1ZGUgIkpTV2ViQXNzZW1i
bHlDYWxsZWVHcm91cC5oIgogI2luY2x1ZGUgIkxMSW50RGF0YS5oIgogI2luY2x1ZGUgIkxMSW50
RXhjZXB0aW9ucy5oIgogI2luY2x1ZGUgIk1hcmtlZEJsb2NrSW5saW5lcy5oIgpAQCAtMjcwLDkg
KzI2OSw2IEBAIFZNOjpWTShWTVR5cGUgdm1UeXBlLCBIZWFwVHlwZSBoZWFwVHlwZSwgV1RGOjpS
dW5Mb29wKiBydW5Mb29wLCBib29sKiBzdWNjZXNzKQogICAgIGV2YWxFeGVjdXRhYmxlU3RydWN0
dXJlLnNldCgqdGhpcywgRXZhbEV4ZWN1dGFibGU6OmNyZWF0ZVN0cnVjdHVyZSgqdGhpcywgbnVs
bHB0ciwganNOdWxsKCkpKTsKICAgICBwcm9ncmFtRXhlY3V0YWJsZVN0cnVjdHVyZS5zZXQoKnRo
aXMsIFByb2dyYW1FeGVjdXRhYmxlOjpjcmVhdGVTdHJ1Y3R1cmUoKnRoaXMsIG51bGxwdHIsIGpz
TnVsbCgpKSk7CiAgICAgZnVuY3Rpb25FeGVjdXRhYmxlU3RydWN0dXJlLnNldCgqdGhpcywgRnVu
Y3Rpb25FeGVjdXRhYmxlOjpjcmVhdGVTdHJ1Y3R1cmUoKnRoaXMsIG51bGxwdHIsIGpzTnVsbCgp
KSk7Ci0jaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQotICAgIHdlYkFzc2VtYmx5Q2FsbGVlR3JvdXBT
dHJ1Y3R1cmUuc2V0KCp0aGlzLCBKU1dlYkFzc2VtYmx5Q2FsbGVlR3JvdXA6OmNyZWF0ZVN0cnVj
dHVyZSgqdGhpcywgbnVsbHB0ciwganNOdWxsKCkpKTsKLSNlbmRpZgogICAgIG1vZHVsZVByb2dy
YW1FeGVjdXRhYmxlU3RydWN0dXJlLnNldCgqdGhpcywgTW9kdWxlUHJvZ3JhbUV4ZWN1dGFibGU6
OmNyZWF0ZVN0cnVjdHVyZSgqdGhpcywgbnVsbHB0ciwganNOdWxsKCkpKTsKICAgICByZWdFeHBT
dHJ1Y3R1cmUuc2V0KCp0aGlzLCBSZWdFeHA6OmNyZWF0ZVN0cnVjdHVyZSgqdGhpcywgbnVsbHB0
ciwganNOdWxsKCkpKTsKICAgICBzeW1ib2xTdHJ1Y3R1cmUuc2V0KCp0aGlzLCBTeW1ib2w6OmNy
ZWF0ZVN0cnVjdHVyZSgqdGhpcywgbnVsbHB0ciwganNOdWxsKCkpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9WTS5oCmluZGV4IDFmY2VjNmY5YTE4ZmUwMTQzNzRjNGMxOTNkZTZkYTU1OTQ3M2E4
ZjguLmExYjBiMzg1MzhiZjIwODMyMDc5ZGZjOTQ3NGZlYTk1NTNmMzBmMGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvVk0uaApAQCAtNDc2LDcgKzQ3Niw2IEBAIGNsYXNzIFZNIDogcHVibGlj
IFRocmVhZFNhZmVSZWZDb3VudGVkPFZNPiwgcHVibGljIERvdWJseUxpbmtlZExpc3ROb2RlPFZN
PiB7CiAgICAgRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUihpbnRsU2VnbWVudHNT
cGFjZSkKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAgICAgRFlOQU1JQ19JU09fU1VCU1BBQ0Vf
REVGSU5FX01FTUJFUihqc1RvV2FzbUlDQ2FsbGVlU3BhY2UpCi0gICAgRFlOQU1JQ19JU09fU1VC
U1BBQ0VfREVGSU5FX01FTUJFUih3ZWJBc3NlbWJseUNhbGxlZUdyb3VwU3BhY2UpCiAgICAgRFlO
QU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUih3ZWJBc3NlbWJseUV4Y2VwdGlvblNwYWNl
KQogICAgIERZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVIod2ViQXNzZW1ibHlGdW5j
dGlvblNwYWNlKQogICAgIERZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVIod2ViQXNz
ZW1ibHlHbG9iYWxTcGFjZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21CaW5kaW5nLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQmluZGluZy5o
CmluZGV4IDIzYmFjYmYyODQwMDJjYWY3N2I5ZmZjZjdhZTQ4OWYyODlkZWIzZmIuLjc4YzU2NDA0
Yzk5MzhkZDNkYjVhNTA5ZjY4ZjE5Njc5Y2EzMWU3YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21CaW5kaW5nLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbUJpbmRpbmcuaApAQCAtMjgsNiArMjgsNyBAQAogI2lmIEVOQUJMRShXRUJBU1NF
TUJMWSkKIAogI2luY2x1ZGUgIkpJVENvbXBpbGF0aW9uLmgiCisjaW5jbHVkZSAiV2FzbUJpbmRp
bmcuaCIKICNpbmNsdWRlICJXYXNtRm9ybWF0LmgiCiAjaW5jbHVkZSA8d3RmL0V4cGVjdGVkLmg+
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1i
bHlDYWxsZWVHcm91cC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFz
c2VtYmx5Q2FsbGVlR3JvdXAuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYWZi
YzhhZjdlMjc5MTE3YTk5NTU0ZjA2NjgzNTA3OWJlNjM1YmMzLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L0pTV2ViQXNzZW1ibHlDYWxsZWVHcm91cC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxMDQgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNy0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkpTV2ViQXNzZW1ibHlDYWxsZWVHcm91cC5o
IgotCi0jaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQotCi0jaW5jbHVkZSAiSlNDSlNWYWx1ZUlubGlu
ZXMuaCIKLSNpbmNsdWRlICJKU0NlbGxJbmxpbmVzLmgiCi0jaW5jbHVkZSAiV2FzbU1vZHVsZUlu
Zm9ybWF0aW9uLmgiCi0jaW5jbHVkZSAiV2FzbVRvSlMuaCIKLQotbmFtZXNwYWNlIEpTQyB7Ci0K
LWNvbnN0IENsYXNzSW5mbyBKU1dlYkFzc2VtYmx5Q2FsbGVlR3JvdXA6OnNfaW5mbyA9IHsgIldl
YkFzc2VtYmx5Q2FsbGVlR3JvdXAiLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVf
TUVUSE9EX1RBQkxFKEpTV2ViQXNzZW1ibHlDYWxsZWVHcm91cCkgfTsKLQotSlNXZWJBc3NlbWJs
eUNhbGxlZUdyb3VwKiBKU1dlYkFzc2VtYmx5Q2FsbGVlR3JvdXA6OmNyZWF0ZShWTSYgdm0sIFJl
ZjxXYXNtOjpDYWxsZWVHcm91cD4gY2FsbGVlR3JvdXAsIGNvbnN0IFdhc206Ok1vZHVsZUluZm9y
bWF0aW9uJiBtb2R1bGVJbmZvcm1hdGlvbikKLXsKLSAgICBhdXRvKiByZXN1bHQgPSBuZXcgKE5v
dE51bGwsIGFsbG9jYXRlQ2VsbDxKU1dlYkFzc2VtYmx5Q2FsbGVlR3JvdXA+KHZtKSkgSlNXZWJB
c3NlbWJseUNhbGxlZUdyb3VwKHZtLCBXVEZNb3ZlKGNhbGxlZUdyb3VwKSwgbW9kdWxlSW5mb3Jt
YXRpb24pOwotICAgIHJlc3VsdC0+ZmluaXNoQ3JlYXRpb24odm0pOwotICAgIHJldHVybiByZXN1
bHQ7Ci19Ci0KLUpTV2ViQXNzZW1ibHlDYWxsZWVHcm91cDo6SlNXZWJBc3NlbWJseUNhbGxlZUdy
b3VwKFZNJiB2bSwgUmVmPFdhc206OkNhbGxlZUdyb3VwPiYmIGNhbGxlZUdyb3VwLCBjb25zdCBX
YXNtOjpNb2R1bGVJbmZvcm1hdGlvbiYgbW9kdWxlSW5mb3JtYXRpb24pCi0gICAgOiBCYXNlKHZt
LCB2bS53ZWJBc3NlbWJseUNhbGxlZUdyb3VwU3RydWN0dXJlLmdldCgpKQotICAgICwgbV9jYWxs
ZWVHcm91cChXVEZNb3ZlKGNhbGxlZUdyb3VwKSkKLSAgICAsIG1fd2FzbVRvSlNFeGl0U3R1YnMo
bV9jYWxsZWVHcm91cC0+ZnVuY3Rpb25JbXBvcnRDb3VudCgpKQotewotICAgIC8vIEZJWE1FOiBX
ZSBzaG91bGQgbm90IG5lZWQgdG8gZG8gdGhpcyBzeW5jaHJvbm91c2x5LgotICAgIC8vIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzA1NjcKLSAgICBmb3IgKHVuc2ln
bmVkIGltcG9ydEluZGV4ID0gMDsgaW1wb3J0SW5kZXggPCBtX2NhbGxlZUdyb3VwLT5mdW5jdGlv
bkltcG9ydENvdW50KCk7ICsraW1wb3J0SW5kZXgpIHsKLSAgICAgICAgV2FzbTo6U2lnbmF0dXJl
SW5kZXggc2lnbmF0dXJlSW5kZXggPSBtb2R1bGVJbmZvcm1hdGlvbi5pbXBvcnRGdW5jdGlvblNp
Z25hdHVyZUluZGljZXMuYXQoaW1wb3J0SW5kZXgpOwotICAgICAgICBhdXRvIGJpbmRpbmcgPSBX
YXNtOjp3YXNtVG9KUyh2bSwgbV9jYWxsTGlua0luZm9zLCBzaWduYXR1cmVJbmRleCwgaW1wb3J0
SW5kZXgpOwotICAgICAgICBpZiAoVU5MSUtFTFkoIWJpbmRpbmcpKSB7Ci0gICAgICAgICAgICBz
d2l0Y2ggKGJpbmRpbmcuZXJyb3IoKSkgewotICAgICAgICAgICAgY2FzZSBXYXNtOjpCaW5kaW5n
RmFpbHVyZTo6T3V0T2ZNZW1vcnk6Ci0gICAgICAgICAgICAgICAgbV9lcnJvck1lc3NhZ2UgPSAi
T3V0IG9mIGV4ZWN1dGFibGUgbWVtb3J5Il9zOwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0g
ICAgICAgIH0KLSAgICAgICAgbV93YXNtVG9KU0V4aXRTdHVic1tpbXBvcnRJbmRleF0gPSBiaW5k
aW5nLnZhbHVlKCk7Ci0gICAgfQotfQotCi12b2lkIEpTV2ViQXNzZW1ibHlDYWxsZWVHcm91cDo6
ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQotewotICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsK
LX0KLQotdm9pZCBKU1dlYkFzc2VtYmx5Q2FsbGVlR3JvdXA6OmRlc3Ryb3koSlNDZWxsKiBjZWxs
KQotewotICAgIHN0YXRpY19jYXN0PEpTV2ViQXNzZW1ibHlDYWxsZWVHcm91cCo+KGNlbGwpLT5K
U1dlYkFzc2VtYmx5Q2FsbGVlR3JvdXA6On5KU1dlYkFzc2VtYmx5Q2FsbGVlR3JvdXAoKTsKLX0K
LQotdm9pZCBKU1dlYkFzc2VtYmx5Q2FsbGVlR3JvdXA6OmNsZWFySlNDYWxsSUNzKFZNJiB2bSkK
LXsKLSAgICBmb3IgKGF1dG8gaXRlciA9IG1fY2FsbExpbmtJbmZvcy5iZWdpbigpOyAhIWl0ZXI7
ICsraXRlcikKLSAgICAgICAgKCppdGVyKS0+dW5saW5rKHZtKTsKLX0KLQotdGVtcGxhdGU8dHlw
ZW5hbWUgVmlzaXRvcj4KLXZvaWQgSlNXZWJBc3NlbWJseUNhbGxlZUdyb3VwOjp2aXNpdENoaWxk
cmVuSW1wbChKU0NlbGwqIGNlbGwsIFZpc2l0b3ImIHZpc2l0b3IpCi17Ci0gICAgSlNXZWJBc3Nl
bWJseUNhbGxlZUdyb3VwKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTV2ViQXNzZW1ibHlDYWxsZWVH
cm91cCo+KGNlbGwpOwotICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwg
aW5mbygpKTsKLQotICAgIEJhc2U6OnZpc2l0Q2hpbGRyZW4odGhpc09iamVjdCwgdmlzaXRvcik7
Ci19Ci0KLURFRklORV9WSVNJVF9DSElMRFJFTihKU1dlYkFzc2VtYmx5Q2FsbGVlR3JvdXApOwot
Ci12b2lkIEpTV2ViQXNzZW1ibHlDYWxsZWVHcm91cDo6ZmluYWxpemVVbmNvbmRpdGlvbmFsbHko
Vk0mIHZtKQotewotICAgIGZvciAoYXV0byBpdGVyID0gbV9jYWxsTGlua0luZm9zLmJlZ2luKCk7
ICEhaXRlcjsgKytpdGVyKQotICAgICAgICAoKml0ZXIpLT52aXNpdFdlYWsodm0pOwotfQotCi19
IC8vIG5hbWVzcGFjZSBKU0MKLQotI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlDYWxsZWVH
cm91cC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUNhbGxl
ZUdyb3VwLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg3NDJlZGE1N2IxZTI2YWNk
ZjEwZjE1MDRlZTdhNDY2Nzk3MTMzN2UuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJs
eUNhbGxlZUdyb3VwLmgKKysrIC9kZXYvbnVsbApAQCAtMSw5OSArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDE3LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQot
I2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKLQotI2luY2x1ZGUgIkNhbGxMaW5rSW5mby5oIgotI2lu
Y2x1ZGUgIkRlZmVycmVkV29ya1RpbWVyLmgiCi0jaW5jbHVkZSAiSlNDYXN0LmgiCi0jaW5jbHVk
ZSAiU3RydWN0dXJlLmgiCi0jaW5jbHVkZSAiV2FzbUNhbGxlZS5oIgotI2luY2x1ZGUgIldhc21G
b3JtYXQuaCIKLSNpbmNsdWRlICJXYXNtTW9kdWxlLmgiCi0jaW5jbHVkZSA8d3RmL0JhZy5oPgot
I2luY2x1ZGUgPHd0Zi9SZWYuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0KLW5hbWVzcGFj
ZSBKU0MgewotCi1jbGFzcyBKU1dlYkFzc2VtYmx5TWVtb3J5OwotCi1uYW1lc3BhY2UgV2FzbSB7
Ci1jbGFzcyBQbGFuOwotfQotCi1jbGFzcyBKU1dlYkFzc2VtYmx5Q2FsbGVlR3JvdXAgZmluYWwg
OiBwdWJsaWMgSlNDZWxsIHsKLXB1YmxpYzoKLSAgICB0eXBlZGVmIEpTQ2VsbCBCYXNlOwotICAg
IHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1
cmVGbGFncyB8IFN0cnVjdHVyZUlzSW1tb3J0YWw7Ci0KLSAgICBzdGF0aWMgSlNXZWJBc3NlbWJs
eUNhbGxlZUdyb3VwKiBjcmVhdGUoVk0mLCBSZWY8V2FzbTo6Q2FsbGVlR3JvdXA+LCBjb25zdCBX
YXNtOjpNb2R1bGVJbmZvcm1hdGlvbiYpOwotICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0
cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJv
dG90eXBlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9i
YWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oQ2VsbFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwg
aW5mbygpKTsKLSAgICB9Ci0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDZWxsVHlwZSwgU3Vic3Bh
Y2VBY2Nlc3MgbW9kZT4KLSAgICBzdGF0aWMgSXNvU3Vic3BhY2UqIHN1YnNwYWNlRm9yKFZNJiB2
bSkKLSAgICB7Ci0gICAgICAgIHJldHVybiB2bS53ZWJBc3NlbWJseUNhbGxlZUdyb3VwU3BhY2U8
bW9kZT4oKTsKLSAgICB9Ci0KLSAgICBXYXNtOjpDYWxsZWVHcm91cCYgY2FsbGVlR3JvdXAoKSB7
IHJldHVybiBtX2NhbGxlZUdyb3VwLmdldCgpOyB9Ci0gICAgCi0gICAgTWFjcm9Bc3NlbWJsZXJD
b2RlUHRyPFdhc21FbnRyeVB0clRhZz4gd2FzbVRvRW1iZWRkZXJTdHViKHNpemVfdCBpbXBvcnRG
dW5jdGlvbk51bSkgeyByZXR1cm4gbV93YXNtVG9KU0V4aXRTdHVic1tpbXBvcnRGdW5jdGlvbk51
bV0uY29kZSgpOyB9Ci0KLSAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJik7Ci0KLSAgICB2b2lk
IGNsZWFySlNDYWxsSUNzKFZNJik7Ci0KLSAgICBib29sIHJ1bm5hYmxlKCkgY29uc3QgeyByZXR1
cm4gIW1fZXJyb3JNZXNzYWdlOyB9Ci0KLSAgICBTdHJpbmcgZXJyb3JNZXNzYWdlKCkKLSAgICB7
Ci0gICAgICAgIEFTU0VSVCghcnVubmFibGUoKSk7Ci0gICAgICAgIHJldHVybiBtX2Vycm9yTWVz
c2FnZTsKLSAgICB9Ci0KLSAgICB2b2lkIGZpbmFsaXplVW5jb25kaXRpb25hbGx5KFZNJik7Ci0K
LXByaXZhdGU6Ci0gICAgSlNXZWJBc3NlbWJseUNhbGxlZUdyb3VwKFZNJiwgUmVmPFdhc206OkNh
bGxlZUdyb3VwPiYmLCBjb25zdCBXYXNtOjpNb2R1bGVJbmZvcm1hdGlvbiYpOwotICAgIERFQ0xB
UkVfRVhQT1JUX0lORk87Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBib29sIG5lZWRzRGVzdHJ1Y3Rp
b24gPSB0cnVlOwotICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDZWxsKik7Ci0gICAgREVDTEFS
RV9WSVNJVF9DSElMRFJFTjsKLQotICAgIFJlZjxXYXNtOjpDYWxsZWVHcm91cD4gbV9jYWxsZWVH
cm91cDsKLSAgICBGaXhlZFZlY3RvcjxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRy
VGFnPj4gbV93YXNtVG9KU0V4aXRTdHViczsKLSAgICBCYWc8T3B0aW1pemluZ0NhbGxMaW5rSW5m
bz4gbV9jYWxsTGlua0luZm9zOwotICAgIFN0cmluZyBtX2Vycm9yTWVzc2FnZTsKLX07Ci0KLX0g
Ly8gbmFtZXNwYWNlIEpTQwotCi0jZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUluc3RhbmNl
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlJbnN0YW5j
ZS5jcHAKaW5kZXggYzRkNDljYzRjNWExOGZhOWQzNmFkOWUyYzdiN2E0OTM2NDUzM2RlYS4uNDQz
ZWI5YmJiYzE5OWFmOGY3MzI3NGI0OWFhYzU2MzkyYzFkYzJmOCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUluc3RhbmNlLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5SW5zdGFuY2UuY3BwCkBA
IC04MSw3ICs4MSw2IEBAIHZvaWQgSlNXZWJBc3NlbWJseUluc3RhbmNlOjp2aXNpdENoaWxkcmVu
SW1wbChKU0NlbGwqIGNlbGwsIFZpc2l0b3ImIHZpc2l0b3IpCiAKICAgICBCYXNlOjp2aXNpdENo
aWxkcmVuKHRoaXNPYmplY3QsIHZpc2l0b3IpOwogICAgIHZpc2l0b3IuYXBwZW5kKHRoaXNPYmpl
Y3QtPm1fbW9kdWxlKTsKLSAgICB2aXNpdG9yLmFwcGVuZCh0aGlzT2JqZWN0LT5tX2NhbGxlZUdy
b3VwKTsKICAgICB2aXNpdG9yLmFwcGVuZCh0aGlzT2JqZWN0LT5tX21vZHVsZVJlY29yZCk7CiAg
ICAgdmlzaXRvci5hcHBlbmQodGhpc09iamVjdC0+bV9tZW1vcnkpOwogICAgIGZvciAoYXV0byYg
dGFibGUgOiB0aGlzT2JqZWN0LT5tX3RhYmxlcykKQEAgLTExNywyMyArMTE2LDYgQEAgdm9pZCBK
U1dlYkFzc2VtYmx5SW5zdGFuY2U6OmZpbmFsaXplQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWMKICAgICB9CiAKICAgICBSRUxFQVNFX0FTU0VSVCh3YXNtQ2FsbGVl
R3JvdXAtPmlzU2FmZVRvUnVuKG1lbW9yeU1vZGUoKSkpOwotICAgIEpTV2ViQXNzZW1ibHlDYWxs
ZWVHcm91cCoganNDYWxsZWVHcm91cCA9IG1fbW9kdWxlLT5jYWxsZWVHcm91cChtZW1vcnlNb2Rl
KCkpOwotICAgIGlmIChqc0NhbGxlZUdyb3VwKSB7Ci0gICAgICAgIC8vIEEgQ2FsbGVlR3JvdXAg
bWlnaHQgaGF2ZSBhbHJlYWR5IGJlZW4gY29tcGlsZWQuIElmIHNvLCBpdCBtZWFucwotICAgICAg
ICAvLyB0aGF0IHRoZSBDYWxsZWVHcm91cCB3ZSBhcmUgdHJ5aW5nIHRvIGNvbXBpbGUgbXVzdCBi
ZSB0aGUgc2FtZQotICAgICAgICAvLyBiZWNhdXNlIHdlIHdpbGwgbmV2ZXIgY29tcGlsZSBhIENh
bGxlZUdyb3VwIGFnYWluIG9uY2UgaXQncwotICAgICAgICAvLyBydW5uYWJsZS4KLSAgICAgICAg
QVNTRVJUKCZqc0NhbGxlZUdyb3VwLT5jYWxsZWVHcm91cCgpID09IHdhc21DYWxsZWVHcm91cC5w
dHIoKSk7Ci0gICAgICAgIG1fY2FsbGVlR3JvdXAuc2V0KHZtLCB0aGlzLCBqc0NhbGxlZUdyb3Vw
KTsKLSAgICB9IGVsc2UgewotICAgICAgICBqc0NhbGxlZUdyb3VwID0gSlNXZWJBc3NlbWJseUNh
bGxlZUdyb3VwOjpjcmVhdGUodm0sIFdURk1vdmUod2FzbUNhbGxlZUdyb3VwKSwgbW9kdWxlKCkt
Pm1vZHVsZSgpLm1vZHVsZUluZm9ybWF0aW9uKCkpOwotICAgICAgICBpZiAoVU5MSUtFTFkoIWpz
Q2FsbGVlR3JvdXAtPnJ1bm5hYmxlKCkpKSB7Ci0gICAgICAgICAgICB0aHJvd0V4Y2VwdGlvbihn
bG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVKU1dlYkFzc2VtYmx5TGlua0Vycm9yKGdsb2JhbE9i
amVjdCwgdm0sIGpzQ2FsbGVlR3JvdXAtPmVycm9yTWVzc2FnZSgpKSk7Ci0gICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgbV9jYWxsZWVHcm91cC5zZXQodm0sIHRoaXMsIGpz
Q2FsbGVlR3JvdXApOwotICAgICAgICBtX21vZHVsZS0+c2V0Q2FsbGVlR3JvdXAodm0sIG1lbW9y
eU1vZGUoKSwganNDYWxsZWVHcm91cCk7Ci0gICAgfQogCiAgICAgLy8gSW4gdGhlIG1vZHVsZSBs
b2FkZXIgY2FzZSwgd2Ugd2lsbCBpbml0aWFsaXplIGFsbCBtZW1vcnkgbW9kZXMgd2l0aCB0aGUg
aW5pdGlhbCBMTEludCBjb21waWxhdGlvbgogICAgIC8vIHJlc3VsdHMsIHNvIHRoYXQgbGF0ZXIg
d2hlbiBtZW1vcnkgaW1wb3J0cyBiZWNvbWUgYXZhaWxhYmxlLCB0aGUgYXBwcm9wcmlhdGUgQ2Fs
bGVlR3JvdXAgY2FuIGJlIHVzZWQuCkBAIC0xNDgsMTkgKzEzMCwxMyBAQCB2b2lkIEpTV2ViQXNz
ZW1ibHlJbnN0YW5jZTo6ZmluYWxpemVDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplYwogICAgICAgICAgICAgaWYgKGkgPT0gc3RhdGljX2Nhc3Q8dWludDhfdD4oaW5p
dGlhbE1vZGUpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgV2FzbTo6
TWVtb3J5TW9kZSBtZW1vcnlNb2RlID0gc3RhdGljX2Nhc3Q8V2FzbTo6TWVtb3J5TW9kZT4oaSk7
Ci0gICAgICAgICAgICBSZWZQdHI8V2FzbTo6Q2FsbGVlR3JvdXA+IGNhbGxlZUdyb3VwID0gbW9k
dWxlKCktPm1vZHVsZSgpLmNhbGxlZUdyb3VwRm9yKG1lbW9yeU1vZGUpOwotICAgICAgICAgICAg
anNDYWxsZWVHcm91cCA9IEpTV2ViQXNzZW1ibHlDYWxsZWVHcm91cDo6Y3JlYXRlKHZtLCBjYWxs
ZWVHcm91cC5yZWxlYXNlTm9uTnVsbCgpLCBtb2R1bGUoKS0+bW9kdWxlKCkubW9kdWxlSW5mb3Jt
YXRpb24oKSk7Ci0gICAgICAgICAgICBpZiAoVU5MSUtFTFkoIWpzQ2FsbGVlR3JvdXAtPnJ1bm5h
YmxlKCkpKSB7Ci0gICAgICAgICAgICAgICAgdGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBz
Y29wZSwgY3JlYXRlSlNXZWJBc3NlbWJseUxpbmtFcnJvcihnbG9iYWxPYmplY3QsIHZtLCBqc0Nh
bGxlZUdyb3VwLT5lcnJvck1lc3NhZ2UoKSkpOwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIG1fbW9kdWxlLT5zZXRDYWxsZWVHcm91cCh2bSwgbWVt
b3J5TW9kZSwganNDYWxsZWVHcm91cCk7CisgICAgICAgICAgICBtb2R1bGUoKS0+bW9kdWxlKCku
Y2FsbGVlR3JvdXBGb3IobWVtb3J5TW9kZSk7IC8vIE1hdGVyaWFsaXplIFdhc206OkNhbGxlZUdy
b3VwLgogICAgICAgICB9CiAgICAgfQogCiAgICAgZm9yICh1bnNpZ25lZCBpbXBvcnRGdW5jdGlv
bk51bSA9IDA7IGltcG9ydEZ1bmN0aW9uTnVtIDwgaW5zdGFuY2UoKS5udW1JbXBvcnRGdW5jdGlv
bnMoKTsgKytpbXBvcnRGdW5jdGlvbk51bSkgewogICAgICAgICBhdXRvKiBpbmZvID0gaW5zdGFu
Y2UoKS5pbXBvcnRGdW5jdGlvbkluZm8oaW1wb3J0RnVuY3Rpb25OdW0pOwotICAgICAgICBpbmZv
LT53YXNtVG9FbWJlZGRlclN0dWIgPSBtX2NhbGxlZUdyb3VwLT53YXNtVG9FbWJlZGRlclN0dWIo
aW1wb3J0RnVuY3Rpb25OdW0pOworICAgICAgICBpbmZvLT53YXNtVG9FbWJlZGRlclN0dWIgPSBt
X21vZHVsZS0+d2FzbVRvRW1iZWRkZXJTdHViKGltcG9ydEZ1bmN0aW9uTnVtKTsKICAgICB9CiAK
ICAgICBtX21vZHVsZVJlY29yZC0+cHJlcGFyZUxpbmsodm0sIHRoaXMpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUluc3RhbmNlLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5SW5zdGFuY2UuaAppbmRl
eCBhZGVlZmE1N2Y3MzE0MDRhM2E5M2Y5YzUzNDJiODA2Yjc0MDQ5M2Q2Li4wYjFiN2E3ZGIxMGQ3
MzUzZmI2OTM2MGE1ZmY0ODNkNzI4NDMwZjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5SW5zdGFuY2UuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5SW5zdGFuY2UuaApAQCAtMjgsNyArMjgsNiBA
QAogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKIAogI2luY2x1ZGUgIkpTRGVzdHJ1Y3RpYmxlT2Jq
ZWN0LmgiCi0jaW5jbHVkZSAiSlNXZWJBc3NlbWJseUNhbGxlZUdyb3VwLmgiCiAjaW5jbHVkZSAi
SlNXZWJBc3NlbWJseUdsb2JhbC5oIgogI2luY2x1ZGUgIkpTV2ViQXNzZW1ibHlNZW1vcnkuaCIK
ICNpbmNsdWRlICJKU1dlYkFzc2VtYmx5VGFibGUuaCIKQEAgLTExNCw3ICsxMTMsNiBAQCBjbGFz
cyBKU1dlYkFzc2VtYmx5SW5zdGFuY2UgZmluYWwgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7
CiAKICAgICBXcml0ZUJhcnJpZXI8SlNHbG9iYWxPYmplY3Q+IG1fZ2xvYmFsT2JqZWN0OwogICAg
IFdyaXRlQmFycmllcjxKU1dlYkFzc2VtYmx5TW9kdWxlPiBtX21vZHVsZTsKLSAgICBXcml0ZUJh
cnJpZXI8SlNXZWJBc3NlbWJseUNhbGxlZUdyb3VwPiBtX2NhbGxlZUdyb3VwOwogICAgIFdyaXRl
QmFycmllcjxXZWJBc3NlbWJseU1vZHVsZVJlY29yZD4gbV9tb2R1bGVSZWNvcmQ7CiAgICAgV3Jp
dGVCYXJyaWVyPEpTV2ViQXNzZW1ibHlNZW1vcnk+IG1fbWVtb3J5OwogICAgIEZpeGVkVmVjdG9y
PFdyaXRlQmFycmllcjxKU1dlYkFzc2VtYmx5VGFibGU+PiBtX3RhYmxlczsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlNb2R1bGUuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseU1vZHVsZS5jcHAKaW5k
ZXggZTYwZTQ0MWEzMTAwOWQyMDY1NWYxMGZhYTc1OGVmNGE3ZjdmY2E4OC4uOGFlYmJlNjU0MWIw
NDk5Nzk2NzcyOTk1ZDc4YTIwNzQ3MTU3ZGFjMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseU1vZHVsZS5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseU1vZHVsZS5jcHAKQEAgLTI5LDExICsyOSwx
MSBAQAogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKIAogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIK
LSNpbmNsdWRlICJKU1dlYkFzc2VtYmx5Q2FsbGVlR3JvdXAuaCIKICNpbmNsdWRlICJKU1dlYkFz
c2VtYmx5Q29tcGlsZUVycm9yLmgiCiAjaW5jbHVkZSAiV2FzbUZvcm1hdC5oIgogI2luY2x1ZGUg
Ildhc21Nb2R1bGUuaCIKICNpbmNsdWRlICJXYXNtTW9kdWxlSW5mb3JtYXRpb24uaCIKKyNpbmNs
dWRlICJXYXNtVG9KUy5oIgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIAogbmFtZXNw
YWNlIEpTQyB7CkBAIC01Miw2ICs1MiwxNiBAQCBKU1dlYkFzc2VtYmx5TW9kdWxlKiBKU1dlYkFz
c2VtYmx5TW9kdWxlOjpjcmVhdGVTdHViKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsbwogCiAg
ICAgYXV0byogbW9kdWxlID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8SlNXZWJBc3NlbWJs
eU1vZHVsZT4odm0pKSBKU1dlYkFzc2VtYmx5TW9kdWxlKHZtLCBzdHJ1Y3R1cmUsIHJlc3VsdC52
YWx1ZSgpLnJlbGVhc2VOb25OdWxsKCkpOwogICAgIG1vZHVsZS0+ZmluaXNoQ3JlYXRpb24odm0p
OworCisgICAgYXV0byBlcnJvciA9IG1vZHVsZS0+Z2VuZXJhdGVXYXNtVG9KU1N0dWJzKHZtKTsK
KyAgICBpZiAoVU5MSUtFTFkoIWVycm9yKSkgeworICAgICAgICBzd2l0Y2ggKGVycm9yLmVycm9y
KCkpIHsKKyAgICAgICAgY2FzZSBXYXNtOjpCaW5kaW5nRmFpbHVyZTo6T3V0T2ZNZW1vcnk6Cisg
ICAgICAgICAgICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVKU1dl
YkFzc2VtYmx5TGlua0Vycm9yKGdsb2JhbE9iamVjdCwgdm0sICJPdXQgb2YgZXhlY3V0YWJsZSBt
ZW1vcnkiX3MpKTsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICB9CisgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KICAgICByZXR1cm4gbW9kdWxlOwogfQog
CkBAIC0xMDksMjEgKzExOSwxMSBAQCBXYXNtOjpTaWduYXR1cmVJbmRleCBKU1dlYkFzc2VtYmx5
TW9kdWxlOjpzaWduYXR1cmVJbmRleEZyb21GdW5jdGlvbkluZGV4U3BhY2UodQogICAgIHJldHVy
biBtX21vZHVsZS0+c2lnbmF0dXJlSW5kZXhGcm9tRnVuY3Rpb25JbmRleFNwYWNlKGZ1bmN0aW9u
SW5kZXhTcGFjZSk7CiB9CiAKLUpTV2ViQXNzZW1ibHlDYWxsZWVHcm91cCogSlNXZWJBc3NlbWJs
eU1vZHVsZTo6Y2FsbGVlR3JvdXAoV2FzbTo6TWVtb3J5TW9kZSBtb2RlKQotewotICAgIHJldHVy
biBtX2NhbGxlZUdyb3Vwc1tzdGF0aWNfY2FzdDxzaXplX3Q+KG1vZGUpXS5nZXQoKTsKLX0KLQog
V2FzbTo6TW9kdWxlJiBKU1dlYkFzc2VtYmx5TW9kdWxlOjptb2R1bGUoKQogewogICAgIHJldHVy
biBtX21vZHVsZS5nZXQoKTsKIH0KIAotdm9pZCBKU1dlYkFzc2VtYmx5TW9kdWxlOjpzZXRDYWxs
ZWVHcm91cChWTSYgdm0sIFdhc206Ok1lbW9yeU1vZGUgbW9kZSwgSlNXZWJBc3NlbWJseUNhbGxl
ZUdyb3VwKiBjYWxsZWVHcm91cCkKLXsKLSAgICBtX2NhbGxlZUdyb3Vwc1tzdGF0aWNfY2FzdDxz
aXplX3Q+KG1vZGUpXS5zZXQodm0sIHRoaXMsIGNhbGxlZUdyb3VwKTsKLX0KLQogdGVtcGxhdGU8
dHlwZW5hbWUgVmlzaXRvcj4KIHZvaWQgSlNXZWJBc3NlbWJseU1vZHVsZTo6dmlzaXRDaGlsZHJl
bkltcGwoSlNDZWxsKiBjZWxsLCBWaXNpdG9yJiB2aXNpdG9yKQogewpAQCAtMTMyLDEyICsxMzIs
NDEgQEAgdm9pZCBKU1dlYkFzc2VtYmx5TW9kdWxlOjp2aXNpdENoaWxkcmVuSW1wbChKU0NlbGwq
IGNlbGwsIFZpc2l0b3ImIHZpc2l0b3IpCiAKICAgICBCYXNlOjp2aXNpdENoaWxkcmVuKHRoaXNP
YmplY3QsIHZpc2l0b3IpOwogICAgIHZpc2l0b3IuYXBwZW5kKHRoaXNPYmplY3QtPm1fZXhwb3J0
U3ltYm9sVGFibGUpOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBXYXNtOjpOdW1iZXJP
Zk1lbW9yeU1vZGVzOyArK2kpCi0gICAgICAgIHZpc2l0b3IuYXBwZW5kKHRoaXNPYmplY3QtPm1f
Y2FsbGVlR3JvdXBzW2ldKTsKIH0KIAogREVGSU5FX1ZJU0lUX0NISUxEUkVOKEpTV2ViQXNzZW1i
bHlNb2R1bGUpOwogCit2b2lkIEpTV2ViQXNzZW1ibHlNb2R1bGU6OmNsZWFySlNDYWxsSUNzKFZN
JiB2bSkKK3sKKyAgICBmb3IgKGF1dG8gaXRlciA9IG1fY2FsbExpbmtJbmZvcy5iZWdpbigpOyAh
IWl0ZXI7ICsraXRlcikKKyAgICAgICAgKCppdGVyKS0+dW5saW5rKHZtKTsKK30KKwordm9pZCBK
U1dlYkFzc2VtYmx5TW9kdWxlOjpmaW5hbGl6ZVVuY29uZGl0aW9uYWxseShWTSYgdm0pCit7Cisg
ICAgZm9yIChhdXRvIGl0ZXIgPSBtX2NhbGxMaW5rSW5mb3MuYmVnaW4oKTsgISFpdGVyOyArK2l0
ZXIpCisgICAgICAgICgqaXRlciktPnZpc2l0V2Vhayh2bSk7Cit9CisKK0V4cGVjdGVkPHZvaWQs
IFdhc206OkJpbmRpbmdGYWlsdXJlPiBKU1dlYkFzc2VtYmx5TW9kdWxlOjpnZW5lcmF0ZVdhc21U
b0pTU3R1YnMoVk0mIHZtKQoreworICAgIGNvbnN0IFdhc206Ok1vZHVsZUluZm9ybWF0aW9uJiBt
b2R1bGVJbmZvcm1hdGlvbiA9IG1fbW9kdWxlLT5tb2R1bGVJbmZvcm1hdGlvbigpOworICAgIGlm
IChtb2R1bGVJbmZvcm1hdGlvbi5pbXBvcnRGdW5jdGlvbkNvdW50KCkpIHsKKyAgICAgICAgQmFn
PE9wdGltaXppbmdDYWxsTGlua0luZm8+IGNhbGxMaW5rSW5mb3M7CisgICAgICAgIEZpeGVkVmVj
dG9yPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+PiBzdHVicyhtb2R1bGVJ
bmZvcm1hdGlvbi5pbXBvcnRGdW5jdGlvbkNvdW50KCkpOworICAgICAgICBmb3IgKHVuc2lnbmVk
IGltcG9ydEluZGV4ID0gMDsgaW1wb3J0SW5kZXggPCBtb2R1bGVJbmZvcm1hdGlvbi5pbXBvcnRG
dW5jdGlvbkNvdW50KCk7ICsraW1wb3J0SW5kZXgpIHsKKyAgICAgICAgICAgIFdhc206OlNpZ25h
dHVyZUluZGV4IHNpZ25hdHVyZUluZGV4ID0gbW9kdWxlSW5mb3JtYXRpb24uaW1wb3J0RnVuY3Rp
b25TaWduYXR1cmVJbmRpY2VzLmF0KGltcG9ydEluZGV4KTsKKyAgICAgICAgICAgIGF1dG8gYmlu
ZGluZyA9IFdhc206Ondhc21Ub0pTKHZtLCBjYWxsTGlua0luZm9zLCBzaWduYXR1cmVJbmRleCwg
aW1wb3J0SW5kZXgpOworICAgICAgICAgICAgaWYgKFVOTElLRUxZKCFiaW5kaW5nKSkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoYmluZGluZy5lcnJvcigpKTsKKyAgICAg
ICAgICAgIHN0dWJzW2ltcG9ydEluZGV4XSA9IGJpbmRpbmcudmFsdWUoKTsKKyAgICAgICAgfQor
ICAgICAgICBtX3dhc21Ub0pTRXhpdFN0dWJzID0gV1RGTW92ZShzdHVicyk7CisgICAgICAgIG1f
Y2FsbExpbmtJbmZvcyA9IFdURk1vdmUoY2FsbExpbmtJbmZvcyk7CisgICAgfQorICAgIHJldHVy
biB7IH07Cit9CisKIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkFT
U0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJB
c3NlbWJseU1vZHVsZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3Nl
bWJseU1vZHVsZS5oCmluZGV4IDk2ZDE1NmY0YmI5NWFkMjg3N2UyNGQyOWViMTAwMzg1MTZhZGNi
ZjkuLmE4NWM5MmM3M2FlYWM3ZWE1MmVjMDczYmRkYjA4Yzc3MjJjYzMwMGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlNb2R1bGUuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5TW9kdWxlLmgKQEAg
LTQzLDEwICs0MywxMCBAQCBuYW1lc3BhY2UgV2FzbSB7CiBjbGFzcyBNb2R1bGU7CiBzdHJ1Y3Qg
TW9kdWxlSW5mb3JtYXRpb247CiBjbGFzcyBQbGFuOworZW51bSBjbGFzcyBCaW5kaW5nRmFpbHVy
ZTsKIH0KIAogY2xhc3MgU3ltYm9sVGFibGU7Ci1jbGFzcyBKU1dlYkFzc2VtYmx5Q2FsbGVlR3Jv
dXA7CiBjbGFzcyBKU1dlYkFzc2VtYmx5TWVtb3J5OwogCiBjbGFzcyBKU1dlYkFzc2VtYmx5TW9k
dWxlIGZpbmFsIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewpAQCAtNzAsMjEgKzcwLDIzIEBA
IGNsYXNzIEpTV2ViQXNzZW1ibHlNb2R1bGUgZmluYWwgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVj
dCB7CiAgICAgU3ltYm9sVGFibGUqIGV4cG9ydFN5bWJvbFRhYmxlKCkgY29uc3Q7CiAgICAgV2Fz
bTo6U2lnbmF0dXJlSW5kZXggc2lnbmF0dXJlSW5kZXhGcm9tRnVuY3Rpb25JbmRleFNwYWNlKHVu
c2lnbmVkIGZ1bmN0aW9uSW5kZXhTcGFjZSkgY29uc3Q7CiAKLSAgICBKU1dlYkFzc2VtYmx5Q2Fs
bGVlR3JvdXAqIGNhbGxlZUdyb3VwKFdhc206Ok1lbW9yeU1vZGUpOwotICAgIHZvaWQgc2V0Q2Fs
bGVlR3JvdXAoVk0mLCBXYXNtOjpNZW1vcnlNb2RlLCBKU1dlYkFzc2VtYmx5Q2FsbGVlR3JvdXAq
KTsKKyAgICBFeHBlY3RlZDx2b2lkLCBXYXNtOjpCaW5kaW5nRmFpbHVyZT4gZ2VuZXJhdGVXYXNt
VG9KU1N0dWJzKFZNJik7CisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPFdhc21FbnRyeVB0clRh
Zz4gd2FzbVRvRW1iZWRkZXJTdHViKHNpemVfdCBpbXBvcnRGdW5jdGlvbk51bSkgeyByZXR1cm4g
bV93YXNtVG9KU0V4aXRTdHVic1tpbXBvcnRGdW5jdGlvbk51bV0uY29kZSgpOyB9CisKKyAgICB2
b2lkIGNsZWFySlNDYWxsSUNzKFZNJik7CisgICAgdm9pZCBmaW5hbGl6ZVVuY29uZGl0aW9uYWxs
eShWTSYpOwogCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgV2FzbTo6TW9kdWxlJiBtb2R1bGUoKTsK
IAogcHJpdmF0ZToKLSAgICBmcmllbmQgY2xhc3MgSlNXZWJBc3NlbWJseUNhbGxlZUdyb3VwOwot
CiAgICAgSlNXZWJBc3NlbWJseU1vZHVsZShWTSYsIFN0cnVjdHVyZSosIFJlZjxXYXNtOjpNb2R1
bGU+JiYpOwogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mKTsKICAgICBERUNMQVJFX1ZJU0lU
X0NISUxEUkVOOwogCiAgICAgUmVmPFdhc206Ok1vZHVsZT4gbV9tb2R1bGU7CiAgICAgV3JpdGVC
YXJyaWVyPFN5bWJvbFRhYmxlPiBtX2V4cG9ydFN5bWJvbFRhYmxlOwotICAgIFdyaXRlQmFycmll
cjxKU1dlYkFzc2VtYmx5Q2FsbGVlR3JvdXA+IG1fY2FsbGVlR3JvdXBzW1dhc206Ok51bWJlck9m
TWVtb3J5TW9kZXNdOworICAgIEZpeGVkVmVjdG9yPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNt
RW50cnlQdHJUYWc+PiBtX3dhc21Ub0pTRXhpdFN0dWJzOworICAgIEJhZzxPcHRpbWl6aW5nQ2Fs
bExpbmtJbmZvPiBtX2NhbGxMaW5rSW5mb3M7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxl
Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1i
bHlNb2R1bGVDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNjQ1MDdhZDFmYmRkZWI4MGNhMmE0NmJkMGEy
Yzg3ZDEzZGQwY2JlYy4uZDMxNzU2NTBmM2QzM2I0MTE4ZDM0ZDc4NDQ4ZmIxNDI2YjdiNWU2OSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1
bGVDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2Vi
QXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvci5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRl
ICJKU1dlYkFzc2VtYmx5SGVscGVycy5oIgogI2luY2x1ZGUgIkpTV2ViQXNzZW1ibHlNb2R1bGUu
aCIKICNpbmNsdWRlICJPYmplY3RDb25zdHJ1Y3Rvci5oIgorI2luY2x1ZGUgIldhc21Nb2R1bGUu
aCIKICNpbmNsdWRlICJXYXNtTW9kdWxlSW5mb3JtYXRpb24uaCIKICNpbmNsdWRlICJXZWJBc3Nl
bWJseU1vZHVsZVByb3RvdHlwZS5oIgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5V3JhcHBl
ckZ1bmN0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVdy
YXBwZXJGdW5jdGlvbi5oCmluZGV4IGQ0OTAyZDIxYmVmMTA1MzQ0ZGNhNjJlNDNiMGRjYzRjZmI4
MjljNzQuLmMzM2IyZTZhNDg3YzUyNGI5ZTU5OWMwZGVmYjQ3MThjNWFiNTgxZDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5V3JhcHBlckZ1bmN0
aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlXcmFw
cGVyRnVuY3Rpb24uaApAQCAtMjcsNyArMjcsNiBAQAogCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZ
KQogCi0jaW5jbHVkZSAiSlNXZWJBc3NlbWJseUNhbGxlZUdyb3VwLmgiCiAjaW5jbHVkZSAiV2Vi
QXNzZW1ibHlGdW5jdGlvbkJhc2UuaCIKIAogbmFtZXNwYWNlIEpTQyB7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>