<?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>134348</bug_id>
          
          <creation_ts>2014-06-26 09:52:00 -0700</creation_ts>
          <short_desc>Remove use of PlatformStrategies for Gamepad API</short_desc>
          <delta_ts>2014-06-26 15:37:41 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>134076</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>bunhere</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1018650</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-06-26 09:52:00 -0700</bug_when>
    <thetext>Remove use of PlatformStrategies for Gamepad API

Requested by Sam over in https://bugs.webkit.org/show_bug.cgi?id=134325</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1018712</commentid>
    <comment_count>1</comment_count>
      <attachid>233926</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-06-26 12:54:18 -0700</bug_when>
    <thetext>Created attachment 233926
Patch

Big patch, but largely a global replace</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1018769</commentid>
    <comment_count>2</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-06-26 15:37:41 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/170500</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233926</attachid>
            <date>2014-06-26 12:54:18 -0700</date>
            <delta_ts>2014-06-26 15:35:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>85747</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBmYjkzN2U5Li44NDUzMDZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjkg
QEAKKzIwMTQtMDYtMjYgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIFJlbW92ZSB1c2Ugb2YgUGxhdGZvcm1TdHJhdGVnaWVzIGZvciBHYW1lcGFkIEFQSS4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNDM0OAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0
cyAoTm90IHlldCBhIHRlc3RlZCBjb25maWcpCisKKyAgICAgICAgSW50cm9kdWNlIGEgdmlydHVh
bCBHYW1lcGFkUHJvdmlkZXIgd2l0aCBhIHByb2Nlc3MtZ2xvYmFsIHNoYXJlZCBwcm92aWRlci4K
KyAgICAgICAgVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgdGhlIEdhbWVwYWRQcm92aWRlciBk
b2VzIG5vdGhpbmcuCisgICAgICAgICogcGxhdGZvcm0vR2FtZXBhZFByb3ZpZGVyLmNwcDogUmVu
YW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkhJREdhbWVwYWRD
b250cm9sbGVyLmguCisgICAgICAgIChXZWJDb3JlOjpHYW1lcGFkUHJvdmlkZXI6OnNoYXJlZCk6
CisgICAgICAgIChXZWJDb3JlOjpHYW1lcGFkUHJvdmlkZXI6OnNldFNoYXJlZFByb3ZpZGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkdhbWVwYWRQcm92aWRlcjo6c3RhcnRNb25pdG9yaW5nR2FtZXBh
ZHMpOgorICAgICAgICAoV2ViQ29yZTo6R2FtZXBhZFByb3ZpZGVyOjpzdG9wTW9uaXRvcmluZ0dh
bWVwYWRzKToKKyAgICAgICAgKFdlYkNvcmU6OkdhbWVwYWRQcm92aWRlcjo6cGxhdGZvcm1HYW1l
cGFkcyk6CisgICAgICAgICogcGxhdGZvcm0vR2FtZXBhZFByb3ZpZGVyLmg6IFJlbmFtZWQgZnJv
bSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9HYW1lcGFkU3RyYXRlZ3kuaC4KKyAgICAgICAgKFdl
YkNvcmU6OkdhbWVwYWRQcm92aWRlcjo6fkdhbWVwYWRQcm92aWRlcik6CisKKyAgICAgICAgKiBw
bGF0Zm9ybS9HYW1lcGFkUHJvdmlkZXJDbGllbnQuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0dhbWVwYWRTdHJhdGVneUNsaWVudC5oLgorICAgICAgICAoV2ViQ29yZTo6
R2FtZXBhZFByb3ZpZGVyQ2xpZW50Ojp+R2FtZXBhZFByb3ZpZGVyQ2xpZW50KToKKworICAgICAg
ICBHYW1lcGFkTWFuYWdlciBpcyBub3cgYSBHYW1lcGFkUHJvdmlkZXJDbGllbnQ6CisgICAgICAg
ICogTW9kdWxlcy9nYW1lcGFkL0dhbWVwYWRNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkdhbWVwYWRNYW5hZ2VyOjpHYW1lcGFkTWFuYWdlcik6CisgICAgICAgIChXZWJDb3JlOjpHYW1l
cGFkTWFuYWdlcjo6cmVnaXN0ZXJOYXZpZ2F0b3IpOgorICAgICAgICAoV2ViQ29yZTo6R2FtZXBh
ZE1hbmFnZXI6OnVucmVnaXN0ZXJOYXZpZ2F0b3IpOgorICAgICAgICAqIE1vZHVsZXMvZ2FtZXBh
ZC9HYW1lcGFkTWFuYWdlci5oOgorCisgICAgICAgIFJlbW92ZSB0aGUgR2FtZXBhZFN0cmF0ZWd5
IGFsdG9nZXRoZXI6CisgICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1TdHJhdGVnaWVzLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVN0cmF0ZWdpZXM6OlBsYXRmb3JtU3RyYXRlZ2llcyk6
CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVN0cmF0ZWdpZXM6OmdhbWVwYWRTdHJhdGVneSk6
IERlbGV0ZWQuCisKKyAgICAgICAgQ2FsbCB0byB0aGUgc2hhcmVkIEdhbWVwYWRQcm92aWRlciBp
bnN0ZWFkIG9mIHRoZSBzdHJhdGVneToKKyAgICAgICAgKiBNb2R1bGVzL2dhbWVwYWQvTmF2aWdh
dG9yR2FtZXBhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0b3JHYW1lcGFkOjpnYW1l
cGFkcyk6CisgICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0b3JHYW1lcGFkOjpnYW1lcGFkc0JlY2Ft
ZVZpc2libGUpOgorICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdG9yR2FtZXBhZDo6Z2FtZXBhZENv
bm5lY3RlZCk6CisKKyAgICAgICAgSElER2FtZXBhZExpc3RlbmVyIGlzIG5vdyBhIHN1YmNsYXNz
IG9mIEdhbWVwYWRQcm92aWRlciB0aGF0IGltcGxlbWVudHMgdGhlIEhJRCBiYXNlZCBtYW5hZ2Vt
ZW50LgorICAgICAgICBMZWdhY3lXZWJLaXQgb24gTWFjIHdpbGwgaW5zdGFsbCB0aGUgc2hhcmVk
IEhJREdhbWVwYWRQcm92aWRlciBpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0IEdhbWVwYWRQcm92aWRl
cjoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvSElER2FtZXBhZFByb3ZpZGVyLmNwcDogUmVuYW1l
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9ISURHYW1lcGFkTGlzdGVuZXIuY3Bw
LgorICAgICAgICAoV2ViQ29yZTo6ZGV2aWNlTWF0Y2hpbmdEaWN0aW9uYXJ5KToKKyAgICAgICAg
KFdlYkNvcmU6OmRldmljZUFkZGVkQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6ZGV2aWNl
UmVtb3ZlZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OmRldmljZVZhbHVlc0NoYW5nZWRD
YWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpISURHYW1lcGFkUHJvdmlkZXI6OnNoYXJlZCk6
CisgICAgICAgIChXZWJDb3JlOjpISURHYW1lcGFkUHJvdmlkZXI6OkhJREdhbWVwYWRQcm92aWRl
cik6CisgICAgICAgIChXZWJDb3JlOjpISURHYW1lcGFkUHJvdmlkZXI6OmluZGV4Rm9yTmV3bHlD
b25uZWN0ZWREZXZpY2UpOgorICAgICAgICAoV2ViQ29yZTo6SElER2FtZXBhZFByb3ZpZGVyOjpz
dGFydE1vbml0b3JpbmdHYW1lcGFkcyk6CisgICAgICAgIChXZWJDb3JlOjpISURHYW1lcGFkUHJv
dmlkZXI6OnN0b3BNb25pdG9yaW5nR2FtZXBhZHMpOgorICAgICAgICAoV2ViQ29yZTo6SElER2Ft
ZXBhZFByb3ZpZGVyOjpkZXZpY2VBZGRlZCk6CisgICAgICAgIChXZWJDb3JlOjpISURHYW1lcGFk
UHJvdmlkZXI6OmRldmljZVJlbW92ZWQpOgorICAgICAgICAoV2ViQ29yZTo6SElER2FtZXBhZFBy
b3ZpZGVyOjp2YWx1ZXNDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkhJREdhbWVwYWRQcm92
aWRlcjo6cmVtb3ZlR2FtZXBhZEZvckRldmljZSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL0hJ
REdhbWVwYWRQcm92aWRlci5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL0hJREdhbWVwYWRMaXN0ZW5lci5oLgorICAgICAgICAoV2ViQ29yZTo6SElER2FtZXBhZFBy
b3ZpZGVyOjpwbGF0Zm9ybUdhbWVwYWRzKToKKyAgICAgICAgKFdlYkNvcmU6OkhJREdhbWVwYWRQ
cm92aWRlcjo6c2V0U2hvdWxkRGlzcGF0Y2hDYWxsYmFja3MpOgorCisgICAgICAgICogV2ViQ29y
ZS5leHAuaW46CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
CisgICAgICAgICogcGxhdGZvcm0vbWFjL0hJREdhbWVwYWQuaDogRml4IGluY29ycmVjdCBjb21t
ZW50CisKIDIwMTQtMDYtMjYgIFNoaXZha3VtYXIgSk0gIDxzaGl2YS5qbUBzYW1zdW5nLmNvbT4K
IAogICAgICAgICBbRUZMXVtXSzJdIEZpeCBEZWJ1ZyBCdWlsZCBFcnJvciBpbiBXZWJjb3JlIG1v
ZHVsZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFk
TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvR2FtZXBhZE1hbmFn
ZXIuY3BwCmluZGV4IDFhZDAxOTMuLmNlMGMyN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9nYW1lcGFkL0dhbWVwYWRNYW5hZ2VyLmNwcApAQCAtMjgsMTAgKzI4LDkgQEAKICNp
ZiBFTkFCTEUoR0FNRVBBRCkKIAogI2luY2x1ZGUgIkdhbWVwYWQuaCIKLSNpbmNsdWRlICJHYW1l
cGFkU3RyYXRlZ3kuaCIKKyNpbmNsdWRlICJHYW1lcGFkUHJvdmlkZXIuaCIKICNpbmNsdWRlICJO
YXZpZ2F0b3JHYW1lcGFkLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1HYW1lcGFkLmgiCi0jaW5jbHVk
ZSAiUGxhdGZvcm1TdHJhdGVnaWVzLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDMs
NyArNDIsNyBAQCBHYW1lcGFkTWFuYWdlciYgR2FtZXBhZE1hbmFnZXI6OnNoYXJlZCgpCiAKIEdh
bWVwYWRNYW5hZ2VyOjpHYW1lcGFkTWFuYWdlcigpCiB7Ci0gICAgcGxhdGZvcm1TdHJhdGVnaWVz
KCktPmdhbWVwYWRTdHJhdGVneSgpLT5zdG9wTW9uaXRvcmluZ0dhbWVwYWRzKHRoaXMpOworICAg
IEdhbWVwYWRQcm92aWRlcjo6c2hhcmVkKCkuc3RvcE1vbml0b3JpbmdHYW1lcGFkcyh0aGlzKTsK
IH0KIAogdm9pZCBHYW1lcGFkTWFuYWdlcjo6cGxhdGZvcm1HYW1lcGFkQ29ubmVjdGVkKHVuc2ln
bmVkIGluZGV4KQpAQCAtNzEsNyArNzAsNyBAQCB2b2lkIEdhbWVwYWRNYW5hZ2VyOjpyZWdpc3Rl
ck5hdmlnYXRvcihOYXZpZ2F0b3JHYW1lcGFkKiBuYXZpZ2F0b3IpCiAgICAgLy8gY29ubmVjdGVk
L2Rpc2Nvbm5lY3RlZCBldmVudCBsaXN0ZW5lcnMuCiAgICAgLy8gVGhvc2UgZXZlbnQgbGlzdGVu
ZXJzIHdpbGwgYWxzbyBuZWVkIHRvIHJlZ2lzdGVyIHdpdGggdGhlIEdhbWVwYWRNYW5hZ2VyLgog
ICAgIGlmIChtX25hdmlnYXRvcnMuc2l6ZSgpID09IDEpCi0gICAgICAgIHBsYXRmb3JtU3RyYXRl
Z2llcygpLT5nYW1lcGFkU3RyYXRlZ3koKS0+c3RhcnRNb25pdG9yaW5nR2FtZXBhZHModGhpcyk7
CisgICAgICAgIEdhbWVwYWRQcm92aWRlcjo6c2hhcmVkKCkuc3RhcnRNb25pdG9yaW5nR2FtZXBh
ZHModGhpcyk7CiB9CiAKIHZvaWQgR2FtZXBhZE1hbmFnZXI6OnVucmVnaXN0ZXJOYXZpZ2F0b3Io
TmF2aWdhdG9yR2FtZXBhZCogbmF2aWdhdG9yKQpAQCAtODMsNyArODIsNyBAQCB2b2lkIEdhbWVw
YWRNYW5hZ2VyOjp1bnJlZ2lzdGVyTmF2aWdhdG9yKE5hdmlnYXRvckdhbWVwYWQqIG5hdmlnYXRv
cikKICAgICAvLyBjb25uZWN0ZWQvZGlzY29ubmVjdGVkIGV2ZW50IGxpc3RlbmVycy4KICAgICAv
LyBUaG9zZSBldmVudCBsaXN0ZW5lcnMgd2lsbCBhbHNvIG5lZWQgdG8gcmVnaXN0ZXIgd2l0aCB0
aGUgR2FtZXBhZE1hbmFnZXIuCiAgICAgaWYgKG1fbmF2aWdhdG9ycy5pc0VtcHR5KCkpCi0gICAg
ICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5nYW1lcGFkU3RyYXRlZ3koKS0+c3RvcE1vbml0b3Jp
bmdHYW1lcGFkcyh0aGlzKTsKKyAgICAgICAgR2FtZXBhZFByb3ZpZGVyOjpzaGFyZWQoKS5zdG9w
TW9uaXRvcmluZ0dhbWVwYWRzKHRoaXMpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvR2FtZXBhZE1hbmFnZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkTWFuYWdlci5oCmluZGV4
IDdmOGM3OWUuLmJiZmM3YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2Ft
ZXBhZC9HYW1lcGFkTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2FtZXBh
ZC9HYW1lcGFkTWFuYWdlci5oCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoR0FNRVBB
RCkKIAotI2luY2x1ZGUgIkdhbWVwYWRTdHJhdGVneUNsaWVudC5oIgorI2luY2x1ZGUgIkdhbWVw
YWRQcm92aWRlckNsaWVudC5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8
d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgpAQCAtMzgsNyAr
MzgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBHYW1lcGFkOwogY2xhc3MgTmF2aWdh
dG9yR2FtZXBhZDsKIAotY2xhc3MgR2FtZXBhZE1hbmFnZXIgOiBwdWJsaWMgR2FtZXBhZFN0cmF0
ZWd5Q2xpZW50IHsKK2NsYXNzIEdhbWVwYWRNYW5hZ2VyIDogcHVibGljIEdhbWVwYWRQcm92aWRl
ckNsaWVudCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoR2FtZXBhZE1hbmFnZXIpOwogICAg
IGZyaWVuZCBjbGFzcyBOZXZlckRlc3Ryb3llZDxHYW1lcGFkTWFuYWdlcj47CiBwdWJsaWM6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvTmF2aWdhdG9yR2FtZXBh
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvTmF2aWdhdG9yR2FtZXBhZC5j
cHAKaW5kZXggMmJmNmNjYS4uMzViMDMyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9nYW1lcGFkL05hdmlnYXRvckdhbWVwYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZ2FtZXBhZC9OYXZpZ2F0b3JHYW1lcGFkLmNwcApAQCAtMzIsMTAgKzMyLDkgQEAKICNp
bmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkdhbWVwYWQuaCIKICNpbmNsdWRlICJHYW1lcGFk
TWFuYWdlci5oIgotI2luY2x1ZGUgIkdhbWVwYWRTdHJhdGVneS5oIgorI2luY2x1ZGUgIkdhbWVw
YWRQcm92aWRlci5oIgogI2luY2x1ZGUgIk5hdmlnYXRvci5oIgogI2luY2x1ZGUgIlBsYXRmb3Jt
R2FtZXBhZC5oIgotI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgogI2luY2x1ZGUgPHd0
Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKQEAgLTgzLDcg
KzgyLDcgQEAgY29uc3QgVmVjdG9yPFJlZlB0cjxHYW1lcGFkPj4mIE5hdmlnYXRvckdhbWVwYWQ6
OmdhbWVwYWRzKCkKICAgICBpZiAobV9nYW1lcGFkcy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVy
biBtX2dhbWVwYWRzOwogCi0gICAgY29uc3QgVmVjdG9yPFBsYXRmb3JtR2FtZXBhZCo+JiBwbGF0
Zm9ybUdhbWVwYWRzID0gcGxhdGZvcm1TdHJhdGVnaWVzKCktPmdhbWVwYWRTdHJhdGVneSgpLT5w
bGF0Zm9ybUdhbWVwYWRzKCk7CisgICAgY29uc3QgVmVjdG9yPFBsYXRmb3JtR2FtZXBhZCo+JiBw
bGF0Zm9ybUdhbWVwYWRzID0gR2FtZXBhZFByb3ZpZGVyOjpzaGFyZWQoKS5wbGF0Zm9ybUdhbWVw
YWRzKCk7CiAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGxhdGZvcm1HYW1lcGFkcy5z
aXplKCk7ICsraSkgewogICAgICAgICBpZiAoIXBsYXRmb3JtR2FtZXBhZHNbaV0pIHsKQEAgLTEw
MCw3ICs5OSw3IEBAIGNvbnN0IFZlY3RvcjxSZWZQdHI8R2FtZXBhZD4+JiBOYXZpZ2F0b3JHYW1l
cGFkOjpnYW1lcGFkcygpCiAKIHZvaWQgTmF2aWdhdG9yR2FtZXBhZDo6Z2FtZXBhZHNCZWNhbWVW
aXNpYmxlKCkKIHsKLSAgICBjb25zdCBWZWN0b3I8UGxhdGZvcm1HYW1lcGFkKj4mIHBsYXRmb3Jt
R2FtZXBhZHMgPSBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+Z2FtZXBhZFN0cmF0ZWd5KCktPnBsYXRm
b3JtR2FtZXBhZHMoKTsKKyAgICBjb25zdCBWZWN0b3I8UGxhdGZvcm1HYW1lcGFkKj4mIHBsYXRm
b3JtR2FtZXBhZHMgPSBHYW1lcGFkUHJvdmlkZXI6OnNoYXJlZCgpLnBsYXRmb3JtR2FtZXBhZHMo
KTsKICAgICBtX2dhbWVwYWRzLnJlc2l6ZShwbGF0Zm9ybUdhbWVwYWRzLnNpemUoKSk7CiAKICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGxhdGZvcm1HYW1lcGFkcy5zaXplKCk7ICsraSkg
ewpAQCAtMTIyLDcgKzEyMSw3IEBAIHZvaWQgTmF2aWdhdG9yR2FtZXBhZDo6Z2FtZXBhZENvbm5l
Y3RlZCh1bnNpZ25lZCBpbmRleCkKICAgICAvLyBUaGUgbmV3IGluZGV4IHNob3VsZCBhbHJlYWR5
IGZpdCBpbiB0aGUgZXhpc3RpbmcgYXJyYXksIG9yIHNob3VsZCBiZSBleGFjdGx5IG9uZSBwYXN0
LXRoZS1lbmQgb2YgdGhlIGV4aXN0aW5nIGFycmF5LgogICAgIEFTU0VSVChpbmRleCA8PSBtX2dh
bWVwYWRzLnNpemUoKSk7CiAKLSAgICBjb25zdCBWZWN0b3I8UGxhdGZvcm1HYW1lcGFkKj4mIHBs
YXRmb3JtR2FtZXBhZHMgPSBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+Z2FtZXBhZFN0cmF0ZWd5KCkt
PnBsYXRmb3JtR2FtZXBhZHMoKTsKKyAgICBjb25zdCBWZWN0b3I8UGxhdGZvcm1HYW1lcGFkKj4m
IHBsYXRmb3JtR2FtZXBhZHMgPSBHYW1lcGFkUHJvdmlkZXI6OnNoYXJlZCgpLnBsYXRmb3JtR2Ft
ZXBhZHMoKTsKICAgICBBU1NFUlQoaW5kZXggPCBwbGF0Zm9ybUdhbWVwYWRzLnNpemUoKSk7CiAg
ICAgQVNTRVJUKHBsYXRmb3JtR2FtZXBhZHNbaW5kZXhdKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpp
bmRleCBhYWY3YTU5Li5mN2MzYWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMzQ0MSw1ICsz
NDQxLDcgQEAgX19aTks3V2ViQ29yZTIwUmVzb3VyY2VSZXNwb25zZUJhc2UxOHJlc291cmNlTG9h
ZFRpbWluZ0V2CiAjZW5kaWYKIAogI2lmIEVOQUJMRShHQU1FUEFEKQotX19aTjdXZWJDb3JlMThI
SURHYW1lcGFkTGlzdGVuZXI2c2hhcmVkRXYKK19fWk43V2ViQ29yZTE1R2FtZXBhZFByb3ZpZGVy
MTdzZXRTaGFyZWRQcm92aWRlckVSUzBfCitfX1pON1dlYkNvcmUxNUdhbWVwYWRQcm92aWRlcjZz
aGFyZWRFdgorX19aTjdXZWJDb3JlMThISURHYW1lcGFkUHJvdmlkZXI2c2hhcmVkRXYKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDRlMTVkNzEuLjg4MWU4NjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xODM1LDcgKzE4MzUsNiBAQAogCQk1MTJE
RDhGRDBEOTFFNkFGMDAwRjg5RUUgLyogQXJjaGl2ZUZhY3RvcnkuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMkREOEYzMEQ5MUU2QUYwMDBGODlFRSAv
KiBBcmNoaXZlRmFjdG9yeS5oICovOyB9OwogCQk1MTJFQTlCQzE4MUYyRUUwMDAxRDAxRTAgLyog
SURCUGVuZGluZ09wZW5DYWxsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MTJFQTlCQjE4MUYyRUUwMDAxRDAxRTAgLyogSURCUGVuZGluZ09wZW5DYWxs
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTEy
RUE5QkUxODIwMjg1NzAwMUQwMUUwIC8qIElEQk9wZXJhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyRUE5QkQxODIwMjg1NzAwMUQwMUUwIC8q
IElEQk9wZXJhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07Ci0JCTUxMzFCNTEyMTk1MzgxMjAwMDg1Qzg5NiAvKiBHYW1lcGFkU3RyYXRlZ3kuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMzFCNTBGMTk1
Mzc5QzMwMDg1Qzg5NiAvKiBHYW1lcGFkU3RyYXRlZ3kuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MTMyN0Q2MDExQTMzQTJCMDA0RjlENjUgLyog
U2lua0RvY3VtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MTMyN0Q1RTExQTMzQTJCMDA0RjlENjUgLyogU2lua0RvY3VtZW50LmggKi87IH07CiAJ
CTUxMzI3RDYxMTFBMzNBMkIwMDRGOUQ2NSAvKiBTaW5rRG9jdW1lbnQuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEzMjdENUYxMUEzM0EyQjAwNEY5
RDY1IC8qIFNpbmtEb2N1bWVudC5jcHAgKi87IH07CiAJCTUxM0YxNDUzMEFCNjM0QzQwMDA5NERE
RiAvKiBJY29uTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxM0YxNDUxMEFCNjM0QzQwMDA5NERERiAvKiBJY29uTG9hZGVyLmNwcCAqLzsg
fTsKQEAgLTE5MDYsNiArMTkwNSwxMSBAQAogCQk1MTc0RTIwQTEwQTFGNDRGMDBGOTVFNkYgLyog
UG9wU3RhdGVFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTE3NEUyMDgxMEExRjQ0RjAwRjk1RTZGIC8qIFBvcFN0YXRlRXZlbnQuaCAqLzsgfTsK
IAkJNTE3NzFDOEUxODJEQjRCNzAwOEU3ODFFIC8qIElEQkRhdGFiYXNlQmFja2VuZC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTc3MUM4QzE4MkRC
NEI3MDA4RTc4MUUgLyogSURCRGF0YWJhc2VCYWNrZW5kLmNwcCAqLzsgfTsKIAkJNTE3NzFDOEYx
ODJEQjRCNzAwOEU3ODFFIC8qIElEQkRhdGFiYXNlQmFja2VuZC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3NzFDOEQxODJEQjRCNzAwOEU3ODFFIC8q
IElEQkRhdGFiYXNlQmFja2VuZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCTUxNzlDRTI0MTk1QzgxNDIwMDE5QzE5OCAvKiBHYW1lcGFkUHJvdmlk
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNzlD
RTIzMTk1QzgxNDIwMDE5QzE5OCAvKiBHYW1lcGFkUHJvdmlkZXIuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1MTc5Q0UyNjE5NUM4MjFEMDAxOUMx
OTggLyogR2FtZXBhZFByb3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxNzlDRTI1MTk1QzgyMUQwMDE5QzE5OCAvKiBHYW1lcGFkUHJvdmlk
ZXIuY3BwICovOyB9OworCQk1MTc5Q0UyQTE5NUM5MTg2MDAxOUMxOTggLyogR2FtZXBhZFByb3Zp
ZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MTc5Q0UyOTE5NUM5MTg2MDAxOUMxOTggLyogR2FtZXBhZFByb3ZpZGVyQ2xpZW50LmggKi87
IH07CisJCTUxNzlDRTM2MTk1Q0FDN0UwMDE5QzE5OCAvKiBISURHYW1lcGFkUHJvdmlkZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3OUNFMzQx
OTVDQUM3RTAwMTlDMTk4IC8qIEhJREdhbWVwYWRQcm92aWRlci5jcHAgKi87IH07CisJCTUxNzlD
RTM3MTk1Q0FDN0UwMDE5QzE5OCAvKiBISURHYW1lcGFkUHJvdmlkZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNzlDRTM1MTk1Q0FDN0UwMDE5QzE5
OCAvKiBISURHYW1lcGFkUHJvdmlkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk1MTdGQkExRTE1MUFCMTdDMDBCNTc5NTkgLyogRE9NV2luZG93
RXh0ZW5zaW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUxN0ZCQTE3MTUxQUE3MUIwMEI1Nzk1OSAvKiBET01XaW5kb3dFeHRlbnNpb24uY3BwICov
OyB9OwogCQk1MTg4OUYwQjE1NTRBRjNEMDA0NDI3RjcgLyogUERGRG9jdW1lbnQuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE4ODlGMDkxNTU0QUYz
RDAwNDQyN0Y3IC8qIFBERkRvY3VtZW50LmNwcCAqLzsgfTsKIAkJNTE4ODlGMEMxNTU0QUYzRDAw
NDQyN0Y3IC8qIFBERkRvY3VtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MTg4OUYwQTE1NTRBRjNEMDA0NDI3RjcgLyogUERGRG9jdW1lbnQuaCAq
LzsgfTsKQEAgLTE5MjIsMTMgKzE5MjYsMTAgQEAKIAkJNTFBMDUyNTYxMDU4ODc0MDAwQ0M5RTk1
IC8qIFByb3RlY3Rpb25TcGFjZUhhc2guaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxQTA1MjU1MTA1ODg3NDAwMENDOUU5NSAvKiBQcm90ZWN0aW9uU3Bh
Y2VIYXNoLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJNTFBNEJCMEExOTU0RDYxNjAwRkE1QzJFIC8qIEdhbWVwYWQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFBNEJCMDcxOTU0RDYxNjAwRkE1QzJF
IC8qIEdhbWVwYWQuY3BwICovOyB9OwogCQk1MUE0QkIxMDE5NTRENjI3MDBGQTVDMkUgLyogTmF2
aWdhdG9yR2FtZXBhZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MUE0QkIwRDE5NTRENjI3MDBGQTVDMkUgLyogTmF2aWdhdG9yR2FtZXBhZC5jcHAg
Ki87IH07Ci0JCTUxQTlEOUU2MTk1QjhGNDcwMDFCMkI1QyAvKiBHYW1lcGFkU3RyYXRlZ3lDbGll
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQTlE
OUU1MTk1QjhGNDcwMDFCMkI1QyAvKiBHYW1lcGFkU3RyYXRlZ3lDbGllbnQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MUE5RDlFOTE5NUI5MzFG
MDAxQjJCNUMgLyogR2FtZXBhZE1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTFBOUQ5RTcxOTVCOTMxRjAwMUIyQjVDIC8qIEdhbWVwYWRN
YW5hZ2VyLmNwcCAqLzsgfTsKIAkJNTFBOUQ5RUExOTVCOTMxRjAwMUIyQjVDIC8qIEdhbWVwYWRN
YW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MUE5RDlFODE5NUI5MzFGMDAxQjJCNUMgLyogR2FtZXBhZE1hbmFnZXIuaCAqLzsgfTsKIAkJNTFB
OUQ5RjMxOTVCOTUwMzAwMUIyQjVDIC8qIEhJREdhbWVwYWQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFBOUQ5RUYxOTVCOTUwMzAwMUIyQjVDIC8q
IEhJREdhbWVwYWQuY3BwICovOyB9OwogCQk1MUE5RDlGNDE5NUI5NTAzMDAxQjJCNUMgLyogSElE
R2FtZXBhZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTFBOUQ5RjAxOTVCOTUwMzAwMUIyQjVDIC8qIEhJREdhbWVwYWQuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk1MUE5RDlGNTE5NUI5NTAzMDAxQjJC
NUMgLyogSElER2FtZXBhZExpc3RlbmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxQTlEOUYxMTk1Qjk1MDMwMDFCMkI1QyAvKiBISURHYW1lcGFk
TGlzdGVuZXIuY3BwICovOyB9OwotCQk1MUE5RDlGNjE5NUI5NTAzMDAxQjJCNUMgLyogSElER2Ft
ZXBhZExpc3RlbmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MUE5RDlGMjE5NUI5NTAzMDAxQjJCNUMgLyogSElER2FtZXBhZExpc3RlbmVyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTFBQTNGNkYw
QkQ1QUE5RTAwODkyOTcxIC8qIFJlc291cmNlTG9hZGVyTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFBQTNGNkUwQkQ1QUE5RTAwODkyOTcxIC8q
IFJlc291cmNlTG9hZGVyTWFjLm1tICovOyB9OwogCQk1MUFCQUUxQjEwM0MxOEZGMDA4QzUyNjAg
LyogU29ja2V0U3RyZWFtRXJyb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUxQUJBRTFBMTAzQzE4RkYwMDhDNTI2MCAvKiBTb2NrZXRTdHJlYW1FcnJv
ci5oICovOyB9OwogCQk1MUFCQUUxRTEwM0MxOTEzMDA4QzUyNjAgLyogU29ja2V0U3RyZWFtSGFu
ZGxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUFC
QUUxQzEwM0MxOTEzMDA4QzUyNjAgLyogU29ja2V0U3RyZWFtSGFuZGxlLmggKi87IH07CkBAIC04
OTA2LDcgKzg5MDcsNiBAQAogCQk1MTJERDhGMzBEOTFFNkFGMDAwRjg5RUUgLyogQXJjaGl2ZUZh
Y3RvcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXJjaGl2ZUZhY3Rvcnku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEyRUE5QkIxODFGMkVFMDAwMUQwMUUw
IC8qIElEQlBlbmRpbmdPcGVuQ2FsbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBJREJQZW5kaW5nT3BlbkNhbGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEy
RUE5QkQxODIwMjg1NzAwMUQwMUUwIC8qIElEQk9wZXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBJREJPcGVyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJNTEzMUI1MEYxOTUzNzlDMzAwODVDODk2IC8qIEdhbWVwYWRTdHJhdGVneS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBHYW1lcGFkU3RyYXRlZ3kuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTEzMjdENUUxMUEzM0EyQjAwNEY5RDY1IC8qIFNpbmtEb2N1bWVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTaW5rRG9jdW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTEzMjdENUYxMUEzM0EyQjAwNEY5RDY1IC8qIFNpbmtEb2N1bWVudC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTaW5rRG9jdW1lbnQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTNGMTQ1MTBBQjYzNEM0MDAwOTREREYgLyog
SWNvbkxvYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSWNv
bkxvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04OTgxLDYgKzg5ODEs
MTEgQEAKIAkJNTE3NEUyMEIxMEExRjQ5QTAwRjk1RTZGIC8qIFBvcFN0YXRlRXZlbnQuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IFBvcFN0YXRlRXZlbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1MTc3MUM4QzE4MkRCNEI3MDA4RTc4MUUgLyogSURCRGF0YWJhc2VCYWNr
ZW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElEQkRhdGFiYXNl
QmFja2VuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNzcxQzhEMTgyREI0
QjcwMDhFNzgxRSAvKiBJREJEYXRhYmFzZUJhY2tlbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSURCRGF0YWJhc2VCYWNrZW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTUxNzlDRTIzMTk1QzgxNDIwMDE5QzE5OCAvKiBHYW1lcGFkUHJvdmlkZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2FtZXBhZFByb3ZpZGVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxNzlDRTI1MTk1QzgyMUQwMDE5QzE5OCAvKiBHYW1lcGFk
UHJvdmlkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR2FtZXBh
ZFByb3ZpZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTE3OUNFMjkxOTVD
OTE4NjAwMTlDMTk4IC8qIEdhbWVwYWRQcm92aWRlckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBHYW1lcGFkUHJvdmlkZXJDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNTE3OUNFMzQxOTVDQUM3RTAwMTlDMTk4IC8qIEhJREdhbWVwYWRQcm92
aWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBISURHYW1lcGFk
UHJvdmlkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTc5Q0UzNTE5NUNB
QzdFMDAxOUMxOTggLyogSElER2FtZXBhZFByb3ZpZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEhJREdhbWVwYWRQcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1MTdGQkExNzE1MUFBNzFCMDBCNTc5NTkgLyogRE9NV2luZG93RXh0ZW5zaW9uLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERPTVdpbmRvd0V4dGVuc2lv
bi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxN0ZCQTE4MTUxQUE3MUIwMEI1
Nzk1OSAvKiBET01XaW5kb3dFeHRlbnNpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRE9NV2luZG93RXh0ZW5zaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTUxODg5RjA5MTU1NEFGM0QwMDQ0MjdGNyAvKiBQREZEb2N1bWVudC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQREZEb2N1bWVudC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC05MDA2LDEzICs5MDExLDEwIEBACiAJCTUxQTRCQjBEMTk1NEQ2Mjcw
MEZBNUMyRSAvKiBOYXZpZ2F0b3JHYW1lcGFkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IE5hdmlnYXRvckdhbWVwYWQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1MUE0QkIwRTE5NTRENjI3MDBGQTVDMkUgLyogTmF2aWdhdG9yR2FtZXBhZC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOYXZpZ2F0b3JHYW1lcGFkLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQTRCQjBGMTk1NEQ2MjcwMEZBNUMyRSAvKiBOYXZp
Z2F0b3JHYW1lcGFkLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBOYXZpZ2F0b3JHYW1lcGFk
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTFBOUQ5RTUxOTVCOEY0NzAwMUIy
QjVDIC8qIEdhbWVwYWRTdHJhdGVneUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBHYW1lcGFkU3RyYXRlZ3lDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTFBOUQ5RTcxOTVCOTMxRjAwMUIyQjVDIC8qIEdhbWVwYWRNYW5hZ2VyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdhbWVwYWRNYW5hZ2VyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFBOUQ5RTgxOTVCOTMxRjAwMUIyQjVDIC8qIEdh
bWVwYWRNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdhbWVwYWRN
YW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQTlEOUVGMTk1Qjk1MDMw
MDFCMkI1QyAvKiBISURHYW1lcGFkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEhJREdhbWVwYWQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUE5
RDlGMDE5NUI5NTAzMDAxQjJCNUMgLyogSElER2FtZXBhZC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBISURHYW1lcGFkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTUxQTlEOUYxMTk1Qjk1MDMwMDFCMkI1QyAvKiBISURHYW1lcGFkTGlzdGVuZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSElER2FtZXBhZExpc3RlbmVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTFBOUQ5RjIxOTVCOTUwMzAwMUIyQjVDIC8q
IEhJREdhbWVwYWRMaXN0ZW5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBI
SURHYW1lcGFkTGlzdGVuZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFBQTNG
NkUwQkQ1QUE5RTAwODkyOTcxIC8qIFJlc291cmNlTG9hZGVyTWFjLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUmVzb3VyY2VMb2FkZXJNYWMubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQUJBRTFBMTAzQzE4RkYwMDhDNTI2MCAvKiBTb2NrZXRT
dHJlYW1FcnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTb2NrZXRTdHJl
YW1FcnJvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUFCQUUxQzEwM0MxOTEz
MDA4QzUyNjAgLyogU29ja2V0U3RyZWFtSGFuZGxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNvY2tldFN0cmVhbUhhbmRsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTYzODcsOCArMTYzODksOCBAQAogCQkJCTUxNEIzRjc1MEM3MjIwNTUwMDA1MzBERiAv
KiBGaWxlU3lzdGVtTWFjLm1tICovLAogCQkJCTUxQTlEOUVGMTk1Qjk1MDMwMDFCMkI1QyAvKiBI
SURHYW1lcGFkLmNwcCAqLywKIAkJCQk1MUE5RDlGMDE5NUI5NTAzMDAxQjJCNUMgLyogSElER2Ft
ZXBhZC5oICovLAotCQkJCTUxQTlEOUYxMTk1Qjk1MDMwMDFCMkI1QyAvKiBISURHYW1lcGFkTGlz
dGVuZXIuY3BwICovLAotCQkJCTUxQTlEOUYyMTk1Qjk1MDMwMDFCMkI1QyAvKiBISURHYW1lcGFk
TGlzdGVuZXIuaCAqLywKKwkJCQk1MTc5Q0UzNDE5NUNBQzdFMDAxOUMxOTggLyogSElER2FtZXBh
ZFByb3ZpZGVyLmNwcCAqLywKKwkJCQk1MTc5Q0UzNTE5NUNBQzdFMDAxOUMxOTggLyogSElER2Ft
ZXBhZFByb3ZpZGVyLmggKi8sCiAJCQkJOTM1QzQ3NkUwOUFDNEQ3MzAwQTZBQUI0IC8qIEtleUV2
ZW50TWFjLm1tICovLAogCQkJCTUyMUQ0NkY1MTFBRUM5ODEwMDUxNDYxMyAvKiBLaWxsUmluZ01h
Yy5tbSAqLywKIAkJCQk5MzUyMDg0NDA5QkQ0M0I5MDBGMjAzOEQgLyogTGFuZ3VhZ2UubW0gKi8s
CkBAIC0yMTI5NCw4ICsyMTI5Niw5IEBACiAJCQkJQzU3RkVERTAxMjEyRUU5QzAwOTdCRTY1IC8q
IEZpbGVTeXN0ZW0uY3BwICovLAogCQkJCTUxNEIzRjcyMEM3MjIwNDcwMDA1MzBERiAvKiBGaWxl
U3lzdGVtLmggKi8sCiAJCQkJQkMwNzNCQTkwQzM5OUIxRjAwMEY1OTc5IC8qIEZsb2F0Q29udmVy
c2lvbi5oICovLAotCQkJCTUxMzFCNTBGMTk1Mzc5QzMwMDg1Qzg5NiAvKiBHYW1lcGFkU3RyYXRl
Z3kuaCAqLywKLQkJCQk1MUE5RDlFNTE5NUI4RjQ3MDAxQjJCNUMgLyogR2FtZXBhZFN0cmF0ZWd5
Q2xpZW50LmggKi8sCisJCQkJNTE3OUNFMjUxOTVDODIxRDAwMTlDMTk4IC8qIEdhbWVwYWRQcm92
aWRlci5jcHAgKi8sCisJCQkJNTE3OUNFMjMxOTVDODE0MjAwMTlDMTk4IC8qIEdhbWVwYWRQcm92
aWRlci5oICovLAorCQkJCTUxNzlDRTI5MTk1QzkxODYwMDE5QzE5OCAvKiBHYW1lcGFkUHJvdmlk
ZXJDbGllbnQuaCAqLywKIAkJCQlBODc0OEJERjEyQ0JGMkRDMDAxRkJBNDEgLyogSGFzaFRvb2xz
LmggKi8sCiAJCQkJQkMzQkMyOUIwRTkxQUIwRjAwODM1NTg4IC8qIEhvc3RXaW5kb3cuaCAqLywK
IAkJCQk4NjJGMTI5RjE4QzFEQ0U0MDA1QzU0QUYgLyogSHlzdGVyZXNpc0FjdGl2aXR5LmggKi8s
CkBAIC0yMzY0MSw2ICsyMzY0NCw3IEBACiAJCQkJNjJDRDMyNUExMTU3RTU3QzAwNjNCMEE3IC8q
IEN1c3RvbUV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOENCNDEzRTBFODYzM0ZEMDAzMkM0
RjAgLyogRGFzaEFycmF5LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODBFNkQwQjBBMTk4OUNBMDA3
RkI4QzUgLyogRGFzaGJvYXJkUmVnaW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTc5Q0UyQTE5
NUM5MTg2MDAxOUMxOTggLyogR2FtZXBhZFByb3ZpZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQk5N0JDNkEyMTE1MDVGMDgxMDAxQjc0QUMgLyogRGF0YWJhc2UuaCBpbiBIZWFkZXJzICov
LAogCQkJCTk3QkM2QTI0MTUwNUYwODEwMDFCNzRBQyAvKiBEYXRhYmFzZUF1dGhvcml6ZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCUZFMTZDRkQ0MTY5RDFERUQwMEQzQTBDNyAvKiBEYXRhYmFzZUJh
Y2tlbmQuaCBpbiBIZWFkZXJzICovLApAQCAtMjM5MTgsNyArMjM5MjIsNiBAQAogCQkJCTg1QkE0
RDE1MEFBNjg4NjgwMDg4MDUyRCAvKiBET01IVE1MT0xpc3RFbGVtZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQk4NUU3MTFCRTBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTE9MaXN0RWxlbWVudElu
dGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NUYzMkFFRTBBQTYzQjg3MDBGRjMxODQgLyog
RE9NSFRNTE9wdEdyb3VwRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTEzMUI1MTIxOTUz
ODEyMDAwODVDODk2IC8qIEdhbWVwYWRTdHJhdGVneS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODVF
NzExQkYwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxPcHRHcm91cEVsZW1lbnRJbnRlcm5hbC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJODU0MDc1NkIwQUQ2Q0JGOTAwNjIwQzU3IC8qIERPTUhUTUxP
cHRpb25FbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTQwNzU2RDBBRDZDQkY5MDA2MjBD
NTcgLyogRE9NSFRNTE9wdGlvbkVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCkBAIC0y
NDQ3Nyw3ICsyNDQ4MCw2IEBACiAJCQkJNTFENzE5RDkxODExMDZFMDAwMTZEQzUxIC8qIElEQklu
ZGV4LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUFCQjVCODE4NkQwRUQxMDA4MzkxQTEgLyogSURC
SW5kZXhNZXRhZGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEwMTk0NDExODM2RDIwODAwOTI1
NTIzIC8qIElEQkluZGV4V3JpdGVyTGV2ZWxEQi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTFBOUQ5
RTYxOTVCOEY0NzAwMUIyQjVDIC8qIEdhbWVwYWRTdHJhdGVneUNsaWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTFENzE5REMxODExMDZFMDAwMTZEQzUxIC8qIElEQktleS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTExRUMxQTYxODhEQUNBNDAwQkEzRUI2IC8qIElEQktleURhdGEuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTUxRDcxOURFMTgxMTA2RTAwMDE2REM1MSAvKiBJREJLZXlQYXRoLmggaW4g
SGVhZGVycyAqLywKQEAgLTI0ODMzLDcgKzI0ODM1LDYgQEAKIAkJCQlCQzNDMzlCNzBDMEQzRDhE
MDA1RjREN0EgLyogSlNNZWRpYUxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUQzQTk0QTQ3MTIy
REM0MEYwMEEzN0JCQyAvKiBKU01lZGlhUXVlcnlMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk3
QzUzNDNGRDE3Qjc0QjYzMDA0MjMyRjAgLyogSlNNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggaW4g
SGVhZGVycyAqLywKLQkJCQk1MUE5RDlGNjE5NUI5NTAzMDAxQjJCNUMgLyogSElER2FtZXBhZExp
c3RlbmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDlERTE3NTE3QUFDNzRDMDBFQTM4NkQgLyog
SlNNZWRpYVNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDdDNTlCNzIxN0Y3OUM3QzAwMEZC
Q0JCIC8qIEpTTWVkaWFTb3VyY2VTdGF0ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3Mjc3RTRE
MTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU3RyZWFtLmggaW4gSGVhZGVycyAqLywKQEAgLTI1
NzIyLDYgKzI1NzIzLDcgQEAKIAkJCQk1MTRDNzY3QjBDRTkyM0ExMDA3RUYzQ0QgLyogUmVzb3Vy
Y2VIYW5kbGVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFFNDE0MzQxNkE2NTk2MzAw
QzYzM0M3IC8qIFJlc291cmNlSGFuZGxlVHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1NkQz
NzNGMEFEQkE1REUwMEE0NTU0RCAvKiBSZXNvdXJjZUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJNTE3OUNFMjQxOTVDODE0MjAwMTlDMTk4IC8qIEdhbWVwYWRQcm92aWRlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRDBBM0E3MzExNDA1QTM5ODAwRkI4RUQzIC8qIFJlc291cmNlTG9hZGVyT3B0
aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFBRjUwMzYxNkYxMDBGNjAwOTVCMkU4IC8qIFJl
c291cmNlTG9hZGVyVHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3M0UzMjU3MTA4ODNCN0Mw
MDVCQzQ5MyAvKiBSZXNvdXJjZUxvYWROb3RpZmllci5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjE0
Myw2ICsyNjE0NSw3IEBACiAJCQkJMDg1NEIwMjExMjU1RTRFNjAwQjlDREQwIC8qIFNWR0lubGlu
ZVRleHRCb3guaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QTMwMEQwMEJGMjIwMDcxQjc4MiAv
KiBTVkdMYW5nU3BhY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QTMzMEQwMEJGMjIwMDcx
Qjc4MiAvKiBTVkdMZW5ndGguaCBpbiBIZWFkZXJzICovLAorCQkJCTUxNzlDRTM3MTk1Q0FDN0Uw
MDE5QzE5OCAvKiBISURHYW1lcGFkUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTcxMzQ0
OTZFMTQ2OTQxQjMwMDcyMDMxMiAvKiBTVkdMZW5ndGhDb250ZXh0LmggaW4gSGVhZGVycyAqLywK
IAkJCQlCMjIyN0EzNjBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHTGVuZ3RoTGlzdC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQjIyMjdBMzkwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0xpbmVhckdyYWRpZW50
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yODM4MCw2ICsyODM4Myw3IEBACiAJCQkJMUE3
NTBERDQwQTkwRTcyOTAwMEZGMjE1IC8qIEpTTm9kZUl0ZXJhdG9yQ3VzdG9tLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUJDRDlDMkMyMEMxN0I2OUUwMDVDOTBBMiAvKiBKU05vZGVMaXN0LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUJDRDlDMjY1MEMxN0FBNjcwMDVDOTBBMiAvKiBKU05vZGVMaXN0
Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUxNzlDRTI2MTk1QzgyMUQwMDE5QzE5OCAv
KiBHYW1lcGFkUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNjVERjMxRkQwOUQxQ0M2
MDAwMEJFMzI1IC8qIEpTTm90YXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzM1MDNDQTMx
MDE3OUFENzAwM0I0N0UxIC8qIEpTTm90aWZpY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTMzNTAzQ0E1MTAxNzlBRDcwMDNCNDdFMSAvKiBKU05vdGlmaWNhdGlvbkNlbnRlci5jcHAgaW4g
U291cmNlcyAqLywKQEAgLTI4OTg5LDYgKzI4OTkzLDcgQEAKIAkJCQlCQzk0RDEwODBDMjc0Rjg4
MDA2QkM2MTcgLyogUGxhdGZvcm1TY3JlZW5NYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQkyOTM0
OTQwQjE2QzAyQzBBMDA5MDEzMTggLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2Uu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMjkzNDk0MEExNkMwMkMwNzAwOTAxMzE4IC8qIFBsYXRm
b3JtU3BlZWNoU3ludGhlc2lzVm9pY2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTE3OUNFMzYx
OTVDQUM3RTAwMTlDMTk4IC8qIEhJREdhbWVwYWRQcm92aWRlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkyOTdCRTNEQTE2QzA0M0Q4MDAzMzE2QkQgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXpl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUM5MDBDMzE5NDNDMEZDMDA4NjI1QjUgLyogSFRU
UEhlYWRlck5hbWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUFBMTJERjQ5MTc0M0RGODMwMDRE
QUZERiAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVySU9TLm1tIGluIFNvdXJjZXMgKi8sCkBA
IC0yOTQ5MSw3ICsyOTQ5Niw2IEBACiAJCQkJQjI1NTk5ODQwRDAwRDhCQTAwQkI4MjVDIC8qIFNW
R0ZFSW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjIyMjc5RUUwRDAwQkYyMjAwNzFCNzgy
IC8qIFNWR0ZFSW1hZ2VFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyMjI3OUYxMEQw
MEJGMjIwMDcxQjc4MiAvKiBTVkdGRUxpZ2h0RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQk1MUE5RDlGNTE5NUI5NTAzMDAxQjJCNUMgLyogSElER2FtZXBhZExpc3RlbmVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUIyMjI3OUYzMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdGRU1lcmdlRWxl
bWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjIyNzlGNjBEMDBCRjIyMDA3MUI3ODIgLyog
U1ZHRkVNZXJnZU5vZGVFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg0MjI0MTkzMTA3
RTc4QTcwMDc2NkE4NyAvKiBTVkdGRU1vcnBob2xvZ3lFbGVtZW50LmNwcCBpbiBTb3VyY2VzICov
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vR2FtZXBhZFByb3ZpZGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0dhbWVwYWRQcm92aWRlci5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDUwNGE2OAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0dhbWVwYWRQcm92aWRlci5jcHAKQEAgLTAsMCArMSw2NyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiR2FtZXBhZFByb3Zp
ZGVyLmgiCisKKyNpZiBFTkFCTEUoR0FNRVBBRCkKKworI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ry
b3llZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBHYW1lcGFkUHJvdmlkZXIq
IHNoYXJlZFByb3ZpZGVyID0gbnVsbHB0cjsKKworR2FtZXBhZFByb3ZpZGVyJiBHYW1lcGFkUHJv
dmlkZXI6OnNoYXJlZCgpCit7CisgICAgaWYgKCFzaGFyZWRQcm92aWRlcikgeworICAgICAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8R2FtZXBhZFByb3ZpZGVyPiBkZWZhdWx0UHJvdmlkZXI7Cisg
ICAgICAgIHNoYXJlZFByb3ZpZGVyID0gJmRlZmF1bHRQcm92aWRlci5nZXQoKTsKKyAgICB9CisK
KyAgICByZXR1cm4gKnNoYXJlZFByb3ZpZGVyOworfQorCit2b2lkIEdhbWVwYWRQcm92aWRlcjo6
c2V0U2hhcmVkUHJvdmlkZXIoR2FtZXBhZFByb3ZpZGVyJiBuZXdQcm92aWRlcikKK3sKKyAgICBz
aGFyZWRQcm92aWRlciA9ICZuZXdQcm92aWRlcjsKK30KKwordm9pZCBHYW1lcGFkUHJvdmlkZXI6
OnN0YXJ0TW9uaXRvcmluZ0dhbWVwYWRzKEdhbWVwYWRQcm92aWRlckNsaWVudCopCit7Cit9CisK
K3ZvaWQgR2FtZXBhZFByb3ZpZGVyOjpzdG9wTW9uaXRvcmluZ0dhbWVwYWRzKEdhbWVwYWRQcm92
aWRlckNsaWVudCopCit7Cit9CisKK2NvbnN0IFZlY3RvcjxQbGF0Zm9ybUdhbWVwYWQqPiYgR2Ft
ZXBhZFByb3ZpZGVyOjpwbGF0Zm9ybUdhbWVwYWRzKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8VmVjdG9yPFBsYXRmb3JtR2FtZXBhZCo+PiBkZWZhdWx0R2FtZXBhZHM7CisgICAgcmV0
dXJuIGRlZmF1bHRHYW1lcGFkczsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gRU5BQkxFKEdBTUVQQUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9HYW1lcGFkUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0dhbWVwYWRQcm92
aWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1YWViZjYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9HYW1lcGFkUHJvdmlkZXIuaApA
QCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBHYW1lcGFkUHJvdmlkZXJfaAor
I2RlZmluZSBHYW1lcGFkUHJvdmlkZXJfaAorCisjaWYgRU5BQkxFKEdBTUVQQUQpCisKKyNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgR2FtZXBh
ZFByb3ZpZGVyQ2xpZW50OworY2xhc3MgUGxhdGZvcm1HYW1lcGFkOworCitjbGFzcyBHYW1lcGFk
UHJvdmlkZXIgeworcHVibGljOgorICAgIHZpcnR1YWwgfkdhbWVwYWRQcm92aWRlcigpIHsgfQor
CisgICAgc3RhdGljIEdhbWVwYWRQcm92aWRlciYgc2hhcmVkKCk7CisgICAgc3RhdGljIHZvaWQg
c2V0U2hhcmVkUHJvdmlkZXIoR2FtZXBhZFByb3ZpZGVyJik7CisKKyAgICB2aXJ0dWFsIHZvaWQg
c3RhcnRNb25pdG9yaW5nR2FtZXBhZHMoR2FtZXBhZFByb3ZpZGVyQ2xpZW50Kik7CisgICAgdmly
dHVhbCB2b2lkIHN0b3BNb25pdG9yaW5nR2FtZXBhZHMoR2FtZXBhZFByb3ZpZGVyQ2xpZW50Kik7
CisgICAgdmlydHVhbCBjb25zdCBWZWN0b3I8UGxhdGZvcm1HYW1lcGFkKj4mIHBsYXRmb3JtR2Ft
ZXBhZHMoKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJM
RShHQU1FUEFEKQorI2VuZGlmIC8vIEdhbWVwYWRQcm92aWRlcl9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9HYW1lcGFkUHJvdmlkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0dhbWVwYWRQcm92aWRlckNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjVjNzlkMzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9HYW1lcGFkUHJvdmlkZXJDbGllbnQuaApAQCAtMCwwICsxLDQ0IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBHYW1lcGFkUHJvdmlkZXJDbGllbnRfaAorI2RlZmluZSBHYW1lcGFk
UHJvdmlkZXJDbGllbnRfaAorCisjaWYgRU5BQkxFKEdBTUVQQUQpCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgR2FtZXBhZFByb3ZpZGVyQ2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0
dWFsIH5HYW1lcGFkUHJvdmlkZXJDbGllbnQoKSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCBwbGF0
Zm9ybUdhbWVwYWRDb25uZWN0ZWQodW5zaWduZWQgaW5kZXgpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgcGxhdGZvcm1HYW1lcGFkRGlzY29ubmVjdGVkKHVuc2lnbmVkIGluZGV4KSA9IDA7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoR0FNRVBBRCkKKyNl
bmRpZiAvLyBHYW1lcGFkUHJvdmlkZXJDbGllbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vR2FtZXBhZFN0cmF0ZWd5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9H
YW1lcGFkU3RyYXRlZ3kuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTRhNGQyOC4u
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9HYW1lcGFkU3RyYXRlZ3kuaAor
KysgL2Rldi9udWxsCkBAIC0xLDUxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
Ci0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
LSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIEdhbWVw
YWRTdHJhdGVneV9oCi0jZGVmaW5lIEdhbWVwYWRTdHJhdGVneV9oCi0KLSNpZiBFTkFCTEUoR0FN
RVBBRCkKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBQbGF0Zm9ybUdhbWVwYWQ7Ci1j
bGFzcyBHYW1lcGFkU3RyYXRlZ3lDbGllbnQ7Ci0KLWNsYXNzIEdhbWVwYWRTdHJhdGVneSB7Ci1w
dWJsaWM6Ci0gICAgdmlydHVhbCB2b2lkIHN0YXJ0TW9uaXRvcmluZ0dhbWVwYWRzKEdhbWVwYWRT
dHJhdGVneUNsaWVudCopID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc3RvcE1vbml0b3JpbmdHYW1l
cGFkcyhHYW1lcGFkU3RyYXRlZ3lDbGllbnQqKSA9IDA7Ci0gICAgdmlydHVhbCBjb25zdCBWZWN0
b3I8UGxhdGZvcm1HYW1lcGFkKj4mIHBsYXRmb3JtR2FtZXBhZHMoKSA9IDA7Ci0KLXByb3RlY3Rl
ZDoKLSAgICB2aXJ0dWFsIH5HYW1lcGFkU3RyYXRlZ3koKQotICAgIHsKLSAgICB9Ci19OwotCi19
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoR0FNRVBBRCkKLSNlbmRp
ZiAvLyBHYW1lcGFkU3RyYXRlZ3lfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vR2FtZXBhZFN0cmF0ZWd5Q2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9HYW1l
cGFkU3RyYXRlZ3lDbGllbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmFiOGQz
OC4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9HYW1lcGFkU3RyYXRlZ3lD
bGllbnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDQ0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZu
ZGVmIEdhbWVwYWRTdHJhdGVneUNsaWVudF9oCi0jZGVmaW5lIEdhbWVwYWRTdHJhdGVneUNsaWVu
dF9oCi0KLSNpZiBFTkFCTEUoR0FNRVBBRCkKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFz
cyBHYW1lcGFkU3RyYXRlZ3lDbGllbnQgewotcHVibGljOgotICAgIHZpcnR1YWwgfkdhbWVwYWRT
dHJhdGVneUNsaWVudCgpIHsgfQotCi0gICAgdmlydHVhbCB2b2lkIHBsYXRmb3JtR2FtZXBhZENv
bm5lY3RlZCh1bnNpZ25lZCBpbmRleCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUdh
bWVwYWREaXNjb25uZWN0ZWQodW5zaWduZWQgaW5kZXgpID0gMDsKLX07Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShHQU1FUEFEKQotI2VuZGlmIC8vIEdhbWVw
YWRTdHJhdGVneUNsaWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
bGF0Zm9ybVN0cmF0ZWdpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU3Ry
YXRlZ2llcy5oCmluZGV4IDEyNzhjZTMuLjUxOTYyZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5oCkBAIC0zNiwxMCArMzYsNiBAQCBjbGFzcyBQbHVn
aW5TdHJhdGVneTsKIGNsYXNzIFNoYXJlZFdvcmtlclN0cmF0ZWd5OwogY2xhc3MgU3RvcmFnZVN0
cmF0ZWd5OwogCi0jaWYgRU5BQkxFKEdBTUVQQUQpCi1jbGFzcyBHYW1lcGFkU3RyYXRlZ3k7Ci0j
ZW5kaWYKLQogY2xhc3MgUGxhdGZvcm1TdHJhdGVnaWVzIHsKIHB1YmxpYzoKICAgICBDb29raWVz
U3RyYXRlZ3kqIGNvb2tpZXNTdHJhdGVneSgpCkBAIC05MSwxNSArODcsNiBAQCBwdWJsaWM6CiAg
ICAgICAgIHJldHVybiBtX3N0b3JhZ2VTdHJhdGVneTsKICAgICB9CiAKLSNpZiBFTkFCTEUoR0FN
RVBBRCkKLSAgICBHYW1lcGFkU3RyYXRlZ3kqIGdhbWVwYWRTdHJhdGVneSgpCi0gICAgewotICAg
ICAgICBpZiAoIW1fZ2FtZXBhZFN0cmF0ZWd5KQotICAgICAgICAgICAgbV9nYW1lcGFkU3RyYXRl
Z3kgPSBjcmVhdGVHYW1lcGFkU3RyYXRlZ3koKTsKLSAgICAgICAgcmV0dXJuIG1fZ2FtZXBhZFN0
cmF0ZWd5OwotICAgIH0KLSNlbmRpZgotCiBwcm90ZWN0ZWQ6CiAgICAgUGxhdGZvcm1TdHJhdGVn
aWVzKCkKICAgICAgICAgOiBtX2Nvb2tpZXNTdHJhdGVneShudWxscHRyKQpAQCAtMTA5LDkgKzk2
LDYgQEAgcHJvdGVjdGVkOgogICAgICAgICAsIG1fcGx1Z2luU3RyYXRlZ3kobnVsbHB0cikKICAg
ICAgICAgLCBtX3NoYXJlZFdvcmtlclN0cmF0ZWd5KG51bGxwdHIpCiAgICAgICAgICwgbV9zdG9y
YWdlU3RyYXRlZ3kobnVsbHB0cikKLSNpZiBFTkFCTEUoR0FNRVBBRCkKLSAgICAgICAgLCBtX2dh
bWVwYWRTdHJhdGVneShudWxscHRyKQotI2VuZGlmCiAgICAgewogICAgIH0KIApAQCAtMTI3LDkg
KzExMSw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBQbHVnaW5TdHJhdGVneSogY3JlYXRlUGx1
Z2luU3RyYXRlZ3koKSA9IDA7CiAgICAgdmlydHVhbCBTaGFyZWRXb3JrZXJTdHJhdGVneSogY3Jl
YXRlU2hhcmVkV29ya2VyU3RyYXRlZ3koKSA9IDA7CiAgICAgdmlydHVhbCBTdG9yYWdlU3RyYXRl
Z3kqIGNyZWF0ZVN0b3JhZ2VTdHJhdGVneSgpID0gMDsKLSNpZiBFTkFCTEUoR0FNRVBBRCkKLSAg
ICB2aXJ0dWFsIEdhbWVwYWRTdHJhdGVneSogY3JlYXRlR2FtZXBhZFN0cmF0ZWd5KCkgPSAwOwot
I2VuZGlmCiAKICAgICBDb29raWVzU3RyYXRlZ3kqIG1fY29va2llc1N0cmF0ZWd5OwogICAgIERh
dGFiYXNlU3RyYXRlZ3kqIG1fZGF0YWJhc2VTdHJhdGVneTsKQEAgLTEzOCw5ICsxMTksNiBAQCBw
cml2YXRlOgogICAgIFBsdWdpblN0cmF0ZWd5KiBtX3BsdWdpblN0cmF0ZWd5OwogICAgIFNoYXJl
ZFdvcmtlclN0cmF0ZWd5KiBtX3NoYXJlZFdvcmtlclN0cmF0ZWd5OwogICAgIFN0b3JhZ2VTdHJh
dGVneSogbV9zdG9yYWdlU3RyYXRlZ3k7Ci0jaWYgRU5BQkxFKEdBTUVQQUQpCi0gICAgR2FtZXBh
ZFN0cmF0ZWd5KiBtX2dhbWVwYWRTdHJhdGVneTsKLSNlbmRpZgogfTsKIAogUGxhdGZvcm1TdHJh
dGVnaWVzKiBwbGF0Zm9ybVN0cmF0ZWdpZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9ISURHYW1lcGFkLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
SElER2FtZXBhZC5oCmluZGV4IDdlNTFiOGUuLjJkODBmZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9ISURHYW1lcGFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL0hJREdhbWVwYWQuaApAQCAtMTIxLDQgKzEyMSw0IEBAIHByaXZhdGU6CiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoR0FNRVBBRCkKLSNlbmRpZiAv
LyBISURHYW1lcGFkTGlzdGVuZXJfaAorI2VuZGlmIC8vIEhJREdhbWVwYWRfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0hJREdhbWVwYWRMaXN0ZW5lci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvSElER2FtZXBhZExpc3RlbmVyLmNwcApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODBkYzVjNS4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvSElER2FtZXBhZExpc3RlbmVyLmNwcAorKysgL2Rldi9udWxsCkBA
IC0xLDE3NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1
ZGUgIkhJREdhbWVwYWRMaXN0ZW5lci5oIgotCi0jaWYgRU5BQkxFKEdBTUVQQUQpCi0KLSNpbmNs
dWRlICJQbGF0Zm9ybUdhbWVwYWQuaCIKLSNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgotCi1u
YW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXN0YXRpYyBSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPiBk
ZXZpY2VNYXRjaGluZ0RpY3Rpb25hcnkodWludDMyX3QgdXNhZ2VQYWdlLCB1aW50MzJfdCB1c2Fn
ZSkKLXsKLSAgICBBU1NFUlQodXNhZ2VQYWdlKTsKLSAgICBBU1NFUlQodXNhZ2UpOwotCi0gICAg
UmV0YWluUHRyPENGTnVtYmVyUmVmPiBwYWdlTnVtYmVyID0gYWRvcHRDRihDRk51bWJlckNyZWF0
ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBrQ0ZOdW1iZXJJbnRUeXBlLCAmdXNhZ2VQYWdlKSk7Ci0g
ICAgUmV0YWluUHRyPENGTnVtYmVyUmVmPiB1c2FnZU51bWJlciA9IGFkb3B0Q0YoQ0ZOdW1iZXJD
cmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwga0NGTnVtYmVySW50VHlwZSwgJnVzYWdlKSk7Ci0K
LSAgICBDRlN0cmluZ1JlZiBrZXlzW10gPSB7IENGU1RSKGtJT0hJRERldmljZVVzYWdlUGFnZUtl
eSksIENGU1RSKGtJT0hJRERldmljZVVzYWdlS2V5KSB9OwotICAgIENGTnVtYmVyUmVmIHZhbHVl
c1tdID0geyBwYWdlTnVtYmVyLmdldCgpLCB1c2FnZU51bWJlci5nZXQoKSB9OwotCi0gICAgcmV0
dXJuIGFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5Q3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIChjb25z
dCB2b2lkKiopa2V5cywgKGNvbnN0IHZvaWQqKil2YWx1ZXMsIDIsICZrQ0ZUeXBlRGljdGlvbmFy
eUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsKLX0KLQot
c3RhdGljIHZvaWQgZGV2aWNlQWRkZWRDYWxsYmFjayh2b2lkKiBjb250ZXh0LCBJT1JldHVybiwg
dm9pZCosIElPSElERGV2aWNlUmVmIGRldmljZSkKLXsKLSAgICBISURHYW1lcGFkTGlzdGVuZXIq
IGxpc3RlbmVyID0gc3RhdGljX2Nhc3Q8SElER2FtZXBhZExpc3RlbmVyKj4oY29udGV4dCk7Ci0g
ICAgbGlzdGVuZXItPmRldmljZUFkZGVkKGRldmljZSk7Ci19Ci0KLXN0YXRpYyB2b2lkIGRldmlj
ZVJlbW92ZWRDYWxsYmFjayh2b2lkKiBjb250ZXh0LCBJT1JldHVybiwgdm9pZCosIElPSElERGV2
aWNlUmVmIGRldmljZSkKLXsKLSAgICBISURHYW1lcGFkTGlzdGVuZXIqIGxpc3RlbmVyID0gc3Rh
dGljX2Nhc3Q8SElER2FtZXBhZExpc3RlbmVyKj4oY29udGV4dCk7Ci0gICAgbGlzdGVuZXItPmRl
dmljZVJlbW92ZWQoZGV2aWNlKTsKLX0KLQotc3RhdGljIHZvaWQgZGV2aWNlVmFsdWVzQ2hhbmdl
ZENhbGxiYWNrKHZvaWQqIGNvbnRleHQsIElPUmV0dXJuIHJlc3VsdCwgdm9pZCosIElPSElEVmFs
dWVSZWYgdmFsdWUpCi17Ci0gICAgLy8gQSBub24temVybyByZXN1bHQgdmFsdWUgaW5kaWNhdGVz
IGFuIGVycm9yIHRoYXQgd2UgY2FuIGRvIG5vdGhpbmcgYWJvdXQgZm9yIGlucHV0IHZhbHVlcy4K
LSAgICBpZiAocmVzdWx0KQotICAgICAgICByZXR1cm47Ci0KLSAgICBISURHYW1lcGFkTGlzdGVu
ZXIqIGxpc3RlbmVyID0gc3RhdGljX2Nhc3Q8SElER2FtZXBhZExpc3RlbmVyKj4oY29udGV4dCk7
Ci0gICAgbGlzdGVuZXItPnZhbHVlc0NoYW5nZWQodmFsdWUpOwotfQotCi1ISURHYW1lcGFkTGlz
dGVuZXImIEhJREdhbWVwYWRMaXN0ZW5lcjo6c2hhcmVkKCkKLXsKLSAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8SElER2FtZXBhZExpc3RlbmVyPiBzaGFyZWRMaXN0ZW5lcjsKLSAgICByZXR1cm4g
c2hhcmVkTGlzdGVuZXI7Ci19Ci0KLUhJREdhbWVwYWRMaXN0ZW5lcjo6SElER2FtZXBhZExpc3Rl
bmVyKCkKLSAgICA6IG1fY2xpZW50KG51bGxwdHIpCi0gICAgLCBtX3Nob3VsZERpc3BhdGNoQ2Fs
bGJhY2tzKGZhbHNlKQotewotICAgIG1fbWFuYWdlciA9IGFkb3B0Q0YoSU9ISURNYW5hZ2VyQ3Jl
YXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGtJT0hJRE9wdGlvbnNUeXBlTm9uZSkpOwotCi0gICAg
UmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4gam95c3RpY2tEaWN0aW9uYXJ5ID0gZGV2aWNlTWF0
Y2hpbmdEaWN0aW9uYXJ5KGtISURQYWdlX0dlbmVyaWNEZXNrdG9wLCBrSElEVXNhZ2VfR0RfSm95
c3RpY2spOwotICAgIFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+IGdhbWVwYWREaWN0aW9uYXJ5
ID0gZGV2aWNlTWF0Y2hpbmdEaWN0aW9uYXJ5KGtISURQYWdlX0dlbmVyaWNEZXNrdG9wLCBrSElE
VXNhZ2VfR0RfR2FtZVBhZCk7Ci0KLSAgICBDRkRpY3Rpb25hcnlSZWYgZGV2aWNlc1tdID0geyBq
b3lzdGlja0RpY3Rpb25hcnkuZ2V0KCksIGdhbWVwYWREaWN0aW9uYXJ5LmdldCgpIH07Ci0KLSAg
ICBSZXRhaW5QdHI8Q0ZBcnJheVJlZj4gbWF0Y2hpbmdBcnJheSA9IGFkb3B0Q0YoQ0ZBcnJheUNy
ZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoY29uc3Qgdm9pZCoqKWRldmljZXMsIDIsICZrQ0ZU
eXBlQXJyYXlDYWxsQmFja3MpKTsKLQotICAgIElPSElETWFuYWdlclNldERldmljZU1hdGNoaW5n
TXVsdGlwbGUobV9tYW5hZ2VyLmdldCgpLCBtYXRjaGluZ0FycmF5LmdldCgpKTsKLSAgICBJT0hJ
RE1hbmFnZXJSZWdpc3RlckRldmljZU1hdGNoaW5nQ2FsbGJhY2sobV9tYW5hZ2VyLmdldCgpLCBk
ZXZpY2VBZGRlZENhbGxiYWNrLCB0aGlzKTsKLSAgICBJT0hJRE1hbmFnZXJSZWdpc3RlckRldmlj
ZVJlbW92YWxDYWxsYmFjayhtX21hbmFnZXIuZ2V0KCksIGRldmljZVJlbW92ZWRDYWxsYmFjaywg
dGhpcyk7Ci0gICAgSU9ISURNYW5hZ2VyU2NoZWR1bGVXaXRoUnVuTG9vcChtX21hbmFnZXIuZ2V0
KCksIENGUnVuTG9vcEdldEN1cnJlbnQoKSwga0NGUnVuTG9vcERlZmF1bHRNb2RlKTsKLSAgICBJ
T0hJRE1hbmFnZXJPcGVuKG1fbWFuYWdlci5nZXQoKSwga0lPSElET3B0aW9uc1R5cGVOb25lKTsK
LQotICAgIElPSElETWFuYWdlclJlZ2lzdGVySW5wdXRWYWx1ZUNhbGxiYWNrKG1fbWFuYWdlci5n
ZXQoKSwgZGV2aWNlVmFsdWVzQ2hhbmdlZENhbGxiYWNrLCB0aGlzKTsKLQotICAgIC8vIFdlJ2xs
IGltbWVkaWF0ZWx5IGdldCBhIHNlcmllcyBvZiBjb25uZWN0aW9uIGFuZCB2YWx1ZSBjYWxsYmFj
a3MgZm9yIGFscmVhZHktY29ubmVjdGVkIGdhbWVwYWRzCi0gICAgLy8gYnV0IHdlIGRvbid0IHdh
bnQgdG8gbm90aWZ5IFdlYkNvcmUgb2YgdGhvc2UgZXZlbnRzLgotICAgIC8vIFRoaXMgY2FsbE9u
TWFpblRocmVhZCBjYWxsIHJlLWVuYWJsZXMgdGhvc2UgY2FsbGJhY2tzIGFmdGVyIHRoZSBydW5s
b29wIGVtcHRpZXMgb3V0LgotICAgIGNhbGxPbk1haW5UaHJlYWQoW10oKSB7Ci0gICAgICAgIEhJ
REdhbWVwYWRMaXN0ZW5lcjo6c2hhcmVkKCkuc2V0U2hvdWxkRGlzcGF0Y2hDYWxsYmFja3ModHJ1
ZSk7Ci0gICAgfSk7Ci19Ci0KLXVuc2lnbmVkIEhJREdhbWVwYWRMaXN0ZW5lcjo6aW5kZXhGb3JO
ZXdseUNvbm5lY3RlZERldmljZSgpCi17Ci0gICAgdW5zaWduZWQgaW5kZXggPSAwOwotICAgIHdo
aWxlIChpbmRleCA8IG1fZ2FtZXBhZFZlY3Rvci5zaXplKCkgJiYgbV9nYW1lcGFkVmVjdG9yW2lu
ZGV4XSkKLSAgICAgICAgKytpbmRleDsKLQotICAgIHJldHVybiBpbmRleDsKLX0KLQotdm9pZCBI
SURHYW1lcGFkTGlzdGVuZXI6OmRldmljZUFkZGVkKElPSElERGV2aWNlUmVmIGRldmljZSkKLXsK
LSAgICBBU1NFUlQoIW1fZ2FtZXBhZE1hcC5nZXQoZGV2aWNlKSk7Ci0KLSAgICBzdGQ6OnVuaXF1
ZV9wdHI8SElER2FtZXBhZD4gZ2FtZXBhZCA9IHN0ZDo6bWFrZV91bmlxdWU8SElER2FtZXBhZD4o
ZGV2aWNlKTsKLSAgICB1bnNpZ25lZCBpbmRleCA9IGluZGV4Rm9yTmV3bHlDb25uZWN0ZWREZXZp
Y2UoKTsKLQotICAgIGlmIChtX2dhbWVwYWRWZWN0b3Iuc2l6ZSgpIDw9IGluZGV4KQotICAgICAg
ICBtX2dhbWVwYWRWZWN0b3IucmVzaXplKGluZGV4ICsgMSk7Ci0KLSAgICBtX2dhbWVwYWRWZWN0
b3JbaW5kZXhdID0gZ2FtZXBhZC5nZXQoKTsKLSAgICBtX2dhbWVwYWRNYXAuc2V0KGRldmljZSwg
c3RkOjptb3ZlKGdhbWVwYWQpKTsKLQotICAgIGlmIChtX2NsaWVudCAmJiBtX3Nob3VsZERpc3Bh
dGNoQ2FsbGJhY2tzKQotICAgICAgICBtX2NsaWVudC0+Z2FtZXBhZENvbm5lY3RlZChpbmRleCk7
Ci19Ci0KLXZvaWQgSElER2FtZXBhZExpc3RlbmVyOjpkZXZpY2VSZW1vdmVkKElPSElERGV2aWNl
UmVmIGRldmljZSkKLXsKLSAgICBzdGQ6OnBhaXI8c3RkOjp1bmlxdWVfcHRyPEhJREdhbWVwYWQ+
LCB1bnNpZ25lZD4gcmVtb3ZlZEdhbWVwYWQgPSByZW1vdmVHYW1lcGFkRm9yRGV2aWNlKGRldmlj
ZSk7Ci0gICAgQVNTRVJUKHJlbW92ZWRHYW1lcGFkLmZpcnN0KTsKLQotICAgIGlmIChtX2NsaWVu
dCAmJiBtX3Nob3VsZERpc3BhdGNoQ2FsbGJhY2tzKQotICAgICAgICBtX2NsaWVudC0+Z2FtZXBh
ZERpc2Nvbm5lY3RlZChyZW1vdmVkR2FtZXBhZC5zZWNvbmQpOwotfQotCi12b2lkIEhJREdhbWVw
YWRMaXN0ZW5lcjo6dmFsdWVzQ2hhbmdlZChJT0hJRFZhbHVlUmVmIHZhbHVlKQotewotICAgIElP
SElERGV2aWNlUmVmIGRldmljZSA9IElPSElERWxlbWVudEdldERldmljZShJT0hJRFZhbHVlR2V0
RWxlbWVudCh2YWx1ZSkpOwotCi0gICAgSElER2FtZXBhZCogZ2FtZXBhZCA9IG1fZ2FtZXBhZE1h
cC5nZXQoZGV2aWNlKTsKLQotICAgIC8vIFdoZW4gc3RhcnRpbmcgbW9uaXRvcmluZyB3ZSBtaWdo
dCBnZXQgYSB2YWx1ZSBjaGFuZ2VkIGNhbGxiYWNrIGJlZm9yZSB3ZSBldmVuIGtub3cgdGhlIGRl
dmljZSBpcyBjb25uZWN0ZWQuCi0gICAgaWYgKCFnYW1lcGFkKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBnYW1lcGFkLT52YWx1ZUNoYW5nZWQodmFsdWUpOwotfQotCi1zdGQ6OnBhaXI8c3RkOjp1
bmlxdWVfcHRyPEhJREdhbWVwYWQ+LCB1bnNpZ25lZD4gIEhJREdhbWVwYWRMaXN0ZW5lcjo6cmVt
b3ZlR2FtZXBhZEZvckRldmljZShJT0hJRERldmljZVJlZiBkZXZpY2UpCi17Ci0gICAgc3RkOjpw
YWlyPHN0ZDo6dW5pcXVlX3B0cjxISURHYW1lcGFkPiwgdW5zaWduZWQ+IHJlc3VsdDsKLSAgICBy
ZXN1bHQuZmlyc3QgPSBtX2dhbWVwYWRNYXAudGFrZShkZXZpY2UpOwotICAgIEFTU0VSVChyZXN1
bHQuZmlyc3QpOwotCi0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fZ2FtZXBhZFZlY3Rv
ci5zaXplKCk7ICsraSkgewotICAgICAgICBpZiAobV9nYW1lcGFkVmVjdG9yW2ldID09IHJlc3Vs
dC5maXJzdC5nZXQoKSkgewotICAgICAgICAgICAgcmVzdWx0LnNlY29uZCA9IGk7Ci0gICAgICAg
ICAgICBtX2dhbWVwYWRWZWN0b3JbaV0gPSBudWxscHRyOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi19IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoR0FNRVBBRCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9ISURHYW1lcGFkTGlzdGVuZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9ISURHYW1lcGFkTGlzdGVuZXIuaApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZWI0YTJlMi4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvSElER2FtZXBhZExpc3RlbmVyLmgKKysrIC9kZXYvbnVsbApAQCAtMSw4MyArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotI2lmbmRlZiBISURHYW1lcGFkTGlzdGVuZXJfaAotI2RlZmluZSBISURH
YW1lcGFkTGlzdGVuZXJfaAotCi0jaWYgRU5BQkxFKEdBTUVQQUQpCi0KLSNpbmNsdWRlICJISURH
YW1lcGFkLmgiCi0jaW5jbHVkZSA8SU9LaXQvaGlkL0lPSElETWFuYWdlci5oPgotI2luY2x1ZGUg
PHd0Zi9EZXF1ZS5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3RmL05l
dmVyRGVzdHJveWVkLmg+Ci0jaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgotCi1uYW1lc3BhY2Ug
V2ViQ29yZSB7Ci0KLWNsYXNzIEhJREdhbWVwYWRMaXN0ZW5lckNsaWVudCB7Ci1wdWJsaWM6Ci0g
ICAgdmlydHVhbCB+SElER2FtZXBhZExpc3RlbmVyQ2xpZW50KCkgeyB9Ci0KLSAgICB2aXJ0dWFs
IHZvaWQgZ2FtZXBhZENvbm5lY3RlZCh1bnNpZ25lZCBpbmRleCkgPSAwOwotICAgIHZpcnR1YWwg
dm9pZCBnYW1lcGFkRGlzY29ubmVjdGVkKHVuc2lnbmVkIGluZGV4KSA9IDA7Ci19OwotCi1jbGFz
cyBISURHYW1lcGFkTGlzdGVuZXIgewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEhJREdhbWVw
YWRMaXN0ZW5lcik7Ci0gICAgZnJpZW5kIGNsYXNzIE5ldmVyRGVzdHJveWVkPEhJREdhbWVwYWRM
aXN0ZW5lcj47Ci1wdWJsaWM6Ci0gICAgc3RhdGljIEhJREdhbWVwYWRMaXN0ZW5lciYgc2hhcmVk
KCk7Ci0KLSAgICB2b2lkIHNldENsaWVudChISURHYW1lcGFkTGlzdGVuZXJDbGllbnQqIGNsaWVu
dCkgeyBtX2NsaWVudCA9IGNsaWVudDsgfQotCi0gICAgdm9pZCBkZXZpY2VBZGRlZChJT0hJRERl
dmljZVJlZik7Ci0gICAgdm9pZCBkZXZpY2VSZW1vdmVkKElPSElERGV2aWNlUmVmKTsKLSAgICB2
b2lkIHZhbHVlc0NoYW5nZWQoSU9ISURWYWx1ZVJlZik7Ci0KLSAgICBjb25zdCBWZWN0b3I8UGxh
dGZvcm1HYW1lcGFkKj4mIHBsYXRmb3JtR2FtZXBhZHMoKSBjb25zdCB7IHJldHVybiBtX2dhbWVw
YWRWZWN0b3I7IH0KLQotICAgIHZvaWQgc2V0U2hvdWxkRGlzcGF0Y2hDYWxsYmFja3MoYm9vbCBz
aG91bGREaXNwYXRjaENhbGxiYWNrcykgeyBtX3Nob3VsZERpc3BhdGNoQ2FsbGJhY2tzID0gc2hv
dWxkRGlzcGF0Y2hDYWxsYmFja3M7IH0KLQotcHJpdmF0ZToKLSAgICBISURHYW1lcGFkTGlzdGVu
ZXIoKTsKLQotICAgIHN0ZDo6cGFpcjxzdGQ6OnVuaXF1ZV9wdHI8SElER2FtZXBhZD4sIHVuc2ln
bmVkPiByZW1vdmVHYW1lcGFkRm9yRGV2aWNlKElPSElERGV2aWNlUmVmKTsKLQotICAgIHVuc2ln
bmVkIGluZGV4Rm9yTmV3bHlDb25uZWN0ZWREZXZpY2UoKTsKLQotICAgIFZlY3RvcjxQbGF0Zm9y
bUdhbWVwYWQqPiBtX2dhbWVwYWRWZWN0b3I7Ci0gICAgSGFzaE1hcDxJT0hJRERldmljZVJlZiwg
c3RkOjp1bmlxdWVfcHRyPEhJREdhbWVwYWQ+PiBtX2dhbWVwYWRNYXA7Ci0KLSAgICBSZXRhaW5Q
dHI8SU9ISURNYW5hZ2VyUmVmPiBtX21hbmFnZXI7Ci0KLSAgICBISURHYW1lcGFkTGlzdGVuZXJD
bGllbnQqIG1fY2xpZW50OwotICAgIGJvb2wgbV9zaG91bGREaXNwYXRjaENhbGxiYWNrczsKLX07
Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShHQU1FUEFEKQot
I2VuZGlmIC8vIEhJREdhbWVwYWRMaXN0ZW5lcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvSElER2FtZXBhZFByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9ISURHYW1lcGFkUHJvdmlkZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjMzN2E5MGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvSElER2FtZXBhZFByb3ZpZGVyLmNwcApAQCAtMCwwICsxLDE4OSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJISURHYW1lcGFkUHJvdmlk
ZXIuaCIKKworI2lmIEVOQUJMRShHQU1FUEFEKQorCisjaW5jbHVkZSAiR2FtZXBhZFByb3ZpZGVy
Q2xpZW50LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1HYW1lcGFkLmgiCisjaW5jbHVkZSA8d3RmL01h
aW5UaHJlYWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMgUmV0YWluUHRyPENG
RGljdGlvbmFyeVJlZj4gZGV2aWNlTWF0Y2hpbmdEaWN0aW9uYXJ5KHVpbnQzMl90IHVzYWdlUGFn
ZSwgdWludDMyX3QgdXNhZ2UpCit7CisgICAgQVNTRVJUKHVzYWdlUGFnZSk7CisgICAgQVNTRVJU
KHVzYWdlKTsKKworICAgIFJldGFpblB0cjxDRk51bWJlclJlZj4gcGFnZU51bWJlciA9IGFkb3B0
Q0YoQ0ZOdW1iZXJDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwga0NGTnVtYmVySW50VHlwZSwg
JnVzYWdlUGFnZSkpOworICAgIFJldGFpblB0cjxDRk51bWJlclJlZj4gdXNhZ2VOdW1iZXIgPSBh
ZG9wdENGKENGTnVtYmVyQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGtDRk51bWJlckludFR5
cGUsICZ1c2FnZSkpOworCisgICAgQ0ZTdHJpbmdSZWYga2V5c1tdID0geyBDRlNUUihrSU9ISURE
ZXZpY2VVc2FnZVBhZ2VLZXkpLCBDRlNUUihrSU9ISUREZXZpY2VVc2FnZUtleSkgfTsKKyAgICBD
Rk51bWJlclJlZiB2YWx1ZXNbXSA9IHsgcGFnZU51bWJlci5nZXQoKSwgdXNhZ2VOdW1iZXIuZ2V0
KCkgfTsKKworICAgIHJldHVybiBhZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZShrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCAoY29uc3Qgdm9pZCoqKWtleXMsIChjb25zdCB2b2lkKiopdmFsdWVzLCAyLCAm
a0NGVHlwZURpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2Fs
bEJhY2tzKSk7Cit9CisKK3N0YXRpYyB2b2lkIGRldmljZUFkZGVkQ2FsbGJhY2sodm9pZCogY29u
dGV4dCwgSU9SZXR1cm4sIHZvaWQqLCBJT0hJRERldmljZVJlZiBkZXZpY2UpCit7CisgICAgSElE
R2FtZXBhZFByb3ZpZGVyKiBsaXN0ZW5lciA9IHN0YXRpY19jYXN0PEhJREdhbWVwYWRQcm92aWRl
cio+KGNvbnRleHQpOworICAgIGxpc3RlbmVyLT5kZXZpY2VBZGRlZChkZXZpY2UpOworfQorCitz
dGF0aWMgdm9pZCBkZXZpY2VSZW1vdmVkQ2FsbGJhY2sodm9pZCogY29udGV4dCwgSU9SZXR1cm4s
IHZvaWQqLCBJT0hJRERldmljZVJlZiBkZXZpY2UpCit7CisgICAgSElER2FtZXBhZFByb3ZpZGVy
KiBsaXN0ZW5lciA9IHN0YXRpY19jYXN0PEhJREdhbWVwYWRQcm92aWRlcio+KGNvbnRleHQpOwor
ICAgIGxpc3RlbmVyLT5kZXZpY2VSZW1vdmVkKGRldmljZSk7Cit9CisKK3N0YXRpYyB2b2lkIGRl
dmljZVZhbHVlc0NoYW5nZWRDYWxsYmFjayh2b2lkKiBjb250ZXh0LCBJT1JldHVybiByZXN1bHQs
IHZvaWQqLCBJT0hJRFZhbHVlUmVmIHZhbHVlKQoreworICAgIC8vIEEgbm9uLXplcm8gcmVzdWx0
IHZhbHVlIGluZGljYXRlcyBhbiBlcnJvciB0aGF0IHdlIGNhbiBkbyBub3RoaW5nIGFib3V0IGZv
ciBpbnB1dCB2YWx1ZXMuCisgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgcmV0dXJuOworCisgICAg
SElER2FtZXBhZFByb3ZpZGVyKiBsaXN0ZW5lciA9IHN0YXRpY19jYXN0PEhJREdhbWVwYWRQcm92
aWRlcio+KGNvbnRleHQpOworICAgIGxpc3RlbmVyLT52YWx1ZXNDaGFuZ2VkKHZhbHVlKTsKK30K
KworSElER2FtZXBhZFByb3ZpZGVyJiBISURHYW1lcGFkUHJvdmlkZXI6OnNoYXJlZCgpCit7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhJREdhbWVwYWRQcm92aWRlcj4gc2hhcmVkTGlzdGVu
ZXI7CisgICAgcmV0dXJuIHNoYXJlZExpc3RlbmVyOworfQorCitISURHYW1lcGFkUHJvdmlkZXI6
OkhJREdhbWVwYWRQcm92aWRlcigpCisgICAgOiBtX3Nob3VsZERpc3BhdGNoQ2FsbGJhY2tzKGZh
bHNlKQoreworICAgIG1fbWFuYWdlciA9IGFkb3B0Q0YoSU9ISURNYW5hZ2VyQ3JlYXRlKGtDRkFs
bG9jYXRvckRlZmF1bHQsIGtJT0hJRE9wdGlvbnNUeXBlTm9uZSkpOworCisgICAgUmV0YWluUHRy
PENGRGljdGlvbmFyeVJlZj4gam95c3RpY2tEaWN0aW9uYXJ5ID0gZGV2aWNlTWF0Y2hpbmdEaWN0
aW9uYXJ5KGtISURQYWdlX0dlbmVyaWNEZXNrdG9wLCBrSElEVXNhZ2VfR0RfSm95c3RpY2spOwor
ICAgIFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+IGdhbWVwYWREaWN0aW9uYXJ5ID0gZGV2aWNl
TWF0Y2hpbmdEaWN0aW9uYXJ5KGtISURQYWdlX0dlbmVyaWNEZXNrdG9wLCBrSElEVXNhZ2VfR0Rf
R2FtZVBhZCk7CisKKyAgICBDRkRpY3Rpb25hcnlSZWYgZGV2aWNlc1tdID0geyBqb3lzdGlja0Rp
Y3Rpb25hcnkuZ2V0KCksIGdhbWVwYWREaWN0aW9uYXJ5LmdldCgpIH07CisKKyAgICBSZXRhaW5Q
dHI8Q0ZBcnJheVJlZj4gbWF0Y2hpbmdBcnJheSA9IGFkb3B0Q0YoQ0ZBcnJheUNyZWF0ZShrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCAoY29uc3Qgdm9pZCoqKWRldmljZXMsIDIsICZrQ0ZUeXBlQXJyYXlD
YWxsQmFja3MpKTsKKworICAgIElPSElETWFuYWdlclNldERldmljZU1hdGNoaW5nTXVsdGlwbGUo
bV9tYW5hZ2VyLmdldCgpLCBtYXRjaGluZ0FycmF5LmdldCgpKTsKKyAgICBJT0hJRE1hbmFnZXJS
ZWdpc3RlckRldmljZU1hdGNoaW5nQ2FsbGJhY2sobV9tYW5hZ2VyLmdldCgpLCBkZXZpY2VBZGRl
ZENhbGxiYWNrLCB0aGlzKTsKKyAgICBJT0hJRE1hbmFnZXJSZWdpc3RlckRldmljZVJlbW92YWxD
YWxsYmFjayhtX21hbmFnZXIuZ2V0KCksIGRldmljZVJlbW92ZWRDYWxsYmFjaywgdGhpcyk7Cisg
ICAgSU9ISURNYW5hZ2VyU2NoZWR1bGVXaXRoUnVuTG9vcChtX21hbmFnZXIuZ2V0KCksIENGUnVu
TG9vcEdldEN1cnJlbnQoKSwga0NGUnVuTG9vcERlZmF1bHRNb2RlKTsKKyAgICBJT0hJRE1hbmFn
ZXJPcGVuKG1fbWFuYWdlci5nZXQoKSwga0lPSElET3B0aW9uc1R5cGVOb25lKTsKKworICAgIElP
SElETWFuYWdlclJlZ2lzdGVySW5wdXRWYWx1ZUNhbGxiYWNrKG1fbWFuYWdlci5nZXQoKSwgZGV2
aWNlVmFsdWVzQ2hhbmdlZENhbGxiYWNrLCB0aGlzKTsKKworICAgIC8vIFdlJ2xsIGltbWVkaWF0
ZWx5IGdldCBhIHNlcmllcyBvZiBjb25uZWN0aW9uIGFuZCB2YWx1ZSBjYWxsYmFja3MgZm9yIGFs
cmVhZHktY29ubmVjdGVkIGdhbWVwYWRzCisgICAgLy8gYnV0IHdlIGRvbid0IHdhbnQgdG8gbm90
aWZ5IFdlYkNvcmUgb2YgdGhvc2UgZXZlbnRzLgorICAgIC8vIFRoaXMgY2FsbE9uTWFpblRocmVh
ZCBjYWxsIHJlLWVuYWJsZXMgdGhvc2UgY2FsbGJhY2tzIGFmdGVyIHRoZSBydW5sb29wIGVtcHRp
ZXMgb3V0LgorICAgIGNhbGxPbk1haW5UaHJlYWQoW10oKSB7CisgICAgICAgIEhJREdhbWVwYWRQ
cm92aWRlcjo6c2hhcmVkKCkuc2V0U2hvdWxkRGlzcGF0Y2hDYWxsYmFja3ModHJ1ZSk7CisgICAg
fSk7Cit9CisKK3Vuc2lnbmVkIEhJREdhbWVwYWRQcm92aWRlcjo6aW5kZXhGb3JOZXdseUNvbm5l
Y3RlZERldmljZSgpCit7CisgICAgdW5zaWduZWQgaW5kZXggPSAwOworICAgIHdoaWxlIChpbmRl
eCA8IG1fZ2FtZXBhZFZlY3Rvci5zaXplKCkgJiYgbV9nYW1lcGFkVmVjdG9yW2luZGV4XSkKKyAg
ICAgICAgKytpbmRleDsKKworICAgIHJldHVybiBpbmRleDsKK30KKwordm9pZCBISURHYW1lcGFk
UHJvdmlkZXI6OnN0YXJ0TW9uaXRvcmluZ0dhbWVwYWRzKEdhbWVwYWRQcm92aWRlckNsaWVudCog
Y2xpZW50KQoreworICAgIG1fY2xpZW50cy5hZGQoY2xpZW50KTsKK30KK3ZvaWQgSElER2FtZXBh
ZFByb3ZpZGVyOjpzdG9wTW9uaXRvcmluZ0dhbWVwYWRzKEdhbWVwYWRQcm92aWRlckNsaWVudCog
Y2xpZW50KQoreworICAgIG1fY2xpZW50cy5yZW1vdmUoY2xpZW50KTsKK30KKwordm9pZCBISURH
YW1lcGFkUHJvdmlkZXI6OmRldmljZUFkZGVkKElPSElERGV2aWNlUmVmIGRldmljZSkKK3sKKyAg
ICBBU1NFUlQoIW1fZ2FtZXBhZE1hcC5nZXQoZGV2aWNlKSk7CisKKyAgICBzdGQ6OnVuaXF1ZV9w
dHI8SElER2FtZXBhZD4gZ2FtZXBhZCA9IHN0ZDo6bWFrZV91bmlxdWU8SElER2FtZXBhZD4oZGV2
aWNlKTsKKyAgICB1bnNpZ25lZCBpbmRleCA9IGluZGV4Rm9yTmV3bHlDb25uZWN0ZWREZXZpY2Uo
KTsKKworICAgIGlmIChtX2dhbWVwYWRWZWN0b3Iuc2l6ZSgpIDw9IGluZGV4KQorICAgICAgICBt
X2dhbWVwYWRWZWN0b3IucmVzaXplKGluZGV4ICsgMSk7CisKKyAgICBtX2dhbWVwYWRWZWN0b3Jb
aW5kZXhdID0gZ2FtZXBhZC5nZXQoKTsKKyAgICBtX2dhbWVwYWRNYXAuc2V0KGRldmljZSwgc3Rk
Ojptb3ZlKGdhbWVwYWQpKTsKKworICAgIGlmICghbV9zaG91bGREaXNwYXRjaENhbGxiYWNrcykK
KyAgICAgICAgcmV0dXJuOworCisgICAgZm9yIChhdXRvJiBjbGllbnQgOiBtX2NsaWVudHMpCisg
ICAgICAgIGNsaWVudC0+cGxhdGZvcm1HYW1lcGFkQ29ubmVjdGVkKGluZGV4KTsKK30KKwordm9p
ZCBISURHYW1lcGFkUHJvdmlkZXI6OmRldmljZVJlbW92ZWQoSU9ISUREZXZpY2VSZWYgZGV2aWNl
KQoreworICAgIHN0ZDo6cGFpcjxzdGQ6OnVuaXF1ZV9wdHI8SElER2FtZXBhZD4sIHVuc2lnbmVk
PiByZW1vdmVkR2FtZXBhZCA9IHJlbW92ZUdhbWVwYWRGb3JEZXZpY2UoZGV2aWNlKTsKKyAgICBB
U1NFUlQocmVtb3ZlZEdhbWVwYWQuZmlyc3QpOworCisgICAgaWYgKCFtX3Nob3VsZERpc3BhdGNo
Q2FsbGJhY2tzKQorICAgICAgICByZXR1cm47CisKKyAgICBmb3IgKGF1dG8mIGNsaWVudCA6IG1f
Y2xpZW50cykKKyAgICAgICAgY2xpZW50LT5wbGF0Zm9ybUdhbWVwYWREaXNjb25uZWN0ZWQocmVt
b3ZlZEdhbWVwYWQuc2Vjb25kKTsKK30KKwordm9pZCBISURHYW1lcGFkUHJvdmlkZXI6OnZhbHVl
c0NoYW5nZWQoSU9ISURWYWx1ZVJlZiB2YWx1ZSkKK3sKKyAgICBJT0hJRERldmljZVJlZiBkZXZp
Y2UgPSBJT0hJREVsZW1lbnRHZXREZXZpY2UoSU9ISURWYWx1ZUdldEVsZW1lbnQodmFsdWUpKTsK
KworICAgIEhJREdhbWVwYWQqIGdhbWVwYWQgPSBtX2dhbWVwYWRNYXAuZ2V0KGRldmljZSk7CisK
KyAgICAvLyBXaGVuIHN0YXJ0aW5nIG1vbml0b3Jpbmcgd2UgbWlnaHQgZ2V0IGEgdmFsdWUgY2hh
bmdlZCBjYWxsYmFjayBiZWZvcmUgd2UgZXZlbiBrbm93IHRoZSBkZXZpY2UgaXMgY29ubmVjdGVk
LgorICAgIGlmICghZ2FtZXBhZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgZ2FtZXBhZC0+dmFs
dWVDaGFuZ2VkKHZhbHVlKTsKK30KKworc3RkOjpwYWlyPHN0ZDo6dW5pcXVlX3B0cjxISURHYW1l
cGFkPiwgdW5zaWduZWQ+ICBISURHYW1lcGFkUHJvdmlkZXI6OnJlbW92ZUdhbWVwYWRGb3JEZXZp
Y2UoSU9ISUREZXZpY2VSZWYgZGV2aWNlKQoreworICAgIHN0ZDo6cGFpcjxzdGQ6OnVuaXF1ZV9w
dHI8SElER2FtZXBhZD4sIHVuc2lnbmVkPiByZXN1bHQ7CisgICAgcmVzdWx0LmZpcnN0ID0gbV9n
YW1lcGFkTWFwLnRha2UoZGV2aWNlKTsKKyAgICBBU1NFUlQocmVzdWx0LmZpcnN0KTsKKworICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2dhbWVwYWRWZWN0b3Iuc2l6ZSgpOyArK2kpIHsK
KyAgICAgICAgaWYgKG1fZ2FtZXBhZFZlY3RvcltpXSA9PSByZXN1bHQuZmlyc3QuZ2V0KCkpIHsK
KyAgICAgICAgICAgIHJlc3VsdC5zZWNvbmQgPSBpOworICAgICAgICAgICAgbV9nYW1lcGFkVmVj
dG9yW2ldID0gbnVsbHB0cjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQor
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gRU5BQkxFKEdBTUVQQUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvSElER2FtZXBhZFByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
SElER2FtZXBhZFByb3ZpZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
MzdiNzc4NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9I
SURHYW1lcGFkUHJvdmlkZXIuaApAQCAtMCwwICsxLDc5IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBISURHYW1lcGFkUHJvdmlkZXJfaAorI2RlZmluZSBISURHYW1lcGFkUHJvdmlkZXJfaAorCisj
aWYgRU5BQkxFKEdBTUVQQUQpCisKKyNpbmNsdWRlICJHYW1lcGFkUHJvdmlkZXIuaCIKKyNpbmNs
dWRlICJISURHYW1lcGFkLmgiCisjaW5jbHVkZSA8SU9LaXQvaGlkL0lPSElETWFuYWdlci5oPgor
I2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVk
ZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNs
dWRlIDx3dGYvUmV0YWluUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgR2Ft
ZXBhZFByb3ZpZGVyQ2xpZW50OworCitjbGFzcyBISURHYW1lcGFkUHJvdmlkZXIgOiBwdWJsaWMg
R2FtZXBhZFByb3ZpZGVyIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShISURHYW1lcGFkUHJv
dmlkZXIpOworICAgIGZyaWVuZCBjbGFzcyBOZXZlckRlc3Ryb3llZDxISURHYW1lcGFkUHJvdmlk
ZXI+OworcHVibGljOgorICAgIHN0YXRpYyBISURHYW1lcGFkUHJvdmlkZXImIHNoYXJlZCgpOwor
CisgICAgdmlydHVhbCB2b2lkIHN0YXJ0TW9uaXRvcmluZ0dhbWVwYWRzKEdhbWVwYWRQcm92aWRl
ckNsaWVudCopOworICAgIHZpcnR1YWwgdm9pZCBzdG9wTW9uaXRvcmluZ0dhbWVwYWRzKEdhbWVw
YWRQcm92aWRlckNsaWVudCopOworICAgIHZpcnR1YWwgY29uc3QgVmVjdG9yPFBsYXRmb3JtR2Ft
ZXBhZCo+JiBwbGF0Zm9ybUdhbWVwYWRzKCkgeyByZXR1cm4gbV9nYW1lcGFkVmVjdG9yOyB9CisK
KyAgICB2b2lkIGRldmljZUFkZGVkKElPSElERGV2aWNlUmVmKTsKKyAgICB2b2lkIGRldmljZVJl
bW92ZWQoSU9ISUREZXZpY2VSZWYpOworICAgIHZvaWQgdmFsdWVzQ2hhbmdlZChJT0hJRFZhbHVl
UmVmKTsKKworICAgIHZvaWQgc2V0U2hvdWxkRGlzcGF0Y2hDYWxsYmFja3MoYm9vbCBzaG91bGRE
aXNwYXRjaENhbGxiYWNrcykgeyBtX3Nob3VsZERpc3BhdGNoQ2FsbGJhY2tzID0gc2hvdWxkRGlz
cGF0Y2hDYWxsYmFja3M7IH0KKworcHJpdmF0ZToKKyAgICBISURHYW1lcGFkUHJvdmlkZXIoKTsK
KworICAgIHN0ZDo6cGFpcjxzdGQ6OnVuaXF1ZV9wdHI8SElER2FtZXBhZD4sIHVuc2lnbmVkPiBy
ZW1vdmVHYW1lcGFkRm9yRGV2aWNlKElPSElERGV2aWNlUmVmKTsKKworICAgIHVuc2lnbmVkIGlu
ZGV4Rm9yTmV3bHlDb25uZWN0ZWREZXZpY2UoKTsKKworICAgIFZlY3RvcjxQbGF0Zm9ybUdhbWVw
YWQqPiBtX2dhbWVwYWRWZWN0b3I7CisgICAgSGFzaE1hcDxJT0hJRERldmljZVJlZiwgc3RkOjp1
bmlxdWVfcHRyPEhJREdhbWVwYWQ+PiBtX2dhbWVwYWRNYXA7CisKKyAgICBSZXRhaW5QdHI8SU9I
SURNYW5hZ2VyUmVmPiBtX21hbmFnZXI7CisKKyAgICBIYXNoU2V0PEdhbWVwYWRQcm92aWRlckNs
aWVudCo+IG1fY2xpZW50czsKKyAgICBib29sIG1fc2hvdWxkRGlzcGF0Y2hDYWxsYmFja3M7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoR0FNRVBBRCkK
KyNlbmRpZiAvLyBISURHYW1lcGFkUHJvdmlkZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAzZjgzZTllLi5kOTMz
MDRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE0LTA2LTI2ICBCcmFkeSBFaWRzb24g
IDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgdXNlIG9mIFBsYXRmb3JtU3Ry
YXRlZ2llcyBmb3IgR2FtZXBhZCBBUEkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMzQzNDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAy
MDE0LTA2LTI1ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBB
ZGQgSElELWJhc2VkIGdhbWVwYWQgaW1wbGVtZW50YXRpb24gZm9yIE1hYwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYjU3ZjBiNy4uMWZk
ZTdhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0xMTMsOCArMTEzLDYgQEAKIAkJNTE1OEY2RUYxMDZEODYyQTAwQUY0NTdDIC8qIFdl
Ykhpc3RvcnlEZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTE1OEY2RUUxMDZEODYyQTAwQUY0NTdDIC8qIFdlYkhpc3RvcnlEZWxlZ2F0ZS5o
ICovOyB9OwogCQk1MTg1RjYyNjEwNzEyQjgwMDA3QUEzOTMgLyogV2ViTmF2aWdhdGlvbkRhdGEu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxODVGNjI1
MTA3MTJCODAwMDdBQTM5MyAvKiBXZWJOYXZpZ2F0aW9uRGF0YS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxODVGNjI4MTA3MTJCOTcwMDdBQTM5
MyAvKiBXZWJOYXZpZ2F0aW9uRGF0YS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxODVGNjI3MTA3MTJCOTcwMDdBQTM5MyAvKiBXZWJOYXZpZ2F0aW9u
RGF0YS5tbSAqLzsgfTsKLQkJNTFBOUQ5RUQxOTVCOTQ5RjAwMUIyQjVDIC8qIFdlYkhJREdhbWVw
YWRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MUE5RDlFQjE5NUI5NDlGMDAxQjJCNUMgLyogV2ViSElER2FtZXBhZENvbnRyb2xsZXIu
aCAqLzsgfTsKLQkJNTFBOUQ5RUUxOTVCOTQ5RjAwMUIyQjVDIC8qIFdlYkhJREdhbWVwYWRDb250
cm9sbGVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTFBOUQ5RUMxOTVCOTQ5RjAwMUIyQjVDIC8qIFdlYkhJREdhbWVwYWRDb250cm9sbGVyLm1tICov
OyB9OwogCQk1MUFFREVGMTBDRUNGNDU3MDA4NTQzMjggLyogV2ViRGF0YWJhc2VNYW5hZ2VySW50
ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
QUVERUYwMENFQ0Y0NTcwMDg1NDMyOCAvKiBXZWJEYXRhYmFzZU1hbmFnZXJJbnRlcm5hbC5oICov
OyB9OwogCQk1MUIyQTEwMDBBREIxNUQwMDAyQTlCRUUgLyogV2ViSWNvbkRhdGFiYXNlRGVsZWdh
dGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQjJB
MEZGMEFEQjE1RDAwMDJBOUJFRSAvKiBXZWJJY29uRGF0YWJhc2VEZWxlZ2F0ZS5oICovOyB9Owog
CQk1MUM3MTRGQjBCMjBGNzlGMDBFNUUzM0MgLyogV2ViQmFja0ZvcndhcmRMaXN0SW50ZXJuYWwu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQzcxNEZB
MEIyMEY3OUYwMEU1RTMzQyAvKiBXZWJCYWNrRm9yd2FyZExpc3RJbnRlcm5hbC5oICovOyB9OwpA
QCAtNjAxLDggKzU5OSw2IEBACiAJCTUxQThCNTc5MDQyODM0RjcwMENBMkQzQSAvKiBXZWJWaWV3
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVu
dFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YlZpZXcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9
IDA7IH07CiAJCTUxQThCNTdBMDQyODM0RjcwMENBMkQzQSAvKiBXZWJWaWV3Lm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViVmll
dy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7
IH07CiAJCTUxQThCNTdEMDQyODM1M0EwMENBMkQzQSAvKiBXZWJWaWV3UHJpdmF0ZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJWaWV3UHJp
dmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0g
MDsgfTsKLQkJNTFBOUQ5RUIxOTVCOTQ5RjAwMUIyQjVDIC8qIFdlYkhJREdhbWVwYWRDb250cm9s
bGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkhJREdhbWVwYWRDb250
cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUxQTlEOUVDMTk1Qjk0OUYw
MDFCMkI1QyAvKiBXZWJISURHYW1lcGFkQ29udHJvbGxlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkhJREdhbWVwYWRDb250cm9sbGVyLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1MUFFREVGMDBDRUNGNDU3MDA4NTQzMjggLyogV2ViRGF0
YWJhc2VNYW5hZ2VySW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViRGF0YWJhc2VNYW5hZ2VySW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTFCMkEwRkYwQURCMTVEMDAwMkE5QkVFIC8qIFdlYkljb25EYXRhYmFzZURlbGVnYXRlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkljb25EYXRhYmFzZURlbGVnYXRl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQzcxNEZBMEIyMEY3OUYwMEU1RTMz
QyAvKiBXZWJCYWNrRm9yd2FyZExpc3RJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJCYWNrRm9yd2FyZExpc3RJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTU1MSw4ICsxNTQ3LDYgQEAKIAkJCQk5MzkxRjI3NDEyMUIzOEJEMDBF
QkY3RTggLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSAqLywKIAkJCQlCQzdGODg0OTEw
Qzg3NzVBMDBENjEzM0QgLyogV2ViR2VvbG9jYXRpb25DbGllbnQuaCAqLywKIAkJCQlCQzdGODg0
QTEwQzg3NzVBMDBENjEzM0QgLyogV2ViR2VvbG9jYXRpb25DbGllbnQubW0gKi8sCi0JCQkJNTFB
OUQ5RUIxOTVCOTQ5RjAwMUIyQjVDIC8qIFdlYkhJREdhbWVwYWRDb250cm9sbGVyLmggKi8sCi0J
CQkJNTFBOUQ5RUMxOTVCOTQ5RjAwMUIyQjVDIC8qIFdlYkhJREdhbWVwYWRDb250cm9sbGVyLm1t
ICovLAogCQkJCTUxNDk0Q0Q0MEM3RUJERTAwMDQxNzhDNSAvKiBXZWJJY29uRGF0YWJhc2VDbGll
bnQuaCAqLywKIAkJCQk1MTQ5NENENTBDN0VCREUwMDA0MTc4QzUgLyogV2ViSWNvbkRhdGFiYXNl
Q2xpZW50Lm1tICovLAogCQkJCTA2NjkzRERBMEJGQkE4NTIwMDIxNjA3MiAvKiBXZWJJbnNwZWN0
b3JDbGllbnQuaCAqLywKQEAgLTE3NjUsNyArMTc1OSw2IEBACiAJCQkJQTEwQzFENDIxODIwMkZF
RjAwMzY4ODNBIC8qIFdlYlNRTGl0ZURhdGFiYXNlVHJhY2tlckNsaWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTM5ODEwNTQwODI0QkYwMTAwOERGMDM4IC8qIFdlYkZyYW1lUHJpdmF0ZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTEwQzFENjIxODIwMzAwRTAwMzY4ODNBIC8qIFNlYXJjaFBvcHVw
TWVudUlPUy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTFBOUQ5RUQxOTVCOTQ5RjAwMUIyQjVDIC8q
IFdlYkhJREdhbWVwYWRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5Mzk4MTA2RTA4
MjRCRjAxMDA4REYwMzggLyogV2ViRnJhbWVWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQk5Mzk4
MTA2RjA4MjRCRjAxMDA4REYwMzggLyogV2ViRnJhbWVWaWV3SW50ZXJuYWwuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTkzOTgxMEFGMDgyNEJGMDEwMDhERjAzOCAvKiBXZWJGcmFtZVZpZXdQcml2YXRl
LmggaW4gSGVhZGVycyAqLywKQEAgLTIxNDQsNyArMjEzNyw2IEBACiAJCQkJMDcwRjU0OUMxN0Yx
RTQyQjAwMTY5RTA0IC8qIFdlYlVzZXJNZWRpYUNsaWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CUUxNjk4MzZDMTEzNDZENTYwMDg5NDExNSAvKiBQcm94eVJ1bnRpbWVPYmplY3QubW0gaW4gU291
cmNlcyAqLywKIAkJCQk3QzAxQ0I4ODE3MzQzNUM5MDBDNUQ4MDcgLyogU2VhcmNoUG9wdXBNZW51
TWFjLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJNTFBOUQ5RUUxOTVCOTQ5RjAwMUIyQjVDIC8qIFdl
YkhJREdhbWVwYWRDb250cm9sbGVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0VEQTEyREIxNTJD
QkU2ODAwRDlFMDhEIC8qIFdlYkFsdGVybmF0aXZlVGV4dENsaWVudC5tbSBpbiBTb3VyY2VzICov
LAogCQkJCUExMEMxRDYwMTgyMDMwMEUwMDM2ODgzQSAvKiBQb3B1cE1lbnVJT1MubW0gaW4gU291
cmNlcyAqLywKIAkJCQlCNkNFNUMyNDEwMEJDNUNFMDAyMTk5MzYgLyogV2ViQXBwbGljYXRpb25D
YWNoZS5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDk0YjA2ODYuLjZmYjE3
NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxNC0wNi0yNiAgQnJhZHkg
RWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHVzZSBvZiBQbGF0
Zm9ybVN0cmF0ZWdpZXMgZm9yIEdhbWVwYWQgQVBJLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM0MzQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIGFsbCB0aGUgR2FtZXBhZFN0cmF0ZWd5IGd1
bms6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViSElER2FtZXBhZENvbnRyb2xsZXIubW06
IFJlbW92ZWQuCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVz
Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tOgor
ICAgICAgICAoV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVHYW1lcGFkU3RyYXRlZ3kpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpzdGFydE1vbml0b3JpbmdH
YW1lcGFkcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnN0b3BN
b25pdG9yaW5nR2FtZXBhZHMpOiBEZWxldGVkLgorICAgICAgICAoV2ViUGxhdGZvcm1TdHJhdGVn
aWVzOjpwbGF0Zm9ybUdhbWVwYWRzKTogRGVsZXRlZC4KKworICAgICAgICBJbnN0ZWFkLCBpbnN0
YWxsIHRoZSBISURHYW1lcGFkUHJvdmlkZXIgYXMgdGhlIHNoYXJlZCBHYW1lcGFkUHJvdmlkZXI6
CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAoV2ViS2l0SW5pdGlhbGl6
ZUdhbWVwYWRQcm92aWRlcklmTmVjZXNzYXJ5KToKKyAgICAgICAgKC1bV2ViVmlldyBfY29tbW9u
SW5pdGlhbGl6YXRpb25XaXRoRnJhbWVOYW1lOmdyb3VwTmFtZTpdKToKKwogMjAxNC0wNi0yNSAg
QnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIEhJRC1iYXNl
ZCBnYW1lcGFkIGltcGxlbWVudGF0aW9uIGZvciBNYWMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkhJREdhbWVwYWRDb250cm9sbGVyLmggYi9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJISURHYW1lcGFkQ29udHJvbGxlci5oCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNDgzMTM3Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkhJREdhbWVwYWRDb250cm9sbGVyLmgKKysrIC9k
ZXYvbnVsbApAQCAtMSw1NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
Ci0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwot
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBXZWJISURHYW1l
cGFkQ29udHJvbGxlcl9oCi0jZGVmaW5lIFdlYkhJREdhbWVwYWRDb250cm9sbGVyX2gKLQotI2lm
IEVOQUJMRShHQU1FUEFEKQotCi0jaW5jbHVkZSA8V2ViQ29yZS9ISURHYW1lcGFkTGlzdGVuZXIu
aD4KLSNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFz
cyBHYW1lcGFkU3RyYXRlZ3lDbGllbnQ7Ci19Ci0KLWNsYXNzIFdlYkhJREdhbWVwYWRDb250cm9s
bGVyIDogcHVibGljIFdlYkNvcmU6OkhJREdhbWVwYWRMaXN0ZW5lckNsaWVudCB7Ci1wdWJsaWM6
Ci0gICAgc3RhdGljIFdlYkhJREdhbWVwYWRDb250cm9sbGVyJiBzaGFyZWQoKTsKLQotICAgIHZp
cnR1YWwgdm9pZCBnYW1lcGFkQ29ubmVjdGVkKHVuc2lnbmVkIGluZGV4KSBvdmVycmlkZSBmaW5h
bDsKLSAgICB2aXJ0dWFsIHZvaWQgZ2FtZXBhZERpc2Nvbm5lY3RlZCh1bnNpZ25lZCBpbmRleCkg
b3ZlcnJpZGUgZmluYWw7Ci0KLSAgICB2b2lkIHJlZ2lzdGVyR2FtZXBhZFN0cmF0ZWd5Q2xpZW50
KFdlYkNvcmU6OkdhbWVwYWRTdHJhdGVneUNsaWVudCopOwotICAgIHZvaWQgdW5yZWdpc3Rlckdh
bWVwYWRTdHJhdGVneUNsaWVudChXZWJDb3JlOjpHYW1lcGFkU3RyYXRlZ3lDbGllbnQqKTsKLQot
cHJpdmF0ZToKLSAgICBmcmllbmQgTmV2ZXJEZXN0cm95ZWQ8V2ViSElER2FtZXBhZENvbnRyb2xs
ZXI+OwotCi0gICAgV2ViSElER2FtZXBhZENvbnRyb2xsZXIoKTsKLQotICAgIEhhc2hTZXQ8V2Vi
Q29yZTo6R2FtZXBhZFN0cmF0ZWd5Q2xpZW50Kj4gbV9jbGllbnRzOwotfTsKLQotI2VuZGlmIC8v
IEVOQUJMRShHQU1FUEFEKQotI2VuZGlmIC8vIFdlYkhJREdhbWVwYWRDb250cm9sbGVyX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkhJREdhbWVwYWRD
b250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViSElER2Ft
ZXBhZENvbnRyb2xsZXIubW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVlN2U1ODEu
LjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViSElER2Ft
ZXBhZENvbnRyb2xsZXIubW0KKysrIC9kZXYvbnVsbApAQCAtMSw2NyArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
LSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
Ci0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI2lmIEVOQUJMRShHQU1FUEFEKQotCi0jaW1wb3J0ICJXZWJISURHYW1lcGFkQ29udHJv
bGxlci5oIgotI2ltcG9ydCA8V2ViQ29yZS9HYW1lcGFkU3RyYXRlZ3lDbGllbnQuaD4KLSNpbXBv
cnQgPFdlYkNvcmUvSElER2FtZXBhZExpc3RlbmVyLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwotCi1XZWJISURHYW1lcGFkQ29udHJvbGxlciYgV2ViSElER2FtZXBhZENvbnRyb2xsZXI6
OnNoYXJlZCgpCi17Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFdlYkhJREdhbWVwYWRDb250
cm9sbGVyPiBzaGFyZWRDbGllbnQ7Ci0gICAgcmV0dXJuIHNoYXJlZENsaWVudDsKLX0KLQotV2Vi
SElER2FtZXBhZENvbnRyb2xsZXI6OldlYkhJREdhbWVwYWRDb250cm9sbGVyKCkKLXsKLSAgICBI
SURHYW1lcGFkTGlzdGVuZXI6OnNoYXJlZCgpLnNldENsaWVudCh0aGlzKTsKLX0KLQotdm9pZCBX
ZWJISURHYW1lcGFkQ29udHJvbGxlcjo6Z2FtZXBhZENvbm5lY3RlZCh1bnNpZ25lZCBpbmRleCkK
LXsKLSAgICBmb3IgKGF1dG8mIGNsaWVudCA6IG1fY2xpZW50cykKLSAgICAgICAgY2xpZW50LT5w
bGF0Zm9ybUdhbWVwYWRDb25uZWN0ZWQoaW5kZXgpOwotfQotCi12b2lkIFdlYkhJREdhbWVwYWRD
b250cm9sbGVyOjpnYW1lcGFkRGlzY29ubmVjdGVkKHVuc2lnbmVkIGluZGV4KQotewotICAgIGZv
ciAoYXV0byYgY2xpZW50IDogbV9jbGllbnRzKQotICAgICAgICBjbGllbnQtPnBsYXRmb3JtR2Ft
ZXBhZERpc2Nvbm5lY3RlZChpbmRleCk7Ci19Ci0KLXZvaWQgV2ViSElER2FtZXBhZENvbnRyb2xs
ZXI6OnJlZ2lzdGVyR2FtZXBhZFN0cmF0ZWd5Q2xpZW50KEdhbWVwYWRTdHJhdGVneUNsaWVudCog
Y2xpZW50KQotewotICAgIG1fY2xpZW50cy5hZGQoY2xpZW50KTsKLX0KLQotdm9pZCBXZWJISURH
YW1lcGFkQ29udHJvbGxlcjo6dW5yZWdpc3RlckdhbWVwYWRTdHJhdGVneUNsaWVudChHYW1lcGFk
U3RyYXRlZ3lDbGllbnQqIGNsaWVudCkKLXsKLSAgICBtX2NsaWVudHMucmVtb3ZlKGNsaWVudCk7
Ci19Ci0KLSNlbmRpZiAvLyBFTkFCTEUoR0FNRVBBRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKaW5kZXggYTQy
OWQ5Yi4uYzZlYzQzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKQEAgLTM1LDE4ICszNSwxMCBAQAogI2lu
Y2x1ZGUgPFdlYkNvcmUvU2hhcmVkV29ya2VyU3RyYXRlZ3kuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1N0b3JhZ2VTdHJhdGVneS5oPgogCi0jaWYgRU5BQkxFKEdBTUVQQUQpCi0jaW5jbHVkZSA8V2Vi
Q29yZS9HYW1lcGFkU3RyYXRlZ3kuaD4KLSNlbmRpZgotCiBzdHJ1Y3QgUGFzdGVib2FyZEltYWdl
Owogc3RydWN0IFBhc3RlYm9hcmRXZWJDb250ZW50OwogCi1jbGFzcyBXZWJQbGF0Zm9ybVN0cmF0
ZWdpZXMgOiBwdWJsaWMgV2ViQ29yZTo6UGxhdGZvcm1TdHJhdGVnaWVzLCBwcml2YXRlIFdlYkNv
cmU6OkNvb2tpZXNTdHJhdGVneSwgcHJpdmF0ZSBXZWJDb3JlOjpEYXRhYmFzZVN0cmF0ZWd5LCBw
cml2YXRlIFdlYkNvcmU6OkxvYWRlclN0cmF0ZWd5LCBwcml2YXRlIFdlYkNvcmU6OlBhc3RlYm9h
cmRTdHJhdGVneSwgcHJpdmF0ZSBXZWJDb3JlOjpQbHVnaW5TdHJhdGVneSwgcHJpdmF0ZSBXZWJD
b3JlOjpTaGFyZWRXb3JrZXJTdHJhdGVneSwgcHJpdmF0ZSBXZWJDb3JlOjpTdG9yYWdlU3RyYXRl
Z3kKLSNpZiBFTkFCTEUoR0FNRVBBRCkKLSAgICAsIHByaXZhdGUgV2ViQ29yZTo6R2FtZXBhZFN0
cmF0ZWd5Ci0jZW5kaWYKLXsKK2NsYXNzIFdlYlBsYXRmb3JtU3RyYXRlZ2llcyA6IHB1YmxpYyBX
ZWJDb3JlOjpQbGF0Zm9ybVN0cmF0ZWdpZXMsIHByaXZhdGUgV2ViQ29yZTo6Q29va2llc1N0cmF0
ZWd5LCBwcml2YXRlIFdlYkNvcmU6OkRhdGFiYXNlU3RyYXRlZ3ksIHByaXZhdGUgV2ViQ29yZTo6
TG9hZGVyU3RyYXRlZ3ksIHByaXZhdGUgV2ViQ29yZTo6UGFzdGVib2FyZFN0cmF0ZWd5LCBwcml2
YXRlIFdlYkNvcmU6OlBsdWdpblN0cmF0ZWd5LCBwcml2YXRlIFdlYkNvcmU6OlNoYXJlZFdvcmtl
clN0cmF0ZWd5LCBwcml2YXRlIFdlYkNvcmU6OlN0b3JhZ2VTdHJhdGVneSB7CiBwdWJsaWM6CiAg
ICAgc3RhdGljIHZvaWQgaW5pdGlhbGl6ZUlmTmVjZXNzYXJ5KCk7CiAgICAgCkBAIC02MSw5ICs1
Myw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBXZWJDb3JlOjpQbHVnaW5TdHJhdGVneSogY3Jl
YXRlUGx1Z2luU3RyYXRlZ3koKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIFdlYkNvcmU6OlNoYXJl
ZFdvcmtlclN0cmF0ZWd5KiBjcmVhdGVTaGFyZWRXb3JrZXJTdHJhdGVneSgpIG92ZXJyaWRlOwog
ICAgIHZpcnR1YWwgV2ViQ29yZTo6U3RvcmFnZVN0cmF0ZWd5KiBjcmVhdGVTdG9yYWdlU3RyYXRl
Z3koKSBvdmVycmlkZTsKLSNpZiBFTkFCTEUoR0FNRVBBRCkKLSAgICB2aXJ0dWFsIFdlYkNvcmU6
OkdhbWVwYWRTdHJhdGVneSogY3JlYXRlR2FtZXBhZFN0cmF0ZWd5KCkgb3ZlcnJpZGU7Ci0jZW5k
aWYKIAogICAgIC8vIFdlYkNvcmU6OkNvb2tpZXNTdHJhdGVneQogICAgIHZpcnR1YWwgU3RyaW5n
IGNvb2tpZXNGb3JET00oY29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29u
c3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmKSBvdmVycmlk
ZTsKQEAgLTExMiwxMyArMTAxLDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGxvbmcgc2V0QnVm
ZmVyRm9yVHlwZShQYXNzUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4sIGNvbnN0IFN0cmlu
ZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpIG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgbG9uZyBzZXRQYXRobmFtZXNGb3JUeXBlKGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJv
YXJkTmFtZSkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBsb25nIHNldFN0cmluZ0ZvclR5cGUoY29u
c3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiBw
YXN0ZWJvYXJkTmFtZSkgb3ZlcnJpZGU7Ci0KLSNpZiBFTkFCTEUoR0FNRVBBRCkKLSAgICAvLyBX
ZWJDb3JlOjpHYW1lcGFkU3RyYXRlZ3kKLSAgICB2aXJ0dWFsIHZvaWQgc3RhcnRNb25pdG9yaW5n
R2FtZXBhZHMoV2ViQ29yZTo6R2FtZXBhZFN0cmF0ZWd5Q2xpZW50Kikgb3ZlcnJpZGU7Ci0gICAg
dmlydHVhbCB2b2lkIHN0b3BNb25pdG9yaW5nR2FtZXBhZHMoV2ViQ29yZTo6R2FtZXBhZFN0cmF0
ZWd5Q2xpZW50Kikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6
UGxhdGZvcm1HYW1lcGFkKj4mIHBsYXRmb3JtR2FtZXBhZHMoKSBvdmVycmlkZTsKLSNlbmRpZgog
fTsKIAogI2VuZGlmIC8vIFdlYlBsYXRmb3JtU3RyYXRlZ2llc19oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0gYi9T
b3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0K
aW5kZXggZjQwZTE4OS4uZjE2OGU3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbQpAQCAtNDAsMTAgKzQw
LDYgQEAKICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgogI2ltcG9ydCA8d3RmL05l
dmVyRGVzdHJveWVkLmg+CiAKLSNpZiBFTkFCTEUoR0FNRVBBRCkKLSNpbXBvcnQgIldlYkhJREdh
bWVwYWRDb250cm9sbGVyLmgiCi0jZW5kaWYKLQogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
IHZvaWQgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjppbml0aWFsaXplSWZOZWNlc3NhcnkoKQpAQCAt
OTQsMTMgKzkwLDYgQEAgU3RvcmFnZVN0cmF0ZWd5KiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNy
ZWF0ZVN0b3JhZ2VTdHJhdGVneSgpCiAgICAgcmV0dXJuIHRoaXM7CiB9CiAKLSNpZiBFTkFCTEUo
R0FNRVBBRCkKLUdhbWVwYWRTdHJhdGVneSogV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVH
YW1lcGFkU3RyYXRlZ3koKQotewotICAgIHJldHVybiB0aGlzOwotfQotI2VuZGlmCi0KIFN0cmlu
ZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvb2tpZXNGb3JET00oY29uc3QgTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFVSTCYgdXJs
KQogewogICAgIHJldHVybiBXZWJDb3JlOjpjb29raWVzRm9yRE9NKHNlc3Npb24sIGZpcnN0UGFy
dHksIHVybCk7CkBAIC0yMjQsMjMgKzIxMyw2IEBAIGxvbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVz
OjpzZXRTdHJpbmdGb3JUeXBlKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBjb25zdCBTdHJpbmcmCiAg
ICAgcmV0dXJuIFBsYXRmb3JtUGFzdGVib2FyZChwYXN0ZWJvYXJkTmFtZSkuc2V0U3RyaW5nRm9y
VHlwZShzdHJpbmcsIHBhc3RlYm9hcmRUeXBlKTsKIH0KIAotI2lmIEVOQUJMRShHQU1FUEFEKQot
dm9pZCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnN0YXJ0TW9uaXRvcmluZ0dhbWVwYWRzKEdhbWVw
YWRTdHJhdGVneUNsaWVudCogY2xpZW50KQotewotICAgIFdlYkhJREdhbWVwYWRDb250cm9sbGVy
OjpzaGFyZWQoKS5yZWdpc3RlckdhbWVwYWRTdHJhdGVneUNsaWVudChjbGllbnQpOwotfQotCi12
b2lkIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6c3RvcE1vbml0b3JpbmdHYW1lcGFkcyhHYW1lcGFk
U3RyYXRlZ3lDbGllbnQqIGNsaWVudCkKLXsKLSAgICBXZWJISURHYW1lcGFkQ29udHJvbGxlcjo6
c2hhcmVkKCkudW5yZWdpc3RlckdhbWVwYWRTdHJhdGVneUNsaWVudChjbGllbnQpOwotfQotCi1j
b25zdCBWZWN0b3I8UGxhdGZvcm1HYW1lcGFkKj4mIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6cGxh
dGZvcm1HYW1lcGFkcygpCi17Ci0gICAgcmV0dXJuIEhJREdhbWVwYWRMaXN0ZW5lcjo6c2hhcmVk
KCkucGxhdGZvcm1HYW1lcGFkcygpOwotfQotI2VuZGlmIC8vIEVOQUJMRShHQU1FUEFEKQotCiAj
aWYgUExBVEZPUk0oSU9TKQogdm9pZCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OndyaXRlVG9QYXN0
ZWJvYXJkKGNvbnN0IFdlYkNvcmU6OlBhc3RlYm9hcmRXZWJDb250ZW50JiBjb250ZW50KQogewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDQ1Yzk3OTguLjBmNzQyMGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTI4Miw2ICsyODIsMTAgQEAKICNp
bXBvcnQgPFdlYkNvcmUvRGlza0ltYWdlQ2FjaGVJT1MuaD4KICNlbmRpZgogCisjaWYgRU5BQkxF
KEdBTUVQQUQpCisjaW1wb3J0IDxXZWJDb3JlL0hJREdhbWVwYWRQcm92aWRlci5oPgorI2VuZGlm
CisKICNpZiAhUExBVEZPUk0oSU9TKQogQGludGVyZmFjZSBOU1NwZWxsQ2hlY2tlciAoV2ViTlNT
cGVsbENoZWNrZXJEZXRhaWxzKQogLSAodm9pZClfcHJlZmxpZ2h0Q2hvc2VuU3BlbGxTZXJ2ZXI7
CkBAIC04MzgsNiArODQyLDE4IEBAIHN0YXRpYyBib29sIHNob3VsZFVzZUxlZ2FjeUJhY2tncm91
bmRTaXplU2hvcnRoYW5kQmVoYXZpb3IoKQogICAgIHJldHVybiBzaG91bGRVc2VMZWdhY3lCYWNr
Z3JvdW5kU2l6ZVNob3J0aGFuZEJlaGF2aW9yOwogfQogCisjaWYgRU5BQkxFKEdBTUVQQUQpCitz
dGF0aWMgdm9pZCBXZWJLaXRJbml0aWFsaXplR2FtZXBhZFByb3ZpZGVySWZOZWNlc3NhcnkoKQor
eworICAgIHN0YXRpYyBib29sIGluaXRpYWxpemVkID0gZmFsc2U7CisgICAgaWYgKGluaXRpYWxp
emVkKQorICAgICAgICByZXR1cm47CisKKyAgICBHYW1lcGFkUHJvdmlkZXI6OnNoYXJlZCgpLnNl
dFNoYXJlZFByb3ZpZGVyKEhJREdhbWVwYWRQcm92aWRlcjo6c2hhcmVkKCkpOworICAgIGluaXRp
YWxpemVkID0gdHJ1ZTsKK30KKyNlbmRpZgorCiAtICh2b2lkKV9jb21tb25Jbml0aWFsaXphdGlv
bldpdGhGcmFtZU5hbWU6KE5TU3RyaW5nICopZnJhbWVOYW1lIGdyb3VwTmFtZTooTlNTdHJpbmcg
Kilncm91cE5hbWUKIHsKICAgICBXZWJDb3JlVGhyZWFkVmlvbGF0aW9uQ2hlY2tSb3VuZFR3bygp
OwpAQCAtODk2LDYgKzkxMiw5IEBAIC0gKHZvaWQpX2NvbW1vbkluaXRpYWxpemF0aW9uV2l0aEZy
YW1lTmFtZTooTlNTdHJpbmcgKilmcmFtZU5hbWUgZ3JvdXBOYW1lOihOU1N0CiAjaWYgRU5BQkxF
KERJU0tfSU1BR0VfQ0FDSEUpICYmIFBMQVRGT1JNKElPUykKICAgICAgICAgV2ViS2l0SW5pdGlh
bGl6ZVdlYkRpc2tJbWFnZUNhY2hlKCk7CiAjZW5kaWYKKyNpZiBFTkFCTEUoR0FNRVBBRCkKKyAg
ICAgICAgV2ViS2l0SW5pdGlhbGl6ZUdhbWVwYWRQcm92aWRlcklmTmVjZXNzYXJ5KCk7CisjZW5k
aWYKICAgICAgICAgCiAgICAgICAgIFNldHRpbmdzOjpzZXREZWZhdWx0TWluRE9NVGltZXJJbnRl
cnZhbCgwLjAwNCk7CiAgICAgICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IDUzZDUxMTIuLmUyNzc2
OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxNC0wNi0yNiAgQnJhZHkg
RWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHVzZSBvZiBQbGF0
Zm9ybVN0cmF0ZWdpZXMgZm9yIEdhbWVwYWQgQVBJLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM0MzQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0
ZWdpZXMuY3BwOgorICAgICAgICAoV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVHYW1lcGFk
U3RyYXRlZ3kpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3Jt
U3RyYXRlZ2llcy5oOgorCiAyMDE0LTA2LTI1ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxl
LmNvbT4KIAogICAgICAgICBBZGQgbmV3IHBsYXRmb3JtIGdhbWVwYWQgYWJzdHJhY3Rpb25zCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0
cmF0ZWdpZXMuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZv
cm1TdHJhdGVnaWVzLmNwcAppbmRleCBkYTE4ZjAxLi45YmE2NTM3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2ll
cy5jcHAKQEAgLTgzLDEzICs4Myw2IEBAIFN0b3JhZ2VTdHJhdGVneSogV2ViUGxhdGZvcm1TdHJh
dGVnaWVzOjpjcmVhdGVTdG9yYWdlU3RyYXRlZ3koKQogICAgIHJldHVybiB0aGlzOwogfQogCi0j
aWYgRU5BQkxFKEdBTUVQQUQpCi1HYW1lcGFkU3RyYXRlZ3kqIFdlYlBsYXRmb3JtU3RyYXRlZ2ll
czo6Y3JlYXRlR2FtZXBhZFN0cmF0ZWd5KCkKLXsKLSAgICByZXR1cm4gbnVsbHB0cjsKLX0KLSNl
bmRpZgotCiBTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb29raWVzRm9yRE9NKGNvbnN0
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBj
b25zdCBVUkwmIHVybCkKIHsKICAgICByZXR1cm4gV2ViQ29yZTo6Y29va2llc0ZvckRPTShzZXNz
aW9uLCBmaXJzdFBhcnR5LCB1cmwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2Vi
Q29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmggYi9Tb3VyY2UvV2ViS2l0L3dpbi9X
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAppbmRleCAyN2JlNDU1Li4yYjk0
NGQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0
Zm9ybVN0cmF0ZWdpZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9X
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaApAQCAtNDksOSArNDksNiBAQCBwcml2YXRlOgogICAgIHZp
cnR1YWwgV2ViQ29yZTo6UGx1Z2luU3RyYXRlZ3kqIGNyZWF0ZVBsdWdpblN0cmF0ZWd5KCk7CiAg
ICAgdmlydHVhbCBXZWJDb3JlOjpTaGFyZWRXb3JrZXJTdHJhdGVneSogY3JlYXRlU2hhcmVkV29y
a2VyU3RyYXRlZ3koKTsKICAgICB2aXJ0dWFsIFdlYkNvcmU6OlN0b3JhZ2VTdHJhdGVneSogY3Jl
YXRlU3RvcmFnZVN0cmF0ZWd5KCk7Ci0jaWYgRU5BQkxFKEdBTUVQQUQpCi0gICAgdmlydHVhbCBX
ZWJDb3JlOjpHYW1lcGFkU3RyYXRlZ3kqIGNyZWF0ZUdhbWVwYWRTdHJhdGVneSgpOwotI2VuZGlm
CiAKICAgICAvLyBXZWJDb3JlOjpDb29raWVzU3RyYXRlZ3kKICAgICB2aXJ0dWFsIFN0cmluZyBj
b29raWVzRm9yRE9NKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0
IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
aW5kZXggZTZjMzVkNi4uNzFlMWE1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE0
LTA2LTI2ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1v
dmUgdXNlIG9mIFBsYXRmb3JtU3RyYXRlZ2llcyBmb3IgR2FtZXBhZCBBUEkuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzQzNDgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZUdhbWVwYWRTdHJhdGVneSk6IERl
bGV0ZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0
cmF0ZWdpZXMuaDoKKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxh
dGZvcm1TdHJhdGVnaWVzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1TdHJhdGVn
aWVzOjpjcmVhdGVHYW1lcGFkU3RyYXRlZ3kpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpX
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnN0YXJ0TW9uaXRvcmluZ0dhbWVwYWRzKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpzdG9wTW9uaXRvcmluZ0dh
bWVwYWRzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1TdHJhdGVnaWVz
OjpwbGF0Zm9ybUdhbWVwYWRzKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oOgorCiAyMDE0LTA2LTI0ICBSb2dlciBG
b25nICA8cm9nZXJfZm9uZ0BhcHBsZS5jb20+CiAKICAgICAgICAgRG9uJ3QgYWxsb3cgc3VkZGVu
IHRlcm1pbmF0aW9uIHdoaWxlIHdyaXRpbmcgdG8gbG9jYWwgc3RvcmFnZS4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJh
dGVnaWVzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
UGxhdGZvcm1TdHJhdGVnaWVzLmNwcAppbmRleCBlNjg1NTcxLi41NWQ4YTk5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3Ry
YXRlZ2llcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCkBAIC03NCwxMyArNzQsNiBAQCBTdG9yYWdlU3Ry
YXRlZ3kqIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVTdG9yYWdlU3Ry
YXRlZ3koKQogICAgIHJldHVybiAwOwogfQogCi0jaWYgRU5BQkxFKEdBTUVQQUQpCi1HYW1lcGFk
U3RyYXRlZ3kqIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVHYW1lcGFk
U3RyYXRlZ3koKQotewotICAgIHJldHVybiBudWxscHRyOwotfQotI2VuZGlmCi0KIFJlc291cmNl
TG9hZFNjaGVkdWxlciogTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXM6OnJlc291cmNl
TG9hZFNjaGVkdWxlcigpCiB7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3Ry
YXRlZ2llcy5oIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NQ
bGF0Zm9ybVN0cmF0ZWdpZXMuaAppbmRleCBmNzBjZmQwLi42MGJlNjE1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRl
Z2llcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
UGxhdGZvcm1TdHJhdGVnaWVzLmgKQEAgLTQ0LDkgKzQ0LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0
dWFsIFdlYkNvcmU6OlBsdWdpblN0cmF0ZWd5KiBjcmVhdGVQbHVnaW5TdHJhdGVneSgpIG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgV2ViQ29yZTo6U2hhcmVkV29ya2VyU3RyYXRlZ3kqIGNyZWF0ZVNo
YXJlZFdvcmtlclN0cmF0ZWd5KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpTdG9y
YWdlU3RyYXRlZ3kqIGNyZWF0ZVN0b3JhZ2VTdHJhdGVneSgpIG92ZXJyaWRlOwotI2lmIEVOQUJM
RShHQU1FUEFEKQotICAgIHZpcnR1YWwgV2ViQ29yZTo6R2FtZXBhZFN0cmF0ZWd5KiBjcmVhdGVH
YW1lcGFkU3RyYXRlZ3koKSBvdmVycmlkZTsKLSNlbmRpZgogCiAgICAgLy8gV2ViQ29yZTo6TG9h
ZGVyU3RyYXRlZ3kKICAgICB2aXJ0dWFsIFdlYkNvcmU6OlJlc291cmNlTG9hZFNjaGVkdWxlciog
cmVzb3VyY2VMb2FkU2NoZWR1bGVyKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3Ry
YXRlZ2llcy5jcHAKaW5kZXggYzg0ZWI0OC4uNzQyMmM5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZv
cm1TdHJhdGVnaWVzLmNwcApAQCAtMTI0LDEzICsxMjQsNiBAQCBTdG9yYWdlU3RyYXRlZ3kqIFdl
YlBsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlU3RvcmFnZVN0cmF0ZWd5KCkKICAgICByZXR1cm4g
dGhpczsKIH0KIAotI2lmIEVOQUJMRShHQU1FUEFEKQotR2FtZXBhZFN0cmF0ZWd5KiBXZWJQbGF0
Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZUdhbWVwYWRTdHJhdGVneSgpCi17Ci0gICAgcmV0dXJuIHRo
aXM7Ci19Ci0jZW5kaWYKLQogLy8gQ29va2llc1N0cmF0ZWd5CiAKIFN0cmluZyBXZWJQbGF0Zm9y
bVN0cmF0ZWdpZXM6OmNvb2tpZXNGb3JET00oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBz
ZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFVSTCYgdXJsKQpAQCAtNTEzLDIy
ICs1MDYsNiBAQCBsb25nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6c2V0U3RyaW5nRm9yVHlwZShj
b25zdCBTdHJpbmcmIHN0cmluZywgY29uc3QgU3RyaW5nJgogICAgIHJldHVybiBuZXdDaGFuZ2VD
b3VudDsKIH0KIAotI2lmIEVOQUJMRShHQU1FUEFEKQotdm9pZCBXZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXM6OnN0YXJ0TW9uaXRvcmluZ0dhbWVwYWRzKEdhbWVwYWRTdHJhdGVneUNsaWVudCopCi17Ci19
Ci0KLXZvaWQgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpzdG9wTW9uaXRvcmluZ0dhbWVwYWRzKEdh
bWVwYWRTdHJhdGVneUNsaWVudCopCi17Ci19Ci0KLWNvbnN0IFZlY3RvcjxQbGF0Zm9ybUdhbWVw
YWQqPiYgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpwbGF0Zm9ybUdhbWVwYWRzKCkKLXsKLSAgICBO
ZXZlckRlc3Ryb3llZDxWZWN0b3I8UGxhdGZvcm1HYW1lcGFkKj4+IGR1bW15R2FtZXBhZHM7Ci0g
ICAgcmV0dXJuIGR1bW15R2FtZXBhZHM7Ci19Ci0jZW5kaWYgLy8gRU5BQkxFKEdBTUVQQUQpCi0K
ICNpZiBQTEFURk9STShJT1MpCiB2b2lkIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6d3JpdGVUb1Bh
c3RlYm9hcmQoY29uc3QgV2ViQ29yZTo6UGFzdGVib2FyZFdlYkNvbnRlbnQmIGNvbnRlbnQpCiB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlBsYXRmb3JtU3RyYXRlZ2llcy5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAppbmRleCA3N2EzZjkzLi4zMjQ4NDEyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBs
YXRmb3JtU3RyYXRlZ2llcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKQEAgLTM2LDE3ICszNiw5IEBACiAjaW5j
bHVkZSA8V2ViQ29yZS9TdG9yYWdlU3RyYXRlZ3kuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0
cm95ZWQuaD4KIAotI2lmIEVOQUJMRShHQU1FUEFEKQotI2luY2x1ZGUgPFdlYkNvcmUvR2FtZXBh
ZFN0cmF0ZWd5Lmg+Ci0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNsYXNzIFdlYlBs
YXRmb3JtU3RyYXRlZ2llcyA6IHB1YmxpYyBXZWJDb3JlOjpQbGF0Zm9ybVN0cmF0ZWdpZXMsIHBy
aXZhdGUgV2ViQ29yZTo6Q29va2llc1N0cmF0ZWd5LCBwcml2YXRlIFdlYkNvcmU6OkRhdGFiYXNl
U3RyYXRlZ3ksIHByaXZhdGUgV2ViQ29yZTo6TG9hZGVyU3RyYXRlZ3ksIHByaXZhdGUgV2ViQ29y
ZTo6UGFzdGVib2FyZFN0cmF0ZWd5LCBwcml2YXRlIFdlYkNvcmU6OlBsdWdpblN0cmF0ZWd5LCBw
cml2YXRlIFdlYkNvcmU6OlNoYXJlZFdvcmtlclN0cmF0ZWd5LCBwcml2YXRlIFdlYkNvcmU6OlN0
b3JhZ2VTdHJhdGVneQotI2lmIEVOQUJMRShHQU1FUEFEKQotICAgICwgcHJpdmF0ZSBXZWJDb3Jl
OjpHYW1lcGFkU3RyYXRlZ3kKLSNlbmRpZgoteworY2xhc3MgV2ViUGxhdGZvcm1TdHJhdGVnaWVz
IDogcHVibGljIFdlYkNvcmU6OlBsYXRmb3JtU3RyYXRlZ2llcywgcHJpdmF0ZSBXZWJDb3JlOjpD
b29raWVzU3RyYXRlZ3ksIHByaXZhdGUgV2ViQ29yZTo6RGF0YWJhc2VTdHJhdGVneSwgcHJpdmF0
ZSBXZWJDb3JlOjpMb2FkZXJTdHJhdGVneSwgcHJpdmF0ZSBXZWJDb3JlOjpQYXN0ZWJvYXJkU3Ry
YXRlZ3ksIHByaXZhdGUgV2ViQ29yZTo6UGx1Z2luU3RyYXRlZ3ksIHByaXZhdGUgV2ViQ29yZTo6
U2hhcmVkV29ya2VyU3RyYXRlZ3ksIHByaXZhdGUgV2ViQ29yZTo6U3RvcmFnZVN0cmF0ZWd5IHsK
ICAgICBmcmllbmQgY2xhc3MgTmV2ZXJEZXN0cm95ZWQ8V2ViUGxhdGZvcm1TdHJhdGVnaWVzPjsK
IHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBpbml0aWFsaXplKCk7CkBAIC02Miw5ICs1NCw2IEBA
IHByaXZhdGU6CiAgICAgdmlydHVhbCBXZWJDb3JlOjpQbHVnaW5TdHJhdGVneSogY3JlYXRlUGx1
Z2luU3RyYXRlZ3koKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIFdlYkNvcmU6OlNoYXJlZFdvcmtl
clN0cmF0ZWd5KiBjcmVhdGVTaGFyZWRXb3JrZXJTdHJhdGVneSgpIG92ZXJyaWRlOwogICAgIHZp
cnR1YWwgV2ViQ29yZTo6U3RvcmFnZVN0cmF0ZWd5KiBjcmVhdGVTdG9yYWdlU3RyYXRlZ3koKSBv
dmVycmlkZTsKLSNpZiBFTkFCTEUoR0FNRVBBRCkKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkdhbWVw
YWRTdHJhdGVneSogY3JlYXRlR2FtZXBhZFN0cmF0ZWd5KCkgb3ZlcnJpZGU7Ci0jZW5kaWYKIAog
ICAgIC8vIFdlYkNvcmU6OkNvb2tpZXNTdHJhdGVneQogICAgIHZpcnR1YWwgU3RyaW5nIGNvb2tp
ZXNGb3JET00oY29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgV2Vi
Q29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmKSBvdmVycmlkZTsKQEAg
LTEzOCwxMyArMTI3LDYgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8V2ViQ29yZTo6UGx1Z2luSW5m
bz4gbV9jYWNoZWRQbHVnaW5zOwogICAgIFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiBtX2Nh
Y2hlZEFwcGxpY2F0aW9uUGx1Z2luczsKICNlbmRpZiAvLyBFTkFCTEUoTkVUU0NBUEVfUExVR0lO
X0FQSSkKLQotI2lmIEVOQUJMRShHQU1FUEFEKQotICAgIC8vIFdlYkNvcmU6OkdhbWVwYWRTdHJh
dGVneQotICAgIHZpcnR1YWwgdm9pZCBzdGFydE1vbml0b3JpbmdHYW1lcGFkcyhXZWJDb3JlOjpH
YW1lcGFkU3RyYXRlZ3lDbGllbnQqKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgc3RvcE1v
bml0b3JpbmdHYW1lcGFkcyhXZWJDb3JlOjpHYW1lcGFkU3RyYXRlZ3lDbGllbnQqKSBvdmVycmlk
ZTsKLSAgICB2aXJ0dWFsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpQbGF0Zm9ybUdhbWVwYWQqPiYg
cGxhdGZvcm1HYW1lcGFkcygpIG92ZXJyaWRlOwotI2VuZGlmCiB9OwogCiAjaWYgRU5BQkxFKE5F
VFNDQVBFX1BMVUdJTl9BUEkpCg==
</data>
<flag name="review"
          id="258439"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
      

    </bug>

</bugzilla>