<?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>224653</bug_id>
          
          <creation_ts>2021-04-15 23:47:00 -0700</creation_ts>
          <short_desc>REGRESSION(r276107): It broke non-Cocoa clean builds</short_desc>
          <delta_ts>2021-04-24 15:10:21 -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>224469</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>fujii</cc>
    
    <cc>peng.liu6</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1750957</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2021-04-15 23:47:00 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/276107 broke the build:
It broke non-Cocoa clean builds

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>1750959</commentid>
    <comment_count>1</comment_count>
      <attachid>426188</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2021-04-15 23:47:11 -0700</bug_when>
    <thetext>Created attachment 426188
REVERT of r276107

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>1750960</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-04-15 23:49:34 -0700</bug_when>
    <thetext>Committed r276120 (236617@main): &lt;https://commits.webkit.org/236617@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 426188.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1753955</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-04-24 15:10:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/77110136&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>426188</attachid>
            <date>2021-04-15 23:47:11 -0700</date>
            <delta_ts>2021-04-15 23:49:35 -0700</delta_ts>
            <desc>REVERT of r276107</desc>
            <filename>bug-224653-20210416064710.patch</filename>
            <type>text/plain</type>
            <size>77744</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2MTE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTNkMjM5YzkyYjE5NDEw
ZWJjZDhjM2Q3OGM4YmY4MTE2MGJjMTAyNi4uZDEwODNmY2Q5NGYzYjAxNTcyNzM3YWZiNzQzNGRl
NTk5OWFhZmI0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTA0LTE1ICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2Vk
LCByZXZlcnRpbmcgcjI3NjEwNy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNDY1MworCisgICAgICAgIEl0IGJyb2tlIG5vbi1Db2NvYSBjbGVhbiBi
dWlsZHMKKworICAgICAgICBSZXZlcnRlZCBjaGFuZ2VzZXQ6CisKKyAgICAgICAgIltHUFVQXSBX
ZWJDb250ZW50IHByb2Nlc3Mgc2hvdWxkIG5vdCBjcmVhdGUgQVZPdXRwdXRDb250ZXh0CisgICAg
ICAgIGluc3RhbmNlcyB3aGVuIG1lZGlhIGluIEdQVSBQcm9jZXNzIGlzIGVuYWJsZWQiCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQ0NjkKKyAgICAg
ICAgaHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzI3NjEwNworCiAyMDIxLTA0LTE1
ICBMYXVybyBNb3VyYSAgPGxtb3VyYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04o
cjI3NjAzOSkgW0dUS10gQnVpbGQgZmFpbHVyZXMgb24gVWJ1bnR1IDE4LjA0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4
IDdjZDVkZDllZGNlNmViY2NiZmRmZDUzYzNjYzZkZGUxZGUzOTFlMzEuLjY5MWI0YTk1ZWMzZjEy
N2VhMmQ5MzhkMTBiNDA1OGViNjQ1ZTg0NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MjEtMDQtMTUgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgorCisgICAg
ICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjc2MTA3LgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI0NjUzCisKKyAgICAgICAgSXQgYnJva2Ugbm9u
LUNvY29hIGNsZWFuIGJ1aWxkcworCisgICAgICAgIFJldmVydGVkIGNoYW5nZXNldDoKKworICAg
ICAgICAiW0dQVVBdIFdlYkNvbnRlbnQgcHJvY2VzcyBzaG91bGQgbm90IGNyZWF0ZSBBVk91dHB1
dENvbnRleHQKKyAgICAgICAgaW5zdGFuY2VzIHdoZW4gbWVkaWEgaW4gR1BVIFByb2Nlc3MgaXMg
ZW5hYmxlZCIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyNDQ2OQorICAgICAgICBodHRwczovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjc2MTA3
CisKIDIwMjEtMDQtMTUgIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+
CiAKICAgICAgICAgQ3Jhc2hUcmFjZXI6IGNvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudCBhdCBj
b20uYXBwbGUuV2ViS2l0OiBXVEY6Okhhc2hUYWJsZUNvbnN0SXRlcmF0b3I8V1RGOjpTdHJpbmcs
IFdURjo6S2V5VmFsdWVQYWlyPC4uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDRm
ZWNjZjI2MGQ1M2RjZmNiYjk5ZDUxYzgyNjAzM2I1ODBmZTg2NTEuLjliM2M0N2U1OGY0OGU2OTEx
YWVmNWQ4NTI0MTEzODI3NzY5Yjc5MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNyBAQAorMjAyMS0wNC0xNSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNzYxMDcuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQ2NTMKKworICAg
ICAgICBJdCBicm9rZSBub24tQ29jb2EgY2xlYW4gYnVpbGRzCisKKyAgICAgICAgUmV2ZXJ0ZWQg
Y2hhbmdlc2V0OgorCisgICAgICAgICJbR1BVUF0gV2ViQ29udGVudCBwcm9jZXNzIHNob3VsZCBu
b3QgY3JlYXRlIEFWT3V0cHV0Q29udGV4dAorICAgICAgICBpbnN0YW5jZXMgd2hlbiBtZWRpYSBp
biBHUFUgUHJvY2VzcyBpcyBlbmFibGVkIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI0NDY5CisgICAgICAgIGh0dHBzOi8vdHJhYy53ZWJraXQub3Jn
L2NoYW5nZXNldC8yNzYxMDcKKwogMjAyMS0wNC0xNSAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBw
bGUuY29tPgogCiAgICAgICAgIFtHUFVQXSBXZWJDb250ZW50IHByb2Nlc3Mgc2hvdWxkIG5vdCBj
cmVhdGUgQVZPdXRwdXRDb250ZXh0IGluc3RhbmNlcyB3aGVuIG1lZGlhIGluIEdQVSBQcm9jZXNz
IGlzIGVuYWJsZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9T
b3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IGMwNGY4MDRlZDkzN2M2NzBhZGVmN2Iz
YjY4OWQ4OTVkZmE3ZTdiMDAuLmUxMTUwNWNkZDBmOGU0M2IyODczZGI3YTFkNTgxZjhkZjk4NGZl
YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNl
L1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTI2OSw2ICsxMjY5LDcgQEAgc2V0KFdlYkNvcmVf
UFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL01JTUVUeXBl
Q2FjaGUuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWJhY2tUYXJnZXQuaAogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQuaAorICAgIHBsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0LmgKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyLmgKICAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllci5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJFbnVtcy5o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FpcnBsYXkvV2ViTWVkaWFTZXNz
aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FpcnBsYXkvV2ViTWVkaWFT
ZXNzaW9uTWFuYWdlci5jcHAKaW5kZXggZDViNTk1YTRhYzQ5ZmYwZWZmZTYyYjQ1MmVjMzQyYjdk
MzgzMDQ4NC4uNmM2YWIwZTdhNjJlYzRkYTQ1ZWQzZGJjOTQxNDU1MTc1Y2Q0NGQ1YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9haXJwbGF5L1dlYk1lZGlhU2Vzc2lvbk1hbmFn
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYWlycGxheS9XZWJNZWRpYVNlc3Np
b25NYW5hZ2VyLmNwcApAQCAtMTYxLDcgKzE2MSw3IEBAIHZvaWQgV2ViTWVkaWFTZXNzaW9uTWFu
YWdlcjo6c2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJFbmFibGVkKGJvb2wgZW5hYmxl
CiAgICAgbV9tb2NrUGlja2VyRW5hYmxlZCA9IGVuYWJsZWQ7CiB9CiAKLXZvaWQgV2ViTWVkaWFT
ZXNzaW9uTWFuYWdlcjo6c2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJTdGF0ZShjb25z
dCBTdHJpbmcmIG5hbWUsIE1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0OjpNb2NrU3RhdGUgc3Rh
dGUpCit2b2lkIFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNldE1vY2tNZWRpYVBsYXliYWNrVGFy
Z2V0UGlja2VyU3RhdGUoY29uc3QgU3RyaW5nJiBuYW1lLCBNZWRpYVBsYXliYWNrVGFyZ2V0Q29u
dGV4dDo6U3RhdGUgc3RhdGUpCiB7CiAgICAgQUxXQVlTX0xPR19NRURJQVNFU1NJT05NQU5BR0VS
KF9fZnVuY19fKTsKICAgICBtb2NrUGlja2VyKCkuc2V0U3RhdGUobmFtZSwgc3RhdGUpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9haXJwbGF5L1dlYk1lZGlhU2Vzc2lvbk1h
bmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYWlycGxheS9XZWJNZWRpYVNlc3Npb25N
YW5hZ2VyLmgKaW5kZXggMWJhMTI4NGYyMzMzYzc4NDZhYjgwZDRlMTFkYjJiZjRmMDIwNjZiNS4u
ZDdmMjhjY2I3NWU1ZDc1NWRhZjQzMzRlZjY1NmNiMTQxOTBmYWI1NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9haXJwbGF5L1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FpcnBsYXkvV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5o
CkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgV2Vi
TWVkaWFTZXNzaW9uTWFuYWdlciYgc2hhcmVkKCk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRW5hYmxlZChib29sKTsKLSAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyU3RhdGUoY29u
c3QgU3RyaW5nJiwgTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6Ok1vY2tTdGF0ZSk7CisgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlclN0YXRl
KGNvbnN0IFN0cmluZyYsIE1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0OjpTdGF0ZSk7CiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBtb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlckRpc21pc3NQ
b3B1cCgpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0
SWRlbnRpZmllciBhZGRQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudChXZWJNZWRpYVNlc3Npb25N
YW5hZ2VyQ2xpZW50JiwgUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllcik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYkNv
cmUvU291cmNlc0NvY29hLnR4dAppbmRleCAyYTI0YzJjNzRjMWY2OTg1OTVmNTJhNWNmM2MzOWM2
ZjQ5Zjc3MzMzLi44MjdjNTRkYTg5Y2VkZmU0OWZlZmNmNWY2ZTY5NjdlM2E4MzcyY2M5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTM2OSw3ICszNjksNiBAQCBwbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9JT1N1cmZhY2UubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZVBv
b2xDb2NvYS5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSW50UmVjdENvY29hLm1tCiBwbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9NZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5Q29jb2Eu
Y3BwCi1wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9NZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dC5t
bQogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJh
c2VDb2NvYS5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyLmNw
cAogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5jcHAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCA1N2FiYWU2NDFiMjZkMzFlYzAzNDllODczYmIyMWQzNWVmNDM4ZWNjLi4yZDZhNDYxMDliZDU0
Y2IzYmM5YjllYTI3MTk0MTBmMmEzYTVhNGM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02OTgwLDcgKzY5ODAsNiBAQAogCQkx
RDAwMjZBMzIzNzRENjI0MDBDQTZDREYgLyogSlNQaWN0dXJlSW5QaWN0dXJlV2luZG93LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUGljdHVyZUluUGljdHVyZVdp
bmRvdy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEMDAyNkE4MjM3NEY5RDkw
MENBNkNERiAvKiBKU0VudGVyUGljdHVyZUluUGljdHVyZUV2ZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTRW50ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUQwMDI2QTkyMzc0RjlEOTAwQ0E2Q0RGIC8qIEpTRW50
ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTFEMDA4QUE1MjYyMTA4QzAwMEVFM0FERSAvKiBNZWRpYVBsYXliYWNr
VGFyZ2V0Q29udGV4dC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlhUGxheWJhY2tUYXJn
ZXRDb250ZXh0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRDJDODJCNjIzNkEz
RjZBMDA1NUQ2QzUgLyogUGljdHVyZUluUGljdHVyZVN1cHBvcnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UGljdHVyZUluUGljdHVyZVN1cHBvcnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MUQ0NzY1OEQyNUNDQTc3ODAwN0FGMzEyIC8qIEltYWdlRGVjb2RlcklkZW50aWZpZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSW1hZ2VEZWNvZGVySWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkxREFCMzExMzI1MUQ3MjVDMDBGQzk0ODUgLyogVmlkZW9MYXllck1hbmFnZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9MYXllck1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTI2OTY3LDYgKzI2OTY2LDcgQEAKIAkJCQlDRERFMDJFOTE4QjNERkM3MDBD
RjdGRjEgLyogTGVnYWN5Q0RNU2Vzc2lvbi5oICovLAogCQkJCTA3RTNERkQwMUE5RTc4NjUwMDc2
NENBOCAvKiBNZWRpYVBsYXliYWNrVGFyZ2V0LmggKi8sCiAJCQkJMDc5MjE2NTMxQUE1NjBBQTAw
QTNDMDQ5IC8qIE1lZGlhUGxheWJhY2tUYXJnZXRDbGllbnQuaCAqLywKKwkJCQkwN0Y4NzY4MzFB
RDRBOTQ1MDA5MDU4NDkgLyogTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQuaCAqLywKIAkJCQkw
NzhFNDNENzFBQkI2QzdFMDAxQzJGQTYgLyogTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5jcHAg
Ki8sCiAJCQkJMDc4RTQzRDgxQUJCNkM3RTAwMUMyRkE2IC8qIE1lZGlhUGxheWJhY2tUYXJnZXRQ
aWNrZXIuaCAqLywKIAkJCQlFNEI0MUUwQzBDQkY5MEJEMDBBRjJFQ0UgLyogTWVkaWFQbGF5ZXIu
Y3BwICovLApAQCAtMjcxODIsOCArMjcxODIsNiBAQAogCQkJCUFEOUZGNkUwMTkwODM5MUQwMDNC
NjFFMCAvKiBJT1N1cmZhY2VQb29sQ29jb2EubW0gKi8sCiAJCQkJQ0RDNDhBQzgyMTQ5Q0YyQTAw
MjRGRDU5IC8qIE1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnlDb2NvYS5jcHAgKi8sCiAJ
CQkJQ0RDNDhBQzcyMTQ5Q0YyQTAwMjRGRDU5IC8qIE1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZh
Y3RvcnlDb2NvYS5oICovLAotCQkJCTA3Rjg3NjgzMUFENEE5NDUwMDkwNTg0OSAvKiBNZWRpYVBs
YXliYWNrVGFyZ2V0Q29udGV4dC5oICovLAotCQkJCTFEMDA4QUE1MjYyMTA4QzAwMEVFM0FERSAv
KiBNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dC5tbSAqLywKIAkJCQkzMTY0N0ZBODI1MTYxNkJE
MDAxMEY4RkIgLyogT3BlbkdMU29mdExpbmtDb2NvYS5oICovLAogCQkJCTMxNjQ3RkE5MjUxNjE2
QkQwMDEwRjhGQiAvKiBPcGVuR0xTb2Z0TGlua0NvY29hLm1tICovLAogCQkJCTdCNjRDMEI0MjU0
QzNCMTYwMDA2QjRBRiAvKiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZUNvY29hLm1t
ICovLApAQCAtMzIxMTcsNyArMzIxMTUsNiBAQAogCQkJCTQxNjJBNDUxMTAxMTQ1QUUwMERGRjNF
RCAvKiBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFB
M0Q1OEYxMDFDMTUyRDAwMzE2RDA3IC8qIERlZGljYXRlZFdvcmtlclRocmVhZC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRkQwNkRGQTYxMzRBNERFRjAwNkY1RDdEIC8qIERlZmF1bHRBdWRpb0Rlc3Rp
bmF0aW9uTm9kZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTRGMzhEMUIyNjI2RjEzQjAwN0IxMDY0
IC8qIERlZmF1bHRSZXNvdXJjZUxvYWRQcmlvcml0eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0Q4
M0QzNjIyMTEyMkEyMTAwNzZFMTFDIC8qIERlZmVycmFibGVUYXNrLmggaW4gSGVhZGVycyAqLywK
IAkJCQlGRDMxNjAyQzEyQjAyNjc2MDBDMUEzNTkgLyogRGVsYXlEU1BLZXJuZWwuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUZEMzE2MDJFMTJCMDI2NzYwMEMxQTM1OSAvKiBEZWxheU5vZGUuaCBpbiBI
ZWFkZXJzICovLApAQCAtMzQ2MTcsNiArMzQ2MTQsNyBAQAogCQkJCUI1OTVGRjQ3MTgyNENFRTMw
MEZGNTFDRCAvKiBSZW5kZXJJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFQTQ4N0Ew
OTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRlckxheWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjU4
MENGRjBGMTJERTlCMDA1MUQ2ODkgLyogUmVuZGVyTGF5ZXJCYWNraW5nLmggaW4gSGVhZGVycyAq
LywKKwkJCQlFNEYzOEQxQjI2MjZGMTNCMDA3QjEwNjQgLyogRGVmYXVsdFJlc291cmNlTG9hZFBy
aW9yaXR5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjU4MENGRDBGMTJERTlCMDA1MUQ2ODkgLyog
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkzQzI0NEZFQUEzNzVB
QzYzM0Y4OEJFNkYgLyogUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEY1M0ZCODQyMTNCN0E2NDAwQzQwRDM0IC8qIFJlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEu
aCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVD
bGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggZGY0Yzlj
MWY4NGVjYTIwZTdiMWZiZDM3YzE0MzhjNWUwYWJiMGQ1OS4uZDBiYzM1NTBkNGQwODM1YzMzM2Ux
ZjQ4M2Y1ZjI1YWRkMDQ4MzNjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJv
bWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC01
MTMsNyArNTEzLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzaG93UGxheWJhY2tUYXJn
ZXRQaWNrZXIoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciwgY29uc3QgSW50
UG9pbnQmLCBib29sIC8qaXNWaWRlbyovKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgcGxheWJhY2tU
YXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShQbGF5YmFja1RhcmdldENsaWVudENvbnRl
eHRJZGVudGlmaWVyLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpIHsgfQogICAgIHZp
cnR1YWwgdm9pZCBzZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlckVuYWJsZWQoYm9vbCkg
IHsgfQotICAgIHZpcnR1YWwgdm9pZCBzZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlclN0
YXRlKGNvbnN0IFN0cmluZyYsIE1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0OjpNb2NrU3RhdGUp
IHsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlclN0
YXRlKGNvbnN0IFN0cmluZyYsIE1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0OjpTdGF0ZSkgeyB9
CiAgICAgdmlydHVhbCB2b2lkIG1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRGlzbWlzc1Bv
cHVwKCkgeyB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggY2RiZmZhMGM2YTA1MmIw
ZTFmYTAxY2QxZmQ5MzFkYmNiZmRkZjU2OS4uYmQ5ZTUzODJiYzlkY2NiYWZmZWM2YjM5NDIyMjRj
OGQ1ZWE2NmI5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0yOTUyLDcgKzI5NTIsNyBAQCB2b2lk
IFBhZ2U6OnNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRW5hYmxlZChib29sIGVuYWJs
ZWQpCiAgICAgY2hyb21lKCkuY2xpZW50KCkuc2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNr
ZXJFbmFibGVkKGVuYWJsZWQpOwogfQogCi12b2lkIFBhZ2U6OnNldE1vY2tNZWRpYVBsYXliYWNr
VGFyZ2V0UGlja2VyU3RhdGUoY29uc3QgU3RyaW5nJiBuYW1lLCBNZWRpYVBsYXliYWNrVGFyZ2V0
Q29udGV4dDo6TW9ja1N0YXRlIHN0YXRlKQordm9pZCBQYWdlOjpzZXRNb2NrTWVkaWFQbGF5YmFj
a1RhcmdldFBpY2tlclN0YXRlKGNvbnN0IFN0cmluZyYgbmFtZSwgTWVkaWFQbGF5YmFja1Rhcmdl
dENvbnRleHQ6OlN0YXRlIHN0YXRlKQogewogICAgIGNocm9tZSgpLmNsaWVudCgpLnNldE1vY2tN
ZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyU3RhdGUobmFtZSwgc3RhdGUpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
aAppbmRleCA2Yjc2Y2MxMTU4YzNmNmE0NDA4NzA0MDlmMTNmMGY3MjIxOTgzMjM0Li45MTAwMDMx
NmU1MzQ0YmMzYWY3YmMzZTZmMmRiMjBkOGRmZWQyZDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtNzMx
LDcgKzczMSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcihQ
bGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLCBjb25zdCBJbnRQb2ludCYsIGJv
b2wsIFJvdXRlU2hhcmluZ1BvbGljeSwgY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBwbGF5YmFj
a1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29u
dGV4dElkZW50aWZpZXIsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyk7CiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlckVuYWJsZWQo
Ym9vbCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRNb2NrTWVkaWFQbGF5YmFja1Rhcmdl
dFBpY2tlclN0YXRlKGNvbnN0IFN0cmluZyYsIE1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0OjpN
b2NrU3RhdGUpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0TW9ja01lZGlhUGxheWJhY2tU
YXJnZXRQaWNrZXJTdGF0ZShjb25zdCBTdHJpbmcmLCBNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4
dDo6U3RhdGUpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgbW9ja01lZGlhUGxheWJhY2tUYXJn
ZXRQaWNrZXJEaXNtaXNzUG9wdXAoKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0UGxh
eWJhY2tUYXJnZXQoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciwgUmVmPE1l
ZGlhUGxheWJhY2tUYXJnZXQ+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5YmFja1RhcmdldC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5YmFja1RhcmdldC5oCmluZGV4IDYxMjgwODUwMWYwNGYyZmE1
ZDRmYmRkODI2YTVlYTA5NmYyYTNjNzQuLjZhZGZhOTM3ZjczZjU3M2Q5NWM5ZmNkNzRkNmQyMWI4
NzNhMmY3ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01l
ZGlhUGxheWJhY2tUYXJnZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXliYWNrVGFyZ2V0LmgKQEAgLTI3LDIzICsyNywyNCBAQAogCiAjaWYgRU5BQkxF
KFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKIAotI2luY2x1ZGUgIk1lZGlhUGxheWJhY2tUYXJn
ZXRDb250ZXh0LmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIE1lZGlhUGxheWJhY2tU
YXJnZXRDb250ZXh0OworCiBjbGFzcyBNZWRpYVBsYXliYWNrVGFyZ2V0IDogcHVibGljIFJlZkNv
dW50ZWQ8TWVkaWFQbGF5YmFja1RhcmdldD4gewogcHVibGljOgogICAgIHZpcnR1YWwgfk1lZGlh
UGxheWJhY2tUYXJnZXQoKSA9IGRlZmF1bHQ7CiAKLSAgICBlbnVtIGNsYXNzIFRhcmdldFR5cGUg
OiB1aW50OF90IHsgQVZGb3VuZGF0aW9uLCBNb2NrIH07CisgICAgZW51bSBUYXJnZXRUeXBlIHsg
QVZGb3VuZGF0aW9uLCBNb2NrIH07CiAgICAgdmlydHVhbCBUYXJnZXRUeXBlIHRhcmdldFR5cGUo
KSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBjb25zdCBNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4
dCYgdGFyZ2V0Q29udGV4dCgpIGNvbnN0ID0gMDsKIAotICAgIGJvb2wgaGFzQWN0aXZlUm91dGUo
KSBjb25zdCB7IHJldHVybiB0YXJnZXRDb250ZXh0KCkuaGFzQWN0aXZlUm91dGUoKTsgfQotICAg
IFN0cmluZyBkZXZpY2VOYW1lKCkgY29uc3QgeyByZXR1cm4gdGFyZ2V0Q29udGV4dCgpLmRldmlj
ZU5hbWUoKTsgfQotICAgIGJvb2wgc3VwcG9ydHNSZW1vdGVWaWRlb1BsYXliYWNrKCkgeyByZXR1
cm4gdGFyZ2V0Q29udGV4dCgpLnN1cHBvcnRzUmVtb3RlVmlkZW9QbGF5YmFjaygpOyB9CisgICAg
dmlydHVhbCBjb25zdCBNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dCYgdGFyZ2V0Q29udGV4dCgp
IGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgaGFzQWN0aXZlUm91dGUoKSBjb25zdCA9IDA7
CisgICAgdmlydHVhbCBTdHJpbmcgZGV2aWNlTmFtZSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFs
IGJvb2wgc3VwcG9ydHNSZW1vdGVWaWRlb1BsYXliYWNrKCkgY29uc3QgPSAwOwogfTsKIAogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5YmFj
a1RhcmdldENvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWJhY2tUYXJnZXRDb250ZXh0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWNlNGEzZWMzMDFlOWQ5ZTk3NDRk
Y2JmMjliN2E3YTEwYmY0YjM0YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0LmgKQEAgLTAsMCArMSwx
MDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lm
bmRlZiBNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dF9oCisjZGVmaW5lIE1lZGlhUGxheWJhY2tU
YXJnZXRDb250ZXh0X2gKKworI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCisK
KyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworT0JKQ19DTEFTUyBBVk91dHB1dENv
bnRleHQ7CisKKyNpZiBQTEFURk9STShDT0NPQSkKK09CSkNfQ0xBU1MgTlNLZXllZEFyY2hpdmVy
OworT0JKQ19DTEFTUyBOU0tleWVkVW5hcmNoaXZlcjsKKyNlbmRpZgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIE1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0IHsKK3B1YmxpYzoKKyAg
ICBlbnVtIFR5cGUgOiBpbnQzMl90IHsKKyAgICAgICAgTm9uZSwKKyAgICAgICAgQVZPdXRwdXRD
b250ZXh0VHlwZSwKKyAgICAgICAgTW9ja1R5cGUsCisgICAgfTsKKworICAgIGVudW0gQ29udGV4
dFN0YXRlIHsKKyAgICAgICAgVW5rbm93biA9IDAsCisgICAgICAgIE91dHB1dERldmljZVVuYXZh
aWxhYmxlID0gMSwKKyAgICAgICAgT3V0cHV0RGV2aWNlQXZhaWxhYmxlID0gMiwKKyAgICB9Owor
ICAgIHR5cGVkZWYgdW5zaWduZWQgU3RhdGU7CisKKyAgICBNZWRpYVBsYXliYWNrVGFyZ2V0Q29u
dGV4dCgpCisgICAgICAgIDogbV90eXBlKE5vbmUpCisgICAgeworICAgIH0KKworICAgIE1lZGlh
UGxheWJhY2tUYXJnZXRDb250ZXh0KEFWT3V0cHV0Q29udGV4dCAqb3V0cHV0Q29udGV4dCkKKyAg
ICAgICAgOiBtX3R5cGUoQVZPdXRwdXRDb250ZXh0VHlwZSkKKyAgICAgICAgLCBtX291dHB1dENv
bnRleHQob3V0cHV0Q29udGV4dCkKKyAgICB7CisgICAgfQorCisgICAgTWVkaWFQbGF5YmFja1Rh
cmdldENvbnRleHQoY29uc3QgU3RyaW5nJiBuYW1lLCBTdGF0ZSBzdGF0ZSkKKyAgICAgICAgOiBt
X3R5cGUoTW9ja1R5cGUpCisgICAgICAgICwgbV9uYW1lKG5hbWUpCisgICAgICAgICwgbV9zdGF0
ZShzdGF0ZSkKKyAgICB7CisgICAgfQorCisgICAgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4g
bV90eXBlOyB9CisKKyAgICBjb25zdCBTdHJpbmcmIG1vY2tEZXZpY2VOYW1lKCkgY29uc3QKKyAg
ICB7CisgICAgICAgIEFTU0VSVChtX3R5cGUgPT0gTW9ja1R5cGUpOworICAgICAgICByZXR1cm4g
bV9uYW1lOworICAgIH0KKworICAgIFN0YXRlIG1vY2tTdGF0ZSgpIGNvbnN0CisgICAgeworICAg
ICAgICBBU1NFUlQobV90eXBlID09IE1vY2tUeXBlKTsKKyAgICAgICAgcmV0dXJuIG1fc3RhdGU7
CisgICAgfQorCisgICAgQVZPdXRwdXRDb250ZXh0ICphdk91dHB1dENvbnRleHQoKSBjb25zdAor
ICAgIHsKKyAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBBVk91dHB1dENvbnRleHRUeXBlKTsKKyAg
ICAgICAgcmV0dXJuIG1fb3V0cHV0Q29udGV4dDsKKyAgICB9CisKKyAgICBib29sIGVuY29kaW5n
UmVxdWlyZXNQbGF0Zm9ybURhdGEoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gQVZPdXRwdXRD
b250ZXh0VHlwZTsgfQorICAgIAorcHJpdmF0ZToKKyAgICBUeXBlIG1fdHlwZSB7IE5vbmUgfTsK
KyAgICBBVk91dHB1dENvbnRleHQgKm1fb3V0cHV0Q29udGV4dCB7IG51bGxwdHIgfTsKKyAgICBT
dHJpbmcgbV9uYW1lOworICAgIFN0YXRlIG1fc3RhdGUgeyBVbmtub3duIH07Cit9OworCit9CisK
KyNlbmRpZiAvLyBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQorCisjZW5kaWYgLy8g
TWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5YmFja1RhcmdldENvY29hLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5
YmFja1RhcmdldENvY29hLmgKaW5kZXggNjhlMzUyY2EwOGM5OGJiZjFjOTlkZmEyNWE0OTAzNWRh
YmYzNGI0Ny4uNmE4ZTE5NDc2YTM0N2Q4ZTc0ODQxZmY2OWZiZDQ4YjA5MjIzYzg4OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlh
UGxheWJhY2tUYXJnZXRDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXliYWNrVGFyZ2V0Q29jb2EuaApAQCAtMjgsNiArMjgs
NyBAQAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCiAKICNpbmNsdWRlICJN
ZWRpYVBsYXliYWNrVGFyZ2V0LmgiCisjaW5jbHVkZSAiTWVkaWFQbGF5YmFja1RhcmdldENvbnRl
eHQuaCIKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
QEAgLTM1LDcgKzM2LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgTWVkaWFQbGF5YmFj
a1RhcmdldENvY29hIDogcHVibGljIE1lZGlhUGxheWJhY2tUYXJnZXQgewogcHVibGljOgogICAg
IFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8TWVkaWFQbGF5YmFja1RhcmdldD4gY3JlYXRlKEFW
T3V0cHV0Q29udGV4dCAqKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPE1lZGlhUGxh
eWJhY2tUYXJnZXQ+IGNyZWF0ZShNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dCYmKTsKIAogI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpICYmICFQTEFURk9STShJT1NfRkFNSUxZX1NJTVVMQVRPUikg
JiYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQogICAgIHN0YXRpYyBSZWY8TWVkaWFQbGF5YmFja1Rh
cmdldD4gY3JlYXRlKCk7CkBAIC00MywxNCArNDMsMjEgQEAgcHVibGljOgogCiAgICAgdmlydHVh
bCB+TWVkaWFQbGF5YmFja1RhcmdldENvY29hKCk7CiAKLSAgICBUYXJnZXRUeXBlIHRhcmdldFR5
cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBUYXJnZXRUeXBlOjpBVkZvdW5kYXRpb247IH0KLSAg
ICBjb25zdCBNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dCYgdGFyZ2V0Q29udGV4dCgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIG1fY29udGV4dDsgfQorICAgIFRhcmdldFR5cGUgdGFyZ2V0VHlwZSgp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIEFWRm91bmRhdGlvbjsgfQorCisgICAgY29uc3QgTWVkaWFQ
bGF5YmFja1RhcmdldENvbnRleHQmIHRhcmdldENvbnRleHQoKSBjb25zdCBmaW5hbDsKKyAgICBi
b29sIGhhc0FjdGl2ZVJvdXRlKCkgY29uc3QgZmluYWw7CisgICAgU3RyaW5nIGRldmljZU5hbWUo
KSBjb25zdCBmaW5hbDsKKyAgICBib29sIHN1cHBvcnRzUmVtb3RlVmlkZW9QbGF5YmFjaygpIGNv
bnN0IGZpbmFsOworCisgICAgQVZPdXRwdXRDb250ZXh0ICpvdXRwdXRDb250ZXh0KCkgY29uc3Qg
eyByZXR1cm4gbV9vdXRwdXRDb250ZXh0LmdldCgpOyB9CiAKIHByb3RlY3RlZDoKLSAgICBleHBs
aWNpdCBNZWRpYVBsYXliYWNrVGFyZ2V0Q29jb2EoQVZPdXRwdXRDb250ZXh0ICopOwotICAgIGV4
cGxpY2l0IE1lZGlhUGxheWJhY2tUYXJnZXRDb2NvYShNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4
dCYmKTsKKyAgICBNZWRpYVBsYXliYWNrVGFyZ2V0Q29jb2EoQVZPdXRwdXRDb250ZXh0ICopOwog
Ci0gICAgTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQgbV9jb250ZXh0OworICAgIFJldGFpblB0
cjxBVk91dHB1dENvbnRleHQ+IG1fb3V0cHV0Q29udGV4dDsKKyAgICBtdXRhYmxlIE1lZGlhUGxh
eWJhY2tUYXJnZXRDb250ZXh0IG1fY29udGV4dDsKKyAgICBTdHJpbmcgbV9kZXZpY2VOYW1lOwog
fTsKIAogTWVkaWFQbGF5YmFja1RhcmdldENvY29hKiB0b01lZGlhUGxheWJhY2tUYXJnZXRDb2Nv
YShNZWRpYVBsYXliYWNrVGFyZ2V0Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5YmFja1RhcmdldENvY29hLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWJh
Y2tUYXJnZXRDb2NvYS5tbQppbmRleCA2ZjVjMjdlMzk0MGUzYTA4N2JmMjFiOGY0MDA0MWI0NzUw
ZGRkYTMzLi5kYWM4Y2M0ODE1NmMyYzdlNzRlYWFjN2I0ZGRlNGJjMjE3NzUxOWFhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQ
bGF5YmFja1RhcmdldENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXliYWNrVGFyZ2V0Q29jb2EubW0KQEAgLTM0LDIzICsz
NCwxNCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlZjxNZWRpYVBsYXliYWNrVGFyZ2V0
PiBNZWRpYVBsYXliYWNrVGFyZ2V0Q29jb2E6OmNyZWF0ZShBVk91dHB1dENvbnRleHQgKm91dHB1
dENvbnRleHQpCitSZWY8TWVkaWFQbGF5YmFja1RhcmdldD4gTWVkaWFQbGF5YmFja1RhcmdldENv
Y29hOjpjcmVhdGUoQVZPdXRwdXRDb250ZXh0ICpjb250ZXh0KQogewotICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IE1lZGlhUGxheWJhY2tUYXJnZXRDb2NvYShvdXRwdXRDb250ZXh0KSk7CisgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgTWVkaWFQbGF5YmFja1RhcmdldENvY29hKGNvbnRleHQpKTsK
IH0KIAotUmVmPE1lZGlhUGxheWJhY2tUYXJnZXQ+IE1lZGlhUGxheWJhY2tUYXJnZXRDb2NvYTo6
Y3JlYXRlKE1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0JiYgY29udGV4dCkKLXsKLSAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBNZWRpYVBsYXliYWNrVGFyZ2V0Q29jb2EoV1RGTW92ZShjb250ZXh0
KSkpOwotfQotCi1NZWRpYVBsYXliYWNrVGFyZ2V0Q29jb2E6Ok1lZGlhUGxheWJhY2tUYXJnZXRD
b2NvYShBVk91dHB1dENvbnRleHQgKm91dHB1dENvbnRleHQpCi0gICAgOiBtX2NvbnRleHQob3V0
cHV0Q29udGV4dCkKLXsKLX0KLQotTWVkaWFQbGF5YmFja1RhcmdldENvY29hOjpNZWRpYVBsYXli
YWNrVGFyZ2V0Q29jb2EoTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQmJiBjb250ZXh0KQotICAg
IDogbV9jb250ZXh0KFdURk1vdmUoY29udGV4dCkpCitNZWRpYVBsYXliYWNrVGFyZ2V0Q29jb2E6
Ok1lZGlhUGxheWJhY2tUYXJnZXRDb2NvYShBVk91dHB1dENvbnRleHQgKmNvbnRleHQpCisgICAg
OiBNZWRpYVBsYXliYWNrVGFyZ2V0KCkKKyAgICAsIG1fb3V0cHV0Q29udGV4dChjb250ZXh0KQog
ewogfQogCkBAIC02MiwxMCArNTMsNzUgQEAgUmVmPE1lZGlhUGxheWJhY2tUYXJnZXQ+IE1lZGlh
UGxheWJhY2tUYXJnZXRDb2NvYTo6Y3JlYXRlKCkKIH0KICNlbmRpZgogCitib29sIE1lZGlhUGxh
eWJhY2tUYXJnZXRDb2NvYTo6c3VwcG9ydHNSZW1vdGVWaWRlb1BsYXliYWNrKCkgY29uc3QKK3sK
KyAgICBpZiAoIW1fb3V0cHV0Q29udGV4dCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
aWYgKCFbbV9vdXRwdXRDb250ZXh0IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Ioc3VwcG9y
dHNNdWx0aXBsZU91dHB1dERldmljZXMpXSB8fCAhW21fb3V0cHV0Q29udGV4dCBzdXBwb3J0c011
bHRpcGxlT3V0cHV0RGV2aWNlc10gfHwgIVttX291dHB1dENvbnRleHQgcmVzcG9uZHNUb1NlbGVj
dG9yOkBzZWxlY3RvcihvdXRwdXREZXZpY2VzKV0pIHsKKyAgICAgICAgaWYgKGF1dG8gKm91dHB1
dERldmljZSA9IFttX291dHB1dENvbnRleHQgb3V0cHV0RGV2aWNlXSkgeworICAgICAgICAgICAg
aWYgKG91dHB1dERldmljZS5kZXZpY2VGZWF0dXJlcyAmIEFWT3V0cHV0RGV2aWNlRmVhdHVyZVZp
ZGVvKQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGZvciAoQVZPdXRwdXREZXZpY2UgKm91dHB1dERl
dmljZSBpbiBbbV9vdXRwdXRDb250ZXh0IG91dHB1dERldmljZXNdKSB7CisgICAgICAgIGlmIChv
dXRwdXREZXZpY2UuZGV2aWNlRmVhdHVyZXMgJiBBVk91dHB1dERldmljZUZlYXR1cmVWaWRlbykK
KyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKK30K
KwogTWVkaWFQbGF5YmFja1RhcmdldENvY29hOjp+TWVkaWFQbGF5YmFja1RhcmdldENvY29hKCkK
IHsKIH0KIAorY29uc3QgTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQmIE1lZGlhUGxheWJhY2tU
YXJnZXRDb2NvYTo6dGFyZ2V0Q29udGV4dCgpIGNvbnN0Cit7CisgICAgbV9jb250ZXh0ID0gTWVk
aWFQbGF5YmFja1RhcmdldENvbnRleHQobV9vdXRwdXRDb250ZXh0LmdldCgpKTsKKyAgICByZXR1
cm4gbV9jb250ZXh0OworfQorCitib29sIE1lZGlhUGxheWJhY2tUYXJnZXRDb2NvYTo6aGFzQWN0
aXZlUm91dGUoKSBjb25zdAoreworICAgIGlmICghbV9vdXRwdXRDb250ZXh0KQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoW21fb3V0cHV0Q29udGV4dCByZXNwb25kc1RvU2VsZWN0
b3I6QHNlbGVjdG9yKHN1cHBvcnRzTXVsdGlwbGVPdXRwdXREZXZpY2VzKV0gJiYgW21fb3V0cHV0
Q29udGV4dCBzdXBwb3J0c011bHRpcGxlT3V0cHV0RGV2aWNlc10gJiYgW21fb3V0cHV0Q29udGV4
dCByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKG91dHB1dERldmljZXMpXSkgeworICAgICAg
ICBmb3IgKEFWT3V0cHV0RGV2aWNlICpvdXRwdXREZXZpY2UgaW4gW21fb3V0cHV0Q29udGV4dCBv
dXRwdXREZXZpY2VzXSkgeworICAgICAgICAgICAgaWYgKG91dHB1dERldmljZS5kZXZpY2VGZWF0
dXJlcyAmIChBVk91dHB1dERldmljZUZlYXR1cmVWaWRlbyB8IEFWT3V0cHV0RGV2aWNlRmVhdHVy
ZUF1ZGlvKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBpZiAoW21fb3V0cHV0Q29udGV4dCByZXNw
b25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKG91dHB1dERldmljZSldKSB7CisgICAgICAgIGlmIChh
dXRvICpvdXRwdXREZXZpY2UgPSBbbV9vdXRwdXRDb250ZXh0IG91dHB1dERldmljZV0pCisgICAg
ICAgICAgICByZXR1cm4gb3V0cHV0RGV2aWNlLmRldmljZUZlYXR1cmVzICYgKEFWT3V0cHV0RGV2
aWNlRmVhdHVyZVZpZGVvIHwgQVZPdXRwdXREZXZpY2VGZWF0dXJlQXVkaW8pOworICAgIH0KKwor
ICAgIHJldHVybiBtX291dHB1dENvbnRleHQuZ2V0KCkuZGV2aWNlTmFtZTsKK30KKworU3RyaW5n
IE1lZGlhUGxheWJhY2tUYXJnZXRDb2NvYTo6ZGV2aWNlTmFtZSgpIGNvbnN0Cit7CisgICAgaWYg
KCFtX291dHB1dENvbnRleHQpCisgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOworCisgICAg
aWYgKCFbbV9vdXRwdXRDb250ZXh0IHN1cHBvcnRzTXVsdGlwbGVPdXRwdXREZXZpY2VzXSkKKyAg
ICAgICAgcmV0dXJuIFttX291dHB1dENvbnRleHQgZGV2aWNlTmFtZV07CisKKyAgICBhdXRvIG91
dHB1dERldmljZU5hbWVzID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XSk7
CisgICAgZm9yIChBVk91dHB1dERldmljZSAqb3V0cHV0RGV2aWNlIGluIFttX291dHB1dENvbnRl
eHQgb3V0cHV0RGV2aWNlc10pCisgICAgICAgIFtvdXRwdXREZXZpY2VOYW1lcyBhZGRPYmplY3Q6
W291dHB1dERldmljZSBkZXZpY2VOYW1lXV07CisKKyAgICByZXR1cm4gW291dHB1dERldmljZU5h
bWVzIGNvbXBvbmVudHNKb2luZWRCeVN0cmluZzpAIiArICJdOworfQorCiBNZWRpYVBsYXliYWNr
VGFyZ2V0Q29jb2EqIHRvTWVkaWFQbGF5YmFja1RhcmdldENvY29hKE1lZGlhUGxheWJhY2tUYXJn
ZXQqIHJlcCkKIHsKICAgICByZXR1cm4gY29uc3RfY2FzdDxNZWRpYVBsYXliYWNrVGFyZ2V0Q29j
b2EqPih0b01lZGlhUGxheWJhY2tUYXJnZXRDb2NvYShjb25zdF9jYXN0PGNvbnN0IE1lZGlhUGxh
eWJhY2tUYXJnZXQqPihyZXApKSk7CkBAIC03Myw3ICsxMjksNyBAQCBNZWRpYVBsYXliYWNrVGFy
Z2V0Q29jb2EqIHRvTWVkaWFQbGF5YmFja1RhcmdldENvY29hKE1lZGlhUGxheWJhY2tUYXJnZXQq
IHJlcCkKIAogY29uc3QgTWVkaWFQbGF5YmFja1RhcmdldENvY29hKiB0b01lZGlhUGxheWJhY2tU
YXJnZXRDb2NvYShjb25zdCBNZWRpYVBsYXliYWNrVGFyZ2V0KiByZXApCiB7Ci0gICAgUkVMRUFT
RV9BU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihyZXAtPnRhcmdldFR5cGUoKSA9PSBN
ZWRpYVBsYXliYWNrVGFyZ2V0OjpUYXJnZXRUeXBlOjpBVkZvdW5kYXRpb24pOworICAgIEFTU0VS
VF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKHJlcC0+dGFyZ2V0VHlwZSgpID09IE1lZGlhUGxh
eWJhY2tUYXJnZXQ6OkFWRm91bmRhdGlvbik7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0
IE1lZGlhUGxheWJhY2tUYXJnZXRDb2NvYSo+KHJlcCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
Lm1tCmluZGV4IDBhYzA5M2U1MGNhMjk4MGM1OWEzMjdhMmMyZTg4MWVjZGZiMWJiZDQuLjIwYjI0
MTJmMTEzNjYzYzFmMzg2MmYyN2I2NjI0MDBmNmNkYjA3MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qy5tbQpAQCAtMjgyNCw3ICsyODI0LDcgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOjppc0N1cnJlbnRQbGF5YmFja1RhcmdldFdpcmVsZXNzKCkgY29uc3QKIAogI2lm
ICFQTEFURk9STShJT1NfRkFNSUxZKQogICAgIGlmIChtX3BsYXliYWNrVGFyZ2V0KSB7Ci0gICAg
ICAgIGlmIChtX3BsYXliYWNrVGFyZ2V0LT50YXJnZXRUeXBlKCkgPT0gTWVkaWFQbGF5YmFja1Rh
cmdldDo6VGFyZ2V0VHlwZTo6QVZGb3VuZGF0aW9uKQorICAgICAgICBpZiAobV9wbGF5YmFja1Rh
cmdldC0+dGFyZ2V0VHlwZSgpID09IE1lZGlhUGxheWJhY2tUYXJnZXQ6OkFWRm91bmRhdGlvbikK
ICAgICAgICAgICAgIHdpcmVsZXNzVGFyZ2V0ID0gbV9hdlBsYXllciAmJiBtX2F2UGxheWVyLmdl
dCgpLmV4dGVybmFsUGxheWJhY2tBY3RpdmU7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHdp
cmVsZXNzVGFyZ2V0ID0gbV9zaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldCAmJiBtX3BsYXliYWNr
VGFyZ2V0LT5oYXNBY3RpdmVSb3V0ZSgpOwpAQCAtMjk2OCw3ICsyOTY4LDcgQEAgdm9pZCBNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZXRXaXJlbGVzc1BsYXliYWNrVGFyZ2V0
KFJlZjxNZWRpYVBsYXkKIHsKICAgICBtX3BsYXliYWNrVGFyZ2V0ID0gV1RGTW92ZSh0YXJnZXQp
OwogCi0gICAgbV9vdXRwdXRDb250ZXh0ID0gbV9wbGF5YmFja1RhcmdldC0+dGFyZ2V0VHlwZSgp
ID09IE1lZGlhUGxheWJhY2tUYXJnZXQ6OlRhcmdldFR5cGU6OkFWRm91bmRhdGlvbiA/IHRvTWVk
aWFQbGF5YmFja1RhcmdldENvY29hKG1fcGxheWJhY2tUYXJnZXQuZ2V0KCkpLT50YXJnZXRDb250
ZXh0KCkub3V0cHV0Q29udGV4dCgpIDogbnVsbHB0cjsKKyAgICBtX291dHB1dENvbnRleHQgPSBt
X3BsYXliYWNrVGFyZ2V0LT50YXJnZXRUeXBlKCkgPT0gTWVkaWFQbGF5YmFja1RhcmdldDo6QVZG
b3VuZGF0aW9uID8gdG9NZWRpYVBsYXliYWNrVGFyZ2V0Q29jb2EobV9wbGF5YmFja1RhcmdldC5n
ZXQoKSktPm91dHB1dENvbnRleHQoKSA6IG51bGxwdHI7CiAKICAgICBJTkZPX0xPRyhMT0dJREVO
VElGSUVSKTsKIApAQCAtMjk4OCw3ICsyOTg4LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDOjpzZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldChib29sIHNob3UK
IAogICAgIElORk9fTE9HKExPR0lERU5USUZJRVIsIHNob3VsZFBsYXkpOwogCi0gICAgaWYgKG1f
cGxheWJhY2tUYXJnZXQtPnRhcmdldFR5cGUoKSA9PSBNZWRpYVBsYXliYWNrVGFyZ2V0OjpUYXJn
ZXRUeXBlOjpBVkZvdW5kYXRpb24pIHsKKyAgICBpZiAobV9wbGF5YmFja1RhcmdldC0+dGFyZ2V0
VHlwZSgpID09IE1lZGlhUGxheWJhY2tUYXJnZXQ6OkFWRm91bmRhdGlvbikgewogICAgICAgICBB
Vk91dHB1dENvbnRleHQgKm5ld0NvbnRleHQgPSBzaG91bGRQbGF5ID8gbV9vdXRwdXRDb250ZXh0
LmdldCgpIDogbmlsOwogCiAgICAgICAgIGlmICghbV9hdlBsYXllcikKQEAgLTMwMDUsNyArMzAw
NSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2V0U2hvdWxk
UGxheVRvUGxheWJhY2tUYXJnZXQoYm9vbCBzaG91CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
LSAgICBBU1NFUlQobV9wbGF5YmFja1RhcmdldC0+dGFyZ2V0VHlwZSgpID09IE1lZGlhUGxheWJh
Y2tUYXJnZXQ6OlRhcmdldFR5cGU6Ok1vY2spOworICAgIEFTU0VSVChtX3BsYXliYWNrVGFyZ2V0
LT50YXJnZXRUeXBlKCkgPT0gTWVkaWFQbGF5YmFja1RhcmdldDo6TW9jayk7CiAKICAgICBzZXRE
ZWxheUNhbGxiYWNrcyh0cnVlKTsKICAgICBhdXRvIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRo
aXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
TWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL01lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0LmgKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDA2YTUwYjAwNmVlYTBhOGIyMzYyOTYxNzVmYmRmNWE4NGM5N2VjMDQu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQu
aAorKysgL2Rldi9udWxsCkBAIC0xLDEzNiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDE1LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUo
V0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQotCi0jaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgot
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi0jaWYgUExBVEZPUk0oQ09DT0EpCi1P
QkpDX0NMQVNTIEFWT3V0cHV0Q29udGV4dDsKLU9CSkNfQ0xBU1MgTlNEYXRhOwotI2VuZGlmCi0K
LW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQg
ewotcHVibGljOgotICAgIGVudW0gY2xhc3MgVHlwZSA6IHVpbnQ4X3QgewotICAgICAgICBOb25l
LAotICAgICAgICBBVk91dHB1dENvbnRleHQsCi0gICAgICAgIFNlcmlhbGl6ZWRBVk91dHB1dENv
bnRleHQsCi0gICAgICAgIE1vY2ssCi0gICAgfTsKLQotICAgIGVudW0gY2xhc3MgTW9ja1N0YXRl
IDogdWludDhfdCB7Ci0gICAgICAgIFVua25vd24gPSAwLAotICAgICAgICBPdXRwdXREZXZpY2VV
bmF2YWlsYWJsZSA9IDEsCi0gICAgICAgIE91dHB1dERldmljZUF2YWlsYWJsZSA9IDIsCi0gICAg
fTsKLQotICAgIE1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0KCkgPSBkZWZhdWx0OwotICAgIFdF
QkNPUkVfRVhQT1JUIGV4cGxpY2l0IE1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0KFJldGFpblB0
cjxBVk91dHB1dENvbnRleHQ+JiYpOwotCi0gICAgTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQo
UmV0YWluUHRyPE5TRGF0YT4mJiBzZXJpYWxpemVkT3V0cHV0Q29udGV4dCwgYm9vbCBoYXNBY3Rp
dmVSb3V0ZSkKLSAgICAgICAgOiBtX3R5cGUoVHlwZTo6U2VyaWFsaXplZEFWT3V0cHV0Q29udGV4
dCkKLSAgICAgICAgLCBtX3NlcmlhbGl6ZWRPdXRwdXRDb250ZXh0KFdURk1vdmUoc2VyaWFsaXpl
ZE91dHB1dENvbnRleHQpKQotICAgICAgICAsIG1fY2FjaGVkSGFzQWN0aXZlUm91dGUoaGFzQWN0
aXZlUm91dGUpCi0gICAgewotICAgICAgICBBU1NFUlQobV9zZXJpYWxpemVkT3V0cHV0Q29udGV4
dCk7Ci0gICAgfQotCi0gICAgTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQoY29uc3QgU3RyaW5n
JiBtb2NrRGV2aWNlTmFtZSwgTW9ja1N0YXRlIHN0YXRlKQotICAgICAgICA6IG1fdHlwZShUeXBl
OjpNb2NrKQotICAgICAgICAsIG1fbW9ja0RldmljZU5hbWUobW9ja0RldmljZU5hbWUpCi0gICAg
ICAgICwgbV9tb2NrU3RhdGUoc3RhdGUpCi0gICAgewotICAgIH0KLQotICAgIFR5cGUgdHlwZSgp
IGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQotICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBkZXZp
Y2VOYW1lKCkgY29uc3Q7Ci0gICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBoYXNBY3RpdmVSb3V0ZSgp
IGNvbnN0OwotICAgIGJvb2wgc3VwcG9ydHNSZW1vdGVWaWRlb1BsYXliYWNrKCkgY29uc3Q7Ci0K
LSAgICBNb2NrU3RhdGUgbW9ja1N0YXRlKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVCht
X3R5cGUgPT0gVHlwZTo6TW9jayk7Ci0gICAgICAgIHJldHVybiBtX21vY2tTdGF0ZTsKLSAgICB9
Ci0KLSAgICBSZXRhaW5QdHI8QVZPdXRwdXRDb250ZXh0PiBvdXRwdXRDb250ZXh0KCkgY29uc3QK
LSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gVHlwZTo6QVZPdXRwdXRDb250ZXh0KTsK
LSAgICAgICAgcmV0dXJuIG1fb3V0cHV0Q29udGV4dDsKLSAgICB9Ci0KLSAgICBSZXRhaW5QdHI8
TlNEYXRhPiBzZXJpYWxpemVkT3V0cHV0Q29udGV4dCgpIGNvbnN0Ci0gICAgewotICAgICAgICBB
U1NFUlQobV90eXBlID09IFR5cGU6OlNlcmlhbGl6ZWRBVk91dHB1dENvbnRleHQpOwotICAgICAg
ICByZXR1cm4gbV9zZXJpYWxpemVkT3V0cHV0Q29udGV4dDsKLSAgICB9Ci0KLSAgICBXRUJDT1JF
X0VYUE9SVCBib29sIHNlcmlhbGl6ZU91dHB1dENvbnRleHQoKTsKLSAgICBXRUJDT1JFX0VYUE9S
VCBib29sIGRlc2VyaWFsaXplT3V0cHV0Q29udGV4dCgpOwotCi0gICAgYm9vbCBlbmNvZGluZ1Jl
cXVpcmVzUGxhdGZvcm1EYXRhKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IFR5cGU6OkFWT3V0
cHV0Q29udGV4dCB8fCBtX3R5cGUgPT0gVHlwZTo6U2VyaWFsaXplZEFWT3V0cHV0Q29udGV4dDsg
fQotCi1wcml2YXRlOgotICAgIFR5cGUgbV90eXBlIHsgVHlwZTo6Tm9uZSB9OwotICAgIFJldGFp
blB0cjxBVk91dHB1dENvbnRleHQ+IG1fb3V0cHV0Q29udGV4dDsKLSAgICBSZXRhaW5QdHI8TlNE
YXRhPiBtX3NlcmlhbGl6ZWRPdXRwdXRDb250ZXh0OwotICAgIGJvb2wgbV9jYWNoZWRIYXNBY3Rp
dmVSb3V0ZSB7IGZhbHNlIH07Ci0KLSAgICBTdHJpbmcgbV9tb2NrRGV2aWNlTmFtZTsKLSAgICBN
b2NrU3RhdGUgbV9tb2NrU3RhdGUgeyBNb2NrU3RhdGU6OlVua25vd24gfTsKLX07Ci0KLX0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKLQotbmFtZXNwYWNlIFdURiB7Ci0KLXRlbXBsYXRlPD4gc3RydWN0
IEVudW1UcmFpdHM8V2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6OlR5cGU+IHsK
LSAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAotICAgICAgICBXZWJDb3JlOjpNZWRpYVBs
YXliYWNrVGFyZ2V0Q29udGV4dDo6VHlwZSwKLSAgICAgICAgV2ViQ29yZTo6TWVkaWFQbGF5YmFj
a1RhcmdldENvbnRleHQ6OlR5cGU6Ok5vbmUsCi0gICAgICAgIFdlYkNvcmU6Ok1lZGlhUGxheWJh
Y2tUYXJnZXRDb250ZXh0OjpUeXBlOjpBVk91dHB1dENvbnRleHQsCi0gICAgICAgIFdlYkNvcmU6
Ok1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0OjpUeXBlOjpTZXJpYWxpemVkQVZPdXRwdXRDb250
ZXh0LAotICAgICAgICBXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6VHlwZTo6
TW9jawotICAgID47Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6
Ok1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0OjpNb2NrU3RhdGU+IHsKLSAgICB1c2luZyB2YWx1
ZXMgPSBFbnVtVmFsdWVzPAotICAgICAgICBXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29u
dGV4dDo6TW9ja1N0YXRlLAotICAgICAgICBXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29u
dGV4dDo6TW9ja1N0YXRlOjpVbmtub3duLAotICAgICAgICBXZWJDb3JlOjpNZWRpYVBsYXliYWNr
VGFyZ2V0Q29udGV4dDo6TW9ja1N0YXRlOjpPdXRwdXREZXZpY2VVbmF2YWlsYWJsZSwKLSAgICAg
ICAgV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6Ok1vY2tTdGF0ZTo6T3V0cHV0
RGV2aWNlQXZhaWxhYmxlCi0gICAgPjsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdURgotCi0jZW5k
aWYgLy8gRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL01lZGlhUGxheWJhY2tUYXJnZXRDb250
ZXh0Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvTWVkaWFQbGF5
YmFja1RhcmdldENvbnRleHQubW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRiZjhm
YWFiMDAzOTI0YjQ1NGMxNDFhNzE0NTk4ZTQyYTg3Y2M5ZjIuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQubW0KKysrIC9kZXYvbnVsbApAQCAt
MSwxNjIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRl
ICJNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dC5oIgotCi0jaWYgRU5BQkxFKFdJUkVMRVNTX1BM
QVlCQUNLX1RBUkdFVCkKLQotI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+Ci0jaW1w
b3J0IDxvYmpjL3J1bnRpbWUuaD4KLSNpbXBvcnQgPHBhbC9zcGkvY29jb2EvQVZGb3VuZGF0aW9u
U1BJLmg+Ci0jaW1wb3J0IDxwYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaD4KLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi1NZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6TWVkaWFQbGF5
YmFja1RhcmdldENvbnRleHQoUmV0YWluUHRyPEFWT3V0cHV0Q29udGV4dD4mJiBvdXRwdXRDb250
ZXh0KQotICAgIDogbV9vdXRwdXRDb250ZXh0KG91dHB1dENvbnRleHQpCi17Ci0gICAgQVNTRVJU
KG1fb3V0cHV0Q29udGV4dCk7Ci0gICAgbV90eXBlID0gTWVkaWFQbGF5YmFja1RhcmdldENvbnRl
eHQ6OlR5cGU6OkFWT3V0cHV0Q29udGV4dDsKLX0KLQotU3RyaW5nIE1lZGlhUGxheWJhY2tUYXJn
ZXRDb250ZXh0OjpkZXZpY2VOYW1lKCkgY29uc3QKLXsKLSAgICBBU1NFUlQobV90eXBlID09IE1l
ZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0OjpUeXBlOjpNb2NrIHx8IG1fdHlwZSA9PSBNZWRpYVBs
YXliYWNrVGFyZ2V0Q29udGV4dDo6VHlwZTo6QVZPdXRwdXRDb250ZXh0KTsKLQotICAgIGlmICht
X3R5cGUgPT0gTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6OlR5cGU6Ok1vY2spCi0gICAgICAg
IHJldHVybiBtX21vY2tEZXZpY2VOYW1lOwotCi0gICAgQVNTRVJUKG1fdHlwZSA9PSBNZWRpYVBs
YXliYWNrVGFyZ2V0Q29udGV4dDo6VHlwZTo6QVZPdXRwdXRDb250ZXh0KTsKLSAgICBTdHJpbmcg
ZGV2aWNlTmFtZTsKLSAgICBpZiAoIVttX291dHB1dENvbnRleHQgc3VwcG9ydHNNdWx0aXBsZU91
dHB1dERldmljZXNdKQotICAgICAgICBkZXZpY2VOYW1lID0gW21fb3V0cHV0Q29udGV4dCBkZXZp
Y2VOYW1lXTsKLSAgICBlbHNlIHsKLSAgICAgICAgYXV0byBvdXRwdXREZXZpY2VOYW1lcyA9IGFk
b3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdF0pOwotICAgICAgICBmb3IgKEFWT3V0
cHV0RGV2aWNlICpvdXRwdXREZXZpY2UgaW4gW21fb3V0cHV0Q29udGV4dCBvdXRwdXREZXZpY2Vz
XSkKLSAgICAgICAgICAgIFtvdXRwdXREZXZpY2VOYW1lcyBhZGRPYmplY3Q6W291dHB1dERldmlj
ZSBkZXZpY2VOYW1lXV07Ci0KLSAgICAgICAgZGV2aWNlTmFtZSA9IFtvdXRwdXREZXZpY2VOYW1l
cyBjb21wb25lbnRzSm9pbmVkQnlTdHJpbmc6QCIgKyAiXTsKLSAgICB9Ci0KLSAgICByZXR1cm4g
ZGV2aWNlTmFtZTsKLX0KLWJvb2wgTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6Omhhc0FjdGl2
ZVJvdXRlKCkgY29uc3QKLXsKLSAgICBBU1NFUlQobV90eXBlICE9IE1lZGlhUGxheWJhY2tUYXJn
ZXRDb250ZXh0OjpUeXBlOjpOb25lKTsKLSAgICBpZiAobV90eXBlID09IE1lZGlhUGxheWJhY2tU
YXJnZXRDb250ZXh0OjpUeXBlOjpNb2NrKQotICAgICAgICByZXR1cm4gIW1fbW9ja0RldmljZU5h
bWUuaXNFbXB0eSgpOwotCi0gICAgLy8gRklYTUU6IEl0IG1heSBub3QgYmUgc2FmZSB0byB1c2Ug
dGhlIGNhY2hlZCBgaGFzQWN0aXZlUm91dGVgIG9mIGEgc2VyaWFsaXplZCBBVk91dHB1dENvbnRl
eHQKLSAgICBpZiAobV90eXBlID09IE1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0OjpUeXBlOjpT
ZXJpYWxpemVkQVZPdXRwdXRDb250ZXh0KQotICAgICAgICByZXR1cm4gbV9jYWNoZWRIYXNBY3Rp
dmVSb3V0ZTsKLQotICAgIEFTU0VSVChtX3R5cGUgPT0gTWVkaWFQbGF5YmFja1RhcmdldENvbnRl
eHQ6OlR5cGU6OkFWT3V0cHV0Q29udGV4dCk7Ci0gICAgYm9vbCBoYXNBY3RpdmVSb3V0ZSA9IGZh
bHNlOwotICAgIGlmIChbbV9vdXRwdXRDb250ZXh0IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0
b3Ioc3VwcG9ydHNNdWx0aXBsZU91dHB1dERldmljZXMpXSAmJiBbbV9vdXRwdXRDb250ZXh0IHN1
cHBvcnRzTXVsdGlwbGVPdXRwdXREZXZpY2VzXSAmJiBbbV9vdXRwdXRDb250ZXh0IHJlc3BvbmRz
VG9TZWxlY3RvcjpAc2VsZWN0b3Iob3V0cHV0RGV2aWNlcyldKSB7Ci0gICAgICAgIGZvciAoQVZP
dXRwdXREZXZpY2UgKm91dHB1dERldmljZSBpbiBbbV9vdXRwdXRDb250ZXh0IG91dHB1dERldmlj
ZXNdKSB7Ci0gICAgICAgICAgICBpZiAob3V0cHV0RGV2aWNlLmRldmljZUZlYXR1cmVzICYgKEFW
T3V0cHV0RGV2aWNlRmVhdHVyZVZpZGVvIHwgQVZPdXRwdXREZXZpY2VGZWF0dXJlQXVkaW8pKQot
ICAgICAgICAgICAgICAgIGhhc0FjdGl2ZVJvdXRlID0gdHJ1ZTsKLSAgICAgICAgfQotICAgIH0g
ZWxzZSBpZiAoW21fb3V0cHV0Q29udGV4dCByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKG91
dHB1dERldmljZSldKSB7Ci0gICAgICAgIGlmIChhdXRvICpvdXRwdXREZXZpY2UgPSBbbV9vdXRw
dXRDb250ZXh0IG91dHB1dERldmljZV0pCi0gICAgICAgICAgICBoYXNBY3RpdmVSb3V0ZSA9IG91
dHB1dERldmljZS5kZXZpY2VGZWF0dXJlcyAmIChBVk91dHB1dERldmljZUZlYXR1cmVWaWRlbyB8
IEFWT3V0cHV0RGV2aWNlRmVhdHVyZUF1ZGlvKTsKLSAgICB9IGVsc2UKLSAgICAgICAgaGFzQWN0
aXZlUm91dGUgPSBtX291dHB1dENvbnRleHQuZ2V0KCkuZGV2aWNlTmFtZTsKLQotICAgIHJldHVy
biBoYXNBY3RpdmVSb3V0ZTsKLX0KLWJvb2wgTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6OnN1
cHBvcnRzUmVtb3RlVmlkZW9QbGF5YmFjaygpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKG1fdHlwZSA9
PSBNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6VHlwZTo6TW9jayB8fCBtX3R5cGUgPT0gTWVk
aWFQbGF5YmFja1RhcmdldENvbnRleHQ6OlR5cGU6OkFWT3V0cHV0Q29udGV4dCk7Ci0gICAgaWYg
KG1fdHlwZSA9PSBNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6VHlwZTo6TW9jaykKLSAgICAg
ICAgcmV0dXJuICFtX21vY2tEZXZpY2VOYW1lLmlzRW1wdHkoKTsKLQotICAgIGJvb2wgc3VwcG9y
dHNSZW1vdGVWaWRlb1BsYXliYWNrID0gZmFsc2U7Ci0gICAgaWYgKCFbbV9vdXRwdXRDb250ZXh0
IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Ioc3VwcG9ydHNNdWx0aXBsZU91dHB1dERldmlj
ZXMpXSB8fCAhW21fb3V0cHV0Q29udGV4dCBzdXBwb3J0c011bHRpcGxlT3V0cHV0RGV2aWNlc10g
fHwgIVttX291dHB1dENvbnRleHQgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihvdXRwdXRE
ZXZpY2VzKV0pIHsKLSAgICAgICAgaWYgKGF1dG8gKm91dHB1dERldmljZSA9IFttX291dHB1dENv
bnRleHQgb3V0cHV0RGV2aWNlXSkgewotICAgICAgICAgICAgaWYgKG91dHB1dERldmljZS5kZXZp
Y2VGZWF0dXJlcyAmIEFWT3V0cHV0RGV2aWNlRmVhdHVyZVZpZGVvKQotICAgICAgICAgICAgICAg
IHN1cHBvcnRzUmVtb3RlVmlkZW9QbGF5YmFjayA9IHRydWU7Ci0gICAgICAgIH0KLSAgICB9IGVs
c2UgewotICAgICAgICBmb3IgKEFWT3V0cHV0RGV2aWNlICpvdXRwdXREZXZpY2UgaW4gW21fb3V0
cHV0Q29udGV4dCBvdXRwdXREZXZpY2VzXSkgewotICAgICAgICAgICAgaWYgKG91dHB1dERldmlj
ZS5kZXZpY2VGZWF0dXJlcyAmIEFWT3V0cHV0RGV2aWNlRmVhdHVyZVZpZGVvKQotICAgICAgICAg
ICAgICAgIHN1cHBvcnRzUmVtb3RlVmlkZW9QbGF5YmFjayA9IHRydWU7Ci0gICAgICAgIH0KLSAg
ICB9Ci0KLSAgICByZXR1cm4gc3VwcG9ydHNSZW1vdGVWaWRlb1BsYXliYWNrOwotfQotCi1ib29s
IE1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0OjpzZXJpYWxpemVPdXRwdXRDb250ZXh0KCkKLXsK
LSAgICBBU1NFUlQobV90eXBlICE9IE1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0OjpUeXBlOjpT
ZXJpYWxpemVkQVZPdXRwdXRDb250ZXh0KTsKLSAgICBpZiAobV90eXBlICE9IE1lZGlhUGxheWJh
Y2tUYXJnZXRDb250ZXh0OjpUeXBlOjpBVk91dHB1dENvbnRleHQpCi0gICAgICAgIHJldHVybiBm
YWxzZTsKLQotICAgIGF1dG8gYXJjaGl2ZXIgPSBhZG9wdE5TKFtbTlNLZXllZEFyY2hpdmVyIGFs
bG9jXSBpbml0UmVxdWlyaW5nU2VjdXJlQ29kaW5nOllFU10pOwotICAgIFthcmNoaXZlciBlbmNv
ZGVPYmplY3Q6bV9vdXRwdXRDb250ZXh0LmdldCgpIGZvcktleTpOU0tleWVkQXJjaGl2ZVJvb3RP
YmplY3RLZXldOwotICAgIFthcmNoaXZlciBmaW5pc2hFbmNvZGluZ107Ci0KLSAgICBtX3Nlcmlh
bGl6ZWRPdXRwdXRDb250ZXh0ID0gW2FyY2hpdmVyIGVuY29kZWREYXRhXTsKLSAgICBtX3R5cGUg
PSBNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6VHlwZTo6U2VyaWFsaXplZEFWT3V0cHV0Q29u
dGV4dDsKLSAgICBtX291dHB1dENvbnRleHQuY2xlYXIoKTsKLQotICAgIHJldHVybiB0cnVlOwot
fQotCi1ib29sIE1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0OjpkZXNlcmlhbGl6ZU91dHB1dENv
bnRleHQoKQotewotICAgIEFTU0VSVChtX3R5cGUgIT0gTWVkaWFQbGF5YmFja1RhcmdldENvbnRl
eHQ6OlR5cGU6OkFWT3V0cHV0Q29udGV4dCk7Ci0gICAgaWYgKG1fdHlwZSAhPSBNZWRpYVBsYXli
YWNrVGFyZ2V0Q29udGV4dDo6VHlwZTo6U2VyaWFsaXplZEFWT3V0cHV0Q29udGV4dCkKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotCi0gICAgYm9vbCBzdWNjZXNzID0gZmFsc2U7Ci0gICAgYXV0byB1
bmFyY2hpdmVyID0gYWRvcHROUyhbW05TS2V5ZWRVbmFyY2hpdmVyIGFsbG9jXSBpbml0Rm9yUmVh
ZGluZ0Zyb21EYXRhOm1fc2VyaWFsaXplZE91dHB1dENvbnRleHQuZ2V0KCkgZXJyb3I6bnVsbHB0
cl0pOwotICAgIHVuYXJjaGl2ZXIuZ2V0KCkuZGVjb2RpbmdGYWlsdXJlUG9saWN5ID0gTlNEZWNv
ZGluZ0ZhaWx1cmVQb2xpY3lSYWlzZUV4Y2VwdGlvbjsKLSAgICBhdXRvIGFsbG93ZWRDbGFzc1Nl
dCA9IGFkb3B0TlMoW1tOU1NldCBhbGxvY10gaW5pdFdpdGhBcnJheTpAWyBQQUw6OmdldEFWT3V0
cHV0Q29udGV4dENsYXNzKCkgXV0pOwotCi0gICAgQHRyeSB7Ci0gICAgICAgIGlkIHJlc3VsdCA9
IFt1bmFyY2hpdmVyIGRlY29kZU9iamVjdE9mQ2xhc3NlczphbGxvd2VkQ2xhc3NTZXQuZ2V0KCkg
Zm9yS2V5Ok5TS2V5ZWRBcmNoaXZlUm9vdE9iamVjdEtleV07Ci0gICAgICAgIEFTU0VSVChyZXN1
bHQpOwotICAgICAgICBpZiAocmVzdWx0KSB7Ci0gICAgICAgICAgICBtX291dHB1dENvbnRleHQg
PSByZXN1bHQ7Ci0gICAgICAgICAgICBtX3R5cGUgPSBNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4
dDo6VHlwZTo6QVZPdXRwdXRDb250ZXh0OwotICAgICAgICAgICAgbV9zZXJpYWxpemVkT3V0cHV0
Q29udGV4dC5jbGVhcigpOwotICAgICAgICAgICAgc3VjY2VzcyA9IHRydWU7Ci0gICAgICAgIH0K
LSAgICB9IEBjYXRjaCAoTlNFeGNlcHRpb24gKmV4Y2VwdGlvbikgewotICAgICAgICBMT0dfRVJS
T1IoIkZhaWxlZCB0byBkZWNvZGUgb2JqZWN0IG9mIGNsYXNzIEFWT3V0cHV0Q29udGV4dCA6ICVA
IiwgZXhjZXB0aW9uKTsKLSAgICB9IEBmaW5hbGx5IHsKLSAgICAgICAgW3VuYXJjaGl2ZXIgZmlu
aXNoRGVjb2RpbmddOwotICAgICAgICB1bmFyY2hpdmVyLmdldCgpLmRlbGVnYXRlID0gbmlsOwot
ICAgIH0KLQotICAgIHJldHVybiBzdWNjZXNzOwotfQotCi19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9NZWRpYVBsYXliYWNrVGFyZ2V0TW9jay5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01lZGlhUGxheWJhY2tUYXJnZXRNb2Nr
LmNwcAppbmRleCAyYTJhOGQwYmNmMTY1YWQwYjIxZjVjOWQyYTg0NzE3NzM1ZmI0Yzk5Li40NTVj
ZWZjOWY2ZjBkZjQxOTY3NzhmNzUxOWZiOGJiNzFmNTVkNTIxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01lZGlhUGxheWJhY2tUYXJnZXRNb2NrLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01lZGlhUGxheWJhY2tUYXJnZXRNb2NrLmNwcApA
QCAtMzAsMTggKzMwLDI2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVmPE1lZGlhUGxh
eWJhY2tUYXJnZXQ+IE1lZGlhUGxheWJhY2tUYXJnZXRNb2NrOjpjcmVhdGUoY29uc3QgU3RyaW5n
JiBuYW1lLCBNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6TW9ja1N0YXRlIHN0YXRlKQorUmVm
PE1lZGlhUGxheWJhY2tUYXJnZXQ+IE1lZGlhUGxheWJhY2tUYXJnZXRNb2NrOjpjcmVhdGUoY29u
c3QgU3RyaW5nJiBuYW1lLCBNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6U3RhdGUgc3RhdGUp
CiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTWVkaWFQbGF5YmFja1RhcmdldE1vY2sobmFt
ZSwgc3RhdGUpKTsKIH0KIAotTWVkaWFQbGF5YmFja1RhcmdldE1vY2s6Ok1lZGlhUGxheWJhY2tU
YXJnZXRNb2NrKGNvbnN0IFN0cmluZyYgbmFtZSwgTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6
Ok1vY2tTdGF0ZSBzdGF0ZSkKLSAgICA6IG1fY29udGV4dChuYW1lLCBzdGF0ZSkKK01lZGlhUGxh
eWJhY2tUYXJnZXRNb2NrOjpNZWRpYVBsYXliYWNrVGFyZ2V0TW9jayhjb25zdCBTdHJpbmcmIG5h
bWUsIE1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0OjpTdGF0ZSBzdGF0ZSkKKyAgICA6IE1lZGlh
UGxheWJhY2tUYXJnZXQoKQorICAgICwgbV9uYW1lKG5hbWUpCisgICAgLCBtX3N0YXRlKHN0YXRl
KQogewogfQogCiBNZWRpYVBsYXliYWNrVGFyZ2V0TW9jazo6fk1lZGlhUGxheWJhY2tUYXJnZXRN
b2NrKCkgPSBkZWZhdWx0OwogCitjb25zdCBNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dCYgTWVk
aWFQbGF5YmFja1RhcmdldE1vY2s6OnRhcmdldENvbnRleHQoKSBjb25zdAoreworICAgIG1fY29u
dGV4dCA9IE1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0KG1fbmFtZSwgbV9zdGF0ZSk7CisgICAg
cmV0dXJuIG1fY29udGV4dDsKK30KKwogTWVkaWFQbGF5YmFja1RhcmdldE1vY2sqIHRvTWVkaWFQ
bGF5YmFja1RhcmdldE1vY2soTWVkaWFQbGF5YmFja1RhcmdldCogcmVwKQogewogICAgIHJldHVy
biBjb25zdF9jYXN0PE1lZGlhUGxheWJhY2tUYXJnZXRNb2NrKj4odG9NZWRpYVBsYXliYWNrVGFy
Z2V0TW9jayhjb25zdF9jYXN0PGNvbnN0IE1lZGlhUGxheWJhY2tUYXJnZXQqPihyZXApKSk7CkBA
IC00OSw3ICs1Nyw3IEBAIE1lZGlhUGxheWJhY2tUYXJnZXRNb2NrKiB0b01lZGlhUGxheWJhY2tU
YXJnZXRNb2NrKE1lZGlhUGxheWJhY2tUYXJnZXQqIHJlcCkKIAogY29uc3QgTWVkaWFQbGF5YmFj
a1RhcmdldE1vY2sqIHRvTWVkaWFQbGF5YmFja1RhcmdldE1vY2soY29uc3QgTWVkaWFQbGF5YmFj
a1RhcmdldCogcmVwKQogewotICAgIFJFTEVBU0VfQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElD
QVRJT04ocmVwLT50YXJnZXRUeXBlKCkgPT0gTWVkaWFQbGF5YmFja1RhcmdldDo6VGFyZ2V0VHlw
ZTo6TW9jayk7CisgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04ocmVwLT50YXJn
ZXRUeXBlKCkgPT0gTWVkaWFQbGF5YmFja1RhcmdldDo6TW9jayk7CiAgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PGNvbnN0IE1lZGlhUGxheWJhY2tUYXJnZXRNb2NrKj4ocmVwKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9NZWRpYVBsYXliYWNrVGFyZ2V0TW9j
ay5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9NZWRpYVBsYXliYWNrVGFyZ2V0TW9j
ay5oCmluZGV4IDM5OGE0NTlkZTk5MmY0ZTJiNWM5OWQ5OGZmYjc0NzI4OTY3ZjA5ZTEuLmNkNDQ5
YjAzYzExMzEwNjY1Mjk0Y2I4OTI0ZGYwZTRlZWFhMTNmNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21vY2svTWVkaWFQbGF5YmFja1RhcmdldE1vY2suaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01lZGlhUGxheWJhY2tUYXJnZXRNb2NrLmgKQEAgLTIz
LDMwICsyMyw0MCBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAotI3ByYWdtYSBvbmNlCisjaWZu
ZGVmIE1lZGlhUGxheWJhY2tUYXJnZXRNb2NrX2gKKyNkZWZpbmUgTWVkaWFQbGF5YmFja1Rhcmdl
dE1vY2tfaAogCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgJiYgIVBMQVRG
T1JNKElPU19GQU1JTFkpCiAKICNpbmNsdWRlICJNZWRpYVBsYXliYWNrVGFyZ2V0LmgiCisjaW5j
bHVkZSAiTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBNZWRpYVBsYXliYWNr
VGFyZ2V0TW9jayA6IHB1YmxpYyBNZWRpYVBsYXliYWNrVGFyZ2V0IHsKIHB1YmxpYzoKLSAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPE1lZGlhUGxheWJhY2tUYXJnZXQ+IGNyZWF0ZShjb25z
dCBTdHJpbmcmLCBNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6TW9ja1N0YXRlKTsKKyAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPE1lZGlhUGxheWJhY2tUYXJnZXQ+IGNyZWF0ZShjb25z
dCBTdHJpbmcmLCBNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6U3RhdGUpOwogCiAgICAgdmly
dHVhbCB+TWVkaWFQbGF5YmFja1RhcmdldE1vY2soKTsKIAotICAgIFRhcmdldFR5cGUgdGFyZ2V0
VHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIE1lZGlhUGxheWJhY2tUYXJnZXQ6OlRhcmdldFR5
cGU6Ok1vY2s7IH0KLSAgICBjb25zdCBNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dCYgdGFyZ2V0
Q29udGV4dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fY29udGV4dDsgfQorICAgIFRhcmdldFR5
cGUgdGFyZ2V0VHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIE1vY2s7IH0KIAotICAgIE1lZGlh
UGxheWJhY2tUYXJnZXRDb250ZXh0OjpNb2NrU3RhdGUgc3RhdGUoKSBjb25zdCB7IHJldHVybiBt
X2NvbnRleHQubW9ja1N0YXRlKCk7IH0KKyAgICBjb25zdCBNZWRpYVBsYXliYWNrVGFyZ2V0Q29u
dGV4dCYgdGFyZ2V0Q29udGV4dCgpIGNvbnN0IGZpbmFsOworCisgICAgYm9vbCBoYXNBY3RpdmVS
b3V0ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICFtX25hbWUuaXNFbXB0eSgpOyB9CisgICAgYm9v
bCBzdXBwb3J0c1JlbW90ZVZpZGVvUGxheWJhY2soKSBjb25zdCBmaW5hbCB7IHJldHVybiAhbV9u
YW1lLmlzRW1wdHkoKTsgfQorCisgICAgU3RyaW5nIGRldmljZU5hbWUoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBtX25hbWU7IH0KKworICAgIE1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0OjpTdGF0
ZSBzdGF0ZSgpIGNvbnN0OwogCiBwcm90ZWN0ZWQ6Ci0gICAgTWVkaWFQbGF5YmFja1RhcmdldE1v
Y2soY29uc3QgU3RyaW5nJiwgTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6Ok1vY2tTdGF0ZSk7
CisgICAgTWVkaWFQbGF5YmFja1RhcmdldE1vY2soY29uc3QgU3RyaW5nJiwgTWVkaWFQbGF5YmFj
a1RhcmdldENvbnRleHQ6OlN0YXRlKTsKIAotICAgIE1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0
IG1fY29udGV4dDsKKyAgICBTdHJpbmcgbV9uYW1lOworICAgIE1lZGlhUGxheWJhY2tUYXJnZXRD
b250ZXh0OjpTdGF0ZSBtX3N0YXRlIHsgTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6OlVua25v
d24gfTsKKyAgICBtdXRhYmxlIE1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0IG1fY29udGV4dDsK
IH07CiAKIE1lZGlhUGxheWJhY2tUYXJnZXRNb2NrKiB0b01lZGlhUGxheWJhY2tUYXJnZXRNb2Nr
KE1lZGlhUGxheWJhY2tUYXJnZXQqKTsKQEAgLTU1LDMgKzY1LDUgQEAgY29uc3QgTWVkaWFQbGF5
YmFja1RhcmdldE1vY2sqIHRvTWVkaWFQbGF5YmFja1RhcmdldE1vY2soY29uc3QgTWVkaWFQbGF5
YmFja1RhcmcKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQp
ICYmICFQTEFURk9STShJT1NfRkFNSUxZKQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21vY2svTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2suY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTW9j
ay5jcHAKaW5kZXggM2IwY2E2YTc4MzcyM2Y4Zjk4ZDIyNjBhYWI2YWI1YTU2MWVlMWM0OS4uNDRm
NDE0N2ExOTE4MDc1NDcyZWRjM2ExMjE4OTkyN2Q3ZTkyNWVmMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbW9jay9NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTW9jay5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9NZWRpYVBsYXliYWNrVGFyZ2V0UGlj
a2VyTW9jay5jcHAKQEAgLTUyLDcgKzUyLDcgQEAgTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1v
Y2s6On5NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTW9jaygpCiBib29sIE1lZGlhUGxheWJhY2tU
YXJnZXRQaWNrZXJNb2NrOjpleHRlcm5hbE91dHB1dERldmljZUF2YWlsYWJsZSgpCiB7CiAgICAg
TE9HKE1lZGlhLCAiTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2s6OmV4dGVybmFsT3V0cHV0
RGV2aWNlQXZhaWxhYmxlIik7Ci0gICAgcmV0dXJuIG1fc3RhdGUgPT0gTWVkaWFQbGF5YmFja1Rh
cmdldENvbnRleHQ6Ok1vY2tTdGF0ZTo6T3V0cHV0RGV2aWNlQXZhaWxhYmxlOworICAgIHJldHVy
biBtX3N0YXRlID09IE1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0OjpPdXRwdXREZXZpY2VBdmFp
bGFibGU7CiB9CiAKIFJlZjxNZWRpYVBsYXliYWNrVGFyZ2V0PiBNZWRpYVBsYXliYWNrVGFyZ2V0
UGlja2VyTW9jazo6cGxheWJhY2tUYXJnZXQoKQpAQCAtODUsMTAgKzg1LDEwIEBAIHZvaWQgTWVk
aWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2s6OnN0YXJ0aW5nTW9uaXRvcmluZ1BsYXliYWNrVGFy
Z2V0cygpCiAgICAgTE9HKE1lZGlhLCAiTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2s6OnN0
YXJ0aW5nTW9uaXRvcmluZ1BsYXliYWNrVGFyZ2V0cyIpOwogCiAgICAgbV90YXNrUXVldWUuZW5x
dWV1ZVRhc2soW3RoaXNdIHsKLSAgICAgICAgaWYgKG1fc3RhdGUgPT0gTWVkaWFQbGF5YmFja1Rh
cmdldENvbnRleHQ6Ok1vY2tTdGF0ZTo6T3V0cHV0RGV2aWNlQXZhaWxhYmxlKQorICAgICAgICBp
ZiAobV9zdGF0ZSA9PSBNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6T3V0cHV0RGV2aWNlQXZh
aWxhYmxlKQogICAgICAgICAgICAgYXZhaWxhYmxlRGV2aWNlc0RpZENoYW5nZSgpOwogCi0gICAg
ICAgIGlmICghbV9kZXZpY2VOYW1lLmlzRW1wdHkoKSAmJiBtX3N0YXRlICE9IE1lZGlhUGxheWJh
Y2tUYXJnZXRDb250ZXh0OjpNb2NrU3RhdGU6OlVua25vd24pCisgICAgICAgIGlmICghbV9kZXZp
Y2VOYW1lLmlzRW1wdHkoKSAmJiBtX3N0YXRlICE9IE1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0
OjpVbmtub3duKQogICAgICAgICAgICAgY3VycmVudERldmljZURpZENoYW5nZSgpOwogICAgIH0p
OwogfQpAQCAtMTAxLDE1ICsxMDEsMTUgQEAgdm9pZCBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2Vy
TW9jazo6c3RvcE1vbml0b3JpbmdQbGF5YmFja1RhcmdldHMoKQogdm9pZCBNZWRpYVBsYXliYWNr
VGFyZ2V0UGlja2VyTW9jazo6aW52YWxpZGF0ZVBsYXliYWNrVGFyZ2V0cygpCiB7CiAgICAgTE9H
KE1lZGlhLCAiTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2s6OmludmFsaWRhdGVQbGF5YmFj
a1RhcmdldHMiKTsKLSAgICBzZXRTdGF0ZShlbXB0eVN0cmluZygpLCBNZWRpYVBsYXliYWNrVGFy
Z2V0Q29udGV4dDo6TW9ja1N0YXRlOjpVbmtub3duKTsKKyAgICBzZXRTdGF0ZShlbXB0eVN0cmlu
ZygpLCBNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6VW5rbm93bik7CiB9CiAKLXZvaWQgTWVk
aWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2s6OnNldFN0YXRlKGNvbnN0IFN0cmluZyYgZGV2aWNl
TmFtZSwgTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6Ok1vY2tTdGF0ZSBzdGF0ZSkKK3ZvaWQg
TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2s6OnNldFN0YXRlKGNvbnN0IFN0cmluZyYgZGV2
aWNlTmFtZSwgTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6OlN0YXRlIHN0YXRlKQogewogICAg
IExPRyhNZWRpYSwgIk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNb2NrOjpzZXRTdGF0ZSAtIG5h
bWUgPSAlcywgc3RhdGUgPSAweCV4IiwgZGV2aWNlTmFtZS51dGY4KCkuZGF0YSgpLCAodW5zaWdu
ZWQpc3RhdGUpOwogCiAgICAgbV90YXNrUXVldWUuZW5xdWV1ZVRhc2soW3RoaXMsIHN0YXRlLCBk
ZXZpY2VOYW1lXSB7Ci0gICAgICAgIGlmIChkZXZpY2VOYW1lICE9IG1fZGV2aWNlTmFtZSAmJiBz
dGF0ZSAhPSBNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6TW9ja1N0YXRlOjpVbmtub3duKSB7
CisgICAgICAgIGlmIChkZXZpY2VOYW1lICE9IG1fZGV2aWNlTmFtZSAmJiBzdGF0ZSAhPSBNZWRp
YVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6VW5rbm93bikgewogICAgICAgICAgICAgbV9kZXZpY2VO
YW1lID0gZGV2aWNlTmFtZTsKICAgICAgICAgICAgIGN1cnJlbnREZXZpY2VEaWRDaGFuZ2UoKTsK
ICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9NZWRp
YVBsYXliYWNrVGFyZ2V0UGlja2VyTW9jay5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9j
ay9NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTW9jay5oCmluZGV4IDNlNzQzOTViZjE2YjhlN2M4
Y2U5Zjk3MjBlNzU5NGU0ZjJjODdlZTAuLmRlMDk2Y2I4ODFmODI0MjExMTY1OGI4ZDIxODM5Zjlj
ODg1ZDRiY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTWVkaWFQ
bGF5YmFja1RhcmdldFBpY2tlck1vY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
b2NrL01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNb2NrLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVi
bGljOgogICAgIHZvaWQgc3RvcE1vbml0b3JpbmdQbGF5YmFja1RhcmdldHMoKSBvdmVycmlkZTsK
ICAgICB2b2lkIGludmFsaWRhdGVQbGF5YmFja1RhcmdldHMoKSBvdmVycmlkZTsKIAotICAgIHZv
aWQgc2V0U3RhdGUoY29uc3QgU3RyaW5nJiwgTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6Ok1v
Y2tTdGF0ZSk7CisgICAgdm9pZCBzZXRTdGF0ZShjb25zdCBTdHJpbmcmLCBNZWRpYVBsYXliYWNr
VGFyZ2V0Q29udGV4dDo6U3RhdGUpOwogICAgIHZvaWQgZGlzbWlzc1BvcHVwKCk7CiAKIHByaXZh
dGU6CkBAIC01Nyw3ICs1Nyw3IEBAIHByaXZhdGU6CiAKICAgICBTdHJpbmcgbV9kZXZpY2VOYW1l
OwogICAgIEdlbmVyaWNUYXNrUXVldWU8VGltZXI+IG1fdGFza1F1ZXVlOwotICAgIE1lZGlhUGxh
eWJhY2tUYXJnZXRDb250ZXh0OjpNb2NrU3RhdGUgbV9zdGF0ZSB7IE1lZGlhUGxheWJhY2tUYXJn
ZXRDb250ZXh0OjpNb2NrU3RhdGU6OlVua25vd24gfTsKKyAgICBNZWRpYVBsYXliYWNrVGFyZ2V0
Q29udGV4dDo6U3RhdGUgbV9zdGF0ZSB7IE1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0OjpVbmtu
b3duIH07CiAgICAgYm9vbCBtX3Nob3dpbmdNZW51IHsgZmFsc2UgfTsKIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCBlMjM5NzUzODIxOGQ2NDU1N2JhZGMzYTZiYWM4
OTY2MDNjNDVjYWI2Li5jZTg4MWJmZTBjNmI5NmJhMWEzZmJmZjY0MTgyNjU2NDBmNzNkZTlhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC01NTksNyArNTU5LDcgQEAgdm9p
ZCBJbnRlcm5hbHM6OnJlc2V0VG9Db25zaXN0ZW50U3RhdGUoUGFnZSYgcGFnZSkKIAogI2lmIEVO
QUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCiAgICAgcGFnZS5zZXRNb2NrTWVkaWFQbGF5
YmFja1RhcmdldFBpY2tlckVuYWJsZWQodHJ1ZSk7Ci0gICAgcGFnZS5zZXRNb2NrTWVkaWFQbGF5
YmFja1RhcmdldFBpY2tlclN0YXRlKGVtcHR5U3RyaW5nKCksIE1lZGlhUGxheWJhY2tUYXJnZXRD
b250ZXh0OjpNb2NrU3RhdGU6OlVua25vd24pOworICAgIHBhZ2Uuc2V0TW9ja01lZGlhUGxheWJh
Y2tUYXJnZXRQaWNrZXJTdGF0ZShlbXB0eVN0cmluZygpLCBNZWRpYVBsYXliYWNrVGFyZ2V0Q29u
dGV4dDo6VW5rbm93bik7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShWSURFTykKQEAgLTQ1MzEsMTQg
KzQ1MzEsMTQgQEAgRXhjZXB0aW9uT3I8dm9pZD4gSW50ZXJuYWxzOjpzZXRNb2NrTWVkaWFQbGF5
YmFja1RhcmdldFBpY2tlclN0YXRlKGNvbnN0IFN0cmluZyYKICAgICBQYWdlKiBwYWdlID0gY29u
dGV4dERvY3VtZW50KCktPmZyYW1lKCktPnBhZ2UoKTsKICAgICBBU1NFUlQocGFnZSk7CiAKLSAg
ICBNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6TW9ja1N0YXRlIHN0YXRlID0gTWVkaWFQbGF5
YmFja1RhcmdldENvbnRleHQ6Ok1vY2tTdGF0ZTo6VW5rbm93bjsKKyAgICBNZWRpYVBsYXliYWNr
VGFyZ2V0Q29udGV4dDo6U3RhdGUgc3RhdGUgPSBNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6
VW5rbm93bjsKIAogICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShkZXZpY2VT
dGF0ZSwgImRldmljZWF2YWlsYWJsZSIpKQotICAgICAgICBzdGF0ZSA9IE1lZGlhUGxheWJhY2tU
YXJnZXRDb250ZXh0OjpNb2NrU3RhdGU6Ok91dHB1dERldmljZUF2YWlsYWJsZTsKKyAgICAgICAg
c3RhdGUgPSBNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6T3V0cHV0RGV2aWNlQXZhaWxhYmxl
OwogICAgIGVsc2UgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGRldmljZVN0YXRl
LCAiZGV2aWNldW5hdmFpbGFibGUiKSkKLSAgICAgICAgc3RhdGUgPSBNZWRpYVBsYXliYWNrVGFy
Z2V0Q29udGV4dDo6TW9ja1N0YXRlOjpPdXRwdXREZXZpY2VVbmF2YWlsYWJsZTsKKyAgICAgICAg
c3RhdGUgPSBNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6T3V0cHV0RGV2aWNlVW5hdmFpbGFi
bGU7CiAgICAgZWxzZSBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZGV2aWNlU3Rh
dGUsICJ1bmtub3duIikpCi0gICAgICAgIHN0YXRlID0gTWVkaWFQbGF5YmFja1RhcmdldENvbnRl
eHQ6Ok1vY2tTdGF0ZTo6VW5rbm93bjsKKyAgICAgICAgc3RhdGUgPSBNZWRpYVBsYXliYWNrVGFy
Z2V0Q29udGV4dDo6VW5rbm93bjsKICAgICBlbHNlCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBJbnZhbGlkQWNjZXNzRXJyb3IgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCmluZGV4IDE4OGZiMGMz
MTNmZmFmMGMyNWVjY2RhNzQ2ZDY3YzFhYzJhN2Y3ZDUuLmJkMTkxZTU3MWQ3MWYyMTA3ZGZmZWM1
ZGZiMjRiMGQ0NDZkY2NlNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKQEAgLTU5LDcgKzU5LDYgQEAK
IAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCiAjaW5jbHVkZSA8V2ViQ29y
ZS9NZWRpYVBsYXliYWNrVGFyZ2V0Q29jb2EuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxh
eWJhY2tUYXJnZXRDb250ZXh0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXliYWNrVGFy
Z2V0TW9jay5oPgogI2VuZGlmCiAKQEAgLTY5OCwyMSArNjk3LDIwIEBAIHZvaWQgUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eTo6c2V0U2hvdWxkUGxheVRvUGxheWJhY2tUYXJnZXQoYm9vbCBzaG91bGRQ
bGF5KQogICAgIG1fcGxheWVyLT5zZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldChzaG91bGRQ
bGF5KTsKIH0KIAotdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpzZXRXaXJlbGVzc1BsYXli
YWNrVGFyZ2V0KE1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0JiYgdGFyZ2V0Q29udGV4dCkKK3Zv
aWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6c2V0V2lyZWxlc3NQbGF5YmFja1RhcmdldChjb25z
dCBXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dCYgdGFyZ2V0Q29udGV4dCkKIHsK
ICAgICBzd2l0Y2ggKHRhcmdldENvbnRleHQudHlwZSgpKSB7Ci0gICAgY2FzZSBNZWRpYVBsYXli
YWNrVGFyZ2V0Q29udGV4dDo6VHlwZTo6U2VyaWFsaXplZEFWT3V0cHV0Q29udGV4dDogewotICAg
ICAgICBpZiAodGFyZ2V0Q29udGV4dC5kZXNlcmlhbGl6ZU91dHB1dENvbnRleHQoKSkKLSAgICAg
ICAgICAgIG1fcGxheWVyLT5zZXRXaXJlbGVzc1BsYXliYWNrVGFyZ2V0KE1lZGlhUGxheWJhY2tU
YXJnZXRDb2NvYTo6Y3JlYXRlKFdURk1vdmUodGFyZ2V0Q29udGV4dCkpKTsKKyAgICBjYXNlIE1l
ZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0OjpBVk91dHB1dENvbnRleHRUeXBlOgorICAgICAgICBt
X3BsYXllci0+c2V0V2lyZWxlc3NQbGF5YmFja1RhcmdldChXZWJDb3JlOjpNZWRpYVBsYXliYWNr
VGFyZ2V0Q29jb2E6OmNyZWF0ZSh0YXJnZXRDb250ZXh0LmF2T3V0cHV0Q29udGV4dCgpKSk7CiAg
ICAgICAgIGJyZWFrOwotICAgIH0KLSAgICBjYXNlIE1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0
OjpUeXBlOjpNb2NrOgogI2lmIFBMQVRGT1JNKE1BQykKLSAgICAgICAgbV9wbGF5ZXItPnNldFdp
cmVsZXNzUGxheWJhY2tUYXJnZXQoTWVkaWFQbGF5YmFja1RhcmdldE1vY2s6OmNyZWF0ZSh0YXJn
ZXRDb250ZXh0LmRldmljZU5hbWUoKSwgdGFyZ2V0Q29udGV4dC5tb2NrU3RhdGUoKSkpOworICAg
IGNhc2UgTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6Ok1vY2tUeXBlOgorICAgICAgICBtX3Bs
YXllci0+c2V0V2lyZWxlc3NQbGF5YmFja1RhcmdldChXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFy
Z2V0TW9jazo6Y3JlYXRlKHRhcmdldENvbnRleHQubW9ja0RldmljZU5hbWUoKSwgdGFyZ2V0Q29u
dGV4dC5tb2NrU3RhdGUoKSkpOwogICAgICAgICBicmVhazsKKyNlbHNlCisgICAgY2FzZSBNZWRp
YVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6TW9ja1R5cGU6CiAjZW5kaWYKLSAgICBjYXNlIE1lZGlh
UGxheWJhY2tUYXJnZXRDb250ZXh0OjpUeXBlOjpBVk91dHB1dENvbnRleHQ6Ci0gICAgY2FzZSBN
ZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6VHlwZTo6Tm9uZToKKyAgICBjYXNlIE1lZGlhUGxh
eWJhY2tUYXJnZXRDb250ZXh0OjpOb25lOgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgKaW5kZXggYmRhZWU4YWUwNWYxMGZh
NDY1NzMzNDNmNDc5YzQyOTNkNDdkZjZjNC4uMjRiNjY0MWFlNGY1ZjFlN2RmYzEwNTM3NDEzZjBl
OWNmZDI1ZTIzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCkBAIC0xNTIsNyArMTUyLDcgQEAgcHVibGljOgog
I2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCiAgICAgdm9pZCBzZXRXaXJlbGVz
c1ZpZGVvUGxheWJhY2tEaXNhYmxlZChib29sKTsKICAgICB2b2lkIHNldFNob3VsZFBsYXlUb1Bs
YXliYWNrVGFyZ2V0KGJvb2wpOwotICAgIHZvaWQgc2V0V2lyZWxlc3NQbGF5YmFja1RhcmdldChX
ZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dCYmKTsKKyAgICB2b2lkIHNldFdpcmVs
ZXNzUGxheWJhY2tUYXJnZXQoY29uc3QgV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldENvbnRl
eHQmKTsKICAgICB2b2lkIG1lZGlhUGxheWVyQ3VycmVudFBsYXliYWNrVGFyZ2V0SXNXaXJlbGVz
c0NoYW5nZWQoYm9vbCkgZmluYWw7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL2lvcy9SZW1vdGVNZWRpYVNlc3Npb25IZWxwZXJQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvaW9zL1JlbW90ZU1lZGlhU2Vzc2lvbkhl
bHBlclByb3h5LmNwcAppbmRleCBiZWQzMGUyOWNlNGI5YzVmNmFmNDAxYWMxY2M4ZjI2ZmEyYzQ2
MWI3Li45ZTZiYzk0NjZiNTM5OWIyNGY1ODQwMDliOTAwYmQwN2QwMDgyMTE2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvaW9zL1JlbW90ZU1lZGlhU2Vzc2lvbkhl
bHBlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvaW9zL1Jl
bW90ZU1lZGlhU2Vzc2lvbkhlbHBlclByb3h5LmNwcApAQCAtMTA4LDExICsxMDgsNyBAQCB2b2lk
IFJlbW90ZU1lZGlhU2Vzc2lvbkhlbHBlclByb3h5OjphY3RpdmVBdWRpb1JvdXRlRGlkQ2hhbmdl
KFNob3VsZFBhdXNlIHNob3VsZAogCiB2b2lkIFJlbW90ZU1lZGlhU2Vzc2lvbkhlbHBlclByb3h5
OjphY3RpdmVWaWRlb1JvdXRlRGlkQ2hhbmdlKFN1cHBvcnRzQWlyUGxheVZpZGVvIHN1cHBvcnRz
QWlyUGxheVZpZGVvLCBSZWY8V2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldD4mJiB0YXJnZXQp
CiB7Ci0gICAgYXV0byBjb250ZXh0ID0gdGFyZ2V0LT50YXJnZXRDb250ZXh0KCk7Ci0gICAgaWYg
KCFjb250ZXh0LnNlcmlhbGl6ZU91dHB1dENvbnRleHQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgbV9ncHVDb25uZWN0aW9uLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRp
YVNlc3Npb25IZWxwZXI6OkFjdGl2ZVZpZGVvUm91dGVEaWRDaGFuZ2Uoc3VwcG9ydHNBaXJQbGF5
VmlkZW8sIGNvbnRleHQpLCB7IH0pOworICAgIG1fZ3B1Q29ubmVjdGlvbi5jb25uZWN0aW9uKCku
c2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFTZXNzaW9uSGVscGVyOjpBY3RpdmVWaWRlb1JvdXRl
RGlkQ2hhbmdlKHN1cHBvcnRzQWlyUGxheVZpZGVvLCB0YXJnZXQtPnRhcmdldENvbnRleHQoKSks
IHsgfSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dl
YkNvcmVBcmd1bWVudENvZGVyc0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2Ev
V2ViQ29yZUFyZ3VtZW50Q29kZXJzQ29jb2EubW0KaW5kZXggNTAzNDQxY2I2ZWEzNWZkM2VjYWY5
Njc2ZjkyNjRkMzI4MTM1YjM2Ni4uYmY4OGFiNjE3YmUxMjFiNGFmN2JjNGNkM2M0ZmMxOTdkZGE1
OTc4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzQ29jb2EubW0KQEAgLTQxLDIzICs0MSwxNCBAQAogI2ltcG9ydCA8VUlL
aXQvVUlGb250Lmg+CiAjZW5kaWYKIAotI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJH
RVQpCi0jaW1wb3J0IDxXZWJDb3JlL01lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0Lmg+Ci0jaW1w
b3J0IDxvYmpjL3J1bnRpbWUuaD4KLSNlbmRpZgotCi0jaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NE
SykKLSNpbmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ29jb2FB
ZGRpdGlvbnMubW0+Ci0jZW5kaWYKLQogI2lmIEVOQUJMRShBUFBMRV9QQVkpCiAjaW1wb3J0ICJE
YXRhUmVmZXJlbmNlLmgiCiAjaW1wb3J0IDxXZWJDb3JlL1BheW1lbnRBdXRob3JpemF0aW9uU3Rh
dHVzLmg+CiAjaW1wb3J0IDxwYWwvY29jb2EvUGFzc0tpdFNvZnRMaW5rLmg+CiAjZW5kaWYKIAot
I2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCi0jaW1wb3J0IDxwYWwvY29jb2Ev
QVZGb3VuZGF0aW9uU29mdExpbmsuaD4KKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorI2lu
Y2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9XZWJDb3JlQXJndW1lbnRDb2RlcnNDb2NvYUFkZGl0aW9u
cy5tbT4KICNlbmRpZgogCiBuYW1lc3BhY2UgSVBDIHsKQEAgLTYxNSw1MCArNjA2LDQgQEAgYm9v
bCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdD46OmRlY29kZVBsYXRmb3Jt
RGF0YShEZWNvZGVyJiBkZWNvZGUKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotI2lmIEVOQUJMRShX
SVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCi12b2lkIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6TWVk
aWFQbGF5YmFja1RhcmdldENvbnRleHQ+OjplbmNvZGVQbGF0Zm9ybURhdGEoRW5jb2RlciYgZW5j
b2RlciwgY29uc3QgTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQmIHRhcmdldCkKLXsKLSAgICBp
ZiAodGFyZ2V0LnR5cGUoKSA9PSBNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6VHlwZTo6QVZP
dXRwdXRDb250ZXh0KSB7Ci0gICAgICAgIGlmIChbUEFMOjpnZXRBVk91dHB1dENvbnRleHRDbGFz
cygpIGNvbmZvcm1zVG9Qcm90b2NvbDpAcHJvdG9jb2woTlNTZWN1cmVDb2RpbmcpXSkKLSAgICAg
ICAgICAgIGVuY29kZXIgPDwgdGFyZ2V0Lm91dHB1dENvbnRleHQoKTsKLSAgICB9IGVsc2UgaWYg
KHRhcmdldC50eXBlKCkgPT0gTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6OlR5cGU6OlNlcmlh
bGl6ZWRBVk91dHB1dENvbnRleHQpIHsKLSAgICAgICAgZW5jb2RlciA8PCB0YXJnZXQuc2VyaWFs
aXplZE91dHB1dENvbnRleHQoKTsKLSAgICAgICAgZW5jb2RlciA8PCB0YXJnZXQuaGFzQWN0aXZl
Um91dGUoKTsKLSAgICB9IGVsc2UKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci19Ci0K
LWJvb2wgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dD46
OmRlY29kZVBsYXRmb3JtRGF0YShEZWNvZGVyJiBkZWNvZGVyLCBNZWRpYVBsYXliYWNrVGFyZ2V0
Q29udGV4dDo6VHlwZSBjb250ZXh0VHlwZSwgTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQmIHRh
cmdldCkKLXsKLSAgICBBU1NFUlQoY29udGV4dFR5cGUgIT0gTWVkaWFQbGF5YmFja1RhcmdldENv
bnRleHQ6OlR5cGU6Ok1vY2spOwotCi0gICAgaWYgKGNvbnRleHRUeXBlID09IE1lZGlhUGxheWJh
Y2tUYXJnZXRDb250ZXh0OjpUeXBlOjpBVk91dHB1dENvbnRleHQpIHsKLSAgICAgICAgaWYgKCFb
UEFMOjpnZXRBVk91dHB1dENvbnRleHRDbGFzcygpIGNvbmZvcm1zVG9Qcm90b2NvbDpAcHJvdG9j
b2woTlNTZWN1cmVDb2RpbmcpXSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAg
ICBhdXRvIG91dHB1dENvbnRleHQgPSBJUEM6OmRlY29kZTxBVk91dHB1dENvbnRleHQ+KGRlY29k
ZXIsIFBBTDo6Z2V0QVZPdXRwdXRDb250ZXh0Q2xhc3MoKSk7Ci0gICAgICAgIGlmICghb3V0cHV0
Q29udGV4dCkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICB0YXJnZXQgPSBX
ZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dCB7IFdURk1vdmUoKm91dHB1dENvbnRl
eHQpIH07Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIGlmIChjb250ZXh0VHlw
ZSA9PSBNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6VHlwZTo6U2VyaWFsaXplZEFWT3V0cHV0
Q29udGV4dCkgewotICAgICAgICBSZXRhaW5QdHI8TlNEYXRhPiBzZXJpYWxpemVkT3V0cHV0Q29u
dGV4dDsKLSAgICAgICAgaWYgKCFJUEM6OmRlY29kZShkZWNvZGVyLCBzZXJpYWxpemVkT3V0cHV0
Q29udGV4dCkgfHwgIXNlcmlhbGl6ZWRPdXRwdXRDb250ZXh0KQotICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwotCi0gICAgICAgIGJvb2wgaGFzQWN0aXZlUm91dGU7Ci0gICAgICAgIGlmICghZGVj
b2Rlci5kZWNvZGUoaGFzQWN0aXZlUm91dGUpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwot
Ci0gICAgICAgIHRhcmdldCA9IFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0IHsg
V1RGTW92ZShzZXJpYWxpemVkT3V0cHV0Q29udGV4dCksIGhhc0FjdGl2ZVJvdXRlIH07Ci0gICAg
ICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIHJldHVybiBmYWxzZTsKLX0KLSNlbmRpZgot
CiB9IC8vIG5hbWVzcGFjZSBJUEMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnMuY3BwCmluZGV4IGY2NTExNmZmOWQ2YjAzYjFhMzMzMWNkYmYzNmU0N2Q4YTQx
MThjYjUuLjI1NWEyY2JjNmM3N2NlZjFlNjA3MGVhNDIwZjZiZGU5MGIyNDBhNzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtMjQ1Nywx
NyArMjQ1NywxNyBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8TWVkaWFQbGF5YmFja1RhcmdldENvbnRl
eHQ+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgTQogICAgIGJvb2wgaGFzUGxhdGZv
cm1EYXRhID0gdGFyZ2V0LmVuY29kaW5nUmVxdWlyZXNQbGF0Zm9ybURhdGEoKTsKICAgICBlbmNv
ZGVyIDw8IGhhc1BsYXRmb3JtRGF0YTsKIAotICAgIE1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0
OjpUeXBlIGNvbnRleHRUeXBlID0gdGFyZ2V0LnR5cGUoKTsKLSAgICBlbmNvZGVyIDw8IGNvbnRl
eHRUeXBlOworICAgIGludDMyX3QgdGFyZ2V0VHlwZSA9IHRhcmdldC50eXBlKCk7CisgICAgZW5j
b2RlciA8PCB0YXJnZXRUeXBlOwogCiAgICAgaWYgKHRhcmdldC5lbmNvZGluZ1JlcXVpcmVzUGxh
dGZvcm1EYXRhKCkpIHsKICAgICAgICAgZW5jb2RlUGxhdGZvcm1EYXRhKGVuY29kZXIsIHRhcmdl
dCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBBU1NFUlQoY29udGV4dFR5cGUgPT0g
TWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6OlR5cGU6Ok1vY2spOwotICAgIGVuY29kZXIgPDwg
dGFyZ2V0LmRldmljZU5hbWUoKTsKLSAgICBlbmNvZGVyIDw8IHRhcmdldC5tb2NrU3RhdGUoKTsK
KyAgICBBU1NFUlQodGFyZ2V0VHlwZSA9PSBNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6TW9j
a1R5cGUpOworICAgIGVuY29kZXIgPDwgdGFyZ2V0Lm1vY2tEZXZpY2VOYW1lKCk7CisgICAgZW5j
b2RlciA8PCBzdGF0aWNfY2FzdDxpbnQzMl90Pih0YXJnZXQubW9ja1N0YXRlKCkpOwogfQogCiBi
b29sIEFyZ3VtZW50Q29kZXI8TWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ+OjpkZWNvZGUoRGVj
b2RlciYgZGVjb2RlciwgTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQmIHRhcmdldCkKQEAgLTI0
NzYsMjQgKzI0NzYsMjQgQEAgYm9vbCBBcmd1bWVudENvZGVyPE1lZGlhUGxheWJhY2tUYXJnZXRD
b250ZXh0Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIE1lZGlhUGwKICAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKGhhc1BsYXRmb3JtRGF0YSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAg
IE1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0OjpUeXBlIGNvbnRleHRUeXBlOwotICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUoY29udGV4dFR5cGUpKQorICAgIGludDMyX3QgdGFyZ2V0VHlwZTsKKyAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKHRhcmdldFR5cGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICBpZiAoaGFzUGxhdGZvcm1EYXRhKQotICAgICAgICByZXR1cm4gZGVjb2RlUGxhdGZv
cm1EYXRhKGRlY29kZXIsIGNvbnRleHRUeXBlLCB0YXJnZXQpOworICAgICAgICByZXR1cm4gZGVj
b2RlUGxhdGZvcm1EYXRhKGRlY29kZXIsIHRhcmdldCk7CiAKLSAgICBBU1NFUlQoY29udGV4dFR5
cGUgPT0gTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6OlR5cGU6Ok1vY2spOwotICAgIFN0cmlu
ZyBkZXZpY2VOYW1lOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoZGV2aWNlTmFtZSkpCisgICAg
QVNTRVJUKHRhcmdldFR5cGUgPT0gTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6Ok1vY2tUeXBl
KTsKKworICAgIFN0cmluZyBtb2NrRGV2aWNlTmFtZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KG1vY2tEZXZpY2VOYW1lKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgTWVkaWFQbGF5
YmFja1RhcmdldENvbnRleHQ6Ok1vY2tTdGF0ZSBtb2NrU3RhdGU7CisgICAgaW50MzJfdCBtb2Nr
U3RhdGU7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtb2NrU3RhdGUpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKLSAgICB0YXJnZXQgPSBNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dChkZXZp
Y2VOYW1lLCBtb2NrU3RhdGUpOwotCisgICAgdGFyZ2V0ID0gTWVkaWFQbGF5YmFja1RhcmdldENv
bnRleHQobW9ja0RldmljZU5hbWUsIHN0YXRpY19jYXN0PE1lZGlhUGxheWJhY2tUYXJnZXRDb250
ZXh0OjpTdGF0ZT4obW9ja1N0YXRlKSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggNjQ3NmUz
OTBiZmM3NzhkN2ViN2NkZmIzZGMyYWQ1NGMyY2U3ZmU1ZS4uNjE5NzA4NzgyNTExNTQ4YjYyZjI3
MTU2YmQzZjQ3ZDcxYTMxZWFjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmgKQEAgLTMzLDcgKzMzLDYgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0ltYWdl
RGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW5kZXhlZERCLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9JbnB1dE1vZGUuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWJhY2tUYXJnZXRDb250
ZXh0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVNlbGVjdGlvbk9wdGlvbi5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvTmF0aXZlSW1hZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtMb2Fk
TWV0cmljcy5oPgpAQCAtMTk2LDYgKzE5NSwxMCBAQCBzdHJ1Y3QgUGFzdGVib2FyZFdlYkNvbnRl
bnQ7CiBjbGFzcyBDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXI7CiAjZW5kaWYKIAorI2lmIEVO
QUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCitjbGFzcyBNZWRpYVBsYXliYWNrVGFyZ2V0
Q29udGV4dDsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIHN0cnVjdCBNZWRp
YUNvbnN0cmFpbnRzOwogI2VuZGlmCkBAIC02NDEsNyArNjQ0LDcgQEAgdGVtcGxhdGU8PiBzdHJ1
Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dD4gewog
ICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFQbGF5
YmFja1RhcmdldENvbnRleHQmKTsKICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wg
ZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dCYpOwog
ICAgIHN0YXRpYyB2b2lkIGVuY29kZVBsYXRmb3JtRGF0YShFbmNvZGVyJiwgY29uc3QgV2ViQ29y
ZTo6TWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQmKTsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURf
UkVUVVJOIGJvb2wgZGVjb2RlUGxhdGZvcm1EYXRhKERlY29kZXImLCBXZWJDb3JlOjpNZWRpYVBs
YXliYWNrVGFyZ2V0Q29udGV4dDo6VHlwZSwgV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldENv
bnRleHQmKTsKKyAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlUGxhdGZv
cm1EYXRhKERlY29kZXImLCBXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dCYpOwog
fTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzTWFjLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVB
cmd1bWVudENvZGVyc01hYy5tbQppbmRleCA5MjVmNWE0ZDVhNDg4ZDQ4ODQwNGVjNjI5NTJkOGEy
NDlhM2YwMDFhLi4xODZiN2JiMmRiNmZjNGUyYmMxMzNmNzE3NWNjZjljMzc2Mzg5MjMwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNN
YWMubW0KQEAgLTQyLDYgKzQyLDEyIEBACiAjaW1wb3J0IDx3dGYvTWFjaFNlbmRSaWdodC5oPgog
I2ltcG9ydCA8d3RmL2NmL1R5cGVDYXN0c0NGLmg+CiAKKyNpZiBFTkFCTEUoV0lSRUxFU1NfUExB
WUJBQ0tfVEFSR0VUKQorI2ltcG9ydCA8V2ViQ29yZS9NZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4
dC5oPgorI2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+CisjaW1wb3J0IDxwYWwvY29jb2EvQVZGb3Vu
ZGF0aW9uU29mdExpbmsuaD4KKyNlbmRpZgorCiBuYW1lc3BhY2UgSVBDIHsKIAogdm9pZCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbz46OmVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyLCBjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbykKQEAg
LTM5Nyw2ICs0MDMsMjkgQEAgYm9vbCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkNvbnRlbnRGaWx0
ZXJVbmJsb2NrSGFuZGxlcj46OmRlY29kZShEZWNvZGVyJiBkZWNvZGUKIAogI2VuZGlmCiAKKyNp
ZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQorCit2b2lkIEFyZ3VtZW50Q29kZXI8
V2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ+OjplbmNvZGVQbGF0Zm9ybURhdGEo
RW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldENvbnRl
eHQmIHRhcmdldCkKK3sKKyAgICBpZiAoW1BBTDo6Z2V0QVZPdXRwdXRDb250ZXh0Q2xhc3MoKSBj
b25mb3Jtc1RvUHJvdG9jb2w6QHByb3RvY29sKE5TU2VjdXJlQ29kaW5nKV0pCisgICAgICAgIGVu
Y29kZXIgPDwgdGFyZ2V0LmF2T3V0cHV0Q29udGV4dCgpOworfQorCitib29sIEFyZ3VtZW50Q29k
ZXI8V2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ+OjpkZWNvZGVQbGF0Zm9ybURh
dGEoRGVjb2RlciYgZGVjb2RlciwgV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQm
IHRhcmdldCkKK3sKKyAgICBpZiAoIVtQQUw6OmdldEFWT3V0cHV0Q29udGV4dENsYXNzKCkgY29u
Zm9ybXNUb1Byb3RvY29sOkBwcm90b2NvbChOU1NlY3VyZUNvZGluZyldKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICBhdXRvIGNvbnRleHQgPSBJUEM6OmRlY29kZTxBVk91dHB1dENvbnRl
eHQ+KGRlY29kZXIsIFBBTDo6Z2V0QVZPdXRwdXRDb250ZXh0Q2xhc3MoKSk7CisgICAgaWYgKCFj
b250ZXh0KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICB0YXJnZXQgPSBXZWJDb3JlOjpN
ZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dCB7IGNvbnRleHQtPmdldCgpIH07CisgICAgcmV0dXJu
IHRydWU7Cit9CisKKyNlbmRpZgorCiAjaWYgRU5BQkxFKFZJREVPKQogdm9pZCBBcmd1bWVudENv
ZGVyPFdlYkNvcmU6OlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZT46OmVuY29kZVBsYXRm
b3JtRGF0YShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZv
cm1EYXRhQ3VlVmFsdWUmIHZhbHVlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKaW5kZXggNDVlMDNmNGViZDBiZTQ0NmRhYTdhOGM2OWU1MTViZjZlOTc0MDgwNy4u
NzBmZWFhMDkzMjJkNjU0MDJhNzkzYzgyYWZiOTNhZmI1ZDBiNWJiNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC03ODQ0LDYgKzc4NDQsMTQgQEAgc3RhdGlj
IGNvbnN0IFZlY3RvcjxBU0NJSUxpdGVyYWw+JiBtZWRpYVJlbGF0ZWRJT0tpdENsYXNzZXMoKQog
ICAgIH0pOwogICAgIHJldHVybiBzZXJ2aWNlczsKIH0KKworc3RhdGljIGNvbnN0IFZlY3RvcjxB
U0NJSUxpdGVyYWw+JiB0ZW1wb3JhcnlNYWNoU2VydmljZXMoKQoreworICAgIHN0YXRpYyBjb25z
dCBhdXRvIHNlcnZpY2VzID0gbWFrZU5ldmVyRGVzdHJveWVkKFZlY3RvcjxBU0NJSUxpdGVyYWw+
IHsKKyAgICAgICAgImNvbS5hcHBsZS5jb3JlbWVkaWEucm91dGluZ2NvbnRleHQueHBjIl9zIC8v
IFJlbW92ZSBhZnRlciA8cmRhcjovLzc2NDAzMzAyPiBpcyBmaXhlZC4KKyAgICB9KTsKKyAgICBy
ZXR1cm4gc2VydmljZXM7Cit9CiAjZW5kaWYKIAogV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyBX
ZWJQYWdlUHJveHk6OmNyZWF0aW9uUGFyYW1ldGVycyhXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3Ms
IERyYXdpbmdBcmVhUHJveHkmIGRyYXdpbmdBcmVhLCBSZWZQdHI8QVBJOjpXZWJzaXRlUG9saWNp
ZXM+JiYgd2Vic2l0ZVBvbGljaWVzKQpAQCAtNzkzOSw2ICs3OTQ3LDkgQEAgV2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVycyBXZWJQYWdlUHJveHk6OmNyZWF0aW9uUGFyYW1ldGVycyhXZWJQcm9jZXNz
UHJveHkmIHByb2MKICAgICAgICAgLy8gRklYTUUoMjA3NzE2KTogVGhlIGZvbGxvd2luZyBzaG91
bGQgYmUgcmVtb3ZlZCB3aGVuIHRoZSBHUFUgcHJvY2VzcyBpcyBjb21wbGV0ZS4KICAgICAgICAg
cGFyYW1ldGVycy5tZWRpYUV4dGVuc2lvbkhhbmRsZXMgPSBTYW5kYm94RXh0ZW5zaW9uOjpjcmVh
dGVIYW5kbGVzRm9yTWFjaExvb2t1cChtZWRpYVJlbGF0ZWRNYWNoU2VydmljZXMoKSwgV1RGOjpu
dWxsb3B0KTsKICAgICAgICAgcGFyYW1ldGVycy5tZWRpYUlPS2l0RXh0ZW5zaW9uSGFuZGxlcyA9
IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZXNGb3JJT0tpdENsYXNzRXh0ZW5zaW9ucyht
ZWRpYVJlbGF0ZWRJT0tpdENsYXNzZXMoKSwgV1RGOjpudWxsb3B0KTsKKyAgICB9IGVsc2Ugewor
ICAgICAgICAvLyBGSVhNRSgyMjQzMjcpOiBSZW1vdmUgdGhpcyBlbHNlIGNsYXVzZSBvbmNlIDxy
ZGFyOi8vNzY0MDMzMDI+IGlzIGZpeGVkLgorICAgICAgICBwYXJhbWV0ZXJzLm1lZGlhRXh0ZW5z
aW9uSGFuZGxlcyA9IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZXNGb3JNYWNoTG9va3Vw
KHRlbXBvcmFyeU1hY2hTZXJ2aWNlcygpLCBXVEY6Om51bGxvcHQpOwogICAgIH0KIAogICAgIGlm
ICghcHJlZmVyZW5jZXMoKS51c2VHUFVQcm9jZXNzRm9yTWVkaWFFbmFibGVkKCkKQEAgLTk0MDQs
NyArOTQxNSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRNb2NrTWVkaWFQbGF5YmFja1Rhcmdl
dFBpY2tlckVuYWJsZWQoYm9vbCBlbmFibGVkKQogICAgIHBhZ2VDbGllbnQoKS5tZWRpYVNlc3Np
b25NYW5hZ2VyKCkuc2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJFbmFibGVkKGVuYWJs
ZWQpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6c2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQ
aWNrZXJTdGF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJn
ZXRDb250ZXh0OjpNb2NrU3RhdGUgc3RhdGUpCit2b2lkIFdlYlBhZ2VQcm94eTo6c2V0TW9ja01l
ZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJTdGF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6
Ok1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0OjpTdGF0ZSBzdGF0ZSkKIHsKICAgICBwYWdlQ2xp
ZW50KCkubWVkaWFTZXNzaW9uTWFuYWdlcigpLnNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlj
a2VyU3RhdGUobmFtZSwgc3RhdGUpOwogfQpAQCAtOTQxOSwxMiArOTQzMCw3IEBAIHZvaWQgV2Vi
UGFnZVByb3h5OjpzZXRQbGF5YmFja1RhcmdldChQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJ
ZGVudGlmaWVyIGNvbnRlCiAgICAgaWYgKCFoYXNSdW5uaW5nUHJvY2VzcygpKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBhdXRvIGNvbnRleHQgPSB0YXJnZXQtPnRhcmdldENvbnRleHQoKTsKLSAg
ICBBU1NFUlQoY29udGV4dC50eXBlKCkgIT0gTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6OlR5
cGU6OlNlcmlhbGl6ZWRBVk91dHB1dENvbnRleHQpOwotICAgIGlmIChwcmVmZXJlbmNlcygpLnVz
ZUdQVVByb2Nlc3NGb3JNZWRpYUVuYWJsZWQoKSkKLSAgICAgICAgY29udGV4dC5zZXJpYWxpemVP
dXRwdXRDb250ZXh0KCk7Ci0KLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpQbGF5YmFja1Rh
cmdldFNlbGVjdGVkKGNvbnRleHRJZCwgY29udGV4dCkpOworICAgIHNlbmQoTWVzc2FnZXM6Oldl
YlBhZ2U6OlBsYXliYWNrVGFyZ2V0U2VsZWN0ZWQoY29udGV4dElkLCB0YXJnZXQtPnRhcmdldENv
bnRleHQoKSkpOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZXh0ZXJuYWxPdXRwdXREZXZpY2VB
dmFpbGFibGVEaWRDaGFuZ2UoUGxheWJhY2tUYXJnZXRDbGllbnRDb250ZXh0SWRlbnRpZmllciBj
b250ZXh0SWQsIGJvb2wgYXZhaWxhYmxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaAppbmRleCBkODc5NTAyNWRiNDBjOGY4YTljZGY5OWViY2U4N2ExYmY3ODg0MGRjLi5iODUz
M2NiYzc0M2FmOWFmNTQyMDU1M2U4MzdhZTcxYjA2ODcxY2IxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTU2Nyw3ICsxNTY3LDcgQEAgcHVibGljOgogICAgIHZv
aWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50
Q29udGV4dElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGJvb2wgaGFzVmlk
ZW8pOwogICAgIHZvaWQgcGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShX
ZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLCBXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpOwogICAgIHZvaWQgc2V0TW9ja01lZGlhUGxh
eWJhY2tUYXJnZXRQaWNrZXJFbmFibGVkKGJvb2wpOwotICAgIHZvaWQgc2V0TW9ja01lZGlhUGxh
eWJhY2tUYXJnZXRQaWNrZXJTdGF0ZShjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpNZWRpYVBsYXli
YWNrVGFyZ2V0Q29udGV4dDo6TW9ja1N0YXRlKTsKKyAgICB2b2lkIHNldE1vY2tNZWRpYVBsYXli
YWNrVGFyZ2V0UGlja2VyU3RhdGUoY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6TWVkaWFQbGF5YmFj
a1RhcmdldENvbnRleHQ6OlN0YXRlKTsKICAgICB2b2lkIG1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0
UGlja2VyRGlzbWlzc1BvcHVwKCk7CiAKICAgICAvLyBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xp
ZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW4KaW5kZXggN2U5OGIwODhkOTIyZWUxMTQ0OTczMGEwZTU1ODEyYmUyNjQ0NzUzOC4uMmNhYzNm
MWNiMDVkMWNkN2I1Zjc3MWVlMTJjMGU3MjllMWYxZDhjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtNDc2LDcgKzQ3Niw3IEBA
IG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgU2hvd1BsYXliYWNrVGFyZ2V0UGlja2Vy
KFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIgY29udGV4dElk
LCBXZWJDb3JlOjpGbG9hdFJlY3QgcGlja2VyTG9jYXRpb24sIGJvb2wgaGFzVmlkZW8pCiAgICAg
UGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpQbGF5YmFj
a1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgdW5zaWduZWQgbWVkaWFT
dGF0ZSkKICAgICBTZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlckVuYWJsZWQoYm9vbCBl
bmFibGVkKQotICAgIFNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyU3RhdGUoU3RyaW5n
IG5hbWUsIGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6
TW9ja1N0YXRlIHBpY2tlclN0YXRlKQorICAgIFNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlj
a2VyU3RhdGUoU3RyaW5nIG5hbWUsIHVuc2lnbmVkIHBpY2tlclN0YXRlKQogICAgIE1vY2tNZWRp
YVBsYXliYWNrVGFyZ2V0UGlja2VyRGlzbWlzc1BvcHVwKCkKICNlbmRpZgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2lvcy9SZW1vdGVNZWRpYVNlc3Np
b25IZWxwZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9pb3MvUmVt
b3RlTWVkaWFTZXNzaW9uSGVscGVyLmNwcAppbmRleCA0ODYyYWY3NjQ1NjdkNmJmNmFmZjY4ZDI4
NzhmOGY5NGUxOTU4ZjI2Li4yYWI1ZjkxM2NkZTgzY2VkYzU0YTdhOGZlMGVlMDk1M2JjZTQ0OTVi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2lvcy9SZW1v
dGVNZWRpYVNlc3Npb25IZWxwZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvaW9zL1JlbW90ZU1lZGlhU2Vzc2lvbkhlbHBlci5jcHAKQEAgLTgxLDExICs4MSwx
MiBAQCB2b2lkIFJlbW90ZU1lZGlhU2Vzc2lvbkhlbHBlcjo6cHJvdmlkZVByZXNlbnRpbmdBcHBs
aWNhdGlvblBJRChpbnQgcGlkKQogCiB2b2lkIFJlbW90ZU1lZGlhU2Vzc2lvbkhlbHBlcjo6YWN0
aXZlVmlkZW9Sb3V0ZURpZENoYW5nZShTdXBwb3J0c0FpclBsYXlWaWRlbyBzdXBwb3J0c0FpclBs
YXlWaWRlbywgTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQmJiB0YXJnZXRDb250ZXh0KQogewot
ICAgIEFTU0VSVCh0YXJnZXRDb250ZXh0LnR5cGUoKSAhPSBNZWRpYVBsYXliYWNrVGFyZ2V0Q29u
dGV4dDo6VHlwZTo6QVZPdXRwdXRDb250ZXh0KTsKLSAgICBpZiAodGFyZ2V0Q29udGV4dC50eXBl
KCkgPT0gTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6OlR5cGU6OkFWT3V0cHV0Q29udGV4dCkK
KyAgICBpZiAodGFyZ2V0Q29udGV4dC50eXBlKCkgIT0gTWVkaWFQbGF5YmFja1RhcmdldENvbnRl
eHQ6OkFWT3V0cHV0Q29udGV4dFR5cGUpIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKLSAgICBXZWJDb3JlOjpNZWRpYVNlc3Npb25IZWxw
ZXI6OmFjdGl2ZVZpZGVvUm91dGVEaWRDaGFuZ2Uoc3VwcG9ydHNBaXJQbGF5VmlkZW8sIFdlYkNv
cmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRDb2NvYTo6Y3JlYXRlKFdURk1vdmUodGFyZ2V0Q29udGV4
dCkpKTsKKyAgICBXZWJDb3JlOjpNZWRpYVNlc3Npb25IZWxwZXI6OmFjdGl2ZVZpZGVvUm91dGVE
aWRDaGFuZ2Uoc3VwcG9ydHNBaXJQbGF5VmlkZW8sIFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJn
ZXRDb2NvYTo6Y3JlYXRlKHRhcmdldENvbnRleHQuYXZPdXRwdXRDb250ZXh0KCkpKTsKIH0KIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCA1ZmM4NTU2Mzc2MGVhNzVlYzEyZWQxNGE5ZTI3
MzY4MWYyNTFjMDkzLi5iY2M0YzE3YWMyOTUyMTJjYmE2NGRlZGQxYzliM2E5MDZjYTA1MTAxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMTM1Miw3ICsxMzUyLDcgQEAgdm9pZCBXZWJDaHJv
bWVDbGllbnQ6OnNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRW5hYmxlZChib29sIGVu
YWJsZWQpCiAgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2V0TW9ja01l
ZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJFbmFibGVkKGVuYWJsZWQpKTsKIH0KIAotdm9pZCBXZWJD
aHJvbWVDbGllbnQ6OnNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyU3RhdGUoY29uc3Qg
U3RyaW5nJiBuYW1lLCBNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6TW9ja1N0YXRlIHN0YXRl
KQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2Vy
U3RhdGUoY29uc3QgU3RyaW5nJiBuYW1lLCBNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6U3Rh
dGUgc3RhdGUpCiB7CiAgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2V0
TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJTdGF0ZShuYW1lLCBzdGF0ZSkpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oCmluZGV4IDU2Y2Y2YjkyZWQ5YTEwMzZkYmQ3ZDA2NDg2M2M0ZTc2ODE0MmNk
ZWYuLjY4MTJlNjQyZmVjZGNhYTdiMWY1MWZlMDcxMjU4MGE3ZDQyYzRlZjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmgKQEAgLTM3OCw3ICszNzgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2hvd1BsYXli
YWNrVGFyZ2V0UGlja2VyKFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50
aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgYm9vbCkgZmluYWw7CiAgICAgdm9pZCBw
bGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlBsYXliYWNr
VGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIsIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1l
ZGlhU3RhdGVGbGFncykgZmluYWw7CiAgICAgdm9pZCBzZXRNb2NrTWVkaWFQbGF5YmFja1Rhcmdl
dFBpY2tlckVuYWJsZWQoYm9vbCkgZmluYWw7Ci0gICAgdm9pZCBzZXRNb2NrTWVkaWFQbGF5YmFj
a1RhcmdldFBpY2tlclN0YXRlKGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tU
YXJnZXRDb250ZXh0OjpNb2NrU3RhdGUpIGZpbmFsOworICAgIHZvaWQgc2V0TW9ja01lZGlhUGxh
eWJhY2tUYXJnZXRQaWNrZXJTdGF0ZShjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpNZWRpYVBsYXli
YWNrVGFyZ2V0Q29udGV4dDo6U3RhdGUpIGZpbmFsOwogICAgIHZvaWQgbW9ja01lZGlhUGxheWJh
Y2tUYXJnZXRQaWNrZXJEaXNtaXNzUG9wdXAoKSBmaW5hbDsKICNlbmRpZgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggMWU2MzM3OWNhZjg3N2I1OTI2
NmJmYzcwMzcwOTE2MDA5NjAzNmVhMi4uYWViMjVkYWI4NDIwNjg0YTk1MDIzODZhYmY4M2FlNmJl
MzhjZTk4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApA
QCAtMTc5MSw3ICsxNzkxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldFNob3VsZERpc3BhdGNo
RmFrZU1vdXNlTW92ZUV2ZW50cyhib29sIGRpc3BhdGNoKSB7IG1fc2hvdWxkRGlzcGF0Y2hGYWtl
TW91c2VNb3ZlRXZlbnRzID0gZGlzcGF0Y2g7IH0KIAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZ
QkFDS19UQVJHRVQpICYmICFQTEFURk9STShJT1NfRkFNSUxZKQotICAgIHZvaWQgcGxheWJhY2tU
YXJnZXRTZWxlY3RlZChXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlm
aWVyLCBXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dCYmKSBjb25zdDsKKyAgICB2
b2lkIHBsYXliYWNrVGFyZ2V0U2VsZWN0ZWQoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRD
b250ZXh0SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldENvbnRl
eHQmIG91dHB1dERldmljZSkgY29uc3Q7CiAgICAgdm9pZCBwbGF5YmFja1RhcmdldEF2YWlsYWJp
bGl0eURpZENoYW5nZShXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlm
aWVyLCBib29sKTsKICAgICB2b2lkIHNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KFdlYkNv
cmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIsIGJvb2wpOwogICAgIHZv
aWQgcGxheWJhY2tUYXJnZXRQaWNrZXJXYXNEaXNtaXNzZWQoV2ViQ29yZTo6UGxheWJhY2tUYXJn
ZXRDbGllbnRDb250ZXh0SWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCmluZGV4IDYyZTc5OGZlNGNkNWQ3MGI5YjIz
ZjAwODY3YjU4ZGE0YTI3NThmMTguLjc0ZGE2MzU3ODgyY2QwMTMwMjA4NDA5N2YwNjRkMjFjM2I5
MTVkMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9X
ZWJQYWdlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9X
ZWJQYWdlTWFjLm1tCkBAIC0zNSw2ICszNSw3IEBACiAjaW1wb3J0ICJGb250SW5mby5oIgogI2lt
cG9ydCAiRnJhbWVJbmZvRGF0YS5oIgogI2ltcG9ydCAiSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVz
dWx0LmgiCisjaW1wb3J0ICJQREZLaXRTb2Z0TGluay5oIgogI2ltcG9ydCAiUERGUGx1Z2luLmgi
CiAjaW1wb3J0ICJQYWdlQmFubmVyLmgiCiAjaW1wb3J0ICJQbHVnaW5WaWV3LmgiCkBAIC05OCwx
MiArOTksOSBAQAogCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKICNpbXBv
cnQgPFdlYkNvcmUvTWVkaWFQbGF5YmFja1RhcmdldENvY29hLmg+Ci0jaW1wb3J0IDxXZWJDb3Jl
L01lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL01lZGlhUGxh
eWJhY2tUYXJnZXRNb2NrLmg+CiAjZW5kaWYKIAotI2ltcG9ydCAiUERGS2l0U29mdExpbmsuaCIK
LQogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtMTA0
NCwxNyArMTA0MiwxNiBAQCB2b2lkIFdlYlBhZ2U6OmRpZFVwZGF0ZVJlbmRlcmluZygpCiB9CiAK
ICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAmJiAhUExBVEZPUk0oSU9TX0ZB
TUlMWSkKLXZvaWQgV2ViUGFnZTo6cGxheWJhY2tUYXJnZXRTZWxlY3RlZChQbGF5YmFja1Rhcmdl
dENsaWVudENvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgV2ViQ29yZTo6TWVkaWFQbGF5YmFj
a1RhcmdldENvbnRleHQmJiB0YXJnZXRDb250ZXh0KSBjb25zdAordm9pZCBXZWJQYWdlOjpwbGF5
YmFja1RhcmdldFNlbGVjdGVkKFBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIg
Y29udGV4dElkLCBjb25zdCBXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dCYgdGFy
Z2V0Q29udGV4dCkgY29uc3QKIHsKICAgICBzd2l0Y2ggKHRhcmdldENvbnRleHQudHlwZSgpKSB7
Ci0gICAgY2FzZSBNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6VHlwZTo6QVZPdXRwdXRDb250
ZXh0OgotICAgIGNhc2UgTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6OlR5cGU6OlNlcmlhbGl6
ZWRBVk91dHB1dENvbnRleHQ6Ci0gICAgICAgIG1fcGFnZS0+c2V0UGxheWJhY2tUYXJnZXQoY29u
dGV4dElkLCBNZWRpYVBsYXliYWNrVGFyZ2V0Q29jb2E6OmNyZWF0ZShXVEZNb3ZlKHRhcmdldENv
bnRleHQpKSk7CisgICAgY2FzZSBNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6QVZPdXRwdXRD
b250ZXh0VHlwZToKKyAgICAgICAgbV9wYWdlLT5zZXRQbGF5YmFja1RhcmdldChjb250ZXh0SWQs
IFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRDb2NvYTo6Y3JlYXRlKHRhcmdldENvbnRleHQu
YXZPdXRwdXRDb250ZXh0KCkpKTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBNZWRpYVBsYXli
YWNrVGFyZ2V0Q29udGV4dDo6VHlwZTo6TW9jazoKLSAgICAgICAgbV9wYWdlLT5zZXRQbGF5YmFj
a1RhcmdldChjb250ZXh0SWQsIE1lZGlhUGxheWJhY2tUYXJnZXRNb2NrOjpjcmVhdGUodGFyZ2V0
Q29udGV4dC5kZXZpY2VOYW1lKCksIHRhcmdldENvbnRleHQubW9ja1N0YXRlKCkpKTsKKyAgICBj
YXNlIE1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0OjpNb2NrVHlwZToKKyAgICAgICAgbV9wYWdl
LT5zZXRQbGF5YmFja1RhcmdldChjb250ZXh0SWQsIFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJn
ZXRNb2NrOjpjcmVhdGUodGFyZ2V0Q29udGV4dC5tb2NrRGV2aWNlTmFtZSgpLCB0YXJnZXRDb250
ZXh0Lm1vY2tTdGF0ZSgpKSk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgTWVkaWFQbGF5YmFj
a1RhcmdldENvbnRleHQ6OlR5cGU6Ok5vbmU6CisgICAgY2FzZSBNZWRpYVBsYXliYWNrVGFyZ2V0
Q29udGV4dDo6Tm9uZToKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggZjNkNDcxNmE4OTMzZDlmMjQyZjhlZjEy
MTVhODY2MjM0MGY4OTdhNS4uYjg5YjI2NmMzZDc5YWNkMjQxZGYzNmI1ZmNlMmYxZDJlZDhkYjc0
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTI0Myw3ICsyNDMsNyBAQCBwcml2YXRlOgogICAgIHZv
aWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50
Q29udGV4dElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgYm9vbCAvKiBoYXNW
aWRlbyAqLykgZmluYWw7CiAgICAgdm9pZCBwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRl
RGlkQ2hhbmdlKFdlYkNvcmU6OlBsYXliYWNrVGFyZ2V0Q2xpZW50Q29udGV4dElkZW50aWZpZXIs
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncykgZmluYWw7CiAgICAgdm9p
ZCBzZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlckVuYWJsZWQoYm9vbCkgZmluYWw7Ci0g
ICAgdm9pZCBzZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlclN0YXRlKGNvbnN0IFN0cmlu
ZyYsIFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0OjpNb2NrU3RhdGUpIGZpbmFs
OworICAgIHZvaWQgc2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJTdGF0ZShjb25zdCBT
dHJpbmcmLCBXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6U3RhdGUpIGZpbmFs
OwogICAgIHZvaWQgbW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJEaXNtaXNzUG9wdXAoKSBv
dmVycmlkZTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KaW5kZXggYzk2NDgzZmY5NmViN2Zk
OGNjMTk1MjdjMzU0NWQ5YjgzYjE0YTliOC4uYjM0ZThkOWQ4ZWU5MTVjNjFhMGM0OWZmNDBlMmQ2
NmZlZDI0YTA0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQpAQCAtMTEyOSw3ICsxMTI5LDcgQEAgdm9p
ZCBXZWJDaHJvbWVDbGllbnQ6OnNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRW5hYmxl
ZChib29sIGVuYWJsZWQpCiAgICAgW21fd2ViVmlldyBfc2V0TW9ja01lZGlhUGxheWJhY2tUYXJn
ZXRQaWNrZXJFbmFibGVkOmVuYWJsZWRdOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0
TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJTdGF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIE1l
ZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0OjpNb2NrU3RhdGUgc3RhdGUpCit2b2lkIFdlYkNocm9t
ZUNsaWVudDo6c2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJTdGF0ZShjb25zdCBTdHJp
bmcmIG5hbWUsIE1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0OjpTdGF0ZSBzdGF0ZSkKIHsKICAg
ICBbbV93ZWJWaWV3IF9zZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck5hbWU6bmFtZSBz
dGF0ZTpzdGF0ZV07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5oCmluZGV4IDhjYTMyOTQ3
YTViNDZlMDY3YjhlOGJhZTQ0NjM5M2ViYjkwZTg2ZWYuLjBiOTIzODM1ZTllMTViNmI4MDQ1YjQ5
YWZlMjllNmFhYjAzZWNmY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5oCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5oCkBAIC01Myw3
ICs1Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcihXZWJD
b3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFJlY3QmLCBib29sIGhhc1ZpZGVvKTsKICAgICB2b2lkIHBsYXliYWNrVGFyZ2V0UGlj
a2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250
ZXh0SWRlbnRpZmllciwgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKTsK
ICAgICB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRW5hYmxlZChib29sKTsK
LSAgICB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyU3RhdGUoY29uc3QgU3Ry
aW5nJiwgV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6Ok1vY2tTdGF0ZSk7Cisg
ICAgdm9pZCBzZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlclN0YXRlKGNvbnN0IFN0cmlu
ZyYsIFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0OjpTdGF0ZSk7CiAgICAgdm9p
ZCBtb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlckRpc21pc3NQb3B1cCgpOwogCiAgICAgdm9p
ZCBpbnZhbGlkYXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIubW0KaW5kZXggN2RiZDU4
OTQ3NTQwNWExNmViZGQwZmE5YmNmYTYyYzMzN2U3NDE1Mi4uNzM0NDM1Njc1YWI4MDliNTBlYzVl
ZjM4YWI5Zjc3Y2ExNDhiMzFmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5tbQpAQCAt
NjgsNyArNjgsNyBAQCB2b2lkIFdlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXI6OnNldE1vY2tN
ZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRW5hYmxlZChib29sCiAgICAgV2ViQ29yZTo6V2ViTWVk
aWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkKCkuc2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNr
ZXJFbmFibGVkKGVuYWJsZWQpOwogfQogCi12b2lkIFdlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNr
ZXI6OnNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyU3RhdGUoY29uc3QgU3RyaW5nJiBu
YW1lLCBXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6TW9ja1N0YXRlIHN0YXRl
KQordm9pZCBXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyOjpzZXRNb2NrTWVkaWFQbGF5YmFj
a1RhcmdldFBpY2tlclN0YXRlKGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6TWVkaWFQbGF5
YmFja1RhcmdldENvbnRleHQ6OlN0YXRlIHN0YXRlKQogewogICAgIFdlYkNvcmU6OldlYk1lZGlh
U2Vzc2lvbk1hbmFnZXI6OnNoYXJlZCgpLnNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2Vy
U3RhdGUobmFtZSwgc3RhdGUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJWaWV3Lm1tCmluZGV4IDQ5MmFmNjAxY2Y3YWM0ZGY0NjQ1MGIwOGFhYTVjMzIwZWEyZTZlNzQu
LjViMGVlOGEzYWM4YzMzM2I2ZWUzNDRjZGQ5YzNiNTU3NjVjMjZmZjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTkyMzIsNyArOTIzMiw3IEBAIC0g
KHZvaWQpX3NldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRW5hYmxlZDooYm9vbCllbmFi
bGVkCiAgICAgW3NlbGYgX2RldmljZVBpY2tlcl0tPnNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0
UGlja2VyRW5hYmxlZChlbmFibGVkKTsKIH0KIAotLSAodm9pZClfc2V0TW9ja01lZGlhUGxheWJh
Y2tUYXJnZXRQaWNrZXJOYW1lOihOU1N0cmluZyAqKW5hbWUgc3RhdGU6KFdlYkNvcmU6Ok1lZGlh
UGxheWJhY2tUYXJnZXRDb250ZXh0OjpNb2NrU3RhdGUpc3RhdGUKKy0gKHZvaWQpX3NldE1vY2tN
ZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTmFtZTooTlNTdHJpbmcgKiluYW1lIHN0YXRlOihXZWJD
b3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6U3RhdGUpc3RhdGUKIHsKICAgICBbc2Vs
ZiBfZGV2aWNlUGlja2VyXS0+c2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJTdGF0ZShu
YW1lLCBzdGF0ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYlZpZXdJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJWaWV3SW50ZXJuYWwuaAppbmRleCAwNGI4YzM2OGNjYWY4NTI0ZDA4NTkzNzJkNjA1OGY0OGYx
N2E2ZjJiLi4zYWUwZDNhYTI2MmQ5NTIzMzBjMWM4MmMzMjU1MGQ5YTIxYTUwMTRmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0ludGVybmFsLmgKQEAg
LTMyNyw3ICszMjcsNyBAQCBXZWJMYXlvdXRNaWxlc3RvbmVzIGtpdExheW91dE1pbGVzdG9uZXMo
T3B0aW9uU2V0PFdlYkNvcmU6OkxheW91dE1pbGVzdG9uZT4pOwogLSAodm9pZClfc2hvd1BsYXli
YWNrVGFyZ2V0UGlja2VyOihXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVu
dGlmaWVyKWNvbnRleHRJZCBsb2NhdGlvbjooY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKWxvY2F0
aW9uIGhhc1ZpZGVvOihCT09MKWhhc1ZpZGVvOwogLSAodm9pZClfcGxheWJhY2tUYXJnZXRQaWNr
ZXJDbGllbnRTdGF0ZURpZENoYW5nZTooV2ViQ29yZTo6UGxheWJhY2tUYXJnZXRDbGllbnRDb250
ZXh0SWRlbnRpZmllciljb250ZXh0SWQgc3RhdGU6KFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1l
ZGlhU3RhdGVGbGFncylzdGF0ZTsKIC0gKHZvaWQpX3NldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0
UGlja2VyRW5hYmxlZDooYm9vbCllbmFibGVkOwotLSAodm9pZClfc2V0TW9ja01lZGlhUGxheWJh
Y2tUYXJnZXRQaWNrZXJOYW1lOihOU1N0cmluZyAqKW5hbWUgc3RhdGU6KFdlYkNvcmU6Ok1lZGlh
UGxheWJhY2tUYXJnZXRDb250ZXh0OjpNb2NrU3RhdGUpc3RhdGU7CistICh2b2lkKV9zZXRNb2Nr
TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck5hbWU6KE5TU3RyaW5nICopbmFtZSBzdGF0ZTooV2Vi
Q29yZTo6TWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6OlN0YXRlKXN0YXRlOwogLSAodm9pZClf
bW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJEaXNtaXNzUG9wdXA7CiAjZW5kaWYKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>