<?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>283553</bug_id>
          
          <creation_ts>2024-11-22 01:01:59 -0800</creation_ts>
          <short_desc>REGRESSION(286855@main): It triggers WebRTC crashes</short_desc>
          <delta_ts>2024-11-22 01:05:15 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>283174</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2076953</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2024-11-22 01:01:59 -0800</bug_when>
    <thetext>https://commits.webkit.org/286855@main introduced a regression:
It triggers WebRTC crashes

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2076955</commentid>
    <comment_count>1</comment_count>
      <attachid>473330</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2024-11-22 01:02:07 -0800</bug_when>
    <thetext>Created attachment 473330
REVERT of 286855@main

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the revert will be successful.  This process takes approximately 15 minutes.

If you would like to land the revert faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2076956</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2024-11-22 01:04:46 -0800</bug_when>
    <thetext>Committed 286943@main (9cb5312a9672): &lt;https://commits.webkit.org/286943@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 473330.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2076957</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2024-11-22 01:05:15 -0800</bug_when>
    <thetext>&lt;rdar://problem/140404008&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>473330</attachid>
            <date>2024-11-22 01:02:07 -0800</date>
            <delta_ts>2024-11-22 01:04:47 -0800</delta_ts>
            <desc>REVERT of 286855@main</desc>
            <filename>bug-283553-20241122090206.patch</filename>
            <type>text/plain</type>
            <size>58386</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">RnJvbSBjMWUxZWFlZjVkNzc0OGEyZTNiYzRiYjU3YTM4MGM4YmMwOGY0ZDNhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDb21taXQgUXVldWUgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3Jn
PgpEYXRlOiBGcmksIDIyIE5vdiAyMDI0IDA5OjAyOjAyICswMDAwClN1YmplY3Q6IFtQQVRDSF0g
VW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIDI4Njg1NUBtYWluLgogaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTI4MzU1MwoKSXQgdHJpZ2dlcnMgV2ViUlRDIGNyYXNoZXMKClJl
dmVydGVkIGNoYW5nZXNldDoKCiJbbWFjT1NdIEFkZCBzdXBwb3J0IGZvciBtdWx0aS1zcGVha2Vy
IE1lZGlhU3RyZWFtVHJhY2sgYXVkaW8gcGxheWluZyIKaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTI4MzE3NApodHRwczovL2NvbW1pdHMud2Via2l0Lm9yZy8yODY4NTVA
bWFpbgotLS0KIC4uLi9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0gICB8
ICAgMyAtCiAuLi4vQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuY3BwICAgICAgICAgfCAg
IDYgLQogLi4uL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmggICAgICAgICAgIHwgICA3
ICstCiAuLi4vQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYS5jcHAgICAgfCAgMjAg
Ky0tCiAuLi4vQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYS5oICAgICAgfCAgIDEg
LQogLi4uaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQuY3BwIHwgIDE2ICst
LQogLi4udWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdC5oIHwgICA3ICst
CiAuLi4vQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0LmNwcCAgICAgfCAxMjQgKysr
Ky0tLS0tLS0tLS0tLQogLi4uL2NvY29hL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5p
dC5oIHwgIDY5ICsrKy0tLS0tLQogLi4uL0Jhc2VBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
clVuaXQuaCAgIHwgICA4ICstCiAuLi5vbWluZ0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
VW5pdC5jcHAgfCAxMzIgKysrKysrLS0tLS0tLS0tLS0tCiAuLi5uY29taW5nQXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXJVbml0LmggfCAgNDEgKystLS0tCiAuLi4vbGlid2VicnRjL0xpYldl
YlJUQ0F1ZGlvTW9kdWxlLmNwcCAgICAgICAgfCAgIDIgKy0KIC4uLi9saWJ3ZWJydGMvTGliV2Vi
UlRDQXVkaW9Nb2R1bGUuaCAgICAgICAgICB8ICAgNyArLQogLi4uU3RyZWFtVHJhY2tSZW5kZXJl
ckludGVybmFsVW5pdE1hbmFnZXIuY3BwIHwgIDM3ICsrKy0tCiAuLi5pYVN0cmVhbVRyYWNrUmVu
ZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2VyLmggfCAgIDMgKy0KIC4uLmFja1JlbmRlcmVySW50ZXJu
YWxVbml0TWFuYWdlci5tZXNzYWdlcy5pbiB8ICAgNCArLQogLi4uU3RyZWFtVHJhY2tSZW5kZXJl
ckludGVybmFsVW5pdE1hbmFnZXIuY3BwIHwgIDMxICsrLS0KIC4uLmlhU3RyZWFtVHJhY2tSZW5k
ZXJlckludGVybmFsVW5pdE1hbmFnZXIuaCB8ICAgMiArLQogMTkgZmlsZXMgY2hhbmdlZCwgMTgw
IGluc2VydGlvbnMoKyksIDM0MCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVNZWRpYVN0cmVhbUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMu
bW0KaW5kZXggY2YyODcxNTY1ZDJjLi4zZDg1MjE5ZTY3NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakMubW0KQEAgLTI4LDcgKzI4LDYgQEAKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pICYm
IFVTRShBVkZPVU5EQVRJT04pCiAKLSNpbXBvcnQgIkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyLmgiCiAjaW1wb3J0ICJBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtLmgiCiAjaW1wb3J0
ICJHcmFwaGljc0NvbnRleHRDRy5oIgogI2ltcG9ydCAiTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXIuaCIKQEAgLTExNDcsOCArMTE0Niw2IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDOjphdWRpb091dHB1dERldmljZUNoYW5nZWQoKQogICAgIGlmICghcGxh
eWVyKQogICAgICAgICByZXR1cm47CiAgICAgYXV0byBkZXZpY2VJZCA9IHBsYXllci0+YXVkaW9P
dXRwdXREZXZpY2VJZCgpOwotICAgIGlmIChkZXZpY2VJZC5pc0VtcHR5KCkpCi0gICAgICAgIGRl
dmljZUlkID0gQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OmRlZmF1bHREZXZpY2VJRCgp
OwogICAgIGZvciAoYXV0byYgYXVkaW9UcmFjayA6IG1fYXVkaW9UcmFja01hcC52YWx1ZXMoKSkK
ICAgICAgICAgYXVkaW9UcmFjay0+c2V0QXVkaW9PdXRwdXREZXZpY2UoZGV2aWNlSWQpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuY3BwCmluZGV4IDA0NTJhODIxYmMx
NC4uMDRhMzU2YmE3ZWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIu
Y3BwCkBAIC01NywxMiArNTcsNiBAQCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXI+IEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpjcgogI2VuZGlmCiB9
CiAKLVN0cmluZyBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6ZGVmYXVsdERldmljZUlE
KCkKLXsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIHJldHVybiAiZGVmYXVsdCJf
czsKLX0KLQogQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OkF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyKEluaXQmJiBpbml0KQogICAgIDogbV9jcmFzaENhbGxiYWNrKFdURk1vdmUo
aW5pdC5jcmFzaENhbGxiYWNrKSkKICNpZiBVU0UoTElCV0VCUlRDKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyLmgKaW5kZXggOTZiMGFhMDllZjI5Li5hYzUyNzFkYzQwYjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaApAQCAtMjcsMTAgKzI3LDYgQEAK
IAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKLSNpZiBVU0UoTElCV0VCUlRDKQotI2luY2x1
ZGUgIkxpYldlYlJUQ0F1ZGlvTW9kdWxlLmgiCi0jZW5kaWYKLQogI2luY2x1ZGUgPHd0Zi9GdW5j
dGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KICNpbmNsdWRlIDx3dGYvVFpv
bmVNYWxsb2MuaD4KQEAgLTQyLDYgKzM4LDcgQEAgY2xhc3MgTWVkaWFUaW1lOwogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBBdWRpb1N0cmVhbURlc2NyaXB0aW9uOworY2xhc3MgTGliV2Vi
UlRDQXVkaW9Nb2R1bGU7CiBjbGFzcyBQbGF0Zm9ybUF1ZGlvRGF0YTsKIAogY2xhc3MgV0VCQ09S
RV9FWFBPUlQgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIgOiBwdWJsaWMgTG9nZ2VySGVs
cGVyIHsKQEAgLTYwLDggKzU3LDYgQEAgcHVibGljOgogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9w
dHI8QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI+IGNyZWF0ZShJbml0JiYpOwogICAgIHZp
cnR1YWwgfkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyKCkgPSBkZWZhdWx0OwogCi0gICAg
c3RhdGljIFN0cmluZyBkZWZhdWx0RGV2aWNlSUQoKTsKLQogICAgIHZpcnR1YWwgdm9pZCBzdGFy
dChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc3Rv
cCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXIoKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9BdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlckNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2NvY29hL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2EuY3BwCmluZGV4IDg5ZjM5
MWFhZDM2MC4uNzZjYzc3NWM2ZjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9jb2NvYS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9BdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hLmNwcApAQCAtNDIsNyArNDIsNiBAQCBXVEZfTUFL
RV9UWk9ORV9BTExPQ0FURURfSU1QTChBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29h
KTsKIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2E6OkF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyQ29jb2EoSW5pdCYmIGluaXQpCiAgICAgOiBBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlcihXVEZNb3ZlKGluaXQpKQogICAgICwgbV9yZXNldE9ic2VydmVyKFt0aGlzXSB7
IHJlc2V0KCk7IH0pCi0gICAgLCBtX2RldmljZUlEKEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyOjpkZWZhdWx0RGV2aWNlSUQoKSkKIHsKIH0KIApAQCAtNzgsNyArNzcsNyBAQCB2b2lkIEF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2E6OnN0b3AoKQogICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7CiAKICAgICBpZiAobV9yZWdpc3RlcmVkRGF0YVNvdXJjZSkKLSAgICAgICAg
cmVuZGVyZXJVbml0KCkucmVtb3ZlU291cmNlKG1fZGV2aWNlSUQsICptX3JlZ2lzdGVyZWREYXRh
U291cmNlKTsKKyAgICAgICAgcmVuZGVyZXJVbml0KCkucmVtb3ZlU291cmNlKCptX3JlZ2lzdGVy
ZWREYXRhU291cmNlKTsKIH0KIAogdm9pZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNv
Y29hOjpjbGVhcigpCkBAIC0xMDYsMTUgKzEwNSwxMCBAQCB2b2lkIEF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyQ29jb2E6OnJlc2V0KCkKICAgICAgICAgbV9yZWdpc3RlcmVkRGF0YVNvdXJj
ZS0+cmVjb21wdXRlU2FtcGxlT2Zmc2V0KCk7CiB9CiAKLXZvaWQgQXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXJDb2NvYTo6c2V0QXVkaW9PdXRwdXREZXZpY2UoY29uc3QgU3RyaW5nJiBkZXZp
Y2VJRCkKK3ZvaWQgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYTo6c2V0QXVkaW9P
dXRwdXREZXZpY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJZCkKIHsKLSAgICBhdXRvIHJlZ2lzdGVy
ZWREYXRhU291cmNlID0gbV9yZWdpc3RlcmVkRGF0YVNvdXJjZTsKLQotICAgIHNldFJlZ2lzdGVy
ZWREYXRhU291cmNlKG51bGxwdHIpOwotCi0gICAgbV9kZXZpY2VJRCA9IGRldmljZUlEOwotICAg
IHNldFJlZ2lzdGVyZWREYXRhU291cmNlKFdURk1vdmUocmVnaXN0ZXJlZERhdGFTb3VyY2UpKTsK
LQorICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgY3JlYXRlIGEgdW5pdCBmb3Igb3Vyc2VsdmVzIGhl
cmUgb3IgdXNlIHRoZSBkZWZhdWx0IHVuaXQgaWYgZGV2aWNlSWQgaXMgbWF0Y2hpbmcuCisgICAg
cmVuZGVyZXJVbml0KCkuc2V0QXVkaW9PdXRwdXREZXZpY2UoZGV2aWNlSWQpOwogICAgIG1fc2hv
dWxkUmVjcmVhdGVEYXRhU291cmNlID0gdHJ1ZTsKIH0KIApAQCAtMTIzLDcgKzExNyw3IEBAIHZv
aWQgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYTo6c2V0UmVnaXN0ZXJlZERhdGFT
b3VyY2UoUmVmUHRyPEF1ZGlvU2FtCiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAogICAg
IGlmIChtX3JlZ2lzdGVyZWREYXRhU291cmNlKQotICAgICAgICByZW5kZXJlclVuaXQoKS5yZW1v
dmVTb3VyY2UobV9kZXZpY2VJRCwgKm1fcmVnaXN0ZXJlZERhdGFTb3VyY2UpOworICAgICAgICBy
ZW5kZXJlclVuaXQoKS5yZW1vdmVTb3VyY2UoKm1fcmVnaXN0ZXJlZERhdGFTb3VyY2UpOwogCiAg
ICAgaWYgKCFtX291dHB1dERlc2NyaXB0aW9uKQogICAgICAgICByZXR1cm47CkBAIC0xMzQsOCAr
MTI4LDggQEAgdm9pZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hOjpzZXRSZWdp
c3RlcmVkRGF0YVNvdXJjZShSZWZQdHI8QXVkaW9TYW0KIAogICAgIG1fcmVnaXN0ZXJlZERhdGFT
b3VyY2UtPnNldExvZ2dlcihsb2dnZXIoKSwgbG9nSWRlbnRpZmllcigpKTsKICAgICBtX3JlZ2lz
dGVyZWREYXRhU291cmNlLT5zZXRWb2x1bWUodm9sdW1lKCkpOwotICAgIHJlbmRlcmVyVW5pdCgp
LmFkZFJlc2V0T2JzZXJ2ZXIobV9kZXZpY2VJRCwgbV9yZXNldE9ic2VydmVyKTsKLSAgICByZW5k
ZXJlclVuaXQoKS5hZGRTb3VyY2UobV9kZXZpY2VJRCwgKm1fcmVnaXN0ZXJlZERhdGFTb3VyY2Up
OworICAgIHJlbmRlcmVyVW5pdCgpLmFkZFJlc2V0T2JzZXJ2ZXIobV9yZXNldE9ic2VydmVyKTsK
KyAgICByZW5kZXJlclVuaXQoKS5hZGRTb3VyY2UoKm1fcmVnaXN0ZXJlZERhdGFTb3VyY2UpOwog
fQogCiBzdGF0aWMgdW5zaWduZWQgcG9sbFNhbXBsZXNDb3VudCgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9BdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlckNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9j
b2NvYS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hLmgKaW5kZXggOTQyM2NiMWYy
MjJkLi41ZGE3ZGYzNmE4Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL2NvY29hL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2EuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9BdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlckNvY29hLmgKQEAgLTc3LDcgKzc3LDYgQEAgcHJpdmF0ZToKICAgICBS
ZWZQdHI8QXVkaW9TYW1wbGVEYXRhU291cmNlPiBtX3JlZ2lzdGVyZWREYXRhU291cmNlOyAvLyBV
c2VkIGluIG1haW4gdGhyZWFkLgogICAgIGJvb2wgbV9zaG91bGRSZWNyZWF0ZURhdGFTb3VyY2Ug
eyBmYWxzZSB9OwogICAgIFdlYkNvcmU6OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5p
dDo6UmVzZXRPYnNlcnZlciBtX3Jlc2V0T2JzZXJ2ZXI7Ci0gICAgU3RyaW5nIG1fZGV2aWNlSUQ7
CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9jb2NvYS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9BdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlckludGVybmFsVW5pdC5jcHAKaW5kZXggODMyOTFhOTZmYjIxLi4zMzI5OTg4
YzkyNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2Nv
Y29hL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9BdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlckludGVybmFsVW5pdC5jcHAKQEAgLTUwLDExICs1MCw5IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIGNsYXNzIExvY2FsQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRl
cm5hbFVuaXQgZmluYWwgOiBwdWJsaWMgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRl
cm5hbFVuaXQsIHB1YmxpYyBSZWZDb3VudGVkPExvY2FsQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXJJbnRlcm5hbFVuaXQ+ICB7CiAgICAgV1RGX01BS0VfVFpPTkVfQUxMT0NBVEVEX0lOTElO
RShMb2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0KTsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUmVmPEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxV
bml0PiBjcmVhdGUoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgQ2xpZW50JiBjbGllbnQpCisgICAg
c3RhdGljIFJlZjxBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdD4gY3Jl
YXRlKENsaWVudCYgY2xpZW50KQogICAgIHsKLSAgICAgICAgYXV0byB1bml0ID0gYWRvcHRSZWYo
Km5ldyBMb2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0KGNsaWVu
dCkpOwotICAgICAgICB1bml0LT5zZXRBdWRpb091dHB1dERldmljZShkZXZpY2VJRCk7Ci0gICAg
ICAgIHJldHVybiB1bml0OworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBMb2NhbEF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0KGNsaWVudCkpOwogICAgIH0KIAog
ICAgIHZvaWQgcmVmKCkgY29uc3QgZmluYWwgeyBSZWZDb3VudGVkOjpyZWYoKTsgfQpAQCAtNjgs
NyArNjYsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgc3RhcnQoKSBmaW5hbDsKICAgICB2b2lkIHN0
b3AoKSBmaW5hbDsKICAgICB2b2lkIHJldHJpZXZlRm9ybWF0RGVzY3JpcHRpb24oQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbj4pPiYm
KSBmaW5hbDsKLSAgICB2b2lkIHNldEF1ZGlvT3V0cHV0RGV2aWNlKGNvbnN0IFN0cmluZyYpOwor
ICAgIHZvaWQgc2V0QXVkaW9PdXRwdXREZXZpY2UoY29uc3QgU3RyaW5nJikgZmluYWw7CisgICAg
Y29uc3QgU3RyaW5nJiBhdWRpb091dHB1dERldmljZUlEKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
bV9hdWRpb091dHB1dERldmljZUlEOyB9CiAKICAgICBPU1N0YXR1cyByZW5kZXIoQXVkaW9Vbml0
UmVuZGVyQWN0aW9uRmxhZ3MqLCBjb25zdCBBdWRpb1RpbWVTdGFtcCosIFVJbnQzMiBzYW1wbGVD
b3VudCwgQXVkaW9CdWZmZXJMaXN0Kik7CiAgICAgc3RhdGljIE9TU3RhdHVzIHJlbmRlcmluZ0Nh
bGxiYWNrKHZvaWQqLCBBdWRpb1VuaXRSZW5kZXJBY3Rpb25GbGFncyosIGNvbnN0IEF1ZGlvVGlt
ZVN0YW1wKiwgVUludDMyIGluQnVzTnVtYmVyLCBVSW50MzIgc2FtcGxlQ291bnQsIEF1ZGlvQnVm
ZmVyTGlzdCopOwpAQCAtOTksOSArOTgsNiBAQCB2b2lkIExvY2FsQXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6OnJldHJpZXZlRm9ybWF0RGVzY3JpcHRpb24oQwogdm9p
ZCBMb2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpzZXRBdWRp
b091dHB1dERldmljZShjb25zdCBTdHJpbmcmIGRldmljZUlEKQogewogI2lmIFBMQVRGT1JNKE1B
QykKLSAgICBpZiAoZGV2aWNlSUQgPT0gQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OmRl
ZmF1bHREZXZpY2VJRCgpKQotICAgICAgICByZXR1cm47Ci0KICAgICBhdXRvIGRldmljZSA9IENv
cmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKS5jb3JlQXVkaW9EZXZpY2VX
aXRoVUlEKGRldmljZUlEKTsKIAogICAgIGlmICghZGV2aWNlICYmICFkZXZpY2VJRC5pc0VtcHR5
KCkpIHsKQEAgLTMxMCw5ICszMDYsOSBAQCB2b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVySW50ZXJuYWxVbml0OjpzZXRDcmVhdGVGdW5jdGlvbihDcmVhdGVGdW5jdGlvbgogICAgIGNy
ZWF0ZUludGVybmFsVW5pdCA9IGZ1bmN0aW9uOwogfQogCi1SZWY8QXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ+IEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50
ZXJuYWxVbml0OjpjcmVhdGUoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgQ2xpZW50JiBjbGllbnQp
CitSZWY8QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ+IEF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpjcmVhdGUoQ2xpZW50JiBjbGllbnQp
CiB7Ci0gICAgcmV0dXJuIGNyZWF0ZUludGVybmFsVW5pdChkZXZpY2VJRCwgY2xpZW50KTsKKyAg
ICByZXR1cm4gY3JlYXRlSW50ZXJuYWxVbml0KGNsaWVudCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2NvY29hL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9BdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlckludGVybmFsVW5pdC5oCmluZGV4IGE1NTAxZjE0YzE1Yi4uYWU0NWEwY2Y5YzNk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9B
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVySW50ZXJuYWxVbml0LmgKQEAgLTUwLDE0ICs1MCwxNSBAQCBwdWJsaWM6CiAgICAgICAg
IHZpcnR1YWwgT1NTdGF0dXMgcmVuZGVyKHNpemVfdCBzYW1wbGVDb3VudCwgQXVkaW9CdWZmZXJM
aXN0JiwgdWludDY0X3Qgc2FtcGxlVGltZSwgZG91YmxlIGhvc3RUaW1lLCBBdWRpb1VuaXRSZW5k
ZXJBY3Rpb25GbGFncyYpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIHJlc2V0KCkgPSAwOwog
ICAgIH07Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlckludGVybmFsVW5pdD4gY3JlYXRlKGNvbnN0IFN0cmluZyYsIENsaWVudCYpOwor
ICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXJJbnRlcm5hbFVuaXQ+IGNyZWF0ZShDbGllbnQmKTsKIAotICAgIHVzaW5nIENyZWF0ZUZ1bmN0
aW9uID0gUmVmPEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0PigqKShj
b25zdCBTdHJpbmcmLCBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6
Q2xpZW50Jik7CisgICAgdXNpbmcgQ3JlYXRlRnVuY3Rpb24gPSBSZWY8QXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ+KCopKEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVySW50ZXJuYWxVbml0OjpDbGllbnQmKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9p
ZCBzZXRDcmVhdGVGdW5jdGlvbihDcmVhdGVGdW5jdGlvbik7CiAgICAgdmlydHVhbCB2b2lkIHN0
YXJ0KCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgPSAwOwotICAgIHZpcnR1YWwgdm9p
ZCBjbG9zZSgpIHsgfTsKICAgICB2aXJ0dWFsIHZvaWQgcmV0cmlldmVGb3JtYXREZXNjcmlwdGlv
bihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8Q0FBdWRpb1N0cmVhbURlc2Ny
aXB0aW9uPik+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0QXVkaW9PdXRwdXREZXZpY2Uo
Y29uc3QgU3RyaW5nJikgPSAwOworICAgIHZpcnR1YWwgY29uc3QgU3RyaW5nJiBhdWRpb091dHB1
dERldmljZUlEKCkgY29uc3QgPSAwOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXJVbml0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0F1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5jcHAKaW5kZXggOTNjOGZlMjdmYjcyLi41
NjUwZDEzMTIzNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2NvY29hL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvQXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXJVbml0LmNwcApAQCAtMzUsOTcgKzM1LDMxIEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0JiBBdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlclVuaXQ6OnNpbmdsZXRvbigpCiB7Ci0gICAgc3RhdGljIExhenlOZXZlckRl
c3Ryb3llZDxzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0
Pj4gc2hhcmVkVW5pdDsKLSAgICBhdXRvJiB1bml0ID0gc2hhcmVkVW5pdC5nZXQoKTsKLSAgICBp
ZiAoIXVuaXQpCi0gICAgICAgIHVuaXQgPSBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJVbml0PihuZXcgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0
KTsKLSAgICByZXR1cm4gKnVuaXQ7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJlZjxBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ+PiByZWdpc3RyeSB7IGFkb3B0UmVmKCpuZXcg
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0KCkpIH07CisgICAgcmV0dXJuIHJlZ2lz
dHJ5LmdldCgpLmdldCgpOwogfQogCiBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6
OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdCgpCi0gICAgOiBtX2RlbGV0ZVVuaXRz
VGltZXIoW10geyBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OnNpbmdsZXRvbigp
LmRlbGV0ZVVuaXRzSWZQb3NzaWJsZSgpOyB9KQorICAgIDogbV9pbnRlcm5hbFVuaXQoQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6OmNyZWF0ZSgqdGhpcykpCiB7CiB9
CiAKLUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6fkF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyVW5pdCgpID0gZGVmYXVsdDsKLQotdm9pZCBBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlclVuaXQ6OmRlbGV0ZVVuaXRzSWZQb3NzaWJsZSgpCi17Ci0gICAgYXNzZXJ0SXNN
YWluVGhyZWFkKCk7Ci0KLSAgICBtX3VuaXRzLnJlbW92ZUlmKFtdIChhdXRvJiBrZXlWYWx1ZSkg
ewotICAgICAgICBpZiAoa2V5VmFsdWUudmFsdWUtPmlzRGVmYXVsdCgpIHx8IGtleVZhbHVlLnZh
bHVlLT5oYXNTb3VyY2VzKCkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgICAg
UmVmIHVuaXQgPSBrZXlWYWx1ZS52YWx1ZTsKLSAgICAgICAgdW5pdC0+Y2xvc2UoKTsKLSAgICAg
ICAgcmV0dXJuIHRydWU7Ci0gICAgfSk7Ci19Ci0KLXZvaWQgQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXJVbml0OjphZGRTb3VyY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgUmVmPEF1ZGlv
U2FtcGxlRGF0YVNvdXJjZT4mJiBzb3VyY2UpCi17Ci0gICAgYXNzZXJ0SXNNYWluVGhyZWFkKCk7
Ci0KLSAgICBSZWYgdW5pdCA9IG1fdW5pdHMuZW5zdXJlKGRldmljZUlELCBbJmRldmljZUlEXSB7
IHJldHVybiBVbml0OjpjcmVhdGUoZGV2aWNlSUQpOyB9KS5pdGVyYXRvci0+dmFsdWU7Ci0gICAg
dW5pdC0+YWRkU291cmNlKFdURk1vdmUoc291cmNlKSk7Ci19Ci0KLXZvaWQgQXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXJVbml0OjpyZW1vdmVTb3VyY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJ
RCwgQXVkaW9TYW1wbGVEYXRhU291cmNlJiBzb3VyY2UpCi17Ci0gICAgYXNzZXJ0SXNNYWluVGhy
ZWFkKCk7Ci0KLSAgICBhdXRvIGl0ZXJhdG9yID0gbV91bml0cy5maW5kKGRldmljZUlEKTsKLSAg
ICBpZiAoaXRlcmF0b3IgPT0gbV91bml0cy5lbmQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
c3RhdGljIGNvbnN0ZXhwciBTZWNvbmRzIGRlbGV0ZVVuaXREZWxheSA9IDEwX3M7Ci0KLSAgICBS
ZWYgdW5pdCA9IGl0ZXJhdG9yLT52YWx1ZTsKLSAgICBpZiAodW5pdC0+cmVtb3ZlU291cmNlKHNv
dXJjZSkgJiYgIXVuaXQtPmlzRGVmYXVsdCgpKQotICAgICAgICBtX2RlbGV0ZVVuaXRzVGltZXIu
c3RhcnRPbmVTaG90KGRlbGV0ZVVuaXREZWxheSk7Ci19Ci0KLXZvaWQgQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJVbml0OjphZGRSZXNldE9ic2VydmVyKGNvbnN0IFN0cmluZyYgZGV2aWNl
SUQsIFJlc2V0T2JzZXJ2ZXImIG9ic2VydmVyKQotewotICAgIGFzc2VydElzTWFpblRocmVhZCgp
OwotCi0gICAgUmVmIHVuaXQgPSBtX3VuaXRzLmVuc3VyZShkZXZpY2VJRCwgWyZkZXZpY2VJRF0g
eyByZXR1cm4gVW5pdDo6Y3JlYXRlKGRldmljZUlEKTsgfSkuaXRlcmF0b3ItPnZhbHVlOwotICAg
IHVuaXQtPmFkZFJlc2V0T2JzZXJ2ZXIob2JzZXJ2ZXIpOwotfQotCi12b2lkIEF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6cmV0cmlldmVGb3JtYXREZXNjcmlwdGlvbihDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uPik+
JiYgY2FsbGJhY2spCi17Ci0gICAgYXNzZXJ0SXNNYWluVGhyZWFkKCk7Ci0KLSAgICBhdXRvIGRl
ZmF1bHREZXZpY2VJRCA9IEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpkZWZhdWx0RGV2
aWNlSUQoKTsKLSAgICBSZWYgdW5pdCA9IG1fdW5pdHMuZW5zdXJlKGRlZmF1bHREZXZpY2VJRCwg
WyZkZWZhdWx0RGV2aWNlSURdIHsgcmV0dXJuIFVuaXQ6OmNyZWF0ZShkZWZhdWx0RGV2aWNlSUQp
OyB9KS5pdGVyYXRvci0+dmFsdWU7Ci0gICAgdW5pdC0+cmV0cmlldmVGb3JtYXREZXNjcmlwdGlv
bihXVEZNb3ZlKGNhbGxiYWNrKSk7Ci19Ci0KLUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
VW5pdDo6VW5pdDo6VW5pdChjb25zdCBTdHJpbmcmIGRldmljZUlEKQotICAgIDogbV9pbnRlcm5h
bFVuaXQoQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6OmNyZWF0ZShk
ZXZpY2VJRCwgKnRoaXMpKQotICAgICwgbV9pc0RlZmF1bHRVbml0KGRldmljZUlEID09IEF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpkZWZhdWx0RGV2aWNlSUQoKSkKLXsKLX0KLQotQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0OjpVbml0Ojp+VW5pdCgpCitBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6On5BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVu
aXQoKQogewogICAgIHN0b3AoKTsKIH0KIAotdm9pZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlclVuaXQ6OlVuaXQ6OmNsb3NlKCkKK3ZvaWQgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXJVbml0OjpzZXRBdWRpb091dHB1dERldmljZShjb25zdCBTdHJpbmcmIGRldmljZUlEKQogewot
ICAgIGFzc2VydElzTWFpblRocmVhZCgpOwotICAgIG1faW50ZXJuYWxVbml0LT5jbG9zZSgpOwor
ICAgIHByb3RlY3RlZEludGVybmFsVW5pdCgpLT5zZXRBdWRpb091dHB1dERldmljZShkZXZpY2VJ
RCk7CiB9CiAKLXZvaWQgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0OjpVbml0Ojph
ZGRTb3VyY2UoUmVmPEF1ZGlvU2FtcGxlRGF0YVNvdXJjZT4mJiBzb3VyY2UpCit2b2lkIEF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6YWRkU291cmNlKFJlZjxBdWRpb1NhbXBsZURh
dGFTb3VyY2U+JiYgc291cmNlKQogewogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIHNv
dXJjZS0+bG9nZ2VyKCkubG9nQWx3YXlzKExvZ1dlYlJUQywgIkF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyVW5pdDo6YWRkU291cmNlICIsIHNvdXJjZS0+bG9nSWRlbnRpZmllcigpKTsKICNl
bmRpZgotICAgIGFzc2VydElzTWFpblRocmVhZCgpOworICAgIEFTU0VSVChpc01haW5UaHJlYWQo
KSk7CiAKICAgICBBU1NFUlQoIW1fc291cmNlcy5jb250YWlucyhzb3VyY2UuZ2V0KCkpKTsKICAg
ICBib29sIHNob3VsZFN0YXJ0ID0gbV9zb3VyY2VzLmlzRW1wdHkoKTsKQEAgLTE0MSwxMiArNzUs
MTIgQEAgdm9pZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OlVuaXQ6OmFkZFNv
dXJjZShSZWY8QXVkaW9TYW1wbGVEYXRhU291cmMKICAgICAgICAgc3RhcnQoKTsKIH0KIAotYm9v
bCBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OlVuaXQ6OnJlbW92ZVNvdXJjZShB
dWRpb1NhbXBsZURhdGFTb3VyY2UmIHNvdXJjZSkKK3ZvaWQgQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXJVbml0OjpyZW1vdmVTb3VyY2UoQXVkaW9TYW1wbGVEYXRhU291cmNlJiBzb3VyY2Up
CiB7CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgc291cmNlLmxvZ2dlcigpLmxvZ0Fs
d2F5cyhMb2dXZWJSVEMsICJBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OnJlbW92
ZVNvdXJjZSAiLCBzb3VyY2UubG9nSWRlbnRpZmllcigpKTsKICNlbmRpZgotICAgIGFzc2VydElz
TWFpblRocmVhZCgpOworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKICAgICBib29sIHNo
b3VsZFN0b3AgPSAhbV9zb3VyY2VzLmlzRW1wdHkoKTsKICAgICBtX3NvdXJjZXMucmVtb3ZlKHNv
dXJjZSk7CkBAIC0xNjAsMzggKzk0LDI1IEBAIGJvb2wgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXJVbml0OjpVbml0OjpyZW1vdmVTb3VyY2UoQXVkaW9TYW1wbGVEYXRhU291cmNlCiAKICAg
ICBpZiAoc2hvdWxkU3RvcCkKICAgICAgICAgc3RvcCgpOwotICAgIHJldHVybiBzaG91bGRTdG9w
OwogfQogCi12b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6VW5pdDo6YWRk
UmVzZXRPYnNlcnZlcihSZXNldE9ic2VydmVyJiBvYnNlcnZlcikKK3ZvaWQgQXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXJVbml0OjpzdGFydCgpCiB7Ci0gICAgYXNzZXJ0SXNNYWluVGhyZWFk
KCk7Ci0gICAgbV9yZXNldE9ic2VydmVycy5hZGQob2JzZXJ2ZXIpOwotfQotCi12b2lkIEF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6VW5pdDo6cmV0cmlldmVGb3JtYXREZXNjcmlw
dGlvbihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8Q0FBdWRpb1N0cmVhbURl
c2NyaXB0aW9uPik+JiYgY2FsbGJhY2spCi17Ci0gICAgYXNzZXJ0SXNNYWluVGhyZWFkKCk7Ci0g
ICAgbV9pbnRlcm5hbFVuaXQtPnJldHJpZXZlRm9ybWF0RGVzY3JpcHRpb24oV1RGTW92ZShjYWxs
YmFjaykpOwotfQotCi12b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6VW5p
dDo6c3RhcnQoKQotewotICAgIGFzc2VydElzTWFpblRocmVhZCgpOwogICAgIFJFTEVBU0VfTE9H
KFdlYlJUQywgIkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6c3RhcnQiKTsKKyAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCi0gICAgbV9pbnRlcm5hbFVuaXQtPnN0YXJ0KCk7
CisgICAgcHJvdGVjdGVkSW50ZXJuYWxVbml0KCktPnN0YXJ0KCk7CiB9CiAKLXZvaWQgQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0OjpVbml0OjpzdG9wKCkKK3ZvaWQgQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0OjpzdG9wKCkKIHsKLSAgICBhc3NlcnRJc01haW5UaHJl
YWQoKTsKICAgICBSRUxFQVNFX0xPRyhXZWJSVEMsICJBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlclVuaXQ6OnN0b3AiKTsKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCi0gICAgbV9p
bnRlcm5hbFVuaXQtPnN0b3AoKTsKKyAgICBwcm90ZWN0ZWRJbnRlcm5hbFVuaXQoKS0+c3RvcCgp
OwogfQogCi12b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6VW5pdDo6cmVz
ZXQoKQordm9pZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OnJlc2V0KCkKIHsK
ICAgICBSRUxFQVNFX0xPRyhXZWJSVEMsICJBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVu
aXQ6OnJlc2V0Iik7CiAgICAgaWYgKCFpc01haW5UaHJlYWQoKSkgewpAQCAtMjAyLDEzICsxMjMs
MTggQEAgdm9pZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OlVuaXQ6OnJlc2V0
KCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGFzc2VydElzTWFpblRocmVhZCgpOwog
ICAgIG1fcmVzZXRPYnNlcnZlcnMuZm9yRWFjaChbXShhdXRvJiBvYnNlcnZlcikgewogICAgICAg
ICBvYnNlcnZlcigpOwogICAgIH0pOwogfQogCi12b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyVW5pdDo6VW5pdDo6dXBkYXRlUmVuZGVyU291cmNlc0lmTmVjZXNzYXJ5KCkKK3ZvaWQg
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0OjpyZXRyaWV2ZUZvcm1hdERlc2NyaXB0
aW9uKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxDQUF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24+KT4mJiBjYWxsYmFjaykKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwor
ICAgIHByb3RlY3RlZEludGVybmFsVW5pdCgpLT5yZXRyaWV2ZUZvcm1hdERlc2NyaXB0aW9uKFdU
Rk1vdmUoY2FsbGJhY2spKTsKK30KKwordm9pZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
clVuaXQ6OnVwZGF0ZVJlbmRlclNvdXJjZXNJZk5lY2Vzc2FyeSgpCiB7CiAgICAgaWYgKCFtX3Bl
bmRpbmdSZW5kZXJTb3VyY2VzTG9jay50cnlMb2NrKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTIy
Miw3ICsxNDgsNyBAQCB2b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6VW5p
dDo6dXBkYXRlUmVuZGVyU291cmNlc0lmTmVjZXNzYXJ5KCkKICAgICBtX2hhc1BlbmRpbmdSZW5k
ZXJTb3VyY2VzID0gZmFsc2U7CiB9CiAKLU9TU3RhdHVzIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyVW5pdDo6VW5pdDo6cmVuZGVyKHNpemVfdCBzYW1wbGVDb3VudCwgQXVkaW9CdWZmZXJM
aXN0JiBpb0RhdGEsIHVpbnQ2NF90IHNhbXBsZVRpbWUsIGRvdWJsZSBob3N0VGltZSwgQXVkaW9V
bml0UmVuZGVyQWN0aW9uRmxhZ3MmIGFjdGlvbkZsYWdzKQorT1NTdGF0dXMgQXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXJVbml0OjpyZW5kZXIoc2l6ZV90IHNhbXBsZUNvdW50LCBBdWRpb0J1
ZmZlckxpc3QmIGlvRGF0YSwgdWludDY0X3Qgc2FtcGxlVGltZSwgZG91YmxlIGhvc3RUaW1lLCBB
dWRpb1VuaXRSZW5kZXJBY3Rpb25GbGFncyYgYWN0aW9uRmxhZ3MpCiB7CiAgICAgLy8gRm9yIHBl
cmZvcm1hbmNlIHJlYXNvbnMsIHdlIGZvcmJpZCBoZWFwIGFsbG9jYXRpb25zIHdoaWxlIGRvaW5n
IHJlbmRlcmluZyBvbiB0aGUgYXVkaW8gdGhyZWFkLgogICAgIEZvcmJpZE1hbGxvY1VzZUZvckN1
cnJlbnRUaHJlYWRTY29wZSBmb3JiaWRNYWxsb2NVc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlclVuaXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0F1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5oCmluZGV4IGU0ZGFjYjE3NTNkYi4uZGEz
MGQwMDY0OWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9jb2NvYS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9BdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlclVuaXQuaApAQCAtMjksNyArMjksNiBAQAogCiAjaW5jbHVkZSAiQXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQuaCIKICNpbmNsdWRlICJCYXNlQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0LmgiCi0jaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRl
IDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1Vu
aXF1ZVJlZi5oPgpAQCAtNTEsNjggKzUwLDQyIEBAIGNsYXNzIEF1ZGlvU2FtcGxlRGF0YVNvdXJj
ZTsKIGNsYXNzIEF1ZGlvU2FtcGxlQnVmZmVyTGlzdDsKIGNsYXNzIENBQXVkaW9TdHJlYW1EZXNj
cmlwdGlvbjsKIAotY2xhc3MgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0IDogcHVi
bGljIEJhc2VBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQgeworY2xhc3MgQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0IDogcHVibGljIEJhc2VBdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlclVuaXQsIHB1YmxpYyBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcklu
dGVybmFsVW5pdDo6Q2xpZW50IHsKIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMg
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0JiBzaW5nbGV0b24oKTsKIAogICAgIH5B
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQoKTsKIAorICAgIC8vIEF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0CisgICAgT1NTdGF0dXMgcmVuZGVyKHNpemVf
dCBzYW1wbGVDb3VudCwgQXVkaW9CdWZmZXJMaXN0JiwgdWludDY0X3Qgc2FtcGxlVGltZSwgZG91
YmxlIGhvc3RUaW1lLCBBdWRpb1VuaXRSZW5kZXJBY3Rpb25GbGFncyYpIGZpbmFsOworICAgIHZv
aWQgcmVzZXQoKSBmaW5hbDsKKwogICAgIHZvaWQgcmV0cmlldmVGb3JtYXREZXNjcmlwdGlvbihD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8Q0FBdWRpb1N0cmVhbURlc2NyaXB0
aW9uPik+JiYpOwogCiAgICAgLy8gQmFzZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5p
dAotICAgIHZvaWQgYWRkU291cmNlKGNvbnN0IFN0cmluZyYsIFJlZjxBdWRpb1NhbXBsZURhdGFT
b3VyY2U+JiYpIGZpbmFsOwotICAgIHZvaWQgcmVtb3ZlU291cmNlKGNvbnN0IFN0cmluZyYsIEF1
ZGlvU2FtcGxlRGF0YVNvdXJjZSYpIGZpbmFsOwotICAgIHZvaWQgYWRkUmVzZXRPYnNlcnZlcihj
b25zdCBTdHJpbmcmLCBSZXNldE9ic2VydmVyJikgZmluYWw7CisgICAgdm9pZCBzZXRBdWRpb091
dHB1dERldmljZShjb25zdCBTdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGFkZFNvdXJjZShSZWY8
QXVkaW9TYW1wbGVEYXRhU291cmNlPiYmKSBmaW5hbDsKKyAgICB2b2lkIHJlbW92ZVNvdXJjZShB
dWRpb1NhbXBsZURhdGFTb3VyY2UmKSBmaW5hbDsKKyAgICB2b2lkIGFkZFJlc2V0T2JzZXJ2ZXIo
UmVzZXRPYnNlcnZlciYgb2JzZXJ2ZXIpIGZpbmFsIHsgbV9yZXNldE9ic2VydmVycy5hZGQob2Jz
ZXJ2ZXIpOyB9CiAKIHByaXZhdGU6CiAgICAgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJV
bml0KCk7CiAKLSAgICB2b2lkIGRlbGV0ZVVuaXRzSWZQb3NzaWJsZSgpOwotCi0gICAgY2xhc3Mg
VW5pdCA6IHB1YmxpYyBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6
Q2xpZW50IHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBSZWY8VW5pdD4gY3JlYXRlKGNv
bnN0IFN0cmluZyYgZGV2aWNlSUQpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVW5pdChkZXZpY2VJ
RCkpOyB9Ci0gICAgICAgIH5Vbml0KCk7Ci0KLSAgICAgICAgdm9pZCBhZGRTb3VyY2UoUmVmPEF1
ZGlvU2FtcGxlRGF0YVNvdXJjZT4mJik7Ci0gICAgICAgIGJvb2wgcmVtb3ZlU291cmNlKEF1ZGlv
U2FtcGxlRGF0YVNvdXJjZSYpOwotICAgICAgICB2b2lkIGFkZFJlc2V0T2JzZXJ2ZXIoUmVzZXRP
YnNlcnZlciYpOwotICAgICAgICBib29sIGhhc1NvdXJjZXMoKSBjb25zdAotICAgICAgICB7Ci0g
ICAgICAgICAgICBhc3NlcnRJc01haW5UaHJlYWQoKTsKLSAgICAgICAgICAgIHJldHVybiAhbV9z
b3VyY2VzLmlzRW1wdHkoKTsKLSAgICAgICAgfQotCi0gICAgICAgIGJvb2wgaXNEZWZhdWx0KCkg
Y29uc3QgeyByZXR1cm4gbV9pc0RlZmF1bHRVbml0OyB9Ci0KLSAgICAgICAgdm9pZCBjbG9zZSgp
OwotICAgICAgICB2b2lkIHJldHJpZXZlRm9ybWF0RGVzY3JpcHRpb24oQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChzdGQ6Om9wdGlvbmFsPENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbj4pPiYmKTsKLQot
ICAgIHByaXZhdGU6Ci0gICAgICAgIGV4cGxpY2l0IFVuaXQoY29uc3QgU3RyaW5nJik7Ci0KLSAg
ICAgICAgdm9pZCBzdGFydCgpOwotICAgICAgICB2b2lkIHN0b3AoKTsKLSAgICAgICAgdm9pZCB1
cGRhdGVSZW5kZXJTb3VyY2VzSWZOZWNlc3NhcnkoKTsKLQotICAgICAgICAvLyBBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6Q2xpZW50Ci0gICAgICAgIE9TU3RhdHVz
IHJlbmRlcihzaXplX3Qgc2FtcGxlQ291bnQsIEF1ZGlvQnVmZmVyTGlzdCYsIHVpbnQ2NF90IHNh
bXBsZVRpbWUsIGRvdWJsZSBob3N0VGltZSwgQXVkaW9Vbml0UmVuZGVyQWN0aW9uRmxhZ3MmKSBm
aW5hbDsKLSAgICAgICAgdm9pZCByZXNldCgpIGZpbmFsOwotCi0gICAgICAgIEhhc2hTZXQ8UmVm
PEF1ZGlvU2FtcGxlRGF0YVNvdXJjZT4+IG1fc291cmNlcyBXVEZfR1VBUkRFRF9CWV9DQVBBQklM
SVRZKG1haW5UaHJlYWQpOwotICAgICAgICBWZWN0b3I8UmVmPEF1ZGlvU2FtcGxlRGF0YVNvdXJj
ZT4+IG1fcmVuZGVyU291cmNlczsKKyAgICB2b2lkIHN0YXJ0KCk7CisgICAgdm9pZCBzdG9wKCk7
CiAKLSAgICAgICAgTG9jayBtX3BlbmRpbmdSZW5kZXJTb3VyY2VzTG9jazsKLSAgICAgICAgc3Rk
OjphdG9taWM8Ym9vbD4gbV9oYXNQZW5kaW5nUmVuZGVyU291cmNlcyBXVEZfR1VBUkRFRF9CWV9M
T0NLKG1fcGVuZGluZ1JlbmRlclNvdXJjZXNMb2NrKSB7IGZhbHNlIH07Ci0gICAgICAgIFZlY3Rv
cjxSZWY8QXVkaW9TYW1wbGVEYXRhU291cmNlPj4gbV9wZW5kaW5nUmVuZGVyU291cmNlcyBXVEZf
R1VBUkRFRF9CWV9MT0NLKG1fcGVuZGluZ1JlbmRlclNvdXJjZXNMb2NrKTsKKyAgICB2b2lkIGNy
ZWF0ZUF1ZGlvVW5pdElmTmVlZGVkKCk7CisgICAgdm9pZCB1cGRhdGVSZW5kZXJTb3VyY2VzSWZO
ZWNlc3NhcnkoKTsKIAotICAgICAgICBjb25zdCBSZWY8QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXJJbnRlcm5hbFVuaXQ+IG1faW50ZXJuYWxVbml0IFdURl9HVUFSREVEX0JZX0NBUEFCSUxJ
VFkobWFpblRocmVhZCk7Ci0gICAgICAgIFdlYWtIYXNoU2V0PFJlc2V0T2JzZXJ2ZXI+IG1fcmVz
ZXRPYnNlcnZlcnMgV1RGX0dVQVJERURfQllfQ0FQQUJJTElUWShtYWluVGhyZWFkKTsKLSAgICAg
ICAgY29uc3QgYm9vbCBtX2lzRGVmYXVsdFVuaXQgeyBmYWxzZSB9OwotICAgIH07CisgICAgUmVm
PEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0PiBwcm90ZWN0ZWRJbnRl
cm5hbFVuaXQoKSB7IHJldHVybiBtX2ludGVybmFsVW5pdDsgfQogCi0gICAgSGFzaE1hcDxTdHJp
bmcsIFJlZjxVbml0Pj4gbV91bml0cyBXVEZfR1VBUkRFRF9CWV9DQVBBQklMSVRZKG1haW5UaHJl
YWQpOwotICAgIFRpbWVyIG1fZGVsZXRlVW5pdHNUaW1lcjsKKyAgICBIYXNoU2V0PFJlZjxBdWRp
b1NhbXBsZURhdGFTb3VyY2U+PiBtX3NvdXJjZXM7CisgICAgVmVjdG9yPFJlZjxBdWRpb1NhbXBs
ZURhdGFTb3VyY2U+PiBtX3BlbmRpbmdSZW5kZXJTb3VyY2VzIFdURl9HVUFSREVEX0JZX0xPQ0so
bV9wZW5kaW5nUmVuZGVyU291cmNlc0xvY2spOworICAgIFZlY3RvcjxSZWY8QXVkaW9TYW1wbGVE
YXRhU291cmNlPj4gbV9yZW5kZXJTb3VyY2VzOworICAgIGJvb2wgbV9oYXNQZW5kaW5nUmVuZGVy
U291cmNlcyBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fcGVuZGluZ1JlbmRlclNvdXJjZXNMb2NrKSB7
IGZhbHNlIH07CisgICAgTG9jayBtX3BlbmRpbmdSZW5kZXJTb3VyY2VzTG9jazsKKyAgICBSZWY8
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ+IG1faW50ZXJuYWxVbml0
OworICAgIFdlYWtIYXNoU2V0PFJlc2V0T2JzZXJ2ZXI+IG1fcmVzZXRPYnNlcnZlcnM7CiB9Owog
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2Nv
YS9CYXNlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9CYXNlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXJVbml0LmgKaW5kZXggN2ZhNThhOTRlZmEwLi5hYjc2NTNhMDNmNTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0Jhc2VBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlclVuaXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9jb2NvYS9CYXNlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0LmgK
QEAgLTM4LDExICszOCwxMyBAQCBjbGFzcyBCYXNlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXJVbml0IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5CYXNlQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXJVbml0KCkgPSBkZWZhdWx0OwogCi0gICAgdmlydHVhbCB2b2lkIGFkZFNvdXJjZShj
b25zdCBTdHJpbmcmLCBSZWY8QXVkaW9TYW1wbGVEYXRhU291cmNlPiYmKSA9IDA7Ci0gICAgdmly
dHVhbCB2b2lkIHJlbW92ZVNvdXJjZShjb25zdCBTdHJpbmcmLCBBdWRpb1NhbXBsZURhdGFTb3Vy
Y2UmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGFkZFNvdXJjZShSZWY8QXVkaW9TYW1wbGVEYXRh
U291cmNlPiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZVNvdXJjZShBdWRpb1NhbXBs
ZURhdGFTb3VyY2UmKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0QXVkaW9PdXRwdXREZXZp
Y2UoY29uc3QgU3RyaW5nJikgPSAwOwogCiAgICAgdXNpbmcgUmVzZXRPYnNlcnZlciA9IE9ic2Vy
dmVyPHZvaWQoKT47Ci0gICAgdmlydHVhbCB2b2lkIGFkZFJlc2V0T2JzZXJ2ZXIoY29uc3QgU3Ry
aW5nJiwgUmVzZXRPYnNlcnZlciYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkUmVzZXRPYnNl
cnZlcihSZXNldE9ic2VydmVyJikgPSAwOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvSW5jb21pbmdBdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlclVuaXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vY29jb2EvSW5jb21pbmdBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQuY3BwCmlu
ZGV4IDdkODRkODJiZjMxOC4uZTZlOTI2NGZjODU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9JbmNvbWluZ0F1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyVW5pdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vY29jb2EvSW5jb21pbmdBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQuY3BwCkBA
IC01OCwyNSArNTgsMTcgQEAgSW5jb21pbmdBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVu
aXQ6On5JbmNvbWluZ0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmUKICAgICBBU1NFUlQoaXNN
YWluVGhyZWFkKCkpOwogfQogCi12b2lkIEluY29taW5nQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXJVbml0OjphZGRSZXNldE9ic2VydmVyKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIFJlc2V0
T2JzZXJ2ZXImIG9ic2VydmVyKQordm9pZCBJbmNvbWluZ0F1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyVW5pdDo6c2V0QXVkaW9PdXRwdXREZXZpY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCkK
IHsKLSAgICBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OnNpbmdsZXRvbigpLmFk
ZFJlc2V0T2JzZXJ2ZXIoZGV2aWNlSUQsIG9ic2VydmVyKTsKKyAgICBBdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlclVuaXQ6OnNpbmdsZXRvbigpLnNldEF1ZGlvT3V0cHV0RGV2aWNlKGRldmlj
ZUlEKTsKIH0KIAotc3RkOjpwYWlyPGJvb2wsIFZlY3RvcjxSZWY8QXVkaW9TYW1wbGVEYXRhU291
cmNlPj4+IEluY29taW5nQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0OjphZGRTb3Vy
Y2VUb01peGVyKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIFJlZjxBdWRpb1NhbXBsZURhdGFTb3Vy
Y2U+JiYgc291cmNlKQordm9pZCBJbmNvbWluZ0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
VW5pdDo6YWRkUmVzZXRPYnNlcnZlcihSZXNldE9ic2VydmVyJiBvYnNlcnZlcikKIHsKLSAgICBh
c3NlcnRJc01haW5UaHJlYWQoKTsKLQotICAgIEFTU0VSVCghZGV2aWNlSUQuaXNFbXB0eSgpKTsK
LSAgICBhdXRvJiBtaXhlciA9IG1fbWl4ZXJzLmVuc3VyZShkZXZpY2VJRCwgW10geyByZXR1cm4g
TWl4ZXIgeyB9OyB9KS5pdGVyYXRvci0+dmFsdWU7Ci0KLSAgICBBU1NFUlQoIW1peGVyLnNvdXJj
ZXMuY29udGFpbnMoc291cmNlLmdldCgpKSk7Ci0gICAgYm9vbCBzaG91bGRTdGFydCA9IG1peGVy
LnNvdXJjZXMuaXNFbXB0eSgpOwotICAgIG1peGVyLnNvdXJjZXMuYWRkKFdURk1vdmUoc291cmNl
KSk7Ci0gICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKHNob3VsZFN0YXJ0LCBjb3B5VG9WZWN0b3Io
bWl4ZXIuc291cmNlcykpOworICAgIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6
c2luZ2xldG9uKCkuYWRkUmVzZXRPYnNlcnZlcihvYnNlcnZlcik7CiB9CiAKLXZvaWQgSW5jb21p
bmdBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OmFkZFNvdXJjZShjb25zdCBTdHJp
bmcmIGRldmljZUlELCBSZWY8QXVkaW9TYW1wbGVEYXRhU291cmNlPiYmIHNvdXJjZSkKK3ZvaWQg
SW5jb21pbmdBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OmFkZFNvdXJjZShSZWY8
QXVkaW9TYW1wbGVEYXRhU291cmNlPiYmIHNvdXJjZSkKIHsKICNpZiAhUkVMRUFTRV9MT0dfRElT
QUJMRUQKICAgICBzb3VyY2UtPmxvZ2dlcigpLmxvZ0Fsd2F5cyhMb2dXZWJSVEMsICJJbmNvbWlu
Z0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6YWRkU291cmNlICIsIHNvdXJjZS0+
bG9nSWRlbnRpZmllcigpKTsKQEAgLTkyLDk5ICs4NCw2OSBAQCB2b2lkIEluY29taW5nQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0OjphZGRTb3VyY2UoY29uc3QgU3RyaW5nJiBkZXZp
Y2VJRAogICAgICAgICByZXR1cm47CiAgICAgYXV0byBvdXRwdXREZXNjcmlwdGlvbiA9ICpzb3Vy
Y2UtPm91dHB1dERlc2NyaXB0aW9uKCk7CiAKLSAgICBhdXRvIHJlc3VsdCA9IGFkZFNvdXJjZVRv
TWl4ZXIoZGV2aWNlSUQsIFdURk1vdmUoc291cmNlKSk7Ci0gICAgYm9vbCBzaG91bGRTdGFydCA9
IHJlc3VsdC5maXJzdDsKLSAgICBhdXRvIG5ld1NvdXJjZXMgPSBXVEZNb3ZlKHJlc3VsdC5zZWNv
bmQpOwotCi0gICAgcG9zdFRhc2soW3RoaXMsIG5ld1NvdXJjZXMgPSBXVEZNb3ZlKG5ld1NvdXJj
ZXMpLCBzaG91bGRTdGFydCwgZGV2aWNlSUQgPSBkZXZpY2VJRC5pc29sYXRlZENvcHkoKSwgb3V0
cHV0RGVzY3JpcHRpb25dKCkgbXV0YWJsZSB7Ci0gICAgICAgIGFzc2VydElzQ3VycmVudChtX3F1
ZXVlLmdldCgpKTsKLQotICAgICAgICBtX3JlbmRlck1peGVycy5lbnN1cmUoZGV2aWNlSUQsIFtd
IHsgcmV0dXJuIFJlbmRlck1peGVyIHsgfTsgfSkuaXRlcmF0b3ItPnZhbHVlLmlucHV0U291cmNl
cyA9IFdURk1vdmUobmV3U291cmNlcyk7CisgICAgQVNTRVJUKCFtX3NvdXJjZXMuY29udGFpbnMo
c291cmNlLmdldCgpKSk7CisgICAgYm9vbCBzaG91bGRTdGFydCA9IG1fc291cmNlcy5pc0VtcHR5
KCk7CisgICAgbV9zb3VyY2VzLmFkZChXVEZNb3ZlKHNvdXJjZSkpOwogCisgICAgcG9zdFRhc2so
W3RoaXMsIG5ld1NvdXJjZXMgPSBjb3B5VG9WZWN0b3IobV9zb3VyY2VzKSwgc2hvdWxkU3RhcnQs
IG91dHB1dERlc2NyaXB0aW9uXSgpIG11dGFibGUgeworICAgICAgICBtX3JlbmRlclNvdXJjZXMg
PSBXVEZNb3ZlKG5ld1NvdXJjZXMpOwogICAgICAgICBpZiAoIXNob3VsZFN0YXJ0KQogICAgICAg
ICAgICAgcmV0dXJuOwogCi0gICAgICAgIGlmICghIW1fb3V0cHV0U3RyZWFtRGVzY3JpcHRpb24p
IHsKLSAgICAgICAgICAgIG1fb3V0cHV0U3RyZWFtRGVzY3JpcHRpb24gPSBvdXRwdXREZXNjcmlw
dGlvbjsKLSAgICAgICAgICAgIG1fYXVkaW9CdWZmZXJMaXN0ID0gbWFrZVVuaXF1ZTxXZWJBdWRp
b0J1ZmZlckxpc3Q+KCptX291dHB1dFN0cmVhbURlc2NyaXB0aW9uKTsKLSAgICAgICAgICAgIG1f
c2FtcGxlQ291bnQgPSBtX291dHB1dFN0cmVhbURlc2NyaXB0aW9uLT5zYW1wbGVSYXRlKCkgLyAx
MDA7Ci0gICAgICAgICAgICBtX2F1ZGlvQnVmZmVyTGlzdC0+c2V0U2FtcGxlQ291bnQobV9zYW1w
bGVDb3VudCk7Ci0gICAgICAgIH0KLQotICAgICAgICBhdXRvIG1peGVkU291cmNlID0gQXVkaW9T
YW1wbGVEYXRhU291cmNlOjpjcmVhdGUobV9vdXRwdXRTdHJlYW1EZXNjcmlwdGlvbi0+c2FtcGxl
UmF0ZSgpICogMC41LCAqdGhpcywgTGliV2ViUlRDQXVkaW9Nb2R1bGU6OlBvbGxTYW1wbGVzQ291
bnQgKyAxKTsKLSAgICAgICAgbWl4ZWRTb3VyY2UtPnNldElucHV0Rm9ybWF0KG91dHB1dERlc2Ny
aXB0aW9uKTsKLSAgICAgICAgbWl4ZWRTb3VyY2UtPnNldE91dHB1dEZvcm1hdChvdXRwdXREZXNj
cmlwdGlvbik7Ci0KLSAgICAgICAgbV9yZW5kZXJNaXhlcnMuZW5zdXJlKGRldmljZUlELCBbXSB7
IHJldHVybiBSZW5kZXJNaXhlciB7IH07IH0pLml0ZXJhdG9yLT52YWx1ZS5taXhlZFNvdXJjZSA9
IG1peGVkU291cmNlLnB0cigpOwotCi0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3Byb3RlY3Rl
ZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBzb3VyY2UgPSBXVEZNb3ZlKG1peGVkU291cmNlKSwgZGV2
aWNlSUQgPSBkZXZpY2VJRC5pc29sYXRlZENvcHkoKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgICAg
IGFzc2VydElzTWFpblRocmVhZCgpOwotCi0gICAgICAgICAgICBhdXRvJiBtaXhlciA9IHByb3Rl
Y3RlZFRoaXMtPm1fbWl4ZXJzLmVuc3VyZShkZXZpY2VJRCwgW10geyByZXR1cm4gTWl4ZXIgeyB9
OyB9KS5pdGVyYXRvci0+dmFsdWU7Ci0gICAgICAgICAgICBtaXhlci5yZWdpc3RlcmVkTWl4ZWRT
b3VyY2UgPSBXVEZNb3ZlKHNvdXJjZSk7Ci0gICAgICAgICAgICBtaXhlci5kZXZpY2VJRCA9IFdU
Rk1vdmUoZGV2aWNlSUQpOwotICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+c3RhcnQobWl4ZXIp
OworICAgICAgICBtX291dHB1dFN0cmVhbURlc2NyaXB0aW9uID0gb3V0cHV0RGVzY3JpcHRpb247
CisgICAgICAgIG1fYXVkaW9CdWZmZXJMaXN0ID0gbWFrZVVuaXF1ZTxXZWJBdWRpb0J1ZmZlckxp
c3Q+KCptX291dHB1dFN0cmVhbURlc2NyaXB0aW9uKTsKKyAgICAgICAgbV9zYW1wbGVDb3VudCA9
IG1fb3V0cHV0U3RyZWFtRGVzY3JpcHRpb24tPnNhbXBsZVJhdGUoKSAvIDEwMDsKKyAgICAgICAg
bV9hdWRpb0J1ZmZlckxpc3QtPnNldFNhbXBsZUNvdW50KG1fc2FtcGxlQ291bnQpOworICAgICAg
ICBtX21peGVkU291cmNlID0gQXVkaW9TYW1wbGVEYXRhU291cmNlOjpjcmVhdGUobV9vdXRwdXRT
dHJlYW1EZXNjcmlwdGlvbi0+c2FtcGxlUmF0ZSgpICogMC41LCAqdGhpcywgTGliV2ViUlRDQXVk
aW9Nb2R1bGU6OlBvbGxTYW1wbGVzQ291bnQgKyAxKTsKKyAgICAgICAgbV9taXhlZFNvdXJjZS0+
c2V0SW5wdXRGb3JtYXQob3V0cHV0RGVzY3JpcHRpb24pOworICAgICAgICBtX21peGVkU291cmNl
LT5zZXRPdXRwdXRGb3JtYXQob3V0cHV0RGVzY3JpcHRpb24pOworICAgICAgICBtX3dyaXRlQ291
bnQgPSAwOworICAgICAgICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRUaGlzID0gUmVmIHsg
KnRoaXMgfSwgc291cmNlID0gbV9taXhlZFNvdXJjZV0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAg
IHByb3RlY3RlZFRoaXMtPm1fcmVnaXN0ZXJlZE1peGVkU291cmNlID0gV1RGTW92ZShzb3VyY2Up
OworICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+c3RhcnQoKTsKICAgICAgICAgfSk7CiAgICAg
fSk7CiB9CiAKLXN0ZDo6cGFpcjxib29sLCBWZWN0b3I8UmVmPEF1ZGlvU2FtcGxlRGF0YVNvdXJj
ZT4+PiBJbmNvbWluZ0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6cmVtb3ZlU291
cmNlRnJvbU1peGVyKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIEF1ZGlvU2FtcGxlRGF0YVNvdXJj
ZSYgc291cmNlKQotewotICAgIGFzc2VydElzTWFpblRocmVhZCgpOwotCi0gICAgYXV0byYgbWl4
ZXIgPSBtX21peGVycy5lbnN1cmUoZGV2aWNlSUQsIFtdIHsgcmV0dXJuIE1peGVyIHsgfTsgfSku
aXRlcmF0b3ItPnZhbHVlOwotCi0gICAgQVNTRVJUKG1peGVyLnNvdXJjZXMuY29udGFpbnMoc291
cmNlKSk7Ci0gICAgYm9vbCBzaG91bGRTdG9wID0gIW1peGVyLnNvdXJjZXMuaXNFbXB0eSgpOwot
ICAgIG1peGVyLnNvdXJjZXMucmVtb3ZlKFdURk1vdmUoc291cmNlKSk7Ci0gICAgc2hvdWxkU3Rv
cCAmPSBtaXhlci5zb3VyY2VzLmlzRW1wdHkoKTsKLSAgICByZXR1cm4gc3RkOjptYWtlX3BhaXIo
c2hvdWxkU3RvcCwgY29weVRvVmVjdG9yKG1peGVyLnNvdXJjZXMpKTsKLX0KLQotdm9pZCBJbmNv
bWluZ0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6cmVtb3ZlU291cmNlKGNvbnN0
IFN0cmluZyYgZGV2aWNlSUQsIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZSYgc291cmNlKQordm9pZCBJ
bmNvbWluZ0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6cmVtb3ZlU291cmNlKEF1
ZGlvU2FtcGxlRGF0YVNvdXJjZSYgc291cmNlKQogewogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxF
RAogICAgIHNvdXJjZS5sb2dnZXIoKS5sb2dBbHdheXMoTG9nV2ViUlRDLCAiSW5jb21pbmdBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OnJlbW92ZVNvdXJjZSAiLCBzb3VyY2UubG9n
SWRlbnRpZmllcigpKTsKICNlbmRpZgogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKLSAg
ICBhdXRvIHJlc3VsdCA9IHJlbW92ZVNvdXJjZUZyb21NaXhlcihkZXZpY2VJRCwgc291cmNlKTsK
LSAgICBib29sIHNob3VsZFN0b3AgPSByZXN1bHQuZmlyc3Q7Ci0gICAgYXV0byBuZXdTb3VyY2Vz
ID0gV1RGTW92ZShyZXN1bHQuc2Vjb25kKTsKKyAgICBib29sIHNob3VsZFN0b3AgPSAhbV9zb3Vy
Y2VzLmlzRW1wdHkoKTsKKyAgICBtX3NvdXJjZXMucmVtb3ZlKHNvdXJjZSk7CisgICAgc2hvdWxk
U3RvcCAmPSBtX3NvdXJjZXMuaXNFbXB0eSgpOwogCi0gICAgcG9zdFRhc2soW3RoaXMsIG5ld1Nv
dXJjZXMgPSBXVEZNb3ZlKG5ld1NvdXJjZXMpLCBzaG91bGRTdG9wLCBkZXZpY2VJRCA9IGRldmlj
ZUlELmlzb2xhdGVkQ29weSgpXSgpIG11dGFibGUgewotICAgICAgICBhc3NlcnRJc0N1cnJlbnQo
bV9xdWV1ZS5nZXQoKSk7Ci0KLSAgICAgICAgbV9yZW5kZXJNaXhlcnMuZW5zdXJlKGRldmljZUlE
LCBbXSB7IHJldHVybiBSZW5kZXJNaXhlciB7IH07IH0pLml0ZXJhdG9yLT52YWx1ZS5pbnB1dFNv
dXJjZXMgPSBXVEZNb3ZlKG5ld1NvdXJjZXMpOworICAgIHBvc3RUYXNrKFt0aGlzLCBuZXdTb3Vy
Y2VzID0gY29weVRvVmVjdG9yKG1fc291cmNlcyksIHNob3VsZFN0b3BdKCkgbXV0YWJsZSB7Cisg
ICAgICAgIG1fcmVuZGVyU291cmNlcyA9IFdURk1vdmUobmV3U291cmNlcyk7CiAgICAgICAgIGlm
ICghc2hvdWxkU3RvcCkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBjYWxsT25NYWlu
VGhyZWFkKFtwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgZGV2aWNlSUQgPSBkZXZpY2VJ
RC5pc29sYXRlZENvcHkoKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgICAgIGFzc2VydElzTWFpblRo
cmVhZCgpOwotCi0gICAgICAgICAgICBhdXRvJiBtaXhlciA9IHByb3RlY3RlZFRoaXMtPm1fbWl4
ZXJzLmVuc3VyZShkZXZpY2VJRCwgW10geyByZXR1cm4gTWl4ZXIgeyB9OyB9KS5pdGVyYXRvci0+
dmFsdWU7Ci0gICAgICAgICAgICBtaXhlci5kZXZpY2VJRCA9IFdURk1vdmUoZGV2aWNlSUQpOwot
ICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+c3RvcChtaXhlcik7CisgICAgICAgIGNhbGxPbk1h
aW5UaHJlYWQoW3Byb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9XSB7CisgICAgICAgICAgICBw
cm90ZWN0ZWRUaGlzLT5zdG9wKCk7CiAgICAgICAgIH0pOwogICAgIH0pOworCiB9CiAKLXZvaWQg
SW5jb21pbmdBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OnN0YXJ0KE1peGVyJiBt
aXhlcikKK3ZvaWQgSW5jb21pbmdBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OnN0
YXJ0KCkKIHsKICAgICBSRUxFQVNFX0xPRyhXZWJSVEMsICJJbmNvbWluZ0F1ZGlvTWVkaWFTdHJl
YW1UcmFja1JlbmRlcmVyVW5pdDo6c3RhcnQiKTsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OwogCi0gICAgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0OjpzaW5nbGV0b24oKS5h
ZGRTb3VyY2UobWl4ZXIuZGV2aWNlSUQsICptaXhlci5yZWdpc3RlcmVkTWl4ZWRTb3VyY2UpOwor
ICAgIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6c2luZ2xldG9uKCkuYWRkU291
cmNlKCptX3JlZ2lzdGVyZWRNaXhlZFNvdXJjZSk7CiAgICAgbV9hdWRpb01vZHVsZS5nZXQoKS0+
c3RhcnRJbmNvbWluZ0F1ZGlvUmVuZGVyaW5nKCk7CiB9CiAKLXZvaWQgSW5jb21pbmdBdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OnN0b3AoTWl4ZXImIG1peGVyKQordm9pZCBJbmNv
bWluZ0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6c3RvcCgpCiB7CiAgICAgUkVM
RUFTRV9MT0coV2ViUlRDLCAiSW5jb21pbmdBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVu
aXQ6OnN0b3AiKTsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCi0gICAgQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0OjpzaW5nbGV0b24oKS5yZW1vdmVTb3VyY2UobWl4ZXIu
ZGV2aWNlSUQsICptaXhlci5yZWdpc3RlcmVkTWl4ZWRTb3VyY2UpOwotICAgIG1peGVyLnJlZ2lz
dGVyZWRNaXhlZFNvdXJjZSA9IG51bGxwdHI7CisgICAgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXJVbml0OjpzaW5nbGV0b24oKS5yZW1vdmVTb3VyY2UoKm1fcmVnaXN0ZXJlZE1peGVkU291
cmNlKTsKKyAgICBtX3JlZ2lzdGVyZWRNaXhlZFNvdXJjZSA9IG51bGxwdHI7CiAgICAgbV9hdWRp
b01vZHVsZS5nZXQoKS0+c3RvcEluY29taW5nQXVkaW9SZW5kZXJpbmcoKTsKIH0KIApAQCAtMjA1
LDIzICsxNjcsMjEgQEAgdm9pZCBJbmNvbWluZ0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
VW5pdDo6bmV3QXVkaW9DaHVua1B1c2hlZCh1aW50NjRfdCBjdXIKIAogdm9pZCBJbmNvbWluZ0F1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6cmVuZGVyQXVkaW9DaHVuayh1aW50NjRf
dCBjdXJyZW50QXVkaW9TYW1wbGVDb3VudCkKIHsKLSAgICBhc3NlcnRJc0N1cnJlbnQobV9xdWV1
ZS5nZXQoKSk7CisgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAKICAgICB1aW50NjRfdCB0
aW1lU3RhbXAgPSBjdXJyZW50QXVkaW9TYW1wbGVDb3VudCAqIG1fb3V0cHV0U3RyZWFtRGVzY3Jp
cHRpb24tPnNhbXBsZVJhdGUoKSAvIExpYldlYlJUQ0F1ZGlvRm9ybWF0OjpzYW1wbGVSYXRlOwog
Ci0gICAgZm9yIChhdXRvJiByZW5kZXJNaXhlciA6IG1fcmVuZGVyTWl4ZXJzLnZhbHVlcygpKSB7
Ci0gICAgICAgIC8vIE1peCBhbGwgc291cmNlcy4KLSAgICAgICAgYm9vbCBoYXNDb3BpZWREYXRh
ID0gZmFsc2U7Ci0gICAgICAgIGZvciAoYXV0byYgc291cmNlIDogcmVuZGVyTWl4ZXIuaW5wdXRT
b3VyY2VzKSB7Ci0gICAgICAgICAgICBpZiAoc291cmNlLT5wdWxsQXZhaWxhYmxlU2FtcGxlQ2h1
bmsoKm1fYXVkaW9CdWZmZXJMaXN0LCBtX3NhbXBsZUNvdW50LCB0aW1lU3RhbXAsIGhhc0NvcGll
ZERhdGEgPyBBdWRpb1NhbXBsZURhdGFTb3VyY2U6Ok1peCA6IEF1ZGlvU2FtcGxlRGF0YVNvdXJj
ZTo6Q29weSkpCi0gICAgICAgICAgICAgICAgaGFzQ29waWVkRGF0YSA9IHRydWU7Ci0gICAgICAg
IH0KLQotICAgICAgICBDTVRpbWUgc3RhcnRUaW1lID0gUEFMOjpDTVRpbWVNYWtlKHJlbmRlck1p
eGVyLndyaXRlQ291bnQsIG1fb3V0cHV0U3RyZWFtRGVzY3JpcHRpb24tPnNhbXBsZVJhdGUoKSk7
Ci0gICAgICAgIGlmIChoYXNDb3BpZWREYXRhKQotICAgICAgICAgICAgcmVuZGVyTWl4ZXIubWl4
ZWRTb3VyY2UtPnB1c2hTYW1wbGVzKFBBTDo6dG9NZWRpYVRpbWUoc3RhcnRUaW1lKSwgKm1fYXVk
aW9CdWZmZXJMaXN0LCBtX3NhbXBsZUNvdW50KTsKLSAgICAgICAgcmVuZGVyTWl4ZXIud3JpdGVD
b3VudCArPSBtX3NhbXBsZUNvdW50OworICAgIC8vIE1peCBhbGwgc291cmNlcy4KKyAgICBib29s
IGhhc0NvcGllZERhdGEgPSBmYWxzZTsKKyAgICBmb3IgKGF1dG8mIHNvdXJjZSA6IG1fcmVuZGVy
U291cmNlcykgeworICAgICAgICBpZiAoc291cmNlLT5wdWxsQXZhaWxhYmxlU2FtcGxlQ2h1bmso
Km1fYXVkaW9CdWZmZXJMaXN0LCBtX3NhbXBsZUNvdW50LCB0aW1lU3RhbXAsIGhhc0NvcGllZERh
dGEgPyBBdWRpb1NhbXBsZURhdGFTb3VyY2U6Ok1peCA6IEF1ZGlvU2FtcGxlRGF0YVNvdXJjZTo6
Q29weSkpCisgICAgICAgICAgICBoYXNDb3BpZWREYXRhID0gdHJ1ZTsKICAgICB9CisKKyAgICBD
TVRpbWUgc3RhcnRUaW1lID0gUEFMOjpDTVRpbWVNYWtlKG1fd3JpdGVDb3VudCwgbV9vdXRwdXRT
dHJlYW1EZXNjcmlwdGlvbi0+c2FtcGxlUmF0ZSgpKTsKKyAgICBpZiAoaGFzQ29waWVkRGF0YSkK
KyAgICAgICAgbV9taXhlZFNvdXJjZS0+cHVzaFNhbXBsZXMoUEFMOjp0b01lZGlhVGltZShzdGFy
dFRpbWUpLCAqbV9hdWRpb0J1ZmZlckxpc3QsIG1fc2FtcGxlQ291bnQpOworICAgIG1fd3JpdGVD
b3VudCArPSBtX3NhbXBsZUNvdW50OwogfQogCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9JbmNv
bWluZ0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvSW5jb21pbmdBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlclVuaXQuaAppbmRleCAyMDVjZTI5YzhiOTYuLjNjNWQ0NWFkMGZjMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvSW5jb21pbmdBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9JbmNvbWluZ0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyVW5pdC5oCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiQ0FBdWRpb1N0cmVhbURlc2Ny
aXB0aW9uLmgiCiAjaW5jbHVkZSAiTGliV2ViUlRDQXVkaW9Nb2R1bGUuaCIKICNpbmNsdWRlIDx3
dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0hh
c2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvTG9nZ2VySGVscGVyLmg+CiAjaW5jbHVkZSA8d3RmL1Ra
b25lTWFsbG9jLmg+CkBAIC02NSwxOSArNjQsMTYgQEAgcHVibGljOgogICAgIHZvaWQgZGVyZWYo
KSB7IG1fYXVkaW9Nb2R1bGUuZ2V0KCktPmRlcmVmKCk7IH07CiAKIHByaXZhdGU6Ci0gICAgc3Ry
dWN0IE1peGVyOwotICAgIHZvaWQgc3RhcnQoTWl4ZXImKTsKLSAgICB2b2lkIHN0b3AoTWl4ZXIm
KTsKKyAgICB2b2lkIHN0YXJ0KCk7CisgICAgdm9pZCBzdG9wKCk7CiAgICAgdm9pZCBwb3N0VGFz
ayhGdW5jdGlvbjx2b2lkKCk+JiYpOwogICAgIHZvaWQgcmVuZGVyQXVkaW9DaHVuayh1aW50NjRf
dCBjdXJyZW50QXVkaW9TYW1wbGVDb3VudCk7CiAKICAgICAvLyBCYXNlQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJVbml0Ci0gICAgdm9pZCBhZGRSZXNldE9ic2VydmVyKGNvbnN0IFN0cmlu
ZyYsIFJlc2V0T2JzZXJ2ZXImKSBmaW5hbDsKLSAgICB2b2lkIGFkZFNvdXJjZShjb25zdCBTdHJp
bmcmLCBSZWY8QXVkaW9TYW1wbGVEYXRhU291cmNlPiYmKSBmaW5hbDsKLSAgICB2b2lkIHJlbW92
ZVNvdXJjZShjb25zdCBTdHJpbmcmLCBBdWRpb1NhbXBsZURhdGFTb3VyY2UmKSBmaW5hbDsKLQot
ICAgIHN0ZDo6cGFpcjxib29sLCBWZWN0b3I8UmVmPEF1ZGlvU2FtcGxlRGF0YVNvdXJjZT4+PiBh
ZGRTb3VyY2VUb01peGVyKGNvbnN0IFN0cmluZyYsIFJlZjxBdWRpb1NhbXBsZURhdGFTb3VyY2U+
JiYpOwotICAgIHN0ZDo6cGFpcjxib29sLCBWZWN0b3I8UmVmPEF1ZGlvU2FtcGxlRGF0YVNvdXJj
ZT4+PiByZW1vdmVTb3VyY2VGcm9tTWl4ZXIoY29uc3QgU3RyaW5nJiwgQXVkaW9TYW1wbGVEYXRh
U291cmNlJik7CisgICAgdm9pZCBzZXRBdWRpb091dHB1dERldmljZShjb25zdCBTdHJpbmcmKSBm
aW5hbDsKKyAgICB2b2lkIGFkZFJlc2V0T2JzZXJ2ZXIoUmVzZXRPYnNlcnZlciYpIGZpbmFsOwor
ICAgIHZvaWQgYWRkU291cmNlKFJlZjxBdWRpb1NhbXBsZURhdGFTb3VyY2U+JiYpIGZpbmFsOwor
ICAgIHZvaWQgcmVtb3ZlU291cmNlKEF1ZGlvU2FtcGxlRGF0YVNvdXJjZSYpIGZpbmFsOwogCiAj
aWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgLy8gTG9nZ2VySGVscGVyLgpAQCAtOTAsMjYg
Kzg2LDE3IEBAIHByaXZhdGU6CiAgICAgY29uc3QgVGhyZWFkU2FmZVdlYWtQdHI8TGliV2ViUlRD
QXVkaW9Nb2R1bGU+IG1fYXVkaW9Nb2R1bGU7CiAgICAgY29uc3QgUmVmPFdURjo6V29ya1F1ZXVl
PiBtX3F1ZXVlOwogCi0gICAgc3RydWN0IE1peGVyIHsKLSAgICAgICAgSGFzaFNldDxSZWY8QXVk
aW9TYW1wbGVEYXRhU291cmNlPj4gc291cmNlczsKLSAgICAgICAgUmVmUHRyPEF1ZGlvU2FtcGxl
RGF0YVNvdXJjZT4gcmVnaXN0ZXJlZE1peGVkU291cmNlOwotICAgICAgICBTdHJpbmcgZGV2aWNl
SUQ7Ci0gICAgfTsKLQotICAgIHN0cnVjdCBSZW5kZXJNaXhlciB7Ci0gICAgICAgIFZlY3RvcjxS
ZWY8QXVkaW9TYW1wbGVEYXRhU291cmNlPj4gaW5wdXRTb3VyY2VzOwotICAgICAgICBSZWZQdHI8
QXVkaW9TYW1wbGVEYXRhU291cmNlPiBtaXhlZFNvdXJjZTsKLSAgICAgICAgc2l6ZV90IHdyaXRl
Q291bnQgeyAwIH07Ci0gICAgfTsKLQotICAgIEhhc2hNYXA8U3RyaW5nLCBNaXhlcj4gbV9taXhl
cnMgV1RGX0dVQVJERURfQllfQ0FQQUJJTElUWShtYWluVGhyZWFkKTsKKyAgICAvLyBNYWluIHRo
cmVhZCB2YXJpYWJsZXMuCisgICAgSGFzaFNldDxSZWY8QXVkaW9TYW1wbGVEYXRhU291cmNlPj4g
bV9zb3VyY2VzOworICAgIFJlZlB0cjxBdWRpb1NhbXBsZURhdGFTb3VyY2U+IG1fcmVnaXN0ZXJl
ZE1peGVkU291cmNlOwogCiAgICAgLy8gQmFja2dyb3VuZCB0aHJlYWQgdmFyaWFibGVzLgotICAg
IEhhc2hNYXA8U3RyaW5nLCBSZW5kZXJNaXhlcj4gbV9yZW5kZXJNaXhlcnMgV1RGX0dVQVJERURf
QllfQ0FQQUJJTElUWShtX3F1ZXVlLmdldCgpKTsKLQotICAgIHN0ZDo6b3B0aW9uYWw8Q0FBdWRp
b1N0cmVhbURlc2NyaXB0aW9uPiBtX291dHB1dFN0cmVhbURlc2NyaXB0aW9uIFdURl9HVUFSREVE
X0JZX0NBUEFCSUxJVFkobV9xdWV1ZS5nZXQoKSk7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFdlYkF1
ZGlvQnVmZmVyTGlzdD4gbV9hdWRpb0J1ZmZlckxpc3QgV1RGX0dVQVJERURfQllfQ0FQQUJJTElU
WShtX3F1ZXVlLmdldCgpKTsKKyAgICBWZWN0b3I8UmVmPEF1ZGlvU2FtcGxlRGF0YVNvdXJjZT4+
IG1fcmVuZGVyU291cmNlczsKKyAgICBSZWZQdHI8QXVkaW9TYW1wbGVEYXRhU291cmNlPiBtX21p
eGVkU291cmNlOworICAgIHN0ZDo6b3B0aW9uYWw8Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uPiBt
X291dHB1dFN0cmVhbURlc2NyaXB0aW9uOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJBdWRpb0J1
ZmZlckxpc3Q+IG1fYXVkaW9CdWZmZXJMaXN0OwogICAgIHNpemVfdCBtX3NhbXBsZUNvdW50IHsg
MCB9OworICAgIHNpemVfdCBtX3dyaXRlQ291bnQgeyAwIH07CiAKICNpZiAhUkVMRUFTRV9MT0df
RElTQUJMRUQKICAgICBSZWZQdHI8Y29uc3QgTG9nZ2VyPiBtX2xvZ2dlcjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENB
dWRpb01vZHVsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3
ZWJydGMvTGliV2ViUlRDQXVkaW9Nb2R1bGUuY3BwCmluZGV4IGJiZTQyOTJmZDUwZC4uOWVjNjRl
YzEzNTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9s
aWJ3ZWJydGMvTGliV2ViUlRDQXVkaW9Nb2R1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENBdWRpb01vZHVsZS5jcHAKQEAg
LTE1MCw3ICsxNTAsNyBAQCB2b2lkIExpYldlYlJUQ0F1ZGlvTW9kdWxlOjpwb2xsRnJvbVNvdXJj
ZSgpCiAgICAgICAgIGNoYXIgZGF0YVtMaWJXZWJSVENBdWRpb0Zvcm1hdDo6c2FtcGxlQnl0ZVNp
emUgKiBjaGFubmVscyAqIExpYldlYlJUQ0F1ZGlvRm9ybWF0OjpjaHVua1NhbXBsZUNvdW50XTsK
ICAgICAgICAgbV9hdWRpb1RyYW5zcG9ydC0+UHVsbFJlbmRlckRhdGEoTGliV2ViUlRDQXVkaW9G
b3JtYXQ6OnNhbXBsZUJ5dGVTaXplICogOCwgTGliV2ViUlRDQXVkaW9Gb3JtYXQ6OnNhbXBsZVJh
dGUsIGNoYW5uZWxzLCBMaWJXZWJSVENBdWRpb0Zvcm1hdDo6Y2h1bmtTYW1wbGVDb3VudCwgZGF0
YSwgJmVsYXBzZWRUaW1lLCAmbnRwVGltZSk7CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgICAg
IGlmIChtX2lzUmVuZGVyaW5nSW5jb21pbmdBdWRpb0NvdW50ZXIpCisgICAgICAgIGlmIChtX2lz
UmVuZGVyaW5nSW5jb21pbmdBdWRpbykKICAgICAgICAgICAgIG1faW5jb21pbmdBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlclVuaXQtPm5ld0F1ZGlvQ2h1bmtQdXNoZWQobV9jdXJyZW50QXVk
aW9TYW1wbGVDb3VudCk7CiAgICAgICAgIG1fY3VycmVudEF1ZGlvU2FtcGxlQ291bnQgKz0gTGli
V2ViUlRDQXVkaW9Gb3JtYXQ6OmNodW5rU2FtcGxlQ291bnQ7CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENB
dWRpb01vZHVsZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2Vi
cnRjL0xpYldlYlJUQ0F1ZGlvTW9kdWxlLmgKaW5kZXggNzg3ZmJhOWRmZmE5Li4wMzQwYzI5OWM1
YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndl
YnJ0Yy9MaWJXZWJSVENBdWRpb01vZHVsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENBdWRpb01vZHVsZS5oCkBAIC01Nyw5ICs1
Nyw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0b3AoKSB7IFRlcm1pbmF0ZSgpOyB9CiAKICNpZiBQ
TEFURk9STShDT0NPQSkKLSAgICB2b2lkIHN0YXJ0SW5jb21pbmdBdWRpb1JlbmRlcmluZygpIHsg
KyttX2lzUmVuZGVyaW5nSW5jb21pbmdBdWRpb0NvdW50ZXI7IH0KLSAgICB2b2lkIHN0b3BJbmNv
bWluZ0F1ZGlvUmVuZGVyaW5nKCkgeyAtLW1faXNSZW5kZXJpbmdJbmNvbWluZ0F1ZGlvQ291bnRl
cjsgfQotCisgICAgdm9pZCBzdGFydEluY29taW5nQXVkaW9SZW5kZXJpbmcoKSB7IG1faXNSZW5k
ZXJpbmdJbmNvbWluZ0F1ZGlvID0gdHJ1ZTsgfQorICAgIHZvaWQgc3RvcEluY29taW5nQXVkaW9S
ZW5kZXJpbmcoKSB7IG1faXNSZW5kZXJpbmdJbmNvbWluZ0F1ZGlvID0gZmFsc2U7IH0KICAgICBC
YXNlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0JiBpbmNvbWluZ0F1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyVW5pdCgpOwogICAgIHVpbnQ2NF90IGN1cnJlbnRBdWRpb1NhbXBs
ZUNvdW50KCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50QXVkaW9TYW1wbGVDb3VudDsgfQogI2Vu
ZGlmCkBAIC0xNjMsNyArMTYyLDcgQEAgcHJpdmF0ZToKIAogI2lmIFBMQVRGT1JNKENPQ09BKQog
ICAgIHVpbnQ2NF90IG1fY3VycmVudEF1ZGlvU2FtcGxlQ291bnQgeyAwIH07Ci0gICAgc3RkOjph
dG9taWM8dWludDY0X3Q+IG1faXNSZW5kZXJpbmdJbmNvbWluZ0F1ZGlvQ291bnRlciB7IDAgfTsK
KyAgICBib29sIG1faXNSZW5kZXJpbmdJbmNvbWluZ0F1ZGlvIHsgZmFsc2UgfTsKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8SW5jb21pbmdBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ+IG1f
aW5jb21pbmdBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ7CiAjZW5kaWYKIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
SW50ZXJuYWxVbml0TWFuYWdlci5jcHAKaW5kZXggNjA5Mzk5OTBjMGY2Li45MTZhZTY0MzcxYmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVySW50ZXJuYWxVbml0TWFuYWdlci5jcHAKQEAgLTM0LDcgKzM0LDYgQEAKICNpbmNsdWRl
ICJJUENTZW1hcGhvcmUuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiU2hhcmVk
Q0FSaW5nQnVmZmVyLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9BdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXJJbnRlcm5hbFVuaXQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvU2FtcGxlQnVmZmVyTGlz
dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9TZXNzaW9uLmg+CkBAIC01NiwyMSArNTUsMjIg
QEAgY2xhc3MgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRN
YW5hZ2VyVW5pdAogICAgIFdURl9NQUtFX1RaT05FX0FMTE9DQVRFRChSZW1vdGVBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdE1hbmFnZXJVbml0KTsKIHB1YmxpYzoKICAg
ICBzdGF0aWMgUmVmPFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxV
bml0TWFuYWdlclVuaXQ+IGNyZWF0ZSgKLSAgICAgICAgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXJJbnRlcm5hbFVuaXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZGV2
aWNlSUQsIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24sIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRp
b24+LCBzaXplX3QpPiYmIGNhbGxiYWNrKSB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0TWFuYWdlclVu
aXQoaWRlbnRpZmllciwgZGV2aWNlSUQsIGNvbm5lY3Rpb24sIFdURk1vdmUoY2FsbGJhY2spKSk7
CisgICAgICAgIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0SWRlbnRp
ZmllciBpZGVudGlmaWVyLCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Q0FBdWRpb1N0cmVh
bURlc2NyaXB0aW9uPiwgc2l6ZV90KT4mJiBjYWxsYmFjaykgeworICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5p
dE1hbmFnZXJVbml0KGlkZW50aWZpZXIsIGNvbm5lY3Rpb24sIFdURk1vdmUoY2FsbGJhY2spKSk7
CiAgICAgfQogCiAgICAgflJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJu
YWxVbml0TWFuYWdlclVuaXQoKTsKIAogICAgIHZvaWQgc3RhcnQoQ29uc3VtZXJTaGFyZWRDQVJp
bmdCdWZmZXI6OkhhbmRsZSYmLCBJUEM6OlNlbWFwaG9yZSYmKTsKICAgICB2b2lkIHN0b3AoKTsK
KyAgICB2b2lkIHNldEF1ZGlvT3V0cHV0RGV2aWNlKGNvbnN0IFN0cmluZyYpOwogCiAgICAgdm9p
ZCB1cGRhdGVTaG91bGRSZWdpc3RlckFzU3BlYWtlclNhbXBsZXNQcm9kdWNlcigpOwogCiAgICAg
VVNJTkdfQ0FOX01BS0VfV0VBS1BUUihXZWJDb3JlOjpBdWRpb1Nlc3Npb25JbnRlcnJ1cHRpb25P
YnNlcnZlcik7CiAKIHByaXZhdGU6Ci0gICAgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2VyVW5pdChBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
ckludGVybmFsVW5pdElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIEdQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6
Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uPiwgc2l6ZV90KT4mJik7CisgICAgUmVtb3RlQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2VyVW5pdChBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdElkZW50aWZpZXIsIEdQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29y
ZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uPiwgc2l6ZV90KT4mJik7CiAKICAgICAvLyBDb3Jl
QXVkaW9TcGVha2VyU2FtcGxlc1Byb2R1Y2VyCiAgICAgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0
cmVhbURlc2NyaXB0aW9uJiBmb3JtYXQoKSBmaW5hbCB7IHJldHVybiAqbV9kZXNjcmlwdGlvbjsg
fQpAQCAtMTAxLDcgKzEwMSw2IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPENvbnN1
bWVyU2hhcmVkQ0FSaW5nQnVmZmVyPiBtX3JpbmdCdWZmZXI7CiAgICAgYm9vbCBtX2lzUGxheWlu
ZyB7IGZhbHNlIH07CiAgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24+IG1fZGVzY3JpcHRpb247Ci0gICAgYm9vbCBtX2NhblVzZUNhcHR1cmVVbml0IHsg
ZmFsc2UgfTsKICAgICBib29sIG1fc2hvdWxkUmVnaXN0ZXJBc1NwZWFrZXJTYW1wbGVzUHJvZHVj
ZXIgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9jYW5SZXNldCB7IHRydWUgfTsKIH07CkBAIC0xMTcs
MTEgKzExNiwxMSBAQCBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFs
VW5pdE1hbmFnZXI6On5SZW1vdGVBdWRpb01lZGlhU3RyZWFtVAogewogfQogCi12b2lkIFJlbW90
ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0TWFuYWdlcjo6Y3JlYXRl
VW5pdChBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdElkZW50aWZpZXIg
aWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24+LCBzaXpl
X3QpPiYmIGNhbGxiYWNrKQordm9pZCBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
ckludGVybmFsVW5pdE1hbmFnZXI6OmNyZWF0ZVVuaXQoQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXJJbnRlcm5hbFVuaXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24+LCBz
aXplX3QpPiYmIGNhbGxiYWNrKQogewogICAgIEFTU0VSVCghbV91bml0cy5jb250YWlucyhpZGVu
dGlmaWVyKSk7CiAgICAgaWYgKGF1dG8gY29ubmVjdGlvbiA9IG1fZ3B1Q29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5nZXQoKSkKLSAgICAgICAgbV91bml0cy5hZGQoaWRlbnRpZmllciwgUmVtb3RlQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2VyVW5pdDo6Y3JlYXRl
KGlkZW50aWZpZXIsIGRldmljZUlELCAqY29ubmVjdGlvbiwgV1RGTW92ZShjYWxsYmFjaykpKTsK
KyAgICAgICAgbV91bml0cy5hZGQoaWRlbnRpZmllciwgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2VyVW5pdDo6Y3JlYXRlKGlkZW50aWZpZXIsICpj
b25uZWN0aW9uLCBXVEZNb3ZlKGNhbGxiYWNrKSkpOwogfQogCiB2b2lkIFJlbW90ZUF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0TWFuYWdlcjo6ZGVsZXRlVW5pdChBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdElkZW50aWZpZXIgaWRlbnRpZmll
cikKQEAgLTE0Nyw2ICsxNDYsMTIgQEAgdm9pZCBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlckludGVybmFsVW5pdE1hbmFnZXI6OnN0b3BVbml0KEF1ZGlvTWVkaWEKICAgICAgICAg
dW5pdC0+c3RvcCgpOwogfQogCit2b2lkIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVySW50ZXJuYWxVbml0TWFuYWdlcjo6c2V0QXVkaW9PdXRwdXREZXZpY2UoQXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgZGV2aWNlSWQpCit7CisgICAgaWYgKFJlZlB0ciB1bml0ID0gbV91bml0cy5nZXQo
aWRlbnRpZmllcikpCisgICAgICAgIHVuaXQtPnNldEF1ZGlvT3V0cHV0RGV2aWNlKGRldmljZUlk
KTsKK30KKwogdm9pZCBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFs
VW5pdE1hbmFnZXI6Om5vdGlmeUxhc3RUb0NhcHR1cmVBdWRpb0NoYW5nZWQoKQogewogICAgIGZv
ciAoUmVmIHVuaXQgOiBtX3VuaXRzLnZhbHVlcygpKQpAQCAtMTU1LDEyICsxNjAsMTEgQEAgdm9p
ZCBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdE1hbmFnZXI6
Om5vdGlmeUxhc3RUb0NhcHR1cmUKIAogV1RGX01BS0VfVFpPTkVfQUxMT0NBVEVEX0lNUEwoUmVt
b3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2VyVW5pdCk7
CiAKLVJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0TWFuYWdl
clVuaXQ6OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0TWFu
YWdlclVuaXQoQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRJZGVudGlm
aWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIEdQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MmIGNvbm5lY3Rpb24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24+LCBzaXplX3QpPiYmIGNhbGxiYWNr
KQorUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2Vy
VW5pdDo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5h
Z2VyVW5pdChBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdElkZW50aWZp
ZXIgaWRlbnRpZmllciwgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1E
ZXNjcmlwdGlvbj4sIHNpemVfdCk+JiYgY2FsbGJhY2spCiAgICAgOiBtX2lkZW50aWZpZXIoaWRl
bnRpZmllcikKICAgICAsIG1fY29ubmVjdGlvbihjb25uZWN0aW9uKQotICAgICwgbV9sb2NhbFVu
aXQoV2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6OmNy
ZWF0ZShkZXZpY2VJRCwgKnRoaXMpKQotICAgICwgbV9jYW5Vc2VDYXB0dXJlVW5pdChkZXZpY2VJ
RCA9PSBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6ZGVmYXVsdERldmljZUlEKCkpCi0g
ICAgLCBtX3Nob3VsZFJlZ2lzdGVyQXNTcGVha2VyU2FtcGxlc1Byb2R1Y2VyKG1fY2FuVXNlQ2Fw
dHVyZVVuaXQgJiYgY29ubmVjdGlvbi5pc0xhc3RUb0NhcHR1cmVBdWRpbygpKQorICAgICwgbV9s
b2NhbFVuaXQoV2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVu
aXQ6OmNyZWF0ZSgqdGhpcykpCisgICAgLCBtX3Nob3VsZFJlZ2lzdGVyQXNTcGVha2VyU2FtcGxl
c1Byb2R1Y2VyKGNvbm5lY3Rpb24uaXNMYXN0VG9DYXB0dXJlQXVkaW8oKSkKIHsKICAgICBXZWJD
b3JlOjpBdWRpb1Nlc3Npb246OnByb3RlY3RlZFNoYXJlZFNlc3Npb24oKS0+YWRkSW50ZXJydXB0
aW9uT2JzZXJ2ZXIoKnRoaXMpOwogICAgIHByb3RlY3RlZExvY2FsVW5pdCgpLT5yZXRyaWV2ZUZv
cm1hdERlc2NyaXB0aW9uKFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCB0aGlzLCBjYWxs
YmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShhdXRvJiYgZGVzY3JpcHRpb24pIG11dGFibGUgewpA
QCAtMTk0LDkgKzE5OCw2IEBAIHZvaWQgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXJJbnRlcm5hbFVuaXRNYW5hZ2VyVW5pdDo6cmVzZXQoKQogCiB2b2lkIFJlbW90ZUF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0TWFuYWdlclVuaXQ6OnNldFNob3VsZFJl
Z2lzdGVyQXNTcGVha2VyU2FtcGxlc1Byb2R1Y2VyKGJvb2wgdmFsdWUpCiB7Ci0gICAgaWYgKCFt
X2NhblVzZUNhcHR1cmVVbml0KQotICAgICAgICByZXR1cm47Ci0KICAgICBpZiAobV9zaG91bGRS
ZWdpc3RlckFzU3BlYWtlclNhbXBsZXNQcm9kdWNlciA9PSB2YWx1ZSkKICAgICAgICAgcmV0dXJu
OwogCkBAIC0yNDMsOSArMjQ0LDE1IEBAIHZvaWQgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2VyVW5pdDo6c3RvcCgpCiAgICAgcHJvdGVjdGVkTG9j
YWxVbml0KCktPnN0b3AoKTsKIH0KIAordm9pZCBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlckludGVybmFsVW5pdE1hbmFnZXJVbml0OjpzZXRBdWRpb091dHB1dERldmljZShjb25z
dCBTdHJpbmcmIGRldmljZUlkKQoreworICAgIHByb3RlY3RlZExvY2FsVW5pdCgpLT5zZXRBdWRp
b091dHB1dERldmljZShkZXZpY2VJZCk7CisgICAgdXBkYXRlU2hvdWxkUmVnaXN0ZXJBc1NwZWFr
ZXJTYW1wbGVzUHJvZHVjZXIoKTsKK30KKwogdm9pZCBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlckludGVybmFsVW5pdE1hbmFnZXJVbml0Ojp1cGRhdGVTaG91bGRSZWdpc3RlckFz
U3BlYWtlclNhbXBsZXNQcm9kdWNlcigpCiB7Ci0gICAgc2V0U2hvdWxkUmVnaXN0ZXJBc1NwZWFr
ZXJTYW1wbGVzUHJvZHVjZXIobV9jb25uZWN0aW9uLmdldCgpLT5pc0xhc3RUb0NhcHR1cmVBdWRp
bygpKTsKKyAgICBzZXRTaG91bGRSZWdpc3RlckFzU3BlYWtlclNhbXBsZXNQcm9kdWNlcihwcm90
ZWN0ZWRMb2NhbFVuaXQoKS0+YXVkaW9PdXRwdXREZXZpY2VJRCgpLmlzRW1wdHkoKSAmJiBtX2Nv
bm5lY3Rpb24uZ2V0KCktPmlzTGFzdFRvQ2FwdHVyZUF1ZGlvKCkpOwogfQogCiBPU1N0YXR1cyBS
ZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdE1hbmFnZXJVbml0
OjpyZW5kZXIoc2l6ZV90IHNhbXBsZUNvdW50LCBBdWRpb0J1ZmZlckxpc3QmIGxpc3QsIHVpbnQ2
NF90LCBkb3VibGUsIEF1ZGlvVW5pdFJlbmRlckFjdGlvbkZsYWdzJiBmbGFncykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxV
bml0TWFuYWdlci5oCmluZGV4IDhiYWZlNDJjYmI4OC4uMzM0ZTM3Yjc3MjFjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVySW50ZXJuYWxVbml0TWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5h
bFVuaXRNYW5hZ2VyLmgKQEAgLTY0LDEwICs2NCwxMSBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAg
ICAgLy8gTWVzc2FnZXMKLSAgICB2b2lkIGNyZWF0ZVVuaXQoQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXJJbnRlcm5hbFVuaXRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0
aW9uPiwgc2l6ZV90KT4mJiBjYWxsYmFjayk7CisgICAgdm9pZCBjcmVhdGVVbml0KEF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0SWRlbnRpZmllciwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlv
bj4sIHNpemVfdCk+JiYgY2FsbGJhY2spOwogICAgIHZvaWQgZGVsZXRlVW5pdChBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdElkZW50aWZpZXIpOwogICAgIHZvaWQgc3Rh
cnRVbml0KEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0SWRlbnRpZmll
ciwgQ29uc3VtZXJTaGFyZWRDQVJpbmdCdWZmZXI6OkhhbmRsZSYmLCBJUEM6OlNlbWFwaG9yZSYm
KTsKICAgICB2b2lkIHN0b3BVbml0KEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJu
YWxVbml0SWRlbnRpZmllcik7CisgICAgdm9pZCBzZXRBdWRpb091dHB1dERldmljZShBdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdElkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYpOwogCiAgICAgSGFzaE1hcDxBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFs
VW5pdElkZW50aWZpZXIsIFJlZjxjbGFzcyBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlckludGVybmFsVW5pdE1hbmFnZXJVbml0Pj4gbV91bml0czsKICAgICBUaHJlYWRTYWZlV2Vh
a1B0cjxHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzPiBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0TWFuYWdlci5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2VyLm1lc3NhZ2VzLmluCmluZGV4IDlhNmRm
OGViZjM0Yy4uMDE4ODc2NDkyYzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0
TWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRj
L1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0TWFuYWdlci5t
ZXNzYWdlcy5pbgpAQCAtMjQsMTEgKzI0LDEzIEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAm
JiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBQTEFURk9STShDT0NPQSkKIAogbWVzc2FnZXMgLT4g
UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2VyIE5v
dFJlZkNvdW50ZWQgewotICAgIENyZWF0ZVVuaXQoV2ViS2l0OjpBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlckludGVybmFsVW5pdElkZW50aWZpZXIgaWRlbnRpZmllciwgU3RyaW5nIGRldmlj
ZUlEKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24+
IGRlc2NyaXB0aW9uLCBzaXplX3QgZnJhbWVDaHVua1NpemUpCisgICAgQ3JlYXRlVW5pdChXZWJL
aXQ6OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0SWRlbnRpZmllciBp
ZGVudGlmaWVyKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3Jp
cHRpb24+IGRlc2NyaXB0aW9uLCBzaXplX3QgZnJhbWVDaHVua1NpemUpCiAgICAgRGVsZXRlVW5p
dChXZWJLaXQ6OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0SWRlbnRp
ZmllciBpZGVudGlmaWVyKQogCiAgICAgU3RhcnRVbml0KFdlYktpdDo6QXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIHN0cnVjdCBX
ZWJLaXQ6OkNvbnN1bWVyU2hhcmVkQ0FSaW5nQnVmZmVySGFuZGxlIHN0b3JhZ2VIYW5kbGUsIElQ
Qzo6U2VtYXBob3JlIHJlbmRlclNlbWFwaG9yZSkKICAgICBTdG9wVW5pdChXZWJLaXQ6OkF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0SWRlbnRpZmllciBpZGVudGlmaWVy
KQorCisgICAgU2V0QXVkaW9PdXRwdXREZXZpY2UoV2ViS2l0OjpBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlckludGVybmFsVW5pdElkZW50aWZpZXIgaWRlbnRpZmllciwgU3RyaW5nIGRldmlj
ZUlkKQogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvd2VicnRjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0TWFuYWdl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9BdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdE1hbmFnZXIuY3BwCmluZGV4IGVmZmE2M2U2NWJm
OS4uNTlmZjg3NGU3Y2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L3dlYnJ0Yy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdE1hbmFnZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0F1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0TWFuYWdlci5jcHAKQEAgLTUxLDkgKzUxLDkg
QEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
ckludGVybmFsVW5pdE1hbmFnZXJQcm94eSBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpBdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdCwgcHVibGljIFRocmVhZFNhZmVSZWZD
b3VudGVkQW5kQ2FuTWFrZVRocmVhZFNhZmVXZWFrUHRyPEF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVySW50ZXJuYWxVbml0TWFuYWdlclByb3h5PiwgcHVibGljIElkZW50aWZpZWQ8QXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRJZGVudGlmaWVyPiB7CiAgICAgV1RG
X01BS0VfVFpPTkVfQUxMT0NBVEVEKEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJu
YWxVbml0TWFuYWdlclByb3h5KTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0TWFuYWdlclByb3h5PiBjcmVhdGUoY29uc3Qg
U3RyaW5nJiBkZXZpY2VJRCwgQ2xpZW50JiBjbGllbnQpCisgICAgc3RhdGljIFJlZjxBdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdE1hbmFnZXJQcm94eT4gY3JlYXRlKENs
aWVudCYgY2xpZW50KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2VyUHJveHkoZGV2aWNlSUQs
IGNsaWVudCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlckludGVybmFsVW5pdE1hbmFnZXJQcm94eShjbGllbnQpKTsKICAgICB9CiAK
ICAgICB+QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2VyUHJv
eHkoKTsKQEAgLTY1LDE0ICs2NSwxNCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXNldChJc0Nsb3Nl
ZCk7CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXJJbnRlcm5hbFVuaXRNYW5hZ2VyUHJveHkoY29uc3QgU3RyaW5nJiwgQ2xpZW50Jik7CisgICAg
ZXhwbGljaXQgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2Vy
UHJveHkoQ2xpZW50Jik7CiAKICAgICAvLyBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVu
aXQ6OkludGVybmFsVW5pdCBBUEkuCiAgICAgdm9pZCBzdGFydCgpIGZpbmFsOwogICAgIHZvaWQg
c3RvcCgpIGZpbmFsOwotICAgIHZvaWQgY2xvc2UoKSB7IHN0b3BUaHJlYWQoKTsgfQotCiAgICAg
dm9pZCByZXRyaWV2ZUZvcm1hdERlc2NyaXB0aW9uKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3Rk
OjpvcHRpb25hbDxXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24+KT4mJikgZmluYWw7
CisgICAgdm9pZCBzZXRBdWRpb091dHB1dERldmljZShjb25zdCBTdHJpbmcmKSBmaW5hbDsKKyAg
ICBjb25zdCBTdHJpbmcmIGF1ZGlvT3V0cHV0RGV2aWNlSUQoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBtX2RldmljZUlkOyB9CiAKICAgICB2b2lkIGluaXRpYWxpemUoY29uc3QgV2ViQ29yZTo6Q0FB
dWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90IGZyYW1lQ2h1bmtTaXplKTsKICAgICB2b2lk
IHN0b3JhZ2VDaGFuZ2VkKFdlYkNvcmU6OlNoYXJlZE1lbW9yeSosIGNvbnN0IFdlYkNvcmU6OkNB
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCk7CkBAIC04MSwxMSArODEsMTEgQEAgcHJp
dmF0ZToKICAgICB2b2lkIHN0YXJ0VGhyZWFkKCk7CiAgICAgdm9pZCBjcmVhdGVSZW1vdGVVbml0
KCk7CiAKLSAgICBTdHJpbmcgbV9kZXZpY2VJRDsKICAgICBUaHJlYWRTYWZlV2Vha1B0cjxDbGll
bnQ+IG1fY2xpZW50OwogCiAgICAgRGVxdWU8Q29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbj4pPj4gbV9kZXNjcmlwdGlv
bkNhbGxiYWNrczsKIAorICAgIFN0cmluZyBtX2RldmljZUlkOwogICAgIGJvb2wgbV9pc1BsYXlp
bmcgeyBmYWxzZSB9OwogCiAgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpDQUF1ZGlvU3RyZWFt
RGVzY3JpcHRpb24+IG1fZGVzY3JpcHRpb247CkBAIC0xMTMsOSArMTEzLDkgQEAgdm9pZCBBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdE1hbmFnZXI6OnJlbW92ZShBdWRp
b01lZGlhU3RyZWFtVHIKICAgICBtX3Byb3hpZXMucmVtb3ZlKHByb3h5LmlkZW50aWZpZXIoKSk7
CiB9CiAKLVJlZjxXZWJDb3JlOjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFs
VW5pdD4gY3JlYXRlUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVu
aXRQcm94eShjb25zdCBTdHJpbmcmIGRldmljZUlELCBXZWJDb3JlOjpBdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6Q2xpZW50JiBjbGllbnQpCitSZWY8V2ViQ29yZTo6
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ+IGNyZWF0ZVJlbW90ZUF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0UHJveHkoV2ViQ29yZTo6QXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6OkNsaWVudCYgY2xpZW50KQog
ewotICAgIHJldHVybiBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdE1h
bmFnZXJQcm94eTo6Y3JlYXRlKGRldmljZUlELCBjbGllbnQpOworICAgIHJldHVybiBBdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdE1hbmFnZXJQcm94eTo6Y3JlYXRlKGNs
aWVudCk7CiB9CiAKIHZvaWQgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVu
aXRNYW5hZ2VyOjpyZXNldChBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5p
dElkZW50aWZpZXIgaWRlbnRpZmllcikKQEAgLTEzNiw5ICsxMzYsOCBAQCB2b2lkIEF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0TWFuYWdlcjo6cmVzdGFydEFsbFVuaXRz
KCkKIAogV1RGX01BS0VfVFpPTkVfQUxMT0NBVEVEX0lNUEwoQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2VyUHJveHkpOwogCi1BdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlckludGVybmFsVW5pdE1hbmFnZXJQcm94eTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2VyUHJveHkoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwg
Q2xpZW50JiBjbGllbnQpCi0gICAgOiBtX2RldmljZUlEKGRldmljZUlEKQotICAgICwgbV9jbGll
bnQoY2xpZW50KQorQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5h
Z2VyUHJveHk6OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0TWFuYWdl
clByb3h5KENsaWVudCYgY2xpZW50KQorICAgIDogbV9jbGllbnQoY2xpZW50KQogewogICAgIFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLmF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJu
YWxVbml0TWFuYWdlcigpLmFkZCgqdGhpcyk7CiAgICAgY3JlYXRlUmVtb3RlVW5pdCgpOwpAQCAt
MTU1LDcgKzE1NCw3IEBAIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0
TWFuYWdlclByb3h5Ojp+QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuCiAKIHZvaWQgQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2VyUHJveHk6OmNyZWF0ZVJlbW90
ZVVuaXQoKQogewotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3ND
b25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVt
b3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2VyOjpDcmVh
dGVVbml0IHsgaWRlbnRpZmllcigpLCBtX2RldmljZUlEIH0sIFt3ZWFrVGhpcyA9IFRocmVhZFNh
ZmVXZWFrUHRyIHsgKnRoaXMgfV0oYXV0byYmIGRlc2NyaXB0aW9uLCBhdXRvIGZyYW1lQ2h1bmtT
aXplKSB7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5l
Y3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdE1hbmFnZXI6OkNyZWF0ZVVu
aXQgeyBpZGVudGlmaWVyKCkgfSwgW3dlYWtUaGlzID0gVGhyZWFkU2FmZVdlYWtQdHIgeyAqdGhp
cyB9XShhdXRvJiYgZGVzY3JpcHRpb24sIGF1dG8gZnJhbWVDaHVua1NpemUpIHsKICAgICAgICAg
aWYgKFJlZlB0ciBwcm90ZWN0ZWRUaGlzID0gd2Vha1RoaXMuZ2V0KCk7IHByb3RlY3RlZFRoaXMg
JiYgZGVzY3JpcHRpb24gJiYgZnJhbWVDaHVua1NpemUpCiAgICAgICAgICAgICBwcm90ZWN0ZWRU
aGlzLT5pbml0aWFsaXplKCpkZXNjcmlwdGlvbiwgZnJhbWVDaHVua1NpemUpOwogICAgIH0sIDAp
OwpAQCAtMTg3LDYgKzE4Niw4IEBAIHZvaWQgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJ
bnRlcm5hbFVuaXRNYW5hZ2VyUHJveHk6OnN0YXJ0KCkKICAgICBpZiAobV9kaWRDbG9zZSkgewog
ICAgICAgICBtX2RpZENsb3NlID0gZmFsc2U7CiAgICAgICAgIGNyZWF0ZVJlbW90ZVVuaXQoKTsK
KyAgICAgICAgaWYgKCFtX2RldmljZUlkLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIHNldEF1ZGlv
T3V0cHV0RGV2aWNlKG1fZGV2aWNlSWQpOwogICAgICAgICBtX2lzUGxheWluZyA9IHRydWU7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CkBAIC0yMTQsNiArMjE1LDEyIEBAIHZvaWQgQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2VyUHJveHk6OnN0b3AoKQogICAg
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkuY29u
bmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVySW50ZXJuYWxVbml0TWFuYWdlcjo6U3RvcFVuaXQgeyBpZGVudGlmaWVyKCkgfSwgMCk7CiB9
CiAKK3ZvaWQgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2Vy
UHJveHk6OnNldEF1ZGlvT3V0cHV0RGV2aWNlKGNvbnN0IFN0cmluZyYgZGV2aWNlSWQpCit7Cisg
ICAgbV9kZXZpY2VJZCA9IGRldmljZUlkOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVu
c3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJl
bW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0TWFuYWdlcjo6U2V0
QXVkaW9PdXRwdXREZXZpY2UgeyBpZGVudGlmaWVyKCksIGRldmljZUlkIH0sIDApOworfQorCiB2
b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0TWFuYWdlclByb3h5
OjpyZXRyaWV2ZUZvcm1hdERlc2NyaXB0aW9uKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpv
cHRpb25hbDxXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24+KT4mJiBjYWxsYmFjaykK
IHsKICAgICBpZiAoIW1fZGVzY3JpcHRpb24gfHwgIW1fZGVzY3JpcHRpb25DYWxsYmFja3MuaXNF
bXB0eSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0
Yy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdE1hbmFnZXIuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVySW50ZXJuYWxVbml0TWFuYWdlci5oCmluZGV4IDA2YzYyMDM4MTQ4Yi4uZDk2MGY0MjEy
MWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9BdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdE1hbmFnZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlckludGVybmFsVW5pdE1hbmFnZXIuaApAQCAtNjAsNyArNjAsNyBAQCBwcml2YXRlOgogICAg
IEhhc2hNYXA8QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRJZGVudGlm
aWVyLCBUaHJlYWRTYWZlV2Vha1B0cjxBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVy
bmFsVW5pdE1hbmFnZXJQcm94eT4+IG1fcHJveGllczsKIH07CiAKLVJlZjxXZWJDb3JlOjpBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdD4gY3JlYXRlUmVtb3RlQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRQcm94eShjb25zdCBTdHJpbmcmLCBX
ZWJDb3JlOjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6Q2xpZW50
Jik7CitSZWY8V2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVu
aXQ+IGNyZWF0ZVJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0
UHJveHkoV2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6
OkNsaWVudCYpOwogCiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>