<?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>237925</bug_id>
          
          <creation_ts>2022-03-15 15:32:40 -0700</creation_ts>
          <short_desc>[WebGPU] Migrate from WTF::Function to WTF::CompletionHandler</short_desc>
          <delta_ts>2022-03-15 16:49:59 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>237932</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>ggaren</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1851539</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-03-15 15:32:40 -0700</bug_when>
    <thetext>[WebGPU] Migrate from WTF::Function to WTF::CompletionHandler</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1851540</commentid>
    <comment_count>1</comment_count>
      <attachid>454764</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-03-15 15:34:55 -0700</bug_when>
    <thetext>Created attachment 454764
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1851544</commentid>
    <comment_count>2</comment_count>
      <attachid>454764</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2022-03-15 15:39:27 -0700</bug_when>
    <thetext>Comment on attachment 454764
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1851582</commentid>
    <comment_count>3</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-03-15 16:44:21 -0700</bug_when>
    <thetext>Committed r291323 (248462@trunk): &lt;https://commits.webkit.org/248462@trunk&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1851583</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-15 16:45:22 -0700</bug_when>
    <thetext>&lt;rdar://problem/90338265&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454764</attachid>
            <date>2022-03-15 15:34:55 -0700</date>
            <delta_ts>2022-03-15 15:39:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237925-20220315153454.patch</filename>
            <type>text/plain</type>
            <size>68800</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMzE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCAzM2UyZGNj
MDk4MjI3OGUwNzIxNDQ4Nzk3OTBkNjA5ZTc5YzIzZWU3Li4wMjk4MjJhMDE3NGEzMDJmZmUzMTM4
YTRhMzUxZDVhODc4ZTRlNzBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NCBAQAor
MjAyMi0wMy0xNSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisg
ICAgICAgIFtXZWJHUFVdIE1pZ3JhdGUgZnJvbSBXVEY6OkZ1bmN0aW9uIHRvIFdURjo6Q29tcGxl
dGlvbkhhbmRsZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzNzkyNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIENvbXBsZXRpb25IYW5kbGVycyBtYWtlIHN1cmUgdGhleSBhcmUgY2FsbGVkIGV4YWN0bHkg
MSB0aW1lLCBhbmQgZWFnZXJseSBmcmVlIHVwIHJlc291cmNlcy4KKworICAgICAgICBUaGVyZSBh
cmUgc3RpbGwgMiBwbGFjZXMgd2hpY2ggY29udGludWUgdG8gdXNlIEZ1bmN0aW9ucywgYmVjdWFz
ZSB0aGV5IGFyZSBleHBlY3RlZCB0byBiZQorICAgICAgICBjYWxsZWQgbXVsdGlwbGUgdGltZXM6
CisgICAgICAgIC0gRGV2aWNlOjpzZXREZXZpY2VMb3N0Q2FsbGJhY2soKQorICAgICAgICAtIERl
dmljZTo6c2V0VW5jYXB0dXJlZEVycm9yQ2FsbGJhY2soKQorCisgICAgICAgICogcGFsL2dyYXBo
aWNzL1dlYkdQVS9JbXBsL1dlYkdQVUFkYXB0ZXJJbXBsLmNwcDoKKyAgICAgICAgKFBBTDo6V2Vi
R1BVOjpBZGFwdGVySW1wbDo6cmVxdWVzdERldmljZSk6CisgICAgICAgICogcGFsL2dyYXBoaWNz
L1dlYkdQVS9JbXBsL1dlYkdQVUFkYXB0ZXJJbXBsLmg6CisgICAgICAgICogcGFsL2dyYXBoaWNz
L1dlYkdQVS9JbXBsL1dlYkdQVUJ1ZmZlckltcGwuY3BwOgorICAgICAgICAoUEFMOjpXZWJHUFU6
OkJ1ZmZlckltcGw6Om1hcEFzeW5jKToKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL0lt
cGwvV2ViR1BVQnVmZmVySW1wbC5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvSW1w
bC9XZWJHUFVEZXZpY2VJbXBsLmNwcDoKKyAgICAgICAgKFBBTDo6V2ViR1BVOjpEZXZpY2VJbXBs
OjpjcmVhdGVDb21wdXRlUGlwZWxpbmVBc3luYyk6CisgICAgICAgIChQQUw6OldlYkdQVTo6RGV2
aWNlSW1wbDo6Y3JlYXRlUmVuZGVyUGlwZWxpbmVBc3luYyk6CisgICAgICAgIChQQUw6OldlYkdQ
VTo6RGV2aWNlSW1wbDo6cG9wRXJyb3JTY29wZSk6CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dl
YkdQVS9JbXBsL1dlYkdQVURldmljZUltcGwuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2Vi
R1BVL0ltcGwvV2ViR1BVSW1wbC5jcHA6CisgICAgICAgIChQQUw6OldlYkdQVTo6R1BVSW1wbDo6
cmVxdWVzdEFkYXB0ZXIpOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJH
UFVJbXBsLmg6CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVVF1ZXVl
SW1wbC5jcHA6CisgICAgICAgIChQQUw6OldlYkdQVTo6UXVldWVJbXBsOjpvblN1Ym1pdHRlZFdv
cmtEb25lKToKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVUXVldWVJ
bXBsLmg6CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVVNoYWRlck1v
ZHVsZUltcGwuY3BwOgorICAgICAgICAoUEFMOjpXZWJHUFU6OlNoYWRlck1vZHVsZUltcGw6OmNv
bXBpbGF0aW9uSW5mbyk6CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQ
VVNoYWRlck1vZHVsZUltcGwuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VS5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQWRhcHRlci5oOgorICAg
ICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQnVmZmVyLmg6CisgICAgICAgICogcGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVEZXZpY2UuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVVF1ZXVlLmg6CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJH
UFVTaGFkZXJNb2R1bGUuaDoKKwogMjAyMi0wMy0xNSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4
ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJHUFVdIEFsbG93IGZvciBzY2hlZHVsaW5n
IGFzeW5jaHJvbm91cyB3b3JrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BVL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJHUFUvQ2hhbmdlTG9nCmluZGV4IDMyZDcwMmQ2NjViMTM1NjE5YzYzZjc5ZWEx
NTY5NzkzNzlmMTIzODkuLjFkMWFlZmQ3ZWU0ZjI5Yzg0NzMxNjI3ZjFlNDFkZjY2MTQ3YjU2MDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJHUFUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMjItMDMtMTUgIE15bGVzIEMuIE1heGZpZWxk
ICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViR1BVXSBNaWdyYXRlIGZyb20g
V1RGOjpGdW5jdGlvbiB0byBXVEY6OkNvbXBsZXRpb25IYW5kbGVyCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzc5MjUKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkdQVS9BZGFwdGVyLmg6CisgICAg
ICAgICogV2ViR1BVL0FkYXB0ZXIubW06CisgICAgICAgIChXZWJHUFU6OkFkYXB0ZXI6OnJlcXVl
c3REZXZpY2UpOgorICAgICAgICAqIFdlYkdQVS9CdWZmZXIuaDoKKyAgICAgICAgKiBXZWJHUFUv
QnVmZmVyLm1tOgorICAgICAgICAoV2ViR1BVOjpCdWZmZXI6Om1hcEFzeW5jKToKKyAgICAgICAg
KiBXZWJHUFUvQ29tcHV0ZVBpcGVsaW5lLm1tOgorICAgICAgICAoV2ViR1BVOjpEZXZpY2U6OmNy
ZWF0ZUNvbXB1dGVQaXBlbGluZUFzeW5jKToKKyAgICAgICAgKiBXZWJHUFUvRGV2aWNlLmg6Cisg
ICAgICAgICogV2ViR1BVL0RldmljZS5tbToKKyAgICAgICAgKFdlYkdQVTo6RGV2aWNlOjpwb3BF
cnJvclNjb3BlKToKKyAgICAgICAgKFdlYkdQVTo6RGV2aWNlOjpzZXREZXZpY2VMb3N0Q2FsbGJh
Y2spOgorICAgICAgICAoV2ViR1BVOjpEZXZpY2U6OnNldFVuY2FwdHVyZWRFcnJvckNhbGxiYWNr
KToKKyAgICAgICAgKiBXZWJHUFUvSW5zdGFuY2UuaDoKKyAgICAgICAgKiBXZWJHUFUvSW5zdGFu
Y2UubW06CisgICAgICAgIChXZWJHUFU6Okluc3RhbmNlOjpyZXF1ZXN0QWRhcHRlcik6CisgICAg
ICAgICogV2ViR1BVL1F1ZXVlLmg6CisgICAgICAgICogV2ViR1BVL1F1ZXVlLm1tOgorICAgICAg
ICAoV2ViR1BVOjpRdWV1ZTo6b25TdWJtaXR0ZWRXb3JrRG9uZSk6CisgICAgICAgICogV2ViR1BV
L1JlbmRlclBhc3NFbmNvZGVyLmg6CisgICAgICAgICogV2ViR1BVL1JlbmRlclBpcGVsaW5lLm1t
OgorICAgICAgICAoV2ViR1BVOjpEZXZpY2U6OmNyZWF0ZVJlbmRlclBpcGVsaW5lQXN5bmMpOgor
ICAgICAgICAqIFdlYkdQVS9TaGFkZXJNb2R1bGUuaDoKKyAgICAgICAgKiBXZWJHUFUvU2hhZGVy
TW9kdWxlLm1tOgorICAgICAgICAoV2ViR1BVOjpTaGFkZXJNb2R1bGU6OmdldENvbXBpbGF0aW9u
SW5mbyk6CisKIDIwMjItMDMtMTUgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxl
LmNvbT4KIAogICAgICAgICBbV2ViR1BVXSBVcGRhdGUgV2ViR1BVIENvbW1hbmRMaW5lUGxheWdy
b3VuZCB0byBleGVjdXRlIGFzeW5jaHJvbm91cyB0YXNrcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAzM2E0ZjBjNmY0
ZTkyNTQxMjU1OWZkNDcyNWFhZGE5ZTc0OWVjOGEyLi4wYWJkYmQ3YmIxY2JiNDc1YmVlODM0MDcx
YjhiZTA3YzlmMWEzYmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDIyLTAzLTE1ICBN
eWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkdQ
VV0gTWlncmF0ZSBmcm9tIFdURjo6RnVuY3Rpb24gdG8gV1RGOjpDb21wbGV0aW9uSGFuZGxlcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3OTI1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVBZGFwdGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlQWRhcHRlcjo6cmVxdWVzdERldmljZSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlQWRhcHRlci5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhp
Y3MvV2ViR1BVL1JlbW90ZUJ1ZmZlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUJ1ZmZl
cjo6bWFwQXN5bmMpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90
ZUJ1ZmZlci5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZURl
dmljZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURldmljZTo6Y3JlYXRlQ29tcHV0ZVBp
cGVsaW5lQXN5bmMpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEZXZpY2U6OmNyZWF0ZVJlbmRl
clBpcGVsaW5lQXN5bmMpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVEZXZpY2U6OnBvcEVycm9y
U2NvcGUpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZURldmlj
ZS5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUdQVS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdQVTo6cmVxdWVzdEFkYXB0ZXIpOgorICAgICAgICAq
IEdQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUdQVS5oOgorICAgICAgICAqIEdQVVBy
b2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVF1ZXVlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlUXVldWU6Om9uU3VibWl0dGVkV29ya0RvbmUpOgorICAgICAgICAqIEdQVVByb2Nlc3Mv
Z3JhcGhpY3MvV2ViR1BVL1JlbW90ZVF1ZXVlLmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlU2hhZGVyTW9kdWxlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlU2hhZGVyTW9kdWxlOjpjb21waWxhdGlvbkluZm8pOgorICAgICAgICAqIEdQVVByb2Nlc3Mv
Z3JhcGhpY3MvV2ViR1BVL1JlbW90ZVNoYWRlck1vZHVsZS5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVBZGFwdGVyUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJHUFU6OlJlbW90ZUFkYXB0ZXJQcm94eTo6cmVxdWVzdERldmljZSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUFkYXB0ZXJQcm94eS5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCdWZmZXJQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6UmVtb3RlQnVmZmVyUHJveHk6Om1h
cEFzeW5jKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3Rl
QnVmZmVyUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUv
UmVtb3RlRGV2aWNlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlJlbW90ZURl
dmljZVByb3h5OjpjcmVhdGVDb21wdXRlUGlwZWxpbmVBc3luYyk6CisgICAgICAgIChXZWJLaXQ6
OldlYkdQVTo6UmVtb3RlRGV2aWNlUHJveHk6OmNyZWF0ZVJlbmRlclBpcGVsaW5lQXN5bmMpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlJlbW90ZURldmljZVByb3h5Ojpwb3BFcnJvclNjb3Bl
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlRGV2aWNl
UHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3Rl
R1BVUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHUFVQcm94eTo6cmVxdWVzdEFk
YXB0ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVH
UFVQcm94eS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVRdWV1ZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpSZW1vdGVRdWV1ZVBy
b3h5OjpvblN1Ym1pdHRlZFdvcmtEb25lKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlUXVldWVQcm94eS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVTaGFkZXJNb2R1bGVQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYkdQVTo6UmVtb3RlU2hhZGVyTW9kdWxlUHJveHk6OmNvbXBpbGF0aW9uSW5mbyk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVNoYWRlck1v
ZHVsZVByb3h5Lmg6CisKIDIwMjItMDMtMTUgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFw
cGxlLmNvbT4KIAogICAgICAgICBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5IG9taXRzIGNv
bnRleHQgbG9zdCBjaGVja3MgZm9yIGJhY2sgYW5kIGZyb250IGJ1ZmZlciBhY2Nlc3MgZnVuY3Rp
b25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9J
bXBsL1dlYkdQVUFkYXB0ZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhp
Y3MvV2ViR1BVL0ltcGwvV2ViR1BVQWRhcHRlckltcGwuY3BwCmluZGV4IGJmNzRkZTM2MGQxZjg1
OTllZmQ3ZDI2YTVlYTRjNDIxYTA2MmJiZDYuLmRmNWE5ZTI1ZTI5OTdiODdjOWE0ODEwMjM2ZTQw
MjE4MzA4ZGQ4OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3Mv
V2ViR1BVL0ltcGwvV2ViR1BVQWRhcHRlckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVQWRhcHRlckltcGwuY3BwCkBAIC0xNDYs
NyArMTQ2LDcgQEAgdm9pZCByZXF1ZXN0RGV2aWNlQ2FsbGJhY2soV0dQVVJlcXVlc3REZXZpY2VT
dGF0dXMgc3RhdHVzLCBXR1BVRGV2aWNlIGRldmljZSwgY28KICAgICBhZGFwdGVyLT5yZXF1ZXN0
RGV2aWNlQ2FsbGJhY2soc3RhdHVzLCBkZXZpY2UsIG1lc3NhZ2UpOwogfQogCi12b2lkIEFkYXB0
ZXJJbXBsOjpyZXF1ZXN0RGV2aWNlKGNvbnN0IERldmljZURlc2NyaXB0b3ImIGRlc2NyaXB0b3Is
IFdURjo6RnVuY3Rpb248dm9pZChSZWY8RGV2aWNlPiYmKT4mJiBjYWxsYmFjaykKK3ZvaWQgQWRh
cHRlckltcGw6OnJlcXVlc3REZXZpY2UoY29uc3QgRGV2aWNlRGVzY3JpcHRvciYgZGVzY3JpcHRv
ciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWY8RGV2aWNlPiYmKT4mJiBjYWxsYmFjaykKIHsK
ICAgICBSZWYgcHJvdGVjdGVkVGhpcygqdGhpcyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVQWRhcHRlckltcGwuaCBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVQWRhcHRlcklt
cGwuaAppbmRleCA5YjVlMjc1MGQxOGJhNDFkNWE4YWQ1YTI5ZDdlNDkzZWYwMzJmYWM4Li44NDFi
MmUxODNiYjUxNDRlOGMwZTk3OGViMDVhNzg5MzBlZTgxZGJhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVUFkYXB0ZXJJbXBsLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVB
ZGFwdGVySW1wbC5oCkBAIC01OSw5ICs1OSw5IEBAIHByaXZhdGU6CiAgICAgV0dQVUFkYXB0ZXIg
YmFja2luZygpIGNvbnN0IHsgcmV0dXJuIG1fYmFja2luZzsgfQogCiAgICAgdm9pZCByZXF1ZXN0
RGV2aWNlQ2FsbGJhY2soV0dQVVJlcXVlc3REZXZpY2VTdGF0dXMsIFdHUFVEZXZpY2UsIGNvbnN0
IGNoYXIqIG1lc3NhZ2UpOwotICAgIHZvaWQgcmVxdWVzdERldmljZShjb25zdCBEZXZpY2VEZXNj
cmlwdG9yJiwgV1RGOjpGdW5jdGlvbjx2b2lkKFJlZjxEZXZpY2U+JiYpPiYmKSBmaW5hbDsKKyAg
ICB2b2lkIHJlcXVlc3REZXZpY2UoY29uc3QgRGV2aWNlRGVzY3JpcHRvciYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoUmVmPERldmljZT4mJik+JiYpIGZpbmFsOwogCi0gICAgRGVxdWU8V1RGOjpG
dW5jdGlvbjx2b2lkKFJlZjxEZXZpY2U+JiYpPj4gbV9jYWxsYmFja3M7CisgICAgRGVxdWU8Q29t
cGxldGlvbkhhbmRsZXI8dm9pZChSZWY8RGV2aWNlPiYmKT4+IG1fY2FsbGJhY2tzOwogCiAgICAg
V0dQVUFkYXB0ZXIgbV9iYWNraW5nIHsgbnVsbHB0ciB9OwogICAgIFJlZjxDb252ZXJ0VG9CYWNr
aW5nQ29udGV4dD4gbV9jb252ZXJ0VG9CYWNraW5nQ29udGV4dDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVQnVmZmVySW1wbC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVUJ1
ZmZlckltcGwuY3BwCmluZGV4IDI4OWZjY2UxNjk2N2VmZGRlNzU1ODUzNTliNTljNGQzOTU0OTk0
MjQuLjJmOWJhN2E1Zjg4NWFhZWNmNGZiYzUzNzE5NzQ3NmIzZTE1NzA4ZmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVQnVmZmVy
SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvSW1w
bC9XZWJHUFVCdWZmZXJJbXBsLmNwcApAQCAtNTAsNyArNTAsNyBAQCB2b2lkIG1hcENhbGxiYWNr
KFdHUFVCdWZmZXJNYXBBc3luY1N0YXR1cyBzdGF0dXMsIHZvaWQqIHVzZXJkYXRhKQogICAgIGJ1
ZmZlci0+bWFwQ2FsbGJhY2soc3RhdHVzKTsKIH0KIAotdm9pZCBCdWZmZXJJbXBsOjptYXBBc3lu
YyhNYXBNb2RlRmxhZ3MgbWFwTW9kZUZsYWdzLCBTaXplNjQgb2Zmc2V0LCBzdGQ6Om9wdGlvbmFs
PFNpemU2ND4gc2l6ZSwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY2FsbGJhY2spCit2b2lkIEJ1
ZmZlckltcGw6Om1hcEFzeW5jKE1hcE1vZGVGbGFncyBtYXBNb2RlRmxhZ3MsIFNpemU2NCBvZmZz
ZXQsIHN0ZDo6b3B0aW9uYWw8U2l6ZTY0PiBzaXplLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYgY2FsbGJhY2spCiB7CiAgICAgUmVmIHByb3RlY3RlZFRoaXMoKnRoaXMpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVUJ1
ZmZlckltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwv
V2ViR1BVQnVmZmVySW1wbC5oCmluZGV4IGM3Y2I0MzE2NmMwMjgyZjZlMTBiZDQ0NjM5YzkyODcy
MjA3Mjg3NmIuLmRmYTllZmIyOWViODc3YzI4MjhiMWQ1NjlhNDE1ZGFkNmY4ZWE2MzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BV
QnVmZmVySW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BV
L0ltcGwvV2ViR1BVQnVmZmVySW1wbC5oCkBAIC01OSw3ICs1OSw3IEBAIHByaXZhdGU6CiAgICAg
V0dQVUJ1ZmZlciBiYWNraW5nKCkgY29uc3QgeyByZXR1cm4gbV9iYWNraW5nOyB9CiAKICAgICB2
b2lkIG1hcENhbGxiYWNrKFdHUFVCdWZmZXJNYXBBc3luY1N0YXR1cyk7Ci0gICAgdm9pZCBtYXBB
c3luYyhNYXBNb2RlRmxhZ3MsIFNpemU2NCBvZmZzZXQsIHN0ZDo6b3B0aW9uYWw8U2l6ZTY0PiBz
aXplRm9yTWFwLCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJikgZmluYWw7CisgICAgdm9pZCBtYXBB
c3luYyhNYXBNb2RlRmxhZ3MsIFNpemU2NCBvZmZzZXQsIHN0ZDo6b3B0aW9uYWw8U2l6ZTY0PiBz
aXplRm9yTWFwLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIGZpbmFsOwogICAgIE1hcHBl
ZFJhbmdlIGdldE1hcHBlZFJhbmdlKFNpemU2NCBvZmZzZXQsIHN0ZDo6b3B0aW9uYWw8U2l6ZTY0
PikgZmluYWw7CiAgICAgdm9pZCB1bm1hcCgpIGZpbmFsOwogCkBAIC02Nyw3ICs2Nyw3IEBAIHBy
aXZhdGU6CiAKICAgICB2b2lkIHNldExhYmVsSW50ZXJuYWwoY29uc3QgU3RyaW5nJikgZmluYWw7
CiAKLSAgICBEZXF1ZTxXVEY6OkZ1bmN0aW9uPHZvaWQoKT4+IG1fY2FsbGJhY2tzOworICAgIERl
cXVlPENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4+IG1fY2FsbGJhY2tzOwogCiAgICAgV0dQVUJ1
ZmZlciBtX2JhY2tpbmcgeyBudWxscHRyIH07CiAgICAgUmVmPENvbnZlcnRUb0JhY2tpbmdDb250
ZXh0PiBtX2NvbnZlcnRUb0JhY2tpbmdDb250ZXh0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVEZXZpY2VJbXBsLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVRGV2aWNlSW1w
bC5jcHAKaW5kZXggNWRhZDY2ODA4NTFhYmI4ZTRmMDMzY2NmNWY4Y2FjNTQzOTkxZWJhZC4uNzY4
MTcxOWYyZWVkODIwMmY4NTFkODE0YzNjYjgxMmMxZjk2NThmZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVEZXZpY2VJbXBsLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQ
VURldmljZUltcGwuY3BwCkBAIC01MTUsNyArNTE1LDcgQEAgdm9pZCBjcmVhdGVDb21wdXRlUGlw
ZWxpbmVBc3luY0NhbGxiYWNrKFdHUFVDcmVhdGVQaXBlbGluZUFzeW5jU3RhdHVzIHN0YXR1cywg
V0cKICAgICBkZXZpY2UtPmNyZWF0ZUNvbXB1dGVQaXBlbGluZUFzeW5jQ2FsbGJhY2soc3RhdHVz
LCBwaXBlbGluZSwgbWVzc2FnZSk7CiB9CiAKLXZvaWQgRGV2aWNlSW1wbDo6Y3JlYXRlQ29tcHV0
ZVBpcGVsaW5lQXN5bmMoY29uc3QgQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvciYgZGVzY3JpcHRv
ciwgV1RGOjpGdW5jdGlvbjx2b2lkKFJlZjxDb21wdXRlUGlwZWxpbmU+JiYpPiYmIGNhbGxiYWNr
KQordm9pZCBEZXZpY2VJbXBsOjpjcmVhdGVDb21wdXRlUGlwZWxpbmVBc3luYyhjb25zdCBDb21w
dXRlUGlwZWxpbmVEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFJlZjxDb21wdXRlUGlwZWxpbmU+JiYpPiYmIGNhbGxiYWNrKQogewogICAgIFJlZiBwcm90ZWN0
ZWRUaGlzKCp0aGlzKTsKIApAQCAtNTM5LDcgKzUzOSw3IEBAIHZvaWQgY3JlYXRlUmVuZGVyUGlw
ZWxpbmVBc3luY0NhbGxiYWNrKFdHUFVDcmVhdGVQaXBlbGluZUFzeW5jU3RhdHVzIHN0YXR1cywg
V0dQCiAgICAgZGV2aWNlLT5jcmVhdGVSZW5kZXJQaXBlbGluZUFzeW5jQ2FsbGJhY2soc3RhdHVz
LCBwaXBlbGluZSwgbWVzc2FnZSk7CiB9CiAKLXZvaWQgRGV2aWNlSW1wbDo6Y3JlYXRlUmVuZGVy
UGlwZWxpbmVBc3luYyhjb25zdCBSZW5kZXJQaXBlbGluZURlc2NyaXB0b3ImIGRlc2NyaXB0b3Is
IFdURjo6RnVuY3Rpb248dm9pZChSZWY8UmVuZGVyUGlwZWxpbmU+JiYpPiYmIGNhbGxiYWNrKQor
dm9pZCBEZXZpY2VJbXBsOjpjcmVhdGVSZW5kZXJQaXBlbGluZUFzeW5jKGNvbnN0IFJlbmRlclBp
cGVsaW5lRGVzY3JpcHRvciYgZGVzY3JpcHRvciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWY8
UmVuZGVyUGlwZWxpbmU+JiYpPiYmIGNhbGxiYWNrKQogewogICAgIFJlZiBwcm90ZWN0ZWRUaGlz
KCp0aGlzKTsKIApAQCAtNjE4LDcgKzYxOCw3IEBAIHZvaWQgcG9wRXJyb3JTY29wZUNhbGxiYWNr
KFdHUFVFcnJvclR5cGUgdHlwZSwgY29uc3QgY2hhciogbWVzc2FnZSwgdm9pZCogdXNlcmRhCiAg
ICAgZGV2aWNlLT5wb3BFcnJvclNjb3BlQ2FsbGJhY2sodHlwZSwgbWVzc2FnZSk7CiB9CiAKLXZv
aWQgRGV2aWNlSW1wbDo6cG9wRXJyb3JTY29wZShXVEY6OkZ1bmN0aW9uPHZvaWQoc3RkOjpvcHRp
b25hbDxFcnJvcj4mJik+JiYgY2FsbGJhY2spCit2b2lkIERldmljZUltcGw6OnBvcEVycm9yU2Nv
cGUoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPEVycm9yPiYmKT4mJiBjYWxs
YmFjaykKIHsKICAgICBSZWYgcHJvdGVjdGVkVGhpcygqdGhpcyk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVRGV2aWNlSW1w
bC5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVE
ZXZpY2VJbXBsLmgKaW5kZXggMTM4YzVmYjBjM2MxMTEwNjUzOGNhNTExMzkwYjE5ODFiNzg1NTRk
MC4uMjE0NDk3YzIzN2ZmNjA2NWU4YTRkZTVkMzVjN2I1NmI0YTAwNzRiYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVEZXZpY2VJ
bXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9X
ZWJHUFVEZXZpY2VJbXBsLmgKQEAgLTc1LDkgKzc1LDkgQEAgcHJpdmF0ZToKICAgICBSZWY8Q29t
cHV0ZVBpcGVsaW5lPiBjcmVhdGVDb21wdXRlUGlwZWxpbmUoY29uc3QgQ29tcHV0ZVBpcGVsaW5l
RGVzY3JpcHRvciYpIGZpbmFsOwogICAgIFJlZjxSZW5kZXJQaXBlbGluZT4gY3JlYXRlUmVuZGVy
UGlwZWxpbmUoY29uc3QgUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yJikgZmluYWw7CiAgICAgdm9p
ZCBjcmVhdGVDb21wdXRlUGlwZWxpbmVBc3luY0NhbGxiYWNrKFdHUFVDcmVhdGVQaXBlbGluZUFz
eW5jU3RhdHVzLCBXR1BVQ29tcHV0ZVBpcGVsaW5lLCBjb25zdCBjaGFyKiBtZXNzYWdlKTsKLSAg
ICB2b2lkIGNyZWF0ZUNvbXB1dGVQaXBlbGluZUFzeW5jKGNvbnN0IENvbXB1dGVQaXBlbGluZURl
c2NyaXB0b3ImLCBXVEY6OkZ1bmN0aW9uPHZvaWQoUmVmPENvbXB1dGVQaXBlbGluZT4mJik+JiYp
IGZpbmFsOworICAgIHZvaWQgY3JlYXRlQ29tcHV0ZVBpcGVsaW5lQXN5bmMoY29uc3QgQ29tcHV0
ZVBpcGVsaW5lRGVzY3JpcHRvciYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmPENvbXB1dGVQ
aXBlbGluZT4mJik+JiYpIGZpbmFsOwogICAgIHZvaWQgY3JlYXRlUmVuZGVyUGlwZWxpbmVBc3lu
Y0NhbGxiYWNrKFdHUFVDcmVhdGVQaXBlbGluZUFzeW5jU3RhdHVzLCBXR1BVUmVuZGVyUGlwZWxp
bmUsIGNvbnN0IGNoYXIqIG1lc3NhZ2UpOwotICAgIHZvaWQgY3JlYXRlUmVuZGVyUGlwZWxpbmVB
c3luYyhjb25zdCBSZW5kZXJQaXBlbGluZURlc2NyaXB0b3ImLCBXVEY6OkZ1bmN0aW9uPHZvaWQo
UmVmPFJlbmRlclBpcGVsaW5lPiYmKT4mJikgZmluYWw7CisgICAgdm9pZCBjcmVhdGVSZW5kZXJQ
aXBlbGluZUFzeW5jKGNvbnN0IFJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoUmVmPFJlbmRlclBpcGVsaW5lPiYmKT4mJikgZmluYWw7CiAKICAgICBSZWY8
Q29tbWFuZEVuY29kZXI+IGNyZWF0ZUNvbW1hbmRFbmNvZGVyKGNvbnN0IHN0ZDo6b3B0aW9uYWw8
Q29tbWFuZEVuY29kZXJEZXNjcmlwdG9yPiYpIGZpbmFsOwogICAgIFJlZjxSZW5kZXJCdW5kbGVF
bmNvZGVyPiBjcmVhdGVSZW5kZXJCdW5kbGVFbmNvZGVyKGNvbnN0IFJlbmRlckJ1bmRsZUVuY29k
ZXJEZXNjcmlwdG9yJikgZmluYWw7CkBAIC04NiwxMyArODYsMTMgQEAgcHJpdmF0ZToKIAogICAg
IHZvaWQgcHVzaEVycm9yU2NvcGUoRXJyb3JGaWx0ZXIpIGZpbmFsOwogICAgIHZvaWQgcG9wRXJy
b3JTY29wZUNhbGxiYWNrKFdHUFVFcnJvclR5cGUsIGNvbnN0IGNoYXIqIG1lc3NhZ2UpOwotICAg
IHZvaWQgcG9wRXJyb3JTY29wZShXVEY6OkZ1bmN0aW9uPHZvaWQoc3RkOjpvcHRpb25hbDxFcnJv
cj4mJik+JiYpIGZpbmFsOworICAgIHZvaWQgcG9wRXJyb3JTY29wZShDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKHN0ZDo6b3B0aW9uYWw8RXJyb3I+JiYpPiYmKSBmaW5hbDsKIAogICAgIHZvaWQgc2V0
TGFiZWxJbnRlcm5hbChjb25zdCBTdHJpbmcmKSBmaW5hbDsKIAotICAgIERlcXVlPFdURjo6RnVu
Y3Rpb248dm9pZChSZWY8Q29tcHV0ZVBpcGVsaW5lPiYmKT4+IG1fY3JlYXRlQ29tcHV0ZVBpcGVs
aW5lQXN5bmNDYWxsYmFja3M7Ci0gICAgRGVxdWU8V1RGOjpGdW5jdGlvbjx2b2lkKFJlZjxSZW5k
ZXJQaXBlbGluZT4mJik+PiBtX2NyZWF0ZVJlbmRlclBpcGVsaW5lQXN5bmNDYWxsYmFja3M7Ci0g
ICAgRGVxdWU8V1RGOjpGdW5jdGlvbjx2b2lkKHN0ZDo6b3B0aW9uYWw8RXJyb3I+JiYpPj4gbV9w
b3BFcnJvclNjb3BlQ2FsbGJhY2tzOworICAgIERlcXVlPENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
UmVmPENvbXB1dGVQaXBlbGluZT4mJik+PiBtX2NyZWF0ZUNvbXB1dGVQaXBlbGluZUFzeW5jQ2Fs
bGJhY2tzOworICAgIERlcXVlPENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmPFJlbmRlclBpcGVs
aW5lPiYmKT4+IG1fY3JlYXRlUmVuZGVyUGlwZWxpbmVBc3luY0NhbGxiYWNrczsKKyAgICBEZXF1
ZTxDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8RXJyb3I+JiYpPj4gbV9wb3BF
cnJvclNjb3BlQ2FsbGJhY2tzOwogCiAgICAgV0dQVURldmljZSBtX2JhY2tpbmcgeyBudWxscHRy
IH07CiAgICAgUmVmPENvbnZlcnRUb0JhY2tpbmdDb250ZXh0PiBtX2NvbnZlcnRUb0JhY2tpbmdD
b250ZXh0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJH
UFUvSW1wbC9XZWJHUFVJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3Mv
V2ViR1BVL0ltcGwvV2ViR1BVSW1wbC5jcHAKaW5kZXggMjE4ZThmNjNlNmE0YTFlNTc5ZDUxYjEz
M2FhMGZkODk3MDk2OWVkNC4uYzAwZGVjNjYzNzE4YzM0ZmNkYjZiYmYxOGE3ZGMzYTA3YjcxMjAy
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvSW1w
bC9XZWJHUFVJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dl
YkdQVS9JbXBsL1dlYkdQVUltcGwuY3BwCkBAIC04Miw3ICs4Miw3IEBAIHZvaWQgcmVxdWVzdEFk
YXB0ZXJDYWxsYmFjayhXR1BVUmVxdWVzdEFkYXB0ZXJTdGF0dXMgc3RhdHVzLCBXR1BVQWRhcHRl
ciBhZGFwdGVyCiAgICAgZ3B1LT5yZXF1ZXN0QWRhcHRlckNhbGxiYWNrKHN0YXR1cywgYWRhcHRl
ciwgbWVzc2FnZSk7CiB9CiAKLXZvaWQgR1BVSW1wbDo6cmVxdWVzdEFkYXB0ZXIoY29uc3QgUmVx
dWVzdEFkYXB0ZXJPcHRpb25zJiBvcHRpb25zLCBXVEY6OkZ1bmN0aW9uPHZvaWQoUmVmUHRyPEFk
YXB0ZXI+JiYpPiYmIGNhbGxiYWNrKQordm9pZCBHUFVJbXBsOjpyZXF1ZXN0QWRhcHRlcihjb25z
dCBSZXF1ZXN0QWRhcHRlck9wdGlvbnMmIG9wdGlvbnMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
UmVmUHRyPEFkYXB0ZXI+JiYpPiYmIGNhbGxiYWNrKQogewogICAgIFJlZiBwcm90ZWN0ZWRUaGlz
KCp0aGlzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9X
ZWJHUFUvSW1wbC9XZWJHUFVJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNz
L1dlYkdQVS9JbXBsL1dlYkdQVUltcGwuaAppbmRleCBhYzE4MzM2YTM4NzYzODljM2JlNmE1YjFj
Yjk4OWRiMWI0YzNlZWJiLi5jMmZjN2IxZjA5YjhmMmQ3ODM0NDMxMGRjZTExZDljYzQ4MmZjMmFl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBs
L1dlYkdQVUltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQ
VS9JbXBsL1dlYkdQVUltcGwuaApAQCAtMjksNyArMjksNyBAQAogCiAjaW5jbHVkZSAiV2ViR1BV
LmgiCiAjaW5jbHVkZSA8V2ViR1BVL1dlYkdQVS5oPgotI2luY2x1ZGUgPGZ1bmN0aW9uYWw+Cisj
aW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+
CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAKQEAgLTQwLDcgKzQwLDcgQEAgY2xhc3MgQ29u
dmVydFRvQmFja2luZ0NvbnRleHQ7CiBjbGFzcyBHUFVJbXBsIGZpbmFsIDogcHVibGljIEdQVSB7
CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgdXNpbmcgV29ya0l0
ZW0gPSBGdW5jdGlvbjx2b2lkKHZvaWQpPjsKKyAgICB1c2luZyBXb3JrSXRlbSA9IENvbXBsZXRp
b25IYW5kbGVyPHZvaWQodm9pZCk+OwogICAgIHVzaW5nIFNjaGVkdWxlV29ya0Z1bmN0aW9uID0g
RnVuY3Rpb248dm9pZChXb3JrSXRlbSYmKT47CiAgICAgUEFMX0VYUE9SVCBzdGF0aWMgUmVmUHRy
PEdQVUltcGw+IGNyZWF0ZShTY2hlZHVsZVdvcmtGdW5jdGlvbiYmKTsKIApAQCAtNjUsOSArNjUs
OSBAQCBwcml2YXRlOgogICAgIFdHUFVJbnN0YW5jZSBiYWNraW5nKCkgY29uc3QgeyByZXR1cm4g
bV9iYWNraW5nOyB9CiAKICAgICB2b2lkIHJlcXVlc3RBZGFwdGVyQ2FsbGJhY2soV0dQVVJlcXVl
c3RBZGFwdGVyU3RhdHVzLCBXR1BVQWRhcHRlciwgY29uc3QgY2hhciogbWVzc2FnZSk7Ci0gICAg
dm9pZCByZXF1ZXN0QWRhcHRlcihjb25zdCBSZXF1ZXN0QWRhcHRlck9wdGlvbnMmLCBXVEY6OkZ1
bmN0aW9uPHZvaWQoUmVmUHRyPEFkYXB0ZXI+JiYpPiYmKSBmaW5hbDsKKyAgICB2b2lkIHJlcXVl
c3RBZGFwdGVyKGNvbnN0IFJlcXVlc3RBZGFwdGVyT3B0aW9ucyYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoUmVmUHRyPEFkYXB0ZXI+JiYpPiYmKSBmaW5hbDsKIAotICAgIERlcXVlPFdURjo6RnVu
Y3Rpb248dm9pZChSZWZQdHI8QWRhcHRlcj4mJik+PiBtX2NhbGxiYWNrczsKKyAgICBEZXF1ZTxD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxBZGFwdGVyPiYmKT4+IG1fY2FsbGJhY2tzOwog
CiAgICAgV0dQVUluc3RhbmNlIG1fYmFja2luZyB7IG51bGxwdHIgfTsKICAgICBSZWY8Q29udmVy
dFRvQmFja2luZ0NvbnRleHQ+IG1fY29udmVydFRvQmFja2luZ0NvbnRleHQ7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVVF1ZXVl
SW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dl
YkdQVVF1ZXVlSW1wbC5jcHAKaW5kZXggNjM5ZmE0YWJlNjZkYmQxM2RkZjhjNDQ1NGYzOGYwNjNm
YzU1MTkwOC4uNjM0ODk0MTA4YTY1ZjUwZDFmZTUyNmYyZGJiNmFmZWU4NWE4MDBjMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVR
dWV1ZUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BV
L0ltcGwvV2ViR1BVUXVldWVJbXBsLmNwcApAQCAtNjIsNyArNjIsNyBAQCB2b2lkIG9uU3VibWl0
dGVkV29ya0RvbmVDYWxsYmFjayhXR1BVUXVldWVXb3JrRG9uZVN0YXR1cyBzdGF0dXMsIHZvaWQq
IHVzZXJkYXRhKQogICAgIHF1ZXVlLT5vblN1Ym1pdHRlZFdvcmtEb25lQ2FsbGJhY2soc3RhdHVz
KTsKIH0KIAotdm9pZCBRdWV1ZUltcGw6Om9uU3VibWl0dGVkV29ya0RvbmUoV1RGOjpGdW5jdGlv
bjx2b2lkKCk+JiYgY2FsbGJhY2spCit2b2lkIFF1ZXVlSW1wbDo6b25TdWJtaXR0ZWRXb3JrRG9u
ZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY2FsbGJhY2spCiB7CiAgICAgUmVmIHByb3Rl
Y3RlZFRoaXMoKnRoaXMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dy
YXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVVF1ZXVlSW1wbC5oIGIvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVRdWV1ZUltcGwuaAppbmRleCA5N2JhZjBh
MjQ5OWZkOWI0M2ViMGVlMmZlNzdjZWUzNTlkMDgzMzc2Li5lMjc4ZmUzNDVlYTRiMGVkODUzNThk
ZDBkZTUyYTZjNDQ2NTVmNzJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dy
YXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVVF1ZXVlSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVUXVldWVJbXBsLmgKQEAgLTYxLDcg
KzYxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHN1Ym1pdChWZWN0b3I8c3RkOjpyZWZlcmVuY2Vf
d3JhcHBlcjxDb21tYW5kQnVmZmVyPj4mJikgZmluYWw7CiAKICAgICB2b2lkIG9uU3VibWl0dGVk
V29ya0RvbmVDYWxsYmFjayhXR1BVUXVldWVXb3JrRG9uZVN0YXR1cyk7Ci0gICAgdm9pZCBvblN1
Ym1pdHRlZFdvcmtEb25lKFdURjo6RnVuY3Rpb248dm9pZCgpPiYmKSBmaW5hbDsKKyAgICB2b2lk
IG9uU3VibWl0dGVkV29ya0RvbmUoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5hbDsK
IAogICAgIHZvaWQgd3JpdGVCdWZmZXIoCiAgICAgICAgIGNvbnN0IEJ1ZmZlciYsCkBAIC04Nyw3
ICs4Nyw3IEBAIHByaXZhdGU6CiAKICAgICB1aW50NjRfdCBtX3NpZ25hbFZhbHVlIHsgMSB9Owog
Ci0gICAgRGVxdWU8V1RGOjpGdW5jdGlvbjx2b2lkKCk+PiBtX2NhbGxiYWNrczsKKyAgICBEZXF1
ZTxDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+PiBtX2NhbGxiYWNrczsKIAogICAgIFdHUFVRdWV1
ZSBtX2JhY2tpbmcgeyBudWxscHRyIH07CiAgICAgUmVmPENvbnZlcnRUb0JhY2tpbmdDb250ZXh0
PiBtX2NvbnZlcnRUb0JhY2tpbmdDb250ZXh0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVTaGFkZXJNb2R1bGVJbXBsLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVU2hhZGVy
TW9kdWxlSW1wbC5jcHAKaW5kZXggYjdjNmQyNWMwZWM5ZWM1MDM0ODE4MzNmM2MxN2FjZGZlOTIz
ZTllOS4uMTM4ZjQ2YmEzMTAzOGI5N2JkMTlmZWNhNWM5ZDZhNmE1YTMxYTY1OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVTaGFk
ZXJNb2R1bGVJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dl
YkdQVS9JbXBsL1dlYkdQVVNoYWRlck1vZHVsZUltcGwuY3BwCkBAIC00NCw3ICs0NCw3IEBAIFNo
YWRlck1vZHVsZUltcGw6On5TaGFkZXJNb2R1bGVJbXBsKCkKICAgICB3Z3B1U2hhZGVyTW9kdWxl
UmVsZWFzZShtX2JhY2tpbmcpOwogfQogCi12b2lkIFNoYWRlck1vZHVsZUltcGw6OmNvbXBpbGF0
aW9uSW5mbyhXVEY6OkZ1bmN0aW9uPHZvaWQoUmVmPENvbXBpbGF0aW9uSW5mbz4mJik+JiYpCit2
b2lkIFNoYWRlck1vZHVsZUltcGw6OmNvbXBpbGF0aW9uSW5mbyhDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFJlZjxDb21waWxhdGlvbkluZm8+JiYpPiYmKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVVNoYWRlck1vZHVs
ZUltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2Vi
R1BVU2hhZGVyTW9kdWxlSW1wbC5oCmluZGV4IDM0YmUxZmU0NGJmYTgxYmQ2OWE1YmFmNTBjMWVi
NmE1ZDQyZGRlMTguLjhjMDYzNjU4MjIwOTJjZmJjMzY3MTcwNzE0YTgwYmM2M2RkNGEzMTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2Vi
R1BVU2hhZGVyTW9kdWxlSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhp
Y3MvV2ViR1BVL0ltcGwvV2ViR1BVU2hhZGVyTW9kdWxlSW1wbC5oCkBAIC01Niw3ICs1Niw3IEBA
IHByaXZhdGU6CiAKICAgICBXR1BVU2hhZGVyTW9kdWxlIGJhY2tpbmcoKSBjb25zdCB7IHJldHVy
biBtX2JhY2tpbmc7IH0KIAotICAgIHZvaWQgY29tcGlsYXRpb25JbmZvKFdURjo6RnVuY3Rpb248
dm9pZChSZWY8Q29tcGlsYXRpb25JbmZvPiYmKT4mJikgZmluYWw7CisgICAgdm9pZCBjb21waWxh
dGlvbkluZm8oQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWY8Q29tcGlsYXRpb25JbmZvPiYmKT4m
JikgZmluYWw7CiAKICAgICB2b2lkIHNldExhYmVsSW50ZXJuYWwoY29uc3QgU3RyaW5nJikgZmlu
YWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BV
L1dlYkdQVS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
LmgKaW5kZXggNjAxZDRmZjZjMjNiNzNkZWJiZTEwMTRkYjM1OGI5MjZjNzI0OGRjNS4uMzA3NGQx
YTFlNmRiMmZkNjg2ZTM2ZjEwZmY1NTNhNzc2NDM4NzRlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVLmgKQEAgLTI3LDcgKzI3LDcgQEAKIAog
I2luY2x1ZGUgIldlYkdQVVJlcXVlc3RBZGFwdGVyT3B0aW9ucy5oIgogI2luY2x1ZGUgPG9wdGlv
bmFsPgotI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9u
SGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
ZlB0ci5oPgogCkBAIC0zOSw3ICszOSw3IEBAIGNsYXNzIEdQVSA6IHB1YmxpYyBSZWZDb3VudGVk
PEdQVT4gewogcHVibGljOgogICAgIHZpcnR1YWwgfkdQVSgpID0gZGVmYXVsdDsKIAotICAgIHZp
cnR1YWwgdm9pZCByZXF1ZXN0QWRhcHRlcihjb25zdCBSZXF1ZXN0QWRhcHRlck9wdGlvbnMmLCBX
VEY6OkZ1bmN0aW9uPHZvaWQoUmVmUHRyPEFkYXB0ZXI+JiYpPiYmKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIHJlcXVlc3RBZGFwdGVyKGNvbnN0IFJlcXVlc3RBZGFwdGVyT3B0aW9ucyYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPEFkYXB0ZXI+JiYpPiYmKSA9IDA7CiAKIHByb3RlY3Rl
ZDoKICAgICBHUFUoKSA9IGRlZmF1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVBZGFwdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVBZGFwdGVyLmgKaW5kZXggNTA3YzRhYWM0NzZkODFi
ZTM1MjlhMzhiODkxNjU2MTVlMDg2NGRlYi4uNzJiNzY2NjA5MTE0M2E0YzczMGM3Njk0NmZmZWFl
ZDY5MDczMTk3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVQWRhcHRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhp
Y3MvV2ViR1BVL1dlYkdQVUFkYXB0ZXIuaApAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgIldl
YkdQVVN1cHBvcnRlZEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiV2ViR1BVU3VwcG9ydGVkTGltaXRz
LmgiCiAjaW5jbHVkZSA8b3B0aW9uYWw+Ci0jaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CisjaW5j
bHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICBTdXBwb3J0ZWRMaW1pdHMmIGxpbWl0cygp
IGNvbnN0IHsgcmV0dXJuIG1fbGltaXRzOyB9CiAgICAgYm9vbCBpc0ZhbGxiYWNrQWRhcHRlcigp
IGNvbnN0IHsgcmV0dXJuIG1faXNGYWxsYmFja0FkYXB0ZXI7IH0KIAotICAgIHZpcnR1YWwgdm9p
ZCByZXF1ZXN0RGV2aWNlKGNvbnN0IERldmljZURlc2NyaXB0b3ImLCBXVEY6OkZ1bmN0aW9uPHZv
aWQoUmVmPERldmljZT4mJik+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdERldmlj
ZShjb25zdCBEZXZpY2VEZXNjcmlwdG9yJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWY8RGV2
aWNlPiYmKT4mJikgPSAwOwogCiBwcm90ZWN0ZWQ6CiAgICAgQWRhcHRlcihTdHJpbmcmJiBuYW1l
LCBTdXBwb3J0ZWRGZWF0dXJlcyYgZmVhdHVyZXMsIFN1cHBvcnRlZExpbWl0cyYgbGltaXRzLCBi
b29sIGlzRmFsbGJhY2tBZGFwdGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVCdWZmZXIuaAppbmRleCA2YzVlYmNhZmE4YjE1MWE0MmNm
MjAxNzVkNThlZjU4NzViMGFkZjAzLi4wM2MyMzFhYmI0YzUzZDU2YjlhYWY4ZTVkYmU3MmVhYzY2
MDhlNzAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVCdWZmZXIuaApAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgIldlYkdQVU1h
cE1vZGUuaCIKICNpbmNsdWRlIDxjc3RkaW50PgogI2luY2x1ZGUgPG9wdGlvbmFsPgotI2luY2x1
ZGUgPHd0Zi9GdW5jdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgog
I2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIHNldExhYmVsSW50ZXJuYWwobV9sYWJlbCk7CiAgICAgfQogCi0gICAgdmlydHVhbCB2b2lk
IG1hcEFzeW5jKE1hcE1vZGVGbGFncywgU2l6ZTY0IG9mZnNldCwgc3RkOjpvcHRpb25hbDxTaXpl
NjQ+LCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBtYXBB
c3luYyhNYXBNb2RlRmxhZ3MsIFNpemU2NCBvZmZzZXQsIHN0ZDo6b3B0aW9uYWw8U2l6ZTY0Piwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSA9IDA7CiAgICAgc3RydWN0IE1hcHBlZFJhbmdl
IHsKICAgICAgICAgdm9pZCogc291cmNlIHsgbnVsbHB0ciB9OwogICAgICAgICBzaXplX3QgYnl0
ZUxlbmd0aCB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhp
Y3MvV2ViR1BVL1dlYkdQVURldmljZS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGlj
cy9XZWJHUFUvV2ViR1BVRGV2aWNlLmgKaW5kZXggNGM2NjI5OWM2OWJjZWM4MTkzMGEwNmE0NmZi
ZGVlZGNkNmFkNjRkZi4uNjdmYmJhYjE4YzgzNWRiOGVkMDA2ZDQxNmY1YmM3MDkxMDI0MWZlYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BV
RGV2aWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2Vi
R1BVRGV2aWNlLmgKQEAgLTMzLDcgKzMzLDcgQEAKICNpbmNsdWRlICJXZWJHUFVTdXBwb3J0ZWRG
ZWF0dXJlcy5oIgogI2luY2x1ZGUgIldlYkdQVVN1cHBvcnRlZExpbWl0cy5oIgogI2luY2x1ZGUg
PG9wdGlvbmFsPgotI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9Db21w
bGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZi5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtMTAwLDggKzEwMCw4
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFJlZjxTaGFkZXJNb2R1bGU+IGNyZWF0ZVNoYWRlck1v
ZHVsZShjb25zdCBTaGFkZXJNb2R1bGVEZXNjcmlwdG9yJikgPSAwOwogICAgIHZpcnR1YWwgUmVm
PENvbXB1dGVQaXBlbGluZT4gY3JlYXRlQ29tcHV0ZVBpcGVsaW5lKGNvbnN0IENvbXB1dGVQaXBl
bGluZURlc2NyaXB0b3ImKSA9IDA7CiAgICAgdmlydHVhbCBSZWY8UmVuZGVyUGlwZWxpbmU+IGNy
ZWF0ZVJlbmRlclBpcGVsaW5lKGNvbnN0IFJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciYpID0gMDsK
LSAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlQ29tcHV0ZVBpcGVsaW5lQXN5bmMoY29uc3QgQ29tcHV0
ZVBpcGVsaW5lRGVzY3JpcHRvciYsIFdURjo6RnVuY3Rpb248dm9pZChSZWY8Q29tcHV0ZVBpcGVs
aW5lPiYmKT4mJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVSZW5kZXJQaXBlbGluZUFz
eW5jKGNvbnN0IFJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciYsIFdURjo6RnVuY3Rpb248dm9pZChS
ZWY8UmVuZGVyUGlwZWxpbmU+JiYpPiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNyZWF0ZUNv
bXB1dGVQaXBlbGluZUFzeW5jKGNvbnN0IENvbXB1dGVQaXBlbGluZURlc2NyaXB0b3ImLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFJlZjxDb21wdXRlUGlwZWxpbmU+JiYpPiYmKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGNyZWF0ZVJlbmRlclBpcGVsaW5lQXN5bmMoY29uc3QgUmVuZGVyUGlwZWxp
bmVEZXNjcmlwdG9yJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWY8UmVuZGVyUGlwZWxpbmU+
JiYpPiYmKSA9IDA7CiAKICAgICB2aXJ0dWFsIFJlZjxDb21tYW5kRW5jb2Rlcj4gY3JlYXRlQ29t
bWFuZEVuY29kZXIoY29uc3Qgc3RkOjpvcHRpb25hbDxDb21tYW5kRW5jb2RlckRlc2NyaXB0b3I+
JikgPSAwOwogICAgIHZpcnR1YWwgUmVmPFJlbmRlckJ1bmRsZUVuY29kZXI+IGNyZWF0ZVJlbmRl
ckJ1bmRsZUVuY29kZXIoY29uc3QgUmVuZGVyQnVuZGxlRW5jb2RlckRlc2NyaXB0b3ImKSA9IDA7
CkBAIC0xMDksNyArMTA5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgUmVmPFF1ZXJ5U2V0PiBj
cmVhdGVRdWVyeVNldChjb25zdCBRdWVyeVNldERlc2NyaXB0b3ImKSA9IDA7CiAKICAgICB2aXJ0
dWFsIHZvaWQgcHVzaEVycm9yU2NvcGUoRXJyb3JGaWx0ZXIpID0gMDsKLSAgICB2aXJ0dWFsIHZv
aWQgcG9wRXJyb3JTY29wZShXVEY6OkZ1bmN0aW9uPHZvaWQoc3RkOjpvcHRpb25hbDxFcnJvcj4m
Jik+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcG9wRXJyb3JTY29wZShDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8RXJyb3I+JiYpPiYmKSA9IDA7CiAKICAgICBjbGFzcyBE
ZXZpY2VMb3N0Q2xpZW50IHsKICAgICAgICAgdmlydHVhbCB+RGV2aWNlTG9zdENsaWVudCgpID0g
ZGVmYXVsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2Vi
R1BVL1dlYkdQVVF1ZXVlLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVRdWV1ZS5oCmluZGV4IDU1MWRhMGUyYjA4NjYzOTcyMGIxMmI5NTY4NTE0ZTc5OThk
NTJiYTcuLmNlZTUwN2E4ODJkMmU5M2VlOGM4MjllZjE0M2M1MjJkYzU3ZTJmMjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVF1ZXVlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUXVldWUu
aApAQCAtMzUsNyArMzUsNyBAQAogI2luY2x1ZGUgPGNzdGRpbnQ+CiAjaW5jbHVkZSA8ZnVuY3Rp
b25hbD4KICNpbmNsdWRlIDxvcHRpb25hbD4KLSNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KKyNp
bmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC01
OSw3ICs1OSw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBzdWJtaXQoVmVjdG9yPHN0
ZDo6cmVmZXJlbmNlX3dyYXBwZXI8Q29tbWFuZEJ1ZmZlcj4+JiYpID0gMDsKIAotICAgIHZpcnR1
YWwgdm9pZCBvblN1Ym1pdHRlZFdvcmtEb25lKFdURjo6RnVuY3Rpb248dm9pZCgpPiYmKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIG9uU3VibWl0dGVkV29ya0RvbmUoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgd3JpdGVCdWZmZXIoCiAgICAgICAg
IGNvbnN0IEJ1ZmZlciYsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBo
aWNzL1dlYkdQVS9XZWJHUFVTaGFkZXJNb2R1bGUuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVVNoYWRlck1vZHVsZS5oCmluZGV4IDY5YzlkYTcyM2MyZmMw
NmYzODAwMGRmMzFkYTI0NzUzOWU3ZTRhMTguLmQzYzY5Y2JhZmQ1ODk3NjU3YTg2MzRjODkyNTAx
ZWFhNmU1MDVjYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVVNoYWRlck1vZHVsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVVNoYWRlck1vZHVsZS5oCkBAIC0yNiw3ICsyNiw3IEBACiAj
cHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIldlYkdQVUJpbmRHcm91cExheW91dC5oIgotI2luY2x1
ZGUgPHd0Zi9GdW5jdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgog
I2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIHNldExhYmVsSW50ZXJuYWwobV9sYWJlbCk7CiAgICAgfQogCi0gICAgdmlydHVhbCB2b2lk
IGNvbXBpbGF0aW9uSW5mbyhXVEY6OkZ1bmN0aW9uPHZvaWQoUmVmPENvbXBpbGF0aW9uSW5mbz4m
Jik+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY29tcGlsYXRpb25JbmZvKENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoUmVmPENvbXBpbGF0aW9uSW5mbz4mJik+JiYpID0gMDsKIAogcHJvdGVjdGVk
OgogICAgIFNoYWRlck1vZHVsZSgpID0gZGVmYXVsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJH
UFUvV2ViR1BVL0FkYXB0ZXIuaCBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0FkYXB0ZXIuaAppbmRl
eCBlN2M1YWE2ZWUxMDVmNTM1MjdjY2U2Y2Y3NWY2MjQyYmU2OGY1MWIxLi4xYWRhOTVmYmM0YTk0
ZDNlNTg3YWVmOTMwNTk3NzYzYjAyNzZjZmNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dl
YkdQVS9BZGFwdGVyLmgKKysrIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvQWRhcHRlci5oCkBAIC0y
NSw4ICsyNSw4IEBACiAKICNwcmFnbWEgb25jZQogCisjaW1wb3J0IDx3dGYvQ29tcGxldGlvbkhh
bmRsZXIuaD4KICNpbXBvcnQgPHd0Zi9GYXN0TWFsbG9jLmg+Ci0jaW1wb3J0IDx3dGYvRnVuY3Rp
b24uaD4KICNpbXBvcnQgPHd0Zi9SZWYuaD4KICNpbXBvcnQgPHd0Zi9SZWZDb3VudGVkLmg+CiAj
aW1wb3J0IDx3dGYvUmVmUHRyLmg+CkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKICAgICBib29s
IGdldExpbWl0cyhXR1BVU3VwcG9ydGVkTGltaXRzJik7CiAgICAgdm9pZCBnZXRQcm9wZXJ0aWVz
KFdHUFVBZGFwdGVyUHJvcGVydGllcyYpOwogICAgIGJvb2wgaGFzRmVhdHVyZShXR1BVRmVhdHVy
ZU5hbWUpOwotICAgIHZvaWQgcmVxdWVzdERldmljZShjb25zdCBXR1BVRGV2aWNlRGVzY3JpcHRv
ciYsIFdURjo6RnVuY3Rpb248dm9pZChXR1BVUmVxdWVzdERldmljZVN0YXR1cywgUmVmUHRyPERl
dmljZT4mJiwgY29uc3QgY2hhciopPiYmIGNhbGxiYWNrKTsKKyAgICB2b2lkIHJlcXVlc3REZXZp
Y2UoY29uc3QgV0dQVURldmljZURlc2NyaXB0b3ImLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdH
UFVSZXF1ZXN0RGV2aWNlU3RhdHVzLCBSZWZQdHI8RGV2aWNlPiYmLCBjb25zdCBjaGFyKik+JiYg
Y2FsbGJhY2spOwogCiBwcml2YXRlOgogICAgIEFkYXB0ZXIoaWQ8TVRMRGV2aWNlPik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9BZGFwdGVyLm1tIGIvU291cmNlL1dlYkdQVS9X
ZWJHUFUvQWRhcHRlci5tbQppbmRleCBiYTRkMDc5YTRlYWUzNzM5NmNkM2I5NWM5OWUwMzIyYTk1
MGVmZmM2Li5mOWI5NGY3MmEwNTk0ODYxNjBlNTRhZThiZGY0ODFiYmE2MTY0MjQxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9BZGFwdGVyLm1tCisrKyBiL1NvdXJjZS9XZWJHUFUv
V2ViR1BVL0FkYXB0ZXIubW0KQEAgLTEwMyw3ICsxMDMsNyBAQCBzdGF0aWMgYm9vbCBkZXZpY2VN
ZWV0c1JlcXVpcmVkTGltaXRzKGlkPE1UTERldmljZT4sIGNvbnN0IFdHUFVSZXF1aXJlZExpbWl0
cyYgcgogICAgICAgICAmJiAhcmVxdWlyZWRMaW1pdHMubGltaXRzLm1heENvbXB1dGVXb3JrZ3Jv
dXBzUGVyRGltZW5zaW9uOwogfQogCi12b2lkIEFkYXB0ZXI6OnJlcXVlc3REZXZpY2UoY29uc3Qg
V0dQVURldmljZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIFdURjo6RnVuY3Rpb248dm9pZChXR1BV
UmVxdWVzdERldmljZVN0YXR1cywgUmVmUHRyPERldmljZT4mJiwgY29uc3QgY2hhciopPiYmIGNh
bGxiYWNrKQordm9pZCBBZGFwdGVyOjpyZXF1ZXN0RGV2aWNlKGNvbnN0IFdHUFVEZXZpY2VEZXNj
cmlwdG9yJiBkZXNjcmlwdG9yLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdHUFVSZXF1ZXN0RGV2
aWNlU3RhdHVzLCBSZWZQdHI8RGV2aWNlPiYmLCBjb25zdCBjaGFyKik+JiYgY2FsbGJhY2spCiB7
CiAgICAgaWYgKGRlc2NyaXB0b3IubmV4dEluQ2hhaW4pIHsKICAgICAgICAgY2FsbGJhY2soV0dQ
VVJlcXVlc3REZXZpY2VTdGF0dXNfRXJyb3IsIG51bGxwdHIsICJVbmtub3duIGRlc2NyaXB0b3Ig
dHlwZSIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQVS9XZWJHUFUvQnVmZmVyLmggYi9Tb3Vy
Y2UvV2ViR1BVL1dlYkdQVS9CdWZmZXIuaAppbmRleCA5NTA2NjMxYmU5YTM2ZTdiZGIzYTdkYWUw
Nzc4MWVmODg5ODY1NDA5Li41YWMxYmI1MTBjOTlmNTg0ZDE4M2NiYTNkYTA5NDMyNzAzN2NjNGFl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9CdWZmZXIuaAorKysgYi9Tb3VyY2Uv
V2ViR1BVL1dlYkdQVS9CdWZmZXIuaApAQCAtMjUsOCArMjUsOCBAQAogCiAjcHJhZ21hIG9uY2UK
IAorI2ltcG9ydCA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW1wb3J0IDx3dGYvRmFzdE1h
bGxvYy5oPgotI2ltcG9ydCA8d3RmL0Z1bmN0aW9uLmg+CiAjaW1wb3J0IDx3dGYvUmVmLmg+CiAj
aW1wb3J0IDx3dGYvUmVmQ291bnRlZC5oPgogCkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIGRlc3Ryb3koKTsKICAgICBjb25zdCB2b2lkKiBnZXRDb25zdE1hcHBlZFJhbmdlKHNp
emVfdCBvZmZzZXQsIHNpemVfdCk7CiAgICAgdm9pZCogZ2V0TWFwcGVkUmFuZ2Uoc2l6ZV90IG9m
ZnNldCwgc2l6ZV90KTsKLSAgICB2b2lkIG1hcEFzeW5jKFdHUFVNYXBNb2RlRmxhZ3MsIHNpemVf
dCBvZmZzZXQsIHNpemVfdCwgV1RGOjpGdW5jdGlvbjx2b2lkKFdHUFVCdWZmZXJNYXBBc3luY1N0
YXR1cyk+JiYgY2FsbGJhY2spOworICAgIHZvaWQgbWFwQXN5bmMoV0dQVU1hcE1vZGVGbGFncywg
c2l6ZV90IG9mZnNldCwgc2l6ZV90LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdHUFVCdWZmZXJN
YXBBc3luY1N0YXR1cyk+JiYgY2FsbGJhY2spOwogICAgIHZvaWQgdW5tYXAoKTsKICAgICB2b2lk
IHNldExhYmVsKGNvbnN0IGNoYXIqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQVS9XZWJH
UFUvQnVmZmVyLm1tIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvQnVmZmVyLm1tCmluZGV4IDYxYWRh
NzlhYWQ4MmU5M2RiYWM0YzdhMTc5Nzk0NzM0YmFkMWRiMDMuLmRhYjQwYmZlMGVhMTA3OTFhNWMz
MjcwMzcwM2M0ZWFlMWFkMTQ3YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0J1
ZmZlci5tbQorKysgYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9CdWZmZXIubW0KQEAgLTYxLDcgKzYx
LDcgQEAgdm9pZCogQnVmZmVyOjpnZXRNYXBwZWRSYW5nZShzaXplX3Qgb2Zmc2V0LCBzaXplX3Qg
c2l6ZSkKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotdm9pZCBCdWZmZXI6Om1hcEFzeW5jKFdH
UFVNYXBNb2RlRmxhZ3MgbW9kZSwgc2l6ZV90IG9mZnNldCwgc2l6ZV90IHNpemUsIFdURjo6RnVu
Y3Rpb248dm9pZChXR1BVQnVmZmVyTWFwQXN5bmNTdGF0dXMpPiYmIGNhbGxiYWNrKQordm9pZCBC
dWZmZXI6Om1hcEFzeW5jKFdHUFVNYXBNb2RlRmxhZ3MgbW9kZSwgc2l6ZV90IG9mZnNldCwgc2l6
ZV90IHNpemUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV0dQVUJ1ZmZlck1hcEFzeW5jU3RhdHVz
KT4mJiBjYWxsYmFjaykKIHsKICAgICBVTlVTRURfUEFSQU0obW9kZSk7CiAgICAgVU5VU0VEX1BB
UkFNKG9mZnNldCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9Db21wdXRlUGlw
ZWxpbmUubW0gYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9Db21wdXRlUGlwZWxpbmUubW0KaW5kZXgg
NmE4ZTdmZDc3MDRmYjMzNDcyNzIzMjQ3MWZlMTIwMDQ3N2MzMTkyZC4uZWJlMGYzYThiOTdjNjEz
OGNlZWFhZTg4ZDY1ZGU5Yjg2YjQ4OTk5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkdQVS9XZWJH
UFUvQ29tcHV0ZVBpcGVsaW5lLm1tCisrKyBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0NvbXB1dGVQ
aXBlbGluZS5tbQpAQCAtMTcwLDcgKzE3MCw3IEBAIFJlZlB0cjxDb21wdXRlUGlwZWxpbmU+IERl
dmljZTo6Y3JlYXRlQ29tcHV0ZVBpcGVsaW5lKGNvbnN0IFdHUFVDb21wdXRlUGlwZWxpbmVECiAg
ICAgcmV0dXJuIENvbXB1dGVQaXBlbGluZTo6Y3JlYXRlKGNvbXB1dGVQaXBlbGluZVN0YXRlKTsK
IH0KIAotdm9pZCBEZXZpY2U6OmNyZWF0ZUNvbXB1dGVQaXBlbGluZUFzeW5jKGNvbnN0IFdHUFVD
b21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBXVEY6OkZ1bmN0aW9uPHZvaWQo
V0dQVUNyZWF0ZVBpcGVsaW5lQXN5bmNTdGF0dXMsIFJlZlB0cjxDb21wdXRlUGlwZWxpbmU+JiYs
IGNvbnN0IGNoYXIqIG1lc3NhZ2UpPiYmIGNhbGxiYWNrKQordm9pZCBEZXZpY2U6OmNyZWF0ZUNv
bXB1dGVQaXBlbGluZUFzeW5jKGNvbnN0IFdHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yJiBk
ZXNjcmlwdG9yLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdHUFVDcmVhdGVQaXBlbGluZUFzeW5j
U3RhdHVzLCBSZWZQdHI8Q29tcHV0ZVBpcGVsaW5lPiYmLCBjb25zdCBjaGFyKiBtZXNzYWdlKT4m
JiBjYWxsYmFjaykKIHsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMKICAgICBVTlVTRURf
UEFSQU0oZGVzY3JpcHRvcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9EZXZp
Y2UuaCBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0RldmljZS5oCmluZGV4IGQ4MDVkYzBmODgyNDE4
ODc5MjhhM2QzOTlhY2JlYjk3YWUzOTY5ZDAuLjM3Nzg0YzhkZjFjMGFkYTY2NDgxODkxNGU2MmMz
Y2QwMzA1YTIxNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0RldmljZS5oCisr
KyBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0RldmljZS5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJh
Z21hIG9uY2UKIAogI2ltcG9ydCAiUXVldWUuaCIKKyNpbXBvcnQgPHd0Zi9Db21wbGV0aW9uSGFu
ZGxlci5oPgogI2ltcG9ydCA8d3RmL0Zhc3RNYWxsb2MuaD4KICNpbXBvcnQgPHd0Zi9GdW5jdGlv
bi5oPgogI2ltcG9ydCA8d3RmL1JlZi5oPgpAQCAtNjEsMTIgKzYyLDEyIEBAIHB1YmxpYzoKICAg
ICBSZWZQdHI8QnVmZmVyPiBjcmVhdGVCdWZmZXIoY29uc3QgV0dQVUJ1ZmZlckRlc2NyaXB0b3Im
KTsKICAgICBSZWZQdHI8Q29tbWFuZEVuY29kZXI+IGNyZWF0ZUNvbW1hbmRFbmNvZGVyKGNvbnN0
IFdHUFVDb21tYW5kRW5jb2RlckRlc2NyaXB0b3ImKTsKICAgICBSZWZQdHI8Q29tcHV0ZVBpcGVs
aW5lPiBjcmVhdGVDb21wdXRlUGlwZWxpbmUoY29uc3QgV0dQVUNvbXB1dGVQaXBlbGluZURlc2Ny
aXB0b3ImKTsKLSAgICB2b2lkIGNyZWF0ZUNvbXB1dGVQaXBlbGluZUFzeW5jKGNvbnN0IFdHUFVD
b21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yJiwgV1RGOjpGdW5jdGlvbjx2b2lkKFdHUFVDcmVhdGVQ
aXBlbGluZUFzeW5jU3RhdHVzLCBSZWZQdHI8Q29tcHV0ZVBpcGVsaW5lPiYmLCBjb25zdCBjaGFy
KiBtZXNzYWdlKT4mJiBjYWxsYmFjayk7CisgICAgdm9pZCBjcmVhdGVDb21wdXRlUGlwZWxpbmVB
c3luYyhjb25zdCBXR1BVQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvciYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoV0dQVUNyZWF0ZVBpcGVsaW5lQXN5bmNTdGF0dXMsIFJlZlB0cjxDb21wdXRlUGlw
ZWxpbmU+JiYsIGNvbnN0IGNoYXIqIG1lc3NhZ2UpPiYmIGNhbGxiYWNrKTsKICAgICBSZWZQdHI8
UGlwZWxpbmVMYXlvdXQ+IGNyZWF0ZVBpcGVsaW5lTGF5b3V0KGNvbnN0IFdHUFVQaXBlbGluZUxh
eW91dERlc2NyaXB0b3ImKTsKICAgICBSZWZQdHI8UXVlcnlTZXQ+IGNyZWF0ZVF1ZXJ5U2V0KGNv
bnN0IFdHUFVRdWVyeVNldERlc2NyaXB0b3ImKTsKICAgICBSZWZQdHI8UmVuZGVyQnVuZGxlRW5j
b2Rlcj4gY3JlYXRlUmVuZGVyQnVuZGxlRW5jb2Rlcihjb25zdCBXR1BVUmVuZGVyQnVuZGxlRW5j
b2RlckRlc2NyaXB0b3ImKTsKICAgICBSZWZQdHI8UmVuZGVyUGlwZWxpbmU+IGNyZWF0ZVJlbmRl
clBpcGVsaW5lKGNvbnN0IFdHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3ImKTsKLSAgICB2b2lk
IGNyZWF0ZVJlbmRlclBpcGVsaW5lQXN5bmMoY29uc3QgV0dQVVJlbmRlclBpcGVsaW5lRGVzY3Jp
cHRvciYsIFdURjo6RnVuY3Rpb248dm9pZChXR1BVQ3JlYXRlUGlwZWxpbmVBc3luY1N0YXR1cywg
UmVmUHRyPFJlbmRlclBpcGVsaW5lPiYmLCBjb25zdCBjaGFyKiBtZXNzYWdlKT4mJiBjYWxsYmFj
ayk7CisgICAgdm9pZCBjcmVhdGVSZW5kZXJQaXBlbGluZUFzeW5jKGNvbnN0IFdHUFVSZW5kZXJQ
aXBlbGluZURlc2NyaXB0b3ImLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdHUFVDcmVhdGVQaXBl
bGluZUFzeW5jU3RhdHVzLCBSZWZQdHI8UmVuZGVyUGlwZWxpbmU+JiYsIGNvbnN0IGNoYXIqIG1l
c3NhZ2UpPiYmIGNhbGxiYWNrKTsKICAgICBSZWZQdHI8U2FtcGxlcj4gY3JlYXRlU2FtcGxlcihj
b25zdCBXR1BVU2FtcGxlckRlc2NyaXB0b3ImKTsKICAgICBSZWZQdHI8U2hhZGVyTW9kdWxlPiBj
cmVhdGVTaGFkZXJNb2R1bGUoY29uc3QgV0dQVVNoYWRlck1vZHVsZURlc2NyaXB0b3ImKTsKICAg
ICBSZWZQdHI8U3dhcENoYWluPiBjcmVhdGVTd2FwQ2hhaW4oY29uc3QgU3VyZmFjZSYsIGNvbnN0
IFdHUFVTd2FwQ2hhaW5EZXNjcmlwdG9yJik7CkBAIC03NiwxMCArNzcsMTAgQEAgcHVibGljOgog
ICAgIGJvb2wgZ2V0TGltaXRzKFdHUFVTdXBwb3J0ZWRMaW1pdHMmKTsKICAgICBRdWV1ZSYgZ2V0
UXVldWUoKTsKICAgICBib29sIGhhc0ZlYXR1cmUoV0dQVUZlYXR1cmVOYW1lKTsKLSAgICBib29s
IHBvcEVycm9yU2NvcGUoV1RGOjpGdW5jdGlvbjx2b2lkKFdHUFVFcnJvclR5cGUsIGNvbnN0IGNo
YXIqKT4mJiBjYWxsYmFjayk7CisgICAgYm9vbCBwb3BFcnJvclNjb3BlKENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoV0dQVUVycm9yVHlwZSwgY29uc3QgY2hhciopPiYmIGNhbGxiYWNrKTsKICAgICB2
b2lkIHB1c2hFcnJvclNjb3BlKFdHUFVFcnJvckZpbHRlcik7Ci0gICAgdm9pZCBzZXREZXZpY2VM
b3N0Q2FsbGJhY2soV1RGOjpGdW5jdGlvbjx2b2lkKFdHUFVEZXZpY2VMb3N0UmVhc29uLCBjb25z
dCBjaGFyKik+JiYpOwotICAgIHZvaWQgc2V0VW5jYXB0dXJlZEVycm9yQ2FsbGJhY2soV1RGOjpG
dW5jdGlvbjx2b2lkKFdHUFVFcnJvclR5cGUsIGNvbnN0IGNoYXIqKT4mJik7CisgICAgdm9pZCBz
ZXREZXZpY2VMb3N0Q2FsbGJhY2soRnVuY3Rpb248dm9pZChXR1BVRGV2aWNlTG9zdFJlYXNvbiwg
Y29uc3QgY2hhciopPiYmKTsKKyAgICB2b2lkIHNldFVuY2FwdHVyZWRFcnJvckNhbGxiYWNrKEZ1
bmN0aW9uPHZvaWQoV0dQVUVycm9yVHlwZSwgY29uc3QgY2hhciopPiYmKTsKICAgICB2b2lkIHNl
dExhYmVsKGNvbnN0IGNoYXIqKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJH
UFUvV2ViR1BVL0RldmljZS5tbSBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0RldmljZS5tbQppbmRl
eCA0YWE3ZjEyNDA1ZWE0ODA3NzBhNWVkNzNhY2QwZGRhZDdjMzkyNDY3Li5mMmJmYjRhZTYyNDEw
OTZiZjcwYTkyMGY4OWFhMjdiNWViNTY5ODBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dl
YkdQVS9EZXZpY2UubW0KKysrIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvRGV2aWNlLm1tCkBAIC0x
MDEsNyArMTAxLDcgQEAgYm9vbCBEZXZpY2U6Omhhc0ZlYXR1cmUoV0dQVUZlYXR1cmVOYW1lKQog
ICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBEZXZpY2U6OnBvcEVycm9yU2NvcGUoV1RGOjpG
dW5jdGlvbjx2b2lkKFdHUFVFcnJvclR5cGUsIGNvbnN0IGNoYXIqKT4mJiBjYWxsYmFjaykKK2Jv
b2wgRGV2aWNlOjpwb3BFcnJvclNjb3BlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV0dQVUVycm9y
VHlwZSwgY29uc3QgY2hhciopPiYmIGNhbGxiYWNrKQogewogICAgIC8vIEZJWE1FOiBJbXBsZW1l
bnQgdGhpcy4KICAgICBVTlVTRURfUEFSQU0oY2FsbGJhY2spOwpAQCAtMTE0LDEzICsxMTQsMTMg
QEAgdm9pZCBEZXZpY2U6OnB1c2hFcnJvclNjb3BlKFdHUFVFcnJvckZpbHRlciBmaWx0ZXIpCiAg
ICAgVU5VU0VEX1BBUkFNKGZpbHRlcik7CiB9CiAKLXZvaWQgRGV2aWNlOjpzZXREZXZpY2VMb3N0
Q2FsbGJhY2soV1RGOjpGdW5jdGlvbjx2b2lkKFdHUFVEZXZpY2VMb3N0UmVhc29uLCBjb25zdCBj
aGFyKik+JiYgY2FsbGJhY2spCit2b2lkIERldmljZTo6c2V0RGV2aWNlTG9zdENhbGxiYWNrKEZ1
bmN0aW9uPHZvaWQoV0dQVURldmljZUxvc3RSZWFzb24sIGNvbnN0IGNoYXIqKT4mJiBjYWxsYmFj
aykKIHsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCiAgICAgVU5VU0VEX1BBUkFNKGNh
bGxiYWNrKTsKIH0KIAotdm9pZCBEZXZpY2U6OnNldFVuY2FwdHVyZWRFcnJvckNhbGxiYWNrKFdU
Rjo6RnVuY3Rpb248dm9pZChXR1BVRXJyb3JUeXBlLCBjb25zdCBjaGFyKik+JiYgY2FsbGJhY2sp
Cit2b2lkIERldmljZTo6c2V0VW5jYXB0dXJlZEVycm9yQ2FsbGJhY2soRnVuY3Rpb248dm9pZChX
R1BVRXJyb3JUeXBlLCBjb25zdCBjaGFyKik+JiYgY2FsbGJhY2spCiB7CiAgICAgLy8gRklYTUU6
IEltcGxlbWVudCB0aGlzLgogICAgIFVOVVNFRF9QQVJBTShjYWxsYmFjayk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9JbnN0YW5jZS5oIGIvU291cmNlL1dlYkdQVS9XZWJHUFUv
SW5zdGFuY2UuaAppbmRleCBlN2Y2MzQ3ZTczY2I0M2JkMzMzMzRlOGZiODMyZjBlMDA4ZjM2OGE2
Li5mZjdkZDQ2MzlkZTUyZWUyZWM3ZjcxMmQwZTUwYWFiOTYxMGQzNzI2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViR1BVL1dlYkdQVS9JbnN0YW5jZS5oCisrKyBiL1NvdXJjZS9XZWJHUFUvV2ViR1BV
L0luc3RhbmNlLmgKQEAgLTI1LDkgKzI1LDkgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbXBvcnQg
PHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2ltcG9ydCA8d3RmL0RlcXVlLmg+CiAjaW1wb3J0
IDx3dGYvRmFzdE1hbGxvYy5oPgotI2ltcG9ydCA8d3RmL0Z1bmN0aW9uLmg+CiAjaW1wb3J0IDx3
dGYvTG9jay5oPgogI2ltcG9ydCA8d3RmL1JlZi5oPgogI2ltcG9ydCA8d3RmL1JlZlB0ci5oPgpA
QCAtNDcsMTAgKzQ3LDEwIEBAIHB1YmxpYzoKIAogICAgIFJlZlB0cjxTdXJmYWNlPiBjcmVhdGVT
dXJmYWNlKGNvbnN0IFdHUFVTdXJmYWNlRGVzY3JpcHRvciYpOwogICAgIHZvaWQgcHJvY2Vzc0V2
ZW50cygpOwotICAgIHZvaWQgcmVxdWVzdEFkYXB0ZXIoY29uc3QgV0dQVVJlcXVlc3RBZGFwdGVy
T3B0aW9ucyYsIFdURjo6RnVuY3Rpb248dm9pZChXR1BVUmVxdWVzdEFkYXB0ZXJTdGF0dXMsIFJl
ZlB0cjxBZGFwdGVyPiYmLCBjb25zdCBjaGFyKik+JiYgY2FsbGJhY2spOworICAgIHZvaWQgcmVx
dWVzdEFkYXB0ZXIoY29uc3QgV0dQVVJlcXVlc3RBZGFwdGVyT3B0aW9ucyYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoV0dQVVJlcXVlc3RBZGFwdGVyU3RhdHVzLCBSZWZQdHI8QWRhcHRlcj4mJiwg
Y29uc3QgY2hhciopPiYmIGNhbGxiYWNrKTsKIAogICAgIC8vIFRoaXMgY2FuIGJlIGNhbGxlZCBv
biBhIGJhY2tncm91bmQgdGhyZWFkLgotICAgIHVzaW5nIFdvcmtJdGVtID0gRnVuY3Rpb248dm9p
ZCh2b2lkKT47CisgICAgdXNpbmcgV29ya0l0ZW0gPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHZv
aWQpPjsKICAgICB2b2lkIHNjaGVkdWxlV29yayhXb3JrSXRlbSYmKTsKIAogcHJpdmF0ZToKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0luc3RhbmNlLm1tIGIvU291cmNlL1dlYkdQ
VS9XZWJHUFUvSW5zdGFuY2UubW0KaW5kZXggYTEyZmUyN2JkNDEzMzAxMGFhYWYxYjI0MjU4ZDE4
ZmYyZmE4NDNhMi4uNjE0MzNkZjNmMWRiOWYxYTUzMDMxNjhhZDIxNWFiNWI2YTA3MWVkYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkdQVS9XZWJHUFUvSW5zdGFuY2UubW0KKysrIGIvU291cmNlL1dl
YkdQVS9XZWJHUFUvSW5zdGFuY2UubW0KQEAgLTEyNiw3ICsxMjYsNyBAQCBzdGF0aWMgTlNBcnJh
eTxpZDxNVExEZXZpY2U+PiAqc29ydGVkRGV2aWNlcyhOU0FycmF5PGlkPE1UTERldmljZT4+ICpk
ZXZpY2VzLCBXRwogICAgIH0KIH0KIAotdm9pZCBJbnN0YW5jZTo6cmVxdWVzdEFkYXB0ZXIoY29u
c3QgV0dQVVJlcXVlc3RBZGFwdGVyT3B0aW9ucyYgb3B0aW9ucywgV1RGOjpGdW5jdGlvbjx2b2lk
KFdHUFVSZXF1ZXN0QWRhcHRlclN0YXR1cywgUmVmUHRyPEFkYXB0ZXI+JiYsIGNvbnN0IGNoYXIq
KT4mJiBjYWxsYmFjaykKK3ZvaWQgSW5zdGFuY2U6OnJlcXVlc3RBZGFwdGVyKGNvbnN0IFdHUFVS
ZXF1ZXN0QWRhcHRlck9wdGlvbnMmIG9wdGlvbnMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV0dQ
VVJlcXVlc3RBZGFwdGVyU3RhdHVzLCBSZWZQdHI8QWRhcHRlcj4mJiwgY29uc3QgY2hhciopPiYm
IGNhbGxiYWNrKQogewogI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oTUFDQ0FUQUxZU1Qp
CiAgICAgTlNBcnJheTxpZDxNVExEZXZpY2U+PiAqZGV2aWNlcyA9IE1UTENvcHlBbGxEZXZpY2Vz
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9RdWV1ZS5oIGIvU291cmNlL1dl
YkdQVS9XZWJHUFUvUXVldWUuaAppbmRleCBhNTk1YThmZWEwOTA1NmY3ODllNjhiNWE4ZTBlN2Ex
ZTVmNTUzMzYxLi42OTc5ODk1MzdmNWVmNDQ2MTAyOTM1NmMwZTQ1MzA4NDRiMWVlMzJiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9RdWV1ZS5oCisrKyBiL1NvdXJjZS9XZWJHUFUv
V2ViR1BVL1F1ZXVlLmgKQEAgLTI1LDggKzI1LDggQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbXBv
cnQgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2ltcG9ydCA8d3RmL0Zhc3RNYWxsb2MuaD4K
LSNpbXBvcnQgPHd0Zi9GdW5jdGlvbi5oPgogI2ltcG9ydCA8d3RmL1JlZi5oPgogI2ltcG9ydCA8
d3RmL1JlZkNvdW50ZWQuaD4KICNpbXBvcnQgPHd0Zi9WZWN0b3IuaD4KQEAgLTQ2LDcgKzQ2LDcg
QEAgcHVibGljOgogCiAgICAgflF1ZXVlKCk7CiAKLSAgICB2b2lkIG9uU3VibWl0dGVkV29ya0Rv
bmUodWludDY0X3Qgc2lnbmFsVmFsdWUsIFdURjo6RnVuY3Rpb248dm9pZChXR1BVUXVldWVXb3Jr
RG9uZVN0YXR1cyk+JiYgY2FsbGJhY2spOworICAgIHZvaWQgb25TdWJtaXR0ZWRXb3JrRG9uZSh1
aW50NjRfdCBzaWduYWxWYWx1ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXR1BVUXVldWVXb3Jr
RG9uZVN0YXR1cyk+JiYgY2FsbGJhY2spOwogICAgIHZvaWQgc3VibWl0KFZlY3RvcjxzdGQ6OnJl
ZmVyZW5jZV93cmFwcGVyPGNvbnN0IENvbW1hbmRCdWZmZXI+PiYmIGNvbW1hbmRzKTsKICAgICB2
b2lkIHdyaXRlQnVmZmVyKGNvbnN0IEJ1ZmZlciYsIHVpbnQ2NF90IGJ1ZmZlck9mZnNldCwgY29u
c3Qgdm9pZCogZGF0YSwgc2l6ZV90KTsKICAgICB2b2lkIHdyaXRlVGV4dHVyZShjb25zdCBXR1BV
SW1hZ2VDb3B5VGV4dHVyZSYgZGVzdGluYXRpb24sIGNvbnN0IHZvaWQqIGRhdGEsIHNpemVfdCBk
YXRhU2l6ZSwgY29uc3QgV0dQVVRleHR1cmVEYXRhTGF5b3V0JiwgY29uc3QgV0dQVUV4dGVudDNE
JiB3cml0ZVNpemUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQVS9XZWJHUFUvUXVldWUubW0g
Yi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9RdWV1ZS5tbQppbmRleCBjZmQ5Y2IxMmMwNTIwNzJkNWM2
Mzc5OGZmMTJkMDc3NmI0OGQyNzc1Li5mN2M2ZjZlYjg3Y2YyOWRiMDA4NzQ4M2Q0Y2M0NjY0YzIy
MzZkZjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9RdWV1ZS5tbQorKysgYi9T
b3VyY2UvV2ViR1BVL1dlYkdQVS9RdWV1ZS5tbQpAQCAtMzgsNyArMzgsNyBAQCBRdWV1ZTo6UXVl
dWUoaWQ8TVRMQ29tbWFuZFF1ZXVlPiBjb21tYW5kUXVldWUpCiAKIFF1ZXVlOjp+UXVldWUoKSA9
IGRlZmF1bHQ7CiAKLXZvaWQgUXVldWU6Om9uU3VibWl0dGVkV29ya0RvbmUodWludDY0X3Qgc2ln
bmFsVmFsdWUsIFdURjo6RnVuY3Rpb248dm9pZChXR1BVUXVldWVXb3JrRG9uZVN0YXR1cyk+JiYg
Y2FsbGJhY2spCit2b2lkIFF1ZXVlOjpvblN1Ym1pdHRlZFdvcmtEb25lKHVpbnQ2NF90IHNpZ25h
bFZhbHVlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdHUFVRdWV1ZVdvcmtEb25lU3RhdHVzKT4m
JiBjYWxsYmFjaykKIHsKICAgICBVTlVTRURfUEFSQU0oc2lnbmFsVmFsdWUpOwogICAgIFVOVVNF
RF9QQVJBTShjYWxsYmFjayk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9SZW5k
ZXJQYXNzRW5jb2Rlci5oIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvUmVuZGVyUGFzc0VuY29kZXIu
aAppbmRleCA1Y2JkMGU3NTdmYzhhM2ZhMTI3MWM2ZmUzYzU0NmIxZGI1OWUxMDk1Li5lOWVhOTZi
ZGJmNTBjNjMzODU3OWNlN2NjODUzODczNGM5MTM0ZWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
R1BVL1dlYkdQVS9SZW5kZXJQYXNzRW5jb2Rlci5oCisrKyBiL1NvdXJjZS9XZWJHUFUvV2ViR1BV
L1JlbmRlclBhc3NFbmNvZGVyLmgKQEAgLTI2LDcgKzI2LDYgQEAKICNwcmFnbWEgb25jZQogCiAj
aW1wb3J0IDx3dGYvRmFzdE1hbGxvYy5oPgotI2ltcG9ydCA8d3RmL0Z1bmN0aW9uLmg+CiAjaW1w
b3J0IDx3dGYvUmVmLmg+CiAjaW1wb3J0IDx3dGYvUmVmQ291bnRlZC5oPgogI2ltcG9ydCA8d3Rm
L1ZlY3Rvci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQVS9XZWJHUFUvUmVuZGVyUGlwZWxp
bmUubW0gYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9SZW5kZXJQaXBlbGluZS5tbQppbmRleCBjNmMz
ZGE3YTkxYjBlMWEzYWE2ZjM2NDk0YjlhNzZiMTE0YjhhM2ViLi4xNzQ0YjhkZmZhZWJhYjMwZjYx
NWRhYWJlM2Q3MDViZjAyNzIxOTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9S
ZW5kZXJQaXBlbGluZS5tbQorKysgYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9SZW5kZXJQaXBlbGlu
ZS5tbQpAQCAtMzcsNyArMzcsNyBAQCBSZWZQdHI8UmVuZGVyUGlwZWxpbmU+IERldmljZTo6Y3Jl
YXRlUmVuZGVyUGlwZWxpbmUoY29uc3QgV0dQVVJlbmRlclBpcGVsaW5lRGVzYwogICAgIHJldHVy
biBSZW5kZXJQaXBlbGluZTo6Y3JlYXRlKG5pbCk7CiB9CiAKLXZvaWQgRGV2aWNlOjpjcmVhdGVS
ZW5kZXJQaXBlbGluZUFzeW5jKGNvbnN0IFdHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3ImIGRl
c2NyaXB0b3IsIFdURjo6RnVuY3Rpb248dm9pZChXR1BVQ3JlYXRlUGlwZWxpbmVBc3luY1N0YXR1
cywgUmVmUHRyPFJlbmRlclBpcGVsaW5lPiYmLCBjb25zdCBjaGFyKiBtZXNzYWdlKT4mJiBjYWxs
YmFjaykKK3ZvaWQgRGV2aWNlOjpjcmVhdGVSZW5kZXJQaXBlbGluZUFzeW5jKGNvbnN0IFdHUFVS
ZW5kZXJQaXBlbGluZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoV0dQVUNyZWF0ZVBpcGVsaW5lQXN5bmNTdGF0dXMsIFJlZlB0cjxSZW5kZXJQaXBlbGluZT4m
JiwgY29uc3QgY2hhciogbWVzc2FnZSk+JiYgY2FsbGJhY2spCiB7CiAgICAgVU5VU0VEX1BBUkFN
KGRlc2NyaXB0b3IpOwogICAgIFVOVVNFRF9QQVJBTShjYWxsYmFjayk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViR1BVL1dlYkdQVS9TaGFkZXJNb2R1bGUuaCBiL1NvdXJjZS9XZWJHUFUvV2ViR1BV
L1NoYWRlck1vZHVsZS5oCmluZGV4IGRmNDEzNTgwNjg4ZDkzZGU0NGI3OTUwNWFjMTA4NmQ1MjY1
Njk2MDUuLjkzZGM2OTA3ZTJmMDZlNWVlYmE2MmE5YjYxZGQ3NTljZjAzMzIyOGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1NoYWRlck1vZHVsZS5oCisrKyBiL1NvdXJjZS9XZWJH
UFUvV2ViR1BVL1NoYWRlck1vZHVsZS5oCkBAIC00Niw3ICs0Niw3IEBAIHB1YmxpYzoKIAogICAg
IH5TaGFkZXJNb2R1bGUoKTsKIAotICAgIHZvaWQgZ2V0Q29tcGlsYXRpb25JbmZvKFdURjo6RnVu
Y3Rpb248dm9pZChXR1BVQ29tcGlsYXRpb25JbmZvUmVxdWVzdFN0YXR1cywgY29uc3QgV0dQVUNv
bXBpbGF0aW9uSW5mbyYpPiYmIGNhbGxiYWNrKTsKKyAgICB2b2lkIGdldENvbXBpbGF0aW9uSW5m
byhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdHUFVDb21waWxhdGlvbkluZm9SZXF1ZXN0U3RhdHVz
LCBjb25zdCBXR1BVQ29tcGlsYXRpb25JbmZvJik+JiYgY2FsbGJhY2spOwogICAgIHZvaWQgc2V0
TGFiZWwoY29uc3QgY2hhciopOwogCiAgICAgc3RhdGljIFdHU0w6OlBpcGVsaW5lTGF5b3V0IGNv
bnZlcnRQaXBlbGluZUxheW91dChjb25zdCBQaXBlbGluZUxheW91dCYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkdQVS9XZWJHUFUvU2hhZGVyTW9kdWxlLm1tIGIvU291cmNlL1dlYkdQVS9XZWJH
UFUvU2hhZGVyTW9kdWxlLm1tCmluZGV4IDFlNTIxMjlmZTFiZjExZjkyY2I1NDNlMWIzN2Q5NTc4
YTgzMWFmNTYuLjQxYWJhODgwODNmZGU1MTZiOWQxNzIzNDI2ZjUwN2I2NDg0ZTRiNmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1NoYWRlck1vZHVsZS5tbQorKysgYi9Tb3VyY2Uv
V2ViR1BVL1dlYkdQVS9TaGFkZXJNb2R1bGUubW0KQEAgLTE4Miw3ICsxODIsNyBAQCBzdGF0aWMg
Q29tcGlsYXRpb25NZXNzYWdlRGF0YSBjb252ZXJ0TWVzc2FnZXMoY29uc3QgTWVzc2FnZXMmIG1l
c3NhZ2VzMSwgY29uc3QgcwogICAgIHJldHVybiB7IFdURk1vdmUoZmxhdHRlbmVkQ29tcGlsYXRp
b25NZXNzYWdlcyksIFdURk1vdmUoZmxhdHRlbmVkTWVzc2FnZXMpIH07CiB9CiAKLXZvaWQgU2hh
ZGVyTW9kdWxlOjpnZXRDb21waWxhdGlvbkluZm8oV1RGOjpGdW5jdGlvbjx2b2lkKFdHUFVDb21w
aWxhdGlvbkluZm9SZXF1ZXN0U3RhdHVzLCBjb25zdCBXR1BVQ29tcGlsYXRpb25JbmZvJik+JiYg
Y2FsbGJhY2spCit2b2lkIFNoYWRlck1vZHVsZTo6Z2V0Q29tcGlsYXRpb25JbmZvKENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoV0dQVUNvbXBpbGF0aW9uSW5mb1JlcXVlc3RTdGF0dXMsIGNvbnN0IFdH
UFVDb21waWxhdGlvbkluZm8mKT4mJiBjYWxsYmFjaykKIHsKICAgICBXVEY6OnN3aXRjaE9uKG1f
Y2hlY2tSZXN1bHQsIFsmXSAoY29uc3QgV0dTTDo6U3VjY2Vzc2Z1bENoZWNrJiBzdWNjZXNzZnVs
Q2hlY2spIHsKICAgICAgICAgYXV0byBjb21waWxhdGlvbk1lc3NhZ2VEYXRhKGNvbnZlcnRNZXNz
YWdlcyh7IHN1Y2Nlc3NmdWxDaGVjay53YXJuaW5ncywgV0dQVUNvbXBpbGF0aW9uTWVzc2FnZVR5
cGVfV2FybmluZyB9KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvV2ViR1BVL1JlbW90ZUFkYXB0ZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVBZGFwdGVyLmNwcAppbmRleCBiZThhMTM5ZGM4MmNjYWM1
MzAxMjRjZGM5NDJlYWE2YTk2NjVhZDdlLi5hM2QxNTc1YmMyMWQ2ZTUxMzg3MmM3ZWJlZWNlMzUz
MzIxNThjZDUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
V2ViR1BVL1JlbW90ZUFkYXB0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9XZWJHUFUvUmVtb3RlQWRhcHRlci5jcHAKQEAgLTU2LDcgKzU2LDcgQEAgdm9pZCBS
ZW1vdGVBZGFwdGVyOjpzdG9wTGlzdGVuaW5nRm9ySVBDKCkKICAgICBtX3N0cmVhbUNvbm5lY3Rp
b24tPnN0b3BSZWNlaXZpbmdNZXNzYWdlcyhNZXNzYWdlczo6UmVtb3RlQWRhcHRlcjo6bWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpLCBtX2lkZW50aWZpZXIudG9VSW50NjQoKSk7CiB9CiAKLXZvaWQgUmVt
b3RlQWRhcHRlcjo6cmVxdWVzdERldmljZShjb25zdCBXZWJHUFU6OkRldmljZURlc2NyaXB0b3Im
IGRlc2NyaXB0b3IsIFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllciwgV1RGOjpDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFdlYkdQVTo6U3VwcG9ydGVkRmVhdHVyZXMmJiwgV2ViR1BVOjpTdXBwb3J0
ZWRMaW1pdHMmJik+JiYgY2FsbGJhY2spCit2b2lkIFJlbW90ZUFkYXB0ZXI6OnJlcXVlc3REZXZp
Y2UoY29uc3QgV2ViR1BVOjpEZXZpY2VEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBXZWJHUFVJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViR1BVOjpTdXBwb3J0
ZWRGZWF0dXJlcyYmLCBXZWJHUFU6OlN1cHBvcnRlZExpbWl0cyYmKT4mJiBjYWxsYmFjaykKIHsK
ICAgICBhdXRvIGNvbnZlcnRlZERlc2NyaXB0b3IgPSBtX29iamVjdEhlYXAuY29udmVydEZyb21C
YWNraW5nKGRlc2NyaXB0b3IpOwogICAgIEFTU0VSVChjb252ZXJ0ZWREZXNjcmlwdG9yKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3Rl
QWRhcHRlci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVBZGFwdGVyLmgKaW5kZXggNWI1MWZmNzhmMGRmZWNhOTVkZmNiNmY5NDhiOTlhOGJkN2M0MzM4
OS4uOWY3MzRlMDliNDY3MzViNDhiYjcyZDAzY2M0YzllZWQ4ZmI0NjIyYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVBZGFwdGVyLmgK
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVBZGFw
dGVyLmgKQEAgLTc1LDcgKzc1LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgZGlkUmVjZWl2ZVN0
cmVhbU1lc3NhZ2UoSVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uQmFzZSYsIElQQzo6RGVjb2Rl
ciYpIGZpbmFsOwogCi0gICAgdm9pZCByZXF1ZXN0RGV2aWNlKGNvbnN0IFdlYkdQVTo6RGV2aWNl
RGVzY3JpcHRvciYsIFdlYkdQVUlkZW50aWZpZXIsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9p
ZChXZWJHUFU6OlN1cHBvcnRlZEZlYXR1cmVzJiYsIFdlYkdQVTo6U3VwcG9ydGVkTGltaXRzJiYp
PiYmKTsKKyAgICB2b2lkIHJlcXVlc3REZXZpY2UoY29uc3QgV2ViR1BVOjpEZXZpY2VEZXNjcmlw
dG9yJiwgV2ViR1BVSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJHUFU6OlN1
cHBvcnRlZEZlYXR1cmVzJiYsIFdlYkdQVTo6U3VwcG9ydGVkTGltaXRzJiYpPiYmKTsKIAogICAg
IFJlZjxQQUw6OldlYkdQVTo6QWRhcHRlcj4gbV9iYWNraW5nOwogICAgIFdlYkdQVTo6T2JqZWN0
SGVhcCYgbV9vYmplY3RIZWFwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCdWZmZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCdWZmZXIuY3BwCmluZGV4IDg1YjQwNzFhNTU5MmM4
YWE0MmE3ZWI3MWE2NmRkZTM3YzViZjVjMDguLmZmMWUyNDkyNzFhMzY1YWM1Mjk5NTdmNjBiYWYz
MjdkZWUxYjZkMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlQnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJ1ZmZlci5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgdm9pZCBS
ZW1vdGVCdWZmZXI6OnN0b3BMaXN0ZW5pbmdGb3JJUEMoKQogICAgIG1fc3RyZWFtQ29ubmVjdGlv
bi0+c3RvcFJlY2VpdmluZ01lc3NhZ2VzKE1lc3NhZ2VzOjpSZW1vdGVCdWZmZXI6Om1lc3NhZ2VS
ZWNlaXZlck5hbWUoKSwgbV9pZGVudGlmaWVyLnRvVUludDY0KCkpOwogfQogCi12b2lkIFJlbW90
ZUJ1ZmZlcjo6bWFwQXN5bmMoUEFMOjpXZWJHUFU6Ok1hcE1vZGVGbGFncyBtYXBNb2RlRmxhZ3Ms
IFBBTDo6V2ViR1BVOjpTaXplNjQgb2Zmc2V0LCBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpT
aXplNjQ+IHNpemUsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFZl
Y3Rvcjx1aW50OF90Pj4mJik+JiYgY2FsbGJhY2spCit2b2lkIFJlbW90ZUJ1ZmZlcjo6bWFwQXN5
bmMoUEFMOjpXZWJHUFU6Ok1hcE1vZGVGbGFncyBtYXBNb2RlRmxhZ3MsIFBBTDo6V2ViR1BVOjpT
aXplNjQgb2Zmc2V0LCBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaXplNjQ+IHNpemUsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxWZWN0b3I8dWludDhfdD4+JiYpPiYm
IGNhbGxiYWNrKQogewogICAgIGlmIChtX2lzTWFwcGVkKSB7CiAgICAgICAgIGNhbGxiYWNrKHN0
ZDo6bnVsbG9wdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvV2ViR1BVL1JlbW90ZUJ1ZmZlci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1dlYkdQVS9SZW1vdGVCdWZmZXIuaAppbmRleCBlN2Y0NzRiMmY4NzUwOTljOWQxMTBmODg4
MjQyZGQxZTVjZGVkZTk5Li5jNzAyN2JjOWU5N2E5MmJjOWZmNmMzZWNjYzdlZjIxYjM5MGQ4MDcz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1Jl
bW90ZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJH
UFUvUmVtb3RlQnVmZmVyLmgKQEAgLTc3LDcgKzc3LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQg
ZGlkUmVjZWl2ZVN0cmVhbU1lc3NhZ2UoSVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uQmFzZSYs
IElQQzo6RGVjb2RlciYpIGZpbmFsOwogCi0gICAgdm9pZCBtYXBBc3luYyhQQUw6OldlYkdQVTo6
TWFwTW9kZUZsYWdzLCBQQUw6OldlYkdQVTo6U2l6ZTY0IG9mZnNldCwgc3RkOjpvcHRpb25hbDxQ
QUw6OldlYkdQVTo6U2l6ZTY0PiBzaXplRm9yTWFwLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZv
aWQoc3RkOjpvcHRpb25hbDxWZWN0b3I8dWludDhfdD4+JiYpPiYmKTsKKyAgICB2b2lkIG1hcEFz
eW5jKFBBTDo6V2ViR1BVOjpNYXBNb2RlRmxhZ3MsIFBBTDo6V2ViR1BVOjpTaXplNjQgb2Zmc2V0
LCBzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpTaXplNjQ+IHNpemVGb3JNYXAsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxWZWN0b3I8dWludDhfdD4+JiYpPiYmKTsKICAg
ICB2b2lkIHVubWFwKFZlY3Rvcjx1aW50OF90PiYmKTsKIAogICAgIHZvaWQgZGVzdHJveSgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVEZXZpY2UuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9S
ZW1vdGVEZXZpY2UuY3BwCmluZGV4IDU4MjQwYjE3OGRlYjdkNTM0ZGZjN2M3OTk3ZDUwNjUxNzlm
YmU3ODguLjEwMGFjZWE3ZGE0MjU4NDYwMmZhMzQyMWI0ZThmOWMyYTEyMDcyYjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlRGV2aWNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90
ZURldmljZS5jcHAKQEAgLTIxOSw3ICsyMTksNyBAQCB2b2lkIFJlbW90ZURldmljZTo6Y3JlYXRl
UmVuZGVyUGlwZWxpbmUoY29uc3QgV2ViR1BVOjpSZW5kZXJQaXBlbGluZURlc2NyaXB0b3ImCiAg
ICAgbV9vYmplY3RIZWFwLmFkZE9iamVjdChpZGVudGlmaWVyLCByZW1vdGVSZW5kZXJQaXBlbGlu
ZSk7CiB9CiAKLXZvaWQgUmVtb3RlRGV2aWNlOjpjcmVhdGVDb21wdXRlUGlwZWxpbmVBc3luYyhj
b25zdCBXZWJHUFU6OkNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIFdlYkdQ
VUlkZW50aWZpZXIgaWRlbnRpZmllciwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYg
Y2FsbGJhY2spCit2b2lkIFJlbW90ZURldmljZTo6Y3JlYXRlQ29tcHV0ZVBpcGVsaW5lQXN5bmMo
Y29uc3QgV2ViR1BVOjpDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBXZWJH
UFVJZGVudGlmaWVyIGlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjYWxs
YmFjaykKIHsKICAgICBhdXRvIGNvbnZlcnRlZERlc2NyaXB0b3IgPSBtX29iamVjdEhlYXAuY29u
dmVydEZyb21CYWNraW5nKGRlc2NyaXB0b3IpOwogICAgIEFTU0VSVChjb252ZXJ0ZWREZXNjcmlw
dG9yKTsKQEAgLTIzNSw3ICsyMzUsNyBAQCB2b2lkIFJlbW90ZURldmljZTo6Y3JlYXRlQ29tcHV0
ZVBpcGVsaW5lQXN5bmMoY29uc3QgV2ViR1BVOjpDb21wdXRlUGlwZWxpbmVEZXNjcgogICAgIH0p
OwogfQogCi12b2lkIFJlbW90ZURldmljZTo6Y3JlYXRlUmVuZGVyUGlwZWxpbmVBc3luYyhjb25z
dCBXZWJHUFU6OlJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciYgZGVzY3JpcHRvciwgV2ViR1BVSWRl
bnRpZmllciBpZGVudGlmaWVyLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjYWxs
YmFjaykKK3ZvaWQgUmVtb3RlRGV2aWNlOjpjcmVhdGVSZW5kZXJQaXBlbGluZUFzeW5jKGNvbnN0
IFdlYkdQVTo6UmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBXZWJHUFVJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjYWxsYmFjaykK
IHsKICAgICBhdXRvIGNvbnZlcnRlZERlc2NyaXB0b3IgPSBtX29iamVjdEhlYXAuY29udmVydEZy
b21CYWNraW5nKGRlc2NyaXB0b3IpOwogICAgIEFTU0VSVChjb252ZXJ0ZWREZXNjcmlwdG9yKTsK
QEAgLTI5NSw3ICsyOTUsNyBAQCB2b2lkIFJlbW90ZURldmljZTo6cHVzaEVycm9yU2NvcGUoUEFM
OjpXZWJHUFU6OkVycm9yRmlsdGVyIGVycm9yRmlsdGVyKQogICAgIG1fYmFja2luZy0+cHVzaEVy
cm9yU2NvcGUoZXJyb3JGaWx0ZXIpOwogfQogCi12b2lkIFJlbW90ZURldmljZTo6cG9wRXJyb3JT
Y29wZShXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZWJHUFU6OkVy
cm9yPiYmKT4mJiBjYWxsYmFjaykKK3ZvaWQgUmVtb3RlRGV2aWNlOjpwb3BFcnJvclNjb3BlKENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZWJHUFU6OkVycm9yPiYmKT4mJiBj
YWxsYmFjaykKIHsKICAgICBtX2JhY2tpbmctPnBvcEVycm9yU2NvcGUoW2NhbGxiYWNrID0gV1RG
TW92ZShjYWxsYmFjayldIChzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpFcnJvcj4mJiBlcnJv
cikgbXV0YWJsZSB7CiAgICAgICAgIGlmICghZXJyb3IpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlRGV2aWNlLmggYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZURldmljZS5oCmluZGV4IGU3
MTEwNWY4MTZkOWE3OWU2YTE0NmFmYThlOTdkZmU2NGM5MjExMzYuLjI2Njc4ZjQ4MDA2Nzk0MWZm
ZjJhN2FiNmE3M2NiY2ViM2Y4NGFkMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlRGV2aWNlLmgKKysrIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVEZXZpY2UuaApAQCAtMTAyLDggKzEwMiw4
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjcmVhdGVTaGFkZXJNb2R1bGUoY29uc3QgV2ViR1BVOjpT
aGFkZXJNb2R1bGVEZXNjcmlwdG9yJiwgV2ViR1BVSWRlbnRpZmllcik7CiAgICAgdm9pZCBjcmVh
dGVDb21wdXRlUGlwZWxpbmUoY29uc3QgV2ViR1BVOjpDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9y
JiwgV2ViR1BVSWRlbnRpZmllcik7CiAgICAgdm9pZCBjcmVhdGVSZW5kZXJQaXBlbGluZShjb25z
dCBXZWJHUFU6OlJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciYsIFdlYkdQVUlkZW50aWZpZXIpOwot
ICAgIHZvaWQgY3JlYXRlQ29tcHV0ZVBpcGVsaW5lQXN5bmMoY29uc3QgV2ViR1BVOjpDb21wdXRl
UGlwZWxpbmVEZXNjcmlwdG9yJiwgV2ViR1BVSWRlbnRpZmllciwgV1RGOjpDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgY3JlYXRlUmVuZGVyUGlwZWxpbmVBc3luYyhjb25z
dCBXZWJHUFU6OlJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciYsIFdlYkdQVUlkZW50aWZpZXIsIFdU
Rjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIGNyZWF0ZUNvbXB1dGVQ
aXBlbGluZUFzeW5jKGNvbnN0IFdlYkdQVTo6Q29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvciYsIFdl
YkdQVUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBj
cmVhdGVSZW5kZXJQaXBlbGluZUFzeW5jKGNvbnN0IFdlYkdQVTo6UmVuZGVyUGlwZWxpbmVEZXNj
cmlwdG9yJiwgV2ViR1BVSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
IAogICAgIHZvaWQgY3JlYXRlQ29tbWFuZEVuY29kZXIoY29uc3Qgc3RkOjpvcHRpb25hbDxXZWJH
UFU6OkNvbW1hbmRFbmNvZGVyRGVzY3JpcHRvcj4mLCBXZWJHUFVJZGVudGlmaWVyKTsKICAgICB2
b2lkIGNyZWF0ZVJlbmRlckJ1bmRsZUVuY29kZXIoY29uc3QgV2ViR1BVOjpSZW5kZXJCdW5kbGVF
bmNvZGVyRGVzY3JpcHRvciYsIFdlYkdQVUlkZW50aWZpZXIpOwpAQCAtMTExLDcgKzExMSw3IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBjcmVhdGVRdWVyeVNldChjb25zdCBXZWJHUFU6OlF1ZXJ5U2V0
RGVzY3JpcHRvciYsIFdlYkdQVUlkZW50aWZpZXIpOwogCiAgICAgdm9pZCBwdXNoRXJyb3JTY29w
ZShQQUw6OldlYkdQVTo6RXJyb3JGaWx0ZXIpOwotICAgIHZvaWQgcG9wRXJyb3JTY29wZShXVEY6
OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZWJHUFU6OkVycm9yPiYmKT4m
Jik7CisgICAgdm9pZCBwb3BFcnJvclNjb3BlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpv
cHRpb25hbDxXZWJHUFU6OkVycm9yPiYmKT4mJik7CiAKICAgICB2b2lkIHNldExhYmVsKFN0cmlu
ZyYmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dl
YkdQVS9SZW1vdGVHUFUuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dl
YkdQVS9SZW1vdGVHUFUuY3BwCmluZGV4IDNlZjllYjg4Y2M3NmZhNTVmMDc0ODA4ZjU1OGJmNWM0
MDNjYjFhYzUuLmRmNTIzODRlMzliMTQ0Njc4YTVkMjY1MmU3ZDZkZWM1NTk2MGQ2ODAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlR1BV
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90
ZUdQVS5jcHAKQEAgLTEwNSw3ICsxMDUsNyBAQCB2b2lkIFJlbW90ZUdQVTo6d29ya1F1ZXVlVW5p
bml0aWFsaXplKCkKICAgICBtX2JhY2tpbmcgPSBudWxscHRyOwogfQogCi12b2lkIFJlbW90ZUdQ
VTo6cmVxdWVzdEFkYXB0ZXIoY29uc3QgV2ViR1BVOjpSZXF1ZXN0QWRhcHRlck9wdGlvbnMmIG9w
dGlvbnMsIFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllciwgV1RGOjpDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKHN0ZDo6b3B0aW9uYWw8UmVxdWVzdEFkYXB0ZXJSZXNwb25zZT4mJik+JiYgY2FsbGJh
Y2spCit2b2lkIFJlbW90ZUdQVTo6cmVxdWVzdEFkYXB0ZXIoY29uc3QgV2ViR1BVOjpSZXF1ZXN0
QWRhcHRlck9wdGlvbnMmIG9wdGlvbnMsIFdlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllciwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFJlcXVlc3RBZGFwdGVyUmVzcG9uc2U+
JiYpPiYmIGNhbGxiYWNrKQogewogICAgIGFzc2VydElzQ3VycmVudCh3b3JrUXVldWUoKSk7CiAg
ICAgQVNTRVJUKG1fYmFja2luZyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUdQVS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVHUFUuaAppbmRleCBhMTUxNDgzNTI5ZTJjNGNkM2U5OGJk
MmZjMjZkNTZjOThhNGNkOTBkLi43MjE3NGI1ZWZhNDZjMzRlNjM1OWZmMGQ5ZTNmZGU4MmI4YjRm
MDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZUdQVS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJH
UFUvUmVtb3RlR1BVLmgKQEAgLTEzNCw3ICsxMzQsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBk
aWRSZWNlaXZlU3RyZWFtTWVzc2FnZShJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb25CYXNlJiwg
SVBDOjpEZWNvZGVyJikgZmluYWw7CiAKLSAgICB2b2lkIHJlcXVlc3RBZGFwdGVyKGNvbnN0IFdl
YkdQVTo6UmVxdWVzdEFkYXB0ZXJPcHRpb25zJiwgV2ViR1BVSWRlbnRpZmllciwgV1RGOjpDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8UmVxdWVzdEFkYXB0ZXJSZXNwb25zZT4m
Jik+JiYpOworICAgIHZvaWQgcmVxdWVzdEFkYXB0ZXIoY29uc3QgV2ViR1BVOjpSZXF1ZXN0QWRh
cHRlck9wdGlvbnMmLCBXZWJHUFVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0
ZDo6b3B0aW9uYWw8UmVxdWVzdEFkYXB0ZXJSZXNwb25zZT4mJik+JiYpOwogCiAgICAgV2Vha1B0
cjxHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzPiBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7
CiAgICAgUmVmPElQQzo6U3RyZWFtQ29ubmVjdGlvbldvcmtRdWV1ZT4gbV93b3JrUXVldWU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90
ZVF1ZXVlLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVt
b3RlUXVldWUuY3BwCmluZGV4IDZmZWYwM2M4N2E2MjJkMGFhNzUwYWQ2OWEzYTc4NjlkNzVmYWM3
ZWYuLjJkZGQ4M2VhZDc3N2U0ZWVjYjM3ZTk0M2RiNjA3Y2ViYzVhOTI4NzMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVldWUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVl
dWUuY3BwCkBAIC02NSw3ICs2NSw3IEBAIHZvaWQgUmVtb3RlUXVldWU6OnN1Ym1pdChWZWN0b3I8
V2ViR1BVSWRlbnRpZmllcj4mJiBjb21tYW5kQnVmZmVycykKICAgICBtX2JhY2tpbmctPnN1Ym1p
dChXVEZNb3ZlKGNvbnZlcnRlZENvbW1hbmRCdWZmZXJzKSk7CiB9CiAKLXZvaWQgUmVtb3RlUXVl
dWU6Om9uU3VibWl0dGVkV29ya0RvbmUoV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYg
Y2FsbGJhY2spCit2b2lkIFJlbW90ZVF1ZXVlOjpvblN1Ym1pdHRlZFdvcmtEb25lKENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJiBjYWxsYmFjaykKIHsKICAgICBtX2JhY2tpbmctPm9uU3VibWl0
dGVkV29ya0RvbmUoW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldICgpIG11dGFibGUgewog
ICAgICAgICBjYWxsYmFjaygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVRdWV1ZS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVRdWV1ZS5oCmluZGV4IGMzY2JmYzk2MzM0NTEwZGI4MjBh
Njg1NDNmOTJjOTZlMjAyZjEzMjkuLjI4ZDkzMTJmYjMyMjUxYWQ0NjQ3ZWYyZTBlYmI5YWI3NmRm
MWI1ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJH
UFUvUmVtb3RlUXVldWUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
V2ViR1BVL1JlbW90ZVF1ZXVlLmgKQEAgLTgzLDcgKzgzLDcgQEAgcHJpdmF0ZToKIAogICAgIHZv
aWQgc3VibWl0KFZlY3RvcjxXZWJHUFVJZGVudGlmaWVyPiYmKTsKIAotICAgIHZvaWQgb25TdWJt
aXR0ZWRXb3JrRG9uZShXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9p
ZCBvblN1Ym1pdHRlZFdvcmtEb25lKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKICAg
ICB2b2lkIHdyaXRlQnVmZmVyKAogICAgICAgICBXZWJHUFVJZGVudGlmaWVyLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVTaGFkZXJN
b2R1bGUuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVTaGFkZXJNb2R1bGUuY3BwCmluZGV4IDE0NmQzZDQzOTAwNGM0ZTYxMGY5NWMyOGEzMzA3YzNl
MDlkN2VjODQuLjIyZjk1ZDkyODk1ZGQ5M2E1YWRkYzc3MDYxZGYxMWVjNTRiNDBhMGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlU2hh
ZGVyTW9kdWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2Vi
R1BVL1JlbW90ZVNoYWRlck1vZHVsZS5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgdm9pZCBSZW1vdGVT
aGFkZXJNb2R1bGU6OnN0b3BMaXN0ZW5pbmdGb3JJUEMoKQogICAgIG1fc3RyZWFtQ29ubmVjdGlv
bi0+c3RvcFJlY2VpdmluZ01lc3NhZ2VzKE1lc3NhZ2VzOjpSZW1vdGVTaGFkZXJNb2R1bGU6Om1l
c3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9pZGVudGlmaWVyLnRvVUludDY0KCkpOwogfQogCi12b2lk
IFJlbW90ZVNoYWRlck1vZHVsZTo6Y29tcGlsYXRpb25JbmZvKFdURjo6Q29tcGxldGlvbkhhbmRs
ZXI8dm9pZChWZWN0b3I8V2ViR1BVOjpDb21waWxhdGlvbk1lc3NhZ2U+JiYpPiYmIGNhbGxiYWNr
KQordm9pZCBSZW1vdGVTaGFkZXJNb2R1bGU6OmNvbXBpbGF0aW9uSW5mbyhDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFZlY3RvcjxXZWJHUFU6OkNvbXBpbGF0aW9uTWVzc2FnZT4mJik+JiYgY2FsbGJh
Y2spCiB7CiAgICAgbV9iYWNraW5nLT5jb21waWxhdGlvbkluZm8oW2NhbGxiYWNrID0gV1RGTW92
ZShjYWxsYmFjayldIChSZWY8UEFMOjpXZWJHUFU6OkNvbXBpbGF0aW9uSW5mbz4mJiBjb21waWxh
dGlvbk1lc3NhZ2UpIG11dGFibGUgewogICAgICAgICBhdXRvIGNvbnZlcnRlZE1lc3NhZ2VzID0g
Y29tcGlsYXRpb25NZXNzYWdlLT5tZXNzYWdlcygpLm1hcChbXSAoY29uc3QgUmVmPFBBTDo6V2Vi
R1BVOjpDb21waWxhdGlvbk1lc3NhZ2U+JiBtZXNzYWdlKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVNoYWRlck1vZHVsZS5oIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVTaGFkZXJNb2R1
bGUuaAppbmRleCA1YjY1NmRiMTNmODliZTEzMTAzMmFmZjQzMzBjMjE0NmFiZDZmYTFiLi5hMmE4
M2I0YWE1MjcyNDJhNTQ0NjQwOTdlYjQ0ODY4MTkzMGVjMGQ0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVNoYWRlck1vZHVsZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlU2hhZGVy
TW9kdWxlLmgKQEAgLTc1LDcgKzc1LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgZGlkUmVjZWl2
ZVN0cmVhbU1lc3NhZ2UoSVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uQmFzZSYsIElQQzo6RGVj
b2RlciYpIGZpbmFsOwogCi0gICAgdm9pZCBjb21waWxhdGlvbkluZm8oV1RGOjpDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJHUFU6OkNvbXBpbGF0aW9uTWVzc2FnZT4mJik+JiYpOwor
ICAgIHZvaWQgY29tcGlsYXRpb25JbmZvKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdl
YkdQVTo6Q29tcGlsYXRpb25NZXNzYWdlPiYmKT4mJik7CiAKICAgICB2b2lkIHNldExhYmVsKFN0
cmluZyYmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlQWRhcHRlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUFkYXB0ZXJQcm94eS5jcHAKaW5kZXggNTkw
OGU4YmZmNGRlNzc0Y2IwOWY0OTA3MjRlYjY4YjEyM2I1NWQ3MC4uYTRmNzZmZDRjMzZlZGZjNzFi
ZjRlOTM5MTJhNDQxOGU2ZTg3YjhkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQWRhcHRlclByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVBZGFwdGVyUHJv
eHkuY3BwCkBAIC00Niw3ICs0Niw3IEBAIFJlbW90ZUFkYXB0ZXJQcm94eTo6flJlbW90ZUFkYXB0
ZXJQcm94eSgpCiB7CiB9CiAKLXZvaWQgUmVtb3RlQWRhcHRlclByb3h5OjpyZXF1ZXN0RGV2aWNl
KGNvbnN0IFBBTDo6V2ViR1BVOjpEZXZpY2VEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBXVEY6OkZ1
bmN0aW9uPHZvaWQoUmVmPFBBTDo6V2ViR1BVOjpEZXZpY2U+JiYpPiYmIGNhbGxiYWNrKQordm9p
ZCBSZW1vdGVBZGFwdGVyUHJveHk6OnJlcXVlc3REZXZpY2UoY29uc3QgUEFMOjpXZWJHUFU6OkRl
dmljZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmPFBB
TDo6V2ViR1BVOjpEZXZpY2U+JiYpPiYmIGNhbGxiYWNrKQogewogICAgIGF1dG8gY29udmVydGVk
RGVzY3JpcHRvciA9IG1fY29udmVydFRvQmFja2luZ0NvbnRleHQtPmNvbnZlcnRUb0JhY2tpbmco
ZGVzY3JpcHRvcik7CiAgICAgQVNTRVJUKGNvbnZlcnRlZERlc2NyaXB0b3IpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQWRh
cHRlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVBZGFwdGVyUHJveHkuaAppbmRleCA4MDhkZGFhNGIwYWIwOWMwMzI0MDEyM2QwMTQ0
NWE0NWQxZmIwZjY0Li4wM2FjNTEzZDQ1NGI3M2Y3ZWQ2ZWEzYTI5NzlmNjgwZWZjZDJhZjQ3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9S
ZW1vdGVBZGFwdGVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1dlYkdQVS9SZW1vdGVBZGFwdGVyUHJveHkuaApAQCAtNzcsOSArNzcsOSBAQCBwcml2
YXRlOgogICAgICAgICByZXR1cm4gcm9vdCgpLnN0cmVhbUNsaWVudENvbm5lY3Rpb24oKS5zZW5k
U3luYyhXVEZNb3ZlKG1lc3NhZ2UpLCBXVEZNb3ZlKHJlcGx5KSwgYmFja2luZygpLCBkZWZhdWx0
U2VuZFRpbWVvdXQpOwogICAgIH0KIAotICAgIHZvaWQgcmVxdWVzdERldmljZShjb25zdCBQQUw6
OldlYkdQVTo6RGV2aWNlRGVzY3JpcHRvciYsIFdURjo6RnVuY3Rpb248dm9pZChSZWY8UEFMOjpX
ZWJHUFU6OkRldmljZT4mJik+JiYpIGZpbmFsOworICAgIHZvaWQgcmVxdWVzdERldmljZShjb25z
dCBQQUw6OldlYkdQVTo6RGV2aWNlRGVzY3JpcHRvciYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
UmVmPFBBTDo6V2ViR1BVOjpEZXZpY2U+JiYpPiYmKSBmaW5hbDsKIAotICAgIERlcXVlPFdURjo6
RnVuY3Rpb248dm9pZChSZWY8UEFMOjpXZWJHUFU6OkRldmljZT4pPj4gbV9jYWxsYmFja3M7Cisg
ICAgRGVxdWU8Q29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWY8UEFMOjpXZWJHUFU6OkRldmljZT4p
Pj4gbV9jYWxsYmFja3M7CiAKICAgICBXZWJHUFVJZGVudGlmaWVyIG1fYmFja2luZzsKICAgICBS
ZWY8Q29udmVydFRvQmFja2luZ0NvbnRleHQ+IG1fY29udmVydFRvQmFja2luZ0NvbnRleHQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9S
ZW1vdGVCdWZmZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL1dlYkdQVS9SZW1vdGVCdWZmZXJQcm94eS5jcHAKaW5kZXggMWE5M2ZmMWRmYmE2ZTdmZjI1
ZTdiZmZhNDZlY2U3NWRjNzVlN2JlMy4uYTg3OWMzNjA5ODQ3ZmRjYWZlYjdkOWRiYzU2ZmY3MGI5
NDI1NWY4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlQnVmZmVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUJ1ZmZlclByb3h5LmNwcApAQCAtNDQsNyAr
NDQsNyBAQCBSZW1vdGVCdWZmZXJQcm94eTo6flJlbW90ZUJ1ZmZlclByb3h5KCkKIHsKIH0KIAot
dm9pZCBSZW1vdGVCdWZmZXJQcm94eTo6bWFwQXN5bmMoUEFMOjpXZWJHUFU6Ok1hcE1vZGVGbGFn
cyBtYXBNb2RlRmxhZ3MsIFBBTDo6V2ViR1BVOjpTaXplNjQgb2Zmc2V0LCBzdGQ6Om9wdGlvbmFs
PFBBTDo6V2ViR1BVOjpTaXplNjQ+IHNpemUsIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNhbGxi
YWNrKQordm9pZCBSZW1vdGVCdWZmZXJQcm94eTo6bWFwQXN5bmMoUEFMOjpXZWJHUFU6Ok1hcE1v
ZGVGbGFncyBtYXBNb2RlRmxhZ3MsIFBBTDo6V2ViR1BVOjpTaXplNjQgb2Zmc2V0LCBzdGQ6Om9w
dGlvbmFsPFBBTDo6V2ViR1BVOjpTaXplNjQ+IHNpemUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJiBjYWxsYmFjaykKIHsKICAgICBzdGQ6Om9wdGlvbmFsPFZlY3Rvcjx1aW50OF90Pj4gZGF0
YTsKICAgICBhdXRvIHNlbmRSZXN1bHQgPSBzZW5kU3luYyhNZXNzYWdlczo6UmVtb3RlQnVmZmVy
OjpNYXBBc3luYyhtYXBNb2RlRmxhZ3MsIG9mZnNldCwgc2l6ZSksIHsgZGF0YSB9KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90
ZUJ1ZmZlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dl
YkdQVS9SZW1vdGVCdWZmZXJQcm94eS5oCmluZGV4IDg5MzAxMjUwMzJlMWUzMzFhNGZjYWNjOGI4
MTY0MGUxMmMwOWU3YmEuLmVjOTA1ZDAzMmY5YjFkNDdlNDcwZjJmMzZkMDZlYzY1NzliYWZjZTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZUJ1ZmZlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9XZWJHUFUvUmVtb3RlQnVmZmVyUHJveHkuaApAQCAtNzMsNyArNzMsNyBAQCBwcml2
YXRlOgogICAgICAgICByZXR1cm4gcm9vdCgpLnN0cmVhbUNsaWVudENvbm5lY3Rpb24oKS5zZW5k
U3luYyhXVEZNb3ZlKG1lc3NhZ2UpLCBXVEZNb3ZlKHJlcGx5KSwgYmFja2luZygpLCBkZWZhdWx0
U2VuZFRpbWVvdXQpOwogICAgIH0KIAotICAgIHZvaWQgbWFwQXN5bmMoUEFMOjpXZWJHUFU6Ok1h
cE1vZGVGbGFncywgUEFMOjpXZWJHUFU6OlNpemU2NCBvZmZzZXQsIHN0ZDo6b3B0aW9uYWw8UEFM
OjpXZWJHUFU6OlNpemU2ND4gc2l6ZUZvck1hcCwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYpIGZp
bmFsOworICAgIHZvaWQgbWFwQXN5bmMoUEFMOjpXZWJHUFU6Ok1hcE1vZGVGbGFncywgUEFMOjpX
ZWJHUFU6OlNpemU2NCBvZmZzZXQsIHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemU2ND4g
c2l6ZUZvck1hcCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5hbDsKICAgICBNYXBw
ZWRSYW5nZSBnZXRNYXBwZWRSYW5nZShQQUw6OldlYkdQVTo6U2l6ZTY0IG9mZnNldCwgc3RkOjpv
cHRpb25hbDxQQUw6OldlYkdQVTo6U2l6ZTY0PikgZmluYWw7CiAgICAgdm9pZCB1bm1hcCgpIGZp
bmFsOwogCkBAIC04MSw3ICs4MSw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHNldExhYmVsSW50
ZXJuYWwoY29uc3QgU3RyaW5nJikgZmluYWw7CiAKLSAgICBEZXF1ZTxXVEY6OkZ1bmN0aW9uPHZv
aWQoKT4+IG1fY2FsbGJhY2tzOworICAgIERlcXVlPENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4+
IG1fY2FsbGJhY2tzOwogCiAgICAgV2ViR1BVSWRlbnRpZmllciBtX2JhY2tpbmc7CiAgICAgUmVm
PENvbnZlcnRUb0JhY2tpbmdDb250ZXh0PiBtX2NvbnZlcnRUb0JhY2tpbmdDb250ZXh0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVt
b3RlRGV2aWNlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlRGV2aWNlUHJveHkuY3BwCmluZGV4IDJiNDRiM2U3N2U5NGY5MTVhZWE2
MjhkNmJlNDAzOWExNDc4OGJjYTAuLmQzYTM3OGI4NzFmZGIyOTE5MGU5MGEzNzM2ZmMzZDBmOGYy
NTA4MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
V2ViR1BVL1JlbW90ZURldmljZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVEZXZpY2VQcm94eS5jcHAKQEAgLTIxMyw3ICsy
MTMsNyBAQCBSZWY8UEFMOjpXZWJHUFU6OlJlbmRlclBpcGVsaW5lPiBSZW1vdGVEZXZpY2VQcm94
eTo6Y3JlYXRlUmVuZGVyUGlwZWxpbmUoY29uc3QgUAogICAgIHJldHVybiBSZW1vdGVSZW5kZXJQ
aXBlbGluZVByb3h5OjpjcmVhdGUoKnRoaXMsIG1fY29udmVydFRvQmFja2luZ0NvbnRleHQsIGlk
ZW50aWZpZXIpOwogfQogCi12b2lkIFJlbW90ZURldmljZVByb3h5OjpjcmVhdGVDb21wdXRlUGlw
ZWxpbmVBc3luYyhjb25zdCBQQUw6OldlYkdQVTo6Q29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvciYg
ZGVzY3JpcHRvciwgV1RGOjpGdW5jdGlvbjx2b2lkKFJlZjxQQUw6OldlYkdQVTo6Q29tcHV0ZVBp
cGVsaW5lPiYmKT4mJiBjYWxsYmFjaykKK3ZvaWQgUmVtb3RlRGV2aWNlUHJveHk6OmNyZWF0ZUNv
bXB1dGVQaXBlbGluZUFzeW5jKGNvbnN0IFBBTDo6V2ViR1BVOjpDb21wdXRlUGlwZWxpbmVEZXNj
cmlwdG9yJiBkZXNjcmlwdG9yLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZjxQQUw6OldlYkdQ
VTo6Q29tcHV0ZVBpcGVsaW5lPiYmKT4mJiBjYWxsYmFjaykKIHsKICAgICBhdXRvIGNvbnZlcnRl
ZERlc2NyaXB0b3IgPSBtX2NvbnZlcnRUb0JhY2tpbmdDb250ZXh0LT5jb252ZXJ0VG9CYWNraW5n
KGRlc2NyaXB0b3IpOwogICAgIEFTU0VSVChjb252ZXJ0ZWREZXNjcmlwdG9yKTsKQEAgLTIyOCw3
ICsyMjgsNyBAQCB2b2lkIFJlbW90ZURldmljZVByb3h5OjpjcmVhdGVDb21wdXRlUGlwZWxpbmVB
c3luYyhjb25zdCBQQUw6OldlYkdQVTo6Q29tcHV0ZVBpcAogICAgIGNhbGxiYWNrKFJlbW90ZUNv
bXB1dGVQaXBlbGluZVByb3h5OjpjcmVhdGUoKnRoaXMsIG1fY29udmVydFRvQmFja2luZ0NvbnRl
eHQsIGlkZW50aWZpZXIpKTsKIH0KIAotdm9pZCBSZW1vdGVEZXZpY2VQcm94eTo6Y3JlYXRlUmVu
ZGVyUGlwZWxpbmVBc3luYyhjb25zdCBQQUw6OldlYkdQVTo6UmVuZGVyUGlwZWxpbmVEZXNjcmlw
dG9yJiBkZXNjcmlwdG9yLCBXVEY6OkZ1bmN0aW9uPHZvaWQoUmVmPFBBTDo6V2ViR1BVOjpSZW5k
ZXJQaXBlbGluZT4mJik+JiYgY2FsbGJhY2spCit2b2lkIFJlbW90ZURldmljZVByb3h5OjpjcmVh
dGVSZW5kZXJQaXBlbGluZUFzeW5jKGNvbnN0IFBBTDo6V2ViR1BVOjpSZW5kZXJQaXBlbGluZURl
c2NyaXB0b3ImIGRlc2NyaXB0b3IsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmPFBBTDo6V2Vi
R1BVOjpSZW5kZXJQaXBlbGluZT4mJik+JiYgY2FsbGJhY2spCiB7CiAgICAgYXV0byBjb252ZXJ0
ZWREZXNjcmlwdG9yID0gbV9jb252ZXJ0VG9CYWNraW5nQ29udGV4dC0+Y29udmVydFRvQmFja2lu
ZyhkZXNjcmlwdG9yKTsKICAgICBBU1NFUlQoY29udmVydGVkRGVzY3JpcHRvcik7CkBAIC0yOTcs
NyArMjk3LDcgQEAgdm9pZCBSZW1vdGVEZXZpY2VQcm94eTo6cHVzaEVycm9yU2NvcGUoUEFMOjpX
ZWJHUFU6OkVycm9yRmlsdGVyIGVycm9yRmlsdGVyKQogICAgIFVOVVNFRF9WQVJJQUJMRShzZW5k
UmVzdWx0KTsKIH0KIAotdm9pZCBSZW1vdGVEZXZpY2VQcm94eTo6cG9wRXJyb3JTY29wZShXVEY6
OkZ1bmN0aW9uPHZvaWQoc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6RXJyb3I+JiYpPiYmIGNh
bGxiYWNrKQordm9pZCBSZW1vdGVEZXZpY2VQcm94eTo6cG9wRXJyb3JTY29wZShDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkVycm9yPiYmKT4mJiBjYWxs
YmFjaykKIHsKICAgICBzdGQ6Om9wdGlvbmFsPEVycm9yPiBlcnJvcjsKICAgICBhdXRvIHNlbmRS
ZXN1bHQgPSBzZW5kU3luYyhNZXNzYWdlczo6UmVtb3RlRGV2aWNlOjpQb3BFcnJvclNjb3BlKCks
IHsgZXJyb3IgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1dlYkdQVS9SZW1vdGVEZXZpY2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlRGV2aWNlUHJveHkuaAppbmRleCA4MDE4YTBh
NDU4NjdlMjExYzA4OWMyYzQ5Mzk0ZWE4NDJjYWM1NDhkLi4zYmE0ZWRjODczNDMzNWYwNDYzODBi
ZDc4OTg4NDBmMGZlYTg4YzY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVEZXZpY2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZURldmljZVByb3h5LmgKQEAg
LTg4LDggKzg4LDggQEAgcHJpdmF0ZToKICAgICBSZWY8UEFMOjpXZWJHUFU6OlNoYWRlck1vZHVs
ZT4gY3JlYXRlU2hhZGVyTW9kdWxlKGNvbnN0IFBBTDo6V2ViR1BVOjpTaGFkZXJNb2R1bGVEZXNj
cmlwdG9yJikgZmluYWw7CiAgICAgUmVmPFBBTDo6V2ViR1BVOjpDb21wdXRlUGlwZWxpbmU+IGNy
ZWF0ZUNvbXB1dGVQaXBlbGluZShjb25zdCBQQUw6OldlYkdQVTo6Q29tcHV0ZVBpcGVsaW5lRGVz
Y3JpcHRvciYpIGZpbmFsOwogICAgIFJlZjxQQUw6OldlYkdQVTo6UmVuZGVyUGlwZWxpbmU+IGNy
ZWF0ZVJlbmRlclBpcGVsaW5lKGNvbnN0IFBBTDo6V2ViR1BVOjpSZW5kZXJQaXBlbGluZURlc2Ny
aXB0b3ImKSBmaW5hbDsKLSAgICB2b2lkIGNyZWF0ZUNvbXB1dGVQaXBlbGluZUFzeW5jKGNvbnN0
IFBBTDo6V2ViR1BVOjpDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yJiwgV1RGOjpGdW5jdGlvbjx2
b2lkKFJlZjxQQUw6OldlYkdQVTo6Q29tcHV0ZVBpcGVsaW5lPiYmKT4mJikgZmluYWw7Ci0gICAg
dm9pZCBjcmVhdGVSZW5kZXJQaXBlbGluZUFzeW5jKGNvbnN0IFBBTDo6V2ViR1BVOjpSZW5kZXJQ
aXBlbGluZURlc2NyaXB0b3ImLCBXVEY6OkZ1bmN0aW9uPHZvaWQoUmVmPFBBTDo6V2ViR1BVOjpS
ZW5kZXJQaXBlbGluZT4mJik+JiYpIGZpbmFsOworICAgIHZvaWQgY3JlYXRlQ29tcHV0ZVBpcGVs
aW5lQXN5bmMoY29uc3QgUEFMOjpXZWJHUFU6OkNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3ImLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZjxQQUw6OldlYkdQVTo6Q29tcHV0ZVBpcGVsaW5lPiYm
KT4mJikgZmluYWw7CisgICAgdm9pZCBjcmVhdGVSZW5kZXJQaXBlbGluZUFzeW5jKGNvbnN0IFBB
TDo6V2ViR1BVOjpSZW5kZXJQaXBlbGluZURlc2NyaXB0b3ImLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFJlZjxQQUw6OldlYkdQVTo6UmVuZGVyUGlwZWxpbmU+JiYpPiYmKSBmaW5hbDsKIAogICAg
IFJlZjxQQUw6OldlYkdQVTo6Q29tbWFuZEVuY29kZXI+IGNyZWF0ZUNvbW1hbmRFbmNvZGVyKGNv
bnN0IHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkNvbW1hbmRFbmNvZGVyRGVzY3JpcHRvcj4m
KSBmaW5hbDsKICAgICBSZWY8UEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRsZUVuY29kZXI+IGNyZWF0
ZVJlbmRlckJ1bmRsZUVuY29kZXIoY29uc3QgUEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRsZUVuY29k
ZXJEZXNjcmlwdG9yJikgZmluYWw7CkBAIC05NywxMyArOTcsMTMgQEAgcHJpdmF0ZToKICAgICBS
ZWY8UEFMOjpXZWJHUFU6OlF1ZXJ5U2V0PiBjcmVhdGVRdWVyeVNldChjb25zdCBQQUw6OldlYkdQ
VTo6UXVlcnlTZXREZXNjcmlwdG9yJikgZmluYWw7CiAKICAgICB2b2lkIHB1c2hFcnJvclNjb3Bl
KFBBTDo6V2ViR1BVOjpFcnJvckZpbHRlcikgZmluYWw7Ci0gICAgdm9pZCBwb3BFcnJvclNjb3Bl
KFdURjo6RnVuY3Rpb248dm9pZChzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpFcnJvcj4mJik+
JiYpIGZpbmFsOworICAgIHZvaWQgcG9wRXJyb3JTY29wZShDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkVycm9yPiYmKT4mJikgZmluYWw7CiAKICAgICB2
b2lkIHNldExhYmVsSW50ZXJuYWwoY29uc3QgU3RyaW5nJikgZmluYWw7CiAKLSAgICBEZXF1ZTxX
VEY6OkZ1bmN0aW9uPHZvaWQoUmVmPFBBTDo6V2ViR1BVOjpDb21wdXRlUGlwZWxpbmU+JiYpPj4g
bV9jcmVhdGVDb21wdXRlUGlwZWxpbmVBc3luY0NhbGxiYWNrczsKLSAgICBEZXF1ZTxXVEY6OkZ1
bmN0aW9uPHZvaWQoUmVmPFBBTDo6V2ViR1BVOjpSZW5kZXJQaXBlbGluZT4mJik+PiBtX2NyZWF0
ZVJlbmRlclBpcGVsaW5lQXN5bmNDYWxsYmFja3M7Ci0gICAgRGVxdWU8V1RGOjpGdW5jdGlvbjx2
b2lkKHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OkVycm9yPiYmKT4+IG1fcG9wRXJyb3JTY29w
ZUNhbGxiYWNrczsKKyAgICBEZXF1ZTxDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZjxQQUw6Oldl
YkdQVTo6Q29tcHV0ZVBpcGVsaW5lPiYmKT4+IG1fY3JlYXRlQ29tcHV0ZVBpcGVsaW5lQXN5bmND
YWxsYmFja3M7CisgICAgRGVxdWU8Q29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWY8UEFMOjpXZWJH
UFU6OlJlbmRlclBpcGVsaW5lPiYmKT4+IG1fY3JlYXRlUmVuZGVyUGlwZWxpbmVBc3luY0NhbGxi
YWNrczsKKyAgICBEZXF1ZTxDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8UEFM
OjpXZWJHUFU6OkVycm9yPiYmKT4+IG1fcG9wRXJyb3JTY29wZUNhbGxiYWNrczsKIAogICAgIFdl
YkdQVUlkZW50aWZpZXIgbV9iYWNraW5nOwogICAgIFJlZjxDb252ZXJ0VG9CYWNraW5nQ29udGV4
dD4gbV9jb252ZXJ0VG9CYWNraW5nQ29udGV4dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUdQVVByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUdQVVByb3h5LmNw
cAppbmRleCBlOGJjYmQxZjIwNmY1Mzk1ZDJlYjBhNTVhZGM3ZWU1YWFjMGI3OWU4Li5iMTBlMDlm
YTA1NWQ0MGVlMmZkZDlkYmFlZjQ4OTU1NzBjZDU3MjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVHUFVQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlR1BV
UHJveHkuY3BwCkBAIC05MCw3ICs5MCw3IEBAIHZvaWQgUmVtb3RlR1BVUHJveHk6OndhaXRVbnRp
bEluaXRpYWxpemVkKCkKICAgICBtX2xvc3QgPSB0cnVlOwogfQogCi12b2lkIFJlbW90ZUdQVVBy
b3h5OjpyZXF1ZXN0QWRhcHRlcihjb25zdCBQQUw6OldlYkdQVTo6UmVxdWVzdEFkYXB0ZXJPcHRp
b25zJiBvcHRpb25zLCBXVEY6OkZ1bmN0aW9uPHZvaWQoUmVmUHRyPFBBTDo6V2ViR1BVOjpBZGFw
dGVyPiYmKT4mJiBjYWxsYmFjaykKK3ZvaWQgUmVtb3RlR1BVUHJveHk6OnJlcXVlc3RBZGFwdGVy
KGNvbnN0IFBBTDo6V2ViR1BVOjpSZXF1ZXN0QWRhcHRlck9wdGlvbnMmIG9wdGlvbnMsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPFBBTDo6V2ViR1BVOjpBZGFwdGVyPiYmKT4mJiBjYWxs
YmFjaykKIHsKICAgICBpZiAobV9sb3N0KSB7CiAgICAgICAgIGNhbGxiYWNrKG51bGxwdHIpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUv
UmVtb3RlR1BVUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
V2ViR1BVL1JlbW90ZUdQVVByb3h5LmgKaW5kZXggYjAwNjg0MzgxMjIzNTMzZTM3Y2Q2YTljYmUw
ZWU1MmJhNzMyMTVlYS4uNzgzYzA2MjNkMWM1MDQ4YzJhOGM3NjRmYjJmZmU3ZGZkOGQ0MmFkZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUv
UmVtb3RlR1BVUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL1dlYkdQVS9SZW1vdGVHUFVQcm94eS5oCkBAIC05NSwxMSArOTUsMTEgQEAgcHJpdmF0ZToK
ICAgICB9CiAgICAgSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKCkgY29uc3QgeyByZXR1cm4g
bV9ncHVQcm9jZXNzQ29ubmVjdGlvbi0+Y29ubmVjdGlvbigpOyB9CiAKLSAgICB2b2lkIHJlcXVl
c3RBZGFwdGVyKGNvbnN0IFBBTDo6V2ViR1BVOjpSZXF1ZXN0QWRhcHRlck9wdGlvbnMmLCBXVEY6
OkZ1bmN0aW9uPHZvaWQoUmVmUHRyPFBBTDo6V2ViR1BVOjpBZGFwdGVyPiYmKT4mJikgZmluYWw7
CisgICAgdm9pZCByZXF1ZXN0QWRhcHRlcihjb25zdCBQQUw6OldlYkdQVTo6UmVxdWVzdEFkYXB0
ZXJPcHRpb25zJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8UEFMOjpXZWJHUFU6OkFk
YXB0ZXI+JiYpPiYmKSBmaW5hbDsKIAogICAgIHZvaWQgYWJhbmRvbkdQVVByb2Nlc3MoKTsKIAot
ICAgIERlcXVlPFdURjo6RnVuY3Rpb248dm9pZChSZWZQdHI8UEFMOjpXZWJHUFU6OkFkYXB0ZXI+
JiYpPj4gbV9jYWxsYmFja3M7CisgICAgRGVxdWU8Q29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQ
dHI8UEFMOjpXZWJHUFU6OkFkYXB0ZXI+JiYpPj4gbV9jYWxsYmFja3M7CiAKICAgICBXZWJHUFVJ
ZGVudGlmaWVyIG1fYmFja2luZzsKICAgICBSZWY8V2ViR1BVOjpDb252ZXJ0VG9CYWNraW5nQ29u
dGV4dD4gbV9jb252ZXJ0VG9CYWNraW5nQ29udGV4dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVF1ZXVlUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVldWVQ
cm94eS5jcHAKaW5kZXggNjAzMGNlNmUzMzNhYzFkMDgyNjU1NjZhNDkyNzUxMzM1ODZiODFjMC4u
ZDRjZDY4NjAzNmVmY2M0ODlkM2NhM2JkZjM4MWE2YmNhZWFjZTA4MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVldWVQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUv
UmVtb3RlUXVldWVQcm94eS5jcHAKQEAgLTU5LDcgKzU5LDcgQEAgdm9pZCBSZW1vdGVRdWV1ZVBy
b3h5OjpzdWJtaXQoVmVjdG9yPHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8UEFMOjpXZWJHUFU6OkNv
bW1hbmQKICAgICBVTlVTRURfVkFSSUFCTEUoc2VuZFJlc3VsdCk7CiB9CiAKLXZvaWQgUmVtb3Rl
UXVldWVQcm94eTo6b25TdWJtaXR0ZWRXb3JrRG9uZShXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBj
YWxsYmFjaykKK3ZvaWQgUmVtb3RlUXVldWVQcm94eTo6b25TdWJtaXR0ZWRXb3JrRG9uZShDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY2FsbGJhY2spCiB7CiAgICAgYXV0byBzZW5kUmVzdWx0
ID0gc2VuZFN5bmMoTWVzc2FnZXM6OlJlbW90ZVF1ZXVlOjpPblN1Ym1pdHRlZFdvcmtEb25lKCks
IHsgfSk7CiAgICAgVU5VU0VEX1ZBUklBQkxFKHNlbmRSZXN1bHQpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUXVldWVQcm94
eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3Rl
UXVldWVQcm94eS5oCmluZGV4IGUxMmMwYzA2OTRmZTZiNWE0YmMyMmU4NzY2NTg3N2JjY2RmNGVl
NGIuLjhiZTgyOGE5Nzc0ZGMxMTgyZDQxMDRiMTMyNDgxMjExZTY2MDkyMTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVF1ZXVl
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVRdWV1ZVByb3h5LmgKQEAgLTc1LDcgKzc1LDcgQEAgcHJpdmF0ZToKIAogICAgIHZv
aWQgc3VibWl0KFZlY3RvcjxzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPFBBTDo6V2ViR1BVOjpDb21t
YW5kQnVmZmVyPj4mJikgZmluYWw7CiAKLSAgICB2b2lkIG9uU3VibWl0dGVkV29ya0RvbmUoV1RG
OjpGdW5jdGlvbjx2b2lkKCk+JiYpIGZpbmFsOworICAgIHZvaWQgb25TdWJtaXR0ZWRXb3JrRG9u
ZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIGZpbmFsOwogCiAgICAgdm9pZCB3cml0ZUJ1
ZmZlcigKICAgICAgICAgY29uc3QgUEFMOjpXZWJHUFU6OkJ1ZmZlciYsCkBAIC05OSw3ICs5OSw3
IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHNldExhYmVsSW50ZXJuYWwoY29uc3QgU3RyaW5nJikg
ZmluYWw7CiAKLSAgICBEZXF1ZTxXVEY6OkZ1bmN0aW9uPHZvaWQoKT4+IG1fY2FsbGJhY2tzOwor
ICAgIERlcXVlPENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4+IG1fY2FsbGJhY2tzOwogCiAgICAg
V2ViR1BVSWRlbnRpZmllciBtX2JhY2tpbmc7CiAgICAgUmVmPENvbnZlcnRUb0JhY2tpbmdDb250
ZXh0PiBtX2NvbnZlcnRUb0JhY2tpbmdDb250ZXh0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlU2hhZGVyTW9kdWxlUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3Rl
U2hhZGVyTW9kdWxlUHJveHkuY3BwCmluZGV4IGEyYjBhZTE0NzZkMTIxN2E5NzBjMDQ5ODNmNjRi
OThjYTNjYzBhYmIuLjFkMmJiNzc5YTkyYTFlNzVlODQ0ODE0ZDg1NzY4OTQ5ZmRkOTRiZjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1Jl
bW90ZVNoYWRlck1vZHVsZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVTaGFkZXJNb2R1bGVQcm94eS5jcHAKQEAgLTQ2LDcg
KzQ2LDcgQEAgUmVtb3RlU2hhZGVyTW9kdWxlUHJveHk6On5SZW1vdGVTaGFkZXJNb2R1bGVQcm94
eSgpCiB7CiB9CiAKLXZvaWQgUmVtb3RlU2hhZGVyTW9kdWxlUHJveHk6OmNvbXBpbGF0aW9uSW5m
byhXVEY6OkZ1bmN0aW9uPHZvaWQoUmVmPFBBTDo6V2ViR1BVOjpDb21waWxhdGlvbkluZm8+JiYp
PiYmIGNhbGxiYWNrKQordm9pZCBSZW1vdGVTaGFkZXJNb2R1bGVQcm94eTo6Y29tcGlsYXRpb25J
bmZvKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmPFBBTDo6V2ViR1BVOjpDb21waWxhdGlvbklu
Zm8+JiYpPiYmIGNhbGxiYWNrKQogewogICAgIFZlY3RvcjxDb21waWxhdGlvbk1lc3NhZ2U+IG1l
c3NhZ2VzOwogICAgIGF1dG8gc2VuZFJlc3VsdCA9IHNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVT
aGFkZXJNb2R1bGU6OkNvbXBpbGF0aW9uSW5mbygpLCB7IG1lc3NhZ2VzIH0pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlU2hh
ZGVyTW9kdWxlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
V2ViR1BVL1JlbW90ZVNoYWRlck1vZHVsZVByb3h5LmgKaW5kZXggM2MyYTA4NDQ0MjJmNDY0ODJm
ZTliZGFhZmJiZmRhZDI5NGZjZWUyYy4uNDQ2NWYwYThjOTAwNzNiZTBhYzIyMjNmMzQyYjJiYTc0
MTNjNzM4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlU2hhZGVyTW9kdWxlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVTaGFkZXJNb2R1bGVQcm94eS5oCkBA
IC03Miw3ICs3Miw3IEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiByb290KCkuc3RyZWFtQ2xp
ZW50Q29ubmVjdGlvbigpLnNlbmRTeW5jKFdURk1vdmUobWVzc2FnZSksIFdURk1vdmUocmVwbHkp
LCBiYWNraW5nKCksIGRlZmF1bHRTZW5kVGltZW91dCk7CiAgICAgfQogCi0gICAgdm9pZCBjb21w
aWxhdGlvbkluZm8oV1RGOjpGdW5jdGlvbjx2b2lkKFJlZjxQQUw6OldlYkdQVTo6Q29tcGlsYXRp
b25JbmZvPiYmKT4mJikgZmluYWw7CisgICAgdm9pZCBjb21waWxhdGlvbkluZm8oQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChSZWY8UEFMOjpXZWJHUFU6OkNvbXBpbGF0aW9uSW5mbz4mJik+JiYpIGZp
bmFsOwogCiAgICAgdm9pZCBzZXRMYWJlbEludGVybmFsKGNvbnN0IFN0cmluZyYpIGZpbmFsOwog
Cg==
</data>
<flag name="review"
          id="482509"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>