<?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>203346</bug_id>
          
          <creation_ts>2019-10-23 15:52:30 -0700</creation_ts>
          <short_desc>[WebAuthn] Support authenticatorGetNextAssertion</short_desc>
          <delta_ts>2020-01-10 11:06:53 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>181943</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jiewen Tan">jiewen_tan</reporter>
          <assigned_to name="Jiewen Tan">jiewen_tan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1583114</commentid>
    <comment_count>0</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-10-23 15:52:30 -0700</bug_when>
    <thetext>Support authenticatorGetNextAssertion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1583116</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-23 15:53:00 -0700</bug_when>
    <thetext>&lt;rdar://problem/56558488&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1583130</commentid>
    <comment_count>2</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-10-23 16:08:03 -0700</bug_when>
    <thetext>https://fidoalliance.org/specs/fido-v2.0-ps-20190130/fido-client-to-authenticator-protocol-v2.0-ps-20190130.html#authenticatorGetNextAssertion</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1604803</commentid>
    <comment_count>3</comment_count>
      <attachid>387260</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-01-09 13:17:18 -0800</bug_when>
    <thetext>Created attachment 387260
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1604863</commentid>
    <comment_count>4</comment_count>
      <attachid>387273</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-01-09 14:30:33 -0800</bug_when>
    <thetext>Created attachment 387273
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1604929</commentid>
    <comment_count>5</comment_count>
      <attachid>387273</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2020-01-09 17:05:39 -0800</bug_when>
    <thetext>Comment on attachment 387273
Patch

Looks good! r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1604931</commentid>
    <comment_count>6</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-01-09 17:09:33 -0800</bug_when>
    <thetext>Thanks Brent for r+ this patch. I will wait until all EWS turn green to cq+ the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605159</commentid>
    <comment_count>7</comment_count>
      <attachid>387273</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-01-10 09:40:26 -0800</bug_when>
    <thetext>Comment on attachment 387273
Patch

All test failures are not related.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605208</commentid>
    <comment_count>8</comment_count>
      <attachid>387273</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-10 11:06:52 -0800</bug_when>
    <thetext>Comment on attachment 387273
Patch

Clearing flags on attachment: 387273

Committed r254356: &lt;https://trac.webkit.org/changeset/254356&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605209</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-10 11:06:53 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387260</attachid>
            <date>2020-01-09 13:17:18 -0800</date>
            <delta_ts>2020-01-09 14:30:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203346-20200109131718.patch</filename>
            <type>text/plain</type>
            <size>34745</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MDUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWY4YWIxMDU1YWZlOTBl
NTY5OTU5NGU0YmVjYmI1ZDcyNzdjNzZmNC4uOTVjY2JhYmFiMTgzNzg4MDYwYjM2MzJhMTkyZDZh
OTA2Y2FmYTlmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIwLTAxLTA5ICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhuXSBTdXBw
b3J0IGF1dGhlbnRpY2F0b3JHZXROZXh0QXNzZXJ0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDMzNDYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzU2NTU4NDg4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIENvdmVyZWQgYnkgbmV3IHRlc3RzIHdpdGhpbiBleGlzdGluZyB0ZXN0IGZpbGVzLgorCisg
ICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2Uu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZTo6c2V0
TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2U6
Om5hbWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGljYXRvckFzc2VydGlvblJl
c3BvbnNlOjpzZXREaXNwbGF5TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdG9y
QXNzZXJ0aW9uUmVzcG9uc2U6OmRpc3BsYXlOYW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZTo6c2V0TnVtYmVyT2ZDcmVkZW50aWFscyk6
CisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2U6Om51bWJl
ck9mQ3JlZGVudGlhbHMgY29uc3QpOgorICAgICAgICBBZGRzIG5ldyBtZW1iZXJzIHRvIHN0b3Jl
IG5ldyBmaWVsZHMgb2YgdGhlIHJlc3BvbnNlIGZyb20gdGhlIGF1dGhlbnRpY2F0b3IuIEZpZWxk
ICJpY29uIgorICAgICAgICBpcyBvbWl0dGVkIGdpdmVuIGl0IGNvdWxkIGJlIHVzZWQgdG8gdHJh
Y2sgdXNlcnMgYWNjb3JkaW5nIHRvIGh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViYXV0aG4vaXNz
dWVzLzEyODUuCisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJlc3BvbnNl
Q29udmVydGVyLmNwcDoKKyAgICAgICAgKGZpZG86OnJlYWRDVEFQR2V0QXNzZXJ0aW9uUmVzcG9u
c2UpOgorICAgICAgICBBZGRzIG5ldyBsb2dpYyB0byBwYXJzZSBhYm92ZSBmaWVsZHMgZnJvbSBh
biBhdXRoZW50aWNhdG9yIHJlc3BvbnNlLgorCiAyMDIwLTAxLTA2ICBQZXIgQXJuZSBWb2xsYW4g
IDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBJc3N1ZSBtYWNoIGxvb2t1cCBl
eHRlbnNpb24gdG8gbGF1bmNoIHNlcnZpY2VzIGRhZW1vbiBmb3IgTWFpbApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA5
OWMzNzI3MDFmYzMzMzA0MzQ0MTlhNmRhNWIzNjZiMTg3YTdmN2U3Li42MjBhNjE5MzE2NjQzZmZh
N2MxMWZhNmE3ODNmOGZlOWE5MmQ1NWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIw
LTAxLTA5ICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dl
YkF1dGhuXSBTdXBwb3J0IGF1dGhlbnRpY2F0b3JHZXROZXh0QXNzZXJ0aW9uCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDMzNDYKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzU2NTU4NDg4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW1wbGVtZW50cyBhdXRoZW50aWNhdG9yR2V0TmV4
dEFzc2VydGlvbiBhcyBzdWdnZXN0ZWQgYnkgdGhlIHNwZWM6CisgICAgICAgIGh0dHBzOi8vZmlk
b2FsbGlhbmNlLm9yZy9zcGVjcy9maWRvLXYyLjAtcHMtMjAxOTAxMzAvZmlkby1jbGllbnQtdG8t
YXV0aGVudGljYXRvci1wcm90b2NvbC12Mi4wLXBzLTIwMTkwMTMwLmh0bWwjYXV0aGVudGljYXRv
ckdldE5leHRBc3NlcnRpb24KKworICAgICAgICBUaGUgd29yayBmbG93IGlzIGFzIGZvbGxvdzoK
KyAgICAgICAgMSkgV2hlbiBhIHZhbGlkIGFzc2VydGlvbiByZXNwb25zZSBpcyByZWNlaXZlZCwg
Y2hlY2sgaXRzIG51bWJlck9mQ3JlZGVudGlhbHMgbWVtYmVyOworICAgICAgICAyKSBXaGVuIGl0
IGlzIGxhcmdlciB0aGVuIDEsIHVzZSBhdXRoZW50aWNhdG9yR2V0TmV4dEFzc2VydGlvbiB0byBn
ZXQgYWxsIHJlbWFpbmluZyByZXNwb25zZXM7CisgICAgICAgIDMpIE9uY2UgYWxsIHJlc3BvbnNl
cyBhcmUgZ2F0aGVyZWQsIGFzayBVSSBjbGllbnRzIHRvIHBpY2sgb25lIHRvIHJldHVybi4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJV2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudC5o
OgorICAgICAgICAoQVBJOjpXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50OjpzZWxlY3RBc3Nl
cnRpb25SZXNwb25zZXMgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9BdXRoZW50aWNhdG9yLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6QXV0aGVudGlj
YXRvck1hbmFnZXI6OnNlbGVjdEFzc2VydGlvblJlc3BvbnNlcyk6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmg6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja0hpZENvbm5lY3Rpb24uY3BwOgor
ICAgICAgICAoV2ViS2l0OjpNb2NrSGlkQ29ubmVjdGlvbjo6cGFyc2VSZXF1ZXN0KToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlkby9DdGFwQXV0aGVudGljYXRvci5j
cHA6CisgICAgICAgIChXZWJLaXQ6OkN0YXBBdXRoZW50aWNhdG9yOjpjb250aW51ZUdldEFzc2Vy
dGlvbkFmdGVyUmVzcG9uc2VSZWNlaXZlZCk6CisgICAgICAgIChXZWJLaXQ6OkN0YXBBdXRoZW50
aWNhdG9yOjpjb250aW51ZUdldE5leHRBc3NlcnRpb25BZnRlclJlc3BvbnNlUmVjZWl2ZWQpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRvL0N0YXBBdXRoZW50aWNh
dG9yLmg6CisKIDIwMjAtMDEtMDYgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29t
PgogCiAgICAgICAgIFtpT1NdIElzc3VlIG1hY2ggbG9va3VwIGV4dGVuc2lvbiB0byBsYXVuY2gg
c2VydmljZXMgZGFlbW9uIGZvciBNYWlsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZS5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UuaApp
bmRleCBhYmEyMjllY2JmNDI2ODM5YzAzMzhjMmNkNTRiYmIyZmMxMDVjNzA4Li5kYzRjODAzN2Ez
NTY4MTNiZTUyYmMzNzlmNDg3ZjViNTc5MWM4ZTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvckFzc2VydGlvblJl
c3BvbnNlLmgKQEAgLTQxLDYgKzQxLDEzIEBAIHB1YmxpYzoKICAgICBBcnJheUJ1ZmZlciogc2ln
bmF0dXJlKCkgY29uc3QgeyByZXR1cm4gbV9zaWduYXR1cmUucHRyKCk7IH0KICAgICBBcnJheUJ1
ZmZlciogdXNlckhhbmRsZSgpIGNvbnN0IHsgcmV0dXJuIG1fdXNlckhhbmRsZS5nZXQoKTsgfQog
CisgICAgdm9pZCBzZXROYW1lKGNvbnN0IFN0cmluZyYgbmFtZSkgeyBtX25hbWUgPSBuYW1lOyB9
CisgICAgU3RyaW5nIG5hbWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KKyAgICB2b2lkIHNl
dERpc3BsYXlOYW1lKGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUpIHsgbV9kaXNwbGF5TmFtZSA9
IGRpc3BsYXlOYW1lOyB9CisgICAgU3RyaW5nIGRpc3BsYXlOYW1lKCkgY29uc3QgeyByZXR1cm4g
bV9kaXNwbGF5TmFtZTsgfQorICAgIHZvaWQgc2V0TnVtYmVyT2ZDcmVkZW50aWFscyhzaXplX3Qg
bnVtYmVyT2ZDcmVkZW50aWFscykgeyBtX251bWJlck9mQ3JlZGVudGlhbHMgPSBudW1iZXJPZkNy
ZWRlbnRpYWxzOyB9CisgICAgc2l6ZV90IG51bWJlck9mQ3JlZGVudGlhbHMoKSBjb25zdCB7IHJl
dHVybiBtX251bWJlck9mQ3JlZGVudGlhbHM7IH0KKwogcHJpdmF0ZToKICAgICBBdXRoZW50aWNh
dG9yQXNzZXJ0aW9uUmVzcG9uc2UoUmVmPEFycmF5QnVmZmVyPiYmLCBSZWY8QXJyYXlCdWZmZXI+
JiYsIFJlZjxBcnJheUJ1ZmZlcj4mJiwgUmVmUHRyPEFycmF5QnVmZmVyPiYmKTsKIApAQCAtNTAs
NiArNTcsMTAgQEAgcHJpdmF0ZToKICAgICBSZWY8QXJyYXlCdWZmZXI+IG1fYXV0aGVudGljYXRv
ckRhdGE7CiAgICAgUmVmPEFycmF5QnVmZmVyPiBtX3NpZ25hdHVyZTsKICAgICBSZWZQdHI8QXJy
YXlCdWZmZXI+IG1fdXNlckhhbmRsZTsKKworICAgIFN0cmluZyBtX25hbWU7CisgICAgU3RyaW5n
IG1fZGlzcGxheU5hbWU7CisgICAgc2l6ZV90IG1fbnVtYmVyT2ZDcmVkZW50aWFscyB7IDAgfTsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXNwb25zZUNvbnZlcnRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIu
Y3BwCmluZGV4IDI1NTYzYTA1N2QwY2MwNTY4ZDNhYjAxMDdhMmRiNTFhMmE5NGE0ZTIuLmI1NGEz
ODA1YTgzYzA5ZWJhOWU0ZDQxNzQxZGUzM2QxOTU4NjIzM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXNwb25zZUNvbnZlcnRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJlc3BvbnNl
Q29udmVydGVyLmNwcApAQCAtMTY2LDYgKzE2Niw3IEBAIFJlZlB0cjxBdXRoZW50aWNhdG9yQXNz
ZXJ0aW9uUmVzcG9uc2U+IHJlYWRDVEFQR2V0QXNzZXJ0aW9uUmVzcG9uc2UoY29uc3QgVmVjdG9y
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGF1dG8mIHNpZ25hdHVyZSA9IGl0LT5zZWNv
bmQuZ2V0Qnl0ZVN0cmluZygpOwogCisgICAgUmVmUHRyPEF1dGhlbnRpY2F0b3JBc3NlcnRpb25S
ZXNwb25zZT4gcmVzcG9uc2U7CiAgICAgaXQgPSByZXNwb25zZU1hcC5maW5kKENCT1IoNCkpOwog
ICAgIGlmIChpdCAhPSByZXNwb25zZU1hcC5lbmQoKSAmJiBpdC0+c2Vjb25kLmlzTWFwKCkpIHsK
ICAgICAgICAgYXV0byYgdXNlciA9IGl0LT5zZWNvbmQuZ2V0TWFwKCk7CkBAIC0xNzMsMTAgKzE3
NCwzMCBAQCBSZWZQdHI8QXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlPiByZWFkQ1RBUEdl
dEFzc2VydGlvblJlc3BvbnNlKGNvbnN0IFZlY3RvcgogICAgICAgICBpZiAoaXRyID09IHVzZXIu
ZW5kKCkgfHwgIWl0ci0+c2Vjb25kLmlzQnl0ZVN0cmluZygpKQogICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAgICAgICAgIGF1dG8mIHVzZXJIYW5kbGUgPSBpdHItPnNlY29uZC5nZXRCeXRl
U3RyaW5nKCk7Ci0gICAgICAgIHJldHVybiBBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2U6
OmNyZWF0ZShjcmVkZW50aWFsSWQsIGF1dGhEYXRhLCBzaWduYXR1cmUsIHVzZXJIYW5kbGUpOwor
ICAgICAgICByZXNwb25zZSA9IEF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZTo6Y3JlYXRl
KGNyZWRlbnRpYWxJZCwgYXV0aERhdGEsIHNpZ25hdHVyZSwgdXNlckhhbmRsZSk7CisKKyAgICAg
ICAgaXRyID0gdXNlci5maW5kKENCT1Ioa0VudGl0eU5hbWVNYXBLZXkpKTsKKyAgICAgICAgaWYg
KGl0ciAhPSB1c2VyLmVuZCgpKSB7CisgICAgICAgICAgICBpZiAoIWl0ci0+c2Vjb25kLmlzU3Ry
aW5nKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgICAgICByZXNw
b25zZS0+c2V0TmFtZShpdHItPnNlY29uZC5nZXRTdHJpbmcoKSk7CisgICAgICAgIH0KKworICAg
ICAgICBpdHIgPSB1c2VyLmZpbmQoQ0JPUihrRGlzcGxheU5hbWVNYXBLZXkpKTsKKyAgICAgICAg
aWYgKGl0ciAhPSB1c2VyLmVuZCgpKSB7CisgICAgICAgICAgICBpZiAoIWl0ci0+c2Vjb25kLmlz
U3RyaW5nKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgICAgICBy
ZXNwb25zZS0+c2V0RGlzcGxheU5hbWUoaXRyLT5zZWNvbmQuZ2V0U3RyaW5nKCkpOworICAgICAg
ICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmVzcG9uc2UgPSBBdXRoZW50aWNhdG9yQXNzZXJ0
aW9uUmVzcG9uc2U6OmNyZWF0ZShjcmVkZW50aWFsSWQsIGF1dGhEYXRhLCBzaWduYXR1cmUsIHsg
fSk7CiAgICAgfQogCi0gICAgcmV0dXJuIEF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZTo6
Y3JlYXRlKGNyZWRlbnRpYWxJZCwgYXV0aERhdGEsIHNpZ25hdHVyZSwgeyB9KTsKKyAgICBpdCA9
IHJlc3BvbnNlTWFwLmZpbmQoQ0JPUig1KSk7CisgICAgaWYgKGl0ICE9IHJlc3BvbnNlTWFwLmVu
ZCgpICYmIGl0LT5zZWNvbmQuaXNVbnNpZ25lZCgpKQorICAgICAgICByZXNwb25zZS0+c2V0TnVt
YmVyT2ZDcmVkZW50aWFscyhpdC0+c2Vjb25kLmdldFVuc2lnbmVkKCkpOworCisgICAgcmV0dXJu
IHJlc3BvbnNlOwogfQogCiBPcHRpb25hbDxBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlPiBy
ZWFkQ1RBUEdldEluZm9SZXNwb25zZShjb25zdCBWZWN0b3I8dWludDhfdD4mIGluQnVmZmVyKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYkF1dGhlbnRpY2F0
aW9uUGFuZWxDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElXZWJBdXRo
ZW50aWNhdGlvblBhbmVsQ2xpZW50LmgKaW5kZXggNTU1YjU2MTlmZDgyNWNkYzViYmMwNDUwYjc4
OTgzNzY2MmVkMjk0NC4uMjI2YjgxZTgzYzA4Y2M1NzRjMDU5MjdiMWNjYjkxZjYyYjA5OTZjYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYkF1dGhlbnRpY2F0
aW9uUGFuZWxDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2Vi
QXV0aGVudGljYXRpb25QYW5lbENsaWVudC5oCkBAIC0yNyw2ICsyNywxNCBAQAogCiAjaWYgRU5B
QkxFKFdFQl9BVVRITikKIAorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorI2lu
Y2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlOwor
fQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIGVudW0gY2xhc3MgV2ViQXV0aGVudGljYXRpb25TdGF0
dXMgOiBib29sOwogZW51bSBjbGFzcyBXZWJBdXRoZW50aWNhdGlvblJlc3VsdCA6IGJvb2w7CkBA
IC00MSw2ICs0OSw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVQYW5lbChX
ZWJLaXQ6OldlYkF1dGhlbnRpY2F0aW9uU3RhdHVzKSBjb25zdCB7IH0KICAgICB2aXJ0dWFsIHZv
aWQgZGlzbWlzc1BhbmVsKFdlYktpdDo6V2ViQXV0aGVudGljYXRpb25SZXN1bHQpIGNvbnN0IHsg
fQorICAgIHZpcnR1YWwgdm9pZCBzZWxlY3RBc3NlcnRpb25SZXNwb25zZXMoY29uc3QgSGFzaFNl
dDxSZWY8V2ViQ29yZTo6QXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlPj4mIHJlc3BvbnNl
cywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBSZWY8V2ViQ29yZTo6QXV0aGVudGljYXRv
ckFzc2VydGlvblJlc3BvbnNlPiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBjb25zdCB7IGNvbXBs
ZXRpb25IYW5kbGVyKCpyZXNwb25zZXMuYmVnaW4oKSk7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNl
IEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vQXV0aGVudGljYXRvci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGlj
YXRpb24vQXV0aGVudGljYXRvci5oCmluZGV4IDBkMjQ3MTNiZjczYmMwOWUxNzMwYTI5MjE2NDlj
Y2M4OGViMTc5YjMuLmFmYWVkZDE3NzA2MDEzOTQ4MDczNDFiNDA5ZDQ3ZTJkMGNjZjM4NmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhl
bnRpY2F0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlv
bi9BdXRoZW50aWNhdG9yLmgKQEAgLTM1LDYgKzM1LDEwIEBACiAjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCituYW1lc3BhY2UgV2ViQ29yZSB7
CitjbGFzcyBBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2U7Cit9CisKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCiBjbGFzcyBBdXRoZW50aWNhdG9yIDogcHVibGljIFJlZkNvdW50ZWQ8QXV0aGVu
dGljYXRvcj4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxBdXRoZW50aWNhdG9yPiB7CkBAIC00Nyw2
ICs1MSw3IEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lkIHJlc3BvbmRSZWNlaXZlZChS
ZXNwb25kJiYpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIGRvd25ncmFkZShBdXRoZW50aWNh
dG9yKiBpZCwgUmVmPEF1dGhlbnRpY2F0b3I+JiYgZG93bmdyYWRlZEF1dGhlbnRpY2F0b3IpID0g
MDsKICAgICAgICAgdmlydHVhbCB2b2lkIGF1dGhlbnRpY2F0b3JTdGF0dXNVcGRhdGVkKFdlYkF1
dGhlbnRpY2F0aW9uU3RhdHVzKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCBzZWxlY3RBc3Nl
cnRpb25SZXNwb25zZXMoY29uc3QgSGFzaFNldDxSZWY8V2ViQ29yZTo6QXV0aGVudGljYXRvckFz
c2VydGlvblJlc3BvbnNlPj4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFJlZjxXZWJD
b3JlOjpBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2U+Jik+JiYpID0gMDsKICAgICB9Owog
CiAgICAgdmlydHVhbCB+QXV0aGVudGljYXRvcigpID0gZGVmYXVsdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5h
Z2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhl
bnRpY2F0b3JNYW5hZ2VyLmNwcAppbmRleCA2ZmFlZGU1NDc2NDRhYjdkOGY5NmU4OTBkODM4YTFi
YjEzYmMwODljLi5lYjQ5ZGIwZDgxODJmMmNjMjZjZGRjNGJiOWU3ODhiMjIwZjUyNDdjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50
aWNhdG9yTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuY3BwCkBAIC0yNzMsNiArMjczLDEyIEBAIHZv
aWQgQXV0aGVudGljYXRvck1hbmFnZXI6OmF1dGhlbnRpY2F0b3JTdGF0dXNVcGRhdGVkKFdlYkF1
dGhlbnRpY2F0aW9uU3RhdHVzIHN0CiAgICAgICAgIHBhbmVsLT5jbGllbnQoKS51cGRhdGVQYW5l
bChzdGF0dXMpOwogfQogCit2b2lkIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpzZWxlY3RBc3NlcnRp
b25SZXNwb25zZXMoY29uc3QgSGFzaFNldDxSZWY8V2ViQ29yZTo6QXV0aGVudGljYXRvckFzc2Vy
dGlvblJlc3BvbnNlPj4mIHJlc3BvbnNlcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBS
ZWY8V2ViQ29yZTo6QXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlPiYpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQoreworICAgIGlmIChhdXRvKiBwYW5lbCA9IG1fcGVuZGluZ1JlcXVlc3REYXRh
LnBhbmVsLmdldCgpKQorICAgICAgICBwYW5lbC0+Y2xpZW50KCkuc2VsZWN0QXNzZXJ0aW9uUmVz
cG9uc2VzKHJlc3BvbnNlcywgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCiBVbmlx
dWVSZWY8QXV0aGVudGljYXRvclRyYW5zcG9ydFNlcnZpY2U+IEF1dGhlbnRpY2F0b3JNYW5hZ2Vy
OjpjcmVhdGVTZXJ2aWNlKEF1dGhlbnRpY2F0b3JUcmFuc3BvcnQgdHJhbnNwb3J0LCBBdXRoZW50
aWNhdG9yVHJhbnNwb3J0U2VydmljZTo6T2JzZXJ2ZXImIG9ic2VydmVyKSBjb25zdAogewogICAg
IHJldHVybiBBdXRoZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZTo6Y3JlYXRlKHRyYW5zcG9ydCwg
b2JzZXJ2ZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmgKaW5kZXggZGM2YzQ0NDM5
MTAwMTAwMjNiYjE1NTI5ODA5ZTllZWE2NzBlZmIwZS4uOTdiYTJjOTBlZjZmYzZlMGEwMWYxNmRm
ZTY0MjM0N2IyMDIxMGE2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5oCkBAIC04
MSw2ICs4MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZXNwb25kUmVjZWl2ZWQoUmVzcG9uZCYm
KSBmaW5hbDsKICAgICB2b2lkIGRvd25ncmFkZShBdXRoZW50aWNhdG9yKiBpZCwgUmVmPEF1dGhl
bnRpY2F0b3I+JiYgZG93bmdyYWRlZEF1dGhlbnRpY2F0b3IpIGZpbmFsOwogICAgIHZvaWQgYXV0
aGVudGljYXRvclN0YXR1c1VwZGF0ZWQoV2ViQXV0aGVudGljYXRpb25TdGF0dXMpIGZpbmFsOwor
ICAgIHZvaWQgc2VsZWN0QXNzZXJ0aW9uUmVzcG9uc2VzKGNvbnN0IEhhc2hTZXQ8UmVmPFdlYkNv
cmU6OkF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZT4+JiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChjb25zdCBSZWY8V2ViQ29yZTo6QXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlPiYp
PiYmKSBmaW5hbDsKIAogICAgIC8vIE92ZXJyaWRlbiBieSBNb2NrQXV0aGVudGljYXRvck1hbmFn
ZXIuCiAgICAgdmlydHVhbCBVbmlxdWVSZWY8QXV0aGVudGljYXRvclRyYW5zcG9ydFNlcnZpY2U+
IGNyZWF0ZVNlcnZpY2UoV2ViQ29yZTo6QXV0aGVudGljYXRvclRyYW5zcG9ydCwgQXV0aGVudGlj
YXRvclRyYW5zcG9ydFNlcnZpY2U6Ok9ic2VydmVyJikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Nb2NrL01vY2tIaWRDb25uZWN0
aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2sv
TW9ja0hpZENvbm5lY3Rpb24uY3BwCmluZGV4IDllNWQ4ZmE3MDY2ODBkZjZlMTRmOTYzZjIzYmU5
ZTg4NWU3NDRmNTUuLjkwYzFiYjAwNWU1Yjk4ZDdkODQ4ZTgxNGM4MjEyZDgxYTkwZmUwNzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2sv
TW9ja0hpZENvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1
dGhlbnRpY2F0aW9uL01vY2svTW9ja0hpZENvbm5lY3Rpb24uY3BwCkBAIC0xNTgsNyArMTU4LDcg
QEAgdm9pZCBNb2NrSGlkQ29ubmVjdGlvbjo6cGFyc2VSZXF1ZXN0KCkKICAgICAgICAgICAgIGF1
dG8gY21kID0gc3RhdGljX2Nhc3Q8Q3RhcFJlcXVlc3RDb21tYW5kPihwYXlsb2FkWzBdKTsKICAg
ICAgICAgICAgIHBheWxvYWQucmVtb3ZlKDApOwogICAgICAgICAgICAgYXV0byByZXF1ZXN0TWFw
ID0gQ0JPUlJlYWRlcjo6cmVhZChwYXlsb2FkKTsKLSAgICAgICAgICAgIEFTU0VSVChyZXF1ZXN0
TWFwKTsKKyAgICAgICAgICAgIEFTU0VSVChyZXF1ZXN0TWFwIHx8IGNtZCA9PSBDdGFwUmVxdWVz
dENvbW1hbmQ6OmtBdXRoZW50aWNhdG9yR2V0TmV4dEFzc2VydGlvbik7CiAKICAgICAgICAgICAg
IGlmIChjbWQgPT0gQ3RhcFJlcXVlc3RDb21tYW5kOjprQXV0aGVudGljYXRvck1ha2VDcmVkZW50
aWFsKSB7CiAgICAgICAgICAgICAgICAgYXV0byBpdCA9IHJlcXVlc3RNYXAtPmdldE1hcCgpLmZp
bmQoQ0JPUlZhbHVlKEN0YXBNYWtlQ3JlZGVudGlhbFJlcXVlc3RPcHRpb25zS2V5KSk7IC8vIEZp
bmQgb3B0aW9ucy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL2ZpZG8vQ3RhcEF1dGhlbnRpY2F0b3IuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlkby9DdGFwQXV0aGVudGljYXRvci5jcHAKaW5kZXgg
OWU0MWViNzFhZGM1ODQ0ZWZlZGU0MGM2N2RmZTIzM2ZkODZhYzVhMS4uNDA3ZDQzMDNlY2JlMTQw
ZTAyNzgyN2ZiZDdjZTBhM2M3OTI0ZGY1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlkby9DdGFwQXV0aGVudGljYXRvci5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlkby9DdGFwQXV0aGVu
dGljYXRvci5jcHAKQEAgLTEwMCw3ICsxMDAsNTYgQEAgdm9pZCBDdGFwQXV0aGVudGljYXRvcjo6
Y29udGludWVHZXRBc3NlcnRpb25BZnRlclJlc3BvbnNlUmVjZWl2ZWQoVmVjdG9yPHVpbnQ4X3QK
ICAgICAgICAgcmVjZWl2ZVJlc3BvbmQoRXhjZXB0aW9uRGF0YSB7IFVua25vd25FcnJvciwgbWFr
ZVN0cmluZygiVW5rbm93biBpbnRlcm5hbCBlcnJvci4gRXJyb3IgY29kZTogIiwgc3RhdGljX2Nh
c3Q8dWludDhfdD4oZXJyb3IpKSB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICByZWNl
aXZlUmVzcG9uZChyZXNwb25zZS5yZWxlYXNlTm9uTnVsbCgpKTsKKworICAgIGlmIChyZXNwb25z
ZS0+bnVtYmVyT2ZDcmVkZW50aWFscygpIDw9IDEpIHsKKyAgICAgICAgcmVjZWl2ZVJlc3BvbmQo
cmVzcG9uc2UucmVsZWFzZU5vbk51bGwoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBtX3JlbWFpbmluZ0Fzc2VydGlvblJlc3BvbnNlcyA9IHJlc3BvbnNlLT5udW1iZXJPZkNyZWRl
bnRpYWxzKCkgLSAxOworICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9hc3NlcnRpb25SZXNwb25zZXMu
YWRkKHJlc3BvbnNlLnJlbGVhc2VOb25OdWxsKCkpOworICAgIEFTU0VSVF9VTlVTRUQoYWRkUmVz
dWx0LCBhZGRSZXN1bHQuaXNOZXdFbnRyeSk7CisgICAgZHJpdmVyKCkudHJhbnNhY3QoZW5jb2Rl
RW1wdHlBdXRoZW50aWNhdG9yUmVxdWVzdChDdGFwUmVxdWVzdENvbW1hbmQ6OmtBdXRoZW50aWNh
dG9yR2V0TmV4dEFzc2VydGlvbiksIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0oVmVj
dG9yPHVpbnQ4X3Q+JiYgZGF0YSkgeworICAgICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkp
OworICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB3
ZWFrVGhpcy0+Y29udGludWVHZXROZXh0QXNzZXJ0aW9uQWZ0ZXJSZXNwb25zZVJlY2VpdmVkKFdU
Rk1vdmUoZGF0YSkpOworICAgIH0pOworfQorCit2b2lkIEN0YXBBdXRoZW50aWNhdG9yOjpjb250
aW51ZUdldE5leHRBc3NlcnRpb25BZnRlclJlc3BvbnNlUmVjZWl2ZWQoVmVjdG9yPHVpbnQ4X3Q+
JiYgZGF0YSkKK3sKKyAgICBhdXRvIHJlc3BvbnNlID0gcmVhZENUQVBHZXRBc3NlcnRpb25SZXNw
b25zZShkYXRhKTsKKyAgICBpZiAoIXJlc3BvbnNlKSB7CisgICAgICAgIGF1dG8gZXJyb3IgPSBn
ZXRSZXNwb25zZUNvZGUoZGF0YSk7CisgICAgICAgIHJlY2VpdmVSZXNwb25kKEV4Y2VwdGlvbkRh
dGEgeyBVbmtub3duRXJyb3IsIG1ha2VTdHJpbmcoIlVua25vd24gaW50ZXJuYWwgZXJyb3IuIEVy
cm9yIGNvZGU6ICIsIHN0YXRpY19jYXN0PHVpbnQ4X3Q+KGVycm9yKSkgfSk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisgICAgbV9yZW1haW5pbmdBc3NlcnRpb25SZXNwb25zZXMtLTsKKyAgICBh
dXRvIGFkZFJlc3VsdCA9IG1fYXNzZXJ0aW9uUmVzcG9uc2VzLmFkZChyZXNwb25zZS5yZWxlYXNl
Tm9uTnVsbCgpKTsKKyAgICBBU1NFUlRfVU5VU0VEKGFkZFJlc3VsdCwgYWRkUmVzdWx0LmlzTmV3
RW50cnkpOworCisgICAgaWYgKCFtX3JlbWFpbmluZ0Fzc2VydGlvblJlc3BvbnNlcykgeworICAg
ICAgICBpZiAoYXV0byogb2JzZXJ2ZXIgPSB0aGlzLT5vYnNlcnZlcigpKSB7CisgICAgICAgICAg
ICBvYnNlcnZlci0+c2VsZWN0QXNzZXJ0aW9uUmVzcG9uc2VzKG1fYXNzZXJ0aW9uUmVzcG9uc2Vz
LCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyldIChjb25zdCBSZWY8QXV0aGVu
dGljYXRvckFzc2VydGlvblJlc3BvbnNlPiYgcmVzcG9uc2UpIHsKKyAgICAgICAgICAgICAgICBB
U1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworICAgICAgICAgICAgICAgIGlmICghd2Vha1RoaXMp
CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICBhdXRvIHJldHVy
blJlc3BvbnNlID0gbV9hc3NlcnRpb25SZXNwb25zZXMudGFrZShyZXNwb25zZS5wdHIoKSk7Cisg
ICAgICAgICAgICAgICAgaWYgKCFyZXR1cm5SZXNwb25zZSkKKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAgICAgICAgIHJlY2VpdmVSZXNwb25kKFdURk1vdmUoKnJldHVyblJl
c3BvbnNlKSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgZHJpdmVyKCkudHJhbnNhY3QoZW5jb2RlRW1wdHlBdXRoZW50aWNhdG9yUmVx
dWVzdChDdGFwUmVxdWVzdENvbW1hbmQ6OmtBdXRoZW50aWNhdG9yR2V0TmV4dEFzc2VydGlvbiks
IFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0oVmVjdG9yPHVpbnQ4X3Q+JiYgZGF0YSkg
eworICAgICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworICAgICAgICBpZiAoIXdlYWtU
aGlzKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB3ZWFrVGhpcy0+Y29udGludWVHZXRO
ZXh0QXNzZXJ0aW9uQWZ0ZXJSZXNwb25zZVJlY2VpdmVkKFdURk1vdmUoZGF0YSkpOworICAgIH0p
OwogfQogCiBib29sIEN0YXBBdXRoZW50aWNhdG9yOjp0cnlEb3duZ3JhZGUoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlkby9DdGFwQXV0
aGVudGljYXRvci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24v
Zmlkby9DdGFwQXV0aGVudGljYXRvci5oCmluZGV4IGVlNTQzZDg1Zjk0ZDA4ZmEwYzZiN2EwNDlj
ZGZlZGY4ZWY0MmZjNWMuLjU0ZmY0OTQxYTY4MDMxNDFiMTgwMTY0YmIyZWIyMGQ5M2QwNzQzY2Yg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2Zp
ZG8vQ3RhcEF1dGhlbnRpY2F0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9maWRvL0N0YXBBdXRoZW50aWNhdG9yLmgKQEAgLTQ4LDEyICs0OCwxNSBA
QCBwcml2YXRlOgogICAgIHZvaWQgY29udGludWVNYWtlQ3JlZGVudGlhbEFmdGVyUmVzcG9uc2VS
ZWNlaXZlZChWZWN0b3I8dWludDhfdD4mJikgY29uc3Q7CiAgICAgdm9pZCBnZXRBc3NlcnRpb24o
KSBmaW5hbDsKICAgICB2b2lkIGNvbnRpbnVlR2V0QXNzZXJ0aW9uQWZ0ZXJSZXNwb25zZVJlY2Vp
dmVkKFZlY3Rvcjx1aW50OF90PiYmKTsKKyAgICB2b2lkIGNvbnRpbnVlR2V0TmV4dEFzc2VydGlv
bkFmdGVyUmVzcG9uc2VSZWNlaXZlZChWZWN0b3I8dWludDhfdD4mJik7CiAKICAgICBib29sIHRy
eURvd25ncmFkZSgpOwogICAgIGJvb2wgcHJvY2Vzc0dvb2dsZUxlZ2FjeUFwcElkU3VwcG9ydEV4
dGVuc2lvbigpOwogCiAgICAgZmlkbzo6QXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZSBtX2lu
Zm87CiAgICAgYm9vbCBtX2lzRG93bmdyYWRlZCB7IGZhbHNlIH07CisgICAgc2l6ZV90IG1fcmVt
YWluaW5nQXNzZXJ0aW9uUmVzcG9uc2VzIHsgMCB9OworICAgIEhhc2hTZXQ8UmVmPFdlYkNvcmU6
OkF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZT4+IG1fYXNzZXJ0aW9uUmVzcG9uc2VzOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYmZmOWJkYjg2Yjc3YzY0OWMyZmU4NjQyYjM4NmJkYTEz
YzY5YTRhZS4uNDlmMGE4OTFmNGU5NjQ3ZGRmNWUzNjk3NzNlNzBhNjc4NTU5Y2M0YyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2
IEBACisyMDIwLTAxLTA5ICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAg
ICAgICAgW1dlYkF1dGhuXSBTdXBwb3J0IGF1dGhlbnRpY2F0b3JHZXROZXh0QXNzZXJ0aW9uCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDMzNDYKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU2NTU4NDg4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0N0
YXBSZXNwb25zZVRlc3QuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpZG9UZXN0RGF0YS5oOgorICAgICAg
ICBBZGRzIG5ldyB0ZXN0IGNhc2UgZm9yIG5ldyBsb2dpYyBpbiBEZXZpY2VSZXNwb25zZUNvbnZl
cnRlci4KKwogMjAyMC0wMS0wNiAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+
CiAKICAgICAgICAgW2lPU10gSXNzdWUgbWFjaCBsb29rdXAgZXh0ZW5zaW9uIHRvIGxhdW5jaCBz
ZXJ2aWNlcyBkYWVtb24gZm9yIE1haWwKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9DdGFwUmVzcG9uc2VUZXN0LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9DdGFwUmVzcG9uc2VUZXN0LmNwcAppbmRleCA0MDhjOTRlZGY3NDQ2MjNl
ZTJhMTAzNjVmMTcxYzk3MDIzNjM1YTM4Li5hNTA4ZTdmODQ5N2EwYTU5NDA5NzgwMjBhY2JmNzE2
NDY4YWY3ZmI4IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
Q3RhcFJlc3BvbnNlVGVzdC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL0N0YXBSZXNwb25zZVRlc3QuY3BwCkBAIC0zOTksNyArMzk5LDE4IEBAIFRFU1QoQ1RBUFJl
c3BvbnNlVGVzdCwgVGVzdFJlYWRNYWtlQ3JlZGVudGlhbFJlc3BvbnNlKQogCiAvLyBMZXZlcmFn
aW5nIGV4YW1wbGUgNSBvZiBzZWN0aW9uIDYuMSBvZiB0aGUgQ1RBUCBzcGVjLgogLy8gaHR0cHM6
Ly9maWRvYWxsaWFuY2Uub3JnL3NwZWNzL2ZpZG8tdjIuMC1wcy0yMDE3MDkyNy9maWRvLWNsaWVu
dC10by1hdXRoZW50aWNhdG9yLXByb3RvY29sLXYyLjAtcHMtMjAxNzA5MjcuaHRtbAotVEVTVChD
VEFQUmVzcG9uc2VUZXN0LCBUZXN0UmVhZEdldEFzc2VydGlvblJlc3BvbnNlKQorVEVTVChDVEFQ
UmVzcG9uc2VUZXN0LCBUZXN0UmVhZEdldEFzc2VydGlvblJlc3BvbnNlMSkKK3sKKyAgICBhdXRv
IGdldEFzc2VydGlvblJlc3BvbnNlID0gcmVhZENUQVBHZXRBc3NlcnRpb25SZXNwb25zZShjb252
ZXJ0Qnl0ZXNUb1ZlY3RvcihUZXN0RGF0YTo6a0RldmljZUdldEFzc2VydGlvblJlc3BvbnNlU2hv
cnQsIHNpemVvZihUZXN0RGF0YTo6a0RldmljZUdldEFzc2VydGlvblJlc3BvbnNlU2hvcnQpKSk7
CisgICAgQVNTRVJUX1RSVUUoZ2V0QXNzZXJ0aW9uUmVzcG9uc2UpOworCisgICAgRVhQRUNUX0VR
KGdldEFzc2VydGlvblJlc3BvbnNlLT5hdXRoZW50aWNhdG9yRGF0YSgpLT5ieXRlTGVuZ3RoKCks
IHNpemVvZihUZXN0RGF0YTo6a0N0YXAyR2V0QXNzZXJ0aW9uQXV0aERhdGEpKTsKKyAgICBFWFBF
Q1RfRVEobWVtY21wKGdldEFzc2VydGlvblJlc3BvbnNlLT5hdXRoZW50aWNhdG9yRGF0YSgpLT5k
YXRhKCksIFRlc3REYXRhOjprQ3RhcDJHZXRBc3NlcnRpb25BdXRoRGF0YSwgc2l6ZW9mKFRlc3RE
YXRhOjprQ3RhcDJHZXRBc3NlcnRpb25BdXRoRGF0YSkpLCAwKTsKKyAgICBFWFBFQ1RfRVEoZ2V0
QXNzZXJ0aW9uUmVzcG9uc2UtPnNpZ25hdHVyZSgpLT5ieXRlTGVuZ3RoKCksIHNpemVvZihUZXN0
RGF0YTo6a0N0YXAyR2V0QXNzZXJ0aW9uU2lnbmF0dXJlKSk7CisgICAgRVhQRUNUX0VRKG1lbWNt
cChnZXRBc3NlcnRpb25SZXNwb25zZS0+c2lnbmF0dXJlKCktPmRhdGEoKSwgVGVzdERhdGE6OmtD
dGFwMkdldEFzc2VydGlvblNpZ25hdHVyZSwgc2l6ZW9mKFRlc3REYXRhOjprQ3RhcDJHZXRBc3Nl
cnRpb25TaWduYXR1cmUpKSwgMCk7Cit9CisKK1RFU1QoQ1RBUFJlc3BvbnNlVGVzdCwgVGVzdFJl
YWRHZXRBc3NlcnRpb25SZXNwb25zZTIpCiB7CiAgICAgYXV0byBnZXRBc3NlcnRpb25SZXNwb25z
ZSA9IHJlYWRDVEFQR2V0QXNzZXJ0aW9uUmVzcG9uc2UoY29udmVydEJ5dGVzVG9WZWN0b3IoVGVz
dERhdGE6OmtEZXZpY2VHZXRBc3NlcnRpb25SZXNwb25zZSwgc2l6ZW9mKFRlc3REYXRhOjprRGV2
aWNlR2V0QXNzZXJ0aW9uUmVzcG9uc2UpKSk7CiAgICAgQVNTRVJUX1RSVUUoZ2V0QXNzZXJ0aW9u
UmVzcG9uc2UpOwpAQCAtNDA4LDYgKzQxOSwyNCBAQCBURVNUKENUQVBSZXNwb25zZVRlc3QsIFRl
c3RSZWFkR2V0QXNzZXJ0aW9uUmVzcG9uc2UpCiAgICAgRVhQRUNUX0VRKG1lbWNtcChnZXRBc3Nl
cnRpb25SZXNwb25zZS0+YXV0aGVudGljYXRvckRhdGEoKS0+ZGF0YSgpLCBUZXN0RGF0YTo6a0N0
YXAyR2V0QXNzZXJ0aW9uQXV0aERhdGEsIHNpemVvZihUZXN0RGF0YTo6a0N0YXAyR2V0QXNzZXJ0
aW9uQXV0aERhdGEpKSwgMCk7CiAgICAgRVhQRUNUX0VRKGdldEFzc2VydGlvblJlc3BvbnNlLT5z
aWduYXR1cmUoKS0+Ynl0ZUxlbmd0aCgpLCBzaXplb2YoVGVzdERhdGE6OmtDdGFwMkdldEFzc2Vy
dGlvblNpZ25hdHVyZSkpOwogICAgIEVYUEVDVF9FUShtZW1jbXAoZ2V0QXNzZXJ0aW9uUmVzcG9u
c2UtPnNpZ25hdHVyZSgpLT5kYXRhKCksIFRlc3REYXRhOjprQ3RhcDJHZXRBc3NlcnRpb25TaWdu
YXR1cmUsIHNpemVvZihUZXN0RGF0YTo6a0N0YXAyR2V0QXNzZXJ0aW9uU2lnbmF0dXJlKSksIDAp
OworICAgIEVYUEVDVF9FUShnZXRBc3NlcnRpb25SZXNwb25zZS0+dXNlckhhbmRsZSgpLT5ieXRl
TGVuZ3RoKCksIHNpemVvZihUZXN0RGF0YTo6a0N0YXAyR2V0QXNzZXJ0aW9uVXNlckhhbmRsZSkp
OworICAgIEVYUEVDVF9FUShtZW1jbXAoZ2V0QXNzZXJ0aW9uUmVzcG9uc2UtPnVzZXJIYW5kbGUo
KS0+ZGF0YSgpLCBUZXN0RGF0YTo6a0N0YXAyR2V0QXNzZXJ0aW9uVXNlckhhbmRsZSwgc2l6ZW9m
KFRlc3REYXRhOjprQ3RhcDJHZXRBc3NlcnRpb25Vc2VySGFuZGxlKSksIDApOworfQorCitURVNU
KENUQVBSZXNwb25zZVRlc3QsIFRlc3RSZWFkR2V0QXNzZXJ0aW9uUmVzcG9uc2UzKQoreworICAg
IGF1dG8gZ2V0QXNzZXJ0aW9uUmVzcG9uc2UgPSByZWFkQ1RBUEdldEFzc2VydGlvblJlc3BvbnNl
KGNvbnZlcnRCeXRlc1RvVmVjdG9yKFRlc3REYXRhOjprRGV2aWNlR2V0QXNzZXJ0aW9uUmVzcG9u
c2VMb25nLCBzaXplb2YoVGVzdERhdGE6OmtEZXZpY2VHZXRBc3NlcnRpb25SZXNwb25zZUxvbmcp
KSk7CisgICAgQVNTRVJUX1RSVUUoZ2V0QXNzZXJ0aW9uUmVzcG9uc2UpOworCisgICAgRVhQRUNU
X0VRKGdldEFzc2VydGlvblJlc3BvbnNlLT5hdXRoZW50aWNhdG9yRGF0YSgpLT5ieXRlTGVuZ3Ro
KCksIHNpemVvZihUZXN0RGF0YTo6a0N0YXAyR2V0QXNzZXJ0aW9uQXV0aERhdGEpKTsKKyAgICBF
WFBFQ1RfRVEobWVtY21wKGdldEFzc2VydGlvblJlc3BvbnNlLT5hdXRoZW50aWNhdG9yRGF0YSgp
LT5kYXRhKCksIFRlc3REYXRhOjprQ3RhcDJHZXRBc3NlcnRpb25BdXRoRGF0YSwgc2l6ZW9mKFRl
c3REYXRhOjprQ3RhcDJHZXRBc3NlcnRpb25BdXRoRGF0YSkpLCAwKTsKKyAgICBFWFBFQ1RfRVEo
Z2V0QXNzZXJ0aW9uUmVzcG9uc2UtPnNpZ25hdHVyZSgpLT5ieXRlTGVuZ3RoKCksIHNpemVvZihU
ZXN0RGF0YTo6a0N0YXAyR2V0QXNzZXJ0aW9uU2lnbmF0dXJlKSk7CisgICAgRVhQRUNUX0VRKG1l
bWNtcChnZXRBc3NlcnRpb25SZXNwb25zZS0+c2lnbmF0dXJlKCktPmRhdGEoKSwgVGVzdERhdGE6
OmtDdGFwMkdldEFzc2VydGlvblNpZ25hdHVyZSwgc2l6ZW9mKFRlc3REYXRhOjprQ3RhcDJHZXRB
c3NlcnRpb25TaWduYXR1cmUpKSwgMCk7CisgICAgRVhQRUNUX0VRKGdldEFzc2VydGlvblJlc3Bv
bnNlLT51c2VySGFuZGxlKCktPmJ5dGVMZW5ndGgoKSwgc2l6ZW9mKFRlc3REYXRhOjprQ3RhcDJH
ZXRBc3NlcnRpb25Vc2VySGFuZGxlKSk7CisgICAgRVhQRUNUX0VRKG1lbWNtcChnZXRBc3NlcnRp
b25SZXNwb25zZS0+dXNlckhhbmRsZSgpLT5kYXRhKCksIFRlc3REYXRhOjprQ3RhcDJHZXRBc3Nl
cnRpb25Vc2VySGFuZGxlLCBzaXplb2YoVGVzdERhdGE6OmtDdGFwMkdldEFzc2VydGlvblVzZXJI
YW5kbGUpKSwgMCk7CisgICAgRVhQRUNUX1NUUkVRKGdldEFzc2VydGlvblJlc3BvbnNlLT5uYW1l
KCkudXRmOCgpLmRhdGEoKSwgImpvaG5wc21pdGhAZXhhbXBsZS5jb20iKTsKKyAgICBFWFBFQ1Rf
U1RSRVEoZ2V0QXNzZXJ0aW9uUmVzcG9uc2UtPmRpc3BsYXlOYW1lKCkudXRmOCgpLmRhdGEoKSwg
IkpvaG4gUC4gU21pdGgiKTsKKyAgICBFWFBFQ1RfRVEoZ2V0QXNzZXJ0aW9uUmVzcG9uc2UtPm51
bWJlck9mQ3JlZGVudGlhbHMoKSwgMXUpOwogfQogCiAvLyBUZXN0IHRoYXQgVTJGIHJlZ2lzdGVy
IHJlc3BvbnNlIGlzIHByb3Blcmx5IHBhcnNlZC4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9GaWRvVGVzdERhdGEuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9GaWRvVGVzdERhdGEuaAppbmRleCAzYzIzMDJiMGE4OGI3MjE5ZDllYzZh
ZGNkMTNhZDdkN2I3ZmVkYzYxLi45YTcwNDQxMjQwMmEwNWZhZTI4YTYzOWRmZWZiMzU3MWM3NzYx
MTZhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlkb1Rl
c3REYXRhLmgKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpZG9UZXN0
RGF0YS5oCkBAIC05NjAsNyArOTYwLDEzMSBAQCBjb25zdGV4cHIgdWludDhfdCBrQ3RhcDJHZXRB
c3NlcnRpb25TaWduYXR1cmVbXSA9IHsKICAgICAweDc0LCAweGM3LCAweDQ3LCAweDkwLCAweGVh
LCAweGFiLCAweGIxLCAweDQ0LCAweDExLCAweGU3LCAweGEwLAogfTsKIAorY29uc3RleHByIHVp
bnQ4X3Qga0N0YXAyR2V0QXNzZXJ0aW9uVXNlckhhbmRsZVtdID0geworICAgIDB4MzAsIDB4ODIs
IDB4MDEsIDB4OTMsIDB4MzAsIDB4ODIsIDB4MDEsIDB4MzgsIDB4YTAsIDB4MDMsIDB4MDIsIDB4
MDEsCisgICAgMHgwMiwgMHgzMCwgMHg4MiwgMHgwMSwgMHg5MywgMHgzMCwgMHg4MiwgMHgwMSwg
MHgzOCwgMHhhMCwgMHgwMywgMHgwMiwKKyAgICAweDAxLCAweDAyLCAweDMwLCAweDgyLCAweDAx
LCAweDkzLCAweDMwLCAweDgyLAorfTsKKworY29uc3RleHByIHVpbnQ4X3Qga0RldmljZUdldEFz
c2VydGlvblJlc3BvbnNlU2hvcnRbXSA9IHsKKyAgICAvLyBTdWNjZXNzIHJlc3BvbnNlIGNvZGUK
KyAgICAweDAwLAorICAgIC8vIG1hcCgzKQorICAgIDB4YTMsCisgICAgLy8gdW5zaWduZWQoMSkg
LSBDcmVkZW50aWFsCisgICAgMHgwMSwKKyAgICAvLyBtYXAoMikKKyAgICAweGEyLAorICAgIC8v
IHRleHQoMikKKyAgICAweDYyLAorICAgIC8vICJpZCIKKyAgICAweDY5LCAweDY0LAorICAgIC8v
IGJ5dGVzKDY0KQorICAgIDB4NTgsIDB4NDAsCisgICAgLy8gY3JlZGVudGlhbCBpZAorICAgIDB4
ZjIsIDB4MjAsIDB4MDYsIDB4ZGUsIDB4NGYsIDB4OTAsIDB4NWEsIDB4ZjYsIDB4OGEsIDB4NDMs
IDB4OTQsIDB4MmYsCisgICAgMHgwMiwgMHg0ZiwgMHgyYSwgMHg1ZSwgMHhjZSwgMHg2MCwgMHgz
ZCwgMHg5YywgMHg2ZCwgMHg0YiwgMHgzZCwgMHhmOCwKKyAgICAweGJlLCAweDA4LCAweGVkLCAw
eDAxLCAweGZjLCAweDQ0LCAweDI2LCAweDQ2LCAweGQwLCAweDM0LCAweDg1LCAweDhhLAorICAg
IDB4YzcsIDB4NWIsIDB4ZWQsIDB4M2YsIDB4ZDUsIDB4ODAsIDB4YmYsIDB4OTgsIDB4MDgsIDB4
ZDksIDB4NGYsIDB4Y2IsCisgICAgMHhlZSwgMHg4MiwgMHhiOSwgMHhiMiwgMHhlZiwgMHg2Niwg
MHg3NywgMHhhZiwgMHgwYSwgMHhkYywgMHhjMywgMHg1OCwKKyAgICAweDUyLCAweGVhLCAweDZi
LCAweDllLAorICAgIC8vIHRleHQoNCkKKyAgICAweDY0LAorICAgIC8vICJ0eXBlIgorICAgIDB4
NzQsIDB4NzksIDB4NzAsIDB4NjUsCisgICAgLy8gdGV4dCgxMCkKKyAgICAweDZhLAorICAgIC8v
ICJwdWJsaWMta2V5IgorICAgIDB4NzAsIDB4NzUsIDB4NjIsIDB4NkMsIDB4NjksIDB4NjMsIDB4
MkQsIDB4NkIsIDB4NjUsIDB4NzksCisgICAgLy8gdW5zaWduZWQoMikgLSBBdXRoIGRhdGEKKyAg
ICAweDAyLAorICAgIC8vIGJ5dGVzKDM3KQorICAgIDB4NTgsIDB4MjUsCisgICAgLy8gYXV0aCBk
YXRhCisgICAgMHg2MiwgMHg1ZCwgMHhkYSwgMHhkZiwgMHg3NCwgMHgzZiwgMHg1NywgMHgyNywg
MHhlNiwgMHg2YiwgMHhiYSwgMHg4YywKKyAgICAweDJlLCAweDM4LCAweDc5LCAweDIyLCAweGQx
LCAweGFmLCAweDQzLCAweGM1LCAweDAzLCAweGQ5LCAweDExLCAweDRhLAorICAgIDB4OGYsIDB4
YmEsIDB4MTAsIDB4NGQsIDB4ODQsIDB4ZDAsIDB4MmIsIDB4ZmEsIDB4MDEsIDB4MDAsIDB4MDAs
IDB4MDAsCisgICAgMHgxMSwKKyAgICAvLyB1bnNpZ25lZCgzKSAtIHNpZ25hdHVyZQorICAgIDB4
MDMsCisgICAgLy8gYnl0ZXMoNzEpCisgICAgMHg1OCwgMHg0NywKKyAgICAvLyBzaWduYXR1cmUK
KyAgICAweDMwLCAweDQ1LCAweDAyLCAweDIwLCAweDRhLCAweDVhLCAweDlkLCAweGQzLCAweDky
LCAweDk4LCAweDE0LCAweDlkLAorICAgIDB4OTAsIDB4NDcsIDB4NjksIDB4YjUsIDB4MWEsIDB4
NDUsIDB4MTQsIDB4MzMsIDB4MDAsIDB4NmYsIDB4MTgsIDB4MmEsCisgICAgMHgzNCwgMHhmYiwg
MHhkZiwgMHg2NiwgMHhkZSwgMHg1ZiwgMHhjNywgMHgxNywgMHhkNywgMHg1ZiwgMHhiMywgMHg1
MCwKKyAgICAweDAyLCAweDIxLCAweDAwLCAweGE0LCAweDZiLCAweDhlLCAweGEzLCAweGMzLCAw
eGI5LCAweDMzLCAweDgyLCAweDFjLAorICAgIDB4NmUsIDB4N2YsIDB4NWUsIDB4ZjksIDB4ZGEs
IDB4YWUsIDB4OTQsIDB4YWIsIDB4NDcsIDB4ZjEsIDB4OGQsIDB4YjQsCisgICAgMHg3NCwgMHhj
NywgMHg0NywgMHg5MCwgMHhlYSwgMHhhYiwgMHhiMSwgMHg0NCwgMHgxMSwgMHhlNywgMHhhMCwK
K307CisKIGNvbnN0ZXhwciB1aW50OF90IGtEZXZpY2VHZXRBc3NlcnRpb25SZXNwb25zZVtdID0g
eworICAgIC8vIFN1Y2Nlc3MgcmVzcG9uc2UgY29kZQorICAgIDB4MDAsCisgICAgLy8gbWFwKDQp
CisgICAgMHhhNCwKKyAgICAvLyB1bnNpZ25lZCgxKSAtIENyZWRlbnRpYWwKKyAgICAweDAxLAor
ICAgIC8vIG1hcCgyKQorICAgIDB4YTIsCisgICAgLy8gdGV4dCgyKQorICAgIDB4NjIsCisgICAg
Ly8gImlkIgorICAgIDB4NjksIDB4NjQsCisgICAgLy8gYnl0ZXMoNjQpCisgICAgMHg1OCwgMHg0
MCwKKyAgICAvLyBjcmVkZW50aWFsIGlkCisgICAgMHhmMiwgMHgyMCwgMHgwNiwgMHhkZSwgMHg0
ZiwgMHg5MCwgMHg1YSwgMHhmNiwgMHg4YSwgMHg0MywgMHg5NCwgMHgyZiwKKyAgICAweDAyLCAw
eDRmLCAweDJhLCAweDVlLCAweGNlLCAweDYwLCAweDNkLCAweDljLCAweDZkLCAweDRiLCAweDNk
LCAweGY4LAorICAgIDB4YmUsIDB4MDgsIDB4ZWQsIDB4MDEsIDB4ZmMsIDB4NDQsIDB4MjYsIDB4
NDYsIDB4ZDAsIDB4MzQsIDB4ODUsIDB4OGEsCisgICAgMHhjNywgMHg1YiwgMHhlZCwgMHgzZiwg
MHhkNSwgMHg4MCwgMHhiZiwgMHg5OCwgMHgwOCwgMHhkOSwgMHg0ZiwgMHhjYiwKKyAgICAweGVl
LCAweDgyLCAweGI5LCAweGIyLCAweGVmLCAweDY2LCAweDc3LCAweGFmLCAweDBhLCAweGRjLCAw
eGMzLCAweDU4LAorICAgIDB4NTIsIDB4ZWEsIDB4NmIsIDB4OWUsCisgICAgLy8gdGV4dCg0KQor
ICAgIDB4NjQsCisgICAgLy8gInR5cGUiCisgICAgMHg3NCwgMHg3OSwgMHg3MCwgMHg2NSwKKyAg
ICAvLyB0ZXh0KDEwKQorICAgIDB4NmEsCisgICAgLy8gInB1YmxpYy1rZXkiCisgICAgMHg3MCwg
MHg3NSwgMHg2MiwgMHg2QywgMHg2OSwgMHg2MywgMHgyRCwgMHg2QiwgMHg2NSwgMHg3OSwKKyAg
ICAvLyB1bnNpZ25lZCgyKSAtIEF1dGggZGF0YQorICAgIDB4MDIsCisgICAgLy8gYnl0ZXMoMzcp
CisgICAgMHg1OCwgMHgyNSwKKyAgICAvLyBhdXRoIGRhdGEKKyAgICAweDYyLCAweDVkLCAweGRh
LCAweGRmLCAweDc0LCAweDNmLCAweDU3LCAweDI3LCAweGU2LCAweDZiLCAweGJhLCAweDhjLAor
ICAgIDB4MmUsIDB4MzgsIDB4NzksIDB4MjIsIDB4ZDEsIDB4YWYsIDB4NDMsIDB4YzUsIDB4MDMs
IDB4ZDksIDB4MTEsIDB4NGEsCisgICAgMHg4ZiwgMHhiYSwgMHgxMCwgMHg0ZCwgMHg4NCwgMHhk
MCwgMHgyYiwgMHhmYSwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgICAweDExLAorICAgIC8v
IHVuc2lnbmVkKDMpIC0gc2lnbmF0dXJlCisgICAgMHgwMywKKyAgICAvLyBieXRlcyg3MSkKKyAg
ICAweDU4LCAweDQ3LAorICAgIC8vIHNpZ25hdHVyZQorICAgIDB4MzAsIDB4NDUsIDB4MDIsIDB4
MjAsIDB4NGEsIDB4NWEsIDB4OWQsIDB4ZDMsIDB4OTIsIDB4OTgsIDB4MTQsIDB4OWQsCisgICAg
MHg5MCwgMHg0NywgMHg2OSwgMHhiNSwgMHgxYSwgMHg0NSwgMHgxNCwgMHgzMywgMHgwMCwgMHg2
ZiwgMHgxOCwgMHgyYSwKKyAgICAweDM0LCAweGZiLCAweGRmLCAweDY2LCAweGRlLCAweDVmLCAw
eGM3LCAweDE3LCAweGQ3LCAweDVmLCAweGIzLCAweDUwLAorICAgIDB4MDIsIDB4MjEsIDB4MDAs
IDB4YTQsIDB4NmIsIDB4OGUsIDB4YTMsIDB4YzMsIDB4YjksIDB4MzMsIDB4ODIsIDB4MWMsCisg
ICAgMHg2ZSwgMHg3ZiwgMHg1ZSwgMHhmOSwgMHhkYSwgMHhhZSwgMHg5NCwgMHhhYiwgMHg0Nywg
MHhmMSwgMHg4ZCwgMHhiNCwKKyAgICAweDc0LCAweGM3LCAweDQ3LCAweDkwLCAweGVhLCAweGFi
LCAweGIxLCAweDQ0LCAweDExLCAweGU3LCAweGEwLAorICAgIC8vIHVuc2lnbmVkKDQpIC0gcHVi
bGljS2V5Q3JlZGVudGlhbFVzZXJFbnRpdHkKKyAgICAweDA0LAorICAgIC8vIG1hcCgxKQorICAg
IDB4YTEsCisgICAgLy8gdGV4dCgyKQorICAgIDB4NjIsCisgICAgLy8gImlkIgorICAgIDB4Njks
IDB4NjQsCisgICAgLy8gYnl0ZXMoMzIpIC0gdXNlciBpZAorICAgIDB4NTgsIDB4MjAsCisgICAg
Ly8gdXNlciBpZAorICAgIDB4MzAsIDB4ODIsIDB4MDEsIDB4OTMsIDB4MzAsIDB4ODIsIDB4MDEs
IDB4MzgsIDB4YTAsIDB4MDMsIDB4MDIsIDB4MDEsCisgICAgMHgwMiwgMHgzMCwgMHg4MiwgMHgw
MSwgMHg5MywgMHgzMCwgMHg4MiwgMHgwMSwgMHgzOCwgMHhhMCwgMHgwMywgMHgwMiwKKyAgICAw
eDAxLCAweDAyLCAweDMwLCAweDgyLCAweDAxLCAweDkzLCAweDMwLCAweDgyLAorfTsKKworY29u
c3RleHByIHVpbnQ4X3Qga0RldmljZUdldEFzc2VydGlvblJlc3BvbnNlTG9uZ1tdID0gewogICAg
IC8vIFN1Y2Nlc3MgcmVzcG9uc2UgY29kZQogICAgIDB4MDAsCiAgICAgLy8gbWFwKDUpCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggZDE3MGFkOWRkZGI1OTNkYWE3MGYwZDg0Y2E1NzI3YjlkNTliYzZiZi4uZmM0NjNiN2FhZDQw
NzQwZGNjYmFmMWVhYzkzMzU1NDI1MmJhMjczMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIw
LTAxLTA5ICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dl
YkF1dGhuXSBTdXBwb3J0IGF1dGhlbnRpY2F0b3JHZXROZXh0QXNzZXJ0aW9uCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDMzNDYKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzU2NTU4NDg4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFs
LWdldC1mYWlsdXJlLWhpZC5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC93cHQv
d2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLWhpZC5odHRwcy5odG1s
OgorICAgICAgICAqIGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQt
c3VjY2Vzcy1oaWQuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvd3B0L3dlYmF1
dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtc3VjY2Vzcy1oaWQuaHR0cHMuaHRtbDoKKyAg
ICAgICAgKiBodHRwL3dwdC93ZWJhdXRobi9yZXNvdXJjZXMvdXRpbC5qczoKKwogMjAyMC0wMS0w
NiAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10g
SXNzdWUgbWFjaCBsb29rdXAgZXh0ZW5zaW9uIHRvIGxhdW5jaCBzZXJ2aWNlcyBkYWVtb24gZm9y
IE1haWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1r
ZXktY3JlZGVudGlhbC1nZXQtZmFpbHVyZS1oaWQuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJl
LWhpZC5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggNTRiYjUwODY3YzkyM2NkYTZmYTk3YjdhY2U3
ZTAwNGFjODk1Y2YwZS4uYzg0YzU0ZjhlYzdiNDc0ZWEwYTdlZTVjZDY0ODYxNjIxY2JiYjY4MSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVk
ZW50aWFsLWdldC1mYWlsdXJlLWhpZC5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLWhp
ZC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTUsNCArNSw1IEBAIFBBU1MgUHVibGljS2V5Q3JlZGVu
dGlhbCdzIFtbZ2V0XV0gd2l0aCB1bnN1cHBvcnRlZCBvcHRpb25zIGluIGEgbW9jayBoaWQgYXV0
aGVuCiBQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggYXV0aGVudGljYXRv
ciBkb3duZ3JhZGUgZmFpbGVkIGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4gCiBQQVNTIFB1
YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggYXV0aGVudGljYXRvciBkb3duZ3JhZGUg
ZmFpbGVkIGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4gMiAKIFBBU1MgUHVibGljS2V5Q3Jl
ZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCBhdXRoZW50aWNhdG9yIGRvd25ncmFkZSBzdWNjZWVkZWQg
YW5kIHRoZW4gVTJGIGZhaWxlZCBpbiBhIG1vY2sgaGlkIGF1dGhlbnRpY2F0b3IuIAorUEFTUyBQ
dWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRoIGdldE5leHRBc3NlcnRpb24gZmFpbGVk
IGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4gCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtZmFpbHVyZS1oaWQu
aHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3Jl
ZGVudGlhbC1nZXQtZmFpbHVyZS1oaWQuaHR0cHMuaHRtbAppbmRleCA2OGUzY2UyMGE3NTE4ZWU1
MmQyZTE4OWZhN2UyNWEyNGM1ODk1YzBlLi5iMTdmNzI2ZjZjMDY4YWUxYWJmZjVjYzRmYTFkMDhh
ZjU0MTc1NTViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJs
aWMta2V5LWNyZWRlbnRpYWwtZ2V0LWZhaWx1cmUtaGlkLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJl
LWhpZC5odHRwcy5odG1sCkBAIC04NCw0ICs4NCwxNiBAQAogICAgICAgICAgICAgaW50ZXJuYWxz
LnNldE1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24oeyBoaWQ6IHsgc3RhZ2U6ICJy
ZXF1ZXN0Iiwgc3ViU3RhZ2U6ICJtc2ciLCBlcnJvcjogIm1hbGljaW91cy1wYXlsb2FkIiwgY2Fu
RG93bmdyYWRlOiB0cnVlLCBwYXlsb2FkQmFzZTY0OiBbdGVzdEN0YXBFcnJJbnZhbGlkQ3JlZGVu
dGlhbFJlc3BvbnNlQmFzZTY0LCB0ZXN0VTJmQXBkdU5vRXJyb3JPbmx5UmVzcG9uc2VCYXNlNjRd
IH0gfSk7CiAgICAgICAgIHJldHVybiBwcm9taXNlUmVqZWN0cyh0LCAiVW5rbm93bkVycm9yIiwg
bmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldChvcHRpb25zKSwgIlVua25vd24gaW50ZXJuYWwgZXJy
b3IuIEVycm9yIGNvZGU6IDM0Iik7CiAgICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dl
dF1dIHdpdGggYXV0aGVudGljYXRvciBkb3duZ3JhZGUgc3VjY2VlZGVkIGFuZCB0aGVuIFUyRiBm
YWlsZWQgaW4gYSBtb2NrIGhpZCBhdXRoZW50aWNhdG9yLiIpOworCisgICAgcHJvbWlzZV90ZXN0
KGZ1bmN0aW9uKHQpIHsKKyAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgIHB1
YmxpY0tleTogeworICAgICAgICAgICAgICAgIGNoYWxsZW5nZTogYXNjaWlUb1VpbnQ4QXJyYXko
IjEyMzQ1NiIpCisgICAgICAgICAgICB9CisgICAgICAgIH07CisKKyAgICAgICAgaWYgKHdpbmRv
dy5pbnRlcm5hbHMpCisgICAgICAgICAgICBpbnRlcm5hbHMuc2V0TW9ja1dlYkF1dGhlbnRpY2F0
aW9uQ29uZmlndXJhdGlvbih7IGhpZDogeyBzdGFnZTogInJlcXVlc3QiLCBzdWJTdGFnZTogIm1z
ZyIsIGVycm9yOiAibWFsaWNpb3VzLXBheWxvYWQiLCBwYXlsb2FkQmFzZTY0OiBbdGVzdEFzc2Vy
dGlvbk1lc3NhZ2VMb25nQmFzZTY0LCB0ZXN0Q3RhcEVyck5vdEFsbG93ZWRSZXNwb25zZUJhc2U2
NF0gfSB9KTsKKyAgICAgICAgcmV0dXJuIHByb21pc2VSZWplY3RzKHQsICJVbmtub3duRXJyb3Ii
LCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpLCAiVW5rbm93biBpbnRlcm5hbCBl
cnJvci4gRXJyb3IgY29kZTogNDgiKTsKKyAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtb
Z2V0XV0gd2l0aCBnZXROZXh0QXNzZXJ0aW9uIGZhaWxlZCBpbiBhIG1vY2sgaGlkIGF1dGhlbnRp
Y2F0b3IuIik7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dl
YmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtc3VjY2Vzcy1oaWQuaHR0cHMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50
aWFsLWdldC1zdWNjZXNzLWhpZC5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggNDNjMzA2Y2IwMTU2
OTlkMmYyMjA3ZDliZWM2ZjEwMTRhZGYxZmU5Ny4uNjczOTEwNzQ1YTdhYjQ2YTdkYzU0NWVjZmFm
NzFjYmU1YWI4NWMyZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4v
cHVibGljLWtleS1jcmVkZW50aWFsLWdldC1zdWNjZXNzLWhpZC5odHRwcy1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFs
LWdldC1zdWNjZXNzLWhpZC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTUsNCArNSw1IEBAIFBBU1Mg
UHVibGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCB1c2VyVmVyaWZpY2F0aW9uIHsgcHJl
ZmVycmVkIH0gaW4gYSBtb2NrCiBQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdp
dGggdXNlclZlcmlmaWNhdGlvbiB7IGRpc2NvdXJhZ2VkIH0gaW4gYSBtb2NrIGhpZCBhdXRoZW50
aWNhdG9yLiAKIFBBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCBtaXhlZCBv
cHRpb25zIGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4gCiBQQVNTIFB1YmxpY0tleUNyZWRl
bnRpYWwncyBbW2dldF1dIHdpdGggdHdvIGNvbnNlY3V0aXZlIHJlcXVlc3RzLiAKK1BBU1MgUHVi
bGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCBtdWx0aXBsZSBhY2NvdW50cyBpbiBhIG1v
Y2sgaGlkIGF1dGhlbnRpY2F0b3IuIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dw
dC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LXN1Y2Nlc3MtaGlkLmh0dHBzLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwt
Z2V0LXN1Y2Nlc3MtaGlkLmh0dHBzLmh0bWwKaW5kZXggZDI4NDNkNThkMmE5NTMwYjRmOTJhNGYx
ODYyNTc2YmRjMGMzYTE3NS4uZWM5ZDZmYzI4ZjRmMTk5Yjg3ODQyNTk1OWNiZjEyYmJkYjI1N2Y0
MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1j
cmVkZW50aWFsLWdldC1zdWNjZXNzLWhpZC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtc3VjY2Vzcy1oaWQuaHR0
cHMuaHRtbApAQCAtMTAxLDQgKzEwMSwxOSBAQAogICAgICAgICAgICAgcmV0dXJuIGNoZWNrQ3Rh
cEdldEFzc2VydGlvblJlc3VsdChjcmVkZW50aWFsKTsKICAgICAgICAgfSk7CiAgICAgfSwgIlB1
YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggdHdvIGNvbnNlY3V0aXZlIHJlcXVlc3Rz
LiIpOworCisgICAgcHJvbWlzZV90ZXN0KHQgPT4geworICAgICAgICBjb25zdCBvcHRpb25zID0g
eworICAgICAgICAgICAgcHVibGljS2V5OiB7CisgICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBC
YXNlNjRVUkwucGFyc2UoIk1USXpORFUyIiksCisgICAgICAgICAgICAgICAgdGltZW91dDogMTAw
CisgICAgICAgICAgICB9CisgICAgICAgIH07CisKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5h
bHMpCisgICAgICAgICAgICBpbnRlcm5hbHMuc2V0TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmln
dXJhdGlvbih7IGhpZDogeyBzdGFnZTogInJlcXVlc3QiLCBzdWJTdGFnZTogIm1zZyIsIGVycm9y
OiAic3VjY2VzcyIsIHBheWxvYWRCYXNlNjQ6IFt0ZXN0QXNzZXJ0aW9uTWVzc2FnZUxvbmdCYXNl
NjQsIHRlc3RBc3NlcnRpb25NZXNzYWdlTG9uZ0Jhc2U2NF0gfSB9KTsKKyAgICAgICAgcmV0dXJu
IG5hdmlnYXRvci5jcmVkZW50aWFscy5nZXQob3B0aW9ucykudGhlbihjcmVkZW50aWFsID0+IHsK
KyAgICAgICAgICAgIHJldHVybiBjaGVja0N0YXBHZXRBc3NlcnRpb25SZXN1bHQoY3JlZGVudGlh
bCwgIk1JSUJrekNDQVRpZ0F3SUJBakNDQVpNd2dnRTRvQU1DQVFJd2dnR1RNSUk9Iik7CisgICAg
ICAgIH0pOworICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRoIG11bHRp
cGxlIGFjY291bnRzIGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4iKTsKIDwvc2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcmVzb3VyY2VzL3V0aWwu
anMgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9yZXNvdXJjZXMvdXRpbC5qcwppbmRl
eCA2ZWZkZThhOGE1ZmE2ODMwNDE4ZGYxYTI1NjJhMGQzNTdiMjdlMWEyLi42MWQ4ZjcyNWZmMmI1
MTc4YWVhMTgzODhhNzU1MGUzYTI1NjM2OWNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3dwdC93ZWJhdXRobi9yZXNvdXJjZXMvdXRpbC5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3dw
dC93ZWJhdXRobi9yZXNvdXJjZXMvdXRpbC5qcwpAQCAtNjYsNiArNjYsMTUgQEAgY29uc3QgdGVz
dEFzc2VydGlvbk1lc3NhZ2VCYXNlNjQgPQogICAgICJaNTFWc3R1UWt1SEkyZVhoMEN0MWdQQzBn
U3gzQ1dMaDVJOWEyQUVBQUFCUUExaEhNRVVDSVFDU0ZUdXVCV2dCIiArCiAgICAgIjQvRjBWQjdE
bFVWTTA5SUhQbXhlMU16SFV3Um9DUlpiQ0FJZ0dLb3Y2eG9BeDJNRWY2LzZxTnM4T3V0emhQMkMi
ICsKICAgICAiUW9KMUw3RmU2NEc5dUJjPSI7Citjb25zdCB0ZXN0QXNzZXJ0aW9uTWVzc2FnZUxv
bmdCYXNlNjQgPQorICAgICJBS1VCb21KcFpGaEFLQWl0enVqK1RzbHplbGYzL3Zad0lHdERRTmdv
S2VGZDVvRWllWXpoeXpBNjVzYWYwdEsyIiArCisgICAgIncvbW9vYTd0UXRHZ0Rkd1pJak9oamN1
WjBwUTFham9FNEdSMGVYQmxhbkIxWW14cFl5MXJaWGtDV0NWR3pIKzUiICsKKyAgICAiWjUxVnN0
dVFrdUhJMmVYaDBDdDFnUEMwZ1N4M0NXTGg1STlhMkFFQUFBQlFBMWhITUVVQ0lRQ1NGVHV1Qldn
QiIgKworICAgICI0L0YwVkI3RGxVVk0wOUlIUG14ZTFNekhVd1JvQ1JaYkNBSWdHS292NnhvQXgy
TUVmNi82cU5zOE91dHpoUDJDIiArCisgICAgIlFvSjFMN0ZlNjRHOXVCY0VwR0pwWkZnZ01JSUJr
ekNDQVRpZ0F3SUJBakNDQVpNd2dnRTRvQU1DQVFJd2dnR1QiICsKKyAgICAiTUlKa2FXTnZibmdv
YUhSMGNITTZMeTl3YVdOekxtRmpiV1V1WTI5dEx6QXdMM0F2WVVKcWFtcHdjVkJpTG5CdSIgKwor
ICAgICJaMlJ1WVcxbGRtcHZhRzV3YzIxcGRHaEFaWGhoYlhCc1pTNWpiMjFyWkdsemNHeGhlVTVo
YldWdFNtOW9iaUJRIiArCisgICAgIkxpQlRiV2wwYUFVQyI7CiBjb25zdCB0ZXN0VTJmQXBkdU5v
RXJyb3JPbmx5UmVzcG9uc2VCYXNlNjQgPSAia0FBPSI7CiBjb25zdCB0ZXN0VTJmQXBkdUluc05v
dFN1cHBvcnRlZE9ubHlSZXNwb25zZUJhc2U2NCA9ICJiUUE9IjsKIGNvbnN0IHRlc3RVMmZBcGR1
V3JvbmdEYXRhT25seVJlc3BvbnNlQmFzZTY0ID0gImFvQT0iOwpAQCAtOTYsNiArMTA1LDcgQEAg
Y29uc3QgdGVzdFUyZlNpZ25SZXNwb25zZSA9CiAgICAgImY0VjRMZUVBaHFlRDBlZmZUalk1NTNI
MTlxK2pXcTFUYzRXT2tBQT0iOwogY29uc3QgdGVzdEN0YXBFcnJDcmVkZW50aWFsRXhjbHVkZWRP
bmx5UmVzcG9uc2VCYXNlNjQgPSAiR1E9PSI7CiBjb25zdCB0ZXN0Q3RhcEVyckludmFsaWRDcmVk
ZW50aWFsUmVzcG9uc2VCYXNlNjQgPSAiSWc9PSI7Citjb25zdCB0ZXN0Q3RhcEVyck5vdEFsbG93
ZWRSZXNwb25zZUJhc2U2NCA9ICJNQT09IjsKIGNvbnN0IHRlc3ROZmNVMmZWZXJzaW9uQmFzZTY0
ID0gIlZUSkdYMVl5a0FBPSI7CiBjb25zdCB0ZXN0TmZjQ3RhcFZlcnNpb25CYXNlNjQgPSAiUmts
RVQxOHlYekNRQUE9PSI7CiBjb25zdCB0ZXN0R2V0SW5mb1Jlc3BvbnNlQXBkdUJhc2U2NCA9CkBA
IC0zOTQsMTQgKzQwNCwxNyBAQCBmdW5jdGlvbiBjaGVja1UyZk1ha2VDcmVkZW50aWFsUmVzdWx0
KGNyZWRlbnRpYWwsIGlzTm9uZUF0dGVzdGF0aW9uID0gdHJ1ZSkKICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhhdHRlc3RhdGlvbk9iamVjdC5hdHRTdG10Lng1Yy5sZW5ndGgsIDEpOwogfQogCi1mdW5j
dGlvbiBjaGVja0N0YXBHZXRBc3NlcnRpb25SZXN1bHQoY3JlZGVudGlhbCkKK2Z1bmN0aW9uIGNo
ZWNrQ3RhcEdldEFzc2VydGlvblJlc3VsdChjcmVkZW50aWFsLCB1c2VySGFuZGxlQmFzZTY0ID0g
bnVsbCkKIHsKICAgICAvLyBDaGVjayByZXNwb25kCiAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhC
YXNlNjRVUkwucGFyc2UoY3JlZGVudGlhbC5pZCksIEJhc2U2NFVSTC5wYXJzZSh0ZXN0SGlkQ3Jl
ZGVudGlhbElkQmFzZTY0KSk7CiAgICAgYXNzZXJ0X2VxdWFscyhjcmVkZW50aWFsLnR5cGUsICdw
dWJsaWMta2V5Jyk7CiAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhuZXcgVWludDhBcnJheShjcmVk
ZW50aWFsLnJhd0lkKSwgQmFzZTY0VVJMLnBhcnNlKHRlc3RIaWRDcmVkZW50aWFsSWRCYXNlNjQp
KTsKICAgICBhc3NlcnRfZXF1YWxzKGJ5dGVzVG9BU0NJSVN0cmluZyhjcmVkZW50aWFsLnJlc3Bv
bnNlLmNsaWVudERhdGFKU09OKSwgJ3sidHlwZSI6IndlYmF1dGhuLmdldCIsImNoYWxsZW5nZSI6
Ik1USXpORFUyIiwib3JpZ2luIjoiaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0MyJ9Jyk7Ci0gICAgYXNz
ZXJ0X2VxdWFscyhjcmVkZW50aWFsLnJlc3BvbnNlLnVzZXJIYW5kbGUsIG51bGwpOworICAgIGlm
ICh1c2VySGFuZGxlQmFzZTY0ID09IG51bGwpCisgICAgICAgIGFzc2VydF9lcXVhbHMoY3JlZGVu
dGlhbC5yZXNwb25zZS51c2VySGFuZGxlLCBudWxsKTsKKyAgICBlbHNlCisgICAgICAgIGFzc2Vy
dF9hcnJheV9lcXVhbHMobmV3IFVpbnQ4QXJyYXkoY3JlZGVudGlhbC5yZXNwb25zZS51c2VySGFu
ZGxlKSwgQmFzZTY0VVJMLnBhcnNlKHVzZXJIYW5kbGVCYXNlNjQpKTsKICAgICBhc3NlcnRfbm90
X293bl9wcm9wZXJ0eShjcmVkZW50aWFsLmdldENsaWVudEV4dGVuc2lvblJlc3VsdHMoKSwgImFw
cGlkIik7CiAKICAgICAvLyBDaGVjayBhdXRoRGF0YQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387273</attachid>
            <date>2020-01-09 14:30:33 -0800</date>
            <delta_ts>2020-01-10 11:06:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203346-20200109143032.patch</filename>
            <type>text/plain</type>
            <size>34739</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MDUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWY4YWIxMDU1YWZlOTBl
NTY5OTU5NGU0YmVjYmI1ZDcyNzdjNzZmNC4uOTVjY2JhYmFiMTgzNzg4MDYwYjM2MzJhMTkyZDZh
OTA2Y2FmYTlmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIwLTAxLTA5ICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhuXSBTdXBw
b3J0IGF1dGhlbnRpY2F0b3JHZXROZXh0QXNzZXJ0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDMzNDYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzU2NTU4NDg4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIENvdmVyZWQgYnkgbmV3IHRlc3RzIHdpdGhpbiBleGlzdGluZyB0ZXN0IGZpbGVzLgorCisg
ICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2Uu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZTo6c2V0
TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2U6
Om5hbWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGljYXRvckFzc2VydGlvblJl
c3BvbnNlOjpzZXREaXNwbGF5TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdG9y
QXNzZXJ0aW9uUmVzcG9uc2U6OmRpc3BsYXlOYW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZTo6c2V0TnVtYmVyT2ZDcmVkZW50aWFscyk6
CisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2U6Om51bWJl
ck9mQ3JlZGVudGlhbHMgY29uc3QpOgorICAgICAgICBBZGRzIG5ldyBtZW1iZXJzIHRvIHN0b3Jl
IG5ldyBmaWVsZHMgb2YgdGhlIHJlc3BvbnNlIGZyb20gdGhlIGF1dGhlbnRpY2F0b3IuIEZpZWxk
ICJpY29uIgorICAgICAgICBpcyBvbWl0dGVkIGdpdmVuIGl0IGNvdWxkIGJlIHVzZWQgdG8gdHJh
Y2sgdXNlcnMgYWNjb3JkaW5nIHRvIGh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViYXV0aG4vaXNz
dWVzLzEyODUuCisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJlc3BvbnNl
Q29udmVydGVyLmNwcDoKKyAgICAgICAgKGZpZG86OnJlYWRDVEFQR2V0QXNzZXJ0aW9uUmVzcG9u
c2UpOgorICAgICAgICBBZGRzIG5ldyBsb2dpYyB0byBwYXJzZSBhYm92ZSBmaWVsZHMgZnJvbSBh
biBhdXRoZW50aWNhdG9yIHJlc3BvbnNlLgorCiAyMDIwLTAxLTA2ICBQZXIgQXJuZSBWb2xsYW4g
IDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBJc3N1ZSBtYWNoIGxvb2t1cCBl
eHRlbnNpb24gdG8gbGF1bmNoIHNlcnZpY2VzIGRhZW1vbiBmb3IgTWFpbApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA5
OWMzNzI3MDFmYzMzMzA0MzQ0MTlhNmRhNWIzNjZiMTg3YTdmN2U3Li42MjBhNjE5MzE2NjQzZmZh
N2MxMWZhNmE3ODNmOGZlOWE5MmQ1NWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIw
LTAxLTA5ICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dl
YkF1dGhuXSBTdXBwb3J0IGF1dGhlbnRpY2F0b3JHZXROZXh0QXNzZXJ0aW9uCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDMzNDYKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzU2NTU4NDg4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW1wbGVtZW50cyBhdXRoZW50aWNhdG9yR2V0TmV4
dEFzc2VydGlvbiBhcyBzdWdnZXN0ZWQgYnkgdGhlIHNwZWM6CisgICAgICAgIGh0dHBzOi8vZmlk
b2FsbGlhbmNlLm9yZy9zcGVjcy9maWRvLXYyLjAtcHMtMjAxOTAxMzAvZmlkby1jbGllbnQtdG8t
YXV0aGVudGljYXRvci1wcm90b2NvbC12Mi4wLXBzLTIwMTkwMTMwLmh0bWwjYXV0aGVudGljYXRv
ckdldE5leHRBc3NlcnRpb24KKworICAgICAgICBUaGUgd29yayBmbG93IGlzIGFzIGZvbGxvdzoK
KyAgICAgICAgMSkgV2hlbiBhIHZhbGlkIGFzc2VydGlvbiByZXNwb25zZSBpcyByZWNlaXZlZCwg
Y2hlY2sgaXRzIG51bWJlck9mQ3JlZGVudGlhbHMgbWVtYmVyOworICAgICAgICAyKSBXaGVuIGl0
IGlzIGxhcmdlciB0aGVuIDEsIHVzZSBhdXRoZW50aWNhdG9yR2V0TmV4dEFzc2VydGlvbiB0byBn
ZXQgYWxsIHJlbWFpbmluZyByZXNwb25zZXM7CisgICAgICAgIDMpIE9uY2UgYWxsIHJlc3BvbnNl
cyBhcmUgZ2F0aGVyZWQsIGFzayBVSSBjbGllbnRzIHRvIHBpY2sgb25lIHRvIHJldHVybi4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJV2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudC5o
OgorICAgICAgICAoQVBJOjpXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50OjpzZWxlY3RBc3Nl
cnRpb25SZXNwb25zZXMgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9BdXRoZW50aWNhdG9yLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6QXV0aGVudGlj
YXRvck1hbmFnZXI6OnNlbGVjdEFzc2VydGlvblJlc3BvbnNlcyk6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmg6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja0hpZENvbm5lY3Rpb24uY3BwOgor
ICAgICAgICAoV2ViS2l0OjpNb2NrSGlkQ29ubmVjdGlvbjo6cGFyc2VSZXF1ZXN0KToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlkby9DdGFwQXV0aGVudGljYXRvci5j
cHA6CisgICAgICAgIChXZWJLaXQ6OkN0YXBBdXRoZW50aWNhdG9yOjpjb250aW51ZUdldEFzc2Vy
dGlvbkFmdGVyUmVzcG9uc2VSZWNlaXZlZCk6CisgICAgICAgIChXZWJLaXQ6OkN0YXBBdXRoZW50
aWNhdG9yOjpjb250aW51ZUdldE5leHRBc3NlcnRpb25BZnRlclJlc3BvbnNlUmVjZWl2ZWQpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRvL0N0YXBBdXRoZW50aWNh
dG9yLmg6CisKIDIwMjAtMDEtMDYgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29t
PgogCiAgICAgICAgIFtpT1NdIElzc3VlIG1hY2ggbG9va3VwIGV4dGVuc2lvbiB0byBsYXVuY2gg
c2VydmljZXMgZGFlbW9uIGZvciBNYWlsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZS5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UuaApp
bmRleCBhYmEyMjllY2JmNDI2ODM5YzAzMzhjMmNkNTRiYmIyZmMxMDVjNzA4Li5kYzRjODAzN2Ez
NTY4MTNiZTUyYmMzNzlmNDg3ZjViNTc5MWM4ZTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvckFzc2VydGlvblJl
c3BvbnNlLmgKQEAgLTQxLDYgKzQxLDEzIEBAIHB1YmxpYzoKICAgICBBcnJheUJ1ZmZlciogc2ln
bmF0dXJlKCkgY29uc3QgeyByZXR1cm4gbV9zaWduYXR1cmUucHRyKCk7IH0KICAgICBBcnJheUJ1
ZmZlciogdXNlckhhbmRsZSgpIGNvbnN0IHsgcmV0dXJuIG1fdXNlckhhbmRsZS5nZXQoKTsgfQog
CisgICAgdm9pZCBzZXROYW1lKGNvbnN0IFN0cmluZyYgbmFtZSkgeyBtX25hbWUgPSBuYW1lOyB9
CisgICAgU3RyaW5nIG5hbWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KKyAgICB2b2lkIHNl
dERpc3BsYXlOYW1lKGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUpIHsgbV9kaXNwbGF5TmFtZSA9
IGRpc3BsYXlOYW1lOyB9CisgICAgU3RyaW5nIGRpc3BsYXlOYW1lKCkgY29uc3QgeyByZXR1cm4g
bV9kaXNwbGF5TmFtZTsgfQorICAgIHZvaWQgc2V0TnVtYmVyT2ZDcmVkZW50aWFscyhzaXplX3Qg
bnVtYmVyT2ZDcmVkZW50aWFscykgeyBtX251bWJlck9mQ3JlZGVudGlhbHMgPSBudW1iZXJPZkNy
ZWRlbnRpYWxzOyB9CisgICAgc2l6ZV90IG51bWJlck9mQ3JlZGVudGlhbHMoKSBjb25zdCB7IHJl
dHVybiBtX251bWJlck9mQ3JlZGVudGlhbHM7IH0KKwogcHJpdmF0ZToKICAgICBBdXRoZW50aWNh
dG9yQXNzZXJ0aW9uUmVzcG9uc2UoUmVmPEFycmF5QnVmZmVyPiYmLCBSZWY8QXJyYXlCdWZmZXI+
JiYsIFJlZjxBcnJheUJ1ZmZlcj4mJiwgUmVmUHRyPEFycmF5QnVmZmVyPiYmKTsKIApAQCAtNTAs
NiArNTcsMTAgQEAgcHJpdmF0ZToKICAgICBSZWY8QXJyYXlCdWZmZXI+IG1fYXV0aGVudGljYXRv
ckRhdGE7CiAgICAgUmVmPEFycmF5QnVmZmVyPiBtX3NpZ25hdHVyZTsKICAgICBSZWZQdHI8QXJy
YXlCdWZmZXI+IG1fdXNlckhhbmRsZTsKKworICAgIFN0cmluZyBtX25hbWU7CisgICAgU3RyaW5n
IG1fZGlzcGxheU5hbWU7CisgICAgc2l6ZV90IG1fbnVtYmVyT2ZDcmVkZW50aWFscyB7IDAgfTsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXNwb25zZUNvbnZlcnRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIu
Y3BwCmluZGV4IDI1NTYzYTA1N2QwY2MwNTY4ZDNhYjAxMDdhMmRiNTFhMmE5NGE0ZTIuLmI1NGEz
ODA1YTgzYzA5ZWJhOWU0ZDQxNzQxZGUzM2QxOTU4NjIzM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXNwb25zZUNvbnZlcnRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJlc3BvbnNl
Q29udmVydGVyLmNwcApAQCAtMTY2LDYgKzE2Niw3IEBAIFJlZlB0cjxBdXRoZW50aWNhdG9yQXNz
ZXJ0aW9uUmVzcG9uc2U+IHJlYWRDVEFQR2V0QXNzZXJ0aW9uUmVzcG9uc2UoY29uc3QgVmVjdG9y
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGF1dG8mIHNpZ25hdHVyZSA9IGl0LT5zZWNv
bmQuZ2V0Qnl0ZVN0cmluZygpOwogCisgICAgUmVmUHRyPEF1dGhlbnRpY2F0b3JBc3NlcnRpb25S
ZXNwb25zZT4gcmVzcG9uc2U7CiAgICAgaXQgPSByZXNwb25zZU1hcC5maW5kKENCT1IoNCkpOwog
ICAgIGlmIChpdCAhPSByZXNwb25zZU1hcC5lbmQoKSAmJiBpdC0+c2Vjb25kLmlzTWFwKCkpIHsK
ICAgICAgICAgYXV0byYgdXNlciA9IGl0LT5zZWNvbmQuZ2V0TWFwKCk7CkBAIC0xNzMsMTAgKzE3
NCwzMCBAQCBSZWZQdHI8QXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlPiByZWFkQ1RBUEdl
dEFzc2VydGlvblJlc3BvbnNlKGNvbnN0IFZlY3RvcgogICAgICAgICBpZiAoaXRyID09IHVzZXIu
ZW5kKCkgfHwgIWl0ci0+c2Vjb25kLmlzQnl0ZVN0cmluZygpKQogICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAgICAgICAgIGF1dG8mIHVzZXJIYW5kbGUgPSBpdHItPnNlY29uZC5nZXRCeXRl
U3RyaW5nKCk7Ci0gICAgICAgIHJldHVybiBBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2U6
OmNyZWF0ZShjcmVkZW50aWFsSWQsIGF1dGhEYXRhLCBzaWduYXR1cmUsIHVzZXJIYW5kbGUpOwor
ICAgICAgICByZXNwb25zZSA9IEF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZTo6Y3JlYXRl
KGNyZWRlbnRpYWxJZCwgYXV0aERhdGEsIHNpZ25hdHVyZSwgdXNlckhhbmRsZSk7CisKKyAgICAg
ICAgaXRyID0gdXNlci5maW5kKENCT1Ioa0VudGl0eU5hbWVNYXBLZXkpKTsKKyAgICAgICAgaWYg
KGl0ciAhPSB1c2VyLmVuZCgpKSB7CisgICAgICAgICAgICBpZiAoIWl0ci0+c2Vjb25kLmlzU3Ry
aW5nKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgICAgICByZXNw
b25zZS0+c2V0TmFtZShpdHItPnNlY29uZC5nZXRTdHJpbmcoKSk7CisgICAgICAgIH0KKworICAg
ICAgICBpdHIgPSB1c2VyLmZpbmQoQ0JPUihrRGlzcGxheU5hbWVNYXBLZXkpKTsKKyAgICAgICAg
aWYgKGl0ciAhPSB1c2VyLmVuZCgpKSB7CisgICAgICAgICAgICBpZiAoIWl0ci0+c2Vjb25kLmlz
U3RyaW5nKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgICAgICBy
ZXNwb25zZS0+c2V0RGlzcGxheU5hbWUoaXRyLT5zZWNvbmQuZ2V0U3RyaW5nKCkpOworICAgICAg
ICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmVzcG9uc2UgPSBBdXRoZW50aWNhdG9yQXNzZXJ0
aW9uUmVzcG9uc2U6OmNyZWF0ZShjcmVkZW50aWFsSWQsIGF1dGhEYXRhLCBzaWduYXR1cmUsIHsg
fSk7CiAgICAgfQogCi0gICAgcmV0dXJuIEF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZTo6
Y3JlYXRlKGNyZWRlbnRpYWxJZCwgYXV0aERhdGEsIHNpZ25hdHVyZSwgeyB9KTsKKyAgICBpdCA9
IHJlc3BvbnNlTWFwLmZpbmQoQ0JPUig1KSk7CisgICAgaWYgKGl0ICE9IHJlc3BvbnNlTWFwLmVu
ZCgpICYmIGl0LT5zZWNvbmQuaXNVbnNpZ25lZCgpKQorICAgICAgICByZXNwb25zZS0+c2V0TnVt
YmVyT2ZDcmVkZW50aWFscyhpdC0+c2Vjb25kLmdldFVuc2lnbmVkKCkpOworCisgICAgcmV0dXJu
IHJlc3BvbnNlOwogfQogCiBPcHRpb25hbDxBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlPiBy
ZWFkQ1RBUEdldEluZm9SZXNwb25zZShjb25zdCBWZWN0b3I8dWludDhfdD4mIGluQnVmZmVyKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYkF1dGhlbnRpY2F0
aW9uUGFuZWxDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElXZWJBdXRo
ZW50aWNhdGlvblBhbmVsQ2xpZW50LmgKaW5kZXggNTU1YjU2MTlmZDgyNWNkYzViYmMwNDUwYjc4
OTgzNzY2MmVkMjk0NC4uMjI2YjgxZTgzYzA4Y2M1NzRjMDU5MjdiMWNjYjkxZjYyYjA5OTZjYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYkF1dGhlbnRpY2F0
aW9uUGFuZWxDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2Vi
QXV0aGVudGljYXRpb25QYW5lbENsaWVudC5oCkBAIC0yNyw2ICsyNywxNCBAQAogCiAjaWYgRU5B
QkxFKFdFQl9BVVRITikKIAorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorI2lu
Y2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlOwor
fQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIGVudW0gY2xhc3MgV2ViQXV0aGVudGljYXRpb25TdGF0
dXMgOiBib29sOwogZW51bSBjbGFzcyBXZWJBdXRoZW50aWNhdGlvblJlc3VsdCA6IGJvb2w7CkBA
IC00MSw2ICs0OSw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVQYW5lbChX
ZWJLaXQ6OldlYkF1dGhlbnRpY2F0aW9uU3RhdHVzKSBjb25zdCB7IH0KICAgICB2aXJ0dWFsIHZv
aWQgZGlzbWlzc1BhbmVsKFdlYktpdDo6V2ViQXV0aGVudGljYXRpb25SZXN1bHQpIGNvbnN0IHsg
fQorICAgIHZpcnR1YWwgdm9pZCBzZWxlY3RBc3NlcnRpb25SZXNwb25zZXMoY29uc3QgSGFzaFNl
dDxSZWY8V2ViQ29yZTo6QXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlPj4mIHJlc3BvbnNl
cywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBSZWY8V2ViQ29yZTo6QXV0aGVudGljYXRv
ckFzc2VydGlvblJlc3BvbnNlPiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBjb25zdCB7IGNvbXBs
ZXRpb25IYW5kbGVyKCpyZXNwb25zZXMuYmVnaW4oKSk7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNl
IEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vQXV0aGVudGljYXRvci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGlj
YXRpb24vQXV0aGVudGljYXRvci5oCmluZGV4IDBkMjQ3MTNiZjczYmMwOWUxNzMwYTI5MjE2NDlj
Y2M4OGViMTc5YjMuLmFmYWVkZDE3NzA2MDEzOTQ4MDczNDFiNDA5ZDQ3ZTJkMGNjZjM4NmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhl
bnRpY2F0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlv
bi9BdXRoZW50aWNhdG9yLmgKQEAgLTM1LDYgKzM1LDEwIEBACiAjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCituYW1lc3BhY2UgV2ViQ29yZSB7
CitjbGFzcyBBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2U7Cit9CisKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCiBjbGFzcyBBdXRoZW50aWNhdG9yIDogcHVibGljIFJlZkNvdW50ZWQ8QXV0aGVu
dGljYXRvcj4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxBdXRoZW50aWNhdG9yPiB7CkBAIC00Nyw2
ICs1MSw3IEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lkIHJlc3BvbmRSZWNlaXZlZChS
ZXNwb25kJiYpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIGRvd25ncmFkZShBdXRoZW50aWNh
dG9yKiBpZCwgUmVmPEF1dGhlbnRpY2F0b3I+JiYgZG93bmdyYWRlZEF1dGhlbnRpY2F0b3IpID0g
MDsKICAgICAgICAgdmlydHVhbCB2b2lkIGF1dGhlbnRpY2F0b3JTdGF0dXNVcGRhdGVkKFdlYkF1
dGhlbnRpY2F0aW9uU3RhdHVzKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCBzZWxlY3RBc3Nl
cnRpb25SZXNwb25zZXMoY29uc3QgSGFzaFNldDxSZWY8V2ViQ29yZTo6QXV0aGVudGljYXRvckFz
c2VydGlvblJlc3BvbnNlPj4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFJlZjxXZWJD
b3JlOjpBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2U+Jik+JiYpID0gMDsKICAgICB9Owog
CiAgICAgdmlydHVhbCB+QXV0aGVudGljYXRvcigpID0gZGVmYXVsdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5h
Z2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhl
bnRpY2F0b3JNYW5hZ2VyLmNwcAppbmRleCA2ZmFlZGU1NDc2NDRhYjdkOGY5NmU4OTBkODM4YTFi
YjEzYmMwODljLi5lYjQ5ZGIwZDgxODJmMmNjMjZjZGRjNGJiOWU3ODhiMjIwZjUyNDdjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50
aWNhdG9yTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuY3BwCkBAIC0yNzMsNiArMjczLDEyIEBAIHZv
aWQgQXV0aGVudGljYXRvck1hbmFnZXI6OmF1dGhlbnRpY2F0b3JTdGF0dXNVcGRhdGVkKFdlYkF1
dGhlbnRpY2F0aW9uU3RhdHVzIHN0CiAgICAgICAgIHBhbmVsLT5jbGllbnQoKS51cGRhdGVQYW5l
bChzdGF0dXMpOwogfQogCit2b2lkIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpzZWxlY3RBc3NlcnRp
b25SZXNwb25zZXMoY29uc3QgSGFzaFNldDxSZWY8V2ViQ29yZTo6QXV0aGVudGljYXRvckFzc2Vy
dGlvblJlc3BvbnNlPj4mIHJlc3BvbnNlcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBS
ZWY8V2ViQ29yZTo6QXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlPiYpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQoreworICAgIGlmIChhdXRvKiBwYW5lbCA9IG1fcGVuZGluZ1JlcXVlc3REYXRh
LnBhbmVsLmdldCgpKQorICAgICAgICBwYW5lbC0+Y2xpZW50KCkuc2VsZWN0QXNzZXJ0aW9uUmVz
cG9uc2VzKHJlc3BvbnNlcywgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCiBVbmlx
dWVSZWY8QXV0aGVudGljYXRvclRyYW5zcG9ydFNlcnZpY2U+IEF1dGhlbnRpY2F0b3JNYW5hZ2Vy
OjpjcmVhdGVTZXJ2aWNlKEF1dGhlbnRpY2F0b3JUcmFuc3BvcnQgdHJhbnNwb3J0LCBBdXRoZW50
aWNhdG9yVHJhbnNwb3J0U2VydmljZTo6T2JzZXJ2ZXImIG9ic2VydmVyKSBjb25zdAogewogICAg
IHJldHVybiBBdXRoZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZTo6Y3JlYXRlKHRyYW5zcG9ydCwg
b2JzZXJ2ZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmgKaW5kZXggZGM2YzQ0NDM5
MTAwMTAwMjNiYjE1NTI5ODA5ZTllZWE2NzBlZmIwZS4uOTdiYTJjOTBlZjZmYzZlMGEwMWYxNmRm
ZTY0MjM0N2IyMDIxMGE2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5oCkBAIC04
MSw2ICs4MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZXNwb25kUmVjZWl2ZWQoUmVzcG9uZCYm
KSBmaW5hbDsKICAgICB2b2lkIGRvd25ncmFkZShBdXRoZW50aWNhdG9yKiBpZCwgUmVmPEF1dGhl
bnRpY2F0b3I+JiYgZG93bmdyYWRlZEF1dGhlbnRpY2F0b3IpIGZpbmFsOwogICAgIHZvaWQgYXV0
aGVudGljYXRvclN0YXR1c1VwZGF0ZWQoV2ViQXV0aGVudGljYXRpb25TdGF0dXMpIGZpbmFsOwor
ICAgIHZvaWQgc2VsZWN0QXNzZXJ0aW9uUmVzcG9uc2VzKGNvbnN0IEhhc2hTZXQ8UmVmPFdlYkNv
cmU6OkF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZT4+JiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChjb25zdCBSZWY8V2ViQ29yZTo6QXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlPiYp
PiYmKSBmaW5hbDsKIAogICAgIC8vIE92ZXJyaWRlbiBieSBNb2NrQXV0aGVudGljYXRvck1hbmFn
ZXIuCiAgICAgdmlydHVhbCBVbmlxdWVSZWY8QXV0aGVudGljYXRvclRyYW5zcG9ydFNlcnZpY2U+
IGNyZWF0ZVNlcnZpY2UoV2ViQ29yZTo6QXV0aGVudGljYXRvclRyYW5zcG9ydCwgQXV0aGVudGlj
YXRvclRyYW5zcG9ydFNlcnZpY2U6Ok9ic2VydmVyJikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Nb2NrL01vY2tIaWRDb25uZWN0
aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2sv
TW9ja0hpZENvbm5lY3Rpb24uY3BwCmluZGV4IDllNWQ4ZmE3MDY2ODBkZjZlMTRmOTYzZjIzYmU5
ZTg4NWU3NDRmNTUuLjkwYzFiYjAwNWU1Yjk4ZDdkODQ4ZTgxNGM4MjEyZDgxYTkwZmUwNzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2sv
TW9ja0hpZENvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1
dGhlbnRpY2F0aW9uL01vY2svTW9ja0hpZENvbm5lY3Rpb24uY3BwCkBAIC0xNTgsNyArMTU4LDcg
QEAgdm9pZCBNb2NrSGlkQ29ubmVjdGlvbjo6cGFyc2VSZXF1ZXN0KCkKICAgICAgICAgICAgIGF1
dG8gY21kID0gc3RhdGljX2Nhc3Q8Q3RhcFJlcXVlc3RDb21tYW5kPihwYXlsb2FkWzBdKTsKICAg
ICAgICAgICAgIHBheWxvYWQucmVtb3ZlKDApOwogICAgICAgICAgICAgYXV0byByZXF1ZXN0TWFw
ID0gQ0JPUlJlYWRlcjo6cmVhZChwYXlsb2FkKTsKLSAgICAgICAgICAgIEFTU0VSVChyZXF1ZXN0
TWFwKTsKKyAgICAgICAgICAgIEFTU0VSVChyZXF1ZXN0TWFwIHx8IGNtZCA9PSBDdGFwUmVxdWVz
dENvbW1hbmQ6OmtBdXRoZW50aWNhdG9yR2V0TmV4dEFzc2VydGlvbik7CiAKICAgICAgICAgICAg
IGlmIChjbWQgPT0gQ3RhcFJlcXVlc3RDb21tYW5kOjprQXV0aGVudGljYXRvck1ha2VDcmVkZW50
aWFsKSB7CiAgICAgICAgICAgICAgICAgYXV0byBpdCA9IHJlcXVlc3RNYXAtPmdldE1hcCgpLmZp
bmQoQ0JPUlZhbHVlKEN0YXBNYWtlQ3JlZGVudGlhbFJlcXVlc3RPcHRpb25zS2V5KSk7IC8vIEZp
bmQgb3B0aW9ucy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL2ZpZG8vQ3RhcEF1dGhlbnRpY2F0b3IuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlkby9DdGFwQXV0aGVudGljYXRvci5jcHAKaW5kZXgg
OWU0MWViNzFhZGM1ODQ0ZWZlZGU0MGM2N2RmZTIzM2ZkODZhYzVhMS4uZTczOTk1ZTQwYTMzYmQ3
MjQxZTBlZjk5MWE0YTIwMjk2NGYzMDU5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlkby9DdGFwQXV0aGVudGljYXRvci5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlkby9DdGFwQXV0aGVu
dGljYXRvci5jcHAKQEAgLTEwMCw3ICsxMDAsNTYgQEAgdm9pZCBDdGFwQXV0aGVudGljYXRvcjo6
Y29udGludWVHZXRBc3NlcnRpb25BZnRlclJlc3BvbnNlUmVjZWl2ZWQoVmVjdG9yPHVpbnQ4X3QK
ICAgICAgICAgcmVjZWl2ZVJlc3BvbmQoRXhjZXB0aW9uRGF0YSB7IFVua25vd25FcnJvciwgbWFr
ZVN0cmluZygiVW5rbm93biBpbnRlcm5hbCBlcnJvci4gRXJyb3IgY29kZTogIiwgc3RhdGljX2Nh
c3Q8dWludDhfdD4oZXJyb3IpKSB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICByZWNl
aXZlUmVzcG9uZChyZXNwb25zZS5yZWxlYXNlTm9uTnVsbCgpKTsKKworICAgIGlmIChyZXNwb25z
ZS0+bnVtYmVyT2ZDcmVkZW50aWFscygpIDw9IDEpIHsKKyAgICAgICAgcmVjZWl2ZVJlc3BvbmQo
cmVzcG9uc2UucmVsZWFzZU5vbk51bGwoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBtX3JlbWFpbmluZ0Fzc2VydGlvblJlc3BvbnNlcyA9IHJlc3BvbnNlLT5udW1iZXJPZkNyZWRl
bnRpYWxzKCkgLSAxOworICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9hc3NlcnRpb25SZXNwb25zZXMu
YWRkKHJlc3BvbnNlLnJlbGVhc2VOb25OdWxsKCkpOworICAgIEFTU0VSVF9VTlVTRUQoYWRkUmVz
dWx0LCBhZGRSZXN1bHQuaXNOZXdFbnRyeSk7CisgICAgZHJpdmVyKCkudHJhbnNhY3QoZW5jb2Rl
RW1wdHlBdXRoZW50aWNhdG9yUmVxdWVzdChDdGFwUmVxdWVzdENvbW1hbmQ6OmtBdXRoZW50aWNh
dG9yR2V0TmV4dEFzc2VydGlvbiksIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0oVmVj
dG9yPHVpbnQ4X3Q+JiYgZGF0YSkgeworICAgICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkp
OworICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB3
ZWFrVGhpcy0+Y29udGludWVHZXROZXh0QXNzZXJ0aW9uQWZ0ZXJSZXNwb25zZVJlY2VpdmVkKFdU
Rk1vdmUoZGF0YSkpOworICAgIH0pOworfQorCit2b2lkIEN0YXBBdXRoZW50aWNhdG9yOjpjb250
aW51ZUdldE5leHRBc3NlcnRpb25BZnRlclJlc3BvbnNlUmVjZWl2ZWQoVmVjdG9yPHVpbnQ4X3Q+
JiYgZGF0YSkKK3sKKyAgICBhdXRvIHJlc3BvbnNlID0gcmVhZENUQVBHZXRBc3NlcnRpb25SZXNw
b25zZShkYXRhKTsKKyAgICBpZiAoIXJlc3BvbnNlKSB7CisgICAgICAgIGF1dG8gZXJyb3IgPSBn
ZXRSZXNwb25zZUNvZGUoZGF0YSk7CisgICAgICAgIHJlY2VpdmVSZXNwb25kKEV4Y2VwdGlvbkRh
dGEgeyBVbmtub3duRXJyb3IsIG1ha2VTdHJpbmcoIlVua25vd24gaW50ZXJuYWwgZXJyb3IuIEVy
cm9yIGNvZGU6ICIsIHN0YXRpY19jYXN0PHVpbnQ4X3Q+KGVycm9yKSkgfSk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisgICAgbV9yZW1haW5pbmdBc3NlcnRpb25SZXNwb25zZXMtLTsKKyAgICBh
dXRvIGFkZFJlc3VsdCA9IG1fYXNzZXJ0aW9uUmVzcG9uc2VzLmFkZChyZXNwb25zZS5yZWxlYXNl
Tm9uTnVsbCgpKTsKKyAgICBBU1NFUlRfVU5VU0VEKGFkZFJlc3VsdCwgYWRkUmVzdWx0LmlzTmV3
RW50cnkpOworCisgICAgaWYgKCFtX3JlbWFpbmluZ0Fzc2VydGlvblJlc3BvbnNlcykgeworICAg
ICAgICBpZiAoYXV0byogb2JzZXJ2ZXIgPSB0aGlzLT5vYnNlcnZlcigpKSB7CisgICAgICAgICAg
ICBvYnNlcnZlci0+c2VsZWN0QXNzZXJ0aW9uUmVzcG9uc2VzKG1fYXNzZXJ0aW9uUmVzcG9uc2Vz
LCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyldIChjb25zdCBSZWY8QXV0aGVu
dGljYXRvckFzc2VydGlvblJlc3BvbnNlPiYgcmVzcG9uc2UpIHsKKyAgICAgICAgICAgICAgICBB
U1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworICAgICAgICAgICAgICAgIGlmICghd2Vha1RoaXMp
CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICBhdXRvIHJldHVy
blJlc3BvbnNlID0gbV9hc3NlcnRpb25SZXNwb25zZXMudGFrZShyZXNwb25zZSk7CisgICAgICAg
ICAgICAgICAgaWYgKCFyZXR1cm5SZXNwb25zZSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICAgICAgICAgIHJlY2VpdmVSZXNwb25kKFdURk1vdmUoKnJldHVyblJlc3BvbnNl
KSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgZHJpdmVyKCkudHJhbnNhY3QoZW5jb2RlRW1wdHlBdXRoZW50aWNhdG9yUmVxdWVzdChD
dGFwUmVxdWVzdENvbW1hbmQ6OmtBdXRoZW50aWNhdG9yR2V0TmV4dEFzc2VydGlvbiksIFt3ZWFr
VGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0oVmVjdG9yPHVpbnQ4X3Q+JiYgZGF0YSkgeworICAg
ICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworICAgICAgICBpZiAoIXdlYWtUaGlzKQor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB3ZWFrVGhpcy0+Y29udGludWVHZXROZXh0QXNz
ZXJ0aW9uQWZ0ZXJSZXNwb25zZVJlY2VpdmVkKFdURk1vdmUoZGF0YSkpOworICAgIH0pOwogfQog
CiBib29sIEN0YXBBdXRoZW50aWNhdG9yOjp0cnlEb3duZ3JhZGUoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlkby9DdGFwQXV0aGVudGlj
YXRvci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlkby9D
dGFwQXV0aGVudGljYXRvci5oCmluZGV4IGVlNTQzZDg1Zjk0ZDA4ZmEwYzZiN2EwNDljZGZlZGY4
ZWY0MmZjNWMuLjU0ZmY0OTQxYTY4MDMxNDFiMTgwMTY0YmIyZWIyMGQ5M2QwNzQzY2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8vQ3Rh
cEF1dGhlbnRpY2F0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50
aWNhdGlvbi9maWRvL0N0YXBBdXRoZW50aWNhdG9yLmgKQEAgLTQ4LDEyICs0OCwxNSBAQCBwcml2
YXRlOgogICAgIHZvaWQgY29udGludWVNYWtlQ3JlZGVudGlhbEFmdGVyUmVzcG9uc2VSZWNlaXZl
ZChWZWN0b3I8dWludDhfdD4mJikgY29uc3Q7CiAgICAgdm9pZCBnZXRBc3NlcnRpb24oKSBmaW5h
bDsKICAgICB2b2lkIGNvbnRpbnVlR2V0QXNzZXJ0aW9uQWZ0ZXJSZXNwb25zZVJlY2VpdmVkKFZl
Y3Rvcjx1aW50OF90PiYmKTsKKyAgICB2b2lkIGNvbnRpbnVlR2V0TmV4dEFzc2VydGlvbkFmdGVy
UmVzcG9uc2VSZWNlaXZlZChWZWN0b3I8dWludDhfdD4mJik7CiAKICAgICBib29sIHRyeURvd25n
cmFkZSgpOwogICAgIGJvb2wgcHJvY2Vzc0dvb2dsZUxlZ2FjeUFwcElkU3VwcG9ydEV4dGVuc2lv
bigpOwogCiAgICAgZmlkbzo6QXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZSBtX2luZm87CiAg
ICAgYm9vbCBtX2lzRG93bmdyYWRlZCB7IGZhbHNlIH07CisgICAgc2l6ZV90IG1fcmVtYWluaW5n
QXNzZXJ0aW9uUmVzcG9uc2VzIHsgMCB9OworICAgIEhhc2hTZXQ8UmVmPFdlYkNvcmU6OkF1dGhl
bnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZT4+IG1fYXNzZXJ0aW9uUmVzcG9uc2VzOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggYmZmOWJkYjg2Yjc3YzY0OWMyZmU4NjQyYjM4NmJkYTEzYzY5YTRh
ZS4uNDlmMGE4OTFmNGU5NjQ3ZGRmNWUzNjk3NzNlNzBhNjc4NTU5Y2M0YyAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisy
MDIwLTAxLTA5ICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAg
W1dlYkF1dGhuXSBTdXBwb3J0IGF1dGhlbnRpY2F0b3JHZXROZXh0QXNzZXJ0aW9uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDMzNDYKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzU2NTU4NDg4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0N0YXBSZXNw
b25zZVRlc3QuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpZG9UZXN0RGF0YS5oOgorICAgICAgICBBZGRz
IG5ldyB0ZXN0IGNhc2UgZm9yIG5ldyBsb2dpYyBpbiBEZXZpY2VSZXNwb25zZUNvbnZlcnRlci4K
KwogMjAyMC0wMS0wNiAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgW2lPU10gSXNzdWUgbWFjaCBsb29rdXAgZXh0ZW5zaW9uIHRvIGxhdW5jaCBzZXJ2aWNl
cyBkYWVtb24gZm9yIE1haWwKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9DdGFwUmVzcG9uc2VUZXN0LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9DdGFwUmVzcG9uc2VUZXN0LmNwcAppbmRleCA0MDhjOTRlZGY3NDQ2MjNlZTJhMTAz
NjVmMTcxYzk3MDIzNjM1YTM4Li5hNTA4ZTdmODQ5N2EwYTU5NDA5NzgwMjBhY2JmNzE2NDY4YWY3
ZmI4IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ3RhcFJl
c3BvbnNlVGVzdC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0N0
YXBSZXNwb25zZVRlc3QuY3BwCkBAIC0zOTksNyArMzk5LDE4IEBAIFRFU1QoQ1RBUFJlc3BvbnNl
VGVzdCwgVGVzdFJlYWRNYWtlQ3JlZGVudGlhbFJlc3BvbnNlKQogCiAvLyBMZXZlcmFnaW5nIGV4
YW1wbGUgNSBvZiBzZWN0aW9uIDYuMSBvZiB0aGUgQ1RBUCBzcGVjLgogLy8gaHR0cHM6Ly9maWRv
YWxsaWFuY2Uub3JnL3NwZWNzL2ZpZG8tdjIuMC1wcy0yMDE3MDkyNy9maWRvLWNsaWVudC10by1h
dXRoZW50aWNhdG9yLXByb3RvY29sLXYyLjAtcHMtMjAxNzA5MjcuaHRtbAotVEVTVChDVEFQUmVz
cG9uc2VUZXN0LCBUZXN0UmVhZEdldEFzc2VydGlvblJlc3BvbnNlKQorVEVTVChDVEFQUmVzcG9u
c2VUZXN0LCBUZXN0UmVhZEdldEFzc2VydGlvblJlc3BvbnNlMSkKK3sKKyAgICBhdXRvIGdldEFz
c2VydGlvblJlc3BvbnNlID0gcmVhZENUQVBHZXRBc3NlcnRpb25SZXNwb25zZShjb252ZXJ0Qnl0
ZXNUb1ZlY3RvcihUZXN0RGF0YTo6a0RldmljZUdldEFzc2VydGlvblJlc3BvbnNlU2hvcnQsIHNp
emVvZihUZXN0RGF0YTo6a0RldmljZUdldEFzc2VydGlvblJlc3BvbnNlU2hvcnQpKSk7CisgICAg
QVNTRVJUX1RSVUUoZ2V0QXNzZXJ0aW9uUmVzcG9uc2UpOworCisgICAgRVhQRUNUX0VRKGdldEFz
c2VydGlvblJlc3BvbnNlLT5hdXRoZW50aWNhdG9yRGF0YSgpLT5ieXRlTGVuZ3RoKCksIHNpemVv
ZihUZXN0RGF0YTo6a0N0YXAyR2V0QXNzZXJ0aW9uQXV0aERhdGEpKTsKKyAgICBFWFBFQ1RfRVEo
bWVtY21wKGdldEFzc2VydGlvblJlc3BvbnNlLT5hdXRoZW50aWNhdG9yRGF0YSgpLT5kYXRhKCks
IFRlc3REYXRhOjprQ3RhcDJHZXRBc3NlcnRpb25BdXRoRGF0YSwgc2l6ZW9mKFRlc3REYXRhOjpr
Q3RhcDJHZXRBc3NlcnRpb25BdXRoRGF0YSkpLCAwKTsKKyAgICBFWFBFQ1RfRVEoZ2V0QXNzZXJ0
aW9uUmVzcG9uc2UtPnNpZ25hdHVyZSgpLT5ieXRlTGVuZ3RoKCksIHNpemVvZihUZXN0RGF0YTo6
a0N0YXAyR2V0QXNzZXJ0aW9uU2lnbmF0dXJlKSk7CisgICAgRVhQRUNUX0VRKG1lbWNtcChnZXRB
c3NlcnRpb25SZXNwb25zZS0+c2lnbmF0dXJlKCktPmRhdGEoKSwgVGVzdERhdGE6OmtDdGFwMkdl
dEFzc2VydGlvblNpZ25hdHVyZSwgc2l6ZW9mKFRlc3REYXRhOjprQ3RhcDJHZXRBc3NlcnRpb25T
aWduYXR1cmUpKSwgMCk7Cit9CisKK1RFU1QoQ1RBUFJlc3BvbnNlVGVzdCwgVGVzdFJlYWRHZXRB
c3NlcnRpb25SZXNwb25zZTIpCiB7CiAgICAgYXV0byBnZXRBc3NlcnRpb25SZXNwb25zZSA9IHJl
YWRDVEFQR2V0QXNzZXJ0aW9uUmVzcG9uc2UoY29udmVydEJ5dGVzVG9WZWN0b3IoVGVzdERhdGE6
OmtEZXZpY2VHZXRBc3NlcnRpb25SZXNwb25zZSwgc2l6ZW9mKFRlc3REYXRhOjprRGV2aWNlR2V0
QXNzZXJ0aW9uUmVzcG9uc2UpKSk7CiAgICAgQVNTRVJUX1RSVUUoZ2V0QXNzZXJ0aW9uUmVzcG9u
c2UpOwpAQCAtNDA4LDYgKzQxOSwyNCBAQCBURVNUKENUQVBSZXNwb25zZVRlc3QsIFRlc3RSZWFk
R2V0QXNzZXJ0aW9uUmVzcG9uc2UpCiAgICAgRVhQRUNUX0VRKG1lbWNtcChnZXRBc3NlcnRpb25S
ZXNwb25zZS0+YXV0aGVudGljYXRvckRhdGEoKS0+ZGF0YSgpLCBUZXN0RGF0YTo6a0N0YXAyR2V0
QXNzZXJ0aW9uQXV0aERhdGEsIHNpemVvZihUZXN0RGF0YTo6a0N0YXAyR2V0QXNzZXJ0aW9uQXV0
aERhdGEpKSwgMCk7CiAgICAgRVhQRUNUX0VRKGdldEFzc2VydGlvblJlc3BvbnNlLT5zaWduYXR1
cmUoKS0+Ynl0ZUxlbmd0aCgpLCBzaXplb2YoVGVzdERhdGE6OmtDdGFwMkdldEFzc2VydGlvblNp
Z25hdHVyZSkpOwogICAgIEVYUEVDVF9FUShtZW1jbXAoZ2V0QXNzZXJ0aW9uUmVzcG9uc2UtPnNp
Z25hdHVyZSgpLT5kYXRhKCksIFRlc3REYXRhOjprQ3RhcDJHZXRBc3NlcnRpb25TaWduYXR1cmUs
IHNpemVvZihUZXN0RGF0YTo6a0N0YXAyR2V0QXNzZXJ0aW9uU2lnbmF0dXJlKSksIDApOworICAg
IEVYUEVDVF9FUShnZXRBc3NlcnRpb25SZXNwb25zZS0+dXNlckhhbmRsZSgpLT5ieXRlTGVuZ3Ro
KCksIHNpemVvZihUZXN0RGF0YTo6a0N0YXAyR2V0QXNzZXJ0aW9uVXNlckhhbmRsZSkpOworICAg
IEVYUEVDVF9FUShtZW1jbXAoZ2V0QXNzZXJ0aW9uUmVzcG9uc2UtPnVzZXJIYW5kbGUoKS0+ZGF0
YSgpLCBUZXN0RGF0YTo6a0N0YXAyR2V0QXNzZXJ0aW9uVXNlckhhbmRsZSwgc2l6ZW9mKFRlc3RE
YXRhOjprQ3RhcDJHZXRBc3NlcnRpb25Vc2VySGFuZGxlKSksIDApOworfQorCitURVNUKENUQVBS
ZXNwb25zZVRlc3QsIFRlc3RSZWFkR2V0QXNzZXJ0aW9uUmVzcG9uc2UzKQoreworICAgIGF1dG8g
Z2V0QXNzZXJ0aW9uUmVzcG9uc2UgPSByZWFkQ1RBUEdldEFzc2VydGlvblJlc3BvbnNlKGNvbnZl
cnRCeXRlc1RvVmVjdG9yKFRlc3REYXRhOjprRGV2aWNlR2V0QXNzZXJ0aW9uUmVzcG9uc2VMb25n
LCBzaXplb2YoVGVzdERhdGE6OmtEZXZpY2VHZXRBc3NlcnRpb25SZXNwb25zZUxvbmcpKSk7Cisg
ICAgQVNTRVJUX1RSVUUoZ2V0QXNzZXJ0aW9uUmVzcG9uc2UpOworCisgICAgRVhQRUNUX0VRKGdl
dEFzc2VydGlvblJlc3BvbnNlLT5hdXRoZW50aWNhdG9yRGF0YSgpLT5ieXRlTGVuZ3RoKCksIHNp
emVvZihUZXN0RGF0YTo6a0N0YXAyR2V0QXNzZXJ0aW9uQXV0aERhdGEpKTsKKyAgICBFWFBFQ1Rf
RVEobWVtY21wKGdldEFzc2VydGlvblJlc3BvbnNlLT5hdXRoZW50aWNhdG9yRGF0YSgpLT5kYXRh
KCksIFRlc3REYXRhOjprQ3RhcDJHZXRBc3NlcnRpb25BdXRoRGF0YSwgc2l6ZW9mKFRlc3REYXRh
OjprQ3RhcDJHZXRBc3NlcnRpb25BdXRoRGF0YSkpLCAwKTsKKyAgICBFWFBFQ1RfRVEoZ2V0QXNz
ZXJ0aW9uUmVzcG9uc2UtPnNpZ25hdHVyZSgpLT5ieXRlTGVuZ3RoKCksIHNpemVvZihUZXN0RGF0
YTo6a0N0YXAyR2V0QXNzZXJ0aW9uU2lnbmF0dXJlKSk7CisgICAgRVhQRUNUX0VRKG1lbWNtcChn
ZXRBc3NlcnRpb25SZXNwb25zZS0+c2lnbmF0dXJlKCktPmRhdGEoKSwgVGVzdERhdGE6OmtDdGFw
MkdldEFzc2VydGlvblNpZ25hdHVyZSwgc2l6ZW9mKFRlc3REYXRhOjprQ3RhcDJHZXRBc3NlcnRp
b25TaWduYXR1cmUpKSwgMCk7CisgICAgRVhQRUNUX0VRKGdldEFzc2VydGlvblJlc3BvbnNlLT51
c2VySGFuZGxlKCktPmJ5dGVMZW5ndGgoKSwgc2l6ZW9mKFRlc3REYXRhOjprQ3RhcDJHZXRBc3Nl
cnRpb25Vc2VySGFuZGxlKSk7CisgICAgRVhQRUNUX0VRKG1lbWNtcChnZXRBc3NlcnRpb25SZXNw
b25zZS0+dXNlckhhbmRsZSgpLT5kYXRhKCksIFRlc3REYXRhOjprQ3RhcDJHZXRBc3NlcnRpb25V
c2VySGFuZGxlLCBzaXplb2YoVGVzdERhdGE6OmtDdGFwMkdldEFzc2VydGlvblVzZXJIYW5kbGUp
KSwgMCk7CisgICAgRVhQRUNUX1NUUkVRKGdldEFzc2VydGlvblJlc3BvbnNlLT5uYW1lKCkudXRm
OCgpLmRhdGEoKSwgImpvaG5wc21pdGhAZXhhbXBsZS5jb20iKTsKKyAgICBFWFBFQ1RfU1RSRVEo
Z2V0QXNzZXJ0aW9uUmVzcG9uc2UtPmRpc3BsYXlOYW1lKCkudXRmOCgpLmRhdGEoKSwgIkpvaG4g
UC4gU21pdGgiKTsKKyAgICBFWFBFQ1RfRVEoZ2V0QXNzZXJ0aW9uUmVzcG9uc2UtPm51bWJlck9m
Q3JlZGVudGlhbHMoKSwgMXUpOwogfQogCiAvLyBUZXN0IHRoYXQgVTJGIHJlZ2lzdGVyIHJlc3Bv
bnNlIGlzIHByb3Blcmx5IHBhcnNlZC4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9GaWRvVGVzdERhdGEuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9GaWRvVGVzdERhdGEuaAppbmRleCAzYzIzMDJiMGE4OGI3MjE5ZDllYzZhZGNkMTNh
ZDdkN2I3ZmVkYzYxLi45YTcwNDQxMjQwMmEwNWZhZTI4YTYzOWRmZWZiMzU3MWM3NzYxMTZhIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlkb1Rlc3REYXRh
LmgKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpZG9UZXN0RGF0YS5o
CkBAIC05NjAsNyArOTYwLDEzMSBAQCBjb25zdGV4cHIgdWludDhfdCBrQ3RhcDJHZXRBc3NlcnRp
b25TaWduYXR1cmVbXSA9IHsKICAgICAweDc0LCAweGM3LCAweDQ3LCAweDkwLCAweGVhLCAweGFi
LCAweGIxLCAweDQ0LCAweDExLCAweGU3LCAweGEwLAogfTsKIAorY29uc3RleHByIHVpbnQ4X3Qg
a0N0YXAyR2V0QXNzZXJ0aW9uVXNlckhhbmRsZVtdID0geworICAgIDB4MzAsIDB4ODIsIDB4MDEs
IDB4OTMsIDB4MzAsIDB4ODIsIDB4MDEsIDB4MzgsIDB4YTAsIDB4MDMsIDB4MDIsIDB4MDEsCisg
ICAgMHgwMiwgMHgzMCwgMHg4MiwgMHgwMSwgMHg5MywgMHgzMCwgMHg4MiwgMHgwMSwgMHgzOCwg
MHhhMCwgMHgwMywgMHgwMiwKKyAgICAweDAxLCAweDAyLCAweDMwLCAweDgyLCAweDAxLCAweDkz
LCAweDMwLCAweDgyLAorfTsKKworY29uc3RleHByIHVpbnQ4X3Qga0RldmljZUdldEFzc2VydGlv
blJlc3BvbnNlU2hvcnRbXSA9IHsKKyAgICAvLyBTdWNjZXNzIHJlc3BvbnNlIGNvZGUKKyAgICAw
eDAwLAorICAgIC8vIG1hcCgzKQorICAgIDB4YTMsCisgICAgLy8gdW5zaWduZWQoMSkgLSBDcmVk
ZW50aWFsCisgICAgMHgwMSwKKyAgICAvLyBtYXAoMikKKyAgICAweGEyLAorICAgIC8vIHRleHQo
MikKKyAgICAweDYyLAorICAgIC8vICJpZCIKKyAgICAweDY5LCAweDY0LAorICAgIC8vIGJ5dGVz
KDY0KQorICAgIDB4NTgsIDB4NDAsCisgICAgLy8gY3JlZGVudGlhbCBpZAorICAgIDB4ZjIsIDB4
MjAsIDB4MDYsIDB4ZGUsIDB4NGYsIDB4OTAsIDB4NWEsIDB4ZjYsIDB4OGEsIDB4NDMsIDB4OTQs
IDB4MmYsCisgICAgMHgwMiwgMHg0ZiwgMHgyYSwgMHg1ZSwgMHhjZSwgMHg2MCwgMHgzZCwgMHg5
YywgMHg2ZCwgMHg0YiwgMHgzZCwgMHhmOCwKKyAgICAweGJlLCAweDA4LCAweGVkLCAweDAxLCAw
eGZjLCAweDQ0LCAweDI2LCAweDQ2LCAweGQwLCAweDM0LCAweDg1LCAweDhhLAorICAgIDB4Yzcs
IDB4NWIsIDB4ZWQsIDB4M2YsIDB4ZDUsIDB4ODAsIDB4YmYsIDB4OTgsIDB4MDgsIDB4ZDksIDB4
NGYsIDB4Y2IsCisgICAgMHhlZSwgMHg4MiwgMHhiOSwgMHhiMiwgMHhlZiwgMHg2NiwgMHg3Nywg
MHhhZiwgMHgwYSwgMHhkYywgMHhjMywgMHg1OCwKKyAgICAweDUyLCAweGVhLCAweDZiLCAweDll
LAorICAgIC8vIHRleHQoNCkKKyAgICAweDY0LAorICAgIC8vICJ0eXBlIgorICAgIDB4NzQsIDB4
NzksIDB4NzAsIDB4NjUsCisgICAgLy8gdGV4dCgxMCkKKyAgICAweDZhLAorICAgIC8vICJwdWJs
aWMta2V5IgorICAgIDB4NzAsIDB4NzUsIDB4NjIsIDB4NkMsIDB4NjksIDB4NjMsIDB4MkQsIDB4
NkIsIDB4NjUsIDB4NzksCisgICAgLy8gdW5zaWduZWQoMikgLSBBdXRoIGRhdGEKKyAgICAweDAy
LAorICAgIC8vIGJ5dGVzKDM3KQorICAgIDB4NTgsIDB4MjUsCisgICAgLy8gYXV0aCBkYXRhCisg
ICAgMHg2MiwgMHg1ZCwgMHhkYSwgMHhkZiwgMHg3NCwgMHgzZiwgMHg1NywgMHgyNywgMHhlNiwg
MHg2YiwgMHhiYSwgMHg4YywKKyAgICAweDJlLCAweDM4LCAweDc5LCAweDIyLCAweGQxLCAweGFm
LCAweDQzLCAweGM1LCAweDAzLCAweGQ5LCAweDExLCAweDRhLAorICAgIDB4OGYsIDB4YmEsIDB4
MTAsIDB4NGQsIDB4ODQsIDB4ZDAsIDB4MmIsIDB4ZmEsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAs
CisgICAgMHgxMSwKKyAgICAvLyB1bnNpZ25lZCgzKSAtIHNpZ25hdHVyZQorICAgIDB4MDMsCisg
ICAgLy8gYnl0ZXMoNzEpCisgICAgMHg1OCwgMHg0NywKKyAgICAvLyBzaWduYXR1cmUKKyAgICAw
eDMwLCAweDQ1LCAweDAyLCAweDIwLCAweDRhLCAweDVhLCAweDlkLCAweGQzLCAweDkyLCAweDk4
LCAweDE0LCAweDlkLAorICAgIDB4OTAsIDB4NDcsIDB4NjksIDB4YjUsIDB4MWEsIDB4NDUsIDB4
MTQsIDB4MzMsIDB4MDAsIDB4NmYsIDB4MTgsIDB4MmEsCisgICAgMHgzNCwgMHhmYiwgMHhkZiwg
MHg2NiwgMHhkZSwgMHg1ZiwgMHhjNywgMHgxNywgMHhkNywgMHg1ZiwgMHhiMywgMHg1MCwKKyAg
ICAweDAyLCAweDIxLCAweDAwLCAweGE0LCAweDZiLCAweDhlLCAweGEzLCAweGMzLCAweGI5LCAw
eDMzLCAweDgyLCAweDFjLAorICAgIDB4NmUsIDB4N2YsIDB4NWUsIDB4ZjksIDB4ZGEsIDB4YWUs
IDB4OTQsIDB4YWIsIDB4NDcsIDB4ZjEsIDB4OGQsIDB4YjQsCisgICAgMHg3NCwgMHhjNywgMHg0
NywgMHg5MCwgMHhlYSwgMHhhYiwgMHhiMSwgMHg0NCwgMHgxMSwgMHhlNywgMHhhMCwKK307CisK
IGNvbnN0ZXhwciB1aW50OF90IGtEZXZpY2VHZXRBc3NlcnRpb25SZXNwb25zZVtdID0geworICAg
IC8vIFN1Y2Nlc3MgcmVzcG9uc2UgY29kZQorICAgIDB4MDAsCisgICAgLy8gbWFwKDQpCisgICAg
MHhhNCwKKyAgICAvLyB1bnNpZ25lZCgxKSAtIENyZWRlbnRpYWwKKyAgICAweDAxLAorICAgIC8v
IG1hcCgyKQorICAgIDB4YTIsCisgICAgLy8gdGV4dCgyKQorICAgIDB4NjIsCisgICAgLy8gImlk
IgorICAgIDB4NjksIDB4NjQsCisgICAgLy8gYnl0ZXMoNjQpCisgICAgMHg1OCwgMHg0MCwKKyAg
ICAvLyBjcmVkZW50aWFsIGlkCisgICAgMHhmMiwgMHgyMCwgMHgwNiwgMHhkZSwgMHg0ZiwgMHg5
MCwgMHg1YSwgMHhmNiwgMHg4YSwgMHg0MywgMHg5NCwgMHgyZiwKKyAgICAweDAyLCAweDRmLCAw
eDJhLCAweDVlLCAweGNlLCAweDYwLCAweDNkLCAweDljLCAweDZkLCAweDRiLCAweDNkLCAweGY4
LAorICAgIDB4YmUsIDB4MDgsIDB4ZWQsIDB4MDEsIDB4ZmMsIDB4NDQsIDB4MjYsIDB4NDYsIDB4
ZDAsIDB4MzQsIDB4ODUsIDB4OGEsCisgICAgMHhjNywgMHg1YiwgMHhlZCwgMHgzZiwgMHhkNSwg
MHg4MCwgMHhiZiwgMHg5OCwgMHgwOCwgMHhkOSwgMHg0ZiwgMHhjYiwKKyAgICAweGVlLCAweDgy
LCAweGI5LCAweGIyLCAweGVmLCAweDY2LCAweDc3LCAweGFmLCAweDBhLCAweGRjLCAweGMzLCAw
eDU4LAorICAgIDB4NTIsIDB4ZWEsIDB4NmIsIDB4OWUsCisgICAgLy8gdGV4dCg0KQorICAgIDB4
NjQsCisgICAgLy8gInR5cGUiCisgICAgMHg3NCwgMHg3OSwgMHg3MCwgMHg2NSwKKyAgICAvLyB0
ZXh0KDEwKQorICAgIDB4NmEsCisgICAgLy8gInB1YmxpYy1rZXkiCisgICAgMHg3MCwgMHg3NSwg
MHg2MiwgMHg2QywgMHg2OSwgMHg2MywgMHgyRCwgMHg2QiwgMHg2NSwgMHg3OSwKKyAgICAvLyB1
bnNpZ25lZCgyKSAtIEF1dGggZGF0YQorICAgIDB4MDIsCisgICAgLy8gYnl0ZXMoMzcpCisgICAg
MHg1OCwgMHgyNSwKKyAgICAvLyBhdXRoIGRhdGEKKyAgICAweDYyLCAweDVkLCAweGRhLCAweGRm
LCAweDc0LCAweDNmLCAweDU3LCAweDI3LCAweGU2LCAweDZiLCAweGJhLCAweDhjLAorICAgIDB4
MmUsIDB4MzgsIDB4NzksIDB4MjIsIDB4ZDEsIDB4YWYsIDB4NDMsIDB4YzUsIDB4MDMsIDB4ZDks
IDB4MTEsIDB4NGEsCisgICAgMHg4ZiwgMHhiYSwgMHgxMCwgMHg0ZCwgMHg4NCwgMHhkMCwgMHgy
YiwgMHhmYSwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgICAweDExLAorICAgIC8vIHVuc2ln
bmVkKDMpIC0gc2lnbmF0dXJlCisgICAgMHgwMywKKyAgICAvLyBieXRlcyg3MSkKKyAgICAweDU4
LCAweDQ3LAorICAgIC8vIHNpZ25hdHVyZQorICAgIDB4MzAsIDB4NDUsIDB4MDIsIDB4MjAsIDB4
NGEsIDB4NWEsIDB4OWQsIDB4ZDMsIDB4OTIsIDB4OTgsIDB4MTQsIDB4OWQsCisgICAgMHg5MCwg
MHg0NywgMHg2OSwgMHhiNSwgMHgxYSwgMHg0NSwgMHgxNCwgMHgzMywgMHgwMCwgMHg2ZiwgMHgx
OCwgMHgyYSwKKyAgICAweDM0LCAweGZiLCAweGRmLCAweDY2LCAweGRlLCAweDVmLCAweGM3LCAw
eDE3LCAweGQ3LCAweDVmLCAweGIzLCAweDUwLAorICAgIDB4MDIsIDB4MjEsIDB4MDAsIDB4YTQs
IDB4NmIsIDB4OGUsIDB4YTMsIDB4YzMsIDB4YjksIDB4MzMsIDB4ODIsIDB4MWMsCisgICAgMHg2
ZSwgMHg3ZiwgMHg1ZSwgMHhmOSwgMHhkYSwgMHhhZSwgMHg5NCwgMHhhYiwgMHg0NywgMHhmMSwg
MHg4ZCwgMHhiNCwKKyAgICAweDc0LCAweGM3LCAweDQ3LCAweDkwLCAweGVhLCAweGFiLCAweGIx
LCAweDQ0LCAweDExLCAweGU3LCAweGEwLAorICAgIC8vIHVuc2lnbmVkKDQpIC0gcHVibGljS2V5
Q3JlZGVudGlhbFVzZXJFbnRpdHkKKyAgICAweDA0LAorICAgIC8vIG1hcCgxKQorICAgIDB4YTEs
CisgICAgLy8gdGV4dCgyKQorICAgIDB4NjIsCisgICAgLy8gImlkIgorICAgIDB4NjksIDB4NjQs
CisgICAgLy8gYnl0ZXMoMzIpIC0gdXNlciBpZAorICAgIDB4NTgsIDB4MjAsCisgICAgLy8gdXNl
ciBpZAorICAgIDB4MzAsIDB4ODIsIDB4MDEsIDB4OTMsIDB4MzAsIDB4ODIsIDB4MDEsIDB4Mzgs
IDB4YTAsIDB4MDMsIDB4MDIsIDB4MDEsCisgICAgMHgwMiwgMHgzMCwgMHg4MiwgMHgwMSwgMHg5
MywgMHgzMCwgMHg4MiwgMHgwMSwgMHgzOCwgMHhhMCwgMHgwMywgMHgwMiwKKyAgICAweDAxLCAw
eDAyLCAweDMwLCAweDgyLCAweDAxLCAweDkzLCAweDMwLCAweDgyLAorfTsKKworY29uc3RleHBy
IHVpbnQ4X3Qga0RldmljZUdldEFzc2VydGlvblJlc3BvbnNlTG9uZ1tdID0gewogICAgIC8vIFN1
Y2Nlc3MgcmVzcG9uc2UgY29kZQogICAgIDB4MDAsCiAgICAgLy8gbWFwKDUpCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZDE3
MGFkOWRkZGI1OTNkYWE3MGYwZDg0Y2E1NzI3YjlkNTliYzZiZi4uZmM0NjNiN2FhZDQwNzQwZGNj
YmFmMWVhYzkzMzU1NDI1MmJhMjczMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIwLTAxLTA5
ICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhu
XSBTdXBwb3J0IGF1dGhlbnRpY2F0b3JHZXROZXh0QXNzZXJ0aW9uCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDMzNDYKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzU2NTU4NDg4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1m
YWlsdXJlLWhpZC5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC93cHQvd2ViYXV0
aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLWhpZC5odHRwcy5odG1sOgorICAg
ICAgICAqIGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtc3VjY2Vz
cy1oaWQuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvd3B0L3dlYmF1dGhuL3B1
YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtc3VjY2Vzcy1oaWQuaHR0cHMuaHRtbDoKKyAgICAgICAg
KiBodHRwL3dwdC93ZWJhdXRobi9yZXNvdXJjZXMvdXRpbC5qczoKKwogMjAyMC0wMS0wNiAgUGVy
IEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gSXNzdWUg
bWFjaCBsb29rdXAgZXh0ZW5zaW9uIHRvIGxhdW5jaCBzZXJ2aWNlcyBkYWVtb24gZm9yIE1haWwK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3Jl
ZGVudGlhbC1nZXQtZmFpbHVyZS1oaWQuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLWhpZC5o
dHRwcy1leHBlY3RlZC50eHQKaW5kZXggNTRiYjUwODY3YzkyM2NkYTZmYTk3YjdhY2U3ZTAwNGFj
ODk1Y2YwZS4uYzg0YzU0ZjhlYzdiNDc0ZWEwYTdlZTVjZDY0ODYxNjIxY2JiYjY4MSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFs
LWdldC1mYWlsdXJlLWhpZC5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLWhpZC5odHRw
cy1leHBlY3RlZC50eHQKQEAgLTUsNCArNSw1IEBAIFBBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdz
IFtbZ2V0XV0gd2l0aCB1bnN1cHBvcnRlZCBvcHRpb25zIGluIGEgbW9jayBoaWQgYXV0aGVuCiBQ
QVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggYXV0aGVudGljYXRvciBkb3du
Z3JhZGUgZmFpbGVkIGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4gCiBQQVNTIFB1YmxpY0tl
eUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggYXV0aGVudGljYXRvciBkb3duZ3JhZGUgZmFpbGVk
IGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4gMiAKIFBBU1MgUHVibGljS2V5Q3JlZGVudGlh
bCdzIFtbZ2V0XV0gd2l0aCBhdXRoZW50aWNhdG9yIGRvd25ncmFkZSBzdWNjZWVkZWQgYW5kIHRo
ZW4gVTJGIGZhaWxlZCBpbiBhIG1vY2sgaGlkIGF1dGhlbnRpY2F0b3IuIAorUEFTUyBQdWJsaWNL
ZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRoIGdldE5leHRBc3NlcnRpb24gZmFpbGVkIGluIGEg
bW9jayBoaWQgYXV0aGVudGljYXRvci4gCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
d3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtZmFpbHVyZS1oaWQuaHR0cHMu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlh
bC1nZXQtZmFpbHVyZS1oaWQuaHR0cHMuaHRtbAppbmRleCA2OGUzY2UyMGE3NTE4ZWU1MmQyZTE4
OWZhN2UyNWEyNGM1ODk1YzBlLi5iMTdmNzI2ZjZjMDY4YWUxYWJmZjVjYzRmYTFkMDhhZjU0MTc1
NTViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5
LWNyZWRlbnRpYWwtZ2V0LWZhaWx1cmUtaGlkLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLWhpZC5o
dHRwcy5odG1sCkBAIC04NCw0ICs4NCwxNiBAQAogICAgICAgICAgICAgaW50ZXJuYWxzLnNldE1v
Y2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24oeyBoaWQ6IHsgc3RhZ2U6ICJyZXF1ZXN0
Iiwgc3ViU3RhZ2U6ICJtc2ciLCBlcnJvcjogIm1hbGljaW91cy1wYXlsb2FkIiwgY2FuRG93bmdy
YWRlOiB0cnVlLCBwYXlsb2FkQmFzZTY0OiBbdGVzdEN0YXBFcnJJbnZhbGlkQ3JlZGVudGlhbFJl
c3BvbnNlQmFzZTY0LCB0ZXN0VTJmQXBkdU5vRXJyb3JPbmx5UmVzcG9uc2VCYXNlNjRdIH0gfSk7
CiAgICAgICAgIHJldHVybiBwcm9taXNlUmVqZWN0cyh0LCAiVW5rbm93bkVycm9yIiwgbmF2aWdh
dG9yLmNyZWRlbnRpYWxzLmdldChvcHRpb25zKSwgIlVua25vd24gaW50ZXJuYWwgZXJyb3IuIEVy
cm9yIGNvZGU6IDM0Iik7CiAgICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdp
dGggYXV0aGVudGljYXRvciBkb3duZ3JhZGUgc3VjY2VlZGVkIGFuZCB0aGVuIFUyRiBmYWlsZWQg
aW4gYSBtb2NrIGhpZCBhdXRoZW50aWNhdG9yLiIpOworCisgICAgcHJvbWlzZV90ZXN0KGZ1bmN0
aW9uKHQpIHsKKyAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgIHB1YmxpY0tl
eTogeworICAgICAgICAgICAgICAgIGNoYWxsZW5nZTogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1
NiIpCisgICAgICAgICAgICB9CisgICAgICAgIH07CisKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRl
cm5hbHMpCisgICAgICAgICAgICBpbnRlcm5hbHMuc2V0TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29u
ZmlndXJhdGlvbih7IGhpZDogeyBzdGFnZTogInJlcXVlc3QiLCBzdWJTdGFnZTogIm1zZyIsIGVy
cm9yOiAibWFsaWNpb3VzLXBheWxvYWQiLCBwYXlsb2FkQmFzZTY0OiBbdGVzdEFzc2VydGlvbk1l
c3NhZ2VMb25nQmFzZTY0LCB0ZXN0Q3RhcEVyck5vdEFsbG93ZWRSZXNwb25zZUJhc2U2NF0gfSB9
KTsKKyAgICAgICAgcmV0dXJuIHByb21pc2VSZWplY3RzKHQsICJVbmtub3duRXJyb3IiLCBuYXZp
Z2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpLCAiVW5rbm93biBpbnRlcm5hbCBlcnJvci4g
RXJyb3IgY29kZTogNDgiKTsKKyAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0g
d2l0aCBnZXROZXh0QXNzZXJ0aW9uIGZhaWxlZCBpbiBhIG1vY2sgaGlkIGF1dGhlbnRpY2F0b3Iu
Iik7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhu
L3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtc3VjY2Vzcy1oaWQuaHR0cHMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdl
dC1zdWNjZXNzLWhpZC5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggNDNjMzA2Y2IwMTU2OTlkMmYy
MjA3ZDliZWM2ZjEwMTRhZGYxZmU5Ny4uNjczOTEwNzQ1YTdhYjQ2YTdkYzU0NWVjZmFmNzFjYmU1
YWI4NWMyZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGlj
LWtleS1jcmVkZW50aWFsLWdldC1zdWNjZXNzLWhpZC5odHRwcy1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1z
dWNjZXNzLWhpZC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTUsNCArNSw1IEBAIFBBU1MgUHVibGlj
S2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCB1c2VyVmVyaWZpY2F0aW9uIHsgcHJlZmVycmVk
IH0gaW4gYSBtb2NrCiBQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggdXNl
clZlcmlmaWNhdGlvbiB7IGRpc2NvdXJhZ2VkIH0gaW4gYSBtb2NrIGhpZCBhdXRoZW50aWNhdG9y
LiAKIFBBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCBtaXhlZCBvcHRpb25z
IGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4gCiBQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwn
cyBbW2dldF1dIHdpdGggdHdvIGNvbnNlY3V0aXZlIHJlcXVlc3RzLiAKK1BBU1MgUHVibGljS2V5
Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCBtdWx0aXBsZSBhY2NvdW50cyBpbiBhIG1vY2sgaGlk
IGF1dGhlbnRpY2F0b3IuIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJh
dXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LXN1Y2Nlc3MtaGlkLmh0dHBzLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LXN1
Y2Nlc3MtaGlkLmh0dHBzLmh0bWwKaW5kZXggZDI4NDNkNThkMmE5NTMwYjRmOTJhNGYxODYyNTc2
YmRjMGMzYTE3NS4uZWM5ZDZmYzI4ZjRmMTk5Yjg3ODQyNTk1OWNiZjEyYmJkYjI1N2Y0MiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50
aWFsLWdldC1zdWNjZXNzLWhpZC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0
L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtc3VjY2Vzcy1oaWQuaHR0cHMuaHRt
bApAQCAtMTAxLDQgKzEwMSwxOSBAQAogICAgICAgICAgICAgcmV0dXJuIGNoZWNrQ3RhcEdldEFz
c2VydGlvblJlc3VsdChjcmVkZW50aWFsKTsKICAgICAgICAgfSk7CiAgICAgfSwgIlB1YmxpY0tl
eUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggdHdvIGNvbnNlY3V0aXZlIHJlcXVlc3RzLiIpOwor
CisgICAgcHJvbWlzZV90ZXN0KHQgPT4geworICAgICAgICBjb25zdCBvcHRpb25zID0geworICAg
ICAgICAgICAgcHVibGljS2V5OiB7CisgICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBCYXNlNjRV
UkwucGFyc2UoIk1USXpORFUyIiksCisgICAgICAgICAgICAgICAgdGltZW91dDogMTAwCisgICAg
ICAgICAgICB9CisgICAgICAgIH07CisKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisg
ICAgICAgICAgICBpbnRlcm5hbHMuc2V0TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlv
bih7IGhpZDogeyBzdGFnZTogInJlcXVlc3QiLCBzdWJTdGFnZTogIm1zZyIsIGVycm9yOiAic3Vj
Y2VzcyIsIHBheWxvYWRCYXNlNjQ6IFt0ZXN0QXNzZXJ0aW9uTWVzc2FnZUxvbmdCYXNlNjQsIHRl
c3RBc3NlcnRpb25NZXNzYWdlTG9uZ0Jhc2U2NF0gfSB9KTsKKyAgICAgICAgcmV0dXJuIG5hdmln
YXRvci5jcmVkZW50aWFscy5nZXQob3B0aW9ucykudGhlbihjcmVkZW50aWFsID0+IHsKKyAgICAg
ICAgICAgIHJldHVybiBjaGVja0N0YXBHZXRBc3NlcnRpb25SZXN1bHQoY3JlZGVudGlhbCwgIk1J
SUJrekNDQVRpZ0F3SUJBakNDQVpNd2dnRTRvQU1DQVFJd2dnR1RNSUk9Iik7CisgICAgICAgIH0p
OworICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRoIG11bHRpcGxlIGFj
Y291bnRzIGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4iKTsKIDwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcmVzb3VyY2VzL3V0aWwuanMgYi9M
YXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9yZXNvdXJjZXMvdXRpbC5qcwppbmRleCA2ZWZk
ZThhOGE1ZmE2ODMwNDE4ZGYxYTI1NjJhMGQzNTdiMjdlMWEyLi42MWQ4ZjcyNWZmMmI1MTc4YWVh
MTgzODhhNzU1MGUzYTI1NjM2OWNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93
ZWJhdXRobi9yZXNvdXJjZXMvdXRpbC5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJh
dXRobi9yZXNvdXJjZXMvdXRpbC5qcwpAQCAtNjYsNiArNjYsMTUgQEAgY29uc3QgdGVzdEFzc2Vy
dGlvbk1lc3NhZ2VCYXNlNjQgPQogICAgICJaNTFWc3R1UWt1SEkyZVhoMEN0MWdQQzBnU3gzQ1dM
aDVJOWEyQUVBQUFCUUExaEhNRVVDSVFDU0ZUdXVCV2dCIiArCiAgICAgIjQvRjBWQjdEbFVWTTA5
SUhQbXhlMU16SFV3Um9DUlpiQ0FJZ0dLb3Y2eG9BeDJNRWY2LzZxTnM4T3V0emhQMkMiICsKICAg
ICAiUW9KMUw3RmU2NEc5dUJjPSI7Citjb25zdCB0ZXN0QXNzZXJ0aW9uTWVzc2FnZUxvbmdCYXNl
NjQgPQorICAgICJBS1VCb21KcFpGaEFLQWl0enVqK1RzbHplbGYzL3Zad0lHdERRTmdvS2VGZDVv
RWllWXpoeXpBNjVzYWYwdEsyIiArCisgICAgIncvbW9vYTd0UXRHZ0Rkd1pJak9oamN1WjBwUTFh
am9FNEdSMGVYQmxhbkIxWW14cFl5MXJaWGtDV0NWR3pIKzUiICsKKyAgICAiWjUxVnN0dVFrdUhJ
MmVYaDBDdDFnUEMwZ1N4M0NXTGg1STlhMkFFQUFBQlFBMWhITUVVQ0lRQ1NGVHV1QldnQiIgKwor
ICAgICI0L0YwVkI3RGxVVk0wOUlIUG14ZTFNekhVd1JvQ1JaYkNBSWdHS292NnhvQXgyTUVmNi82
cU5zOE91dHpoUDJDIiArCisgICAgIlFvSjFMN0ZlNjRHOXVCY0VwR0pwWkZnZ01JSUJrekNDQVRp
Z0F3SUJBakNDQVpNd2dnRTRvQU1DQVFJd2dnR1QiICsKKyAgICAiTUlKa2FXTnZibmdvYUhSMGNI
TTZMeTl3YVdOekxtRmpiV1V1WTI5dEx6QXdMM0F2WVVKcWFtcHdjVkJpTG5CdSIgKworICAgICJa
MlJ1WVcxbGRtcHZhRzV3YzIxcGRHaEFaWGhoYlhCc1pTNWpiMjFyWkdsemNHeGhlVTVoYldWdFNt
OW9iaUJRIiArCisgICAgIkxpQlRiV2wwYUFVQyI7CiBjb25zdCB0ZXN0VTJmQXBkdU5vRXJyb3JP
bmx5UmVzcG9uc2VCYXNlNjQgPSAia0FBPSI7CiBjb25zdCB0ZXN0VTJmQXBkdUluc05vdFN1cHBv
cnRlZE9ubHlSZXNwb25zZUJhc2U2NCA9ICJiUUE9IjsKIGNvbnN0IHRlc3RVMmZBcGR1V3JvbmdE
YXRhT25seVJlc3BvbnNlQmFzZTY0ID0gImFvQT0iOwpAQCAtOTYsNiArMTA1LDcgQEAgY29uc3Qg
dGVzdFUyZlNpZ25SZXNwb25zZSA9CiAgICAgImY0VjRMZUVBaHFlRDBlZmZUalk1NTNIMTlxK2pX
cTFUYzRXT2tBQT0iOwogY29uc3QgdGVzdEN0YXBFcnJDcmVkZW50aWFsRXhjbHVkZWRPbmx5UmVz
cG9uc2VCYXNlNjQgPSAiR1E9PSI7CiBjb25zdCB0ZXN0Q3RhcEVyckludmFsaWRDcmVkZW50aWFs
UmVzcG9uc2VCYXNlNjQgPSAiSWc9PSI7Citjb25zdCB0ZXN0Q3RhcEVyck5vdEFsbG93ZWRSZXNw
b25zZUJhc2U2NCA9ICJNQT09IjsKIGNvbnN0IHRlc3ROZmNVMmZWZXJzaW9uQmFzZTY0ID0gIlZU
SkdYMVl5a0FBPSI7CiBjb25zdCB0ZXN0TmZjQ3RhcFZlcnNpb25CYXNlNjQgPSAiUmtsRVQxOHlY
ekNRQUE9PSI7CiBjb25zdCB0ZXN0R2V0SW5mb1Jlc3BvbnNlQXBkdUJhc2U2NCA9CkBAIC0zOTQs
MTQgKzQwNCwxNyBAQCBmdW5jdGlvbiBjaGVja1UyZk1ha2VDcmVkZW50aWFsUmVzdWx0KGNyZWRl
bnRpYWwsIGlzTm9uZUF0dGVzdGF0aW9uID0gdHJ1ZSkKICAgICAgICAgYXNzZXJ0X2VxdWFscyhh
dHRlc3RhdGlvbk9iamVjdC5hdHRTdG10Lng1Yy5sZW5ndGgsIDEpOwogfQogCi1mdW5jdGlvbiBj
aGVja0N0YXBHZXRBc3NlcnRpb25SZXN1bHQoY3JlZGVudGlhbCkKK2Z1bmN0aW9uIGNoZWNrQ3Rh
cEdldEFzc2VydGlvblJlc3VsdChjcmVkZW50aWFsLCB1c2VySGFuZGxlQmFzZTY0ID0gbnVsbCkK
IHsKICAgICAvLyBDaGVjayByZXNwb25kCiAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhCYXNlNjRV
UkwucGFyc2UoY3JlZGVudGlhbC5pZCksIEJhc2U2NFVSTC5wYXJzZSh0ZXN0SGlkQ3JlZGVudGlh
bElkQmFzZTY0KSk7CiAgICAgYXNzZXJ0X2VxdWFscyhjcmVkZW50aWFsLnR5cGUsICdwdWJsaWMt
a2V5Jyk7CiAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhuZXcgVWludDhBcnJheShjcmVkZW50aWFs
LnJhd0lkKSwgQmFzZTY0VVJMLnBhcnNlKHRlc3RIaWRDcmVkZW50aWFsSWRCYXNlNjQpKTsKICAg
ICBhc3NlcnRfZXF1YWxzKGJ5dGVzVG9BU0NJSVN0cmluZyhjcmVkZW50aWFsLnJlc3BvbnNlLmNs
aWVudERhdGFKU09OKSwgJ3sidHlwZSI6IndlYmF1dGhuLmdldCIsImNoYWxsZW5nZSI6Ik1USXpO
RFUyIiwib3JpZ2luIjoiaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0MyJ9Jyk7Ci0gICAgYXNzZXJ0X2Vx
dWFscyhjcmVkZW50aWFsLnJlc3BvbnNlLnVzZXJIYW5kbGUsIG51bGwpOworICAgIGlmICh1c2Vy
SGFuZGxlQmFzZTY0ID09IG51bGwpCisgICAgICAgIGFzc2VydF9lcXVhbHMoY3JlZGVudGlhbC5y
ZXNwb25zZS51c2VySGFuZGxlLCBudWxsKTsKKyAgICBlbHNlCisgICAgICAgIGFzc2VydF9hcnJh
eV9lcXVhbHMobmV3IFVpbnQ4QXJyYXkoY3JlZGVudGlhbC5yZXNwb25zZS51c2VySGFuZGxlKSwg
QmFzZTY0VVJMLnBhcnNlKHVzZXJIYW5kbGVCYXNlNjQpKTsKICAgICBhc3NlcnRfbm90X293bl9w
cm9wZXJ0eShjcmVkZW50aWFsLmdldENsaWVudEV4dGVuc2lvblJlc3VsdHMoKSwgImFwcGlkIik7
CiAKICAgICAvLyBDaGVjayBhdXRoRGF0YQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>