<?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>218786</bug_id>
          
          <creation_ts>2020-11-10 20:48:19 -0800</creation_ts>
          <short_desc>REGRESSION(r269660): Crashing in EWS iOS simulator bots</short_desc>
          <delta_ts>2020-11-10 20:57:19 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>218730</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>hi</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wilander</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1706329</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-11-10 20:48:19 -0800</bug_when>
    <thetext>https://trac.webkit.org/changeset/269660 broke the build:
Crashing in EWS iOS simulator bots

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

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

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

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706333</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-11-10 20:56:26 -0800</bug_when>
    <thetext>Committed r269671: &lt;https://trac.webkit.org/changeset/269671&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 413768.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706334</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-11-10 20:57:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/71268318&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413768</attachid>
            <date>2020-11-10 20:48:37 -0800</date>
            <delta_ts>2020-11-10 20:56:26 -0800</delta_ts>
            <desc>REVERT of r269660</desc>
            <filename>bug-218786-20201111044835.patch</filename>
            <type>text/plain</type>
            <size>448427</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NjcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
Yzc2OGQ5NzQyZjRlNTcxYmU5NjFiY2FlYjE0YjU2ZjUyY2FiZTM2Li44MjBmMTRjMTNiYWVlM2Qy
NjM2OTNlMmEwNmVhNjc3MjVjYjA0MGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAyMC0xMS0xMCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNjk2NjAuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg3ODYKKworICAgICAg
ICBDcmFzaGluZyBpbiBFV1MgaU9TIHNpbXVsYXRvciBib3RzCisKKyAgICAgICAgUmV2ZXJ0ZWQg
Y2hhbmdlc2V0OgorCisgICAgICAgICJQQ006IENoYW5nZSBmcm9tIGFkLWNsaWNrLWF0dHJpYnV0
aW9uIHRvIHByaXZhdGUtY2xpY2stCisgICAgICAgIG1lYXN1cmVtZW50IChpbiBhbGwgZm9ybXMs
IGluY2x1ZGluZyAud2VsbC1rbm93biBVUkwpIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NzMwCisgICAgICAgIGh0dHBzOi8vdHJhYy53ZWJraXQu
b3JnL2NoYW5nZXNldC8yNjk2NjAKKwogMjAyMC0xMS0xMCAgUm9zcyBLaXJzbGluZyAgPHJvc3Mu
a2lyc2xpbmdAc29ueS5jb20+CiAKICAgICAgICAgQWxpZ24gJVR5cGVkQXJyYXklIGJlaGF2aW9y
IHdpdGggcmVjZW50IHNwZWMgYWRqdXN0bWVudHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggNWYwNGY2NjZmYTMyYzAyN2VkNDU4
NDMzNTU5MTM5MDhkMmY4ZWE3OS4uYzMxY2YwZDFmOTkyNDVkNjJlZTA1NjUzNGRmNzhlZTFiNTY3
YjU3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMC0xMS0xMCAgQ29tbWl0IFF1ZXVlICA8Y29t
bWl0LXF1ZXVlQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIy
Njk2NjAuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTg3ODYKKworICAgICAgICBDcmFzaGluZyBpbiBFV1MgaU9TIHNpbXVsYXRvciBib3RzCisKKyAg
ICAgICAgUmV2ZXJ0ZWQgY2hhbmdlc2V0OgorCisgICAgICAgICJQQ006IENoYW5nZSBmcm9tIGFk
LWNsaWNrLWF0dHJpYnV0aW9uIHRvIHByaXZhdGUtY2xpY2stCisgICAgICAgIG1lYXN1cmVtZW50
IChpbiBhbGwgZm9ybXMsIGluY2x1ZGluZyAud2VsbC1rbm93biBVUkwpIgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NzMwCisgICAgICAgIGh0dHBz
Oi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yNjk2NjAKKwogMjAyMC0xMS0xMCAgSm9obiBX
aWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBQQ006IENoYW5nZSBmcm9t
IGFkLWNsaWNrLWF0dHJpYnV0aW9uIHRvIHByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQgKGluIGFs
bCBmb3JtcywgaW5jbHVkaW5nIC53ZWxsLWtub3duIFVSTCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0OGE3MWMw
ZDE4YTVkMzhkMzhjZjc1ZjM4YzU2NDQ1ZTVjNTI0N2FmLi5kYzMwZjNlZjkwOWQ4MGE4YTU5Yzcz
YzY0NTAwNmUwOWJkYTEyMjUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjAtMTEt
MTAgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgorCisgICAgICAgIFVu
cmV2aWV3ZWQsIHJldmVydGluZyByMjY5NjYwLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4Nzg2CisKKyAgICAgICAgQ3Jhc2hpbmcgaW4gRVdTIGlP
UyBzaW11bGF0b3IgYm90cworCisgICAgICAgIFJldmVydGVkIGNoYW5nZXNldDoKKworICAgICAg
ICAiUENNOiBDaGFuZ2UgZnJvbSBhZC1jbGljay1hdHRyaWJ1dGlvbiB0byBwcml2YXRlLWNsaWNr
LQorICAgICAgICBtZWFzdXJlbWVudCAoaW4gYWxsIGZvcm1zLCBpbmNsdWRpbmcgLndlbGwta25v
d24gVVJMKSIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxODczMAorICAgICAgICBodHRwczovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjY5NjYw
CisKIDIwMjAtMTEtMTAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAg
ICBXZWJraXQgaW5jb3JyZWN0bHkgc2V0dGluZyB2aXNpYmlsaXR5U3RhdGUgdG8gInByZXJlbmRl
ciIgd2hlbiBvcGVuaW5nIGxpbmsgaW4gbmV3IHRhYgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKaW5k
ZXggNzVlYmZkN2Y5NTE4OTRkNTBmYzI5OWY0ZmI5ZjdkOTIxYjQwNmQxOC4uOGM2MWRiZTYwZWI5
NzA1NTkyOTdkYTE0NWEzOWU4MzA5YzNkM2EyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMjAtMTEtMTAgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3
ZWJraXQub3JnPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjY5NjYwLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4Nzg2CisKKyAg
ICAgICAgQ3Jhc2hpbmcgaW4gRVdTIGlPUyBzaW11bGF0b3IgYm90cworCisgICAgICAgIFJldmVy
dGVkIGNoYW5nZXNldDoKKworICAgICAgICAiUENNOiBDaGFuZ2UgZnJvbSBhZC1jbGljay1hdHRy
aWJ1dGlvbiB0byBwcml2YXRlLWNsaWNrLQorICAgICAgICBtZWFzdXJlbWVudCAoaW4gYWxsIGZv
cm1zLCBpbmNsdWRpbmcgLndlbGwta25vd24gVVJMKSIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODczMAorICAgICAgICBodHRwczovL3RyYWMud2Vi
a2l0Lm9yZy9jaGFuZ2VzZXQvMjY5NjYwCisKIDIwMjAtMTEtMTAgIEpvaG4gV2lsYW5kZXIgIDx3
aWxhbmRlckBhcHBsZS5jb20+CiAKICAgICAgICAgUENNOiBDaGFuZ2UgZnJvbSBhZC1jbGljay1h
dHRyaWJ1dGlvbiB0byBwcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50IChpbiBhbGwgZm9ybXMsIGlu
Y2x1ZGluZyAud2VsbC1rbm93biBVUkwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDNjNWYyYzZkNjQ2MmY1NjcxNTQw
NjZiOWJhMTU5ZDNkNDAwYWJlNWMuLmNkMzljMTY5ODQ1NmI4YWQ4ZDE2MmRlMjQ5MDA0MDU3ZTY1
ZmQ2ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjAtMTEtMTAgIENvbW1pdCBRdWV1
ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJldmVy
dGluZyByMjY5NjYwLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjE4Nzg2CisKKyAgICAgICAgQ3Jhc2hpbmcgaW4gRVdTIGlPUyBzaW11bGF0b3IgYm90
cworCisgICAgICAgIFJldmVydGVkIGNoYW5nZXNldDoKKworICAgICAgICAiUENNOiBDaGFuZ2Ug
ZnJvbSBhZC1jbGljay1hdHRyaWJ1dGlvbiB0byBwcml2YXRlLWNsaWNrLQorICAgICAgICBtZWFz
dXJlbWVudCAoaW4gYWxsIGZvcm1zLCBpbmNsdWRpbmcgLndlbGwta25vd24gVVJMKSIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODczMAorICAgICAg
ICBodHRwczovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjY5NjYwCisKIDIwMjAtMTEtMTAg
IFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10g
RW5mb3JjZSBtZXNzYWdlIGZpbHRlcmluZyBpbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggZDIyY2QzZDJkYmU0NTBhY2UzNzU3NzBmZDI3Njlh
MmE0ZTc1YzhmZS4uNDFkNTljMjJjYzI0YjM3YzBjODRkN2U4NmQyOTI3NTE0OTQzODMzZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIwLTExLTEwICBD
b21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmll
d2VkLCByZXZlcnRpbmcgcjI2OTY2MC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxODc4NgorCisgICAgICAgIENyYXNoaW5nIGluIEVXUyBpT1Mgc2lt
dWxhdG9yIGJvdHMKKworICAgICAgICBSZXZlcnRlZCBjaGFuZ2VzZXQ6CisKKyAgICAgICAgIlBD
TTogQ2hhbmdlIGZyb20gYWQtY2xpY2stYXR0cmlidXRpb24gdG8gcHJpdmF0ZS1jbGljay0KKyAg
ICAgICAgbWVhc3VyZW1lbnQgKGluIGFsbCBmb3JtcywgaW5jbHVkaW5nIC53ZWxsLWtub3duIFVS
TCkiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg3
MzAKKyAgICAgICAgaHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzI2OTY2MAorCiAy
MDIwLTExLTEwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgV2Vi
a2l0IGluY29ycmVjdGx5IHNldHRpbmcgdmlzaWJpbGl0eVN0YXRlIHRvICJwcmVyZW5kZXIiIHdo
ZW4gb3BlbmluZyBsaW5rIGluIG5ldyB0YWIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAKaW5kZXggMDM5NGE3MzcyN2VmMGE3NDM3ZDQ3
NjAwNTg2NDFkZTg1YmEyMDFjMS4uOTBhMWRkOTYwNDcwYTU0ZWQzYjE0NjZjZWNmZGVmYTgzNDk0
NTgwZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9Db25zb2xl
TWVzc2FnZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9Db25zb2xl
TWVzc2FnZS5jcHAKQEAgLTE5MSw3ICsxOTEsNyBAQCBzdGF0aWMgUHJvdG9jb2w6OkNvbnNvbGU6
OkNoYW5uZWxTb3VyY2UgbWVzc2FnZVNvdXJjZVZhbHVlKE1lc3NhZ2VTb3VyY2Ugc291cmNlKQog
ICAgIGNhc2UgTWVzc2FnZVNvdXJjZTo6TWVkaWFTb3VyY2U6IHJldHVybiBQcm90b2NvbDo6Q29u
c29sZTo6Q2hhbm5lbFNvdXJjZTo6TWVkaWFTb3VyY2U7CiAgICAgY2FzZSBNZXNzYWdlU291cmNl
OjpXZWJSVEM6IHJldHVybiBQcm90b2NvbDo6Q29uc29sZTo6Q2hhbm5lbFNvdXJjZTo6V2ViUlRD
OwogICAgIGNhc2UgTWVzc2FnZVNvdXJjZTo6SVRQRGVidWc6IHJldHVybiBQcm90b2NvbDo6Q29u
c29sZTo6Q2hhbm5lbFNvdXJjZTo6SVRQRGVidWc7Ci0gICAgY2FzZSBNZXNzYWdlU291cmNlOjpQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDogcmV0dXJuIFByb3RvY29sOjpDb25zb2xlOjpDaGFubmVs
U291cmNlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDsKKyAgICBjYXNlIE1lc3NhZ2VTb3VyY2U6
OkFkQ2xpY2tBdHRyaWJ1dGlvbjogcmV0dXJuIFByb3RvY29sOjpDb25zb2xlOjpDaGFubmVsU291
cmNlOjpBZENsaWNrQXR0cmlidXRpb247CiAgICAgY2FzZSBNZXNzYWdlU291cmNlOjpPdGhlcjog
cmV0dXJuIFByb3RvY29sOjpDb25zb2xlOjpDaGFubmVsU291cmNlOjpPdGhlcjsKICAgICB9CiAg
ICAgcmV0dXJuIFByb3RvY29sOjpDb25zb2xlOjpDaGFubmVsU291cmNlOjpPdGhlcjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvQ29uc29sZS5q
c29uIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9Db25zb2xlLmpz
b24KaW5kZXggZTZhZWQ2MTgzMWNmZDNhZmJiMTVhNTg5NWFiZThhNDc4YjkxZTZhOC4uYjM2YTBl
ZTY3ZjA2NTM1ODk3YTE3NjViODBhNDExZDQ0MjA2ZTBjMyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9Db25zb2xlLmpzb24KKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9Db25zb2xlLmpzb24KQEAgLTIyLDcg
KzIyLDcgQEAKICAgICAgICAgICAgICAgICAibWVkaWFzb3VyY2UiLAogICAgICAgICAgICAgICAg
ICJ3ZWJydGMiLAogICAgICAgICAgICAgICAgICJpdHAtZGVidWciLAotICAgICAgICAgICAgICAg
ICJwcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50IiwKKyAgICAgICAgICAgICAgICAiYWQtY2xpY2st
YXR0cmlidXRpb24iLAogICAgICAgICAgICAgICAgICJvdGhlciIKICAgICAgICAgICAgIF0sCiAg
ICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbm5lbHMgZm9yIGRpZmZlcmVudCB0eXBlcyBv
ZiBsb2cgbWVzc2FnZXMuIgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9wcm90b2NvbC9QYWdlLmpzb24gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L3Byb3RvY29sL1BhZ2UuanNvbgppbmRleCBkYjUyNDc5YTcyZDQ1OWJlMjNkNGQ4ZDA4MGMwZWQx
NWVhOWZjNGMwLi44MjUyNzkyNjQ5NTQ5ZjcwOGE5ZTg4ZjhjNjQ1MDZlMzQ4MzlkZTE1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL1BhZ2UuanNv
bgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL1BhZ2UuanNv
bgpAQCAtOSw3ICs5LDcgQEAKICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAgICAg
ICAgICAiZGVzY3JpcHRpb24iOiAiTGlzdCBvZiBzZXR0aW5ncyBhYmxlIHRvIGJlIG92ZXJyaWRk
ZW4gYnkgV2ViSW5zcGVjdG9yLiIsCiAgICAgICAgICAgICAiZW51bSI6IFsKLSAgICAgICAgICAg
ICAgICAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGVFbmFibGVkIiwKKyAgICAgICAg
ICAgICAgICAiQWRDbGlja0F0dHJpYnV0aW9uRGVidWdNb2RlRW5hYmxlZCIsCiAgICAgICAgICAg
ICAgICAgIkF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkIiwKICAgICAgICAgICAgICAgICAiSUNF
Q2FuZGlkYXRlRmlsdGVyaW5nRW5hYmxlZCIsCiAgICAgICAgICAgICAgICAgIklUUERlYnVnTW9k
ZUVuYWJsZWQiLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29u
c29sZUNsaWVudC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25zb2xlQ2xp
ZW50LmNwcAppbmRleCA5OWNkMDU3N2YzYjcyMGFiNmY0NGNjZDI0NTdmYTM5YjkzNDFkODQ5Li4z
ZDQwMmRlZjI3NzVkMjg5ZDY0NDA2ZDk4YjdkZDBkNDdlZmUxMThmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25zb2xlQ2xpZW50LmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25zb2xlQ2xpZW50LmNwcApAQCAtMTA1LDggKzEwNSw4
IEBAIHN0YXRpYyB2b2lkIGFwcGVuZE1lc3NhZ2VQcmVmaXgoU3RyaW5nQnVpbGRlciYgYnVpbGRl
ciwgTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lCiAgICAgY2FzZSBNZXNzYWdlU291cmNlOjpJVFBE
ZWJ1ZzoKICAgICAgICAgc291cmNlU3RyaW5nID0gIklUUERFQlVHIl9zOwogICAgICAgICBicmVh
azsKLSAgICBjYXNlIE1lc3NhZ2VTb3VyY2U6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OgotICAg
ICAgICBzb3VyY2VTdHJpbmcgPSAiUFJJVkFURUNMSUNLTUVBU1VSRU1FTlQiX3M7CisgICAgY2Fz
ZSBNZXNzYWdlU291cmNlOjpBZENsaWNrQXR0cmlidXRpb246CisgICAgICAgIHNvdXJjZVN0cmlu
ZyA9ICJBRENMSUNLQVRUUklCVVRJT04iX3M7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTWVz
c2FnZVNvdXJjZTo6T3RoZXI6CiAgICAgICAgIHNvdXJjZVN0cmluZyA9ICJPVEhFUiJfczsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNvbGVUeXBlcy5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc29sZVR5cGVzLmgKaW5kZXggMTExZjUy
NGE2YjE1MzBmNmYxNGUxYmM5YjEyYzBkNGFlODUyNzk0Mi4uYzVlNDA4NGIyYzNiMmFkNjI2Mjg4
YjM3OTY1Y2FlZTMyZmY3YmJmZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQ29uc29sZVR5cGVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Q29uc29sZVR5cGVzLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgZW51bSBjbGFzcyBNZXNzYWdlU291cmNl
IDogdWludDhfdCB7CiAgICAgTWVkaWFTb3VyY2UsCiAgICAgV2ViUlRDLAogICAgIElUUERlYnVn
LAotICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50LAorICAgIEFkQ2xpY2tBdHRyaWJ1dGlvbiwK
ICAgICBPdGhlciwKIH07CiAKQEAgLTk0LDcgKzk0LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51
bVRyYWl0czxKU0M6Ok1lc3NhZ2VTb3VyY2U+IHsKICAgICAgICAgSlNDOjpNZXNzYWdlU291cmNl
OjpNZWRpYVNvdXJjZSwKICAgICAgICAgSlNDOjpNZXNzYWdlU291cmNlOjpXZWJSVEMsCiAgICAg
ICAgIEpTQzo6TWVzc2FnZVNvdXJjZTo6SVRQRGVidWcsCi0gICAgICAgIEpTQzo6TWVzc2FnZVNv
dXJjZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsCisgICAgICAgIEpTQzo6TWVzc2FnZVNvdXJj
ZTo6QWRDbGlja0F0dHJpYnV0aW9uLAogICAgICAgICBKU0M6Ok1lc3NhZ2VTb3VyY2U6Ok90aGVy
CiAgICAgPjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMv
V2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbCBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVm
ZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCmluZGV4IDI0OGEyNzVkZmI3
NjdiMDhiODEyNjIzNzU2N2IzZTEyNTdkZWRkOTkuLmIwMTZhYzlmNzMyYjEyNjg4ZjlhODUyM2Uw
MGY0YWYxM2JiYTVjNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNl
cy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCisrKyBiL1NvdXJjZS9XVEYvU2NyaXB0
cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCkBAIC0zNyw2ICsz
NywyOSBAQCBBY2Nlc3NpYmlsaXR5T2JqZWN0TW9kZWxFbmFibGVkOgogICAgIFdlYktpdDoKICAg
ICAgIGRlZmF1bHQ6IGZhbHNlCiAKK0FkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZUVuYWJsZWQ6
CisgIHR5cGU6IGJvb2wKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJBZCBDbGljayBBdHRyaWJ1dGlv
biBEZWJ1ZyBNb2RlIgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUgQWQgQ2xp
Y2sgQXR0cmlidXRpb24gRGVidWcgTW9kZSIKKyAgd2ViY29yZUJpbmRpbmc6IFJ1bnRpbWVFbmFi
bGVkRmVhdHVyZXMKKyAgZGVmYXVsdFZhbHVlOgorICAgIFdlYktpdExlZ2FjeToKKyAgICAgIGRl
ZmF1bHQ6IGZhbHNlCisgICAgV2ViS2l0OgorICAgICAgZGVmYXVsdDogZmFsc2UKKworQWRDbGlj
a0F0dHJpYnV0aW9uRW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBodW1hblJlYWRhYmxlTmFtZTog
IkFkIENsaWNrIEF0dHJpYnV0aW9uIgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFi
bGUgQWQgQ2xpY2sgQXR0cmlidXRpb24gZm9yIENyb3NzLVNpdGUgTGluayBOYXZpZ2F0aW9ucyIK
KyAgZGVmYXVsdFZhbHVlOgorICAgIFdlYktpdExlZ2FjeToKKyAgICAgIGRlZmF1bHQ6IGZhbHNl
CisgICAgV2ViS2l0OgorICAgICAgZGVmYXVsdDogZmFsc2UKKyAgICBXZWJDb3JlOgorICAgICAg
ZGVmYXVsdDogZmFsc2UKKwogQXNwZWN0UmF0aW9FbmFibGVkOgogICB0eXBlOiBib29sCiAgIGh1
bWFuUmVhZGFibGVOYW1lOiAiQ1NTIEFzcGVjdCBSYXRpbyIKQEAgLTYxNSwyOSArNjM4LDYgQEAg
UGVyRWxlbWVudFNwZWFrZXJTZWxlY3Rpb25FbmFibGVkOgogICAgIFdlYkNvcmU6CiAgICAgICBk
ZWZhdWx0OiBmYWxzZQogCi1Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZUVuYWJsZWQ6
Ci0gIHR5cGU6IGJvb2wKLSAgaHVtYW5SZWFkYWJsZU5hbWU6ICJQcml2YXRlIENsaWNrIE1lYXN1
cmVtZW50IERlYnVnIE1vZGUiCi0gIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkVuYWJsZSBQ
cml2YXRlIENsaWNrIE1lYXN1cmVtZW50IERlYnVnIE1vZGUiCi0gIHdlYmNvcmVCaW5kaW5nOiBS
dW50aW1lRW5hYmxlZEZlYXR1cmVzCi0gIGRlZmF1bHRWYWx1ZToKLSAgICBXZWJLaXRMZWdhY3k6
Ci0gICAgICBkZWZhdWx0OiBmYWxzZQotICAgIFdlYktpdDoKLSAgICAgIGRlZmF1bHQ6IGZhbHNl
Ci0KLVByaXZhdGVDbGlja01lYXN1cmVtZW50RW5hYmxlZDoKLSAgdHlwZTogYm9vbAotICBodW1h
blJlYWRhYmxlTmFtZTogIlByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnQiCi0gIGh1bWFuUmVhZGFi
bGVEZXNjcmlwdGlvbjogIkVuYWJsZSBQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50IGZvciBDcm9z
cy1TaXRlIExpbmsgTmF2aWdhdGlvbnMiCi0gIGRlZmF1bHRWYWx1ZToKLSAgICBXZWJLaXRMZWdh
Y3k6Ci0gICAgICBkZWZhdWx0OiBmYWxzZQotICAgIFdlYktpdDoKLSAgICAgIGRlZmF1bHQ6IGZh
bHNlCi0gICAgV2ViQ29yZToKLSAgICAgIGRlZmF1bHQ6IGZhbHNlCi0KIFByb2Nlc3NTd2FwT25D
cm9zc1NpdGVOYXZpZ2F0aW9uRW5hYmxlZDoKICAgdHlwZTogYm9vbAogICBodW1hblJlYWRhYmxl
TmFtZTogIlN3YXAgUHJvY2Vzc2VzIG9uIENyb3NzLVNpdGUgTmF2aWdhdGlvbiIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJz
LmNtYWtlCmluZGV4IGMwZGI2OTMxMGNmNTJmN2Y2MjhhYWIzNjQ4YmM2ZGRlYzNmNzRiZGIuLjI0
NzIyM2Y4YzRmMzFhNzBiYTRiYWFhNDU5MzUxOWQyN2Y2NDMzODMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFr
ZQpAQCAtNzMzLDYgKzczMyw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURF
UlMKICAgICBsYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvck1v
ZGVyblBhdGguaAogICAgIGxheW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5oCiAKKyAgICBsb2Fk
ZXIvQWRDbGlja0F0dHJpYnV0aW9uLmgKICAgICBsb2FkZXIvQ2FudmFzQWN0aXZpdHlSZWNvcmQu
aAogICAgIGxvYWRlci9Db250ZW50RmlsdGVyQ2xpZW50LmgKICAgICBsb2FkZXIvQ29va2llSmFy
LmgKQEAgLTc2NSw3ICs3NjYsNiBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFE
RVJTCiAgICAgbG9hZGVyL05ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmgKICAgICBsb2FkZXIv
UGluZ0xvYWRlci5oCiAgICAgbG9hZGVyL1BvbGljeUNoZWNrZXIuaAotICAgIGxvYWRlci9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC5oCiAgICAgbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5oCiAgICAg
bG9hZGVyL1Byb2dyZXNzVHJhY2tlckNsaWVudC5oCiAgICAgbG9hZGVyL1Jlc291cmNlQ3J5cHRv
Z3JhcGhpY0RpZ2VzdC5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBi
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDVlZjFiZjZhNjY0ZmYwMWNlOTE3OThl
YWM1NTMzYWU1ZjlhZDAyM2UuLjFlYWJlYjc4NmNhZjc5NDZmZjUzZjI2MjNlNzMwNjY5MzIxYzZm
NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xNTE4LDcgKzE1MTgsNyBAQCBsYXlvdXQvdGFibGVmb3Jt
YXR0aW5nL1RhYmxlRm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3BwCiBsYXlvdXQvdGFibGVmb3Jt
YXR0aW5nL1RhYmxlRm9ybWF0dGluZ1N0YXRlLmNwcAogbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9U
YWJsZUdyaWQuY3BwCiBsYXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxlTGF5b3V0LmNwcAotbG9h
ZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcAorbG9hZGVyL0FkQ2xpY2tBdHRyaWJ1dGlv
bi5jcHAKIGxvYWRlci9BcHBsaWNhdGlvbk1hbmlmZXN0TG9hZGVyLmNwcAogbG9hZGVyL0NhbnZh
c0FjdGl2aXR5UmVjb3JkLmNwcAogbG9hZGVyL0NvbnRlbnRGaWx0ZXIuY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMzM5YjZi
OWViYThlNzY4NmNlM2MxY2I1NGMyMDhiY2VhMjI5NjE2Zi4uNDJhMGIwNjgxNWQyNjdlYmY0MTFh
MGQyZmU4ZTVjNmM4ODhiNGI1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjAwNiw3ICsyMDA2LDcgQEAKIAkJNjlBNkNCQUQx
QzZCRTQyQzAwQjgzNkU5IC8qIEFjY2Vzc2liaWxpdHlTVkdFbGVtZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2OTcxMDEwODFDNkJFMTU1MDAxOEM3
RjEgLyogQWNjZXNzaWJpbGl0eVNWR0VsZW1lbnQuaCAqLzsgfTsKIAkJNkEyMkU4NzAxRjEwNDE4
NjAwRjU0NkMzIC8qIEluc3BlY3RvckNhbnZhcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNkEyMkU4NkYxRjEwNDE4NjAwRjU0NkMzIC8qIEluc3BlY3Rv
ckNhbnZhcy5oICovOyB9OwogCQk2QTcyNzk4QjFGMTZDMjlDMDAzRjM5QjggLyogSW5zcGVjdG9y
U2hhZGVyUHJvZ3JhbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNkE3Mjc5ODgxRjE2QzI5QjAwM0YzOUI4IC8qIEluc3BlY3RvclNoYWRlclByb2dyYW0u
aCAqLzsgfTsKLQkJNkIwQTA3RjIyMUZBNEI1QzAwRDU3MzkxIC8qIFByaXZhdGVDbGlja01lYXN1
cmVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2
QjBBMDdGMDIxRkE0QjVDMDBENTczOTEgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk2QjBBMDdGMjIx
RkE0QjVDMDBENTczOTEgLyogQWRDbGlja0F0dHJpYnV0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QjBBMDdGMDIxRkE0QjVDMDBENTczOTEgLyog
QWRDbGlja0F0dHJpYnV0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJNkIxRjQ4MTEyMjk4QTM3RTAwREU4QjgyIC8qIENyb3NzU2l0ZU5hdmln
YXRpb25EYXRhVHJhbnNmZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDZCMUY0ODBGMjI5ODlFQzQwMERFOEI4MiAvKiBDcm9zc1NpdGVOYXZpZ2F0aW9u
RGF0YVRyYW5zZmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJNkI0RDQxMkQyMzk4M0Y4ODAwMjQ5NEMyIC8qIExvZ2dlZEluU3RhdHVzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QjRENDEyQjIzOTgz
Rjg4MDAyNDk0QzIgLyogTG9nZ2VkSW5TdGF0dXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2QjRFODYxMzIyMUI3MTNGMDAyMkYzODkgLyogUmVn
aXN0cmFibGVEb21haW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDZCNEU4NjEyMjIxQjcxM0YwMDIyRjM4OSAvKiBSZWdpc3RyYWJsZURvbWFpbi5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC05NTI4LDgg
Kzk1MjgsOCBAQAogCQk2QTIyRTg3MjFGMTA0MkM0MDBGNTQ2QzMgLyogSW5zcGVjdG9yQ2FudmFz
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvckNhbnZhcy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTZBNzI3OTg4MUYxNkMyOUIwMDNGMzlCOCAvKiBJbnNwZWN0b3JT
aGFkZXJQcm9ncmFtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3Rv
clNoYWRlclByb2dyYW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkE3Mjc5ODkx
RjE2QzI5QjAwM0YzOUI4IC8qIEluc3BlY3RvclNoYWRlclByb2dyYW0uY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTZCMEEwN0YwMjFGQTRCNUMwMEQ1NzM5MSAvKiBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2QjBBMDdGMTIxRkE0QjVD
MDBENTczOTEgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk2QjBBMDdGMDIxRkE0QjVDMDBENTczOTEgLyogQWRDbGlja0F0dHJpYnV0aW9uLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEFkQ2xpY2tBdHRyaWJ1dGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk2QjBBMDdGMTIxRkE0QjVDMDBENTczOTEgLyogQWRDbGlja0F0dHJpYnV0aW9uLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFkQ2xpY2tBdHRyaWJ1dGlvbi5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTZCMUY0ODBGMjI5ODlFQzQwMERFOEI4MiAvKiBDcm9zc1NpdGVO
YXZpZ2F0aW9uRGF0YVRyYW5zZmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyb3NzU2l0ZU5hdmlnYXRp
b25EYXRhVHJhbnNmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkI0RDQxMkIy
Mzk4M0Y4ODAwMjQ5NEMyIC8qIExvZ2dlZEluU3RhdHVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvZ2dl
ZEluU3RhdHVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZCNEQ0MTJDMjM5ODNG
ODgwMDI0OTRDMiAvKiBMb2dnZWRJblN0YXR1cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMb2dn
ZWRJblN0YXR1cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNjk5Nyw2ICsy
Njk5Nyw4IEBACiAJCQkJNTEyNkU2QjYwQTJFM0FFRjAwNUMyOUZBIC8qIGljb24gKi8sCiAJCQkJ
QTE1RTMxRjAxRTBDQjA3NTAwNEIzNzFDIC8qIGlvcyAqLywKIAkJCQk5M0ExRUFBMjBBNTYzNEQ4
MDA2OTYwQTAgLyogbWFjICovLAorCQkJCTZCMEEwN0YxMjFGQTRCNUMwMEQ1NzM5MSAvKiBBZENs
aWNrQXR0cmlidXRpb24uY3BwICovLAorCQkJCTZCMEEwN0YwMjFGQTRCNUMwMEQ1NzM5MSAvKiBB
ZENsaWNrQXR0cmlidXRpb24uaCAqLywKIAkJCQk2MzE1MkQxODFGOTUzMUVFMDA3QTVFNEIgLyog
QXBwbGljYXRpb25NYW5pZmVzdExvYWRlci5jcHAgKi8sCiAJCQkJNjMxNTJEMTcxRjk1MzFFRTAw
N0E1RTRCIC8qIEFwcGxpY2F0aW9uTWFuaWZlc3RMb2FkZXIuaCAqLywKIAkJCQlFRkI3Mjg3QjIx
MjRDNzNEMDA1QzI1NTggLyogQ2FudmFzQWN0aXZpdHlSZWNvcmQuY3BwICovLApAQCAtMjcwNzUs
OCArMjcwNzcsNiBAQAogCQkJCUQwRkYyQTVDMTFGOEM0NUEwMDdFNzRFMCAvKiBQaW5nTG9hZGVy
LmggKi8sCiAJCQkJOTcwNTk5NzUxMDdEOTc1MjAwQTUwQTdDIC8qIFBvbGljeUNoZWNrZXIuY3Bw
ICovLAogCQkJCTk3MDU5OTc2MTA3RDk3NTIwMEE1MEE3QyAvKiBQb2xpY3lDaGVja2VyLmggKi8s
Ci0JCQkJNkIwQTA3RjEyMUZBNEI1QzAwRDU3MzkxIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50
LmNwcCAqLywKLQkJCQk2QjBBMDdGMDIxRkE0QjVDMDBENTczOTEgLyogUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQuaCAqLywKIAkJCQkxQTJBNjgyMTBCNUJFREU3MDAwMkE0ODAgLyogUHJvZ3Jlc3NU
cmFja2VyLmNwcCAqLywKIAkJCQkxQTJBNjgyMjBCNUJFREU3MDAwMkE0ODAgLyogUHJvZ3Jlc3NU
cmFja2VyLmggKi8sCiAJCQkJMUFDQURENzgxODgwRDkxQzAwRDhCNzFEIC8qIFByb2dyZXNzVHJh
Y2tlckNsaWVudC5oICovLApAQCAtMzA3MjEsNiArMzA3MjEsNyBAQAogCQkJCUUxQzRERTY5MEVB
NzVDMUUwMDIzQ0NENiAvKiBBY3RpdmVET01PYmplY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTcy
NEVFNTUwMURDODBEN0YwMEE5MUZGQiAvKiBBY3Rpdml0eVN0YXRlLmggaW4gSGVhZGVycyAqLywK
IAkJCQk3MjRFRTU1MTFEQzgwRDg0MDBBOTFGRkIgLyogQWN0aXZpdHlTdGF0ZUNoYW5nZU9ic2Vy
dmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk2QjBBMDdGMjIxRkE0QjVDMDBENTczOTEgLyogQWRD
bGlja0F0dHJpYnV0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTY3N0UwRTIxM0UwMkEwMDBB
MDhDMzQgLyogQWRkcmVzc0Vycm9ycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNGN0U0OTExMzdD
RDdDNzAwMUREQUU3IC8qIEFkanVzdFZpZXdTaXplT3JOb3QuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTg0RDBDNDA2MTExNUYxRUEwMDE4QUEzNCAvKiBBZmZpbmVUcmFuc2Zvcm0uaCBpbiBIZWFkZXJz
ICovLApAQCAtMzM3MjksNyArMzM3MzAsNiBAQAogCQkJCUExQURBRjdFMjM2MEZEM0UwMDlDQjc3
NiAvKiBQcmV2aWV3Q29udmVydGVyUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0NjA1
RkVDMjE2NjQ4MDkwMEU1MzA0NiAvKiBQcmV3YXJtSW5mb3JtYXRpb24uaCBpbiBIZWFkZXJzICov
LAogCQkJCUI3MUZFNkRGMTEwOTFDQjMwMERBRUY3NyAvKiBQcmludENvbnRleHQuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTZCMEEwN0YyMjFGQTRCNUMwMEQ1NzM5MSAvKiBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFGNjQ1RDUxRkVDREJDRTAwQjU0REVEIC8q
IFByb2Nlc3NJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEVBN0VCQzBBMTk0NUQw
MDBBOEVGNUYgLyogUHJvY2Vzc2luZ0luc3RydWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlF
NDIwNTAxNzIxNDE5MDFCMDA2NkVGM0IgLyogUHJvY2Vzc1dhcm1pbmcuaCBpbiBIZWFkZXJzICov
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAppbmRleCA4ZTgwNTMy
M2M5NzJmODc0YWQ4MjY0ZWEzNWU0MTFmNDZmNGMwMWJiLi45Y2M4YjY0ODJhNzI2ZWZlZjIwOGNl
Mjk5YWNkMjEzYjZmZDM0ZjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxB
bmNob3JFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVt
ZW50LmNwcApAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IkhUTUxBbmNob3JFbGVtZW50LmgiCiAKKyNpbmNsdWRlICJBZENsaWNrQXR0cmlidXRpb24uaCIK
ICNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRl
ICJET01Ub2tlbkxpc3QuaCIKQEAgLTQzLDcgKzQ0LDYgQEAKICNpbmNsdWRlICJNb3VzZUV2ZW50
LmgiCiAjaW5jbHVkZSAiUGluZ0xvYWRlci5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVu
dC5oIgotI2luY2x1ZGUgIlByaXZhdGVDbGlja01lYXN1cmVtZW50LmgiCiAjaW5jbHVkZSAiUmVn
aXN0cmFibGVEb21haW4uaCIKICNpbmNsdWRlICJSZW5kZXJJbWFnZS5oIgogI2luY2x1ZGUgIlJl
c291cmNlUmVxdWVzdC5oIgpAQCAtNDA0LDE1ICs0MDQsMTUgQEAgYm9vbCBIVE1MQW5jaG9yRWxl
bWVudDo6aXNTeXN0ZW1QcmV2aWV3TGluaygpCiB9CiAjZW5kaWYKIAotT3B0aW9uYWw8UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ+IEhUTUxBbmNob3JFbGVtZW50OjpwYXJzZVByaXZhdGVDbGlja01l
YXN1cmVtZW50KCkgY29uc3QKK09wdGlvbmFsPEFkQ2xpY2tBdHRyaWJ1dGlvbj4gSFRNTEFuY2hv
ckVsZW1lbnQ6OnBhcnNlQWRDbGlja0F0dHJpYnV0aW9uKCkgY29uc3QKIHsKLSAgICB1c2luZyBD
YW1wYWlnbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDYW1wYWlnbjsKLSAgICB1c2luZyBT
b3VyY2UgPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlOwotICAgIHVzaW5nIERlc3Rp
bmF0aW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9uOworICAgIHVzaW5n
IENhbXBhaWduID0gQWRDbGlja0F0dHJpYnV0aW9uOjpDYW1wYWlnbjsKKyAgICB1c2luZyBTb3Vy
Y2UgPSBBZENsaWNrQXR0cmlidXRpb246OlNvdXJjZTsKKyAgICB1c2luZyBEZXN0aW5hdGlvbiA9
IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6RGVzdGluYXRpb247CiAKICAgICBhdXRvKiBwYWdlID0gZG9j
dW1lbnQoKS5wYWdlKCk7CiAgICAgaWYgKCFwYWdlIHx8IHBhZ2UtPnNlc3Npb25JRCgpLmlzRXBo
ZW1lcmFsKCkKLSAgICAgICAgfHwgIWRvY3VtZW50KCkuc2V0dGluZ3MoKS5wcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudEVuYWJsZWQoKQorICAgICAgICB8fCAhZG9jdW1lbnQoKS5zZXR0aW5ncygpLmFk
Q2xpY2tBdHRyaWJ1dGlvbkVuYWJsZWQoKQogICAgICAgICB8fCAhVXNlckdlc3R1cmVJbmRpY2F0
b3I6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OwogCkBAIC00MjMsMjQgKzQyMywyNCBAQCBPcHRpb25hbDxQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dD4gSFRNTEFuY2hvckVsZW1lbnQ6OnBhcnNlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbgogICAgIGF1
dG8gYWREZXN0aW5hdGlvbkF0dHIgPSBhdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGFk
ZGVzdGluYXRpb25BdHRyKTsKICAgICAKICAgICBpZiAoYWRDYW1wYWlnbklEQXR0ci5pc0VtcHR5
KCkgfHwgYWREZXN0aW5hdGlvbkF0dHIuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGRvY3VtZW50KCku
YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6T3RoZXIsIE1lc3NhZ2VMZXZlbDo6V2Fy
bmluZywgIkJvdGggYWRjYW1wYWlnbmlkIGFuZCBhZGRlc3RpbmF0aW9uIG5lZWQgdG8gYmUgc2V0
IGZvciBQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50IHRvIHdvcmsuIl9zKTsKKyAgICAgICAgZG9j
dW1lbnQoKS5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpPdGhlciwgTWVzc2FnZUxl
dmVsOjpXYXJuaW5nLCAiQm90aCBhZGNhbXBhaWduaWQgYW5kIGFkZGVzdGluYXRpb24gbmVlZCB0
byBiZSBzZXQgZm9yIEFkIENsaWNrIEF0dHJpYnV0aW9uIHRvIHdvcmsuIl9zKTsKICAgICAgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICB9CiAKICAgICBSZWZQdHI8RnJhbWU+IGZyYW1lID0g
ZG9jdW1lbnQoKS5mcmFtZSgpOwogICAgIGlmICghZnJhbWUgfHwgIWZyYW1lLT5pc01haW5GcmFt
ZSgpKSB7Ci0gICAgICAgIGRvY3VtZW50KCkuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJj
ZTo6T3RoZXIsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgIlByaXZhdGUgQ2xpY2sgTWVhc3VyZW1l
bnQgaXMgb25seSBzdXBwb3J0ZWQgaW4gdGhlIG1haW4gZnJhbWUuIl9zKTsKKyAgICAgICAgZG9j
dW1lbnQoKS5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpPdGhlciwgTWVzc2FnZUxl
dmVsOjpXYXJuaW5nLCAiQWQgQ2xpY2sgQXR0cmlidXRpb24gaXMgb25seSBzdXBwb3J0ZWQgaW4g
dGhlIG1haW4gZnJhbWUuIl9zKTsKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICB9
CiAgICAgCiAgICAgYXV0byBhZENhbXBhaWduSUQgPSBwYXJzZUhUTUxOb25OZWdhdGl2ZUludGVn
ZXIoYWRDYW1wYWlnbklEQXR0cik7CiAgICAgaWYgKCFhZENhbXBhaWduSUQpIHsKLSAgICAgICAg
ZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpPdGhlciwgTWVzc2Fn
ZUxldmVsOjpXYXJuaW5nLCAiYWRjYW1wYWlnbmlkIGNhbiBub3QgYmUgY29udmVydGVkIHRvIGEg
bm9uLW5lZ2F0aXZlIGludGVnZXIgd2hpY2ggaXMgcmVxdWlyZWQgZm9yIFByaXZhdGUgQ2xpY2sg
TWVhc3VyZW1lbnQuIl9zKTsKKyAgICAgICAgZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVzc2FnZShN
ZXNzYWdlU291cmNlOjpPdGhlciwgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAiYWRjYW1wYWlnbmlk
IGNhbiBub3QgYmUgY29udmVydGVkIHRvIGEgbm9uLW5lZ2F0aXZlIGludGVnZXIgd2hpY2ggaXMg
cmVxdWlyZWQgZm9yIEFkIENsaWNrIEF0dHJpYnV0aW9uLiJfcyk7CiAgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CiAgICAgfQogICAgIAotICAgIGlmIChhZENhbXBhaWduSUQudmFsdWUoKSA+
IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpNYXhFbnRyb3B5KSB7Ci0gICAgICAgIGRvY3VtZW50
KCkuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6T3RoZXIsIE1lc3NhZ2VMZXZlbDo6
V2FybmluZywgbWFrZVN0cmluZygiYWRjYW1wYWlnbmlkIG11c3QgaGF2ZSBhIG5vbi1uZWdhdGl2
ZSB2YWx1ZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gIiwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
Ok1heEVudHJvcHksICIgZm9yIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnQuIikpOworICAgIGlm
IChhZENhbXBhaWduSUQudmFsdWUoKSA+IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6TWF4RW50cm9weSkg
eworICAgICAgICBkb2N1bWVudCgpLmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6Ok90
aGVyLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsIG1ha2VTdHJpbmcoImFkY2FtcGFpZ25pZCBtdXN0
IGhhdmUgYSBub24tbmVnYXRpdmUgdmFsdWUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICIsIEFkQ2xp
Y2tBdHRyaWJ1dGlvbjo6TWF4RW50cm9weSwgIiBmb3IgQWQgQ2xpY2sgQXR0cmlidXRpb24uIikp
OwogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIH0KIApAQCAtNDU2LDcgKzQ1Niw3
IEBAIE9wdGlvbmFsPFByaXZhdGVDbGlja01lYXN1cmVtZW50PiBIVE1MQW5jaG9yRWxlbWVudDo6
cGFyc2VQcml2YXRlQ2xpY2tNZWFzdXJlbWVuCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7
CiAgICAgfQogCi0gICAgcmV0dXJuIFByaXZhdGVDbGlja01lYXN1cmVtZW50IHsgQ2FtcGFpZ24o
YWRDYW1wYWlnbklELnZhbHVlKCkpLCBTb3VyY2UoZG9jdW1lbnRSZWdpc3RyYWJsZURvbWFpbiks
IERlc3RpbmF0aW9uKGFkRGVzdGluYXRpb25VUkwpIH07CisgICAgcmV0dXJuIEFkQ2xpY2tBdHRy
aWJ1dGlvbiB7IENhbXBhaWduKGFkQ2FtcGFpZ25JRC52YWx1ZSgpKSwgU291cmNlKGRvY3VtZW50
UmVnaXN0cmFibGVEb21haW4pLCBEZXN0aW5hdGlvbihhZERlc3RpbmF0aW9uVVJMKSB9OwogfQog
CiB2b2lkIEhUTUxBbmNob3JFbGVtZW50OjpoYW5kbGVDbGljayhFdmVudCYgZXZlbnQpCkBAIC01
MTgsMTIgKzUxOCwxMiBAQCB2b2lkIEhUTUxBbmNob3JFbGVtZW50OjpoYW5kbGVDbGljayhFdmVu
dCYgZXZlbnQpCiAgICAgZWxzZSBpZiAoaGFzUmVsKFJlbGF0aW9uOjpOb09wZW5lcikgfHwgKGRv
Y3VtZW50KCkuc2V0dGluZ3MoKS5ibGFua0FuY2hvclRhcmdldEltcGxpZXNOb09wZW5lckVuYWJs
ZWQoKSAmJiBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGVmZmVjdGl2ZVRhcmdldCwgIl9ibGFuayIp
KSkKICAgICAgICAgbmV3RnJhbWVPcGVuZXJQb2xpY3kgPSBOZXdGcmFtZU9wZW5lclBvbGljeTo6
U3VwcHJlc3M7CiAKLSAgICBhdXRvIHByaXZhdGVDbGlja01lYXN1cmVtZW50ID0gcGFyc2VQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCgpOwotICAgIC8vIEEgbWF0Y2hpbmcgY29udmVyc2lvbiBldmVu
dCBuZWVkcyB0byBoYXBwZW4gYmVmb3JlIHRoZSBjb21wbGV0ZSBwcml2YXRlIGNsaWNrIG1lYXN1
cmVtZW50Ci0gICAgLy8gVVJMIGNhbiBiZSBjcmVhdGVkLiBUaHVzLCBpdCBzaG91bGQgYmUgZW1w
dHkgZm9yIG5vdy4KLSAgICBBU1NFUlQoIXByaXZhdGVDbGlja01lYXN1cmVtZW50IHx8IHByaXZh
dGVDbGlja01lYXN1cmVtZW50LT5yZXBvcnRVUkwoKS5pc051bGwoKSk7CisgICAgYXV0byBhZENs
aWNrQXR0cmlidXRpb24gPSBwYXJzZUFkQ2xpY2tBdHRyaWJ1dGlvbigpOworICAgIC8vIEEgbWF0
Y2hpbmcgY29udmVyc2lvbiBldmVudCBuZWVkcyB0byBoYXBwZW4gYmVmb3JlIHRoZSBjb21wbGV0
ZSBhZCBjbGljayBhdHRyaWJ1dGlvblVSTCBjYW4gYmUKKyAgICAvLyBjcmVhdGVkLiBUaHVzLCBp
dCBzaG91bGQgYmUgZW1wdHkgZm9yIG5vdy4KKyAgICBBU1NFUlQoIWFkQ2xpY2tBdHRyaWJ1dGlv
biB8fCBhZENsaWNrQXR0cmlidXRpb24tPnJlcG9ydFVSTCgpLmlzTnVsbCgpKTsKICAgICAKLSAg
ICBmcmFtZS0+bG9hZGVyKCkuY2hhbmdlTG9jYXRpb24oY29tcGxldGVkVVJMLCBlZmZlY3RpdmVU
YXJnZXQsICZldmVudCwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywg
cmVmZXJyZXJQb2xpY3ksIGRvY3VtZW50KCkuc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeVRv
UHJvcGFnYXRlKCksIG5ld0ZyYW1lT3BlbmVyUG9saWN5LCBkb3dubG9hZEF0dHJpYnV0ZSwgc3lz
dGVtUHJldmlld0luZm8sIFdURk1vdmUocHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpKTsKKyAgICBm
cmFtZS0+bG9hZGVyKCkuY2hhbmdlTG9jYXRpb24oY29tcGxldGVkVVJMLCBlZmZlY3RpdmVUYXJn
ZXQsICZldmVudCwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgcmVm
ZXJyZXJQb2xpY3ksIGRvY3VtZW50KCkuc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeVRvUHJv
cGFnYXRlKCksIG5ld0ZyYW1lT3BlbmVyUG9saWN5LCBkb3dubG9hZEF0dHJpYnV0ZSwgc3lzdGVt
UHJldmlld0luZm8sIFdURk1vdmUoYWRDbGlja0F0dHJpYnV0aW9uKSk7CiAKICAgICBzZW5kUGlu
Z3MoY29tcGxldGVkVVJMKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEFuY2hvckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQu
aAppbmRleCA2N2RmMDFlMGE4NWZlOTVlYjQwYzJkODBlOWQxZjM4NGNmNTU3MWIzLi4wNDExMGM2
MmQ1N2RhNDg2ZmNjNTQzY2E5OTJjZWZlNGRkMmQyODhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQW5jaG9yRWxlbWVudC5oCkBAIC0zMSw3ICszMSw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotY2xhc3MgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ7CitjbGFzcyBBZENsaWNrQXR0cmli
dXRpb247CiBjbGFzcyBET01Ub2tlbkxpc3Q7CiAKIC8vIExpbmsgcmVsYXRpb24gYml0bWFzayB2
YWx1ZXMuCkBAIC0xMDAsNyArMTAwLDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgc2VuZFBpbmdz
KGNvbnN0IFVSTCYgZGVzdGluYXRpb25VUkwpOwogCi0gICAgT3B0aW9uYWw8UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ+IHBhcnNlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKSBjb25zdDsKKyAgICBP
cHRpb25hbDxBZENsaWNrQXR0cmlidXRpb24+IHBhcnNlQWRDbGlja0F0dHJpYnV0aW9uKCkgY29u
c3Q7CiAKICAgICB2b2lkIGhhbmRsZUNsaWNrKEV2ZW50Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQW5jaG9yRWxlbWVudC5pZGwKaW5kZXggYmQxZGQ2NjgzM2NkMjA0MThlYmRhZDEwMGI3
YTgyNDc5NjFkNmQyZi4uY2FhZmIzMTRmODcxZjlmYWVjZGY1ZTYyZjQxZmNlMTc0ZjcxNTQxMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5pZGwKQEAgLTIxLDggKzIx
LDggQEAKIFsKICAgICBFeHBvc2VkPVdpbmRvdwogXSBpbnRlcmZhY2UgSFRNTEFuY2hvckVsZW1l
bnQgOiBIVE1MRWxlbWVudCB7Ci0gICAgW0NFUmVhY3Rpb25zPU5vdE5lZWRlZCwgRW5hYmxlZEJ5
U2V0dGluZz1Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0
cmluZyBhZGNhbXBhaWduaWQ7Ci0gICAgW0NFUmVhY3Rpb25zPU5vdE5lZWRlZCwgRW5hYmxlZEJ5
U2V0dGluZz1Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0
cmluZyBhZGRlc3RpbmF0aW9uOworICAgIFtDRVJlYWN0aW9ucz1Ob3ROZWVkZWQsIEVuYWJsZWRC
eVNldHRpbmc9QWRDbGlja0F0dHJpYnV0aW9uLCBSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5n
IGFkY2FtcGFpZ25pZDsKKyAgICBbQ0VSZWFjdGlvbnM9Tm90TmVlZGVkLCBFbmFibGVkQnlTZXR0
aW5nPUFkQ2xpY2tBdHRyaWJ1dGlvbiwgUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBhZGRl
c3RpbmF0aW9uOwogICAgIFtDRVJlYWN0aW9ucz1Ob3ROZWVkZWQsIFJlZmxlY3RdIGF0dHJpYnV0
ZSBET01TdHJpbmcgY2hhcnNldDsKICAgICBbQ0VSZWFjdGlvbnM9Tm90TmVlZGVkLCBSZWZsZWN0
XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGNvb3JkczsKICAgICBbQ0VSZWFjdGlvbnM9Tm90TmVlZGVk
LCBDb25kaXRpb25hbD1ET1dOTE9BRF9BVFRSSUJVVEUsIEVuYWJsZWRCeVNldHRpbmc9RG93bmxv
YWRBdHRyaWJ1dGUsIFJlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgZG93bmxvYWQ7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50LmgKaW5kZXggYTY3MGUzMjhhNWJm
Yzg4MGJkNTQ1ZDg3OTdhNjJhNjAyYjE5Y2MwNy4uOTdhNDdkODUzNGNiZDdlMzExZGUzMzQzN2Y1
MWM0ZDQ0ZmMxMjVkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDbGll
bnQuaApAQCAtNjUsNyArNjUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHRpbWVsaW5l
UmVjb3JkaW5nQ2hhbmdlZChib29sKSB7IH0KIAogICAgIGVudW0gY2xhc3MgRGV2ZWxvcGVyUHJl
ZmVyZW5jZSB7Ci0gICAgICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlRW5hYmxl
ZCwKKyAgICAgICAgQWRDbGlja0F0dHJpYnV0aW9uRGVidWdNb2RlRW5hYmxlZCwKICAgICAgICAg
SVRQRGVidWdNb2RlRW5hYmxlZCwKICAgICAgICAgTW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCwK
ICAgICB9OwpAQCAtODMsNyArODMsNyBAQCBuYW1lc3BhY2UgV1RGIHsKIHRlbXBsYXRlPD4gc3Ry
dWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50OjpEZXZlbG9wZXJQcmVmZXJl
bmNlPiB7CiAgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKICAgICAgICAgV2ViQ29yZTo6
SW5zcGVjdG9yQ2xpZW50OjpEZXZlbG9wZXJQcmVmZXJlbmNlLAotICAgICAgICBXZWJDb3JlOjpJ
bnNwZWN0b3JDbGllbnQ6OkRldmVsb3BlclByZWZlcmVuY2U6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50RGVidWdNb2RlRW5hYmxlZCwKKyAgICAgICAgV2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50OjpE
ZXZlbG9wZXJQcmVmZXJlbmNlOjpBZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGVFbmFibGVkLAog
ICAgICAgICBXZWJDb3JlOjpJbnNwZWN0b3JDbGllbnQ6OkRldmVsb3BlclByZWZlcmVuY2U6OklU
UERlYnVnTW9kZUVuYWJsZWQsCiAgICAgICAgIFdlYkNvcmU6Okluc3BlY3RvckNsaWVudDo6RGV2
ZWxvcGVyUHJlZmVyZW5jZTo6TW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZAogICAgID47CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclBhZ2VBZ2Vu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclBhZ2VBZ2Vu
dC5jcHAKaW5kZXggYWYwYTA1MWJkYWU1MmIyZGFmNzBiMWZlZTc2ZWVlMDg2NmI3YjA0Ni4uYTY5
M2I4ZDg1MWE0ZjAyY2Y4MjEyOWIyODQzMTg4OTBkY2E3NDIxYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUGFnZUFnZW50LmNwcApAQCAt
MzgyLDcgKzM4Miw3IEBAIFByb3RvY29sOjpFcnJvclN0cmluZ09yPHZvaWQ+IEluc3BlY3RvclBh
Z2VBZ2VudDo6ZGlzYWJsZSgpCiAgICAgaW5zcGVjdGVkUGFnZVNldHRpbmdzLnNldFdlYlJUQ0Vu
Y3J5cHRpb25FbmFibGVkSW5zcGVjdG9yT3ZlcnJpZGUoV1RGOjpudWxsb3B0KTsKICAgICBpbnNw
ZWN0ZWRQYWdlU2V0dGluZ3Muc2V0V2ViU2VjdXJpdHlFbmFibGVkSW5zcGVjdG9yT3ZlcnJpZGUo
V1RGOjpudWxsb3B0KTsKIAotICAgIG1fY2xpZW50LT5zZXREZXZlbG9wZXJQcmVmZXJlbmNlT3Zl
cnJpZGUoSW5zcGVjdG9yQ2xpZW50OjpEZXZlbG9wZXJQcmVmZXJlbmNlOjpQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudERlYnVnTW9kZUVuYWJsZWQsIFdURjo6bnVsbG9wdCk7CisgICAgbV9jbGllbnQt
PnNldERldmVsb3BlclByZWZlcmVuY2VPdmVycmlkZShJbnNwZWN0b3JDbGllbnQ6OkRldmVsb3Bl
clByZWZlcmVuY2U6OkFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZUVuYWJsZWQsIFdURjo6bnVs
bG9wdCk7CiAgICAgbV9jbGllbnQtPnNldERldmVsb3BlclByZWZlcmVuY2VPdmVycmlkZShJbnNw
ZWN0b3JDbGllbnQ6OkRldmVsb3BlclByZWZlcmVuY2U6OklUUERlYnVnTW9kZUVuYWJsZWQsIFdU
Rjo6bnVsbG9wdCk7CiAgICAgbV9jbGllbnQtPnNldERldmVsb3BlclByZWZlcmVuY2VPdmVycmlk
ZShJbnNwZWN0b3JDbGllbnQ6OkRldmVsb3BlclByZWZlcmVuY2U6Ok1vY2tDYXB0dXJlRGV2aWNl
c0VuYWJsZWQsIFdURjo6bnVsbG9wdCk7CiAKQEAgLTQzMSw4ICs0MzEsOCBAQCBQcm90b2NvbDo6
RXJyb3JTdHJpbmdPcjx2b2lkPiBJbnNwZWN0b3JQYWdlQWdlbnQ6Om92ZXJyaWRlU2V0dGluZyhQ
cm90b2NvbDo6UGFnZQogICAgIGF1dG8mIGluc3BlY3RlZFBhZ2VTZXR0aW5ncyA9IG1faW5zcGVj
dGVkUGFnZS5zZXR0aW5ncygpOwogCiAgICAgc3dpdGNoIChzZXR0aW5nKSB7Ci0gICAgY2FzZSBQ
cm90b2NvbDo6UGFnZTo6U2V0dGluZzo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGVF
bmFibGVkOgotICAgICAgICBtX2NsaWVudC0+c2V0RGV2ZWxvcGVyUHJlZmVyZW5jZU92ZXJyaWRl
KEluc3BlY3RvckNsaWVudDo6RGV2ZWxvcGVyUHJlZmVyZW5jZTo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnREZWJ1Z01vZGVFbmFibGVkLCB2YWx1ZSk7CisgICAgY2FzZSBQcm90b2NvbDo6UGFnZTo6
U2V0dGluZzo6QWRDbGlja0F0dHJpYnV0aW9uRGVidWdNb2RlRW5hYmxlZDoKKyAgICAgICAgbV9j
bGllbnQtPnNldERldmVsb3BlclByZWZlcmVuY2VPdmVycmlkZShJbnNwZWN0b3JDbGllbnQ6OkRl
dmVsb3BlclByZWZlcmVuY2U6OkFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZUVuYWJsZWQsIHZh
bHVlKTsKICAgICAgICAgcmV0dXJuIHsgfTsKIAogICAgIGNhc2UgUHJvdG9jb2w6OlBhZ2U6OlNl
dHRpbmc6OkF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VDb25zb2xlQWdlbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VDb25zb2xlQWdlbnQuY3BwCmluZGV4
IGI4MmQ2ZWYzODZiZjY3MGNhZjQ0NzUxMzNmZThjZDAxNmI3ZDcxMGMuLmQ0OTAxZjM1YjA4NTMy
MGQ0YzE0YWViYTFkYjZiMjdiYzZiMjg2MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlQ29uc29sZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZUNvbnNvbGVBZ2VudC5jcHAKQEAgLTEwNyw3
ICsxMDcsNyBAQCBQcm90b2NvbDo6RXJyb3JTdHJpbmdPcjxSZWY8SlNPTjo6QXJyYXlPZjxQcm90
b2NvbDo6Q29uc29sZTo6Q2hhbm5lbD4+PiBQYWdlQ29ucwogICAgIGFkZExvZ0NoYW5uZWwoUHJv
dG9jb2w6OkNvbnNvbGU6OkNoYW5uZWxTb3VyY2U6Ok1lZGlhU291cmNlKTsKICAgICBhZGRMb2dD
aGFubmVsKFByb3RvY29sOjpDb25zb2xlOjpDaGFubmVsU291cmNlOjpXZWJSVEMpOwogICAgIGFk
ZExvZ0NoYW5uZWwoUHJvdG9jb2w6OkNvbnNvbGU6OkNoYW5uZWxTb3VyY2U6OklUUERlYnVnKTsK
LSAgICBhZGRMb2dDaGFubmVsKFByb3RvY29sOjpDb25zb2xlOjpDaGFubmVsU291cmNlOjpQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCk7CisgICAgYWRkTG9nQ2hhbm5lbChQcm90b2NvbDo6Q29uc29s
ZTo6Q2hhbm5lbFNvdXJjZTo6QWRDbGlja0F0dHJpYnV0aW9uKTsKICAgICBhZGRMb2dDaGFubmVs
KFByb3RvY29sOjpDb25zb2xlOjpDaGFubmVsU291cmNlOjpPdGhlcik7CiAKICAgICByZXR1cm4g
Y2hhbm5lbHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQWRDbGlja0F0dHJp
YnV0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9BZENsaWNrQXR0cmlidXRpb24uY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjQyMzExYmU4ZDk5YTIzMWI5YTQ2NTUxYjBlNDkzYTA1YWU4MTg0ZDQKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQWRDbGlja0F0dHJpYnV0aW9u
LmNwcApAQCAtMCwwICsxLDIyOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJBZENsaWNrQXR0cmlidXRpb24uaCIKKworI2luY2x1ZGUgIkxvZ2dpbmcuaCIK
KyNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCisjaW5jbHVkZSA8d3RmL0V4cGVj
dGVkLmg+CisjaW5jbHVkZSA8d3RmL1JhbmRvbU51bWJlci5oPgorI2luY2x1ZGUgPHd0Zi9VUkwu
aD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CisjaW5jbHVkZSA8d3RmL3Rl
eHQvU3RyaW5nVmlldy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBjb25zdCBj
aGFyIGFkQ2xpY2tBdHRyaWJ1dGlvblBhdGhQcmVmaXhbXSA9ICIvLndlbGwta25vd24vYWQtY2xp
Y2stYXR0cmlidXRpb24vIjsKK2NvbnN0IHNpemVfdCBhZENsaWNrQ29udmVyc2lvbkRhdGFQYXRo
U2VnbWVudFNpemUgPSAyOworY29uc3Qgc2l6ZV90IGFkQ2xpY2tQcmlvcml0eVBhdGhTZWdtZW50
U2l6ZSA9IDI7Citjb25zdCBTZWNvbmRzIG1heEFnZSB7IDI0X2ggKiA3IH07CisKK2Jvb2wgQWRD
bGlja0F0dHJpYnV0aW9uOjppc1ZhbGlkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jb252ZXJz
aW9uCisgICAgICAgICYmIG1fY29udmVyc2lvbi52YWx1ZSgpLmlzVmFsaWQoKQorICAgICAgICAm
JiBtX2NhbXBhaWduLmlzVmFsaWQoKQorICAgICAgICAmJiAhbV9zb3VyY2UucmVnaXN0cmFibGVE
b21haW4uaXNFbXB0eSgpCisgICAgICAgICYmICFtX2Rlc3RpbmF0aW9uLnJlZ2lzdHJhYmxlRG9t
YWluLmlzRW1wdHkoKQorICAgICAgICAmJiBtX2VhcmxpZXN0VGltZVRvU2VuZDsKK30KKworRXhw
ZWN0ZWQ8QWRDbGlja0F0dHJpYnV0aW9uOjpDb252ZXJzaW9uLCBTdHJpbmc+IEFkQ2xpY2tBdHRy
aWJ1dGlvbjo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb25zdCBVUkwmIHJlZGlyZWN0VVJMKQor
eworICAgIGlmICghcmVkaXJlY3RVUkwucHJvdG9jb2xJcygiaHR0cHMiKSB8fCByZWRpcmVjdFVS
TC5oYXNDcmVkZW50aWFscygpIHx8IHJlZGlyZWN0VVJMLmhhc1F1ZXJ5KCkgfHwgcmVkaXJlY3RV
UkwuaGFzRnJhZ21lbnRJZGVudGlmaWVyKCkpIHsKKyAgICAgICAgaWYgKFVOTElLRUxZKGRlYnVn
TW9kZUVuYWJsZWQoKSkpIHsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lORk8oQWRDbGlja0F0
dHJpYnV0aW9uLCAiQ29udmVyc2lvbiB3YXMgbm90IGFjY2VwdGVkIGJlY2F1c2UgdGhlIFVSTCdz
IHByb3RvY29sIGlzIG5vdCBIVFRQUyBvciB0aGUgVVJMIGNvbnRhaW5zIG9uZSBvciBtb3JlIG9m
IHVzZXJuYW1lLCBwYXNzd29yZCwgcXVlcnkgc3RyaW5nLCBhbmQgZnJhZ21lbnQuIik7CisgICAg
ICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoIltBZCBDbGljayBBdHRyaWJ1dGlvbl0gQ29u
dmVyc2lvbiB3YXMgbm90IGFjY2VwdGVkIGJlY2F1c2UgdGhlIFVSTCdzIHByb3RvY29sIGlzIG5v
dCBIVFRQUyBvciB0aGUgVVJMIGNvbnRhaW5zIG9uZSBvciBtb3JlIG9mIHVzZXJuYW1lLCBwYXNz
d29yZCwgcXVlcnkgc3RyaW5nLCBhbmQgZnJhZ21lbnQuIl9zKTsKKyAgICAgICAgfQorICAgICAg
ICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQobnVsbFN0cmluZygpKTsKKyAgICB9CisKKyAgICBhdXRv
IHBhdGggPSBTdHJpbmdWaWV3KHJlZGlyZWN0VVJMLnN0cmluZygpKS5zdWJzdHJpbmcocmVkaXJl
Y3RVUkwucGF0aFN0YXJ0KCksIHJlZGlyZWN0VVJMLnBhdGhFbmQoKSAtIHJlZGlyZWN0VVJMLnBh
dGhTdGFydCgpKTsKKyAgICBpZiAocGF0aC5pc0VtcHR5KCkgfHwgIXBhdGguc3RhcnRzV2l0aChh
ZENsaWNrQXR0cmlidXRpb25QYXRoUHJlZml4KSkgeworICAgICAgICBpZiAoVU5MSUtFTFkoZGVi
dWdNb2RlRW5hYmxlZCgpKSkgeworICAgICAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhBZENsaWNr
QXR0cmlidXRpb24sICJDb252ZXJzaW9uIHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVzZSB0aGUgVVJM
IHBhdGggZGlkIG5vdCBzdGFydCB3aXRoICUiIFBVQkxJQ19MT0dfU1RSSU5HICIuIiwgYWRDbGlj
a0F0dHJpYnV0aW9uUGF0aFByZWZpeCk7CisgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0
ZWQobWFrZVN0cmluZygiW0FkIENsaWNrIEF0dHJpYnV0aW9uXSBDb252ZXJzaW9uIHdhcyBub3Qg
YWNjZXB0ZWQgYmVjYXVzZSB0aGUgVVJMIHBhdGggZGlkIG5vdCBzdGFydCB3aXRoICJfcywgYWRD
bGlja0F0dHJpYnV0aW9uUGF0aFByZWZpeCwgIi4iX3MpKTsKKyAgICAgICAgfQorICAgICAgICBy
ZXR1cm4gbWFrZVVuZXhwZWN0ZWQobnVsbFN0cmluZygpKTsKKyAgICB9CisKKyAgICBhdXRvIHBy
ZWZpeExlbmd0aCA9IHNpemVvZihhZENsaWNrQXR0cmlidXRpb25QYXRoUHJlZml4KSAtIDE7Cisg
ICAgaWYgKHBhdGgubGVuZ3RoKCkgPT0gcHJlZml4TGVuZ3RoICsgYWRDbGlja0NvbnZlcnNpb25E
YXRhUGF0aFNlZ21lbnRTaXplKSB7CisgICAgICAgIGF1dG8gY29udmVyc2lvbkRhdGFVSW50NjQg
PSBwYXRoLnN1YnN0cmluZyhwcmVmaXhMZW5ndGgsIGFkQ2xpY2tDb252ZXJzaW9uRGF0YVBhdGhT
ZWdtZW50U2l6ZSkudG9VSW50NjRTdHJpY3QoKTsKKyAgICAgICAgaWYgKCFjb252ZXJzaW9uRGF0
YVVJbnQ2NCB8fCAqY29udmVyc2lvbkRhdGFVSW50NjQgPiBNYXhFbnRyb3B5KSB7CisgICAgICAg
ICAgICBpZiAoVU5MSUtFTFkoZGVidWdNb2RlRW5hYmxlZCgpKSkgeworICAgICAgICAgICAgICAg
IFJFTEVBU0VfTE9HX0lORk8oQWRDbGlja0F0dHJpYnV0aW9uLCAiQ29udmVyc2lvbiB3YXMgbm90
IGFjY2VwdGVkIGJlY2F1c2UgdGhlIGNvbnZlcnNpb24gZGF0YSBjb3VsZCBub3QgYmUgcGFyc2Vk
IG9yIHdhcyBoaWdoZXIgdGhhbiB0aGUgYWxsb3dlZCBtYXhpbXVtIG9mICV7cHVibGljfXUuIiwg
TWF4RW50cm9weSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKG1ha2VT
dHJpbmcoIltBZCBDbGljayBBdHRyaWJ1dGlvbl0gQ29udmVyc2lvbiB3YXMgbm90IGFjY2VwdGVk
IGJlY2F1c2UgdGhlIGNvbnZlcnNpb24gZGF0YSBjb3VsZCBub3QgYmUgcGFyc2VkIG9yIHdhcyBo
aWdoZXIgdGhhbiB0aGUgYWxsb3dlZCBtYXhpbXVtIG9mICJfcywgTWF4RW50cm9weSwgIi4iX3Mp
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChudWxs
U3RyaW5nKCkpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIENvbnZlcnNpb24geyBzdGF0
aWNfY2FzdDx1aW50MzJfdD4oKmNvbnZlcnNpb25EYXRhVUludDY0KSwgUHJpb3JpdHkgeyAwIH0g
fTsKKyAgICB9CisgICAgCisgICAgaWYgKHBhdGgubGVuZ3RoKCkgPT0gcHJlZml4TGVuZ3RoICsg
YWRDbGlja0NvbnZlcnNpb25EYXRhUGF0aFNlZ21lbnRTaXplICsgMSArIGFkQ2xpY2tQcmlvcml0
eVBhdGhTZWdtZW50U2l6ZSkgeworICAgICAgICBhdXRvIGNvbnZlcnNpb25EYXRhVUludDY0ID0g
cGF0aC5zdWJzdHJpbmcocHJlZml4TGVuZ3RoLCBhZENsaWNrQ29udmVyc2lvbkRhdGFQYXRoU2Vn
bWVudFNpemUpLnRvVUludDY0U3RyaWN0KCk7CisgICAgICAgIGlmICghY29udmVyc2lvbkRhdGFV
SW50NjQgfHwgKmNvbnZlcnNpb25EYXRhVUludDY0ID4gTWF4RW50cm9weSkgeworICAgICAgICAg
ICAgaWYgKFVOTElLRUxZKGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsKKyAgICAgICAgICAgICAgICBS
RUxFQVNFX0xPR19JTkZPKEFkQ2xpY2tBdHRyaWJ1dGlvbiwgIkNvbnZlcnNpb24gd2FzIG5vdCBh
Y2NlcHRlZCBiZWNhdXNlIHRoZSBjb252ZXJzaW9uIGRhdGEgY291bGQgbm90IGJlIHBhcnNlZCBv
ciB3YXMgaGlnaGVyIHRoYW4gdGhlIGFsbG93ZWQgbWF4aW11bSBvZiAle3B1YmxpY311LiIsIE1h
eEVudHJvcHkpOworICAgICAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChtYWtlU3Ry
aW5nKCJbQWQgQ2xpY2sgQXR0cmlidXRpb25dIENvbnZlcnNpb24gd2FzIG5vdCBhY2NlcHRlZCBi
ZWNhdXNlIHRoZSBjb252ZXJzaW9uIGRhdGEgY291bGQgbm90IGJlIHBhcnNlZCBvciB3YXMgaGln
aGVyIHRoYW4gdGhlIGFsbG93ZWQgbWF4aW11bSBvZiAiX3MsIE1heEVudHJvcHksICIuIl9zKSk7
CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQobnVsbFN0
cmluZygpKTsKKyAgICAgICAgfQorCisgICAgICAgIGF1dG8gY29udmVyc2lvblByaW9yaXR5VUlu
dDY0ID0gcGF0aC5zdWJzdHJpbmcocHJlZml4TGVuZ3RoICsgYWRDbGlja0NvbnZlcnNpb25EYXRh
UGF0aFNlZ21lbnRTaXplICsgMSwgYWRDbGlja1ByaW9yaXR5UGF0aFNlZ21lbnRTaXplKS50b1VJ
bnQ2NFN0cmljdCgpOworICAgICAgICBpZiAoIWNvbnZlcnNpb25Qcmlvcml0eVVJbnQ2NCB8fCAq
Y29udmVyc2lvblByaW9yaXR5VUludDY0ID4gTWF4RW50cm9weSkgeworICAgICAgICAgICAgaWYg
KFVOTElLRUxZKGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsKKyAgICAgICAgICAgICAgICBSRUxFQVNF
X0xPR19JTkZPKEFkQ2xpY2tBdHRyaWJ1dGlvbiwgIkNvbnZlcnNpb24gd2FzIG5vdCBhY2NlcHRl
ZCBiZWNhdXNlIHRoZSBwcmlvcml0eSBjb3VsZCBub3QgYmUgcGFyc2VkIG9yIHdhcyBoaWdoZXIg
dGhhbiB0aGUgYWxsb3dlZCBtYXhpbXVtIG9mICV7cHVibGljfXUuIiwgTWF4RW50cm9weSk7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKG1ha2VTdHJpbmcoIltBZCBDbGlj
ayBBdHRyaWJ1dGlvbl0gQ29udmVyc2lvbiB3YXMgbm90IGFjY2VwdGVkIGJlY2F1c2UgdGhlIHBy
aW9yaXR5IGNvdWxkIG5vdCBiZSBwYXJzZWQgb3Igd2FzIGhpZ2hlciB0aGFuIHRoZSBhbGxvd2Vk
IG1heGltdW0gb2YgIl9zLCBNYXhFbnRyb3B5LCAiLiJfcykpOworICAgICAgICAgICAgfQorICAg
ICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKG51bGxTdHJpbmcoKSk7CisgICAgICAgIH0K
KworICAgICAgICByZXR1cm4gQ29udmVyc2lvbiB7IHN0YXRpY19jYXN0PHVpbnQzMl90PigqY29u
dmVyc2lvbkRhdGFVSW50NjQpLCBQcmlvcml0eSB7IHN0YXRpY19jYXN0PHVpbnQzMl90PigqY29u
dmVyc2lvblByaW9yaXR5VUludDY0KSB9IH07CisgICAgfQorCisgICAgaWYgKFVOTElLRUxZKGRl
YnVnTW9kZUVuYWJsZWQoKSkpIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhBZENsaWNrQXR0
cmlidXRpb24sICJDb252ZXJzaW9uIHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVzZSB0aGUgVVJMIHBh
dGggY29udGFpbmVkIHVucmVjb2duaXplZCBwYXJ0cy4iKTsKKyAgICAgICAgcmV0dXJuIG1ha2VV
bmV4cGVjdGVkKCJbQWQgQ2xpY2sgQXR0cmlidXRpb25dIENvbnZlcnNpb24gd2FzIG5vdCBhY2Nl
cHRlZCBiZWNhdXNlIHRoZSBVUkwgcGF0aCBjb250YWluZWQgdW5yZWNvZ25pemVkIHBhcnRzLiJf
cyk7CisgICAgfQorICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChudWxsU3RyaW5nKCkpOworfQor
CitPcHRpb25hbDxTZWNvbmRzPiBBZENsaWNrQXR0cmlidXRpb246OmNvbnZlcnRBbmRHZXRFYXJs
aWVzdFRpbWVUb1NlbmQoQ29udmVyc2lvbiYmIGNvbnZlcnNpb24pCit7CisgICAgaWYgKCFjb252
ZXJzaW9uLmlzVmFsaWQoKSB8fCAobV9jb252ZXJzaW9uICYmIG1fY29udmVyc2lvbi0+cHJpb3Jp
dHkgPj0gY29udmVyc2lvbi5wcmlvcml0eSkpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBt
X2NvbnZlcnNpb24gPSBXVEZNb3ZlKGNvbnZlcnNpb24pOworICAgIC8vIDI0LTQ4IGhvdXIgZGVs
YXkgYmVmb3JlIHNlbmRpbmcuIFRoaXMgaGVscHMgcHJpdmFjeSBzaW5jZSB0aGUgY29udmVyc2lv
biBhbmQgdGhlIGF0dHJpYnV0aW9uCisgICAgLy8gcmVxdWVzdHMgYXJlIGRldGFjaGVkIGFuZCB0
aGUgdGltZSBvZiB0aGUgYXR0cmlidXRpb24gZG9lcyBub3QgcmV2ZWFsIHRoZSB0aW1lIG9mIHRo
ZSBjb252ZXJzaW9uLgorICAgIGF1dG8gc2Vjb25kcyA9IDI0X2ggKyBTZWNvbmRzKHJhbmRvbU51
bWJlcigpICogKDI0X2gpLnZhbHVlKCkpOworICAgIG1fZWFybGllc3RUaW1lVG9TZW5kID0gV2Fs
bFRpbWU6Om5vdygpICsgc2Vjb25kczsKKyAgICByZXR1cm4gc2Vjb25kczsKK30KKwordm9pZCBB
ZENsaWNrQXR0cmlidXRpb246Om1hcmtBc0V4cGlyZWQoKQoreworICAgIG1fdGltZU9mQWRDbGlj
ayA9IHsgfTsKK30KKworYm9vbCBBZENsaWNrQXR0cmlidXRpb246Omhhc0V4cGlyZWQoKSBjb25z
dAoreworICAgIHJldHVybiBXYWxsVGltZTo6bm93KCkgPiBtX3RpbWVPZkFkQ2xpY2sgKyBtYXhB
Z2U7Cit9CisKK2Jvb2wgQWRDbGlja0F0dHJpYnV0aW9uOjpoYXNIaWdoZXJQcmlvcml0eVRoYW4o
Y29uc3QgQWRDbGlja0F0dHJpYnV0aW9uJiBvdGhlcikgY29uc3QKK3sKKyAgICBpZiAoIW90aGVy
Lm1fY29udmVyc2lvbikKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgCisgICAgaWYgKCFtX2Nv
bnZlcnNpb24pCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiBtX2NvbnZlcnNp
b24tPnByaW9yaXR5ID4gb3RoZXIubV9jb252ZXJzaW9uLT5wcmlvcml0eTsKK30KKworVVJMIEFk
Q2xpY2tBdHRyaWJ1dGlvbjo6cmVwb3J0VVJMKCkgY29uc3QKK3sKKyAgICBpZiAoIWlzVmFsaWQo
KSkKKyAgICAgICAgcmV0dXJuIFVSTCgpOworCisgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwor
ICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiaHR0cHM6Ly8iKTsKKyAgICBidWlsZGVyLmFwcGVu
ZChtX3NvdXJjZS5yZWdpc3RyYWJsZURvbWFpbi5zdHJpbmcoKSk7CisgICAgYnVpbGRlci5hcHBl
bmRMaXRlcmFsKGFkQ2xpY2tBdHRyaWJ1dGlvblBhdGhQcmVmaXgpOworCisgICAgVVJMIHVybCB7
IFVSTCgpLCBidWlsZGVyLnRvU3RyaW5nKCkgfTsKKyAgICBpZiAodXJsLmlzVmFsaWQoKSkKKyAg
ICAgICAgcmV0dXJuIHVybDsKKworICAgIHJldHVybiBVUkwoKTsKK30KKworUmVmPEpTT046Ok9i
amVjdD4gQWRDbGlja0F0dHJpYnV0aW9uOjpqc29uKCkgY29uc3QKK3sKKyAgICBhdXRvIHJlcG9y
dERldGFpbHMgPSBKU09OOjpPYmplY3Q6OmNyZWF0ZSgpOworICAgIGlmICghbV9jb252ZXJzaW9u
KQorICAgICAgICByZXR1cm4gcmVwb3J0RGV0YWlsczsKKworICAgIHJlcG9ydERldGFpbHMtPnNl
dFN0cmluZygiY29udGVudC10eXBlIl9zLCAiY2xpY2siX3MpOworICAgIHJlcG9ydERldGFpbHMt
PnNldFN0cmluZygiY29udGVudC1zaXRlIl9zLCBtX3NvdXJjZS5yZWdpc3RyYWJsZURvbWFpbi5z
dHJpbmcoKSk7CisgICAgcmVwb3J0RGV0YWlscy0+c2V0SW50ZWdlcigiY29udGVudC1pZCJfcywg
bV9jYW1wYWlnbi5pZCk7CisgICAgcmVwb3J0RGV0YWlscy0+c2V0U3RyaW5nKCJjb252ZXJzaW9u
LXNpdGUiX3MsIG1fZGVzdGluYXRpb24ucmVnaXN0cmFibGVEb21haW4uc3RyaW5nKCkpOworICAg
IHJlcG9ydERldGFpbHMtPnNldEludGVnZXIoImNvbnZlcnNpb24tZGF0YSJfcywgbV9jb252ZXJz
aW9uLT5kYXRhKTsKKyAgICByZXBvcnREZXRhaWxzLT5zZXRJbnRlZ2VyKCJyZXBvcnQtdmVyc2lv
biJfcywgMSk7CisgICAgcmV0dXJuIHJlcG9ydERldGFpbHM7Cit9CisKK3ZvaWQgQWRDbGlja0F0
dHJpYnV0aW9uOjptYXJrQ29udmVyc2lvbkFzU2VudCgpCit7CisgICAgQVNTRVJUKG1fY29udmVy
c2lvbik7CisgICAgaWYgKG1fY29udmVyc2lvbikKKyAgICAgICAgbV9jb252ZXJzaW9uLT53YXNT
ZW50ID0gQ29udmVyc2lvbjo6V2FzU2VudDo6WWVzOworfQorCitib29sIEFkQ2xpY2tBdHRyaWJ1
dGlvbjo6d2FzQ29udmVyc2lvblNlbnQoKSBjb25zdAoreworICAgIHJldHVybiBtX2NvbnZlcnNp
b24gJiYgbV9jb252ZXJzaW9uLT53YXNTZW50ID09IENvbnZlcnNpb246Oldhc1NlbnQ6OlllczsK
K30KKworU3RyaW5nIEFkQ2xpY2tBdHRyaWJ1dGlvbjo6dG9TdHJpbmcoKSBjb25zdAoreworICAg
IFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKKyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlNvdXJj
ZTogIik7CisgICAgYnVpbGRlci5hcHBlbmQobV9zb3VyY2UucmVnaXN0cmFibGVEb21haW4uc3Ry
aW5nKCkpOworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXG5EZXN0aW5hdGlvbjogIik7Cisg
ICAgYnVpbGRlci5hcHBlbmQobV9kZXN0aW5hdGlvbi5yZWdpc3RyYWJsZURvbWFpbi5zdHJpbmco
KSk7CisgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcbkNhbXBhaWduIElEOiAiKTsKKyAgICBi
dWlsZGVyLmFwcGVuZE51bWJlcihtX2NhbXBhaWduLmlkKTsKKyAgICBpZiAobV9jb252ZXJzaW9u
KSB7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXG5Db252ZXJzaW9uIGRhdGE6ICIp
OworICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihtX2NvbnZlcnNpb24udmFsdWUoKS5kYXRh
KTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcbkNvbnZlcnNpb24gcHJpb3JpdHk6
ICIpOworICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihtX2NvbnZlcnNpb24udmFsdWUoKS5w
cmlvcml0eSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXG5Db252ZXJzaW9uIGVh
cmxpZXN0IHRpbWUgdG8gc2VuZDogIik7CisgICAgICAgIGlmICghbV9lYXJsaWVzdFRpbWVUb1Nl
bmQpCisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIk5vdCBzZXQiKTsKKyAgICAg
ICAgZWxzZSB7CisgICAgICAgICAgICBhdXRvIHNlY29uZHNVbnRpbFNlbmQgPSAqbV9lYXJsaWVz
dFRpbWVUb1NlbmQgLSBXYWxsVGltZTo6bm93KCk7CisgICAgICAgICAgICBidWlsZGVyLmFwcGVu
ZCgoc2Vjb25kc1VudGlsU2VuZCA+PSAyNF9oICYmIHNlY29uZHNVbnRpbFNlbmQgPD0gNDhfaCkg
PyAiV2l0aGluIDI0LTQ4IGhvdXJzIiA6ICJPdXRzaWRlIDI0LTQ4IGhvdXJzIik7CisgICAgICAg
IH0KKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcbkNvbnZlcnNpb24gcmVxdWVzdCBz
ZW50OiAiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoKHdhc0NvbnZlcnNpb25TZW50KCkgPyAi
dHJ1ZSIgOiAiZmFsc2UiKSk7CisgICAgfSBlbHNlCisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0
ZXJhbCgiXG5ObyBjb252ZXJzaW9uIGRhdGEuIik7CisgICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7
CisKKyAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworfQorCitib29sIEFkQ2xpY2tBdHRy
aWJ1dGlvbjo6ZGVidWdNb2RlRW5hYmxlZCgpCit7CisgICAgcmV0dXJuIFJ1bnRpbWVFbmFibGVk
RmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuYWRDbGlja0F0dHJpYnV0aW9uRGVidWdNb2RlRW5h
YmxlZCgpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQWRDbGlj
a0F0dHJpYnV0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQWRDbGlja0F0dHJpYnV0aW9u
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uN2QxOWVjYTAwYmE0M2MxODFkZDE0ZjRhMzcwNTViODA4OTRmYTc4OQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9BZENsaWNrQXR0cmlidXRp
b24uaApAQCAtMCwwICsxLDM2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5j
bHVkZSAiUmVnaXN0cmFibGVEb21haW4uaCIKKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRs
ZXIuaD4KKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9KU09OVmFsdWVz
Lmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL1VSTC5oPgorI2lu
Y2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4K
KyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBBZENsaWNrQXR0cmlidXRpb24geworcHVibGljOgorICAgIHVzaW5nIENhbXBhaWdu
SWQgPSB1aW50MzJfdDsKKyAgICB1c2luZyBDb252ZXJzaW9uRGF0YSA9IHVpbnQzMl90OworICAg
IHVzaW5nIFByaW9yaXR5VmFsdWUgPSB1aW50MzJfdDsKKworICAgIHN0YXRpYyBjb25zdGV4cHIg
dWludDMyX3QgTWF4RW50cm9weSA9IDYzOworCisgICAgc3RydWN0IENhbXBhaWduIHsKKyAgICAg
ICAgQ2FtcGFpZ24oKSA9IGRlZmF1bHQ7CisgICAgICAgIGV4cGxpY2l0IENhbXBhaWduKENhbXBh
aWduSWQgaWQpCisgICAgICAgICAgICA6IGlkIHsgaWQgfQorICAgICAgICB7CisgICAgICAgIH0K
KyAgICAgICAgCisgICAgICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0CisgICAgICAgIHsKKyAgICAg
ICAgICAgIHJldHVybiBpZCA8PSBNYXhFbnRyb3B5OworICAgICAgICB9CisgICAgICAgIAorICAg
ICAgICBDYW1wYWlnbklkIGlkIHsgMCB9OworICAgIH07CisKKyAgICBzdHJ1Y3QgU291cmNlIHsK
KyAgICAgICAgU291cmNlKCkgPSBkZWZhdWx0OworICAgICAgICBleHBsaWNpdCBTb3VyY2UoY29u
c3QgVVJMJiB1cmwpCisgICAgICAgICAgICA6IHJlZ2lzdHJhYmxlRG9tYWluIHsgdXJsIH0KKyAg
ICAgICAgeworICAgICAgICB9CisKKyAgICAgICAgZXhwbGljaXQgU291cmNlKGNvbnN0IFJlZ2lz
dHJhYmxlRG9tYWluJiBkb21haW4pCisgICAgICAgICAgICA6IHJlZ2lzdHJhYmxlRG9tYWluIHsg
ZG9tYWluIH0KKyAgICAgICAgeworICAgICAgICB9CisKKyAgICAgICAgZXhwbGljaXQgU291cmNl
KFdURjo6SGFzaFRhYmxlRGVsZXRlZFZhbHVlVHlwZSkKKyAgICAgICAgICAgIDogcmVnaXN0cmFi
bGVEb21haW4oV1RGOjpIYXNoVGFibGVEZWxldGVkVmFsdWUpCisgICAgICAgIHsKKyAgICAgICAg
fQorCisgICAgICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBTb3VyY2UmIG90aGVyKSBjb25zdAor
ICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gcmVnaXN0cmFibGVEb21haW4gPT0gb3RoZXIu
cmVnaXN0cmFibGVEb21haW47CisgICAgICAgIH0KKworICAgICAgICBib29sIG1hdGNoZXMoY29u
c3QgVVJMJiB1cmwpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiByZWdpc3Ry
YWJsZURvbWFpbi5tYXRjaGVzKHVybCk7CisgICAgICAgIH0KKworICAgICAgICBib29sIGlzSGFz
aFRhYmxlRGVsZXRlZFZhbHVlKCkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJu
IHJlZ2lzdHJhYmxlRG9tYWluLmlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCk7CisgICAgICAgIH0K
KworICAgICAgICBzdGF0aWMgU291cmNlIGRlbGV0ZWRWYWx1ZSgpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIHJldHVybiBTb3VyY2UgeyBXVEY6Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZSB9OworICAg
ICAgICB9CisKKyAgICAgICAgc3RhdGljIHZvaWQgY29uc3RydWN0RGVsZXRlZFZhbHVlKFNvdXJj
ZSYgc291cmNlKQorICAgICAgICB7CisgICAgICAgICAgICBuZXcgKCZzb3VyY2UpIFNvdXJjZTsK
KyAgICAgICAgICAgIHNvdXJjZSA9IFNvdXJjZTo6ZGVsZXRlZFZhbHVlKCk7CisgICAgICAgIH0K
KworICAgICAgICB2b2lkIGRlbGV0ZVZhbHVlKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmVn
aXN0cmFibGVEb21haW4gPSBSZWdpc3RyYWJsZURvbWFpbiB7IFdURjo6SGFzaFRhYmxlRGVsZXRl
ZFZhbHVlIH07CisgICAgICAgIH0KKworICAgICAgICBib29sIGlzRGVsZXRlZFZhbHVlKCkgY29u
c3QKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGlzSGFzaFRhYmxlRGVsZXRlZFZhbHVl
KCk7CisgICAgICAgIH0KKworICAgICAgICBSZWdpc3RyYWJsZURvbWFpbiByZWdpc3RyYWJsZURv
bWFpbjsKKyAgICB9OworCisgICAgc3RydWN0IFNvdXJjZUhhc2ggeworICAgICAgICBzdGF0aWMg
dW5zaWduZWQgaGFzaChjb25zdCBTb3VyY2UmIHNvdXJjZSkKKyAgICAgICAgeworICAgICAgICAg
ICAgcmV0dXJuIHNvdXJjZS5yZWdpc3RyYWJsZURvbWFpbi5oYXNoKCk7CisgICAgICAgIH0KKyAg
ICAgICAgCisgICAgICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IFNvdXJjZSYgYSwgY29uc3Qg
U291cmNlJiBiKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gYSA9PSBiOworICAgICAg
ICB9CisKKyAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRl
bGV0ZWQgPSBmYWxzZTsKKyAgICB9OworCisgICAgc3RydWN0IERlc3RpbmF0aW9uIHsKKyAgICAg
ICAgRGVzdGluYXRpb24oKSA9IGRlZmF1bHQ7CisgICAgICAgIGV4cGxpY2l0IERlc3RpbmF0aW9u
KGNvbnN0IFVSTCYgdXJsKQorICAgICAgICAgICAgOiByZWdpc3RyYWJsZURvbWFpbiB7IFJlZ2lz
dHJhYmxlRG9tYWluIHsgdXJsIH0gfQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAgICBl
eHBsaWNpdCBEZXN0aW5hdGlvbihXVEY6Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZVR5cGUpCisgICAg
ICAgICAgICA6IHJlZ2lzdHJhYmxlRG9tYWluIHsgV1RGOjpIYXNoVGFibGVEZWxldGVkVmFsdWUg
fQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAgICBleHBsaWNpdCBEZXN0aW5hdGlvbihS
ZWdpc3RyYWJsZURvbWFpbiYmIGRvbWFpbikKKyAgICAgICAgICAgIDogcmVnaXN0cmFibGVEb21h
aW4geyBXVEZNb3ZlKGRvbWFpbikgfQorICAgICAgICB7CisgICAgICAgIH0KKyAgICAgICAgCisg
ICAgICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBEZXN0aW5hdGlvbiYgb3RoZXIpIGNvbnN0Cisg
ICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiByZWdpc3RyYWJsZURvbWFpbiA9PSBvdGhlci5y
ZWdpc3RyYWJsZURvbWFpbjsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2wgbWF0Y2hlcyhjb25z
dCBVUkwmIHVybCkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHJlZ2lzdHJh
YmxlRG9tYWluID09IFJlZ2lzdHJhYmxlRG9tYWluIHsgdXJsIH07CisgICAgICAgIH0KKyAgICAg
ICAgCisgICAgICAgIGJvb2wgaXNIYXNoVGFibGVEZWxldGVkVmFsdWUoKSBjb25zdAorICAgICAg
ICB7CisgICAgICAgICAgICByZXR1cm4gcmVnaXN0cmFibGVEb21haW4uaXNIYXNoVGFibGVEZWxl
dGVkVmFsdWUoKTsKKyAgICAgICAgfQorCisgICAgICAgIHN0YXRpYyBEZXN0aW5hdGlvbiBkZWxl
dGVkVmFsdWUoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gRGVzdGluYXRpb24geyBX
VEY6Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZSB9OworICAgICAgICB9CisKKyAgICAgICAgc3RhdGlj
IHZvaWQgY29uc3RydWN0RGVsZXRlZFZhbHVlKERlc3RpbmF0aW9uJiBkZXN0aW5hdGlvbikKKyAg
ICAgICAgeworICAgICAgICAgICAgbmV3ICgmZGVzdGluYXRpb24pIERlc3RpbmF0aW9uOworICAg
ICAgICAgICAgZGVzdGluYXRpb24gPSBEZXN0aW5hdGlvbjo6ZGVsZXRlZFZhbHVlKCk7CisgICAg
ICAgIH0KKworICAgICAgICB2b2lkIGRlbGV0ZVZhbHVlKCkKKyAgICAgICAgeworICAgICAgICAg
ICAgcmVnaXN0cmFibGVEb21haW4gPSBSZWdpc3RyYWJsZURvbWFpbiB7IFdURjo6SGFzaFRhYmxl
RGVsZXRlZFZhbHVlIH07CisgICAgICAgIH0KKworICAgICAgICBib29sIGlzRGVsZXRlZFZhbHVl
KCkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGlzSGFzaFRhYmxlRGVsZXRl
ZFZhbHVlKCk7CisgICAgICAgIH0KKworICAgICAgICBSZWdpc3RyYWJsZURvbWFpbiByZWdpc3Ry
YWJsZURvbWFpbjsKKyAgICB9OworCisgICAgc3RydWN0IERlc3RpbmF0aW9uSGFzaCB7CisgICAg
ICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IERlc3RpbmF0aW9uJiBkZXN0aW5hdGlvbikK
KyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGRlc3RpbmF0aW9uLnJlZ2lzdHJhYmxlRG9t
YWluLmhhc2goKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgc3RhdGljIGJvb2wgZXF1
YWwoY29uc3QgRGVzdGluYXRpb24mIGEsIGNvbnN0IERlc3RpbmF0aW9uJiBiKQorICAgICAgICB7
CisgICAgICAgICAgICByZXR1cm4gYSA9PSBiOworICAgICAgICB9CisKKyAgICAgICAgc3RhdGlj
IGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSBmYWxzZTsKKyAgICB9
OworCisgICAgc3RydWN0IFByaW9yaXR5IHsKKyAgICAgICAgZXhwbGljaXQgUHJpb3JpdHkoUHJp
b3JpdHlWYWx1ZSB2YWx1ZSkKKyAgICAgICAgOiB2YWx1ZSB7IHZhbHVlIH0KKyAgICAgICAgewor
ICAgICAgICB9CisgICAgICAgIAorICAgICAgICBQcmlvcml0eVZhbHVlIHZhbHVlOworICAgIH07
CisgICAgCisgICAgc3RydWN0IENvbnZlcnNpb24geworICAgICAgICBlbnVtIGNsYXNzIFdhc1Nl
bnQgOiBib29sIHsgTm8sIFllcyB9OworICAgICAgICAKKyAgICAgICAgQ29udmVyc2lvbihDb252
ZXJzaW9uRGF0YSBkYXRhLCBQcmlvcml0eSBwcmlvcml0eSwgV2FzU2VudCB3YXNTZW50ID0gV2Fz
U2VudDo6Tm8pCisgICAgICAgICAgICA6IGRhdGEgeyBkYXRhIH0KKyAgICAgICAgICAgICwgcHJp
b3JpdHkgeyBwcmlvcml0eS52YWx1ZSB9CisgICAgICAgICAgICAsIHdhc1NlbnQgeyB3YXNTZW50
IH0KKyAgICAgICAgeworICAgICAgICB9CisKKyAgICAgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QK
KyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGRhdGEgPD0gTWF4RW50cm9weSAmJiBwcmlv
cml0eSA8PSBNYXhFbnRyb3B5OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBDb252ZXJz
aW9uRGF0YSBkYXRhOworICAgICAgICBQcmlvcml0eVZhbHVlIHByaW9yaXR5OworICAgICAgICBX
YXNTZW50IHdhc1NlbnQgPSBXYXNTZW50OjpObzsKKworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBF
bmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgICAgIHRlbXBsYXRlPGNs
YXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxDb252ZXJzaW9uPiBkZWNvZGUoRGVjb2RlciYp
OworICAgIH07CisKKyAgICBBZENsaWNrQXR0cmlidXRpb24oKSA9IGRlZmF1bHQ7CisgICAgQWRD
bGlja0F0dHJpYnV0aW9uKENhbXBhaWduIGNhbXBhaWduLCBjb25zdCBTb3VyY2UmIHNvdXJjZSwg
Y29uc3QgRGVzdGluYXRpb24mIGRlc3RpbmF0aW9uKQorICAgICAgICA6IG1fY2FtcGFpZ24geyBj
YW1wYWlnbiB9CisgICAgICAgICwgbV9zb3VyY2UgeyBzb3VyY2UgfQorICAgICAgICAsIG1fZGVz
dGluYXRpb24geyBkZXN0aW5hdGlvbiB9CisgICAgICAgICwgbV90aW1lT2ZBZENsaWNrIHsgV2Fs
bFRpbWU6Om5vdygpIH0KKyAgICB7CisgICAgfQorCisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IEV4cGVjdGVkPENvbnZlcnNpb24sIFN0cmluZz4gcGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb25z
dCBVUkwmIHJlZGlyZWN0VVJMKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBPcHRpb25hbDxTZWNvbmRz
PiBjb252ZXJ0QW5kR2V0RWFybGllc3RUaW1lVG9TZW5kKENvbnZlcnNpb24mJik7CisgICAgV0VC
Q09SRV9FWFBPUlQgYm9vbCBoYXNIaWdoZXJQcmlvcml0eVRoYW4oY29uc3QgQWRDbGlja0F0dHJp
YnV0aW9uJikgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgVVJMIHJlcG9ydFVSTCgpIGNvbnN0
OworICAgIFdFQkNPUkVfRVhQT1JUIFJlZjxKU09OOjpPYmplY3Q+IGpzb24oKSBjb25zdDsKKyAg
ICBjb25zdCBTb3VyY2UmIHNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlOyB9OworICAg
IGNvbnN0IERlc3RpbmF0aW9uJiBkZXN0aW5hdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZGVzdGlu
YXRpb247IH07CisgICAgT3B0aW9uYWw8V2FsbFRpbWU+IGVhcmxpZXN0VGltZVRvU2VuZCgpIGNv
bnN0IHsgcmV0dXJuIG1fZWFybGllc3RUaW1lVG9TZW5kOyB9OworICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgbWFya0FzRXhwaXJlZCgpOworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaGFzRXhwaXJl
ZCgpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgbWFya0NvbnZlcnNpb25Bc1NlbnQo
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBib29sIHdhc0NvbnZlcnNpb25TZW50KCkgY29uc3Q7CisK
KyAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZS5yZWdpc3RyYWJsZURv
bWFpbi5pc0VtcHR5KCk7IH07CisKKyAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgdG9TdHJpbmco
KSBjb25zdDsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29k
ZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8
QWRDbGlja0F0dHJpYnV0aW9uPiBkZWNvZGUoRGVjb2RlciYpOworCitwcml2YXRlOgorICAgIGJv
b2wgaXNWYWxpZCgpIGNvbnN0OworICAgIHN0YXRpYyBib29sIGRlYnVnTW9kZUVuYWJsZWQoKTsK
KworICAgIENhbXBhaWduIG1fY2FtcGFpZ247CisgICAgU291cmNlIG1fc291cmNlOworICAgIERl
c3RpbmF0aW9uIG1fZGVzdGluYXRpb247CisgICAgV2FsbFRpbWUgbV90aW1lT2ZBZENsaWNrOwor
CisgICAgT3B0aW9uYWw8Q29udmVyc2lvbj4gbV9jb252ZXJzaW9uOworICAgIE9wdGlvbmFsPFdh
bGxUaW1lPiBtX2VhcmxpZXN0VGltZVRvU2VuZDsKK307CisKK3RlbXBsYXRlPGNsYXNzIEVuY29k
ZXI+Cit2b2lkIEFkQ2xpY2tBdHRyaWJ1dGlvbjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNv
bnN0Cit7CisgICAgZW5jb2RlciA8PCBtX2NhbXBhaWduLmlkIDw8IG1fc291cmNlLnJlZ2lzdHJh
YmxlRG9tYWluIDw8IG1fZGVzdGluYXRpb24ucmVnaXN0cmFibGVEb21haW4gPDwgbV90aW1lT2ZB
ZENsaWNrIDw8IG1fY29udmVyc2lvbiA8PCBtX2VhcmxpZXN0VGltZVRvU2VuZDsKK30KKwordGVt
cGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFsPEFkQ2xpY2tBdHRyaWJ1dGlvbj4gQWRDbGlj
a0F0dHJpYnV0aW9uOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBPcHRpb25hbDxD
YW1wYWlnbklkPiBjYW1wYWlnbklkOworICAgIGRlY29kZXIgPj4gY2FtcGFpZ25JZDsKKyAgICBp
ZiAoIWNhbXBhaWduSWQpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgCisgICAg
T3B0aW9uYWw8UmVnaXN0cmFibGVEb21haW4+IHNvdXJjZVJlZ2lzdHJhYmxlRG9tYWluOworICAg
IGRlY29kZXIgPj4gc291cmNlUmVnaXN0cmFibGVEb21haW47CisgICAgaWYgKCFzb3VyY2VSZWdp
c3RyYWJsZURvbWFpbikKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICAKKyAgICBP
cHRpb25hbDxSZWdpc3RyYWJsZURvbWFpbj4gZGVzdGluYXRpb25SZWdpc3RyYWJsZURvbWFpbjsK
KyAgICBkZWNvZGVyID4+IGRlc3RpbmF0aW9uUmVnaXN0cmFibGVEb21haW47CisgICAgaWYgKCFk
ZXN0aW5hdGlvblJlZ2lzdHJhYmxlRG9tYWluKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OworICAgIAorICAgIE9wdGlvbmFsPFdhbGxUaW1lPiB0aW1lT2ZBZENsaWNrOworICAgIGRlY29k
ZXIgPj4gdGltZU9mQWRDbGljazsKKyAgICBpZiAoIXRpbWVPZkFkQ2xpY2spCisgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CisgICAgCisgICAgT3B0aW9uYWw8T3B0aW9uYWw8Q29udmVyc2lv
bj4+IGNvbnZlcnNpb247CisgICAgZGVjb2RlciA+PiBjb252ZXJzaW9uOworICAgIGlmICghY29u
dmVyc2lvbikKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICAKKyAgICBPcHRpb25h
bDxPcHRpb25hbDxXYWxsVGltZT4+IGVhcmxpZXN0VGltZVRvU2VuZDsKKyAgICBkZWNvZGVyID4+
IGVhcmxpZXN0VGltZVRvU2VuZDsKKyAgICBpZiAoIWVhcmxpZXN0VGltZVRvU2VuZCkKKyAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICAKKyAgICBBZENsaWNrQXR0cmlidXRpb24gYXR0
cmlidXRpb24geyBDYW1wYWlnbiB7IFdURk1vdmUoKmNhbXBhaWduSWQpIH0sIFNvdXJjZSB7IFdU
Rk1vdmUoKnNvdXJjZVJlZ2lzdHJhYmxlRG9tYWluKSB9LCBEZXN0aW5hdGlvbiB7IFdURk1vdmUo
KmRlc3RpbmF0aW9uUmVnaXN0cmFibGVEb21haW4pIH0gfTsKKyAgICBhdHRyaWJ1dGlvbi5tX2Nv
bnZlcnNpb24gPSBXVEZNb3ZlKCpjb252ZXJzaW9uKTsKKyAgICBhdHRyaWJ1dGlvbi5tX2Vhcmxp
ZXN0VGltZVRvU2VuZCA9IFdURk1vdmUoKmVhcmxpZXN0VGltZVRvU2VuZCk7CisgICAgCisgICAg
cmV0dXJuIGF0dHJpYnV0aW9uOworfQorCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBB
ZENsaWNrQXR0cmlidXRpb246OkNvbnZlcnNpb246OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdAoreworICAgIGVuY29kZXIgPDwgZGF0YSA8PCBwcmlvcml0eSA8PCB3YXNTZW50OworfQor
Cit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorT3B0aW9uYWw8QWRDbGlja0F0dHJpYnV0aW9uOjpD
b252ZXJzaW9uPiBBZENsaWNrQXR0cmlidXRpb246OkNvbnZlcnNpb246OmRlY29kZShEZWNvZGVy
JiBkZWNvZGVyKQoreworICAgIE9wdGlvbmFsPENvbnZlcnNpb25EYXRhPiBkYXRhOworICAgIGRl
Y29kZXIgPj4gZGF0YTsKKyAgICBpZiAoIWRhdGEpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7CisgICAgCisgICAgT3B0aW9uYWw8UHJpb3JpdHlWYWx1ZT4gcHJpb3JpdHk7CisgICAgZGVj
b2RlciA+PiBwcmlvcml0eTsKKyAgICBpZiAoIXByaW9yaXR5KQorICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworICAgIAorICAgIE9wdGlvbmFsPFdhc1NlbnQ+IHdhc1NlbnQ7CisgICAgZGVj
b2RlciA+PiB3YXNTZW50OworICAgIGlmICghd2FzU2VudCkKKyAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKKyAgICAKKyAgICByZXR1cm4gQ29udmVyc2lvbiB7IFdURk1vdmUoKmRhdGEpLCBQ
cmlvcml0eSB7ICpwcmlvcml0eSB9LCAqd2FzU2VudCB9OworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKK25hbWVzcGFjZSBXVEYgewordGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IERl
ZmF1bHRIYXNoOworCit0ZW1wbGF0ZTw+IHN0cnVjdCBEZWZhdWx0SGFzaDxXZWJDb3JlOjpBZENs
aWNrQXR0cmlidXRpb246OlNvdXJjZT4gOiBXZWJDb3JlOjpBZENsaWNrQXR0cmlidXRpb246OlNv
dXJjZUhhc2ggeyB9OwordGVtcGxhdGU8PiBzdHJ1Y3QgSGFzaFRyYWl0czxXZWJDb3JlOjpBZENs
aWNrQXR0cmlidXRpb246OlNvdXJjZT4gOiBHZW5lcmljSGFzaFRyYWl0czxXZWJDb3JlOjpBZENs
aWNrQXR0cmlidXRpb246OlNvdXJjZT4geworICAgIHN0YXRpYyBXZWJDb3JlOjpBZENsaWNrQXR0
cmlidXRpb246OlNvdXJjZSBlbXB0eVZhbHVlKCkgeyByZXR1cm4geyB9OyB9CisgICAgc3RhdGlj
IHZvaWQgY29uc3RydWN0RGVsZXRlZFZhbHVlKFdlYkNvcmU6OkFkQ2xpY2tBdHRyaWJ1dGlvbjo6
U291cmNlJiBzbG90KSB7IFdlYkNvcmU6OkFkQ2xpY2tBdHRyaWJ1dGlvbjo6U291cmNlOjpjb25z
dHJ1Y3REZWxldGVkVmFsdWUoc2xvdCk7IH0KKyAgICBzdGF0aWMgYm9vbCBpc0RlbGV0ZWRWYWx1
ZShjb25zdCBXZWJDb3JlOjpBZENsaWNrQXR0cmlidXRpb246OlNvdXJjZSYgc2xvdCkgeyByZXR1
cm4gc2xvdC5pc0RlbGV0ZWRWYWx1ZSgpOyB9Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBEZWZh
dWx0SGFzaDxXZWJDb3JlOjpBZENsaWNrQXR0cmlidXRpb246OkRlc3RpbmF0aW9uPiA6IFdlYkNv
cmU6OkFkQ2xpY2tBdHRyaWJ1dGlvbjo6RGVzdGluYXRpb25IYXNoIHsgfTsKK3RlbXBsYXRlPD4g
c3RydWN0IEhhc2hUcmFpdHM8V2ViQ29yZTo6QWRDbGlja0F0dHJpYnV0aW9uOjpEZXN0aW5hdGlv
bj4gOiBHZW5lcmljSGFzaFRyYWl0czxXZWJDb3JlOjpBZENsaWNrQXR0cmlidXRpb246OkRlc3Rp
bmF0aW9uPiB7CisgICAgc3RhdGljIFdlYkNvcmU6OkFkQ2xpY2tBdHRyaWJ1dGlvbjo6RGVzdGlu
YXRpb24gZW1wdHlWYWx1ZSgpIHsgcmV0dXJuIHsgfTsgfQorICAgIHN0YXRpYyB2b2lkIGNvbnN0
cnVjdERlbGV0ZWRWYWx1ZShXZWJDb3JlOjpBZENsaWNrQXR0cmlidXRpb246OkRlc3RpbmF0aW9u
JiBzbG90KSB7IFdlYkNvcmU6OkFkQ2xpY2tBdHRyaWJ1dGlvbjo6RGVzdGluYXRpb246OmNvbnN0
cnVjdERlbGV0ZWRWYWx1ZShzbG90KTsgfQorICAgIHN0YXRpYyBib29sIGlzRGVsZXRlZFZhbHVl
KGNvbnN0IFdlYkNvcmU6OkFkQ2xpY2tBdHRyaWJ1dGlvbjo6RGVzdGluYXRpb24mIHNsb3QpIHsg
cmV0dXJuIHNsb3QuaXNEZWxldGVkVmFsdWUoKTsgfQorfTsKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RnJhbWVMb2FkZXIuY3BwCmluZGV4IDc5YzU0NDhiOGM5MDZkMmZiNmQzMWZhZTk0MWViYmQ0MDhk
NTdkNTAuLmJlNmNhNzY5Mzk5MDBiY2NlNjNkODMwNTJiODE0MDVlZmQ2MDRhOTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtNDIyLDcgKzQyMiw3IEBAIHZvaWQgRnJh
bWVMb2FkZXI6OmNoZWNrQ29udGVudFBvbGljeShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNw
b25zZSwgUG9saWN5Q2hlCiAgICAgY2xpZW50KCkuZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNw
b25zZShyZXNwb25zZSwgYWN0aXZlRG9jdW1lbnRMb2FkZXIoKS0+cmVxdWVzdCgpLCBpZGVudGlm
aWVyLCBhY3RpdmVEb2N1bWVudExvYWRlcigpLT5kb3dubG9hZEF0dHJpYnV0ZSgpLCBXVEZNb3Zl
KGZ1bmN0aW9uKSk7CiB9CiAKLXZvaWQgRnJhbWVMb2FkZXI6OmNoYW5nZUxvY2F0aW9uKGNvbnN0
IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHBhc3NlZFRhcmdldCwgRXZlbnQqIHRyaWdnZXJpbmdF
dmVudCwgTG9ja0hpc3RvcnkgbG9ja0hpc3RvcnksIExvY2tCYWNrRm9yd2FyZExpc3QgbG9ja0Jh
Y2tGb3J3YXJkTGlzdCwgY29uc3QgUmVmZXJyZXJQb2xpY3kmIHJlZmVycmVyUG9saWN5LCBTaG91
bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ksIE9w
dGlvbmFsPE5ld0ZyYW1lT3BlbmVyUG9saWN5PiBvcGVuZXJQb2xpY3ksIGNvbnN0IEF0b21TdHJp
bmcmIGRvd25sb2FkQXR0cmlidXRlLCBjb25zdCBTeXN0ZW1QcmV2aWV3SW5mbyYgc3lzdGVtUHJl
dmlld0luZm8sIE9wdGlvbmFsPFByaXZhdGVDbGlja01lYXN1cmVtZW50PiYmIHByaXZhdGVDbGlj
a01lYXN1cmVtZW50KQordm9pZCBGcmFtZUxvYWRlcjo6Y2hhbmdlTG9jYXRpb24oY29uc3QgVVJM
JiB1cmwsIGNvbnN0IFN0cmluZyYgcGFzc2VkVGFyZ2V0LCBFdmVudCogdHJpZ2dlcmluZ0V2ZW50
LCBMb2NrSGlzdG9yeSBsb2NrSGlzdG9yeSwgTG9ja0JhY2tGb3J3YXJkTGlzdCBsb2NrQmFja0Zv
cndhcmRMaXN0LCBjb25zdCBSZWZlcnJlclBvbGljeSYgcmVmZXJyZXJQb2xpY3ksIFNob3VsZE9w
ZW5FeHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSwgT3B0aW9u
YWw8TmV3RnJhbWVPcGVuZXJQb2xpY3k+IG9wZW5lclBvbGljeSwgY29uc3QgQXRvbVN0cmluZyYg
ZG93bmxvYWRBdHRyaWJ1dGUsIGNvbnN0IFN5c3RlbVByZXZpZXdJbmZvJiBzeXN0ZW1QcmV2aWV3
SW5mbywgT3B0aW9uYWw8QWRDbGlja0F0dHJpYnV0aW9uPiYmIGFkQ2xpY2tBdHRyaWJ1dGlvbikK
IHsKICAgICBhdXRvKiBmcmFtZSA9IGxleGljYWxGcmFtZUZyb21Db21tb25WTSgpOwogICAgIGF1
dG8gaW5pdGlhdGVkQnlNYWluRnJhbWUgPSBmcmFtZSAmJiBmcmFtZS0+aXNNYWluRnJhbWUoKSA/
IEluaXRpYXRlZEJ5TWFpbkZyYW1lOjpZZXMgOiBJbml0aWF0ZWRCeU1haW5GcmFtZTo6VW5rbm93
bjsKQEAgLTQzNSwxMCArNDM1LDEwIEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNoYW5nZUxvY2F0aW9u
KGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHBhc3NlZFRhcmdldCwgRXZlCiAgICAgZnJh
bWVMb2FkUmVxdWVzdC5zZXRSZWZlcnJlclBvbGljeShyZWZlcnJlclBvbGljeSk7CiAgICAgZnJh
bWVMb2FkUmVxdWVzdC5zZXRTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KHNob3VsZE9wZW5F
eHRlcm5hbFVSTHNQb2xpY3kpOwogICAgIGZyYW1lTG9hZFJlcXVlc3QuZGlzYWJsZVNob3VsZFJl
cGxhY2VEb2N1bWVudElmSmF2YVNjcmlwdFVSTCgpOwotICAgIGNoYW5nZUxvY2F0aW9uKFdURk1v
dmUoZnJhbWVMb2FkUmVxdWVzdCksIHRyaWdnZXJpbmdFdmVudCwgV1RGTW92ZShwcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCkpOworICAgIGNoYW5nZUxvY2F0aW9uKFdURk1vdmUoZnJhbWVMb2FkUmVx
dWVzdCksIHRyaWdnZXJpbmdFdmVudCwgV1RGTW92ZShhZENsaWNrQXR0cmlidXRpb24pKTsKIH0K
IAotdm9pZCBGcmFtZUxvYWRlcjo6Y2hhbmdlTG9jYXRpb24oRnJhbWVMb2FkUmVxdWVzdCYmIGZy
YW1lUmVxdWVzdCwgRXZlbnQqIHRyaWdnZXJpbmdFdmVudCwgT3B0aW9uYWw8UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ+JiYgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpCit2b2lkIEZyYW1lTG9hZGVy
OjpjaGFuZ2VMb2NhdGlvbihGcmFtZUxvYWRSZXF1ZXN0JiYgZnJhbWVSZXF1ZXN0LCBFdmVudCog
dHJpZ2dlcmluZ0V2ZW50LCBPcHRpb25hbDxBZENsaWNrQXR0cmlidXRpb24+JiYgYWRDbGlja0F0
dHJpYnV0aW9uKQogewogICAgIEZSQU1FTE9BREVSX1JFTEVBU0VfTE9HX0lGX0FMTE9XRUQoUmVz
b3VyY2VMb2FkaW5nLCAiY2hhbmdlTG9jYXRpb246IGZyYW1lIGxvYWQgc3RhcnRlZCIpOwogICAg
IEFTU0VSVChmcmFtZVJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkuaHR0cE1ldGhvZCgpID09ICJH
RVQiKTsKQEAgLTQ1Niw3ICs0NTYsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpjaGFuZ2VMb2NhdGlv
bihGcmFtZUxvYWRSZXF1ZXN0JiYgZnJhbWVSZXF1ZXN0LCBFdmVudCogdHJpZ2dlcgogCiAgICAg
bV9mcmFtZS5kb2N1bWVudCgpLT5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+dXBncmFkZUluc2Vj
dXJlUmVxdWVzdElmTmVlZGVkKGZyYW1lUmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgQ29udGVu
dFNlY3VyaXR5UG9saWN5OjpJbnNlY3VyZVJlcXVlc3RUeXBlOjpOYXZpZ2F0aW9uKTsKIAotICAg
IGxvYWRGcmFtZVJlcXVlc3QoV1RGTW92ZShmcmFtZVJlcXVlc3QpLCB0cmlnZ2VyaW5nRXZlbnQs
IHsgfSwgV1RGTW92ZShwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCkpOworICAgIGxvYWRGcmFtZVJl
cXVlc3QoV1RGTW92ZShmcmFtZVJlcXVlc3QpLCB0cmlnZ2VyaW5nRXZlbnQsIHsgfSwgV1RGTW92
ZShhZENsaWNrQXR0cmlidXRpb24pKTsKIH0KIAogdm9pZCBGcmFtZUxvYWRlcjo6c3VibWl0Rm9y
bShSZWY8Rm9ybVN1Ym1pc3Npb24+JiYgc3VibWlzc2lvbikKQEAgLTEyMzksNyArMTIzOSw3IEBA
IHZvaWQgRnJhbWVMb2FkZXI6OnNldHVwRm9yUmVwbGFjZSgpCiAgICAgZGV0YWNoQ2hpbGRyZW4o
KTsKIH0KIAotdm9pZCBGcmFtZUxvYWRlcjo6bG9hZEZyYW1lUmVxdWVzdChGcmFtZUxvYWRSZXF1
ZXN0JiYgcmVxdWVzdCwgRXZlbnQqIGV2ZW50LCBSZWZQdHI8Rm9ybVN0YXRlPiYmIGZvcm1TdGF0
ZSwgT3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+JiYgcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQpCit2b2lkIEZyYW1lTG9hZGVyOjpsb2FkRnJhbWVSZXF1ZXN0KEZyYW1lTG9hZFJlcXVl
c3QmJiByZXF1ZXN0LCBFdmVudCogZXZlbnQsIFJlZlB0cjxGb3JtU3RhdGU+JiYgZm9ybVN0YXRl
LCBPcHRpb25hbDxBZENsaWNrQXR0cmlidXRpb24+JiYgYWRDbGlja0F0dHJpYnV0aW9uKQogewog
ICAgIEZSQU1FTE9BREVSX1JFTEVBU0VfTE9HX0lGX0FMTE9XRUQoUmVzb3VyY2VMb2FkaW5nLCAi
bG9hZEZyYW1lUmVxdWVzdDogZnJhbWUgbG9hZCBzdGFydGVkIik7CiAKQEAgLTEyODcsNyArMTI4
Nyw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRGcmFtZVJlcXVlc3QoRnJhbWVMb2FkUmVxdWVz
dCYmIHJlcXVlc3QsIEV2ZW50KiBldmVudCwgUmVmCiAgICAgaWYgKHJlcXVlc3QucmVzb3VyY2VS
ZXF1ZXN0KCkuaHR0cE1ldGhvZCgpID09ICJQT1NUIikKICAgICAgICAgbG9hZFBvc3RSZXF1ZXN0
KFdURk1vdmUocmVxdWVzdCksIHJlZmVycmVyLCBsb2FkVHlwZSwgZXZlbnQsIFdURk1vdmUoZm9y
bVN0YXRlKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogICAgIGVsc2UKLSAgICAgICAg
bG9hZFVSTChXVEZNb3ZlKHJlcXVlc3QpLCByZWZlcnJlciwgbG9hZFR5cGUsIGV2ZW50LCBXVEZN
b3ZlKGZvcm1TdGF0ZSksIFdURk1vdmUocHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpLCBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgICAgIGxvYWRVUkwoV1RGTW92ZShyZXF1ZXN0KSwg
cmVmZXJyZXIsIGxvYWRUeXBlLCBldmVudCwgV1RGTW92ZShmb3JtU3RhdGUpLCBXVEZNb3ZlKGFk
Q2xpY2tBdHRyaWJ1dGlvbiksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAogc3Rh
dGljIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1Bv
bGljeVRvQXBwbHkoRnJhbWUmIGN1cnJlbnRGcmFtZSwgSW5pdGlhdGVkQnlNYWluRnJhbWUgaW5p
dGlhdGVkQnlNYWluRnJhbWUsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgcHJvcGFnYXRl
ZFBvbGljeSkKQEAgLTEzMjksNyArMTMyOSw3IEBAIGJvb2wgRnJhbWVMb2FkZXI6OmlzU3RvcExv
YWRpbmdBbGxvd2VkKCkgY29uc3QKICAgICByZXR1cm4gbV9wYWdlRGlzbWlzc2FsRXZlbnRCZWlu
Z0Rpc3BhdGNoZWQgPT0gUGFnZURpc21pc3NhbFR5cGU6Ok5vbmU7CiB9CiAKLXZvaWQgRnJhbWVM
b2FkZXI6OmxvYWRVUkwoRnJhbWVMb2FkUmVxdWVzdCYmIGZyYW1lTG9hZFJlcXVlc3QsIGNvbnN0
IFN0cmluZyYgcmVmZXJyZXIsIEZyYW1lTG9hZFR5cGUgbmV3TG9hZFR5cGUsIEV2ZW50KiBldmVu
dCwgUmVmUHRyPEZvcm1TdGF0ZT4mJiBmb3JtU3RhdGUsIE9wdGlvbmFsPFByaXZhdGVDbGlja01l
YXN1cmVtZW50PiYmIHByaXZhdGVDbGlja01lYXN1cmVtZW50LCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIEZyYW1lTG9hZGVyOjpsb2FkVVJMKEZy
YW1lTG9hZFJlcXVlc3QmJiBmcmFtZUxvYWRSZXF1ZXN0LCBjb25zdCBTdHJpbmcmIHJlZmVycmVy
LCBGcmFtZUxvYWRUeXBlIG5ld0xvYWRUeXBlLCBFdmVudCogZXZlbnQsIFJlZlB0cjxGb3JtU3Rh
dGU+JiYgZm9ybVN0YXRlLCBPcHRpb25hbDxBZENsaWNrQXR0cmlidXRpb24+JiYgYWRDbGlja0F0
dHJpYnV0aW9uLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7CiAgICAgRlJBTUVMT0FERVJfUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChSZXNvdXJjZUxvYWRp
bmcsICJsb2FkVVJMOiBmcmFtZSBsb2FkIHN0YXJ0ZWQiKTsKICAgICBBU1NFUlQoZnJhbWVMb2Fk
UmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS5odHRwTWV0aG9kKCkgPT0gIkdFVCIpOwpAQCAtMTM0
OCw3ICsxMzQ4LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZFVSTChGcmFtZUxvYWRSZXF1ZXN0
JiYgZnJhbWVMb2FkUmVxdWVzdCwgY29uc3QgU3RyaW5nJiByZWYKICAgICBhdXRvIHRhcmdldEZy
YW1lID0gaXNGb3JtU3VibWlzc2lvbiA/IG51bGxwdHIgOiBtYWtlUmVmUHRyKGZpbmRGcmFtZUZv
ck5hdmlnYXRpb24oZWZmZWN0aXZlRnJhbWVOYW1lKSk7CiAgICAgaWYgKHRhcmdldEZyYW1lICYm
IHRhcmdldEZyYW1lICE9ICZtX2ZyYW1lKSB7CiAgICAgICAgIGZyYW1lTG9hZFJlcXVlc3Quc2V0
RnJhbWVOYW1lKCJfc2VsZiIpOwotICAgICAgICB0YXJnZXRGcmFtZS0+bG9hZGVyKCkubG9hZFVS
TChXVEZNb3ZlKGZyYW1lTG9hZFJlcXVlc3QpLCByZWZlcnJlciwgbmV3TG9hZFR5cGUsIGV2ZW50
LCBXVEZNb3ZlKGZvcm1TdGF0ZSksIFdURk1vdmUocHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpLCBj
b21wbGV0aW9uSGFuZGxlckNhbGxlci5yZWxlYXNlKCkpOworICAgICAgICB0YXJnZXRGcmFtZS0+
bG9hZGVyKCkubG9hZFVSTChXVEZNb3ZlKGZyYW1lTG9hZFJlcXVlc3QpLCByZWZlcnJlciwgbmV3
TG9hZFR5cGUsIGV2ZW50LCBXVEZNb3ZlKGZvcm1TdGF0ZSksIFdURk1vdmUoYWRDbGlja0F0dHJp
YnV0aW9uKSwgY29tcGxldGlvbkhhbmRsZXJDYWxsZXIucmVsZWFzZSgpKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIApAQCAtMTM2Nyw4ICsxMzY3LDggQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9h
ZFVSTChGcmFtZUxvYWRSZXF1ZXN0JiYgZnJhbWVMb2FkUmVxdWVzdCwgY29uc3QgU3RyaW5nJiBy
ZWYKICAgICBOYXZpZ2F0aW9uQWN0aW9uIGFjdGlvbiB7IGZyYW1lTG9hZFJlcXVlc3QucmVxdWVz
dGVyKCksIHJlcXVlc3QsIGZyYW1lTG9hZFJlcXVlc3QuaW5pdGlhdGVkQnlNYWluRnJhbWUoKSwg
bmV3TG9hZFR5cGUsIGlzRm9ybVN1Ym1pc3Npb24sIGV2ZW50LCBmcmFtZUxvYWRSZXF1ZXN0LnNo
b3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3koKSwgZnJhbWVMb2FkUmVxdWVzdC5kb3dubG9hZEF0
dHJpYnV0ZSgpIH07CiAgICAgYWN0aW9uLnNldExvY2tIaXN0b3J5KGZyYW1lTG9hZFJlcXVlc3Qu
bG9ja0hpc3RvcnkoKSk7CiAgICAgYWN0aW9uLnNldExvY2tCYWNrRm9yd2FyZExpc3QoZnJhbWVM
b2FkUmVxdWVzdC5sb2NrQmFja0ZvcndhcmRMaXN0KCkpOwotICAgIGlmIChwcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCAmJiBtX2ZyYW1lLmlzTWFpbkZyYW1lKCkpCi0gICAgICAgIGFjdGlvbi5zZXRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudChXVEZNb3ZlKCpwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCkp
OworICAgIGlmIChhZENsaWNrQXR0cmlidXRpb24gJiYgbV9mcmFtZS5pc01haW5GcmFtZSgpKQor
ICAgICAgICBhY3Rpb24uc2V0QWRDbGlja0F0dHJpYnV0aW9uKFdURk1vdmUoKmFkQ2xpY2tBdHRy
aWJ1dGlvbikpOwogCiAgICAgTmV3RnJhbWVPcGVuZXJQb2xpY3kgb3BlbmVyUG9saWN5ID0gZnJh
bWVMb2FkUmVxdWVzdC5uZXdGcmFtZU9wZW5lclBvbGljeSgpOwogICAgIEFsbG93TmF2aWdhdGlv
blRvSW52YWxpZFVSTCBhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwgPSBmcmFtZUxvYWRSZXF1
ZXN0LmFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuaAppbmRleCBjMmY2MzlhY2VmOGVjMzQzNjk1NTVhOTMxN2VkNjkyODI0MmU3YmI2Li44
NGIwODVlNjgwMDM2NTIxYWJlMjhkODY5YWRlN2FlYTkxMTAxZGMyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXIuaApAQCAtMzEsNiArMzEsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lu
Y2x1ZGUgIkFkQ2xpY2tBdHRyaWJ1dGlvbi5oIgogI2luY2x1ZGUgIkNhY2hlUG9saWN5LmgiCiAj
aW5jbHVkZSAiRnJhbWVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJTdGF0ZU1h
Y2hpbmUuaCIKQEAgLTM4LDcgKzM5LDYgQEAKICNpbmNsdWRlICJMYXlvdXRNaWxlc3RvbmUuaCIK
ICNpbmNsdWRlICJNaXhlZENvbnRlbnRDaGVja2VyLmgiCiAjaW5jbHVkZSAiUGFnZUlkZW50aWZp
ZXIuaCIKLSNpbmNsdWRlICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oIgogI2luY2x1ZGUgIlJl
ZmVycmVyUG9saWN5LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkTm90aWZpZXIuaCIKICNpbmNs
dWRlICJSZXNvdXJjZUxvYWRlck9wdGlvbnMuaCIKQEAgLTEyNCw3ICsxMjQsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzZXR1cEZvclJlcGxhY2UoKTsKIAogICAgIC8vIEZJWE1FOiBUaGVzZSBhcmUg
YWxsIGZ1bmN0aW9ucyB3aGljaCBzdGFydCBsb2Fkcy4gV2UgaGF2ZSB0b28gbWFueS4KLSAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIGxvYWRGcmFtZVJlcXVlc3QoRnJhbWVMb2FkUmVxdWVzdCYmLCBF
dmVudCosIFJlZlB0cjxGb3JtU3RhdGU+JiYsIE9wdGlvbmFsPFByaXZhdGVDbGlja01lYXN1cmVt
ZW50PiYmID0gV1RGOjpudWxsb3B0KTsgLy8gQ2FsbGVkIGJ5IHN1Ym1pdEZvcm0sIGNhbGxzIGxv
YWRQb3N0UmVxdWVzdCBhbmQgbG9hZFVSTC4KKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGxvYWRG
cmFtZVJlcXVlc3QoRnJhbWVMb2FkUmVxdWVzdCYmLCBFdmVudCosIFJlZlB0cjxGb3JtU3RhdGU+
JiYsIE9wdGlvbmFsPEFkQ2xpY2tBdHRyaWJ1dGlvbj4mJiA9IFdURjo6bnVsbG9wdCk7IC8vIENh
bGxlZCBieSBzdWJtaXRGb3JtLCBjYWxscyBsb2FkUG9zdFJlcXVlc3QgYW5kIGxvYWRVUkwuCiAK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGxvYWQoRnJhbWVMb2FkUmVxdWVzdCYmKTsKIApAQCAt
MTMzLDggKzEzMyw4IEBAIHB1YmxpYzoKICNlbmRpZgogICAgIHVuc2lnbmVkIGxvbmcgbG9hZFJl
c291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBDbGllbnRDcmVkZW50
aWFsUG9saWN5LCBjb25zdCBGZXRjaE9wdGlvbnMmLCBjb25zdCBIVFRQSGVhZGVyTWFwJiwgUmVz
b3VyY2VFcnJvciYsIFJlc291cmNlUmVzcG9uc2UmLCBSZWZQdHI8U2hhcmVkQnVmZmVyPiYgZGF0
YSk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNoYW5nZUxvY2F0aW9uKGNvbnN0IFVSTCYs
IGNvbnN0IFN0cmluZyYgdGFyZ2V0LCBFdmVudCosIExvY2tIaXN0b3J5LCBMb2NrQmFja0Zvcndh
cmRMaXN0LCBjb25zdCBSZWZlcnJlclBvbGljeSYsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xp
Y3ksIE9wdGlvbmFsPE5ld0ZyYW1lT3BlbmVyUG9saWN5PiA9IFdURjo6bnVsbG9wdCwgY29uc3Qg
QXRvbVN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUgPSBudWxsQXRvbSgpLCBjb25zdCBTeXN0ZW1Q
cmV2aWV3SW5mbyYgPSB7IH0sIE9wdGlvbmFsPFByaXZhdGVDbGlja01lYXN1cmVtZW50PiYmID0g
V1RGOjpudWxsb3B0KTsKLSAgICB2b2lkIGNoYW5nZUxvY2F0aW9uKEZyYW1lTG9hZFJlcXVlc3Qm
JiwgRXZlbnQqID0gbnVsbHB0ciwgT3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+JiYg
PSBXVEY6Om51bGxvcHQpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2hhbmdlTG9jYXRpb24o
Y29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiB0YXJnZXQsIEV2ZW50KiwgTG9ja0hpc3RvcnksIExv
Y2tCYWNrRm9yd2FyZExpc3QsIGNvbnN0IFJlZmVycmVyUG9saWN5JiwgU2hvdWxkT3BlbkV4dGVy
bmFsVVJMc1BvbGljeSwgT3B0aW9uYWw8TmV3RnJhbWVPcGVuZXJQb2xpY3k+ID0gV1RGOjpudWxs
b3B0LCBjb25zdCBBdG9tU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSA9IG51bGxBdG9tKCksIGNv
bnN0IFN5c3RlbVByZXZpZXdJbmZvJiA9IHsgfSwgT3B0aW9uYWw8QWRDbGlja0F0dHJpYnV0aW9u
PiYmID0gV1RGOjpudWxsb3B0KTsKKyAgICB2b2lkIGNoYW5nZUxvY2F0aW9uKEZyYW1lTG9hZFJl
cXVlc3QmJiwgRXZlbnQqID0gbnVsbHB0ciwgT3B0aW9uYWw8QWRDbGlja0F0dHJpYnV0aW9uPiYm
ID0gV1RGOjpudWxsb3B0KTsKICAgICB2b2lkIHN1Ym1pdEZvcm0oUmVmPEZvcm1TdWJtaXNzaW9u
PiYmKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVsb2FkKE9wdGlvblNldDxSZWxvYWRP
cHRpb24+ID0geyB9KTsKQEAgLTM4Nyw3ICszODcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgbG9h
ZFdpdGhOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIE5hdmlnYXRpb25B
Y3Rpb24mJiwgRnJhbWVMb2FkVHlwZSwgUmVmUHRyPEZvcm1TdGF0ZT4mJiwgQWxsb3dOYXZpZ2F0
aW9uVG9JbnZhbGlkVVJMLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgPSBbXSB7IH0pOyAv
LyBDYWxscyBsb2FkV2l0aERvY3VtZW50TG9hZGVyCiAKICAgICB2b2lkIGxvYWRQb3N0UmVxdWVz
dChGcmFtZUxvYWRSZXF1ZXN0JiYsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIEZyYW1lTG9hZFR5
cGUsIEV2ZW50KiwgUmVmUHRyPEZvcm1TdGF0ZT4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKTsKLSAgICB2b2lkIGxvYWRVUkwoRnJhbWVMb2FkUmVxdWVzdCYmLCBjb25zdCBTdHJpbmcm
IHJlZmVycmVyLCBGcmFtZUxvYWRUeXBlLCBFdmVudCosIFJlZlB0cjxGb3JtU3RhdGU+JiYsIE9w
dGlvbmFsPFByaXZhdGVDbGlja01lYXN1cmVtZW50PiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOworICAgIHZvaWQgbG9hZFVSTChGcmFtZUxvYWRSZXF1ZXN0JiYsIGNvbnN0IFN0cmlu
ZyYgcmVmZXJyZXIsIEZyYW1lTG9hZFR5cGUsIEV2ZW50KiwgUmVmUHRyPEZvcm1TdGF0ZT4mJiwg
T3B0aW9uYWw8QWRDbGlja0F0dHJpYnV0aW9uPiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYpOwogCiAgICAgYm9vbCBzaG91bGRSZWxvYWQoY29uc3QgVVJMJiBjdXJyZW50VVJMLCBjb25z
dCBVUkwmIGRlc3RpbmF0aW9uVVJMKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL05hdmlnYXRpb25BY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9u
QWN0aW9uLmgKaW5kZXggZGMyMDAxOTAwZjU1ZDYyODk4Yzg3NDkzNWQ1ZGE3ZmQ4MjlmNTQwOS4u
Njk5NGRmMzgwNzBiNzJmNmU2MmNkZGQ2NjM3ZjQwM2E1ZmI1NDQ2NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5oCkBAIC0yOCwxMSArMjgsMTEgQEAKIAogI3ByYWdt
YSBvbmNlCiAKKyNpbmNsdWRlICJBZENsaWNrQXR0cmlidXRpb24uaCIKICNpbmNsdWRlICJCYWNr
Rm9yd2FyZEl0ZW1JZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJUeXBlcy5oIgog
I2luY2x1ZGUgIkdsb2JhbEZyYW1lSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIkxheW91dFBvaW50
LmgiCi0jaW5jbHVkZSAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaCIKICNpbmNsdWRlICJSZXNv
dXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlVz
ZXJHZXN0dXJlSW5kaWNhdG9yLmgiCkBAIC0xMzcsOCArMTM3LDggQEAgcHVibGljOgogICAgIExv
Y2tCYWNrRm9yd2FyZExpc3QgbG9ja0JhY2tGb3J3YXJkTGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1f
bG9ja0JhY2tGb3J3YXJkTGlzdDsgfQogICAgIHZvaWQgc2V0TG9ja0JhY2tGb3J3YXJkTGlzdChM
b2NrQmFja0ZvcndhcmRMaXN0IGxvY2tCYWNrRm9yd2FyZExpc3QpIHsgbV9sb2NrQmFja0Zvcndh
cmRMaXN0ID0gbG9ja0JhY2tGb3J3YXJkTGlzdDsgfQogCi0gICAgY29uc3QgT3B0aW9uYWw8UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ+JiBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpIGNvbnN0IHsg
cmV0dXJuIG1fcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ7IH07Ci0gICAgdm9pZCBzZXRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmIHByaXZhdGVDbGlja01l
YXN1cmVtZW50KSB7IG1fcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgPSBwcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDsgfTsKKyAgICBjb25zdCBPcHRpb25hbDxBZENsaWNrQXR0cmlidXRpb24+JiBhZENs
aWNrQXR0cmlidXRpb24oKSBjb25zdCB7IHJldHVybiBtX2FkQ2xpY2tBdHRyaWJ1dGlvbjsgfTsK
KyAgICB2b2lkIHNldEFkQ2xpY2tBdHRyaWJ1dGlvbihBZENsaWNrQXR0cmlidXRpb24mJiBhZENs
aWNrQXR0cmlidXRpb24pIHsgbV9hZENsaWNrQXR0cmlidXRpb24gPSBhZENsaWNrQXR0cmlidXRp
b247IH07CiAKIHByaXZhdGU6CiAgICAgLy8gRG8gbm90IGFkZCBhIHN0cm9uZyByZWZlcmVuY2Ug
dG8gdGhlIG9yaWdpbmF0aW5nIGRvY3VtZW50IG9yIGEgc3Vib2JqZWN0IHRoYXQgaG9sZHMgdGhl
CkBAIC0xNTksNyArMTU5LDcgQEAgcHJpdmF0ZToKICAgICBPcHRpb25hbDxCYWNrRm9yd2FyZEl0
ZW1JZGVudGlmaWVyPiBtX3NvdXJjZUJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXI7CiAgICAgTG9j
a0hpc3RvcnkgbV9sb2NrSGlzdG9yeSB7IExvY2tIaXN0b3J5OjpObyB9OwogICAgIExvY2tCYWNr
Rm9yd2FyZExpc3QgbV9sb2NrQmFja0ZvcndhcmRMaXN0IHsgTG9ja0JhY2tGb3J3YXJkTGlzdDo6
Tm8gfTsKLSAgICBPcHRpb25hbDxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4gbV9wcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDsKKyAgICBPcHRpb25hbDxBZENsaWNrQXR0cmlidXRpb24+IG1fYWRDbGlj
a0F0dHJpYnV0aW9uOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGE2N2U2Y2Q4Zjg3NzAxZTg3MDJjMjVhODc2OTQ0NTI2OTlhNGM3
MWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcAorKysgL2Rldi9udWxs
CkBAIC0xLDIyOSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2lu
Y2x1ZGUgIlByaXZhdGVDbGlja01lYXN1cmVtZW50LmgiCi0KLSNpbmNsdWRlICJMb2dnaW5nLmgi
Ci0jaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgotI2luY2x1ZGUgPHd0Zi9FeHBl
Y3RlZC5oPgotI2luY2x1ZGUgPHd0Zi9SYW5kb21OdW1iZXIuaD4KLSNpbmNsdWRlIDx3dGYvVVJM
Lmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgotI2luY2x1ZGUgPHd0Zi90
ZXh0L1N0cmluZ1ZpZXcuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1zdGF0aWMgY29uc3Qg
Y2hhciBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFBhdGhQcmVmaXhbXSA9ICIvLndlbGwta25vd24v
cHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8iOwotY29uc3Qgc2l6ZV90IHByaXZhdGVDbGlja01l
YXN1cmVtZW50Q29udmVyc2lvbkRhdGFQYXRoU2VnbWVudFNpemUgPSAyOwotY29uc3Qgc2l6ZV90
IHByaXZhdGVDbGlja01lYXN1cmVtZW50UHJpb3JpdHlQYXRoU2VnbWVudFNpemUgPSAyOwotY29u
c3QgU2Vjb25kcyBtYXhBZ2UgeyAyNF9oICogNyB9OwotCi1ib29sIFByaXZhdGVDbGlja01lYXN1
cmVtZW50Ojppc1ZhbGlkKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9jb252ZXJzaW9uCi0gICAg
ICAgICYmIG1fY29udmVyc2lvbi52YWx1ZSgpLmlzVmFsaWQoKQotICAgICAgICAmJiBtX2NhbXBh
aWduLmlzVmFsaWQoKQotICAgICAgICAmJiAhbV9zb3VyY2UucmVnaXN0cmFibGVEb21haW4uaXNF
bXB0eSgpCi0gICAgICAgICYmICFtX2Rlc3RpbmF0aW9uLnJlZ2lzdHJhYmxlRG9tYWluLmlzRW1w
dHkoKQotICAgICAgICAmJiBtX2VhcmxpZXN0VGltZVRvU2VuZDsKLX0KLQotRXhwZWN0ZWQ8UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNvbnZlcnNpb24sIFN0cmluZz4gUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29uc3QgVVJMJiByZWRpcmVjdFVSTCkK
LXsKLSAgICBpZiAoIXJlZGlyZWN0VVJMLnByb3RvY29sSXMoImh0dHBzIikgfHwgcmVkaXJlY3RV
UkwuaGFzQ3JlZGVudGlhbHMoKSB8fCByZWRpcmVjdFVSTC5oYXNRdWVyeSgpIHx8IHJlZGlyZWN0
VVJMLmhhc0ZyYWdtZW50SWRlbnRpZmllcigpKSB7Ci0gICAgICAgIGlmIChVTkxJS0VMWShkZWJ1
Z01vZGVFbmFibGVkKCkpKSB7Ci0gICAgICAgICAgICBSRUxFQVNFX0xPR19JTkZPKFByaXZhdGVD
bGlja01lYXN1cmVtZW50LCAiQ29udmVyc2lvbiB3YXMgbm90IGFjY2VwdGVkIGJlY2F1c2UgdGhl
IFVSTCdzIHByb3RvY29sIGlzIG5vdCBIVFRQUyBvciB0aGUgVVJMIGNvbnRhaW5zIG9uZSBvciBt
b3JlIG9mIHVzZXJuYW1lLCBwYXNzd29yZCwgcXVlcnkgc3RyaW5nLCBhbmQgZnJhZ21lbnQuIik7
Ci0gICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoIltQcml2YXRlIENsaWNrIE1lYXN1
cmVtZW50XSBDb252ZXJzaW9uIHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVzZSB0aGUgVVJMJ3MgcHJv
dG9jb2wgaXMgbm90IEhUVFBTIG9yIHRoZSBVUkwgY29udGFpbnMgb25lIG9yIG1vcmUgb2YgdXNl
cm5hbWUsIHBhc3N3b3JkLCBxdWVyeSBzdHJpbmcsIGFuZCBmcmFnbWVudC4iX3MpOwotICAgICAg
ICB9Ci0gICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChudWxsU3RyaW5nKCkpOwotICAgIH0K
LQotICAgIGF1dG8gcGF0aCA9IFN0cmluZ1ZpZXcocmVkaXJlY3RVUkwuc3RyaW5nKCkpLnN1YnN0
cmluZyhyZWRpcmVjdFVSTC5wYXRoU3RhcnQoKSwgcmVkaXJlY3RVUkwucGF0aEVuZCgpIC0gcmVk
aXJlY3RVUkwucGF0aFN0YXJ0KCkpOwotICAgIGlmIChwYXRoLmlzRW1wdHkoKSB8fCAhcGF0aC5z
dGFydHNXaXRoKHByaXZhdGVDbGlja01lYXN1cmVtZW50UGF0aFByZWZpeCkpIHsKLSAgICAgICAg
aWYgKFVOTElLRUxZKGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsKLSAgICAgICAgICAgIFJFTEVBU0Vf
TE9HX0lORk8oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsICJDb252ZXJzaW9uIHdhcyBub3QgYWNj
ZXB0ZWQgYmVjYXVzZSB0aGUgVVJMIHBhdGggZGlkIG5vdCBzdGFydCB3aXRoICUiIFBVQkxJQ19M
T0dfU1RSSU5HICIuIiwgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRQYXRoUHJlZml4KTsKLSAgICAg
ICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChtYWtlU3RyaW5nKCJbUHJpdmF0ZSBDbGljayBN
ZWFzdXJlbWVudF0gQ29udmVyc2lvbiB3YXMgbm90IGFjY2VwdGVkIGJlY2F1c2UgdGhlIFVSTCBw
YXRoIGRpZCBub3Qgc3RhcnQgd2l0aCAiX3MsIHByaXZhdGVDbGlja01lYXN1cmVtZW50UGF0aFBy
ZWZpeCwgIi4iX3MpKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQo
bnVsbFN0cmluZygpKTsKLSAgICB9Ci0KLSAgICBhdXRvIHByZWZpeExlbmd0aCA9IHNpemVvZihw
cml2YXRlQ2xpY2tNZWFzdXJlbWVudFBhdGhQcmVmaXgpIC0gMTsKLSAgICBpZiAocGF0aC5sZW5n
dGgoKSA9PSBwcmVmaXhMZW5ndGggKyBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25E
YXRhUGF0aFNlZ21lbnRTaXplKSB7Ci0gICAgICAgIGF1dG8gY29udmVyc2lvbkRhdGFVSW50NjQg
PSBwYXRoLnN1YnN0cmluZyhwcmVmaXhMZW5ndGgsIHByaXZhdGVDbGlja01lYXN1cmVtZW50Q29u
dmVyc2lvbkRhdGFQYXRoU2VnbWVudFNpemUpLnRvVUludDY0U3RyaWN0KCk7Ci0gICAgICAgIGlm
ICghY29udmVyc2lvbkRhdGFVSW50NjQgfHwgKmNvbnZlcnNpb25EYXRhVUludDY0ID4gTWF4RW50
cm9weSkgewotICAgICAgICAgICAgaWYgKFVOTElLRUxZKGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsK
LSAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JTkZPKFByaXZhdGVDbGlja01lYXN1cmVtZW50
LCAiQ29udmVyc2lvbiB3YXMgbm90IGFjY2VwdGVkIGJlY2F1c2UgdGhlIGNvbnZlcnNpb24gZGF0
YSBjb3VsZCBub3QgYmUgcGFyc2VkIG9yIHdhcyBoaWdoZXIgdGhhbiB0aGUgYWxsb3dlZCBtYXhp
bXVtIG9mICV7cHVibGljfXUuIiwgTWF4RW50cm9weSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJu
IG1ha2VVbmV4cGVjdGVkKG1ha2VTdHJpbmcoIltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBD
b252ZXJzaW9uIHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVzZSB0aGUgY29udmVyc2lvbiBkYXRhIGNv
dWxkIG5vdCBiZSBwYXJzZWQgb3Igd2FzIGhpZ2hlciB0aGFuIHRoZSBhbGxvd2VkIG1heGltdW0g
b2YgIl9zLCBNYXhFbnRyb3B5LCAiLiJfcykpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAg
cmV0dXJuIG1ha2VVbmV4cGVjdGVkKG51bGxTdHJpbmcoKSk7Ci0gICAgICAgIH0KLQotICAgICAg
ICByZXR1cm4gQ29udmVyc2lvbiB7IHN0YXRpY19jYXN0PHVpbnQzMl90PigqY29udmVyc2lvbkRh
dGFVSW50NjQpLCBQcmlvcml0eSB7IDAgfSB9OwotICAgIH0KLSAgICAKLSAgICBpZiAocGF0aC5s
ZW5ndGgoKSA9PSBwcmVmaXhMZW5ndGggKyBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNp
b25EYXRhUGF0aFNlZ21lbnRTaXplICsgMSArIHByaXZhdGVDbGlja01lYXN1cmVtZW50UHJpb3Jp
dHlQYXRoU2VnbWVudFNpemUpIHsKLSAgICAgICAgYXV0byBjb252ZXJzaW9uRGF0YVVJbnQ2NCA9
IHBhdGguc3Vic3RyaW5nKHByZWZpeExlbmd0aCwgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252
ZXJzaW9uRGF0YVBhdGhTZWdtZW50U2l6ZSkudG9VSW50NjRTdHJpY3QoKTsKLSAgICAgICAgaWYg
KCFjb252ZXJzaW9uRGF0YVVJbnQ2NCB8fCAqY29udmVyc2lvbkRhdGFVSW50NjQgPiBNYXhFbnRy
b3B5KSB7Ci0gICAgICAgICAgICBpZiAoVU5MSUtFTFkoZGVidWdNb2RlRW5hYmxlZCgpKSkgewot
ICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lORk8oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQs
ICJDb252ZXJzaW9uIHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVzZSB0aGUgY29udmVyc2lvbiBkYXRh
IGNvdWxkIG5vdCBiZSBwYXJzZWQgb3Igd2FzIGhpZ2hlciB0aGFuIHRoZSBhbGxvd2VkIG1heGlt
dW0gb2YgJXtwdWJsaWN9dS4iLCBNYXhFbnRyb3B5KTsKLSAgICAgICAgICAgICAgICByZXR1cm4g
bWFrZVVuZXhwZWN0ZWQobWFrZVN0cmluZygiW1ByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIENv
bnZlcnNpb24gd2FzIG5vdCBhY2NlcHRlZCBiZWNhdXNlIHRoZSBjb252ZXJzaW9uIGRhdGEgY291
bGQgbm90IGJlIHBhcnNlZCBvciB3YXMgaGlnaGVyIHRoYW4gdGhlIGFsbG93ZWQgbWF4aW11bSBv
ZiAiX3MsIE1heEVudHJvcHksICIuIl9zKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBy
ZXR1cm4gbWFrZVVuZXhwZWN0ZWQobnVsbFN0cmluZygpKTsKLSAgICAgICAgfQotCi0gICAgICAg
IGF1dG8gY29udmVyc2lvblByaW9yaXR5VUludDY0ID0gcGF0aC5zdWJzdHJpbmcocHJlZml4TGVu
Z3RoICsgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uRGF0YVBhdGhTZWdtZW50U2l6
ZSArIDEsIHByaXZhdGVDbGlja01lYXN1cmVtZW50UHJpb3JpdHlQYXRoU2VnbWVudFNpemUpLnRv
VUludDY0U3RyaWN0KCk7Ci0gICAgICAgIGlmICghY29udmVyc2lvblByaW9yaXR5VUludDY0IHx8
ICpjb252ZXJzaW9uUHJpb3JpdHlVSW50NjQgPiBNYXhFbnRyb3B5KSB7Ci0gICAgICAgICAgICBp
ZiAoVU5MSUtFTFkoZGVidWdNb2RlRW5hYmxlZCgpKSkgewotICAgICAgICAgICAgICAgIFJFTEVB
U0VfTE9HX0lORk8oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsICJDb252ZXJzaW9uIHdhcyBub3Qg
YWNjZXB0ZWQgYmVjYXVzZSB0aGUgcHJpb3JpdHkgY291bGQgbm90IGJlIHBhcnNlZCBvciB3YXMg
aGlnaGVyIHRoYW4gdGhlIGFsbG93ZWQgbWF4aW11bSBvZiAle3B1YmxpY311LiIsIE1heEVudHJv
cHkpOwotICAgICAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChtYWtlU3RyaW5nKCJb
UHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudF0gQ29udmVyc2lvbiB3YXMgbm90IGFjY2VwdGVkIGJl
Y2F1c2UgdGhlIHByaW9yaXR5IGNvdWxkIG5vdCBiZSBwYXJzZWQgb3Igd2FzIGhpZ2hlciB0aGFu
IHRoZSBhbGxvd2VkIG1heGltdW0gb2YgIl9zLCBNYXhFbnRyb3B5LCAiLiJfcykpOwotICAgICAg
ICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKG51bGxTdHJpbmcoKSk7
Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gQ29udmVyc2lvbiB7IHN0YXRpY19jYXN0PHVp
bnQzMl90PigqY29udmVyc2lvbkRhdGFVSW50NjQpLCBQcmlvcml0eSB7IHN0YXRpY19jYXN0PHVp
bnQzMl90PigqY29udmVyc2lvblByaW9yaXR5VUludDY0KSB9IH07Ci0gICAgfQotCi0gICAgaWYg
KFVOTElLRUxZKGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfSU5G
TyhQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgIkNvbnZlcnNpb24gd2FzIG5vdCBhY2NlcHRlZCBi
ZWNhdXNlIHRoZSBVUkwgcGF0aCBjb250YWluZWQgdW5yZWNvZ25pemVkIHBhcnRzLiIpOwotICAg
ICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoIltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBD
b252ZXJzaW9uIHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVzZSB0aGUgVVJMIHBhdGggY29udGFpbmVk
IHVucmVjb2duaXplZCBwYXJ0cy4iX3MpOwotICAgIH0KLSAgICByZXR1cm4gbWFrZVVuZXhwZWN0
ZWQobnVsbFN0cmluZygpKTsKLX0KLQotT3B0aW9uYWw8U2Vjb25kcz4gUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OmNvbnZlcnRBbmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQoQ29udmVyc2lvbiYmIGNv
bnZlcnNpb24pCi17Ci0gICAgaWYgKCFjb252ZXJzaW9uLmlzVmFsaWQoKSB8fCAobV9jb252ZXJz
aW9uICYmIG1fY29udmVyc2lvbi0+cHJpb3JpdHkgPj0gY29udmVyc2lvbi5wcmlvcml0eSkpCi0g
ICAgICAgIHJldHVybiB7IH07Ci0KLSAgICBtX2NvbnZlcnNpb24gPSBXVEZNb3ZlKGNvbnZlcnNp
b24pOwotICAgIC8vIDI0LTQ4IGhvdXIgZGVsYXkgYmVmb3JlIHNlbmRpbmcuIFRoaXMgaGVscHMg
cHJpdmFjeSBzaW5jZSB0aGUgY29udmVyc2lvbiBhbmQgdGhlIGF0dHJpYnV0aW9uCi0gICAgLy8g
cmVxdWVzdHMgYXJlIGRldGFjaGVkIGFuZCB0aGUgdGltZSBvZiB0aGUgYXR0cmlidXRpb24gZG9l
cyBub3QgcmV2ZWFsIHRoZSB0aW1lIG9mIHRoZSBjb252ZXJzaW9uLgotICAgIGF1dG8gc2Vjb25k
cyA9IDI0X2ggKyBTZWNvbmRzKHJhbmRvbU51bWJlcigpICogKDI0X2gpLnZhbHVlKCkpOwotICAg
IG1fZWFybGllc3RUaW1lVG9TZW5kID0gV2FsbFRpbWU6Om5vdygpICsgc2Vjb25kczsKLSAgICBy
ZXR1cm4gc2Vjb25kczsKLX0KLQotdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6bWFya0Fz
RXhwaXJlZCgpCi17Ci0gICAgbV90aW1lT2ZBZENsaWNrID0geyB9OwotfQotCi1ib29sIFByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpoYXNFeHBpcmVkKCkgY29uc3QKLXsKLSAgICByZXR1cm4gV2Fs
bFRpbWU6Om5vdygpID4gbV90aW1lT2ZBZENsaWNrICsgbWF4QWdlOwotfQotCi1ib29sIFByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpoYXNIaWdoZXJQcmlvcml0eVRoYW4oY29uc3QgUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQmIG90aGVyKSBjb25zdAotewotICAgIGlmICghb3RoZXIubV9jb252ZXJz
aW9uKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAKLSAgICBpZiAoIW1fY29udmVyc2lvbikK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgcmV0dXJuIG1fY29udmVyc2lvbi0+cHJpb3Jp
dHkgPiBvdGhlci5tX2NvbnZlcnNpb24tPnByaW9yaXR5OwotfQotCi1VUkwgUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ6OnJlcG9ydFVSTCgpIGNvbnN0Ci17Ci0gICAgaWYgKCFpc1ZhbGlkKCkpCi0g
ICAgICAgIHJldHVybiBVUkwoKTsKLQotICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICBi
dWlsZGVyLmFwcGVuZExpdGVyYWwoImh0dHBzOi8vIik7Ci0gICAgYnVpbGRlci5hcHBlbmQobV9z
b3VyY2UucmVnaXN0cmFibGVEb21haW4uc3RyaW5nKCkpOwotICAgIGJ1aWxkZXIuYXBwZW5kTGl0
ZXJhbChwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFBhdGhQcmVmaXgpOwotCi0gICAgVVJMIHVybCB7
IFVSTCgpLCBidWlsZGVyLnRvU3RyaW5nKCkgfTsKLSAgICBpZiAodXJsLmlzVmFsaWQoKSkKLSAg
ICAgICAgcmV0dXJuIHVybDsKLQotICAgIHJldHVybiBVUkwoKTsKLX0KLQotUmVmPEpTT046Ok9i
amVjdD4gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ompzb24oKSBjb25zdAotewotICAgIGF1dG8g
cmVwb3J0RGV0YWlscyA9IEpTT046Ok9iamVjdDo6Y3JlYXRlKCk7Ci0gICAgaWYgKCFtX2NvbnZl
cnNpb24pCi0gICAgICAgIHJldHVybiByZXBvcnREZXRhaWxzOwotCi0gICAgcmVwb3J0RGV0YWls
cy0+c2V0U3RyaW5nKCJjb250ZW50LXR5cGUiX3MsICJjbGljayJfcyk7Ci0gICAgcmVwb3J0RGV0
YWlscy0+c2V0U3RyaW5nKCJjb250ZW50LXNpdGUiX3MsIG1fc291cmNlLnJlZ2lzdHJhYmxlRG9t
YWluLnN0cmluZygpKTsKLSAgICByZXBvcnREZXRhaWxzLT5zZXRJbnRlZ2VyKCJjb250ZW50LWlk
Il9zLCBtX2NhbXBhaWduLmlkKTsKLSAgICByZXBvcnREZXRhaWxzLT5zZXRTdHJpbmcoImNvbnZl
cnNpb24tc2l0ZSJfcywgbV9kZXN0aW5hdGlvbi5yZWdpc3RyYWJsZURvbWFpbi5zdHJpbmcoKSk7
Ci0gICAgcmVwb3J0RGV0YWlscy0+c2V0SW50ZWdlcigiY29udmVyc2lvbi1kYXRhIl9zLCBtX2Nv
bnZlcnNpb24tPmRhdGEpOwotICAgIHJlcG9ydERldGFpbHMtPnNldEludGVnZXIoInJlcG9ydC12
ZXJzaW9uIl9zLCAxKTsKLSAgICByZXR1cm4gcmVwb3J0RGV0YWlsczsKLX0KLQotdm9pZCBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6bWFya0NvbnZlcnNpb25Bc1NlbnQoKQotewotICAgIEFTU0VS
VChtX2NvbnZlcnNpb24pOwotICAgIGlmIChtX2NvbnZlcnNpb24pCi0gICAgICAgIG1fY29udmVy
c2lvbi0+d2FzU2VudCA9IENvbnZlcnNpb246Oldhc1NlbnQ6OlllczsKLX0KLQotYm9vbCBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6d2FzQ29udmVyc2lvblNlbnQoKSBjb25zdAotewotICAgIHJl
dHVybiBtX2NvbnZlcnNpb24gJiYgbV9jb252ZXJzaW9uLT53YXNTZW50ID09IENvbnZlcnNpb246
Oldhc1NlbnQ6OlllczsKLX0KLQotU3RyaW5nIFByaXZhdGVDbGlja01lYXN1cmVtZW50Ojp0b1N0
cmluZygpIGNvbnN0Ci17Ci0gICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgIGJ1aWxkZXIu
YXBwZW5kTGl0ZXJhbCgiU291cmNlOiAiKTsKLSAgICBidWlsZGVyLmFwcGVuZChtX3NvdXJjZS5y
ZWdpc3RyYWJsZURvbWFpbi5zdHJpbmcoKSk7Ci0gICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJc
bkRlc3RpbmF0aW9uOiAiKTsKLSAgICBidWlsZGVyLmFwcGVuZChtX2Rlc3RpbmF0aW9uLnJlZ2lz
dHJhYmxlRG9tYWluLnN0cmluZygpKTsKLSAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlxuQ2Ft
cGFpZ24gSUQ6ICIpOwotICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKG1fY2FtcGFpZ24uaWQpOwot
ICAgIGlmIChtX2NvbnZlcnNpb24pIHsKLSAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJc
bkNvbnZlcnNpb24gZGF0YTogIik7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKG1fY29u
dmVyc2lvbi52YWx1ZSgpLmRhdGEpOwotICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlxu
Q29udmVyc2lvbiBwcmlvcml0eTogIik7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKG1f
Y29udmVyc2lvbi52YWx1ZSgpLnByaW9yaXR5KTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRl
cmFsKCJcbkNvbnZlcnNpb24gZWFybGllc3QgdGltZSB0byBzZW5kOiAiKTsKLSAgICAgICAgaWYg
KCFtX2VhcmxpZXN0VGltZVRvU2VuZCkKLSAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJh
bCgiTm90IHNldCIpOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIGF1dG8gc2Vjb25kc1Vu
dGlsU2VuZCA9ICptX2VhcmxpZXN0VGltZVRvU2VuZCAtIFdhbGxUaW1lOjpub3coKTsKLSAgICAg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKChzZWNvbmRzVW50aWxTZW5kID49IDI0X2ggJiYgc2Vjb25k
c1VudGlsU2VuZCA8PSA0OF9oKSA/ICJXaXRoaW4gMjQtNDggaG91cnMiIDogIk91dHNpZGUgMjQt
NDggaG91cnMiKTsKLSAgICAgICAgfQotICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlxu
Q29udmVyc2lvbiByZXF1ZXN0IHNlbnQ6ICIpOwotICAgICAgICBidWlsZGVyLmFwcGVuZCgod2Fz
Q29udmVyc2lvblNlbnQoKSA/ICJ0cnVlIiA6ICJmYWxzZSIpKTsKLSAgICB9IGVsc2UKLSAgICAg
ICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcbk5vIGNvbnZlcnNpb24gZGF0YS4iKTsKLSAgICBi
dWlsZGVyLmFwcGVuZCgnXG4nKTsKLQotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7Ci19
Ci0KLWJvb2wgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmRlYnVnTW9kZUVuYWJsZWQoKQotewot
ICAgIHJldHVybiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnByaXZh
dGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlRW5hYmxlZCgpOwotfQotCi19CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBhNjAyZjdjYzY5YWRhZTg5M2E5NzJmZWYzNDUwOGEwZjUxNDNhNTIw
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oCisrKyAvZGV2L251bGwKQEAg
LTEsMzY4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIlJl
Z2lzdHJhYmxlRG9tYWluLmgiCi0jaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+Ci0j
aW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRlIDx3dGYvSlNPTlZhbHVlcy5oPgotI2lu
Y2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgotI2luY2x1ZGUgPHd0Zi9VUkwuaD4KLSNpbmNsdWRlIDx3
dGYvV2FsbFRpbWUuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+Ci0jaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3Mg
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgewotcHVibGljOgotICAgIHVzaW5nIENhbXBhaWduSWQg
PSB1aW50MzJfdDsKLSAgICB1c2luZyBDb252ZXJzaW9uRGF0YSA9IHVpbnQzMl90OwotICAgIHVz
aW5nIFByaW9yaXR5VmFsdWUgPSB1aW50MzJfdDsKLQotICAgIHN0YXRpYyBjb25zdGV4cHIgdWlu
dDMyX3QgTWF4RW50cm9weSA9IDYzOwotCi0gICAgc3RydWN0IENhbXBhaWduIHsKLSAgICAgICAg
Q2FtcGFpZ24oKSA9IGRlZmF1bHQ7Ci0gICAgICAgIGV4cGxpY2l0IENhbXBhaWduKENhbXBhaWdu
SWQgaWQpCi0gICAgICAgICAgICA6IGlkIHsgaWQgfQotICAgICAgICB7Ci0gICAgICAgIH0KLSAg
ICAgICAgCi0gICAgICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0Ci0gICAgICAgIHsKLSAgICAgICAg
ICAgIHJldHVybiBpZCA8PSBNYXhFbnRyb3B5OwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAg
ICBDYW1wYWlnbklkIGlkIHsgMCB9OwotICAgIH07Ci0KLSAgICBzdHJ1Y3QgU291cmNlIHsKLSAg
ICAgICAgU291cmNlKCkgPSBkZWZhdWx0OwotICAgICAgICBleHBsaWNpdCBTb3VyY2UoY29uc3Qg
VVJMJiB1cmwpCi0gICAgICAgICAgICA6IHJlZ2lzdHJhYmxlRG9tYWluIHsgdXJsIH0KLSAgICAg
ICAgewotICAgICAgICB9Ci0KLSAgICAgICAgZXhwbGljaXQgU291cmNlKGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluJiBkb21haW4pCi0gICAgICAgICAgICA6IHJlZ2lzdHJhYmxlRG9tYWluIHsgZG9t
YWluIH0KLSAgICAgICAgewotICAgICAgICB9Ci0KLSAgICAgICAgZXhwbGljaXQgU291cmNlKFdU
Rjo6SGFzaFRhYmxlRGVsZXRlZFZhbHVlVHlwZSkKLSAgICAgICAgICAgIDogcmVnaXN0cmFibGVE
b21haW4oV1RGOjpIYXNoVGFibGVEZWxldGVkVmFsdWUpCi0gICAgICAgIHsKLSAgICAgICAgfQot
Ci0gICAgICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBTb3VyY2UmIG90aGVyKSBjb25zdAotICAg
ICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gcmVnaXN0cmFibGVEb21haW4gPT0gb3RoZXIucmVn
aXN0cmFibGVEb21haW47Ci0gICAgICAgIH0KLQotICAgICAgICBib29sIG1hdGNoZXMoY29uc3Qg
VVJMJiB1cmwpIGNvbnN0Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiByZWdpc3RyYWJs
ZURvbWFpbi5tYXRjaGVzKHVybCk7Ci0gICAgICAgIH0KLQotICAgICAgICBib29sIGlzSGFzaFRh
YmxlRGVsZXRlZFZhbHVlKCkgY29uc3QKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIHJl
Z2lzdHJhYmxlRG9tYWluLmlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCk7Ci0gICAgICAgIH0KLQot
ICAgICAgICBzdGF0aWMgU291cmNlIGRlbGV0ZWRWYWx1ZSgpCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIHJldHVybiBTb3VyY2UgeyBXVEY6Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZSB9OwotICAgICAg
ICB9Ci0KLSAgICAgICAgc3RhdGljIHZvaWQgY29uc3RydWN0RGVsZXRlZFZhbHVlKFNvdXJjZSYg
c291cmNlKQotICAgICAgICB7Ci0gICAgICAgICAgICBuZXcgKCZzb3VyY2UpIFNvdXJjZTsKLSAg
ICAgICAgICAgIHNvdXJjZSA9IFNvdXJjZTo6ZGVsZXRlZFZhbHVlKCk7Ci0gICAgICAgIH0KLQot
ICAgICAgICB2b2lkIGRlbGV0ZVZhbHVlKCkKLSAgICAgICAgewotICAgICAgICAgICAgcmVnaXN0
cmFibGVEb21haW4gPSBSZWdpc3RyYWJsZURvbWFpbiB7IFdURjo6SGFzaFRhYmxlRGVsZXRlZFZh
bHVlIH07Ci0gICAgICAgIH0KLQotICAgICAgICBib29sIGlzRGVsZXRlZFZhbHVlKCkgY29uc3QK
LSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCk7
Ci0gICAgICAgIH0KLQotICAgICAgICBSZWdpc3RyYWJsZURvbWFpbiByZWdpc3RyYWJsZURvbWFp
bjsKLSAgICB9OwotCi0gICAgc3RydWN0IFNvdXJjZUhhc2ggewotICAgICAgICBzdGF0aWMgdW5z
aWduZWQgaGFzaChjb25zdCBTb3VyY2UmIHNvdXJjZSkKLSAgICAgICAgewotICAgICAgICAgICAg
cmV0dXJuIHNvdXJjZS5yZWdpc3RyYWJsZURvbWFpbi5oYXNoKCk7Ci0gICAgICAgIH0KLSAgICAg
ICAgCi0gICAgICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IFNvdXJjZSYgYSwgY29uc3QgU291
cmNlJiBiKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYSA9PSBiOwotICAgICAgICB9
Ci0KLSAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0
ZWQgPSBmYWxzZTsKLSAgICB9OwotCi0gICAgc3RydWN0IERlc3RpbmF0aW9uIHsKLSAgICAgICAg
RGVzdGluYXRpb24oKSA9IGRlZmF1bHQ7Ci0gICAgICAgIGV4cGxpY2l0IERlc3RpbmF0aW9uKGNv
bnN0IFVSTCYgdXJsKQotICAgICAgICAgICAgOiByZWdpc3RyYWJsZURvbWFpbiB7IFJlZ2lzdHJh
YmxlRG9tYWluIHsgdXJsIH0gfQotICAgICAgICB7Ci0gICAgICAgIH0KLQotICAgICAgICBleHBs
aWNpdCBEZXN0aW5hdGlvbihXVEY6Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZVR5cGUpCi0gICAgICAg
ICAgICA6IHJlZ2lzdHJhYmxlRG9tYWluIHsgV1RGOjpIYXNoVGFibGVEZWxldGVkVmFsdWUgfQot
ICAgICAgICB7Ci0gICAgICAgIH0KLQotICAgICAgICBleHBsaWNpdCBEZXN0aW5hdGlvbihSZWdp
c3RyYWJsZURvbWFpbiYmIGRvbWFpbikKLSAgICAgICAgICAgIDogcmVnaXN0cmFibGVEb21haW4g
eyBXVEZNb3ZlKGRvbWFpbikgfQotICAgICAgICB7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAg
ICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBEZXN0aW5hdGlvbiYgb3RoZXIpIGNvbnN0Ci0gICAg
ICAgIHsKLSAgICAgICAgICAgIHJldHVybiByZWdpc3RyYWJsZURvbWFpbiA9PSBvdGhlci5yZWdp
c3RyYWJsZURvbWFpbjsKLSAgICAgICAgfQotCi0gICAgICAgIGJvb2wgbWF0Y2hlcyhjb25zdCBV
UkwmIHVybCkgY29uc3QKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIHJlZ2lzdHJhYmxl
RG9tYWluID09IFJlZ2lzdHJhYmxlRG9tYWluIHsgdXJsIH07Ci0gICAgICAgIH0KLSAgICAgICAg
Ci0gICAgICAgIGJvb2wgaXNIYXNoVGFibGVEZWxldGVkVmFsdWUoKSBjb25zdAotICAgICAgICB7
Ci0gICAgICAgICAgICByZXR1cm4gcmVnaXN0cmFibGVEb21haW4uaXNIYXNoVGFibGVEZWxldGVk
VmFsdWUoKTsKLSAgICAgICAgfQotCi0gICAgICAgIHN0YXRpYyBEZXN0aW5hdGlvbiBkZWxldGVk
VmFsdWUoKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gRGVzdGluYXRpb24geyBXVEY6
Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZSB9OwotICAgICAgICB9Ci0KLSAgICAgICAgc3RhdGljIHZv
aWQgY29uc3RydWN0RGVsZXRlZFZhbHVlKERlc3RpbmF0aW9uJiBkZXN0aW5hdGlvbikKLSAgICAg
ICAgewotICAgICAgICAgICAgbmV3ICgmZGVzdGluYXRpb24pIERlc3RpbmF0aW9uOwotICAgICAg
ICAgICAgZGVzdGluYXRpb24gPSBEZXN0aW5hdGlvbjo6ZGVsZXRlZFZhbHVlKCk7Ci0gICAgICAg
IH0KLQotICAgICAgICB2b2lkIGRlbGV0ZVZhbHVlKCkKLSAgICAgICAgewotICAgICAgICAgICAg
cmVnaXN0cmFibGVEb21haW4gPSBSZWdpc3RyYWJsZURvbWFpbiB7IFdURjo6SGFzaFRhYmxlRGVs
ZXRlZFZhbHVlIH07Ci0gICAgICAgIH0KLQotICAgICAgICBib29sIGlzRGVsZXRlZFZhbHVlKCkg
Y29uc3QKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGlzSGFzaFRhYmxlRGVsZXRlZFZh
bHVlKCk7Ci0gICAgICAgIH0KLQotICAgICAgICBSZWdpc3RyYWJsZURvbWFpbiByZWdpc3RyYWJs
ZURvbWFpbjsKLSAgICB9OwotCi0gICAgc3RydWN0IERlc3RpbmF0aW9uSGFzaCB7Ci0gICAgICAg
IHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IERlc3RpbmF0aW9uJiBkZXN0aW5hdGlvbikKLSAg
ICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGRlc3RpbmF0aW9uLnJlZ2lzdHJhYmxlRG9tYWlu
Lmhhc2goKTsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgc3RhdGljIGJvb2wgZXF1YWwo
Y29uc3QgRGVzdGluYXRpb24mIGEsIGNvbnN0IERlc3RpbmF0aW9uJiBiKQotICAgICAgICB7Ci0g
ICAgICAgICAgICByZXR1cm4gYSA9PSBiOwotICAgICAgICB9Ci0KLSAgICAgICAgc3RhdGljIGNv
bnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSBmYWxzZTsKLSAgICB9Owot
Ci0gICAgc3RydWN0IFByaW9yaXR5IHsKLSAgICAgICAgZXhwbGljaXQgUHJpb3JpdHkoUHJpb3Jp
dHlWYWx1ZSB2YWx1ZSkKLSAgICAgICAgOiB2YWx1ZSB7IHZhbHVlIH0KLSAgICAgICAgewotICAg
ICAgICB9Ci0gICAgICAgIAotICAgICAgICBQcmlvcml0eVZhbHVlIHZhbHVlOwotICAgIH07Ci0g
ICAgCi0gICAgc3RydWN0IENvbnZlcnNpb24gewotICAgICAgICBlbnVtIGNsYXNzIFdhc1NlbnQg
OiBib29sIHsgTm8sIFllcyB9OwotICAgICAgICAKLSAgICAgICAgQ29udmVyc2lvbihDb252ZXJz
aW9uRGF0YSBkYXRhLCBQcmlvcml0eSBwcmlvcml0eSwgV2FzU2VudCB3YXNTZW50ID0gV2FzU2Vu
dDo6Tm8pCi0gICAgICAgICAgICA6IGRhdGEgeyBkYXRhIH0KLSAgICAgICAgICAgICwgcHJpb3Jp
dHkgeyBwcmlvcml0eS52YWx1ZSB9Ci0gICAgICAgICAgICAsIHdhc1NlbnQgeyB3YXNTZW50IH0K
LSAgICAgICAgewotICAgICAgICB9Ci0KLSAgICAgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QKLSAg
ICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGRhdGEgPD0gTWF4RW50cm9weSAmJiBwcmlvcml0
eSA8PSBNYXhFbnRyb3B5OwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBDb252ZXJzaW9u
RGF0YSBkYXRhOwotICAgICAgICBQcmlvcml0eVZhbHVlIHByaW9yaXR5OwotICAgICAgICBXYXNT
ZW50IHdhc1NlbnQgPSBXYXNTZW50OjpObzsKLQotICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNv
ZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7Ci0gICAgICAgIHRlbXBsYXRlPGNsYXNz
IERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxDb252ZXJzaW9uPiBkZWNvZGUoRGVjb2RlciYpOwot
ICAgIH07Ci0KLSAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpID0gZGVmYXVsdDsKLSAgICBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudChDYW1wYWlnbiBjYW1wYWlnbiwgY29uc3QgU291cmNlJiBz
b3VyY2UsIGNvbnN0IERlc3RpbmF0aW9uJiBkZXN0aW5hdGlvbikKLSAgICAgICAgOiBtX2NhbXBh
aWduIHsgY2FtcGFpZ24gfQotICAgICAgICAsIG1fc291cmNlIHsgc291cmNlIH0KLSAgICAgICAg
LCBtX2Rlc3RpbmF0aW9uIHsgZGVzdGluYXRpb24gfQotICAgICAgICAsIG1fdGltZU9mQWRDbGlj
ayB7IFdhbGxUaW1lOjpub3coKSB9Ci0gICAgewotICAgIH0KLQotICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBFeHBlY3RlZDxDb252ZXJzaW9uLCBTdHJpbmc+IHBhcnNlQ29udmVyc2lvblJlcXVl
c3QoY29uc3QgVVJMJiByZWRpcmVjdFVSTCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgT3B0aW9uYWw8
U2Vjb25kcz4gY29udmVydEFuZEdldEVhcmxpZXN0VGltZVRvU2VuZChDb252ZXJzaW9uJiYpOwot
ICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaGFzSGlnaGVyUHJpb3JpdHlUaGFuKGNvbnN0IFByaXZh
dGVDbGlja01lYXN1cmVtZW50JikgY29uc3Q7Ci0gICAgV0VCQ09SRV9FWFBPUlQgVVJMIHJlcG9y
dFVSTCgpIGNvbnN0OwotICAgIFdFQkNPUkVfRVhQT1JUIFJlZjxKU09OOjpPYmplY3Q+IGpzb24o
KSBjb25zdDsKLSAgICBjb25zdCBTb3VyY2UmIHNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1fc291
cmNlOyB9OwotICAgIGNvbnN0IERlc3RpbmF0aW9uJiBkZXN0aW5hdGlvbigpIGNvbnN0IHsgcmV0
dXJuIG1fZGVzdGluYXRpb247IH07Ci0gICAgT3B0aW9uYWw8V2FsbFRpbWU+IGVhcmxpZXN0VGlt
ZVRvU2VuZCgpIGNvbnN0IHsgcmV0dXJuIG1fZWFybGllc3RUaW1lVG9TZW5kOyB9OwotICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgbWFya0FzRXhwaXJlZCgpOwotICAgIFdFQkNPUkVfRVhQT1JUIGJv
b2wgaGFzRXhwaXJlZCgpIGNvbnN0OwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgbWFya0NvbnZl
cnNpb25Bc1NlbnQoKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBib29sIHdhc0NvbnZlcnNpb25TZW50
KCkgY29uc3Q7Ci0KLSAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZS5y
ZWdpc3RyYWJsZURvbWFpbi5pc0VtcHR5KCk7IH07Ci0KLSAgICBXRUJDT1JFX0VYUE9SVCBTdHJp
bmcgdG9TdHJpbmcoKSBjb25zdDsKLQotICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQg
ZW5jb2RlKEVuY29kZXImKSBjb25zdDsKLSAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0
aWMgT3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+IGRlY29kZShEZWNvZGVyJik7Ci0K
LXByaXZhdGU6Ci0gICAgYm9vbCBpc1ZhbGlkKCkgY29uc3Q7Ci0gICAgc3RhdGljIGJvb2wgZGVi
dWdNb2RlRW5hYmxlZCgpOwotCi0gICAgQ2FtcGFpZ24gbV9jYW1wYWlnbjsKLSAgICBTb3VyY2Ug
bV9zb3VyY2U7Ci0gICAgRGVzdGluYXRpb24gbV9kZXN0aW5hdGlvbjsKLSAgICBXYWxsVGltZSBt
X3RpbWVPZkFkQ2xpY2s7Ci0KLSAgICBPcHRpb25hbDxDb252ZXJzaW9uPiBtX2NvbnZlcnNpb247
Ci0gICAgT3B0aW9uYWw8V2FsbFRpbWU+IG1fZWFybGllc3RUaW1lVG9TZW5kOwotfTsKLQotdGVt
cGxhdGU8Y2xhc3MgRW5jb2Rlcj4KLXZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAotewotICAgIGVuY29kZXIgPDwgbV9jYW1wYWlnbi5p
ZCA8PCBtX3NvdXJjZS5yZWdpc3RyYWJsZURvbWFpbiA8PCBtX2Rlc3RpbmF0aW9uLnJlZ2lzdHJh
YmxlRG9tYWluIDw8IG1fdGltZU9mQWRDbGljayA8PCBtX2NvbnZlcnNpb24gPDwgbV9lYXJsaWVz
dFRpbWVUb1NlbmQ7Ci19Ci0KLXRlbXBsYXRlPGNsYXNzIERlY29kZXI+Ci1PcHRpb25hbDxQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudD4gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmRlY29kZShEZWNv
ZGVyJiBkZWNvZGVyKQotewotICAgIE9wdGlvbmFsPENhbXBhaWduSWQ+IGNhbXBhaWduSWQ7Ci0g
ICAgZGVjb2RlciA+PiBjYW1wYWlnbklkOwotICAgIGlmICghY2FtcGFpZ25JZCkKLSAgICAgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICAKLSAgICBPcHRpb25hbDxSZWdpc3RyYWJsZURvbWFp
bj4gc291cmNlUmVnaXN0cmFibGVEb21haW47Ci0gICAgZGVjb2RlciA+PiBzb3VyY2VSZWdpc3Ry
YWJsZURvbWFpbjsKLSAgICBpZiAoIXNvdXJjZVJlZ2lzdHJhYmxlRG9tYWluKQotICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OwotICAgIAotICAgIE9wdGlvbmFsPFJlZ2lzdHJhYmxlRG9tYWlu
PiBkZXN0aW5hdGlvblJlZ2lzdHJhYmxlRG9tYWluOwotICAgIGRlY29kZXIgPj4gZGVzdGluYXRp
b25SZWdpc3RyYWJsZURvbWFpbjsKLSAgICBpZiAoIWRlc3RpbmF0aW9uUmVnaXN0cmFibGVEb21h
aW4pCi0gICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAgCi0gICAgT3B0aW9uYWw8V2Fs
bFRpbWU+IHRpbWVPZkFkQ2xpY2s7Ci0gICAgZGVjb2RlciA+PiB0aW1lT2ZBZENsaWNrOwotICAg
IGlmICghdGltZU9mQWRDbGljaykKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICAK
LSAgICBPcHRpb25hbDxPcHRpb25hbDxDb252ZXJzaW9uPj4gY29udmVyc2lvbjsKLSAgICBkZWNv
ZGVyID4+IGNvbnZlcnNpb247Ci0gICAgaWYgKCFjb252ZXJzaW9uKQotICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OwotICAgIAotICAgIE9wdGlvbmFsPE9wdGlvbmFsPFdhbGxUaW1lPj4gZWFy
bGllc3RUaW1lVG9TZW5kOwotICAgIGRlY29kZXIgPj4gZWFybGllc3RUaW1lVG9TZW5kOwotICAg
IGlmICghZWFybGllc3RUaW1lVG9TZW5kKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owot
ICAgIAotICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50IGF0dHJpYnV0aW9uIHsgQ2FtcGFpZ24g
eyBXVEZNb3ZlKCpjYW1wYWlnbklkKSB9LCBTb3VyY2UgeyBXVEZNb3ZlKCpzb3VyY2VSZWdpc3Ry
YWJsZURvbWFpbikgfSwgRGVzdGluYXRpb24geyBXVEZNb3ZlKCpkZXN0aW5hdGlvblJlZ2lzdHJh
YmxlRG9tYWluKSB9IH07Ci0gICAgYXR0cmlidXRpb24ubV9jb252ZXJzaW9uID0gV1RGTW92ZSgq
Y29udmVyc2lvbik7Ci0gICAgYXR0cmlidXRpb24ubV9lYXJsaWVzdFRpbWVUb1NlbmQgPSBXVEZN
b3ZlKCplYXJsaWVzdFRpbWVUb1NlbmQpOwotICAgIAotICAgIHJldHVybiBhdHRyaWJ1dGlvbjsK
LX0KLQotdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KLXZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OkNvbnZlcnNpb246OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAotewotICAgIGVu
Y29kZXIgPDwgZGF0YSA8PCBwcmlvcml0eSA8PCB3YXNTZW50OwotfQotCi10ZW1wbGF0ZTxjbGFz
cyBEZWNvZGVyPgotT3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNvbnZlcnNpb24+
IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDb252ZXJzaW9uOjpkZWNvZGUoRGVjb2RlciYgZGVj
b2RlcikKLXsKLSAgICBPcHRpb25hbDxDb252ZXJzaW9uRGF0YT4gZGF0YTsKLSAgICBkZWNvZGVy
ID4+IGRhdGE7Ci0gICAgaWYgKCFkYXRhKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owot
ICAgIAotICAgIE9wdGlvbmFsPFByaW9yaXR5VmFsdWU+IHByaW9yaXR5OwotICAgIGRlY29kZXIg
Pj4gcHJpb3JpdHk7Ci0gICAgaWYgKCFwcmlvcml0eSkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKLSAgICAKLSAgICBPcHRpb25hbDxXYXNTZW50PiB3YXNTZW50OwotICAgIGRlY29kZXIg
Pj4gd2FzU2VudDsKLSAgICBpZiAoIXdhc1NlbnQpCi0gICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7Ci0gICAgCi0gICAgcmV0dXJuIENvbnZlcnNpb24geyBXVEZNb3ZlKCpkYXRhKSwgUHJpb3Jp
dHkgeyAqcHJpb3JpdHkgfSwgKndhc1NlbnQgfTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQotCi1uYW1lc3BhY2UgV1RGIHsKLXRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBEZWZhdWx0
SGFzaDsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8V2ViQ29yZTo6UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OlNvdXJjZT4gOiBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6U291cmNlSGFzaCB7IH07Ci10ZW1wbGF0ZTw+IHN0cnVjdCBIYXNoVHJhaXRzPFdlYkNvcmU6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2U+IDogR2VuZXJpY0hhc2hUcmFpdHM8V2Vi
Q29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZT4gewotICAgIHN0YXRpYyBXZWJD
b3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlIGVtcHR5VmFsdWUoKSB7IHJldHVy
biB7IH07IH0KLSAgICBzdGF0aWMgdm9pZCBjb25zdHJ1Y3REZWxldGVkVmFsdWUoV2ViQ29yZTo6
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZSYgc2xvdCkgeyBXZWJDb3JlOjpQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6U291cmNlOjpjb25zdHJ1Y3REZWxldGVkVmFsdWUoc2xvdCk7IH0K
LSAgICBzdGF0aWMgYm9vbCBpc0RlbGV0ZWRWYWx1ZShjb25zdCBXZWJDb3JlOjpQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6U291cmNlJiBzbG90KSB7IHJldHVybiBzbG90LmlzRGVsZXRlZFZhbHVl
KCk7IH0KLX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IERlZmF1bHRIYXNoPFdlYkNvcmU6OlByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbj4gOiBXZWJDb3JlOjpQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudDo6RGVzdGluYXRpb25IYXNoIHsgfTsKLXRlbXBsYXRlPD4gc3RydWN0IEhhc2hU
cmFpdHM8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9uPiA6IEdl
bmVyaWNIYXNoVHJhaXRzPFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5h
dGlvbj4gewotICAgIHN0YXRpYyBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RGVz
dGluYXRpb24gZW1wdHlWYWx1ZSgpIHsgcmV0dXJuIHsgfTsgfQotICAgIHN0YXRpYyB2b2lkIGNv
bnN0cnVjdERlbGV0ZWRWYWx1ZShXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RGVz
dGluYXRpb24mIHNsb3QpIHsgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkRlc3Rp
bmF0aW9uOjpjb25zdHJ1Y3REZWxldGVkVmFsdWUoc2xvdCk7IH0KLSAgICBzdGF0aWMgYm9vbCBp
c0RlbGV0ZWRWYWx1ZShjb25zdCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RGVz
dGluYXRpb24mIHNsb3QpIHsgcmV0dXJuIHNsb3QuaXNEZWxldGVkVmFsdWUoKTsgfQotfTsKLX0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKaW5kZXggZjgw
NGYwNzNlMDlmNmZmNWE0ZTVmNGI2NDk4MzJmM2FhYTQ3ZTU4Ni4uZmEyMDBkYTFmMGYzNTBkMjdk
MDk0ZWI3Y2U1NjRhODYyYThiZmUwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9S
dW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1l
RW5hYmxlZEZlYXR1cmVzLmgKQEAgLTIwMyw4ICsyMDMsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXRMaW5lSGVpZ2h0VW5pdHNFbmFibGVkKGJvb2wgaXNFbmFibGVkKSB7IG1fbGluZUhlaWdodFVu
aXRzRW5hYmxlZCA9IGlzRW5hYmxlZDsgfQogICAgIGJvb2wgbGluZUhlaWdodFVuaXRzRW5hYmxl
ZCgpIGNvbnN0IHsgcmV0dXJuIG1fbGluZUhlaWdodFVuaXRzRW5hYmxlZDsgfQogCi0gICAgYm9v
bCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZUVuYWJsZWQoKSBjb25zdCB7IHJldHVy
biBtX3ByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlRW5hYmxlZDsgfQotICAgIHZvaWQg
c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGVFbmFibGVkKGJvb2wgaXNFbmFibGVk
KSB7IG1fcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGVFbmFibGVkID0gaXNFbmFibGVk
OyB9CisgICAgYm9vbCBhZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGVFbmFibGVkKCkgY29uc3Qg
eyByZXR1cm4gbV9hZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGVFbmFibGVkOyB9CisgICAgdm9p
ZCBzZXRBZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGVFbmFibGVkKGJvb2wgaXNFbmFibGVkKSB7
IG1fYWRDbGlja0F0dHJpYnV0aW9uRGVidWdNb2RlRW5hYmxlZCA9IGlzRW5hYmxlZDsgfQogCiAj
aWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICAgICBib29sIG1vdXNlRXZlbnRzU2ltdWxhdGlvbkVu
YWJsZWQoKSBjb25zdCB7IHJldHVybiBtX21vdXNlRXZlbnRzU2ltdWxhdGlvbkVuYWJsZWQ7IH0K
QEAgLTM0Niw3ICszNDYsNyBAQCBwcml2YXRlOgogICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS93
M2MvY3Nzd2ctZHJhZnRzL2lzc3Vlcy8zMjU3IGhhdmUgYmVlbiBzb3J0ZWQgb3V0LgogICAgIGJv
b2wgbV9saW5lSGVpZ2h0VW5pdHNFbmFibGVkIHsgZmFsc2UgfTsKIAotICAgIGJvb2wgbV9wcml2
YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZUVuYWJsZWQgeyBmYWxzZSB9OworICAgIGJvb2wg
bV9hZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGVFbmFibGVkIHsgZmFsc2UgfTsKIAogI2lmIEVO
QUJMRShUT1VDSF9FVkVOVFMpCiAgICAgYm9vbCBtX21vdXNlRXZlbnRzU2ltdWxhdGlvbkVuYWJs
ZWQgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2lu
Zy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oCmluZGV4IGJmOWM5NWU1YzQw
ZTgwYjhjYjAwNWQyNTBkNWY3NTAxY2YxYjI0OWIuLmI1MzliZGUyY2Y5MzRiMGYwMjRmOGQ2MGYx
NmRmMTRjOWE1M2Y4NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dp
bmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgKQEAgLTM5LDYgKzM5
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAjZGVmaW5lIFdFQkNPUkVfTE9HX0NIQU5ORUxT
KE0pIFwKICAgICBNKEFjY2Vzc2liaWxpdHkpIFwKKyAgICBNKEFkQ2xpY2tBdHRyaWJ1dGlvbikg
XAogICAgIE0oQW5pbWF0aW9ucykgXAogICAgIE0oQXBwbGVQYXkpIFwKICAgICBNKEFyY2hpdmVz
KSBcCkBAIC05MCw3ICs5MSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBNKFBsYXRmb3Jt
TGVha3MpIFwKICAgICBNKFBsdWdpbnMpIFwKICAgICBNKFBvcHVwQmxvY2tpbmcpIFwKLSAgICBN
KFByaXZhdGVDbGlja01lYXN1cmVtZW50KSBcCiAgICAgTShQcm9ncmVzcykgXAogICAgIE0oUmVt
b3RlSW5zcGVjdG9yKSBcCiAgICAgTShSZXF1ZXN0QW5pbWF0aW9uRnJhbWUpIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXpl
ZFN0cmluZ3MuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJv
ai9sb2NhbGl6ZWRTdHJpbmdzLmpzCmluZGV4IGI5OGU0ODRhNTg3MjEyMzNjZjdjMzFjOWNmNzg1
MGM2ODEwZGE0YjMuLjU0ZmEyNWI1MGVmMDE3M2ZiZjg0M2NmOTNiZTNjMGZmZWEzMWRkMmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xv
Y2FsaXplZFN0cmluZ3MuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlv
bnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwpAQCAtOTkzLDcgKzk5Myw2IEBAIGxvY2Fs
aXplZFN0cmluZ3NbIlByZXZpb3VzIFNpYmxpbmciXSA9ICJQcmV2aW91cyBTaWJsaW5nIjsKIGxv
Y2FsaXplZFN0cmluZ3NbIlByaW1hcnkgS2V5Il0gPSAiUHJpbWFyeSBLZXkiOwogbG9jYWxpemVk
U3RyaW5nc1siUHJpbWFyeSBLZXkgXHUyMDE0ICVzIl0gPSAiUHJpbWFyeSBLZXkgXHUyMDE0ICVz
IjsKIGxvY2FsaXplZFN0cmluZ3NbIlByaW9yaXR5Il0gPSAiUHJpb3JpdHkiOwotbG9jYWxpemVk
U3RyaW5nc1siUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudCBEZWJ1ZyBNb2RlIl0gPSAiUHJpdmF0
ZSBDbGljayBNZWFzdXJlbWVudCBEZWJ1ZyBNb2RlIjsKIGxvY2FsaXplZFN0cmluZ3NbIlByb2Jl
IEV4cHJlc3Npb24iXSA9ICJQcm9iZSBFeHByZXNzaW9uIjsKIGxvY2FsaXplZFN0cmluZ3NbIlBy
b2JlIFNhbXBsZSBSZWNvcmRlZCJdID0gIlByb2JlIFNhbXBsZSBSZWNvcmRlZCI7CiBsb2NhbGl6
ZWRTdHJpbmdzWyJQcm9iZXMiXSA9ICJQcm9iZXMiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzCmluZGV4IDA1NGU0MTgxYzhiMTAzMzM2MWUx
ZjFmNTY4MDE5ZjI4YzM1MzAwZDIuLjMzODJhMjFhYmEyZDgwODg4NjkyNDIxNjlmM2U3NWQ0MTBk
Nzk4NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jh
c2UvTWFpbi5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNl
L01haW4uanMKQEAgLTIzNDQsMTAgKzIzNDQsOCBAQCBXSS5faGFuZGxlRGV2aWNlU2V0dGluZ3NU
YWJCYXJCdXR0b25DbGlja2VkID0gZnVuY3Rpb24oZXZlbnQpCiAgICAgICAgICAgICBjb2x1bW5z
OiBbCiAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICB7bmFtZTogV0kuVUlT
dHJpbmcoIklUUCBEZWJ1ZyBNb2RlIiksIHNldHRpbmc6IEluc3BlY3RvckJhY2tlbmQuRW51bS5Q
YWdlLlNldHRpbmcuSVRQRGVidWdNb2RlRW5hYmxlZCwgdmFsdWU6IHRydWV9LAotICAgICAgICAg
ICAgICAgICAgICAvLyBDT01QQVRJQklMSVRZIChpT1MgMTQuMCk6IGBQYWdlLlNldHRpbmcuQWRD
bGlja0F0dHJpYnV0aW9uRGVidWdNb2RlRW5hYmxlZGAgd2FzIHJlbmFtZWQgdG8gYFBhZ2UuU2V0
dGluZy5Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZUVuYWJsZWRgLgotICAgICAgICAg
ICAgICAgICAgICB7bmFtZTogV0kuVUlTdHJpbmcoIlByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnQg
RGVidWcgTW9kZSIpLCBzZXR0aW5nOiBJbnNwZWN0b3JCYWNrZW5kLkVudW0uUGFnZS5TZXR0aW5n
LlByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlRW5hYmxlZCwgdmFsdWU6IHRydWV9LAog
ICAgICAgICAgICAgICAgICAgICB7bmFtZTogV0kuVUlTdHJpbmcoIkFkIENsaWNrIEF0dHJpYnV0
aW9uIERlYnVnIE1vZGUiKSwgc2V0dGluZzogSW5zcGVjdG9yQmFja2VuZC5FbnVtLlBhZ2UuU2V0
dGluZy5BZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGVFbmFibGVkLCB2YWx1ZTogdHJ1ZX0sCi0g
ICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgIF0sCiAg
ICAgICAgIH0sCiAgICAgICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL01vZGVscy9Db25zb2xlTWVzc2FnZS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9Db25zb2xlTWVzc2FnZS5qcwppbmRleCA0OThjMmE0
MjYyYWQ3YmE2YmQ1ZTIxOWM2ZDBhN2Q2ZjljOTAxZTUwLi5iZTc4NzhlMGI3NTMwZWY3NGJlMjk0
YWJmZGY5YzUwNGMxNGMxODIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Nb2RlbHMvQ29uc29sZU1lc3NhZ2UuanMKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NvbnNvbGVNZXNzYWdlLmpzCkBAIC0xMTMsMTEg
KzExMyw4IEBAIFdJLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VTb3VyY2UgPSB7CiAgICAgTWVkaWFT
b3VyY2U6ICJtZWRpYXNvdXJjZSIsCiAgICAgV2ViUlRDOiAid2VicnRjIiwKICAgICBJVFBEZWJ1
ZzogIml0cC1kZWJ1ZyIsCi0gICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6ICJwcml2YXRlLWNs
aWNrLW1lYXN1cmVtZW50IiwKLSAgICBPdGhlcjogIm90aGVyIiwKLQotICAgIC8vIENPTVBBVElC
SUxJVFkgKGlPUyAxNC4wKTogYENvbnNvbGUuQ2hhbm5lbFNvdXJjZS5BZENsaWNrQXR0cmlidXRp
b25gIHdhcyByZW5hbWVkIHRvIGBDb25zb2xlLkNoYW5uZWxTb3VyY2UuUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRgLgogICAgIEFkQ2xpY2tBdHRyaWJ1dGlvbjogImFkLWNsaWNrLWF0dHJpYnV0aW9u
IiwKKyAgICBPdGhlcjogIm90aGVyIiwKIH07CiAKIFdJLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VU
eXBlID0gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
TW9kZWxzL0lzc3VlTWVzc2FnZS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL01vZGVscy9Jc3N1ZU1lc3NhZ2UuanMKaW5kZXggNzYyNWJmNmJkZmNkMWZlNzcxM2Y1YmNh
ZjI5NjY3YjVlNDA4MTM4NC4uMmQ4ODE3NWI2ZWU2NzY3YzgzZGM0NTQ3OWJjYTkzZTk1NDNhYmI1
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxz
L0lzc3VlTWVzc2FnZS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9Nb2RlbHMvSXNzdWVNZXNzYWdlLmpzCkBAIC02OSw4ICs2OSw3IEBAIFdJLklzc3VlTWVzc2Fn
ZSA9IGNsYXNzIElzc3VlTWVzc2FnZSBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICBjYXNlIFdJ
LkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VTb3VyY2UuTWVkaWFzb3VyY2U6CiAgICAgICAgIGNhc2Ug
V0kuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVNvdXJjZS5XZWJSVEM6CiAgICAgICAgIGNhc2UgV0ku
Q29uc29sZU1lc3NhZ2UuTWVzc2FnZVNvdXJjZS5JVFBEZWJ1ZzoKLSAgICAgICAgY2FzZSBXSS5D
b25zb2xlTWVzc2FnZS5NZXNzYWdlU291cmNlLlByaXZhdGVDbGlja01lYXN1cmVtZW50OgotICAg
ICAgICBjYXNlIFdJLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VTb3VyY2UuQWRDbGlja0F0dHJpYnV0
aW9uOiAvLyBDT01QQVRJQklMSVRZIChpT1MgMTQuMCk6IGBDb25zb2xlLkNoYW5uZWxTb3VyY2Uu
QWRDbGlja0F0dHJpYnV0aW9uYCB3YXMgcmVuYW1lZCB0byBgQ29uc29sZS5DaGFubmVsU291cmNl
LlByaXZhdGVDbGlja01lYXN1cmVtZW50YC4KKyAgICAgICAgY2FzZSBXSS5Db25zb2xlTWVzc2Fn
ZS5NZXNzYWdlU291cmNlLkFkQ2xpY2tBdHRyaWJ1dGlvbjoKICAgICAgICAgY2FzZSBXSS5Db25z
b2xlTWVzc2FnZS5NZXNzYWdlU291cmNlLk90aGVyOgogICAgICAgICAgICAgdGhpcy5fdHlwZSA9
IFdJLklzc3VlTWVzc2FnZS5UeXBlLk90aGVySXNzdWU7CiAgICAgICAgICAgICBicmVhazsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQWRDbGlja0F0dHJpYnV0aW9u
TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0FkQ2xpY2tBdHRyaWJ1
dGlvbk1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA3NDYyZTY1MGI0MDUyZWFiMWU0NzY3NmQwMWIy
Y2M0ZGU3NDdlMjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL0FkQ2xpY2tBdHRyaWJ1dGlvbk1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsMzM2IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkFkQ2xpY2tBdHRyaWJ1dGlv
bk1hbmFnZXIuaCIKKworI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9Db25zb2xlVHlwZXMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZldGNoT3B0aW9ucy5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvRm9ybURhdGEuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0hUVFBIZWFk
ZXJWYWx1ZXMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VS
ZXNwb25zZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg+CisjaW5jbHVkZSA8
d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2gu
aD4KKworbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwordXNp
bmcgU291cmNlID0gQWRDbGlja0F0dHJpYnV0aW9uOjpTb3VyY2U7Cit1c2luZyBEZXN0aW5hdGlv
biA9IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6RGVzdGluYXRpb247Cit1c2luZyBEZXN0aW5hdGlvbk1h
cCA9IEhhc2hNYXA8RGVzdGluYXRpb24sIEFkQ2xpY2tBdHRyaWJ1dGlvbj47Cit1c2luZyBDb252
ZXJzaW9uID0gQWRDbGlja0F0dHJpYnV0aW9uOjpDb252ZXJzaW9uOworCitjb25zdGV4cHIgU2Vj
b25kcyBkZWJ1Z01vZGVTZWNvbmRzVW50aWxTZW5kIHsgNjBfcyB9OworCit2b2lkIEFkQ2xpY2tB
dHRyaWJ1dGlvbk1hbmFnZXI6OnN0b3JlVW5jb252ZXJ0ZWQoQWRDbGlja0F0dHJpYnV0aW9uJiYg
YXR0cmlidXRpb24pCit7CisgICAgY2xlYXJFeHBpcmVkKCk7CisKKyAgICBpZiAoVU5MSUtFTFko
ZGVidWdNb2RlRW5hYmxlZCgpKSkgeworICAgICAgICBSRUxFQVNFX0xPR19JTkZPKEFkQ2xpY2tB
dHRyaWJ1dGlvbiwgIlN0b3JpbmcgYW4gYWQgY2xpY2suIik7CisgICAgICAgIG1fbmV0d29ya1By
b2Nlc3MtPmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKG1fc2Vzc2lvbklELCBNZXNzYWdlU291cmNl
OjpBZENsaWNrQXR0cmlidXRpb24sIE1lc3NhZ2VMZXZlbDo6RXJyb3IsICJbQWQgQ2xpY2sgQXR0
cmlidXRpb25dIFN0b3JpbmcgYW4gYWQgY2xpY2suIl9zKTsKKyAgICB9CisKKyAgICBtX3VuY29u
dmVydGVkQWRDbGlja0F0dHJpYnV0aW9uTWFwLnNldChzdGQ6Om1ha2VfcGFpcihhdHRyaWJ1dGlv
bi5zb3VyY2UoKSwgYXR0cmlidXRpb24uZGVzdGluYXRpb24oKSksIFdURk1vdmUoYXR0cmlidXRp
b24pKTsKK30KKwordm9pZCBBZENsaWNrQXR0cmlidXRpb25NYW5hZ2VyOjpoYW5kbGVDb252ZXJz
aW9uKENvbnZlcnNpb24mJiBjb252ZXJzaW9uLCBjb25zdCBVUkwmIHJlcXVlc3RVUkwsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVkaXJlY3RSZXF1ZXN0KQoreworICAgIGlmICht
X3Nlc3Npb25JRC5pc0VwaGVtZXJhbCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBSZWdpc3Ry
YWJsZURvbWFpbiByZWRpcmVjdERvbWFpbiB7IHJlZGlyZWN0UmVxdWVzdC51cmwoKSB9OworICAg
IGF1dG8mIGZpcnN0UGFydHlVUkwgPSByZWRpcmVjdFJlcXVlc3QuZmlyc3RQYXJ0eUZvckNvb2tp
ZXMoKTsKKworICAgIGlmICghcmVkaXJlY3REb21haW4ubWF0Y2hlcyhyZXF1ZXN0VVJMKSkgewor
ICAgICAgICBpZiAoVU5MSUtFTFkoZGVidWdNb2RlRW5hYmxlZCgpKSkgeworICAgICAgICAgICAg
UkVMRUFTRV9MT0dfSU5GTyhBZENsaWNrQXR0cmlidXRpb24sICJDb252ZXJzaW9uIHdhcyBub3Qg
YWNjZXB0ZWQgYmVjYXVzZSB0aGUgSFRUUCByZWRpcmVjdCB3YXMgbm90IHNhbWUtc2l0ZS4iKTsK
KyAgICAgICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKG1f
c2Vzc2lvbklELCBNZXNzYWdlU291cmNlOjpBZENsaWNrQXR0cmlidXRpb24sIE1lc3NhZ2VMZXZl
bDo6RXJyb3IsICJbQWQgQ2xpY2sgQXR0cmlidXRpb25dIENvbnZlcnNpb24gd2FzIG5vdCBhY2Nl
cHRlZCBiZWNhdXNlIHRoZSBIVFRQIHJlZGlyZWN0IHdhcyBub3Qgc2FtZS1zaXRlLiJfcyk7Cisg
ICAgICAgIH0KKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChyZWRpcmVjdERvbWFp
bi5tYXRjaGVzKGZpcnN0UGFydHlVUkwpKSB7CisgICAgICAgIGlmIChVTkxJS0VMWShkZWJ1Z01v
ZGVFbmFibGVkKCkpKSB7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19JTkZPKEFkQ2xpY2tBdHRy
aWJ1dGlvbiwgIkNvbnZlcnNpb24gd2FzIG5vdCBhY2NlcHRlZCBiZWNhdXNlIGl0IHdhcyByZXF1
ZXN0ZWQgaW4gYW4gSFRUUCByZWRpcmVjdCB0aGF0IGlzIHNhbWUtc2l0ZSBhcyB0aGUgZmlyc3Qt
cGFydHkuIik7CisgICAgICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5icm9hZGNhc3RDb25zb2xl
TWVzc2FnZShtX3Nlc3Npb25JRCwgTWVzc2FnZVNvdXJjZTo6QWRDbGlja0F0dHJpYnV0aW9uLCBN
ZXNzYWdlTGV2ZWw6OkVycm9yLCAiW0FkIENsaWNrIEF0dHJpYnV0aW9uXSBDb252ZXJzaW9uIHdh
cyBub3QgYWNjZXB0ZWQgYmVjYXVzZSBpdCB3YXMgcmVxdWVzdGVkIGluIGFuIEhUVFAgcmVkaXJl
Y3QgdGhhdCBpcyBzYW1lLXNpdGUgYXMgdGhlIGZpcnN0LXBhcnR5LiJfcyk7CisgICAgICAgIH0K
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNvbnZlcnQoQWRDbGlja0F0dHJpYnV0aW9u
OjpTb3VyY2UgeyBXVEZNb3ZlKHJlZGlyZWN0RG9tYWluKSB9LCBBZENsaWNrQXR0cmlidXRpb246
OkRlc3RpbmF0aW9uIHsgZmlyc3RQYXJ0eVVSTCB9LCBXVEZNb3ZlKGNvbnZlcnNpb24pKTsKK30K
Kwordm9pZCBBZENsaWNrQXR0cmlidXRpb25NYW5hZ2VyOjpzdGFydFRpbWVyKFNlY29uZHMgc2Vj
b25kcykKK3sKKyAgICBtX2ZpcmVQZW5kaW5nQ29udmVyc2lvblJlcXVlc3RzVGltZXIuc3RhcnRP
bmVTaG90KG1faXNSdW5uaW5nVGVzdCA/IDBfcyA6IHNlY29uZHMpOworfQorCit2b2lkIEFkQ2xp
Y2tBdHRyaWJ1dGlvbk1hbmFnZXI6OmNvbnZlcnQoY29uc3QgU291cmNlJiBzb3VyY2UsIGNvbnN0
IERlc3RpbmF0aW9uJiBkZXN0aW5hdGlvbiwgQ29udmVyc2lvbiYmIGNvbnZlcnNpb24pCit7Cisg
ICAgY2xlYXJFeHBpcmVkKCk7CisKKyAgICBpZiAoIWNvbnZlcnNpb24uaXNWYWxpZCgpKSB7Cisg
ICAgICAgIGlmIChVTkxJS0VMWShkZWJ1Z01vZGVFbmFibGVkKCkpKSB7CisgICAgICAgICAgICBS
RUxFQVNFX0xPR19JTkZPKEFkQ2xpY2tBdHRyaWJ1dGlvbiwgIkdvdCBhbiBpbnZhbGlkIGNvbnZl
cnNpb24uIik7CisgICAgICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5icm9hZGNhc3RDb25zb2xl
TWVzc2FnZShtX3Nlc3Npb25JRCwgTWVzc2FnZVNvdXJjZTo6QWRDbGlja0F0dHJpYnV0aW9uLCBN
ZXNzYWdlTGV2ZWw6OkVycm9yLCAiW0FkIENsaWNrIEF0dHJpYnV0aW9uXSBHb3QgYW4gaW52YWxp
ZCBjb252ZXJzaW9uLiJfcyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIGF1dG8gY29udmVyc2lvbkRhdGEgPSBjb252ZXJzaW9uLmRhdGE7CisgICAgYXV0byBjb252
ZXJzaW9uUHJpb3JpdHkgPSBjb252ZXJzaW9uLnByaW9yaXR5OworCisgICAgaWYgKFVOTElLRUxZ
KGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhBZENsaWNr
QXR0cmlidXRpb24sICJHb3QgYSBjb252ZXJzaW9uIHdpdGggY29udmVyc2lvbiBkYXRhOiAle3B1
YmxpY311IGFuZCBwcmlvcml0eTogJXtwdWJsaWN9dS4iLCBjb252ZXJzaW9uRGF0YSwgY29udmVy
c2lvblByaW9yaXR5KTsKKyAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0Q29uc29s
ZU1lc3NhZ2UobV9zZXNzaW9uSUQsIE1lc3NhZ2VTb3VyY2U6OkFkQ2xpY2tBdHRyaWJ1dGlvbiwg
TWVzc2FnZUxldmVsOjpJbmZvLCBtYWtlU3RyaW5nKCJbQWQgQ2xpY2sgQXR0cmlidXRpb25dIEdv
dCBhIGNvbnZlcnNpb24gd2l0aCBjb252ZXJzaW9uIGRhdGE6ICciX3MsIGNvbnZlcnNpb25EYXRh
LCAiJyBhbmQgcHJpb3JpdHk6ICciX3MsIGNvbnZlcnNpb25Qcmlvcml0eSwgIicuIl9zKSk7Cisg
ICAgfQorCisgICAgYXV0byBzZWNvbmRzVW50aWxTZW5kID0gU2Vjb25kczo6aW5maW5pdHkoKTsK
KworICAgIGF1dG8gcGFpciA9IHN0ZDo6bWFrZV9wYWlyKHNvdXJjZSwgZGVzdGluYXRpb24pOwor
ICAgIGF1dG8gcHJldmlvdXNseVVuY29udmVydGVkQXR0cmlidXRpb24gPSBtX3VuY29udmVydGVk
QWRDbGlja0F0dHJpYnV0aW9uTWFwLnRha2UocGFpcik7CisgICAgYXV0byBwcmV2aW91c2x5Q29u
dmVydGVkQXR0cmlidXRpb25JdGVyID0gbV9jb252ZXJ0ZWRBZENsaWNrQXR0cmlidXRpb25NYXAu
ZmluZChwYWlyKTsKKworICAgIGlmICghcHJldmlvdXNseVVuY29udmVydGVkQXR0cmlidXRpb24u
aXNFbXB0eSgpKSB7CisgICAgICAgIC8vIEFsd2F5cyBjb252ZXJ0IHRoZSBwZW5kaW5nIGF0dHJp
YnV0aW9uIGFuZCByZW1vdmUgaXQgZnJvbSB0aGUgdW5jb252ZXJ0ZWQgbWFwLgorICAgICAgICBp
ZiAoYXV0byBvcHRpb25hbFNlY29uZHNVbnRpbFNlbmQgPSBwcmV2aW91c2x5VW5jb252ZXJ0ZWRB
dHRyaWJ1dGlvbi5jb252ZXJ0QW5kR2V0RWFybGllc3RUaW1lVG9TZW5kKFdURk1vdmUoY29udmVy
c2lvbikpKSB7CisgICAgICAgICAgICBzZWNvbmRzVW50aWxTZW5kID0gKm9wdGlvbmFsU2Vjb25k
c1VudGlsU2VuZDsKKyAgICAgICAgICAgIEFTU0VSVChzZWNvbmRzVW50aWxTZW5kICE9IFNlY29u
ZHM6OmluZmluaXR5KCkpOworCisgICAgICAgICAgICBpZiAoVU5MSUtFTFkoZGVidWdNb2RlRW5h
YmxlZCgpKSkgeworICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lORk8oQWRDbGlja0F0dHJp
YnV0aW9uLCAiQ29udmVydGVkIGEgc3RvcmVkIGFkIGNsaWNrIHdpdGggY29udmVyc2lvbiBkYXRh
OiAle3B1YmxpY311IGFuZCBwcmlvcml0eTogJXtwdWJsaWN9dS4iLCBjb252ZXJzaW9uRGF0YSwg
Y29udmVyc2lvblByaW9yaXR5KTsKKyAgICAgICAgICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5i
cm9hZGNhc3RDb25zb2xlTWVzc2FnZShtX3Nlc3Npb25JRCwgTWVzc2FnZVNvdXJjZTo6QWRDbGlj
a0F0dHJpYnV0aW9uLCBNZXNzYWdlTGV2ZWw6OkluZm8sIG1ha2VTdHJpbmcoIltBZCBDbGljayBB
dHRyaWJ1dGlvbl0gQ29udmVydGVkIGEgc3RvcmVkIGFkIGNsaWNrIHdpdGggY29udmVyc2lvbiBk
YXRhOiAnIl9zLCBjb252ZXJzaW9uRGF0YSwgIicgYW5kIHByaW9yaXR5OiAnIl9zLCBjb252ZXJz
aW9uUHJpb3JpdHksICInLiJfcykpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAg
ICAgaWYgKHByZXZpb3VzbHlDb252ZXJ0ZWRBdHRyaWJ1dGlvbkl0ZXIgPT0gbV9jb252ZXJ0ZWRB
ZENsaWNrQXR0cmlidXRpb25NYXAuZW5kKCkpCisgICAgICAgICAgICBtX2NvbnZlcnRlZEFkQ2xp
Y2tBdHRyaWJ1dGlvbk1hcC5hZGQocGFpciwgV1RGTW92ZShwcmV2aW91c2x5VW5jb252ZXJ0ZWRB
dHRyaWJ1dGlvbikpOworICAgICAgICBlbHNlIGlmIChwcmV2aW91c2x5VW5jb252ZXJ0ZWRBdHRy
aWJ1dGlvbi5oYXNIaWdoZXJQcmlvcml0eVRoYW4ocHJldmlvdXNseUNvbnZlcnRlZEF0dHJpYnV0
aW9uSXRlci0+dmFsdWUpKSB7CisgICAgICAgICAgICAvLyBJZiB0aGUgbmV3bHkgY29udmVydGVk
IGF0dHJpYnV0aW9uIGhhcyBoaWdoZXIgcHJpb3JpdHksIHJlcGxhY2UgdGhlIG9sZCBvbmUuCisg
ICAgICAgICAgICBtX2NvbnZlcnRlZEFkQ2xpY2tBdHRyaWJ1dGlvbk1hcC5zZXQocGFpciwgV1RG
TW92ZShwcmV2aW91c2x5VW5jb252ZXJ0ZWRBdHRyaWJ1dGlvbikpOworCisgICAgICAgICAgICBp
ZiAoVU5MSUtFTFkoZGVidWdNb2RlRW5hYmxlZCgpKSkgeworICAgICAgICAgICAgICAgIFJFTEVB
U0VfTE9HX0lORk8oQWRDbGlja0F0dHJpYnV0aW9uLCAiUmVwbGFjZWQgYSBwcmV2aW91c2x5IGNv
bnZlcnRlZCBhZCBjbGljayB3aXRoIGEgbmV3IG9uZSB3aXRoIGNvbnZlcnNpb24gZGF0YTogJXtw
dWJsaWN9dSBhbmQgcHJpb3JpdHk6ICV7cHVibGljfXUgYmVjYXVzZSBpdCBoYWQgaGlnaGVyIHBy
aW9yaXR5LiIsIGNvbnZlcnNpb25EYXRhLCBjb252ZXJzaW9uUHJpb3JpdHkpOworICAgICAgICAg
ICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKG1fc2Vzc2lv
bklELCBNZXNzYWdlU291cmNlOjpBZENsaWNrQXR0cmlidXRpb24sIE1lc3NhZ2VMZXZlbDo6SW5m
bywgbWFrZVN0cmluZygiW0FkIENsaWNrIEF0dHJpYnV0aW9uXSBSZXBsYWNlZCBhIHByZXZpb3Vz
bHkgY29udmVydGVkIGFkIGNsaWNrIHdpdGggYSBuZXcgb25lIHdpdGggY29udmVyc2lvbiBkYXRh
OiAnIl9zLCBjb252ZXJzaW9uRGF0YSwgIicgYW5kIHByaW9yaXR5OiAnIl9zLCBjb252ZXJzaW9u
UHJpb3JpdHksICInIGJlY2F1c2UgaXQgaGFkIGhpZ2hlciBwcmlvcml0eS4iX3MpKTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAocHJldmlvdXNseUNvbnZlcnRlZEF0
dHJpYnV0aW9uSXRlciAhPSBtX2NvbnZlcnRlZEFkQ2xpY2tBdHRyaWJ1dGlvbk1hcC5lbmQoKSkg
eworICAgICAgICAvLyBJZiB3ZSBoYXZlIG5vIG5ld2x5IGNvbnZlcnRlZCBhdHRyaWJ1dGlvbiwg
cmUtY29udmVydCB0aGUgb2xkIG9uZSB0byByZXNwZWN0IHRoZSBuZXcgcHJpb3JpdHkuCisgICAg
ICAgIGlmIChhdXRvIG9wdGlvbmFsU2Vjb25kc1VudGlsU2VuZCA9IHByZXZpb3VzbHlDb252ZXJ0
ZWRBdHRyaWJ1dGlvbkl0ZXItPnZhbHVlLmNvbnZlcnRBbmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQo
V1RGTW92ZShjb252ZXJzaW9uKSkpIHsKKyAgICAgICAgICAgIHNlY29uZHNVbnRpbFNlbmQgPSAq
b3B0aW9uYWxTZWNvbmRzVW50aWxTZW5kOworICAgICAgICAgICAgQVNTRVJUKHNlY29uZHNVbnRp
bFNlbmQgIT0gU2Vjb25kczo6aW5maW5pdHkoKSk7CisKKyAgICAgICAgICAgIGlmIChVTkxJS0VM
WShkZWJ1Z01vZGVFbmFibGVkKCkpKSB7CisgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSU5G
TyhBZENsaWNrQXR0cmlidXRpb24sICJSZS1jb252ZXJ0ZWQgYW4gYWQgY2xpY2sgd2l0aCBhIG5l
dyBvbmUgd2l0aCBjb252ZXJzaW9uIGRhdGE6ICV7cHVibGljfXUgYW5kIHByaW9yaXR5OiAle3B1
YmxpY311IGJlY2F1c2UgaXQgaGFkIGhpZ2hlciBwcmlvcml0eS4iLCBjb252ZXJzaW9uRGF0YSwg
Y29udmVyc2lvblByaW9yaXR5KTsKKyAgICAgICAgICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5i
cm9hZGNhc3RDb25zb2xlTWVzc2FnZShtX3Nlc3Npb25JRCwgTWVzc2FnZVNvdXJjZTo6QWRDbGlj
a0F0dHJpYnV0aW9uLCBNZXNzYWdlTGV2ZWw6OkluZm8sIG1ha2VTdHJpbmcoIltBZCBDbGljayBB
dHRyaWJ1dGlvbl0gUmUtY29udmVydGVkIGFuIGFkIGNsaWNrIHdpdGggYSBuZXcgb25lIHdpdGgg
Y29udmVyc2lvbiBkYXRhOiAnIl9zLCBjb252ZXJzaW9uRGF0YSwgIicgYW5kIHByaW9yaXR5OiAn
Il9zLCBjb252ZXJzaW9uUHJpb3JpdHksICInJyBiZWNhdXNlIGl0IGhhZCBoaWdoZXIgcHJpb3Jp
dHkuIl9zKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoc2Vj
b25kc1VudGlsU2VuZCA9PSBTZWNvbmRzOjppbmZpbml0eSgpKQorICAgICAgICByZXR1cm47Cisg
ICAgCisgICAgaWYgKG1fZmlyZVBlbmRpbmdDb252ZXJzaW9uUmVxdWVzdHNUaW1lci5pc0FjdGl2
ZSgpICYmIG1fZmlyZVBlbmRpbmdDb252ZXJzaW9uUmVxdWVzdHNUaW1lci5uZXh0RmlyZUludGVy
dmFsKCkgPCBzZWNvbmRzVW50aWxTZW5kKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoVU5M
SUtFTFkoZGVidWdNb2RlRW5hYmxlZCgpKSkgeworICAgICAgICBSRUxFQVNFX0xPR19JTkZPKEFk
Q2xpY2tBdHRyaWJ1dGlvbiwgIlNldHRpbmcgdGltZXIgZm9yIGZpcmluZyBjb252ZXJzaW9uIHJl
cXVlc3RzIHRvIHRoZSBkZWJ1ZyBtb2RlIHRpbWVvdXQgb2YgJXtwdWJsaWN9ZiBzZWNvbmRzIHdo
ZXJlIHRoZSByZWd1bGFyIHRpbWVvdXQgd291bGQgaGF2ZSBiZWVuICV7cHVibGljfWYgc2Vjb25k
cy4iLCBkZWJ1Z01vZGVTZWNvbmRzVW50aWxTZW5kLnNlY29uZHMoKSwgc2Vjb25kc1VudGlsU2Vu
ZC5zZWNvbmRzKCkpOworICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5icm9hZGNhc3RDb25zb2xl
TWVzc2FnZShtX3Nlc3Npb25JRCwgTWVzc2FnZVNvdXJjZTo6QWRDbGlja0F0dHJpYnV0aW9uLCBN
ZXNzYWdlTGV2ZWw6OkluZm8sIG1ha2VTdHJpbmcoIltBZCBDbGljayBBdHRyaWJ1dGlvbl0gU2V0
dGluZyB0aW1lciBmb3IgZmlyaW5nIGNvbnZlcnNpb24gcmVxdWVzdHMgdG8gdGhlIGRlYnVnIG1v
ZGUgdGltZW91dCBvZiAiX3MsIGRlYnVnTW9kZVNlY29uZHNVbnRpbFNlbmQuc2Vjb25kcygpLCAi
IHNlY29uZHMgd2hlcmUgdGhlIHJlZ3VsYXIgdGltZW91dCB3b3VsZCBoYXZlIGJlZW4gIl9zLCBz
ZWNvbmRzVW50aWxTZW5kLnNlY29uZHMoKSwgIiBzZWNvbmRzLiJfcykpOworICAgICAgICBzZWNv
bmRzVW50aWxTZW5kID0gZGVidWdNb2RlU2Vjb25kc1VudGlsU2VuZDsKKyAgICB9CisKKyAgICBz
dGFydFRpbWVyKHNlY29uZHNVbnRpbFNlbmQpOworfQorCit2b2lkIEFkQ2xpY2tBdHRyaWJ1dGlv
bk1hbmFnZXI6OmZpcmVDb252ZXJzaW9uUmVxdWVzdChjb25zdCBBZENsaWNrQXR0cmlidXRpb24m
IGF0dHJpYnV0aW9uKQoreworICAgIGF1dG8gY29udmVyc2lvblVSTCA9IG1fY29udmVyc2lvbkJh
c2VVUkxGb3JUZXN0aW5nID8gKm1fY29udmVyc2lvbkJhc2VVUkxGb3JUZXN0aW5nIDogYXR0cmli
dXRpb24ucmVwb3J0VVJMKCk7CisgICAgaWYgKGNvbnZlcnNpb25VUkwuaXNFbXB0eSgpIHx8ICFj
b252ZXJzaW9uVVJMLmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgUmVzb3VyY2VS
ZXF1ZXN0IHJlcXVlc3QgeyBXVEZNb3ZlKGNvbnZlcnNpb25VUkwpIH07CisgICAgCisgICAgcmVx
dWVzdC5zZXRIVFRQTWV0aG9kKCJQT1NUIl9zKTsKKyAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJG
aWVsZChIVFRQSGVhZGVyTmFtZTo6Q2FjaGVDb250cm9sLCBXZWJDb3JlOjpIVFRQSGVhZGVyVmFs
dWVzOjptYXhBZ2UwKCkpOworCisgICAgcmVxdWVzdC5zZXRIVFRQQ29udGVudFR5cGUoV2ViQ29y
ZTo6SFRUUEhlYWRlclZhbHVlczo6YXBwbGljYXRpb25KU09OQ29udGVudFR5cGUoKSk7CisgICAg
cmVxdWVzdC5zZXRIVFRQQm9keShXZWJDb3JlOjpGb3JtRGF0YTo6Y3JlYXRlKGF0dHJpYnV0aW9u
Lmpzb24oKS0+dG9KU09OU3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOworCisgICAgRmV0Y2hPcHRp
b25zIG9wdGlvbnM7CisgICAgb3B0aW9ucy5jcmVkZW50aWFscyA9IEZldGNoT3B0aW9uczo6Q3Jl
ZGVudGlhbHM6Ok9taXQ7CisgICAgb3B0aW9ucy5yZWRpcmVjdCA9IEZldGNoT3B0aW9uczo6UmVk
aXJlY3Q6OkVycm9yOworCisgICAgc3RhdGljIHVpbnQ2NF90IGlkZW50aWZpZXIgPSAwOworICAg
IAorICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIGxvYWRQYXJhbWV0ZXJzOworICAg
IGxvYWRQYXJhbWV0ZXJzLmlkZW50aWZpZXIgPSArK2lkZW50aWZpZXI7CisgICAgbG9hZFBhcmFt
ZXRlcnMucmVxdWVzdCA9IHJlcXVlc3Q7CisgICAgbG9hZFBhcmFtZXRlcnMucGFyZW50UElEID0g
cHJlc2VudGluZ0FwcGxpY2F0aW9uUElEKCk7CisgICAgbG9hZFBhcmFtZXRlcnMuc3RvcmVkQ3Jl
ZGVudGlhbHNQb2xpY3kgPSBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6RXBoZW1lcmFsU3RhdGVs
ZXNzOworICAgIGxvYWRQYXJhbWV0ZXJzLm9wdGlvbnMgPSBvcHRpb25zOworICAgIGxvYWRQYXJh
bWV0ZXJzLnNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QgPSB0cnVlOwor
ICAgIGxvYWRQYXJhbWV0ZXJzLnNob3VsZFJlc3RyaWN0SFRUUFJlc3BvbnNlQWNjZXNzID0gZmFs
c2U7CisKKyAgICBpZiAoVU5MSUtFTFkoZGVidWdNb2RlRW5hYmxlZCgpKSkgeworICAgICAgICBS
RUxFQVNFX0xPR19JTkZPKEFkQ2xpY2tBdHRyaWJ1dGlvbiwgIkFib3V0IHRvIGZpcmUgYW4gYXR0
cmlidXRpb24gcmVxdWVzdCBmb3IgYSBjb252ZXJzaW9uLiIpOworICAgICAgICBtX25ldHdvcmtQ
cm9jZXNzLT5icm9hZGNhc3RDb25zb2xlTWVzc2FnZShtX3Nlc3Npb25JRCwgTWVzc2FnZVNvdXJj
ZTo6QWRDbGlja0F0dHJpYnV0aW9uLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCAiW0FkIENsaWNrIEF0
dHJpYnV0aW9uXSBBYm91dCB0byBmaXJlIGFuIGF0dHJpYnV0aW9uIHJlcXVlc3QgZm9yIGEgY29u
dmVyc2lvbi4iX3MpOworICAgIH0KKworICAgIG1fcGluZ0xvYWRGdW5jdGlvbihXVEZNb3ZlKGxv
YWRQYXJhbWV0ZXJzKSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXShjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZUVycm9yJiBlcnJvciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYgcmVzcG9uc2UpIHsKKyAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgIHJldHVy
bjsKKworICAgICAgICBpZiAoVU5MSUtFTFkod2Vha1RoaXMtPmRlYnVnTW9kZUVuYWJsZWQoKSkp
IHsKKyAgICAgICAgICAgIGlmICghZXJyb3IuaXNOdWxsKCkpIHsKKyNpZiBQTEFURk9STShDT0NP
QSkKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihBZENsaWNrQXR0cmlidXRpb24s
ICJSZWNlaXZlZCBlcnJvcjogJyV7cHVibGljfXMnIGZvciBhZCBjbGljayBhdHRyaWJ1dGlvbiBy
ZXF1ZXN0LiIsIGVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkudXRmOCgpLmRhdGEoKSk7Cisj
ZWxzZQorICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKEFkQ2xpY2tBdHRyaWJ1dGlv
biwgIlJlY2VpdmVkIGVycm9yOiAnJXMnIGZvciBhZCBjbGljayBhdHRyaWJ1dGlvbiByZXF1ZXN0
LiIsIGVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkudXRmOCgpLmRhdGEoKSk7CisjZW5kaWYK
KyAgICAgICAgICAgICAgICB3ZWFrVGhpcy0+bV9uZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0Q29u
c29sZU1lc3NhZ2Uod2Vha1RoaXMtPm1fc2Vzc2lvbklELCBNZXNzYWdlU291cmNlOjpBZENsaWNr
QXR0cmlidXRpb24sIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIG1ha2VTdHJpbmcoIltBZCBDbGljayBB
dHRyaWJ1dGlvbl0gUmVjZWl2ZWQgZXJyb3I6ICciX3MsIGVycm9yLmxvY2FsaXplZERlc2NyaXB0
aW9uKCksICInIGZvciBhZCBjbGljayBhdHRyaWJ1dGlvbiByZXF1ZXN0LiJfcykpOworICAgICAg
ICAgICAgfQorICAgICAgICB9CisgICAgfSk7Cit9CisKK3ZvaWQgQWRDbGlja0F0dHJpYnV0aW9u
TWFuYWdlcjo6ZmlyZVBlbmRpbmdDb252ZXJzaW9uUmVxdWVzdHMoKQoreworICAgIGF1dG8gbmV4
dFRpbWVUb0ZpcmUgPSBTZWNvbmRzOjppbmZpbml0eSgpOworICAgIGZvciAoYXV0byYgYXR0cmli
dXRpb24gOiBtX2NvbnZlcnRlZEFkQ2xpY2tBdHRyaWJ1dGlvbk1hcC52YWx1ZXMoKSkgeworICAg
ICAgICBpZiAoYXR0cmlidXRpb24ud2FzQ29udmVyc2lvblNlbnQoKSkgeworICAgICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQor
ICAgICAgICBhdXRvIGVhcmxpZXN0VGltZVRvU2VuZCA9IGF0dHJpYnV0aW9uLmVhcmxpZXN0VGlt
ZVRvU2VuZCgpOworICAgICAgICBpZiAoIWVhcmxpZXN0VGltZVRvU2VuZCkgeworICAgICAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAg
fQorCisgICAgICAgIGF1dG8gbm93ID0gV2FsbFRpbWU6Om5vdygpOworICAgICAgICBpZiAoKmVh
cmxpZXN0VGltZVRvU2VuZCA8PSBub3cgfHwgbV9pc1J1bm5pbmdUZXN0IHx8IGRlYnVnTW9kZUVu
YWJsZWQoKSkgeworICAgICAgICAgICAgZmlyZUNvbnZlcnNpb25SZXF1ZXN0KGF0dHJpYnV0aW9u
KTsKKyAgICAgICAgICAgIGF0dHJpYnV0aW9uLm1hcmtDb252ZXJzaW9uQXNTZW50KCk7CisgICAg
ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorCisgICAgICAgIGF1dG8gc2Vjb25kcyA9ICpl
YXJsaWVzdFRpbWVUb1NlbmQgLSBub3c7CisgICAgICAgIG5leHRUaW1lVG9GaXJlID0gc3RkOjpt
aW4obmV4dFRpbWVUb0ZpcmUsIHNlY29uZHMpOworICAgIH0KKworICAgIG1fY29udmVydGVkQWRD
bGlja0F0dHJpYnV0aW9uTWFwLnJlbW92ZUlmKFtdKGF1dG8mIGtleUFuZFZhbHVlKSB7CisgICAg
ICAgIHJldHVybiBrZXlBbmRWYWx1ZS52YWx1ZS53YXNDb252ZXJzaW9uU2VudCgpOworICAgIH0p
OworCisgICAgaWYgKG5leHRUaW1lVG9GaXJlIDwgU2Vjb25kczo6aW5maW5pdHkoKSkKKyAgICAg
ICAgc3RhcnRUaW1lcihuZXh0VGltZVRvRmlyZSk7Cit9CisKK3ZvaWQgQWRDbGlja0F0dHJpYnV0
aW9uTWFuYWdlcjo6Y2xlYXIoKQoreworICAgIG1fZmlyZVBlbmRpbmdDb252ZXJzaW9uUmVxdWVz
dHNUaW1lci5zdG9wKCk7CisgICAgbV91bmNvbnZlcnRlZEFkQ2xpY2tBdHRyaWJ1dGlvbk1hcC5j
bGVhcigpOworICAgIG1fY29udmVydGVkQWRDbGlja0F0dHJpYnV0aW9uTWFwLmNsZWFyKCk7Cit9
CisKK3ZvaWQgQWRDbGlja0F0dHJpYnV0aW9uTWFuYWdlcjo6Y2xlYXJGb3JSZWdpc3RyYWJsZURv
bWFpbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluKQoreworICAgIG1fdW5jb252ZXJ0
ZWRBZENsaWNrQXR0cmlidXRpb25NYXAucmVtb3ZlSWYoWyZkb21haW5dKGF1dG8mIGtleUFuZFZh
bHVlKSB7CisgICAgICAgIHJldHVybiBrZXlBbmRWYWx1ZS5rZXkuZmlyc3QucmVnaXN0cmFibGVE
b21haW4gPT0gZG9tYWluIHx8IGtleUFuZFZhbHVlLmtleS5zZWNvbmQucmVnaXN0cmFibGVEb21h
aW4gPT0gZG9tYWluOworICAgIH0pOworCisgICAgbV9jb252ZXJ0ZWRBZENsaWNrQXR0cmlidXRp
b25NYXAucmVtb3ZlSWYoWyZkb21haW5dKGF1dG8mIGtleUFuZFZhbHVlKSB7CisgICAgICAgIHJl
dHVybiBrZXlBbmRWYWx1ZS5rZXkuZmlyc3QucmVnaXN0cmFibGVEb21haW4gPT0gZG9tYWluIHx8
IGtleUFuZFZhbHVlLmtleS5zZWNvbmQucmVnaXN0cmFibGVEb21haW4gPT0gZG9tYWluOworICAg
IH0pOworfQorCit2b2lkIEFkQ2xpY2tBdHRyaWJ1dGlvbk1hbmFnZXI6OmNsZWFyRXhwaXJlZCgp
Cit7CisgICAgbV91bmNvbnZlcnRlZEFkQ2xpY2tBdHRyaWJ1dGlvbk1hcC5yZW1vdmVJZihbXShh
dXRvJiBrZXlBbmRWYWx1ZSkgeworICAgICAgICByZXR1cm4ga2V5QW5kVmFsdWUudmFsdWUuaGFz
RXhwaXJlZCgpOworICAgIH0pOworfQorCit2b2lkIEFkQ2xpY2tBdHRyaWJ1dGlvbk1hbmFnZXI6
OnRvU3RyaW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikgY29uc3QKK3sKKyAgICBpZiAobV91bmNvbnZlcnRlZEFkQ2xpY2tBdHRyaWJ1dGlvbk1h
cC5pc0VtcHR5KCkgJiYgbV9jb252ZXJ0ZWRBZENsaWNrQXR0cmlidXRpb25NYXAuaXNFbXB0eSgp
KQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoIlxuTm8gc3RvcmVkIEFkIENsaWNr
IEF0dHJpYnV0aW9uIGRhdGEuXG4iX3MpOworCisgICAgdW5zaWduZWQgdW5jb252ZXJ0ZWRBdHRy
aWJ1dGlvbk51bWJlciA9IDA7CisgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOworICAgIGZvciAo
YXV0byYgYXR0cmlidXRpb24gOiBtX3VuY29udmVydGVkQWRDbGlja0F0dHJpYnV0aW9uTWFwLnZh
bHVlcygpKSB7CisgICAgICAgIGlmICghdW5jb252ZXJ0ZWRBdHRyaWJ1dGlvbk51bWJlcikKKyAg
ICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiVW5jb252ZXJ0ZWQgQWQgQ2xpY2sgQXR0
cmlidXRpb25zOlxuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KCdcbicpOworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIldlYkNvcmU6OkFkQ2xpY2tB
dHRyaWJ1dGlvbiAiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIoKyt1bmNvbnZlcnRl
ZEF0dHJpYnV0aW9uTnVtYmVyKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7CisgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKGF0dHJpYnV0aW9uLnRvU3RyaW5nKCkpOworfQorCisgICAgdW5z
aWduZWQgY29udmVydGVkQXR0cmlidXRpb25OdW1iZXIgPSAwOworICAgIGZvciAoYXV0byYgYXR0
cmlidXRpb24gOiBtX2NvbnZlcnRlZEFkQ2xpY2tBdHRyaWJ1dGlvbk1hcC52YWx1ZXMoKSkgewor
ICAgICAgICBpZiAodW5jb252ZXJ0ZWRBdHRyaWJ1dGlvbk51bWJlcikKKyAgICAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKCdcbicpOworICAgICAgICBpZiAoIWNvbnZlcnRlZEF0dHJpYnV0aW9uTnVt
YmVyKQorICAgICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJDb252ZXJ0ZWQgQWQgQ2xp
Y2sgQXR0cmlidXRpb25zOlxuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKCdcbicpOworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIldlYkNvcmU6OkFk
Q2xpY2tBdHRyaWJ1dGlvbiAiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIoKytjb252
ZXJ0ZWRBdHRyaWJ1dGlvbk51bWJlciArIHVuY29udmVydGVkQXR0cmlidXRpb25OdW1iZXIpOwor
ICAgICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoYXR0
cmlidXRpb24udG9TdHJpbmcoKSk7CisgICAgfQorCisgICAgY29tcGxldGlvbkhhbmRsZXIoYnVp
bGRlci50b1N0cmluZygpKTsKK30KKwordm9pZCBBZENsaWNrQXR0cmlidXRpb25NYW5hZ2VyOjpz
ZXRDb252ZXJzaW9uVVJMRm9yVGVzdGluZyhVUkwmJiB0ZXN0VVJMKQoreworICAgIGlmICh0ZXN0
VVJMLmlzRW1wdHkoKSkKKyAgICAgICAgbV9jb252ZXJzaW9uQmFzZVVSTEZvclRlc3RpbmcgPSB7
IH07CisgICAgZWxzZQorICAgICAgICBtX2NvbnZlcnNpb25CYXNlVVJMRm9yVGVzdGluZyA9IFdU
Rk1vdmUodGVzdFVSTCk7Cit9CisKK3ZvaWQgQWRDbGlja0F0dHJpYnV0aW9uTWFuYWdlcjo6bWFy
a0FsbFVuY29udmVydGVkQXNFeHBpcmVkRm9yVGVzdGluZygpCit7CisgICAgZm9yIChhdXRvJiBh
dHRyaWJ1dGlvbiA6IG1fdW5jb252ZXJ0ZWRBZENsaWNrQXR0cmlidXRpb25NYXAudmFsdWVzKCkp
CisgICAgICAgIGF0dHJpYnV0aW9uLm1hcmtBc0V4cGlyZWQoKTsKK30KKworYm9vbCBBZENsaWNr
QXR0cmlidXRpb25NYW5hZ2VyOjpkZWJ1Z01vZGVFbmFibGVkKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5hZENsaWNrQXR0cmli
dXRpb25EZWJ1Z01vZGVFbmFibGVkKCkgJiYgIW1fc2Vzc2lvbklELmlzRXBoZW1lcmFsKCk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9BZENsaWNrQXR0cmlidXRpb25NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL0FkQ2xpY2tBdHRyaWJ1dGlvbk1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NzRi
MGE1ZjFmMjQ1N2RmOTViMjRmZWRiNWU1NjFiYTE2NzZiMDMyCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9BZENsaWNrQXR0cmlidXRpb25NYW5hZ2VyLmgK
QEAgLTAsMCArMSw5MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAi
TmV0d29ya1Byb2Nlc3MuaCIKKyNpbmNsdWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVy
cy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQWRDbGlja0F0dHJpYnV0aW9uLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9SZWdpc3RyYWJsZURvbWFpbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VF
cnJvci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvVGltZXIuaD4KKyNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8
d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNs
dWRlIDx3dGYvV2Vha1B0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgQWRDbGlja0F0dHJpYnV0aW9uTWFuYWdlciA6IHB1
YmxpYyBDYW5NYWtlV2Vha1B0cjxBZENsaWNrQXR0cmlidXRpb25NYW5hZ2VyPiB7CisgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisKKyAgICB1c2luZyBSZWdpc3RyYWJsZURv
bWFpbiA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluOworICAgIHVzaW5nIEFkQ2xpY2tBdHRy
aWJ1dGlvbiA9IFdlYkNvcmU6OkFkQ2xpY2tBdHRyaWJ1dGlvbjsKKyAgICB1c2luZyBTb3VyY2Ug
PSBXZWJDb3JlOjpBZENsaWNrQXR0cmlidXRpb246OlNvdXJjZTsKKyAgICB1c2luZyBEZXN0aW5h
dGlvbiA9IFdlYkNvcmU6OkFkQ2xpY2tBdHRyaWJ1dGlvbjo6RGVzdGluYXRpb247CisgICAgdXNp
bmcgQ29udmVyc2lvbiA9IFdlYkNvcmU6OkFkQ2xpY2tBdHRyaWJ1dGlvbjo6Q29udmVyc2lvbjsK
KworICAgIGV4cGxpY2l0IEFkQ2xpY2tBdHRyaWJ1dGlvbk1hbmFnZXIoTmV0d29ya1Byb2Nlc3Mm
IG5ldHdvcmtQcm9jZXNzLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCisgICAgICAgIDogbV9m
aXJlUGVuZGluZ0NvbnZlcnNpb25SZXF1ZXN0c1RpbWVyKCp0aGlzLCAmQWRDbGlja0F0dHJpYnV0
aW9uTWFuYWdlcjo6ZmlyZVBlbmRpbmdDb252ZXJzaW9uUmVxdWVzdHMpCisgICAgICAgICwgbV9w
aW5nTG9hZEZ1bmN0aW9uKFtdKE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiYgcGFyYW1z
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsK
KyAgICAgICAgICAgIFVOVVNFRF9QQVJBTShwYXJhbXMpOworICAgICAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoV2ViQ29yZTo6UmVzb3VyY2VFcnJvcigpLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlKCkpOworICAgICAgICB9KQorICAgICAgICAsIG1fbmV0d29ya1Byb2Nlc3MobmV0d29ya1By
b2Nlc3MpCisgICAgICAgICwgbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQorICAgIHsKKyAgICB9CisK
KyAgICB2b2lkIHN0b3JlVW5jb252ZXJ0ZWQoQWRDbGlja0F0dHJpYnV0aW9uJiYpOworICAgIHZv
aWQgaGFuZGxlQ29udmVyc2lvbihDb252ZXJzaW9uJiYsIGNvbnN0IFVSTCYgcmVxdWVzdFVSTCwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZWRpcmVjdFJlcXVlc3QpOworICAgIHZv
aWQgY2xlYXIoKTsKKyAgICB2b2lkIGNsZWFyRm9yUmVnaXN0cmFibGVEb21haW4oY29uc3QgUmVn
aXN0cmFibGVEb21haW4mKTsKKyAgICB2b2lkIHRvU3RyaW5nKENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoU3RyaW5nKT4mJikgY29uc3Q7CisgICAgdm9pZCBzZXRQaW5nTG9hZEZ1bmN0aW9uKEZ1bmN0
aW9uPHZvaWQoTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmJiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSYpPiYmKT4mJiBwaW5nTG9hZEZ1bmN0aW9uKSB7IG1fcGluZ0xvYWRGdW5j
dGlvbiA9IFdURk1vdmUocGluZ0xvYWRGdW5jdGlvbik7IH0KKyAgICB2b2lkIHNldE92ZXJyaWRl
VGltZXJGb3JUZXN0aW5nKGJvb2wgdmFsdWUpIHsgbV9pc1J1bm5pbmdUZXN0ID0gdmFsdWU7IH0K
KyAgICB2b2lkIHNldENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFVSTCYmKTsKKyAgICB2b2lkIG1h
cmtBbGxVbmNvbnZlcnRlZEFzRXhwaXJlZEZvclRlc3RpbmcoKTsKKworcHJpdmF0ZToKKyAgICB2
b2lkIHN0YXJ0VGltZXIoU2Vjb25kcyk7CisgICAgdm9pZCBjb252ZXJ0KGNvbnN0IFNvdXJjZSYs
IGNvbnN0IERlc3RpbmF0aW9uJiwgQ29udmVyc2lvbiYmKTsKKyAgICB2b2lkIGZpcmVDb252ZXJz
aW9uUmVxdWVzdChjb25zdCBBZENsaWNrQXR0cmlidXRpb24mKTsKKyAgICB2b2lkIGZpcmVQZW5k
aW5nQ29udmVyc2lvblJlcXVlc3RzKCk7CisgICAgdm9pZCBjbGVhckV4cGlyZWQoKTsKKyAgICBi
b29sIGRlYnVnTW9kZUVuYWJsZWQoKSBjb25zdDsKKworICAgIEhhc2hNYXA8c3RkOjpwYWlyPFNv
dXJjZSwgRGVzdGluYXRpb24+LCBBZENsaWNrQXR0cmlidXRpb24+IG1fdW5jb252ZXJ0ZWRBZENs
aWNrQXR0cmlidXRpb25NYXA7CisgICAgSGFzaE1hcDxzdGQ6OnBhaXI8U291cmNlLCBEZXN0aW5h
dGlvbj4sIEFkQ2xpY2tBdHRyaWJ1dGlvbj4gbV9jb252ZXJ0ZWRBZENsaWNrQXR0cmlidXRpb25N
YXA7CisgICAgV2ViQ29yZTo6VGltZXIgbV9maXJlUGVuZGluZ0NvbnZlcnNpb25SZXF1ZXN0c1Rp
bWVyOworICAgIEZ1bmN0aW9uPHZvaWQoTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpPiYmKT4gbV9waW5nTG9hZEZ1bmN0aW9uOwor
ICAgIGJvb2wgbV9pc1J1bm5pbmdUZXN0IHsgZmFsc2UgfTsKKyAgICBPcHRpb25hbDxVUkw+IG1f
Y29udmVyc2lvbkJhc2VVUkxGb3JUZXN0aW5nOworICAgIFJlZjxOZXR3b3JrUHJvY2Vzcz4gbV9u
ZXR3b3JrUHJvY2VzczsKKyAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKK307CisgICAg
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggOGE5ZDJmMzkzOWU3MTg2YjgxZThhN2VmZDRiYmVi
NTBhNjNiMmY1OS4uMGJiODU3MzA1Mzg0Y2IzNWQ3OGE2NGRhYzk0MzRkN2ZjODI0ZDlmNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAg
LTMzMCw3ICszMzAsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjppbml0aWFsaXplTmV0d29ya1By
b2Nlc3MoTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmJgogCiAgICAgc2V0Q2FjaGVN
b2RlbChwYXJhbWV0ZXJzLmNhY2hlTW9kZWwpOwogCi0gICAgc2V0UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnREZWJ1Z01vZGUocGFyYW1ldGVycy5lbmFibGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERl
YnVnTW9kZSk7CisgICAgc2V0QWRDbGlja0F0dHJpYnV0aW9uRGVidWdNb2RlKHBhcmFtZXRlcnMu
ZW5hYmxlQWRDbGlja0F0dHJpYnV0aW9uRGVidWdNb2RlKTsKIAogICAgIGZvciAoYXV0byYgc3Vw
cGxlbWVudCA6IG1fc3VwcGxlbWVudHMudmFsdWVzKCkpCiAgICAgICAgIHN1cHBsZW1lbnQtPmlu
aXRpYWxpemUocGFyYW1ldGVycyk7CkBAIC0xMzEzLDE4ICsxMzEzLDE4IEBAIHZvaWQgTmV0d29y
a1Byb2Nlc3M6OnNldFRoaXJkUGFydHlDTkFNRURvbWFpbkZvclRlc3RpbmcoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklECiB9CiAjZW5kaWYgLy8gRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElD
UykKIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1
Z01vZGUoYm9vbCBkZWJ1Z01vZGUpCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRBZENsaWNrQXR0
cmlidXRpb25EZWJ1Z01vZGUoYm9vbCBkZWJ1Z01vZGUpCiB7Ci0gICAgaWYgKFJ1bnRpbWVFbmFi
bGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkucHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1
Z01vZGVFbmFibGVkKCkgPT0gZGVidWdNb2RlKQorICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1
cmVzOjpzaGFyZWRGZWF0dXJlcygpLmFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZUVuYWJsZWQo
KSA9PSBkZWJ1Z01vZGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIFJ1bnRpbWVFbmFibGVkRmVh
dHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01v
ZGVFbmFibGVkKGRlYnVnTW9kZSk7CisgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVk
RmVhdHVyZXMoKS5zZXRBZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGVFbmFibGVkKGRlYnVnTW9k
ZSk7CiAKLSAgICBTdHJpbmcgbWVzc2FnZSA9IGRlYnVnTW9kZSA/ICJbUHJpdmF0ZSBDbGljayBN
ZWFzdXJlbWVudF0gVHVybmVkIERlYnVnIE1vZGUgb24uIl9zIDogIltQcml2YXRlIENsaWNrIE1l
YXN1cmVtZW50XSBUdXJuZWQgRGVidWcgTW9kZSBvZmYuIl9zOworICAgIFN0cmluZyBtZXNzYWdl
ID0gZGVidWdNb2RlID8gIltBZCBDbGljayBBdHRyaWJ1dGlvbl0gVHVybmVkIERlYnVnIE1vZGUg
b24uIl9zIDogIltBZCBDbGljayBBdHRyaWJ1dGlvbl0gVHVybmVkIERlYnVnIE1vZGUgb2ZmLiJf
czsKICAgICBmb3IgKGF1dG8mIG5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzIDogbV93ZWJQ
cm9jZXNzQ29ubmVjdGlvbnMudmFsdWVzKCkpIHsKICAgICAgICAgaWYgKG5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLT5zZXNzaW9uSUQoKS5pc0VwaGVtZXJhbCgpKQogICAgICAgICAgICAg
Y29udGludWU7Ci0gICAgICAgIG5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLT5icm9hZGNh
c3RDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwg
TWVzc2FnZUxldmVsOjpJbmZvLCBtZXNzYWdlKTsKKyAgICAgICAgbmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MtPmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkFkQ2xp
Y2tBdHRyaWJ1dGlvbiwgTWVzc2FnZUxldmVsOjpJbmZvLCBtZXNzYWdlKTsKICAgICB9CiB9CiAK
QEAgLTE1ODMsOSArMTU4Myw5IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmRlbGV0ZVdlYnNpdGVE
YXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpCiAgICAgaWYgKHdl
YnNpdGVEYXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURhdGFUeXBlOjpEaXNrQ2FjaGUpICYmICFz
ZXNzaW9uSUQuaXNFcGhlbWVyYWwoKSkKICAgICAgICAgY2xlYXJEaXNrQ2FjaGUobW9kaWZpZWRT
aW5jZSwgW2NsZWFyVGFza3NIYW5kbGVyID0gV1RGTW92ZShjbGVhclRhc2tzSGFuZGxlcildIHsg
fSk7CiAKLSAgICBpZiAod2Vic2l0ZURhdGFUeXBlcy5jb250YWlucyhXZWJzaXRlRGF0YVR5cGU6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50cykpIHsKKyAgICBpZiAod2Vic2l0ZURhdGFUeXBlcy5j
b250YWlucyhXZWJzaXRlRGF0YVR5cGU6OkFkQ2xpY2tBdHRyaWJ1dGlvbnMpKSB7CiAgICAgICAg
IGlmIChhdXRvKiBuZXR3b3JrU2Vzc2lvbiA9IHRoaXMtPm5ldHdvcmtTZXNzaW9uKHNlc3Npb25J
RCkpCi0gICAgICAgICAgICBuZXR3b3JrU2Vzc2lvbi0+Y2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudCgpOworICAgICAgICAgICAgbmV0d29ya1Nlc3Npb24tPmNsZWFyQWRDbGlja0F0dHJpYnV0
aW9uKCk7CiAgICAgfQogCiAjaWYgSEFWRShDRk5FVFdPUktfQUxURVJOQVRJVkVfU0VSVklDRSkK
QEAgLTE2NDQsMTAgKzE2NDQsMTAgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGVsZXRlV2Vic2l0
ZURhdGFGb3JPcmlnaW5zKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW8KICAgICB9CiAj
ZW5kaWYKIAotICAgIGlmICh3ZWJzaXRlRGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlw
ZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzKSkgeworICAgIGlmICh3ZWJzaXRlRGF0YVR5cGVz
LmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6QWRDbGlja0F0dHJpYnV0aW9ucykpIHsKICAgICAg
ICAgaWYgKGF1dG8qIG5ldHdvcmtTZXNzaW9uID0gdGhpcy0+bmV0d29ya1Nlc3Npb24oc2Vzc2lv
bklEKSkgewogICAgICAgICAgICAgZm9yIChhdXRvJiBvcmlnaW5EYXRhIDogb3JpZ2luRGF0YXMp
Ci0gICAgICAgICAgICAgICAgbmV0d29ya1Nlc3Npb24tPmNsZWFyUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRGb3JSZWdpc3RyYWJsZURvbWFpbihSZWdpc3RyYWJsZURvbWFpbjo6dW5jaGVja2VkQ3Jl
YXRlRnJvbUhvc3Qob3JpZ2luRGF0YS5ob3N0KSk7CisgICAgICAgICAgICAgICAgbmV0d29ya1Nl
c3Npb24tPmNsZWFyQWRDbGlja0F0dHJpYnV0aW9uRm9yUmVnaXN0cmFibGVEb21haW4oUmVnaXN0
cmFibGVEb21haW46OnVuY2hlY2tlZENyZWF0ZUZyb21Ib3N0KG9yaWdpbkRhdGEuaG9zdCkpOwog
ICAgICAgICB9CiAgICAgfQogICAgIApAQCAtMjUzMiw0OCArMjUzMiw0OCBAQCB2b2lkIE5ldHdv
cmtQcm9jZXNzOjpwbGF0Zm9ybUZsdXNoQ29va2llcyhjb25zdCBQQUw6OlNlc3Npb25JRCYsIENv
bXBsZXRpb25IYW5kbAogCiAjZW5kaWYKIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6c3RvcmVQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlBy
aXZhdGVDbGlja01lYXN1cmVtZW50JiYgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpCit2b2lkIE5l
dHdvcmtQcm9jZXNzOjpzdG9yZUFkQ2xpY2tBdHRyaWJ1dGlvbihQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIFdlYkNvcmU6OkFkQ2xpY2tBdHRyaWJ1dGlvbiYmIGFkQ2xpY2tBdHRyaWJ1dGlvbikK
IHsKICAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpCi0g
ICAgICAgIHNlc3Npb24tPnN0b3JlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoV1RGTW92ZShwcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCkpOworICAgICAgICBzZXNzaW9uLT5zdG9yZUFkQ2xpY2tBdHRy
aWJ1dGlvbihXVEZNb3ZlKGFkQ2xpY2tBdHRyaWJ1dGlvbikpOwogfQogCi12b2lkIE5ldHdvcmtQ
cm9jZXNzOjpkdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYgY29tcGxldGlvbkhhbmRsZXIp
Cit2b2lkIE5ldHdvcmtQcm9jZXNzOjpkdW1wQWRDbGlja0F0dHJpYnV0aW9uKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQogewogICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vz
c2lvbklEKSkKLSAgICAgICAgcmV0dXJuIHNlc3Npb24tPmR1bXBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudChXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgICAgIHJldHVybiBzZXNzaW9u
LT5kdW1wQWRDbGlja0F0dHJpYnV0aW9uKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIAog
ICAgIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6OmNs
ZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtQ
cm9jZXNzOjpjbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBp
ZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpCi0gICAgICAgIHNl
c3Npb24tPmNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKKyAgICAgICAgc2Vzc2lvbi0+
Y2xlYXJBZENsaWNrQXR0cmlidXRpb24oKTsKICAgICAKICAgICBjb21wbGV0aW9uSGFuZGxlcigp
OwogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92
ZXJyaWRlVGltZXJGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCB2YWx1
ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBO
ZXR3b3JrUHJvY2Vzczo6c2V0QWRDbGlja0F0dHJpYnV0aW9uT3ZlcnJpZGVUaW1lckZvclRlc3Rp
bmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBib29sIHZhbHVlLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKGF1dG8qIHNlc3Npb24g
PSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKQotICAgICAgICBzZXNzaW9uLT5zZXRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKHZhbHVlKTsKKyAgICAgICAg
c2Vzc2lvbi0+c2V0QWRDbGlja0F0dHJpYnV0aW9uT3ZlcnJpZGVUaW1lckZvclRlc3RpbmcodmFs
dWUpOwogICAgIAogICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9CiAKLXZvaWQgTmV0d29ya1By
b2Nlc3M6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3Rpbmco
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwmJiB1cmwsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldEFkQ2xp
Y2tBdHRyaWJ1dGlvbkNvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgVVJMJiYgdXJsLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCiB7CiAgICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9u
SUQpKQotICAgICAgICBzZXNzaW9uLT5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNp
b25VUkxGb3JUZXN0aW5nKFdURk1vdmUodXJsKSk7CisgICAgICAgIHNlc3Npb24tPnNldEFkQ2xp
Y2tBdHRyaWJ1dGlvbkNvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFdURk1vdmUodXJsKSk7CiAgICAg
CiAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6bWFy
a1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCit2b2lkIE5ldHdvcmtQcm9jZXNzOjptYXJrQWRDbGlja0F0dHJpYnV0aW9uc0FzRXhwaXJl
ZEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKGF1dG8qIHNlc3Npb24gPSBu
ZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKQotICAgICAgICBzZXNzaW9uLT5tYXJrUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZygpOworICAgICAgICBzZXNzaW9uLT5t
YXJrQWRDbGlja0F0dHJpYnV0aW9uc0FzRXhwaXJlZEZvclRlc3RpbmcoKTsKIAogICAgIGNvbXBs
ZXRpb25IYW5kbGVyKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmgKaW5kZXggYmU1MjZlZmYxZThjOTFkMzZlYTg5Yjg3ZTdiNTY3OTU4YTk1NmZi
Mi4uMWE3N2ZhYjk2MWRmMmU1ZTMwNjEyNjlmNTkyYTJjNGM4Njk0NmY5ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtMzksNiArMzksNyBA
QAogI2luY2x1ZGUgIldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIgogI2luY2x1ZGUg
IldlYnNpdGVEYXRhLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9BZENsaWNrQXR0cmlidXRpb24uaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0NsaWVudE9yaWdpbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ3Jvc3NTaXRlTmF2aWdhdGlv
bkRhdGFUcmFuc2Zlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQuaD4KQEAgLTQ2LDcgKzQ3LDYgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0lEQktleURhdGEuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL01lc3NhZ2VQb3J0Q2hhbm5lbFJlZ2lzdHJ5Lmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlZ2lzdHJhYmxlRG9tYWluLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VySWRlbnRpZmllci5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+CkBAIC0yNzUsNyArMjc1LDcgQEAgcHVibGlj
OgogICAgIHZvaWQgc2V0VGhpcmRQYXJ0eUNOQU1FRG9tYWluRm9yVGVzdGluZyhQQUw6OlNlc3Np
b25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKICNlbmRpZgogCi0gICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERl
YnVnTW9kZShib29sKTsKKyAgICB2b2lkIHNldEFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZShi
b29sKTsKIAogICAgIHVzaW5nIENhY2hlU3RvcmFnZVJvb3RQYXRoQ2FsbGJhY2sgPSBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFN0cmluZyYmKT47CiAgICAgdm9pZCBjYWNoZVN0b3JhZ2VSb290UGF0
aChQQUw6OlNlc3Npb25JRCwgQ2FjaGVTdG9yYWdlUm9vdFBhdGhDYWxsYmFjayYmKTsKQEAgLTMz
MiwxMiArMzMyLDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW92ZUNhY2hlRW5naW5lKGNvbnN0
IFBBTDo6U2Vzc2lvbklEJik7CiAgICAgdm9pZCByZXF1ZXN0U3RvcmFnZVNwYWNlKFBBTDo6U2Vz
c2lvbklELCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCB1aW50NjRfdCBxdW90YSwgdWlu
dDY0X3QgY3VycmVudFNpemUsIHVpbnQ2NF90IHNwYWNlUmVxdWlyZWQsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoT3B0aW9uYWw8dWludDY0X3Q+KT4mJik7CiAKLSAgICB2b2lkIHN0b3JlUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQoUEFMOjpTZXNzaW9uSUQsIFdlYkNvcmU6OlByaXZhdGVDbGlja01l
YXN1cmVtZW50JiYpOwotICAgIHZvaWQgZHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50KFBBTDo6
U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYpOwotICAgIHZvaWQg
Y2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3Zl
cnJpZGVUaW1lckZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIGJvb2wgdmFsdWUsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBVUkwmJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIG1hcmtQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dHNBc0V4cGlyZWRGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOworICAgIHZvaWQgc3RvcmVBZENsaWNrQXR0cmlidXRpb24oUEFMOjpTZXNzaW9u
SUQsIFdlYkNvcmU6OkFkQ2xpY2tBdHRyaWJ1dGlvbiYmKTsKKyAgICB2b2lkIGR1bXBBZENsaWNr
QXR0cmlidXRpb24oUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5n
KT4mJik7CisgICAgdm9pZCBjbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbihQQUw6OlNlc3Npb25JRCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIHNldEFkQ2xpY2tBdHRyaWJ1
dGlvbk92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBib29sIHZhbHVlLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc2V0QWRDbGlja0F0dHJpYnV0
aW9uQ29udmVyc2lvblVSTEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIFVSTCYmLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgbWFya0FkQ2xpY2tBdHRyaWJ1dGlvbnNB
c0V4cGlyZWRGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOwogCiAgICAgUmVmUHRyPFdlYkNvcmU6OlN0b3JhZ2VRdW90YU1hbmFnZXI+IHN0b3Jh
Z2VRdW90YU1hbmFnZXIoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdp
biYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCAwZjAxOTA1NmU1YjU3ZjUzMzRiOGNlNzM4MjZlMmZh
MDU2ODg5M2JmLi4yMGZmYmNjM2ZjZGZhZGVhM2MwYTM0OTZjNTI4MjI0ODRmZmRhYTE1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
bWVzc2FnZXMuaW4KQEAgLTE0OCw3ICsxNDgsNyBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2Vz
cyBMZWdhY3lSZWNlaXZlciB7CiAgICAgU2V0VGhpcmRQYXJ0eUNOQU1FRG9tYWluRm9yVGVzdGlu
ZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIGRv
bWFpbikgLT4gKCkgQXN5bmMKICNlbmRpZgogCi0gICAgU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnREZWJ1Z01vZGUoYm9vbCBkZWJ1Z01vZGUpCisgICAgU2V0QWRDbGlja0F0dHJpYnV0aW9uRGVi
dWdNb2RlKGJvb2wgZGVidWdNb2RlKQogCiAgICAgU2V0U2Vzc2lvbklzQ29udHJvbGxlZEJ5QXV0
b21hdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgY29udHJvbGxlZCk7CiAKQEAg
LTE2MSwxMiArMTYxLDEyIEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzIExlZ2FjeVJlY2Vp
dmVyIHsKIAogICAgIFN5bmNMb2NhbFN0b3JhZ2UoKSAtPiAoKSBBc3luYwogCi0gICAgU3RvcmVQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50IHByaXZhdGVDbGlja01lYXN1cmVtZW50KQotICAgIER1
bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChT
dHJpbmcgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdGF0ZSkgQXN5bmMKLSAgICBDbGVhclByaXZh
dGVDbGlja01lYXN1cmVtZW50KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKCkgQXN5bmMK
LSAgICBTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCB2YWx1ZSkgLT4gKCkgQXN5bmMKLSAgICBTZXRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgVVJMIHVybCkgLT4gKCkgQXN5bmMKLSAgICBNYXJrUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQp
IC0+ICgpIEFzeW5jCisgICAgU3RvcmVBZENsaWNrQXR0cmlidXRpb24oUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBXZWJDb3JlOjpBZENsaWNrQXR0cmlidXRpb24gYWRDbGlja0F0dHJpYnV0aW9u
KQorICAgIER1bXBBZENsaWNrQXR0cmlidXRpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAt
PiAoU3RyaW5nIGFkQ2xpY2tBdHRyaWJ1dGlvblN0YXRlKSBBc3luYworICAgIENsZWFyQWRDbGlj
a0F0dHJpYnV0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKCkgQXN5bmMKKyAgICBT
ZXRBZENsaWNrQXR0cmlidXRpb25PdmVycmlkZVRpbWVyRm9yVGVzdGluZyhQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIGJvb2wgdmFsdWUpIC0+ICgpIEFzeW5jCisgICAgU2V0QWRDbGlja0F0dHJp
YnV0aW9uQ29udmVyc2lvblVSTEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBV
UkwgdXJsKSAtPiAoKSBBc3luYworICAgIE1hcmtBZENsaWNrQXR0cmlidXRpb25zQXNFeHBpcmVk
Rm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+ICgpIEFzeW5jCiAgICAgR2V0
TG9jYWxTdG9yYWdlT3JpZ2luRGV0YWlscyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChW
ZWN0b3I8V2ViS2l0OjpMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXI6Ok9yaWdpbkRldGFpbHM+
IGRldGFpbHMpIEFzeW5jCiAKICAgICBTZXRTZXJ2aWNlV29ya2VyRmV0Y2hUaW1lb3V0Rm9yVGVz
dGluZyhTZWNvbmRzIHNlY29uZHMpIC0+ICgpIFN5bmNocm9ub3VzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuY3BwCmluZGV4IGZkYTgxNTBkMDkxZjE1MDA0OTJlZGRmOTVkYTU2OGEzNWEy
MzFkMTUuLjQ5ZmE4ODBhODk2NTEwODRhNTgzOTkxZDdhMTBmZWU3MGI1NTIxZjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC02NSw3ICs2NSw3IEBAIHZvaWQgTmV0d29y
a1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIp
IGNvbnN0CiAgICAgZW5jb2RlciA8PCB1cmxTY2hlbWVzUmVnaXN0ZXJlZEFzTG9jYWw7CiAgICAg
ZW5jb2RlciA8PCB1cmxTY2hlbWVzUmVnaXN0ZXJlZEFzTm9BY2Nlc3M7CiAKLSAgICBlbmNvZGVy
IDw8IGVuYWJsZVByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlOworICAgIGVuY29kZXIg
PDwgZW5hYmxlQWRDbGlja0F0dHJpYnV0aW9uRGVidWdNb2RlOwogfQogCiBib29sIE5ldHdvcmtQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBO
ZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcmVzdWx0KQpAQCAtMTI1LDcgKzEyNSw3
IEBAIGJvb2wgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRl
Y29kZXImIGRlY29kZXIsIE5ldHdvcmtQcm9jCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1
bHQudXJsU2NoZW1lc1JlZ2lzdGVyZWRBc05vQWNjZXNzKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCi0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuZW5hYmxlUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnREZWJ1Z01vZGUpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmVuYWJs
ZUFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAog
ICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IGIwNGZj
NGMxZDZmYTM5OTE3MDBjZWVkYmIwNDk1YWMzNGJkYmVhZTUuLjc4MjlhMmRjMWMyYjJhOGVmYzJk
YTkyZWEyYWY0ZDRmODM2MjE3NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAg
LTc5LDcgKzc5LDcgQEAgc3RydWN0IE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsK
ICAgICBWZWN0b3I8U3RyaW5nPiB1cmxTY2hlbWVzUmVnaXN0ZXJlZEFzTG9jYWw7CiAgICAgVmVj
dG9yPFN0cmluZz4gdXJsU2NoZW1lc1JlZ2lzdGVyZWRBc05vQWNjZXNzOwogCi0gICAgYm9vbCBl
bmFibGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZSB7IGZhbHNlIH07CisgICAgYm9v
bCBlbmFibGVBZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGUgeyBmYWxzZSB9OwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggMzVlOTk5NGQ3NGQ1MTBhYTRlMTQ1
ODQ4YzcyZDJiNTg1ZTBiYzBjOC4uMjlhZWZmZmQwYjJiODBlNzc5YjQxNjkxYTAwODA0ZTZiMTI5
ZDNhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVz
b3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Jlc291cmNlTG9hZGVyLmNwcApAQCAtODE0LDEyICs4MTQsMTIgQEAgdm9pZCBOZXR3b3JrUmVz
b3VyY2VMb2FkZXI6OndpbGxTZW5kUmVkaXJlY3RlZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYg
cmVxdWVzdCwKICAgICArK21fcmVkaXJlY3RDb3VudDsKICAgICBtX3JlZGlyZWN0UmVzcG9uc2Ug
PSByZWRpcmVjdFJlc3BvbnNlOwogCi0gICAgT3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OkNvbnZlcnNpb24+IHByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvbjsKKyAgICBP
cHRpb25hbDxBZENsaWNrQXR0cmlidXRpb246OkNvbnZlcnNpb24+IGFkQ2xpY2tDb252ZXJzaW9u
OwogICAgIGlmICghc2Vzc2lvbklEKCkuaXNFcGhlbWVyYWwoKSkgewotICAgICAgICBpZiAoYXV0
byByZXN1bHQgPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VDb252ZXJzaW9uUmVxdWVz
dChyZWRpcmVjdFJlcXVlc3QudXJsKCkpKQotICAgICAgICAgICAgcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRDb252ZXJzaW9uID0gcmVzdWx0LnZhbHVlKCk7CisgICAgICAgIGlmIChhdXRvIHJlc3Vs
dCA9IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChyZWRpcmVjdFJl
cXVlc3QudXJsKCkpKQorICAgICAgICAgICAgYWRDbGlja0NvbnZlcnNpb24gPSByZXN1bHQudmFs
dWUoKTsKICAgICAgICAgZWxzZSBpZiAoIXJlc3VsdC5lcnJvcigpLmlzRW1wdHkoKSkKLSAgICAg
ICAgICAgIGFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlByaXZhdGVDbGlja01lYXN1
cmVtZW50LCBNZXNzYWdlTGV2ZWw6OkVycm9yLCByZXN1bHQuZXJyb3IoKSk7CisgICAgICAgICAg
ICBhZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpBZENsaWNrQXR0cmlidXRpb24sIE1l
c3NhZ2VMZXZlbDo6RXJyb3IsIHJlc3VsdC5lcnJvcigpKTsKICAgICB9CiAKICAgICBhdXRvIG1h
eEFnZUNhcCA9IHZhbGlkYXRlQ2FjaGVFbnRyeUZvck1heEFnZUNhcFZhbGlkYXRpb24ocmVxdWVz
dCwgcmVkaXJlY3RSZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsKQEAgLTgyNywxMiArODI3LDEy
IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0
KFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsCiAgICAgICAgIG1fY2FjaGUtPnN0b3JlUmVkaXJl
Y3QocmVxdWVzdCwgcmVkaXJlY3RSZXNwb25zZSwgcmVkaXJlY3RSZXF1ZXN0LCBtYXhBZ2VDYXAp
OwogCiAgICAgaWYgKG1fbmV0d29ya0xvYWRDaGVja2VyKSB7Ci0gICAgICAgIGlmIChwcml2YXRl
Q2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb24pCisgICAgICAgIGlmIChhZENsaWNrQ29udmVyc2lv
bikKICAgICAgICAgICAgIG1fbmV0d29ya0xvYWRDaGVja2VyLT5lbmFibGVDb250ZW50RXh0ZW5z
aW9uc0NoZWNrKCk7CiAgICAgICAgIG1fbmV0d29ya0xvYWRDaGVja2VyLT5zdG9yZVJlZGlyZWN0
aW9uSWZOZWVkZWQocmVxdWVzdCwgcmVkaXJlY3RSZXNwb25zZSk7CiAKICAgICAgICAgUkVMRUFT
RV9MT0dfSUZfQUxMT1dFRCgid2lsbFNlbmRSZWRpcmVjdGVkUmVxdWVzdDogQ2hlY2tpbmcgcmVk
aXJlY3QgdXNpbmcgTmV0d29ya0xvYWRDaGVja2VyIik7Ci0gICAgICAgIG1fbmV0d29ya0xvYWRD
aGVja2VyLT5jaGVja1JlZGlyZWN0aW9uKFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUocmVkaXJl
Y3RSZXF1ZXN0KSwgV1RGTW92ZShyZWRpcmVjdFJlc3BvbnNlKSwgdGhpcywgW3Byb3RlY3RlZFRo
aXMgPSBtYWtlUmVmKCp0aGlzKSwgdGhpcywgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPSBtX25l
dHdvcmtMb2FkQ2hlY2tlci0+c3RvcmVkQ3JlZGVudGlhbHNQb2xpY3koKSwgcHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRDb252ZXJzaW9uID0gV1RGTW92ZShwcml2YXRlQ2xpY2tNZWFzdXJlbWVudENv
bnZlcnNpb24pXShhdXRvJiYgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgbV9uZXR3b3JrTG9h
ZENoZWNrZXItPmNoZWNrUmVkaXJlY3Rpb24oV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShyZWRp
cmVjdFJlcXVlc3QpLCBXVEZNb3ZlKHJlZGlyZWN0UmVzcG9uc2UpLCB0aGlzLCBbcHJvdGVjdGVk
VGhpcyA9IG1ha2VSZWYoKnRoaXMpLCB0aGlzLCBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSA9IG1f
bmV0d29ya0xvYWRDaGVja2VyLT5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSgpLCBhZENsaWNrQ29u
dmVyc2lvbiA9IFdURk1vdmUoYWRDbGlja0NvbnZlcnNpb24pXShhdXRvJiYgcmVzdWx0KSBtdXRh
YmxlIHsKICAgICAgICAgICAgIGlmICghcmVzdWx0Lmhhc192YWx1ZSgpKSB7CiAgICAgICAgICAg
ICAgICAgaWYgKHJlc3VsdC5lcnJvcigpLmlzQ2FuY2VsbGF0aW9uKCkpIHsKICAgICAgICAgICAg
ICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgid2lsbFNlbmRSZWRpcmVjdGVkUmVxdWVz
dDogTmV0d29ya0xvYWRDaGVja2VyOjpjaGVja1JlZGlyZWN0aW9uIHJldHVybmVkIHdpdGggYSBj
YW5jZWxsYXRpb24iKTsKQEAgLTg2NSwxNiArODY1LDE2IEBAIHZvaWQgTmV0d29ya1Jlc291cmNl
TG9hZGVyOjp3aWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmIHJlcXVl
c3QsCiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIG1fc2hvdWxkUmVzdGFydExvYWQgPSBz
dG9yZWRDcmVkZW50aWFsc1BvbGljeSAhPSBtX25ldHdvcmtMb2FkQ2hlY2tlci0+c3RvcmVkQ3Jl
ZGVudGlhbHNQb2xpY3koKTsKLSAgICAgICAgICAgIHRoaXMtPmNvbnRpbnVlV2lsbFNlbmRSZWRp
cmVjdGVkUmVxdWVzdChXVEZNb3ZlKHJlc3VsdC0+cmVxdWVzdCksIFdURk1vdmUocmVzdWx0LT5y
ZWRpcmVjdFJlcXVlc3QpLCBXVEZNb3ZlKHJlc3VsdC0+cmVkaXJlY3RSZXNwb25zZSksIFdURk1v
dmUocHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uKSk7CisgICAgICAgICAgICB0aGlz
LT5jb250aW51ZVdpbGxTZW5kUmVkaXJlY3RlZFJlcXVlc3QoV1RGTW92ZShyZXN1bHQtPnJlcXVl
c3QpLCBXVEZNb3ZlKHJlc3VsdC0+cmVkaXJlY3RSZXF1ZXN0KSwgV1RGTW92ZShyZXN1bHQtPnJl
ZGlyZWN0UmVzcG9uc2UpLCBXVEZNb3ZlKGFkQ2xpY2tDb252ZXJzaW9uKSk7CiAgICAgICAgIH0p
OwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGNvbnRpbnVlV2lsbFNlbmRSZWRpcmVjdGVk
UmVxdWVzdChXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKHJlZGlyZWN0UmVxdWVzdCksIFdURk1v
dmUocmVkaXJlY3RSZXNwb25zZSksIFdURk1vdmUocHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252
ZXJzaW9uKSk7CisgICAgY29udGludWVXaWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0KFdURk1vdmUo
cmVxdWVzdCksIFdURk1vdmUocmVkaXJlY3RSZXF1ZXN0KSwgV1RGTW92ZShyZWRpcmVjdFJlc3Bv
bnNlKSwgV1RGTW92ZShhZENsaWNrQ29udmVyc2lvbikpOwogfQogCi12b2lkIE5ldHdvcmtSZXNv
dXJjZUxvYWRlcjo6Y29udGludWVXaWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0KFJlc291cmNlUmVx
dWVzdCYmIHJlcXVlc3QsIFJlc291cmNlUmVxdWVzdCYmIHJlZGlyZWN0UmVxdWVzdCwgUmVzb3Vy
Y2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIE9wdGlvbmFsPFByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpDb252ZXJzaW9uPiYmIHByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvbikK
K3ZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpjb250aW51ZVdpbGxTZW5kUmVkaXJlY3RlZFJl
cXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVkaXJl
Y3RSZXF1ZXN0LCBSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgT3B0aW9uYWw8
QWRDbGlja0F0dHJpYnV0aW9uOjpDb252ZXJzaW9uPiYmIGFkQ2xpY2tDb252ZXJzaW9uKQogewot
ICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImNvbnRpbnVlV2lsbFNlbmRSZWRpcmVjdGVkUmVx
dWVzdDogKG1faXNLZXB0QWxpdmU9JWQsIGhhc0FkQ2xpY2tDb252ZXJzaW9uPSVkKSIsIG1faXNL
ZXB0QWxpdmUsICEhcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uKTsKKyAgICBSRUxF
QVNFX0xPR19JRl9BTExPV0VEKCJjb250aW51ZVdpbGxTZW5kUmVkaXJlY3RlZFJlcXVlc3Q6ICht
X2lzS2VwdEFsaXZlPSVkLCBoYXNBZENsaWNrQ29udmVyc2lvbj0lZCkiLCBtX2lzS2VwdEFsaXZl
LCAhIWFkQ2xpY2tDb252ZXJzaW9uKTsKICAgICBBU1NFUlQoIWlzU3luY2hyb25vdXMoKSk7CiAK
ICAgICBpZiAobV9pc0tlcHRBbGl2ZSkgewpAQCAtODgzLDggKzg4Myw4IEBAIHZvaWQgTmV0d29y
a1Jlc291cmNlTG9hZGVyOjpjb250aW51ZVdpbGxTZW5kUmVkaXJlY3RlZFJlcXVlc3QoUmVzb3Vy
Y2VSZXF1ZXN0JiYKICAgICB9CiAKICAgICBOZXR3b3JrU2Vzc2lvbiogbmV0d29ya1Nlc3Npb24g
PSBudWxscHRyOwotICAgIGlmIChwcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb24gJiYg
KG5ldHdvcmtTZXNzaW9uID0gbV9jb25uZWN0aW9uLT5uZXR3b3JrUHJvY2VzcygpLm5ldHdvcmtT
ZXNzaW9uKHNlc3Npb25JRCgpKSkpCi0gICAgICAgIG5ldHdvcmtTZXNzaW9uLT5oYW5kbGVQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb24oV1RGTW92ZSgqcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRDb252ZXJzaW9uKSwgcmVxdWVzdC51cmwoKSwgcmVkaXJlY3RSZXF1ZXN0KTsKKyAgICBp
ZiAoYWRDbGlja0NvbnZlcnNpb24gJiYgKG5ldHdvcmtTZXNzaW9uID0gbV9jb25uZWN0aW9uLT5u
ZXR3b3JrUHJvY2VzcygpLm5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCgpKSkpCisgICAgICAgIG5l
dHdvcmtTZXNzaW9uLT5oYW5kbGVBZENsaWNrQXR0cmlidXRpb25Db252ZXJzaW9uKFdURk1vdmUo
KmFkQ2xpY2tDb252ZXJzaW9uKSwgcmVxdWVzdC51cmwoKSwgcmVkaXJlY3RSZXF1ZXN0KTsKIAog
ICAgIC8vIFdlIHNlbmQgdGhlIHJlcXVlc3QgYm9keSBzZXBhcmF0ZWx5IGJlY2F1c2UgdGhlIFJl
c291cmNlUmVxdWVzdCBib2R5IG5vcm1hbGx5IGRvZXMgbm90IGdldCBlbmNvZGVkIHdoZW4gc2Vu
dCBvdmVyIElQQywgYXMgYW4gb3B0aW1pemF0aW9uLgogICAgIC8vIEhvd2V2ZXIsIHdlIHJlYWxs
eSBuZWVkIHRoZSBib2R5IGhlcmUgYmVjYXVzZSBhIHJlZGlyZWN0IGNyb3NzLXNpdGUgbWF5IGNh
dXNlIGEgcHJvY2Vzcy1zd2FwIGFuZCB0aGUgcmVxdWVzdCB0byBzdGFydCBhZ2FpbiBpbiBhIG5l
dyBXZWJDb250ZW50IHByb2Nlc3MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaAppbmRleCA1NjE1ZmZlNzUzNDVmMjRlMjUxZWJh
NmE1MDRlZjNjMTA5NTBkYmU4Li44ZWJmMjczY2Q5ZWFmNDEyMzIwNzg4YjM4NmEyNzhmOTE4Zjc0
MGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNv
dXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jl
c291cmNlTG9hZGVyLmgKQEAgLTMzLDkgKzMzLDkgQEAKICNpbmNsdWRlICJOZXR3b3JrTG9hZENs
aWVudC5oIgogI2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxvYWRJZGVudGlmaWVyLmgiCiAjaW5j
bHVkZSAiTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L0FkQ2xpY2tBdHRyaWJ1dGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ29udGVudFNlY3VyaXR5
UG9saWN5Q2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRy
b2wuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Lmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1
cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UaW1lci5oPgpA
QCAtMTkxLDcgKzE5MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBsb2dDb29raWVJbmZvcm1hdGlv
bigpIGNvbnN0OwogI2VuZGlmCiAKLSAgICB2b2lkIGNvbnRpbnVlV2lsbFNlbmRSZWRpcmVjdGVk
UmVxdWVzdChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiYgcmVkaXJlY3RSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYsIE9wdGlv
bmFsPFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDb252ZXJzaW9uPiYmKTsKKyAg
ICB2b2lkIGNvbnRpbnVlV2lsbFNlbmRSZWRpcmVjdGVkUmVxdWVzdChXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVkaXJlY3RSZXF1ZXN0LCBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYsIE9wdGlvbmFsPFdlYkNvcmU6OkFkQ2xpY2tBdHRy
aWJ1dGlvbjo6Q29udmVyc2lvbj4mJik7CiAgICAgdm9pZCBkaWRGaW5pc2hXaXRoUmVkaXJlY3RS
ZXNwb25zZShXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiYgcmVkaXJlY3RSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYpOwogICAg
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Ugc2FuaXRpemVSZXNwb25zZUlmUG9zc2libGUoV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSYmLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlOjpTYW5p
dGl6YXRpb25UeXBlKTsKIApAQCAtMjAyLDcgKzIwMiw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lk
IGxvZ1Nsb3dDYWNoZVJldHJpZXZlSWZOZWVkZWQoY29uc3QgTmV0d29ya0NhY2hlOjpDYWNoZTo6
UmV0cmlldmVJbmZvJik7CiAKLSAgICB2b2lkIGhhbmRsZVByaXZhdGVDbGlja01lYXN1cmVtZW50
Q29udmVyc2lvbihXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q29udmVyc2lvbiYm
LCBjb25zdCBVUkwmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICB2b2lk
IGhhbmRsZUFkQ2xpY2tBdHRyaWJ1dGlvbkNvbnZlcnNpb24oV2ViQ29yZTo6QWRDbGlja0F0dHJp
YnV0aW9uOjpDb252ZXJzaW9uJiYsIGNvbnN0IFVSTCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYpOwogCiAgICAgT3B0aW9uYWw8U2Vjb25kcz4gdmFsaWRhdGVDYWNoZUVudHJ5Rm9y
TWF4QWdlQ2FwVmFsaWRhdGlvbihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlZGlyZWN0UmVxdWVzdCwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Nlc3Npb24uY3BwCmluZGV4IDhjZTU5MTQxMjM0YWViZjVlNDllMmJkYzhhNjgy
ZmI1ODRjYTI4NTEuLmExY2U3NjJkNWViMmJhODlkM2Q4YzNkZTZjNjdlMDYzYWQ2N2UzZjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCkBA
IC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Nl
c3Npb24uaCIKIAorI2luY2x1ZGUgIkFkQ2xpY2tBdHRyaWJ1dGlvbk1hbmFnZXIuaCIKICNpbmNs
dWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3MuaCIKICNpbmNsdWRlICJO
ZXR3b3JrUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKQEAgLTMzLDExICszNCwxMSBAQAogI2luY2x1
ZGUgIk5ldHdvcmtSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uQ3Jl
YXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiUGluZ0xvYWQuaCIKLSNpbmNsdWRlICJQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIK
ICNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQ
cm94eS5oIgogI2luY2x1ZGUgIldlYlNvY2tldFRhc2suaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0Fk
Q2xpY2tBdHRyaWJ1dGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ29va2llSmFyLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KIApAQCAtOTAsNyArOTEsNyBAQCBOZXR3
b3JrU2Vzc2lvbjo6TmV0d29ya1Nlc3Npb24oTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNz
LCBjb25zdCBOZXR3b3JrU2VzcwogICAgICwgbV9maXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFs
TW9kZShwYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzLmZpcnN0UGFy
dHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlKQogICAgICwgbV9zdGFuZGFsb25lQXBwbGljYXRpb25E
b21haW4ocGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycy5zdGFuZGFs
b25lQXBwbGljYXRpb25Eb21haW4pCiAjZW5kaWYKLSAgICAsIG1fcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQobWFrZVVuaXF1ZVJlZjxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI+KG5ldHdv
cmtQcm9jZXNzLCBwYXJhbWV0ZXJzLnNlc3Npb25JRCkpCisgICAgLCBtX2FkQ2xpY2tBdHRyaWJ1
dGlvbihtYWtlVW5pcXVlUmVmPEFkQ2xpY2tBdHRyaWJ1dGlvbk1hbmFnZXI+KG5ldHdvcmtQcm9j
ZXNzLCBwYXJhbWV0ZXJzLnNlc3Npb25JRCkpCiAgICAgLCBtX3Rlc3RTcGVlZE11bHRpcGxpZXIo
cGFyYW1ldGVycy50ZXN0U3BlZWRNdWx0aXBsaWVyKQogICAgICwgbV9hbGxvd3NTZXJ2ZXJQcmVj
b25uZWN0KHBhcmFtZXRlcnMuYWxsb3dzU2VydmVyUHJlY29ubmVjdCkKIHsKQEAgLTExOSw3ICsx
MjAsNyBAQCBOZXR3b3JrU2Vzc2lvbjo6TmV0d29ya1Nlc3Npb24oTmV0d29ya1Byb2Nlc3MmIG5l
dHdvcmtQcm9jZXNzLCBjb25zdCBOZXR3b3JrU2VzcwogCiAgICAgbV9pc1N0YWxlV2hpbGVSZXZh
bGlkYXRlRW5hYmxlZCA9IHBhcmFtZXRlcnMuc3RhbGVXaGlsZVJldmFsaWRhdGVFbmFibGVkOwog
Ci0gICAgbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC0+c2V0UGluZ0xvYWRGdW5jdGlvbihbdGhp
cywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKV0oTmV0d29ya1Jlc291cmNlTG9hZFBhcmFt
ZXRlcnMmJiBsb2FkUGFyYW1ldGVycywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZUVycm9yJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKSB7CisgICAgbV9hZENsaWNrQXR0cmlidXRpb24tPnNldFBpbmdM
b2FkRnVuY3Rpb24oW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyldKE5ldHdvcmtS
ZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiYgbG9hZFBhcmFtZXRlcnMsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgewogICAgICAgICBpZiAoIXdlYWtU
aGlzKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAvLyBQaW5nTG9hZCBtYW5hZ2VzIGl0
cyBvd24gbGlmZXRpbWUsIGRlbGV0aW5nIGl0c2VsZiB3aGVuIGl0cyBwdXJwb3NlIGhhcyBiZWVu
IGZ1bGZpbGxlZC4KQEAgLTMwMyw0NCArMzA0LDQ0IEBAIHZvaWQgTmV0d29ya1Nlc3Npb246OnJl
c2V0Q05BTUVEb21haW5EYXRhKCkKIH0KICNlbmRpZiAvLyBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9T
VEFUSVNUSUNTKQogCi12b2lkIE5ldHdvcmtTZXNzaW9uOjpzdG9yZVByaXZhdGVDbGlja01lYXN1
cmVtZW50KFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50JiYgcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQpCit2b2lkIE5ldHdvcmtTZXNzaW9uOjpzdG9yZUFkQ2xpY2tBdHRyaWJ1dGlvbihX
ZWJDb3JlOjpBZENsaWNrQXR0cmlidXRpb24mJiBhZENsaWNrQXR0cmlidXRpb24pCiB7Ci0gICAg
bV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC0+c3RvcmVVbmNvbnZlcnRlZChXVEZNb3ZlKHByaXZh
dGVDbGlja01lYXN1cmVtZW50KSk7CisgICAgbV9hZENsaWNrQXR0cmlidXRpb24tPnN0b3JlVW5j
b252ZXJ0ZWQoV1RGTW92ZShhZENsaWNrQXR0cmlidXRpb24pKTsKIH0KIAotdm9pZCBOZXR3b3Jr
U2Vzc2lvbjo6aGFuZGxlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uKFByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpDb252ZXJzaW9uJiYgY29udmVyc2lvbiwgY29uc3QgVVJMJiByZXF1
ZXN0VVJMLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlZGlyZWN0UmVxdWVzdCkK
K3ZvaWQgTmV0d29ya1Nlc3Npb246OmhhbmRsZUFkQ2xpY2tBdHRyaWJ1dGlvbkNvbnZlcnNpb24o
QWRDbGlja0F0dHJpYnV0aW9uOjpDb252ZXJzaW9uJiYgY29udmVyc2lvbiwgY29uc3QgVVJMJiBy
ZXF1ZXN0VVJMLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlZGlyZWN0UmVxdWVz
dCkKIHsKLSAgICBtX3ByaXZhdGVDbGlja01lYXN1cmVtZW50LT5oYW5kbGVDb252ZXJzaW9uKFdU
Rk1vdmUoY29udmVyc2lvbiksIHJlcXVlc3RVUkwsIHJlZGlyZWN0UmVxdWVzdCk7CisgICAgbV9h
ZENsaWNrQXR0cmlidXRpb24tPmhhbmRsZUNvbnZlcnNpb24oV1RGTW92ZShjb252ZXJzaW9uKSwg
cmVxdWVzdFVSTCwgcmVkaXJlY3RSZXF1ZXN0KTsKIH0KIAotdm9pZCBOZXR3b3JrU2Vzc2lvbjo6
ZHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5n
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29ya1Nlc3Npb246OmR1bXBBZENsaWNr
QXR0cmlidXRpb24oQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQogewotICAgIG1fcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQtPnRvU3RyaW5nKFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBtX2FkQ2xpY2tBdHRyaWJ1dGlvbi0+dG9TdHJp
bmcoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lkIE5ldHdvcmtTZXNzaW9u
OjpjbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50KCkKK3ZvaWQgTmV0d29ya1Nlc3Npb246OmNs
ZWFyQWRDbGlja0F0dHJpYnV0aW9uKCkKIHsKLSAgICBtX3ByaXZhdGVDbGlja01lYXN1cmVtZW50
LT5jbGVhcigpOworICAgIG1fYWRDbGlja0F0dHJpYnV0aW9uLT5jbGVhcigpOwogfQogCi12b2lk
IE5ldHdvcmtTZXNzaW9uOjpjbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50Rm9yUmVnaXN0cmFi
bGVEb21haW4oV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiBkb21haW4pCit2b2lkIE5ldHdv
cmtTZXNzaW9uOjpjbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbkZvclJlZ2lzdHJhYmxlRG9tYWluKFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgZG9tYWluKQogewotICAgIG1fcHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQtPmNsZWFyRm9yUmVnaXN0cmFibGVEb21haW4oV1RGTW92ZShkb21haW4pKTsK
KyAgICBtX2FkQ2xpY2tBdHRyaWJ1dGlvbi0+Y2xlYXJGb3JSZWdpc3RyYWJsZURvbWFpbihXVEZN
b3ZlKGRvbWFpbikpOwogfQogCi12b2lkIE5ldHdvcmtTZXNzaW9uOjpzZXRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKGJvb2wgdmFsdWUpCit2b2lkIE5ldHdv
cmtTZXNzaW9uOjpzZXRBZENsaWNrQXR0cmlidXRpb25PdmVycmlkZVRpbWVyRm9yVGVzdGluZyhi
b29sIHZhbHVlKQogewotICAgIG1fcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQtPnNldE92ZXJyaWRl
VGltZXJGb3JUZXN0aW5nKHZhbHVlKTsKKyAgICBtX2FkQ2xpY2tBdHRyaWJ1dGlvbi0+c2V0T3Zl
cnJpZGVUaW1lckZvclRlc3RpbmcodmFsdWUpOwogfQogCi12b2lkIE5ldHdvcmtTZXNzaW9uOjpz
ZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFVSTCYmIHVy
bCkKK3ZvaWQgTmV0d29ya1Nlc3Npb246OnNldEFkQ2xpY2tBdHRyaWJ1dGlvbkNvbnZlcnNpb25V
UkxGb3JUZXN0aW5nKFVSTCYmIHVybCkKIHsKLSAgICBtX3ByaXZhdGVDbGlja01lYXN1cmVtZW50
LT5zZXRDb252ZXJzaW9uVVJMRm9yVGVzdGluZyhXVEZNb3ZlKHVybCkpOworICAgIG1fYWRDbGlj
a0F0dHJpYnV0aW9uLT5zZXRDb252ZXJzaW9uVVJMRm9yVGVzdGluZyhXVEZNb3ZlKHVybCkpOwog
fQogCi12b2lkIE5ldHdvcmtTZXNzaW9uOjptYXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNF
eHBpcmVkRm9yVGVzdGluZygpCit2b2lkIE5ldHdvcmtTZXNzaW9uOjptYXJrQWRDbGlja0F0dHJp
YnV0aW9uc0FzRXhwaXJlZEZvclRlc3RpbmcoKQogewotICAgIG1fcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQtPm1hcmtBbGxVbmNvbnZlcnRlZEFzRXhwaXJlZEZvclRlc3RpbmcoKTsKKyAgICBtX2Fk
Q2xpY2tBdHRyaWJ1dGlvbi0+bWFya0FsbFVuY29udmVydGVkQXNFeHBpcmVkRm9yVGVzdGluZygp
OwogfQogCiB2b2lkIE5ldHdvcmtTZXNzaW9uOjphZGRLZXB0QWxpdmVMb2FkKFJlZjxOZXR3b3Jr
UmVzb3VyY2VMb2FkZXI+JiYgbG9hZGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrU2Vzc2lvbi5oCmluZGV4IGNhNGE1NzY2N2Q0YjRhYzkyMDQ3YmM3OTQyMTc3MTAx
ZmYzYmJhMmYuLjJmYTI2MmQ1MDcxMDJjMGRiZTJhODM3NmEyNWE0MjQxMTllYTg3YmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKQEAgLTI5LDkg
KzI5LDkgQEAKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiU2Vydmlj
ZVdvcmtlclNvZnRVcGRhdGVMb2FkZXIuaCIKICNpbmNsdWRlICJXZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmUuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0FkQ2xpY2tBdHRyaWJ1dGlvbi5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvQmxvYlJlZ2lzdHJ5SW1wbC5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
TmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVnaXN0cmFibGVEb21haW4uaD4KICNp
bmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KQEAgLTUx
LDcgKzUxLDcgQEAgc3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsKIAogbmFtZXNwYWNlIFdlYktp
dCB7CiAKLWNsYXNzIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjsKK2NsYXNzIEFkQ2xp
Y2tBdHRyaWJ1dGlvbk1hbmFnZXI7CiBjbGFzcyBOZXR3b3JrRGF0YVRhc2s7CiBjbGFzcyBOZXR3
b3JrUHJvY2VzczsKIGNsYXNzIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjsKQEAgLTExNiwxNCArMTE2
LDE0IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaGFzQXBwQm91bmRTZXNzaW9uKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJBcHBCb3VuZFNlc3Np
b24oKSB7IH0KICNlbmRpZgotICAgIHZvaWQgc3RvcmVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChX
ZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmKTsKLSAgICB2b2lkIGhhbmRsZVByaXZh
dGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvbihXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6Q29udmVyc2lvbiYmLCBjb25zdCBVUkwmIHJlcXVlc3RVUkwsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYgcmVkaXJlY3RSZXF1ZXN0KTsKLSAgICB2b2lkIGR1bXBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYpOwotICAg
IHZvaWQgY2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpOwotICAgIHZvaWQgY2xlYXJQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudEZvclJlZ2lzdHJhYmxlRG9tYWluKFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluJiYpOwotICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlk
ZVRpbWVyRm9yVGVzdGluZyhib29sIHZhbHVlKTsKLSAgICB2b2lkIHNldFByaXZhdGVDbGlja01l
YXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcoVVJMJiYpOwotICAgIHZvaWQgbWFya1By
aXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoKTsKKyAgICB2b2lkIHN0
b3JlQWRDbGlja0F0dHJpYnV0aW9uKFdlYkNvcmU6OkFkQ2xpY2tBdHRyaWJ1dGlvbiYmKTsKKyAg
ICB2b2lkIGhhbmRsZUFkQ2xpY2tBdHRyaWJ1dGlvbkNvbnZlcnNpb24oV2ViQ29yZTo6QWRDbGlj
a0F0dHJpYnV0aW9uOjpDb252ZXJzaW9uJiYsIGNvbnN0IFVSTCYgcmVxdWVzdFVSTCwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZWRpcmVjdFJlcXVlc3QpOworICAgIHZvaWQgZHVt
cEFkQ2xpY2tBdHRyaWJ1dGlvbihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYpOwor
ICAgIHZvaWQgY2xlYXJBZENsaWNrQXR0cmlidXRpb24oKTsKKyAgICB2b2lkIGNsZWFyQWRDbGlj
a0F0dHJpYnV0aW9uRm9yUmVnaXN0cmFibGVEb21haW4oV2ViQ29yZTo6UmVnaXN0cmFibGVEb21h
aW4mJik7CisgICAgdm9pZCBzZXRBZENsaWNrQXR0cmlidXRpb25PdmVycmlkZVRpbWVyRm9yVGVz
dGluZyhib29sIHZhbHVlKTsKKyAgICB2b2lkIHNldEFkQ2xpY2tBdHRyaWJ1dGlvbkNvbnZlcnNp
b25VUkxGb3JUZXN0aW5nKFVSTCYmKTsKKyAgICB2b2lkIG1hcmtBZENsaWNrQXR0cmlidXRpb25z
QXNFeHBpcmVkRm9yVGVzdGluZygpOwogCiAgICAgdm9pZCBhZGRLZXB0QWxpdmVMb2FkKFJlZjxO
ZXR3b3JrUmVzb3VyY2VMb2FkZXI+JiYpOwogICAgIHZvaWQgcmVtb3ZlS2VwdEFsaXZlTG9hZChO
ZXR3b3JrUmVzb3VyY2VMb2FkZXImKTsKQEAgLTE3NSw3ICsxNzUsNyBAQCBwcm90ZWN0ZWQ6CiAg
ICAgT3B0aW9uYWw8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4+IG1fdGhpcmRQYXJ0eUNOQU1F
RG9tYWluRm9yVGVzdGluZzsKICNlbmRpZgogICAgIGJvb2wgbV9pc1N0YWxlV2hpbGVSZXZhbGlk
YXRlRW5hYmxlZCB7IGZhbHNlIH07Ci0gICAgVW5pcXVlUmVmPFByaXZhdGVDbGlja01lYXN1cmVt
ZW50TWFuYWdlcj4gbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudDsKKyAgICBVbmlxdWVSZWY8QWRD
bGlja0F0dHJpYnV0aW9uTWFuYWdlcj4gbV9hZENsaWNrQXR0cmlidXRpb247CiAKICAgICBIYXNo
U2V0PFJlZjxOZXR3b3JrUmVzb3VyY2VMb2FkZXI+PiBtX2tlcHRBbGl2ZUxvYWRzOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50TWFuYWdlci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg4
YmVhYWE2NDFlZmVkZTFiNzMwMzMyY2M5ZDg2ZjBmMmVlMjhiNTYuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuY3BwCisrKyAvZGV2L251bGwKQEAgLTEs
MzM2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAi
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmgiCi0KLSNpbmNsdWRlICJMb2dnaW5nLmgi
Ci0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+Ci0jaW5jbHVkZSA8V2Vi
Q29yZS9GZXRjaE9wdGlvbnMuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0Zvcm1EYXRhLmg+Ci0jaW5j
bHVkZSA8V2ViQ29yZS9IVFRQSGVhZGVyVmFsdWVzLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZXNv
dXJjZUVycm9yLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KLSNpbmNs
dWRlIDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bnRp
bWVBcHBsaWNhdGlvbkNoZWNrcy5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUnVudGltZUVuYWJsZWRG
ZWF0dXJlcy5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KLSNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7Ci0KLXVzaW5nIFNvdXJjZSA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpTb3VyY2U7Ci11c2luZyBEZXN0aW5hdGlvbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpE
ZXN0aW5hdGlvbjsKLXVzaW5nIERlc3RpbmF0aW9uTWFwID0gSGFzaE1hcDxEZXN0aW5hdGlvbiwg
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+OwotdXNpbmcgQ29udmVyc2lvbiA9IFByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpDb252ZXJzaW9uOwotCi1jb25zdGV4cHIgU2Vjb25kcyBkZWJ1Z01vZGVT
ZWNvbmRzVW50aWxTZW5kIHsgNjBfcyB9OwotCi12b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50
TWFuYWdlcjo6c3RvcmVVbmNvbnZlcnRlZChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmIGF0dHJp
YnV0aW9uKQotewotICAgIGNsZWFyRXhwaXJlZCgpOwotCi0gICAgaWYgKFVOTElLRUxZKGRlYnVn
TW9kZUVuYWJsZWQoKSkpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCwgIlN0b3JpbmcgYW4gYWQgY2xpY2suIik7Ci0gICAgICAgIG1fbmV0d29ya1By
b2Nlc3MtPmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKG1fc2Vzc2lvbklELCBNZXNzYWdlU291cmNl
OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgTWVzc2FnZUxldmVsOjpFcnJvciwgIltQcml2YXRl
IENsaWNrIE1lYXN1cmVtZW50XSBTdG9yaW5nIGFuIGFkIGNsaWNrLiJfcyk7Ci0gICAgfQotCi0g
ICAgbV91bmNvbnZlcnRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFwLnNldChzdGQ6Om1ha2Vf
cGFpcihhdHRyaWJ1dGlvbi5zb3VyY2UoKSwgYXR0cmlidXRpb24uZGVzdGluYXRpb24oKSksIFdU
Rk1vdmUoYXR0cmlidXRpb24pKTsKLX0KLQotdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1h
bmFnZXI6OmhhbmRsZUNvbnZlcnNpb24oQ29udmVyc2lvbiYmIGNvbnZlcnNpb24sIGNvbnN0IFVS
TCYgcmVxdWVzdFVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZWRpcmVjdFJl
cXVlc3QpCi17Ci0gICAgaWYgKG1fc2Vzc2lvbklELmlzRXBoZW1lcmFsKCkpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIFJlZ2lzdHJhYmxlRG9tYWluIHJlZGlyZWN0RG9tYWluIHsgcmVkaXJlY3RS
ZXF1ZXN0LnVybCgpIH07Ci0gICAgYXV0byYgZmlyc3RQYXJ0eVVSTCA9IHJlZGlyZWN0UmVxdWVz
dC5maXJzdFBhcnR5Rm9yQ29va2llcygpOwotCi0gICAgaWYgKCFyZWRpcmVjdERvbWFpbi5tYXRj
aGVzKHJlcXVlc3RVUkwpKSB7Ci0gICAgICAgIGlmIChVTkxJS0VMWShkZWJ1Z01vZGVFbmFibGVk
KCkpKSB7Ci0gICAgICAgICAgICBSRUxFQVNFX0xPR19JTkZPKFByaXZhdGVDbGlja01lYXN1cmVt
ZW50LCAiQ29udmVyc2lvbiB3YXMgbm90IGFjY2VwdGVkIGJlY2F1c2UgdGhlIEhUVFAgcmVkaXJl
Y3Qgd2FzIG5vdCBzYW1lLXNpdGUuIik7Ci0gICAgICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5i
cm9hZGNhc3RDb25zb2xlTWVzc2FnZShtX3Nlc3Npb25JRCwgTWVzc2FnZVNvdXJjZTo6UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsICJbUHJpdmF0ZSBDbGljayBN
ZWFzdXJlbWVudF0gQ29udmVyc2lvbiB3YXMgbm90IGFjY2VwdGVkIGJlY2F1c2UgdGhlIEhUVFAg
cmVkaXJlY3Qgd2FzIG5vdCBzYW1lLXNpdGUuIl9zKTsKLSAgICAgICAgfQotICAgICAgICByZXR1
cm47Ci0gICAgfQotCi0gICAgaWYgKHJlZGlyZWN0RG9tYWluLm1hdGNoZXMoZmlyc3RQYXJ0eVVS
TCkpIHsKLSAgICAgICAgaWYgKFVOTElLRUxZKGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsKLSAgICAg
ICAgICAgIFJFTEVBU0VfTE9HX0lORk8oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsICJDb252ZXJz
aW9uIHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVzZSBpdCB3YXMgcmVxdWVzdGVkIGluIGFuIEhUVFAg
cmVkaXJlY3QgdGhhdCBpcyBzYW1lLXNpdGUgYXMgdGhlIGZpcnN0LXBhcnR5LiIpOwotICAgICAg
ICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UobV9zZXNzaW9u
SUQsIE1lc3NhZ2VTb3VyY2U6OlByaXZhdGVDbGlja01lYXN1cmVtZW50LCBNZXNzYWdlTGV2ZWw6
OkVycm9yLCAiW1ByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIENvbnZlcnNpb24gd2FzIG5vdCBh
Y2NlcHRlZCBiZWNhdXNlIGl0IHdhcyByZXF1ZXN0ZWQgaW4gYW4gSFRUUCByZWRpcmVjdCB0aGF0
IGlzIHNhbWUtc2l0ZSBhcyB0aGUgZmlyc3QtcGFydHkuIl9zKTsKLSAgICAgICAgfQotICAgICAg
ICByZXR1cm47Ci0gICAgfQotCi0gICAgY29udmVydChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
U291cmNlIHsgV1RGTW92ZShyZWRpcmVjdERvbWFpbikgfSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OkRlc3RpbmF0aW9uIHsgZmlyc3RQYXJ0eVVSTCB9LCBXVEZNb3ZlKGNvbnZlcnNpb24pKTsK
LX0KLQotdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OnN0YXJ0VGltZXIoU2Vj
b25kcyBzZWNvbmRzKQotewotICAgIG1fZmlyZVBlbmRpbmdDb252ZXJzaW9uUmVxdWVzdHNUaW1l
ci5zdGFydE9uZVNob3QobV9pc1J1bm5pbmdUZXN0ID8gMF9zIDogc2Vjb25kcyk7Ci19Ci0KLXZv
aWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpjb252ZXJ0KGNvbnN0IFNvdXJjZSYg
c291cmNlLCBjb25zdCBEZXN0aW5hdGlvbiYgZGVzdGluYXRpb24sIENvbnZlcnNpb24mJiBjb252
ZXJzaW9uKQotewotICAgIGNsZWFyRXhwaXJlZCgpOwotCi0gICAgaWYgKCFjb252ZXJzaW9uLmlz
VmFsaWQoKSkgewotICAgICAgICBpZiAoVU5MSUtFTFkoZGVidWdNb2RlRW5hYmxlZCgpKSkgewot
ICAgICAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgIkdv
dCBhbiBpbnZhbGlkIGNvbnZlcnNpb24uIik7Ci0gICAgICAgICAgICBtX25ldHdvcmtQcm9jZXNz
LT5icm9hZGNhc3RDb25zb2xlTWVzc2FnZShtX3Nlc3Npb25JRCwgTWVzc2FnZVNvdXJjZTo6UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsICJbUHJpdmF0ZSBDbGlj
ayBNZWFzdXJlbWVudF0gR290IGFuIGludmFsaWQgY29udmVyc2lvbi4iX3MpOwotICAgICAgICB9
Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBhdXRvIGNvbnZlcnNpb25EYXRhID0gY29u
dmVyc2lvbi5kYXRhOwotICAgIGF1dG8gY29udmVyc2lvblByaW9yaXR5ID0gY29udmVyc2lvbi5w
cmlvcml0eTsKLQotICAgIGlmIChVTkxJS0VMWShkZWJ1Z01vZGVFbmFibGVkKCkpKSB7Ci0gICAg
ICAgIFJFTEVBU0VfTE9HX0lORk8oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsICJHb3QgYSBjb252
ZXJzaW9uIHdpdGggY29udmVyc2lvbiBkYXRhOiAle3B1YmxpY311IGFuZCBwcmlvcml0eTogJXtw
dWJsaWN9dS4iLCBjb252ZXJzaW9uRGF0YSwgY29udmVyc2lvblByaW9yaXR5KTsKLSAgICAgICAg
bV9uZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UobV9zZXNzaW9uSUQsIE1l
c3NhZ2VTb3VyY2U6OlByaXZhdGVDbGlja01lYXN1cmVtZW50LCBNZXNzYWdlTGV2ZWw6OkluZm8s
IG1ha2VTdHJpbmcoIltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBHb3QgYSBjb252ZXJzaW9u
IHdpdGggY29udmVyc2lvbiBkYXRhOiAnIl9zLCBjb252ZXJzaW9uRGF0YSwgIicgYW5kIHByaW9y
aXR5OiAnIl9zLCBjb252ZXJzaW9uUHJpb3JpdHksICInLiJfcykpOwotICAgIH0KLQotICAgIGF1
dG8gc2Vjb25kc1VudGlsU2VuZCA9IFNlY29uZHM6OmluZmluaXR5KCk7Ci0KLSAgICBhdXRvIHBh
aXIgPSBzdGQ6Om1ha2VfcGFpcihzb3VyY2UsIGRlc3RpbmF0aW9uKTsKLSAgICBhdXRvIHByZXZp
b3VzbHlVbmNvbnZlcnRlZEF0dHJpYnV0aW9uID0gbV91bmNvbnZlcnRlZFByaXZhdGVDbGlja01l
YXN1cmVtZW50TWFwLnRha2UocGFpcik7Ci0gICAgYXV0byBwcmV2aW91c2x5Q29udmVydGVkQXR0
cmlidXRpb25JdGVyID0gbV9jb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hcC5maW5k
KHBhaXIpOwotCi0gICAgaWYgKCFwcmV2aW91c2x5VW5jb252ZXJ0ZWRBdHRyaWJ1dGlvbi5pc0Vt
cHR5KCkpIHsKLSAgICAgICAgLy8gQWx3YXlzIGNvbnZlcnQgdGhlIHBlbmRpbmcgYXR0cmlidXRp
b24gYW5kIHJlbW92ZSBpdCBmcm9tIHRoZSB1bmNvbnZlcnRlZCBtYXAuCi0gICAgICAgIGlmIChh
dXRvIG9wdGlvbmFsU2Vjb25kc1VudGlsU2VuZCA9IHByZXZpb3VzbHlVbmNvbnZlcnRlZEF0dHJp
YnV0aW9uLmNvbnZlcnRBbmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQoV1RGTW92ZShjb252ZXJzaW9u
KSkpIHsKLSAgICAgICAgICAgIHNlY29uZHNVbnRpbFNlbmQgPSAqb3B0aW9uYWxTZWNvbmRzVW50
aWxTZW5kOwotICAgICAgICAgICAgQVNTRVJUKHNlY29uZHNVbnRpbFNlbmQgIT0gU2Vjb25kczo6
aW5maW5pdHkoKSk7Ci0KLSAgICAgICAgICAgIGlmIChVTkxJS0VMWShkZWJ1Z01vZGVFbmFibGVk
KCkpKSB7Ci0gICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCwgIkNvbnZlcnRlZCBhIHN0b3JlZCBhZCBjbGljayB3aXRoIGNvbnZlcnNpb24gZGF0
YTogJXtwdWJsaWN9dSBhbmQgcHJpb3JpdHk6ICV7cHVibGljfXUuIiwgY29udmVyc2lvbkRhdGEs
IGNvbnZlcnNpb25Qcmlvcml0eSk7Ci0gICAgICAgICAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+
YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UobV9zZXNzaW9uSUQsIE1lc3NhZ2VTb3VyY2U6OlByaXZh
dGVDbGlja01lYXN1cmVtZW50LCBNZXNzYWdlTGV2ZWw6OkluZm8sIG1ha2VTdHJpbmcoIltQcml2
YXRlIENsaWNrIE1lYXN1cmVtZW50XSBDb252ZXJ0ZWQgYSBzdG9yZWQgYWQgY2xpY2sgd2l0aCBj
b252ZXJzaW9uIGRhdGE6ICciX3MsIGNvbnZlcnNpb25EYXRhLCAiJyBhbmQgcHJpb3JpdHk6ICci
X3MsIGNvbnZlcnNpb25Qcmlvcml0eSwgIicuIl9zKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAg
IH0KLQotICAgICAgICBpZiAocHJldmlvdXNseUNvbnZlcnRlZEF0dHJpYnV0aW9uSXRlciA9PSBt
X2NvbnZlcnRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFwLmVuZCgpKQotICAgICAgICAgICAg
bV9jb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hcC5hZGQocGFpciwgV1RGTW92ZShw
cmV2aW91c2x5VW5jb252ZXJ0ZWRBdHRyaWJ1dGlvbikpOwotICAgICAgICBlbHNlIGlmIChwcmV2
aW91c2x5VW5jb252ZXJ0ZWRBdHRyaWJ1dGlvbi5oYXNIaWdoZXJQcmlvcml0eVRoYW4ocHJldmlv
dXNseUNvbnZlcnRlZEF0dHJpYnV0aW9uSXRlci0+dmFsdWUpKSB7Ci0gICAgICAgICAgICAvLyBJ
ZiB0aGUgbmV3bHkgY29udmVydGVkIGF0dHJpYnV0aW9uIGhhcyBoaWdoZXIgcHJpb3JpdHksIHJl
cGxhY2UgdGhlIG9sZCBvbmUuCi0gICAgICAgICAgICBtX2NvbnZlcnRlZFByaXZhdGVDbGlja01l
YXN1cmVtZW50TWFwLnNldChwYWlyLCBXVEZNb3ZlKHByZXZpb3VzbHlVbmNvbnZlcnRlZEF0dHJp
YnV0aW9uKSk7Ci0KLSAgICAgICAgICAgIGlmIChVTkxJS0VMWShkZWJ1Z01vZGVFbmFibGVkKCkp
KSB7Ci0gICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudCwgIlJlcGxhY2VkIGEgcHJldmlvdXNseSBjb252ZXJ0ZWQgYWQgY2xpY2sgd2l0aCBhIG5l
dyBvbmUgd2l0aCBjb252ZXJzaW9uIGRhdGE6ICV7cHVibGljfXUgYW5kIHByaW9yaXR5OiAle3B1
YmxpY311IGJlY2F1c2UgaXQgaGFkIGhpZ2hlciBwcmlvcml0eS4iLCBjb252ZXJzaW9uRGF0YSwg
Y29udmVyc2lvblByaW9yaXR5KTsKLSAgICAgICAgICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5i
cm9hZGNhc3RDb25zb2xlTWVzc2FnZShtX3Nlc3Npb25JRCwgTWVzc2FnZVNvdXJjZTo6UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQsIE1lc3NhZ2VMZXZlbDo6SW5mbywgbWFrZVN0cmluZygiW1ByaXZh
dGUgQ2xpY2sgTWVhc3VyZW1lbnRdIFJlcGxhY2VkIGEgcHJldmlvdXNseSBjb252ZXJ0ZWQgYWQg
Y2xpY2sgd2l0aCBhIG5ldyBvbmUgd2l0aCBjb252ZXJzaW9uIGRhdGE6ICciX3MsIGNvbnZlcnNp
b25EYXRhLCAiJyBhbmQgcHJpb3JpdHk6ICciX3MsIGNvbnZlcnNpb25Qcmlvcml0eSwgIicgYmVj
YXVzZSBpdCBoYWQgaGlnaGVyIHByaW9yaXR5LiJfcykpOwotICAgICAgICAgICAgfQotICAgICAg
ICB9Ci0gICAgfSBlbHNlIGlmIChwcmV2aW91c2x5Q29udmVydGVkQXR0cmlidXRpb25JdGVyICE9
IG1fY29udmVydGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYXAuZW5kKCkpIHsKLSAgICAgICAg
Ly8gSWYgd2UgaGF2ZSBubyBuZXdseSBjb252ZXJ0ZWQgYXR0cmlidXRpb24sIHJlLWNvbnZlcnQg
dGhlIG9sZCBvbmUgdG8gcmVzcGVjdCB0aGUgbmV3IHByaW9yaXR5LgotICAgICAgICBpZiAoYXV0
byBvcHRpb25hbFNlY29uZHNVbnRpbFNlbmQgPSBwcmV2aW91c2x5Q29udmVydGVkQXR0cmlidXRp
b25JdGVyLT52YWx1ZS5jb252ZXJ0QW5kR2V0RWFybGllc3RUaW1lVG9TZW5kKFdURk1vdmUoY29u
dmVyc2lvbikpKSB7Ci0gICAgICAgICAgICBzZWNvbmRzVW50aWxTZW5kID0gKm9wdGlvbmFsU2Vj
b25kc1VudGlsU2VuZDsKLSAgICAgICAgICAgIEFTU0VSVChzZWNvbmRzVW50aWxTZW5kICE9IFNl
Y29uZHM6OmluZmluaXR5KCkpOwotCi0gICAgICAgICAgICBpZiAoVU5MSUtFTFkoZGVidWdNb2Rl
RW5hYmxlZCgpKSkgewotICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lORk8oUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQsICJSZS1jb252ZXJ0ZWQgYW4gYWQgY2xpY2sgd2l0aCBhIG5ldyBvbmUg
d2l0aCBjb252ZXJzaW9uIGRhdGE6ICV7cHVibGljfXUgYW5kIHByaW9yaXR5OiAle3B1YmxpY311
IGJlY2F1c2UgaXQgaGFkIGhpZ2hlciBwcmlvcml0eS4iLCBjb252ZXJzaW9uRGF0YSwgY29udmVy
c2lvblByaW9yaXR5KTsKLSAgICAgICAgICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5icm9hZGNh
c3RDb25zb2xlTWVzc2FnZShtX3Nlc3Npb25JRCwgTWVzc2FnZVNvdXJjZTo6UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQsIE1lc3NhZ2VMZXZlbDo6SW5mbywgbWFrZVN0cmluZygiW1ByaXZhdGUgQ2xp
Y2sgTWVhc3VyZW1lbnRdIFJlLWNvbnZlcnRlZCBhbiBhZCBjbGljayB3aXRoIGEgbmV3IG9uZSB3
aXRoIGNvbnZlcnNpb24gZGF0YTogJyJfcywgY29udmVyc2lvbkRhdGEsICInIGFuZCBwcmlvcml0
eTogJyJfcywgY29udmVyc2lvblByaW9yaXR5LCAiJycgYmVjYXVzZSBpdCBoYWQgaGlnaGVyIHBy
aW9yaXR5LiJfcykpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYg
KHNlY29uZHNVbnRpbFNlbmQgPT0gU2Vjb25kczo6aW5maW5pdHkoKSkKLSAgICAgICAgcmV0dXJu
OwotICAgIAotICAgIGlmIChtX2ZpcmVQZW5kaW5nQ29udmVyc2lvblJlcXVlc3RzVGltZXIuaXNB
Y3RpdmUoKSAmJiBtX2ZpcmVQZW5kaW5nQ29udmVyc2lvblJlcXVlc3RzVGltZXIubmV4dEZpcmVJ
bnRlcnZhbCgpIDwgc2Vjb25kc1VudGlsU2VuZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYg
KFVOTElLRUxZKGRlYnVnTW9kZUVuYWJsZWQoKSkpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfSU5G
TyhQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgIlNldHRpbmcgdGltZXIgZm9yIGZpcmluZyBjb252
ZXJzaW9uIHJlcXVlc3RzIHRvIHRoZSBkZWJ1ZyBtb2RlIHRpbWVvdXQgb2YgJXtwdWJsaWN9ZiBz
ZWNvbmRzIHdoZXJlIHRoZSByZWd1bGFyIHRpbWVvdXQgd291bGQgaGF2ZSBiZWVuICV7cHVibGlj
fWYgc2Vjb25kcy4iLCBkZWJ1Z01vZGVTZWNvbmRzVW50aWxTZW5kLnNlY29uZHMoKSwgc2Vjb25k
c1VudGlsU2VuZC5zZWNvbmRzKCkpOwotICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5icm9hZGNh
c3RDb25zb2xlTWVzc2FnZShtX3Nlc3Npb25JRCwgTWVzc2FnZVNvdXJjZTo6UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQsIE1lc3NhZ2VMZXZlbDo6SW5mbywgbWFrZVN0cmluZygiW1ByaXZhdGUgQ2xp
Y2sgTWVhc3VyZW1lbnRdIFNldHRpbmcgdGltZXIgZm9yIGZpcmluZyBjb252ZXJzaW9uIHJlcXVl
c3RzIHRvIHRoZSBkZWJ1ZyBtb2RlIHRpbWVvdXQgb2YgIl9zLCBkZWJ1Z01vZGVTZWNvbmRzVW50
aWxTZW5kLnNlY29uZHMoKSwgIiBzZWNvbmRzIHdoZXJlIHRoZSByZWd1bGFyIHRpbWVvdXQgd291
bGQgaGF2ZSBiZWVuICJfcywgc2Vjb25kc1VudGlsU2VuZC5zZWNvbmRzKCksICIgc2Vjb25kcy4i
X3MpKTsKLSAgICAgICAgc2Vjb25kc1VudGlsU2VuZCA9IGRlYnVnTW9kZVNlY29uZHNVbnRpbFNl
bmQ7Ci0gICAgfQotCi0gICAgc3RhcnRUaW1lcihzZWNvbmRzVW50aWxTZW5kKTsKLX0KLQotdm9p
ZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmZpcmVDb252ZXJzaW9uUmVxdWVzdChj
b25zdCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYgYXR0cmlidXRpb24pCi17Ci0gICAgYXV0byBj
b252ZXJzaW9uVVJMID0gbV9jb252ZXJzaW9uQmFzZVVSTEZvclRlc3RpbmcgPyAqbV9jb252ZXJz
aW9uQmFzZVVSTEZvclRlc3RpbmcgOiBhdHRyaWJ1dGlvbi5yZXBvcnRVUkwoKTsKLSAgICBpZiAo
Y29udmVyc2lvblVSTC5pc0VtcHR5KCkgfHwgIWNvbnZlcnNpb25VUkwuaXNWYWxpZCgpKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCB7IFdURk1vdmUoY29u
dmVyc2lvblVSTCkgfTsKLSAgICAKLSAgICByZXF1ZXN0LnNldEhUVFBNZXRob2QoIlBPU1QiX3Mp
OwotICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpDYWNoZUNv
bnRyb2wsIFdlYkNvcmU6OkhUVFBIZWFkZXJWYWx1ZXM6Om1heEFnZTAoKSk7Ci0KLSAgICByZXF1
ZXN0LnNldEhUVFBDb250ZW50VHlwZShXZWJDb3JlOjpIVFRQSGVhZGVyVmFsdWVzOjphcHBsaWNh
dGlvbkpTT05Db250ZW50VHlwZSgpKTsKLSAgICByZXF1ZXN0LnNldEhUVFBCb2R5KFdlYkNvcmU6
OkZvcm1EYXRhOjpjcmVhdGUoYXR0cmlidXRpb24uanNvbigpLT50b0pTT05TdHJpbmcoKS51dGY4
KCkuZGF0YSgpKSk7Ci0KLSAgICBGZXRjaE9wdGlvbnMgb3B0aW9uczsKLSAgICBvcHRpb25zLmNy
ZWRlbnRpYWxzID0gRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6T21pdDsKLSAgICBvcHRpb25z
LnJlZGlyZWN0ID0gRmV0Y2hPcHRpb25zOjpSZWRpcmVjdDo6RXJyb3I7Ci0KLSAgICBzdGF0aWMg
dWludDY0X3QgaWRlbnRpZmllciA9IDA7Ci0gICAgCi0gICAgTmV0d29ya1Jlc291cmNlTG9hZFBh
cmFtZXRlcnMgbG9hZFBhcmFtZXRlcnM7Ci0gICAgbG9hZFBhcmFtZXRlcnMuaWRlbnRpZmllciA9
ICsraWRlbnRpZmllcjsKLSAgICBsb2FkUGFyYW1ldGVycy5yZXF1ZXN0ID0gcmVxdWVzdDsKLSAg
ICBsb2FkUGFyYW1ldGVycy5wYXJlbnRQSUQgPSBwcmVzZW50aW5nQXBwbGljYXRpb25QSUQoKTsK
LSAgICBsb2FkUGFyYW1ldGVycy5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSA9IFN0b3JlZENyZWRl
bnRpYWxzUG9saWN5OjpFcGhlbWVyYWxTdGF0ZWxlc3M7Ci0gICAgbG9hZFBhcmFtZXRlcnMub3B0
aW9ucyA9IG9wdGlvbnM7Ci0gICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxkQ2xlYXJSZWZlcnJlck9u
SFRUUFNUb0hUVFBSZWRpcmVjdCA9IHRydWU7Ci0gICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxkUmVz
dHJpY3RIVFRQUmVzcG9uc2VBY2Nlc3MgPSBmYWxzZTsKLQotICAgIGlmIChVTkxJS0VMWShkZWJ1
Z01vZGVFbmFibGVkKCkpKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lORk8oUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQsICJBYm91dCB0byBmaXJlIGFuIGF0dHJpYnV0aW9uIHJlcXVlc3QgZm9yIGEg
Y29udmVyc2lvbi4iKTsKLSAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0Q29uc29s
ZU1lc3NhZ2UobV9zZXNzaW9uSUQsIE1lc3NhZ2VTb3VyY2U6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50LCBNZXNzYWdlTGV2ZWw6OkVycm9yLCAiW1ByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIEFi
b3V0IHRvIGZpcmUgYW4gYXR0cmlidXRpb24gcmVxdWVzdCBmb3IgYSBjb252ZXJzaW9uLiJfcyk7
Ci0gICAgfQotCi0gICAgbV9waW5nTG9hZEZ1bmN0aW9uKFdURk1vdmUobG9hZFBhcmFtZXRlcnMp
LCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyldKGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
RXJyb3ImIGVycm9yLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkg
ewotICAgICAgICBpZiAoIXdlYWtUaGlzKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAg
IGlmIChVTkxJS0VMWSh3ZWFrVGhpcy0+ZGVidWdNb2RlRW5hYmxlZCgpKSkgewotICAgICAgICAg
ICAgaWYgKCFlcnJvci5pc051bGwoKSkgewotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgICAgICAg
ICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCAiUmVjZWl2
ZWQgZXJyb3I6ICcle3B1YmxpY31zJyBmb3IgYWQgY2xpY2sgYXR0cmlidXRpb24gcmVxdWVzdC4i
LCBlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpLnV0ZjgoKS5kYXRhKCkpOwotI2Vsc2UKLSAg
ICAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwg
IlJlY2VpdmVkIGVycm9yOiAnJXMnIGZvciBhZCBjbGljayBhdHRyaWJ1dGlvbiByZXF1ZXN0LiIs
IGVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkudXRmOCgpLmRhdGEoKSk7Ci0jZW5kaWYKLSAg
ICAgICAgICAgICAgICB3ZWFrVGhpcy0+bV9uZXR3b3JrUHJvY2Vzcy0+YnJvYWRjYXN0Q29uc29s
ZU1lc3NhZ2Uod2Vha1RoaXMtPm1fc2Vzc2lvbklELCBNZXNzYWdlU291cmNlOjpQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCwgTWVzc2FnZUxldmVsOjpFcnJvciwgbWFrZVN0cmluZygiW1ByaXZhdGUg
Q2xpY2sgTWVhc3VyZW1lbnRdIFJlY2VpdmVkIGVycm9yOiAnIl9zLCBlcnJvci5sb2NhbGl6ZWRE
ZXNjcmlwdGlvbigpLCAiJyBmb3IgYWQgY2xpY2sgYXR0cmlidXRpb24gcmVxdWVzdC4iX3MpKTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0pOwotfQotCi12b2lkIFByaXZhdGVDbGlj
a01lYXN1cmVtZW50TWFuYWdlcjo6ZmlyZVBlbmRpbmdDb252ZXJzaW9uUmVxdWVzdHMoKQotewot
ICAgIGF1dG8gbmV4dFRpbWVUb0ZpcmUgPSBTZWNvbmRzOjppbmZpbml0eSgpOwotICAgIGZvciAo
YXV0byYgYXR0cmlidXRpb24gOiBtX2NvbnZlcnRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFw
LnZhbHVlcygpKSB7Ci0gICAgICAgIGlmIChhdHRyaWJ1dGlvbi53YXNDb252ZXJzaW9uU2VudCgp
KSB7Ci0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgIGNvbnRp
bnVlOwotICAgICAgICB9Ci0gICAgICAgIGF1dG8gZWFybGllc3RUaW1lVG9TZW5kID0gYXR0cmli
dXRpb24uZWFybGllc3RUaW1lVG9TZW5kKCk7Ci0gICAgICAgIGlmICghZWFybGllc3RUaW1lVG9T
ZW5kKSB7Ci0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgIGNv
bnRpbnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgYXV0byBub3cgPSBXYWxsVGltZTo6bm93KCk7
Ci0gICAgICAgIGlmICgqZWFybGllc3RUaW1lVG9TZW5kIDw9IG5vdyB8fCBtX2lzUnVubmluZ1Rl
c3QgfHwgZGVidWdNb2RlRW5hYmxlZCgpKSB7Ci0gICAgICAgICAgICBmaXJlQ29udmVyc2lvblJl
cXVlc3QoYXR0cmlidXRpb24pOwotICAgICAgICAgICAgYXR0cmlidXRpb24ubWFya0NvbnZlcnNp
b25Bc1NlbnQoKTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0KLSAgICAgICAg
YXV0byBzZWNvbmRzID0gKmVhcmxpZXN0VGltZVRvU2VuZCAtIG5vdzsKLSAgICAgICAgbmV4dFRp
bWVUb0ZpcmUgPSBzdGQ6Om1pbihuZXh0VGltZVRvRmlyZSwgc2Vjb25kcyk7Ci0gICAgfQotCi0g
ICAgbV9jb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hcC5yZW1vdmVJZihbXShhdXRv
JiBrZXlBbmRWYWx1ZSkgewotICAgICAgICByZXR1cm4ga2V5QW5kVmFsdWUudmFsdWUud2FzQ29u
dmVyc2lvblNlbnQoKTsKLSAgICB9KTsKLQotICAgIGlmIChuZXh0VGltZVRvRmlyZSA8IFNlY29u
ZHM6OmluZmluaXR5KCkpCi0gICAgICAgIHN0YXJ0VGltZXIobmV4dFRpbWVUb0ZpcmUpOwotfQot
Ci12b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6Y2xlYXIoKQotewotICAgIG1f
ZmlyZVBlbmRpbmdDb252ZXJzaW9uUmVxdWVzdHNUaW1lci5zdG9wKCk7Ci0gICAgbV91bmNvbnZl
cnRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFwLmNsZWFyKCk7Ci0gICAgbV9jb252ZXJ0ZWRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hcC5jbGVhcigpOwotfQotCi12b2lkIFByaXZhdGVDbGlj
a01lYXN1cmVtZW50TWFuYWdlcjo6Y2xlYXJGb3JSZWdpc3RyYWJsZURvbWFpbihjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYgZG9tYWluKQotewotICAgIG1fdW5jb252ZXJ0ZWRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudE1hcC5yZW1vdmVJZihbJmRvbWFpbl0oYXV0byYga2V5QW5kVmFsdWUpIHsKLSAg
ICAgICAgcmV0dXJuIGtleUFuZFZhbHVlLmtleS5maXJzdC5yZWdpc3RyYWJsZURvbWFpbiA9PSBk
b21haW4gfHwga2V5QW5kVmFsdWUua2V5LnNlY29uZC5yZWdpc3RyYWJsZURvbWFpbiA9PSBkb21h
aW47Ci0gICAgfSk7Ci0KLSAgICBtX2NvbnZlcnRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFw
LnJlbW92ZUlmKFsmZG9tYWluXShhdXRvJiBrZXlBbmRWYWx1ZSkgewotICAgICAgICByZXR1cm4g
a2V5QW5kVmFsdWUua2V5LmZpcnN0LnJlZ2lzdHJhYmxlRG9tYWluID09IGRvbWFpbiB8fCBrZXlB
bmRWYWx1ZS5rZXkuc2Vjb25kLnJlZ2lzdHJhYmxlRG9tYWluID09IGRvbWFpbjsKLSAgICB9KTsK
LX0KLQotdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmNsZWFyRXhwaXJlZCgp
Ci17Ci0gICAgbV91bmNvbnZlcnRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFwLnJlbW92ZUlm
KFtdKGF1dG8mIGtleUFuZFZhbHVlKSB7Ci0gICAgICAgIHJldHVybiBrZXlBbmRWYWx1ZS52YWx1
ZS5oYXNFeHBpcmVkKCk7Ci0gICAgfSk7Ci19Ci0KLXZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRNYW5hZ2VyOjp0b1N0cmluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYgY29t
cGxldGlvbkhhbmRsZXIpIGNvbnN0Ci17Ci0gICAgaWYgKG1fdW5jb252ZXJ0ZWRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudE1hcC5pc0VtcHR5KCkgJiYgbV9jb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE1hcC5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcigi
XG5ObyBzdG9yZWQgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudCBkYXRhLlxuIl9zKTsKLQotICAg
IHVuc2lnbmVkIHVuY29udmVydGVkQXR0cmlidXRpb25OdW1iZXIgPSAwOwotICAgIFN0cmluZ0J1
aWxkZXIgYnVpbGRlcjsKLSAgICBmb3IgKGF1dG8mIGF0dHJpYnV0aW9uIDogbV91bmNvbnZlcnRl
ZFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFwLnZhbHVlcygpKSB7Ci0gICAgICAgIGlmICghdW5j
b252ZXJ0ZWRBdHRyaWJ1dGlvbk51bWJlcikKLSAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0
ZXJhbCgiVW5jb252ZXJ0ZWQgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudHM6XG4iKTsKLSAgICAg
ICAgZWxzZQotICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgICAgIGJ1aWxk
ZXIuYXBwZW5kTGl0ZXJhbCgiV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgIik7Ci0g
ICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKCsrdW5jb252ZXJ0ZWRBdHRyaWJ1dGlvbk51bWJl
cik7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgICAgICBidWlsZGVyLmFwcGVu
ZChhdHRyaWJ1dGlvbi50b1N0cmluZygpKTsKLX0KLQotICAgIHVuc2lnbmVkIGNvbnZlcnRlZEF0
dHJpYnV0aW9uTnVtYmVyID0gMDsKLSAgICBmb3IgKGF1dG8mIGF0dHJpYnV0aW9uIDogbV9jb252
ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hcC52YWx1ZXMoKSkgewotICAgICAgICBpZiAo
dW5jb252ZXJ0ZWRBdHRyaWJ1dGlvbk51bWJlcikKLSAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KCdcbicpOwotICAgICAgICBpZiAoIWNvbnZlcnRlZEF0dHJpYnV0aW9uTnVtYmVyKQotICAgICAg
ICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJDb252ZXJ0ZWQgUHJpdmF0ZSBDbGljayBNZWFz
dXJlbWVudHM6XG4iKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQo
J1xuJyk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiV2ViQ29yZTo6UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQgIik7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKCsrY29udmVy
dGVkQXR0cmlidXRpb25OdW1iZXIgKyB1bmNvbnZlcnRlZEF0dHJpYnV0aW9uTnVtYmVyKTsKLSAg
ICAgICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKGF0dHJp
YnV0aW9uLnRvU3RyaW5nKCkpOwotICAgIH0KLQotICAgIGNvbXBsZXRpb25IYW5kbGVyKGJ1aWxk
ZXIudG9TdHJpbmcoKSk7Ci19Ci0KLXZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2Vy
OjpzZXRDb252ZXJzaW9uVVJMRm9yVGVzdGluZyhVUkwmJiB0ZXN0VVJMKQotewotICAgIGlmICh0
ZXN0VVJMLmlzRW1wdHkoKSkKLSAgICAgICAgbV9jb252ZXJzaW9uQmFzZVVSTEZvclRlc3Rpbmcg
PSB7IH07Ci0gICAgZWxzZQotICAgICAgICBtX2NvbnZlcnNpb25CYXNlVVJMRm9yVGVzdGluZyA9
IFdURk1vdmUodGVzdFVSTCk7Ci19Ci0KLXZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5h
Z2VyOjptYXJrQWxsVW5jb252ZXJ0ZWRBc0V4cGlyZWRGb3JUZXN0aW5nKCkKLXsKLSAgICBmb3Ig
KGF1dG8mIGF0dHJpYnV0aW9uIDogbV91bmNvbnZlcnRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50
TWFwLnZhbHVlcygpKQotICAgICAgICBhdHRyaWJ1dGlvbi5tYXJrQXNFeHBpcmVkKCk7Ci19Ci0K
LWJvb2wgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpkZWJ1Z01vZGVFbmFibGVkKCkg
Y29uc3QKLXsKLSAgICByZXR1cm4gUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVy
ZXMoKS5wcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZUVuYWJsZWQoKSAmJiAhbV9zZXNz
aW9uSUQuaXNFcGhlbWVyYWwoKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50
TWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE1hbmFnZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDNkNDM3MWI2
N2RmNTk4OTJmYjdlYmQ0NWE1MTQ5ZDJlOWQ4YmQ2MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZh
dGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5oCisrKyAvZGV2L251bGwKQEAgLTEsOTIgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3Mu
aCIKLSNpbmNsdWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oIgotI2luY2x1ZGUg
PFdlYkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Jl
Z2lzdHJhYmxlRG9tYWluLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+Ci0j
aW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9U
aW1lci5oPgotI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KLSNpbmNsdWRlIDx3dGYvQ29tcGxl
dGlvbkhhbmRsZXIuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9X
ZWFrUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBX
ZWJLaXQgewotCi1jbGFzcyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIgOiBwdWJsaWMg
Q2FuTWFrZVdlYWtQdHI8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyPiB7Ci0gICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0KLSAgICB1c2luZyBSZWdpc3RyYWJsZURv
bWFpbiA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluOwotICAgIHVzaW5nIFByaXZhdGVDbGlj
a01lYXN1cmVtZW50ID0gV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ7Ci0gICAgdXNp
bmcgU291cmNlID0gV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZTsKLSAg
ICB1c2luZyBEZXN0aW5hdGlvbiA9IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpE
ZXN0aW5hdGlvbjsKLSAgICB1c2luZyBDb252ZXJzaW9uID0gV2ViQ29yZTo6UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ6OkNvbnZlcnNpb247Ci0KLSAgICBleHBsaWNpdCBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE1hbmFnZXIoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQpCi0gICAgICAgIDogbV9maXJlUGVuZGluZ0NvbnZlcnNpb25SZXF1ZXN0
c1RpbWVyKCp0aGlzLCAmUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpmaXJlUGVuZGlu
Z0NvbnZlcnNpb25SZXF1ZXN0cykKLSAgICAgICAgLCBtX3BpbmdMb2FkRnVuY3Rpb24oW10oTmV0
d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmJiBwYXJhbXMsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgewotICAgICAgICAgICAgVU5VU0VEX1BB
UkFNKHBhcmFtcyk7Ci0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpSZXNv
dXJjZUVycm9yKCksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UoKSk7Ci0gICAgICAgIH0pCi0g
ICAgICAgICwgbV9uZXR3b3JrUHJvY2VzcyhuZXR3b3JrUHJvY2VzcykKLSAgICAgICAgLCBtX3Nl
c3Npb25JRChzZXNzaW9uSUQpCi0gICAgewotICAgIH0KLQotICAgIHZvaWQgc3RvcmVVbmNvbnZl
cnRlZChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmKTsKLSAgICB2b2lkIGhhbmRsZUNvbnZlcnNp
b24oQ29udmVyc2lvbiYmLCBjb25zdCBVUkwmIHJlcXVlc3RVUkwsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYgcmVkaXJlY3RSZXF1ZXN0KTsKLSAgICB2b2lkIGNsZWFyKCk7Ci0gICAg
dm9pZCBjbGVhckZvclJlZ2lzdHJhYmxlRG9tYWluKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJik7
Ci0gICAgdm9pZCB0b1N0cmluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYpIGNv
bnN0OwotICAgIHZvaWQgc2V0UGluZ0xvYWRGdW5jdGlvbihGdW5jdGlvbjx2b2lkKE5ldHdvcmtS
ZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvciYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKT4m
Jik+JiYgcGluZ0xvYWRGdW5jdGlvbikgeyBtX3BpbmdMb2FkRnVuY3Rpb24gPSBXVEZNb3ZlKHBp
bmdMb2FkRnVuY3Rpb24pOyB9Ci0gICAgdm9pZCBzZXRPdmVycmlkZVRpbWVyRm9yVGVzdGluZyhi
b29sIHZhbHVlKSB7IG1faXNSdW5uaW5nVGVzdCA9IHZhbHVlOyB9Ci0gICAgdm9pZCBzZXRDb252
ZXJzaW9uVVJMRm9yVGVzdGluZyhVUkwmJik7Ci0gICAgdm9pZCBtYXJrQWxsVW5jb252ZXJ0ZWRB
c0V4cGlyZWRGb3JUZXN0aW5nKCk7Ci0KLXByaXZhdGU6Ci0gICAgdm9pZCBzdGFydFRpbWVyKFNl
Y29uZHMpOwotICAgIHZvaWQgY29udmVydChjb25zdCBTb3VyY2UmLCBjb25zdCBEZXN0aW5hdGlv
biYsIENvbnZlcnNpb24mJik7Ci0gICAgdm9pZCBmaXJlQ29udmVyc2lvblJlcXVlc3QoY29uc3Qg
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmKTsKLSAgICB2b2lkIGZpcmVQZW5kaW5nQ29udmVyc2lv
blJlcXVlc3RzKCk7Ci0gICAgdm9pZCBjbGVhckV4cGlyZWQoKTsKLSAgICBib29sIGRlYnVnTW9k
ZUVuYWJsZWQoKSBjb25zdDsKLQotICAgIEhhc2hNYXA8c3RkOjpwYWlyPFNvdXJjZSwgRGVzdGlu
YXRpb24+LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4gbV91bmNvbnZlcnRlZFByaXZhdGVDbGlj
a01lYXN1cmVtZW50TWFwOwotICAgIEhhc2hNYXA8c3RkOjpwYWlyPFNvdXJjZSwgRGVzdGluYXRp
b24+LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4gbV9jb252ZXJ0ZWRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE1hcDsKLSAgICBXZWJDb3JlOjpUaW1lciBtX2ZpcmVQZW5kaW5nQ29udmVyc2lvblJl
cXVlc3RzVGltZXI7Ci0gICAgRnVuY3Rpb248dm9pZChOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1l
dGVycyYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJy
b3ImLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik+JiYpPiBtX3BpbmdMb2FkRnVu
Y3Rpb247Ci0gICAgYm9vbCBtX2lzUnVubmluZ1Rlc3QgeyBmYWxzZSB9OwotICAgIE9wdGlvbmFs
PFVSTD4gbV9jb252ZXJzaW9uQmFzZVVSTEZvclRlc3Rpbmc7Ci0gICAgUmVmPE5ldHdvcmtQcm9j
ZXNzPiBtX25ldHdvcmtQcm9jZXNzOwotICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwot
fTsKLSAgICAKLX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9QbGF0Zm9ybS9Mb2dnaW5nLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0xvZ2dpbmcuaApp
bmRleCAyMGRjYzVlODY0MWQ0Mzg3ZWQzNTk3MjhkZGE3NTNmZTViYmYwNzcwLi4zMjVhNDZmZmM1
OTk0MTk0MTEyNDk2ODZkZjdhYzUyZWJhOWJhMTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL0xvZ2dpbmcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0xvZ2dpbmcu
aApAQCAtNDEsNyArNDEsNyBAQCBleHRlcm4gIkMiIHsKIAogI2RlZmluZSBXRUJLSVQyX0xPR19D
SEFOTkVMUyhNKSBcCiAgICAgTShBY3Rpdml0eVN0YXRlKSBcCi0gICAgTShQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCkgXAorICAgIE0oQWRDbGlja0F0dHJpYnV0aW9uKSBcCiAgICAgTShBcHBTU08p
IFwKICAgICBNKEF1dG9tYXRpb24pIFwKICAgICBNKEF1dG9tYXRpb25JbnRlcmFjdGlvbnMpIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdmlnYXRpb25BY3Rpb25EYXRhLmNw
cCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdmlnYXRpb25BY3Rpb25EYXRhLmNwcAppbmRleCA0
YjJhNTYyYzRhN2Q3NThiYzQ3NTlhMmQ2ZDZhYzIzMjdjNWYxMGYwLi4wMmY3Mzg4NGE3M2QxYzQ5
ZTY5ZmE5YTJlYTM0MDRiZTY1ZWE3NTMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvTmF2
aWdhdGlvbkFjdGlvbkRhdGEuY3BwCkBAIC01NCw3ICs1NCw3IEBAIHZvaWQgTmF2aWdhdGlvbkFj
dGlvbkRhdGE6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2Rl
ciA8PCBsb2NrSGlzdG9yeTsKICAgICBlbmNvZGVyIDw8IGxvY2tCYWNrRm9yd2FyZExpc3Q7CiAg
ICAgZW5jb2RlciA8PCBjbGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3Rvcnk7Ci0gICAgZW5jb2Rl
ciA8PCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudDsKKyAgICBlbmNvZGVyIDw8IGFkQ2xpY2tBdHRy
aWJ1dGlvbjsKIH0KIAogT3B0aW9uYWw8TmF2aWdhdGlvbkFjdGlvbkRhdGE+IE5hdmlnYXRpb25B
Y3Rpb25EYXRhOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQpAQCAtMTQ2LDE1ICsxNDYs
MTUgQEAgT3B0aW9uYWw8TmF2aWdhdGlvbkFjdGlvbkRhdGE+IE5hdmlnYXRpb25BY3Rpb25EYXRh
OjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGUKICAgICBpZiAoIWNsaWVudFJlZGlyZWN0U291
cmNlRm9ySGlzdG9yeSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAotICAgIE9wdGlv
bmFsPE9wdGlvbmFsPFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50Pj4gcHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ7Ci0gICAgZGVjb2RlciA+PiBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudDsK
LSAgICBpZiAoIXByaXZhdGVDbGlja01lYXN1cmVtZW50KQorICAgIE9wdGlvbmFsPE9wdGlvbmFs
PFdlYkNvcmU6OkFkQ2xpY2tBdHRyaWJ1dGlvbj4+IGFkQ2xpY2tBdHRyaWJ1dGlvbjsKKyAgICBk
ZWNvZGVyID4+IGFkQ2xpY2tBdHRyaWJ1dGlvbjsKKyAgICBpZiAoIWFkQ2xpY2tBdHRyaWJ1dGlv
bikKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAogICAgIHJldHVybiB7eyBXVEZNb3Zl
KG5hdmlnYXRpb25UeXBlKSwgbW9kaWZpZXJzLCBXVEZNb3ZlKG1vdXNlQnV0dG9uKSwgV1RGTW92
ZShzeW50aGV0aWNDbGlja1R5cGUpLCBXVEZNb3ZlKCp1c2VyR2VzdHVyZVRva2VuSWRlbnRpZmll
ciksCiAgICAgICAgIFdURk1vdmUoKmNhbkhhbmRsZVJlcXVlc3QpLCBXVEZNb3ZlKHNob3VsZE9w
ZW5FeHRlcm5hbFVSTHNQb2xpY3kpLCBXVEZNb3ZlKCpkb3dubG9hZEF0dHJpYnV0ZSksIFdURk1v
dmUoY2xpY2tMb2NhdGlvbkluUm9vdFZpZXdDb29yZGluYXRlcyksCiAgICAgICAgIFdURk1vdmUo
KmlzUmVkaXJlY3QpLCAqdHJlYXRBc1NhbWVPcmlnaW5OYXZpZ2F0aW9uLCAqaGFzT3BlbmVkRnJh
bWVzLCAqb3BlbmVkQnlET01XaXRoT3BlbmVyLCBXVEZNb3ZlKCpyZXF1ZXN0ZXJPcmlnaW4pLAot
ICAgICAgICBXVEZNb3ZlKCp0YXJnZXRCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyKSwgV1RGTW92
ZSgqc291cmNlQmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciksIGxvY2tIaXN0b3J5LCBsb2NrQmFj
a0ZvcndhcmRMaXN0LCBXVEZNb3ZlKCpjbGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3RvcnkpLCBX
VEZNb3ZlKCpwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCkgfX07CisgICAgICAgIFdURk1vdmUoKnRh
cmdldEJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXIpLCBXVEZNb3ZlKCpzb3VyY2VCYWNrRm9yd2Fy
ZEl0ZW1JZGVudGlmaWVyKSwgbG9ja0hpc3RvcnksIGxvY2tCYWNrRm9yd2FyZExpc3QsIFdURk1v
dmUoKmNsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeSksIFdURk1vdmUoKmFkQ2xpY2tBdHRy
aWJ1dGlvbikgfX07CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvTmF2aWdhdGlvbkFjdGlvbkRhdGEuaCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL05hdmlnYXRpb25BY3Rpb25EYXRhLmgKaW5kZXggMzE5ZjJmOTgyZmM1MGFiMzQwYjRj
NjI4NWY3OTFlMGU0ZTUzYmM2MS4uY2JkNzcwZTU3ZjNlYTdkNGZjODkyZGNlYWY0NGRmYWZjMGI1
ZjRkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvTmF2aWdhdGlvbkFjdGlvbkRh
dGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5oCkBA
IC0yNiwxMCArMjYsMTAgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiV2ViTW91c2VFdmVu
dC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQWRDbGlja0F0dHJpYnV0aW9uLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9CYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9G
bG9hdFBvaW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVzLmg+Ci0jaW5j
bHVkZSA8V2ViQ29yZS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CiAKIG5hbWVzcGFjZSBJUEMgewpAQCAtNjIsNyArNjIs
NyBAQCBzdHJ1Y3QgTmF2aWdhdGlvbkFjdGlvbkRhdGEgewogICAgIFdlYkNvcmU6OkxvY2tIaXN0
b3J5IGxvY2tIaXN0b3J5IHsgV2ViQ29yZTo6TG9ja0hpc3Rvcnk6Ok5vIH07CiAgICAgV2ViQ29y
ZTo6TG9ja0JhY2tGb3J3YXJkTGlzdCBsb2NrQmFja0ZvcndhcmRMaXN0IHsgV2ViQ29yZTo6TG9j
a0JhY2tGb3J3YXJkTGlzdDo6Tm8gfTsKICAgICBXVEY6OlN0cmluZyBjbGllbnRSZWRpcmVjdFNv
dXJjZUZvckhpc3Rvcnk7Ci0gICAgT3B0aW9uYWw8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ+IHByaXZhdGVDbGlja01lYXN1cmVtZW50OworICAgIE9wdGlvbmFsPFdlYkNvcmU6OkFk
Q2xpY2tBdHRyaWJ1dGlvbj4gYWRDbGlja0F0dHJpYnV0aW9uOwogfTsKIAogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGEuY3BwIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGEuY3BwCmluZGV4IGFlYzE1
ZTVkMzgxYWQxYmRiMTE5N2YzNzRkM2IwMDdkNDNiNTJiOGUuLmI2YzkxODQwOWYwMWEwZDJlMzY1
YTMzMGNlZmVlNzc3NzZiYWZmMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YnNpdGVEYXRhL1dlYnNpdGVEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YS5jcHAKQEAgLTEzMyw3ICsxMzMsNyBAQCBXZWJzaXRlRGF0YVBy
b2Nlc3NUeXBlIFdlYnNpdGVEYXRhOjpvd25lclByb2Nlc3MoV2Vic2l0ZURhdGFUeXBlIGRhdGFU
eXBlKQogICAgICAgICByZXR1cm4gV2Vic2l0ZURhdGFQcm9jZXNzVHlwZTo6TmV0d29yazsKICAg
ICBjYXNlIFdlYnNpdGVEYXRhVHlwZTo6RGV2aWNlSWRIYXNoU2FsdDoKICAgICAgICAgcmV0dXJu
IFdlYnNpdGVEYXRhUHJvY2Vzc1R5cGU6OlVJOwotICAgIGNhc2UgV2Vic2l0ZURhdGFUeXBlOjpQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudHM6CisgICAgY2FzZSBXZWJzaXRlRGF0YVR5cGU6OkFkQ2xp
Y2tBdHRyaWJ1dGlvbnM6CiAgICAgICAgIHJldHVybiBXZWJzaXRlRGF0YVByb2Nlc3NUeXBlOjpO
ZXR3b3JrOwogI2lmIEhBVkUoQ0ZORVRXT1JLX0FMVEVSTkFUSVZFX1NFUlZJQ0UpCiAgICAgY2Fz
ZSBXZWJzaXRlRGF0YVR5cGU6OkFsdGVybmF0aXZlU2VydmljZXM6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVR5cGUuaCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhVHlwZS5oCmluZGV4IDM1ZjcyOTk0
MTZjYjlkNGZiMDJiZjk1NjMzMTgyNmExNGM4YTdkNjguLjY2MzVkYzU3ZDkwMTY4YjQxMWJiZjkx
MDczYTI2MDUzNTY3NzAyOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYnNp
dGVEYXRhL1dlYnNpdGVEYXRhVHlwZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYnNp
dGVEYXRhL1dlYnNpdGVEYXRhVHlwZS5oCkBAIC01MSw3ICs1MSw3IEBAIGVudW0gY2xhc3MgV2Vi
c2l0ZURhdGFUeXBlIDogdWludDMyX3QgewogI2VuZGlmCiAgICAgRE9NQ2FjaGUgPSAxIDw8IDE1
LAogICAgIERldmljZUlkSGFzaFNhbHQgPSAxIDw8IDE2LAotICAgIFByaXZhdGVDbGlja01lYXN1
cmVtZW50cyA9IDEgPDwgMTcsCisgICAgQWRDbGlja0F0dHJpYnV0aW9ucyA9IDEgPDwgMTcsCiAj
aWYgSEFWRShDRk5FVFdPUktfQUxURVJOQVRJVkVfU0VSVklDRSkKICAgICBBbHRlcm5hdGl2ZVNl
cnZpY2VzID0gMSA8PCAxOCwKICNlbmRpZgpAQCAtODUsNyArODUsNyBAQCB0ZW1wbGF0ZTw+IHN0
cnVjdCBFbnVtVHJhaXRzPFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiB7CiAjZW5kaWYKICAgICAg
ICAgV2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU6OkRPTUNhY2hlLAogICAgICAgICBXZWJLaXQ6Oldl
YnNpdGVEYXRhVHlwZTo6RGV2aWNlSWRIYXNoU2FsdCwKLSAgICAgICAgV2ViS2l0OjpXZWJzaXRl
RGF0YVR5cGU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50cworICAgICAgICBXZWJLaXQ6OldlYnNp
dGVEYXRhVHlwZTo6QWRDbGlja0F0dHJpYnV0aW9ucwogI2lmIEhBVkUoQ0ZORVRXT1JLX0FMVEVS
TkFUSVZFX1NFUlZJQ0UpCiAgICAgICAgICwgV2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU6OkFsdGVy
bmF0aXZlU2VydmljZXMKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2Vz
LnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggMzI5YmVkMDFiZDI0ZmI4YjEy
N2U2Yjk5NTI1NTgwZTdmMjQ0MGE2NS4uODNkMjgwYzc1ZWY1ZjViYjBhMmViNmQxMWFhOGMwZmE5
MTliNzRkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC01MSw3ICs1MSw3IEBAIEdQVVByb2Nlc3Mvd2VicnRj
L1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAKIEdQVVByb2Nlc3Mvd2VicnRjL1Jl
bW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuY3BwCiAKIAotTmV0d29ya1Byb2Nl
c3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmNwcAorTmV0d29ya1Byb2Nlc3MvQWRD
bGlja0F0dHJpYnV0aW9uTWFuYWdlci5jcHAKIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtBY3Rpdml0
eVRyYWNrZXIuY3BwCiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIu
Y3BwCiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvbi5oCmluZGV4IDE5MDk1ZGE0
ODY2MWI4NWMwOTQ2MmVhZWIxNWNmMWZlZjQxYTkxNDkuLmQ4NjhmOGIyMzNlZTZmYTU1ODczNzE5
MTM3ZjRjMzFjMTI4YzdlYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9BUElOYXZpZ2F0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5h
dmlnYXRpb24uaApAQCAtMzIsNyArMzIsNyBAQAogI2luY2x1ZGUgIlByb2Nlc3NUaHJvdHRsZXIu
aCIKICNpbmNsdWRlICJXZWJCYWNrRm9yd2FyZExpc3RJdGVtLmgiCiAjaW5jbHVkZSAiV2ViQ29u
dGVudE1vZGUuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Lmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9BZENsaWNrQXR0cmlidXRpb24uaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1Byb2Nlc3NJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVl
c3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luRGF0YS5oPgpAQCAtMTUzLDcg
KzE1Myw3IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IHN0ZDo6dW5pcXVlX3B0cjxTdWJzdGl0dXRl
RGF0YT4mIHN1YnN0aXR1dGVEYXRhKCkgY29uc3QgeyByZXR1cm4gbV9zdWJzdGl0dXRlRGF0YTsg
fQogCi0gICAgY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+
JiBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdE5hdmlnYXRp
b25BY3Rpb24ucHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ7IH0KKyAgICBjb25zdCBPcHRpb25hbDxX
ZWJDb3JlOjpBZENsaWNrQXR0cmlidXRpb24+JiBhZENsaWNrQXR0cmlidXRpb24oKSBjb25zdCB7
IHJldHVybiBtX2xhc3ROYXZpZ2F0aW9uQWN0aW9uLmFkQ2xpY2tBdHRyaWJ1dGlvbjsgfQogCiAg
ICAgdm9pZCBzZXRDbGllbnROYXZpZ2F0aW9uQWN0aXZpdHkoV2ViS2l0OjpQcm9jZXNzVGhyb3R0
bGVyOjpBY3Rpdml0eVZhcmlhbnQmJiBhY3Rpdml0eSkgeyBtX2NsaWVudE5hdmlnYXRpb25BY3Rp
dml0eSA9IFdURk1vdmUoYWN0aXZpdHkpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS1BhZ2UuY3BwCmluZGV4IGU3NmUwMDc4MGE0MTQ2NjIwNWVhMjlmNjEyMDU1M2I2YjNhNmU0
NDkuLjQzNjljZGQ4MjViNTE1N2ZiMDEwYzNmODFhZTc4ZTY2MGRhYTc0ZmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtMjg4MCwzNyArMjg4MCwzNyBAQCB2
b2lkIFdLUGFnZUdldEFwcGxpY2F0aW9uTWFuaWZlc3RfYihXS1BhZ2VSZWYgcGFnZSwgV0tQYWdl
R2V0QXBwbGljYXRpb25NYW5pZmVzdAogfQogI2VuZGlmCiAKLXZvaWQgV0tQYWdlRHVtcFByaXZh
dGVDbGlja01lYXN1cmVtZW50KFdLUGFnZVJlZiBwYWdlLCBXS1BhZ2VEdW1wUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRGdW5jdGlvbiBjYWxsYmFjaywgdm9pZCogY2FsbGJhY2tDb250ZXh0KQordm9p
ZCBXS1BhZ2VEdW1wQWRDbGlja0F0dHJpYnV0aW9uKFdLUGFnZVJlZiBwYWdlLCBXS1BhZ2VEdW1w
QWRDbGlja0F0dHJpYnV0aW9uRnVuY3Rpb24gY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrQ29udGV4
dCkKIHsKLSAgICB0b0ltcGwocGFnZSktPmR1bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChbY2Fs
bGJhY2tDb250ZXh0LCBjYWxsYmFja10gKGNvbnN0IFN0cmluZyYgcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQpIHsKLSAgICAgICAgY2FsbGJhY2soV2ViS2l0Ojp0b0FQSShwcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC5pbXBsKCkpLCBjYWxsYmFja0NvbnRleHQpOworICAgIHRvSW1wbChwYWdlKS0+ZHVt
cEFkQ2xpY2tBdHRyaWJ1dGlvbihbY2FsbGJhY2tDb250ZXh0LCBjYWxsYmFja10gKGNvbnN0IFN0
cmluZyYgYWRDbGlja0F0dHJpYnV0aW9uKSB7CisgICAgICAgIGNhbGxiYWNrKFdlYktpdDo6dG9B
UEkoYWRDbGlja0F0dHJpYnV0aW9uLmltcGwoKSksIGNhbGxiYWNrQ29udGV4dCk7CiAgICAgfSk7
CiB9CiAKLXZvaWQgV0tQYWdlQ2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChXS1BhZ2VSZWYg
cGFnZSwgV0tQYWdlQ2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEZ1bmN0aW9uIGNhbGxiYWNr
LCB2b2lkKiBjYWxsYmFja0NvbnRleHQpCit2b2lkIFdLUGFnZUNsZWFyQWRDbGlja0F0dHJpYnV0
aW9uKFdLUGFnZVJlZiBwYWdlLCBXS1BhZ2VDbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbkZ1bmN0aW9u
IGNhbGxiYWNrLCB2b2lkKiBjYWxsYmFja0NvbnRleHQpCiB7Ci0gICAgdG9JbXBsKHBhZ2UpLT5j
bGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50KFtjYWxsYmFja0NvbnRleHQsIGNhbGxiYWNrXSAo
KSB7CisgICAgdG9JbXBsKHBhZ2UpLT5jbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbihbY2FsbGJhY2tD
b250ZXh0LCBjYWxsYmFja10gKCkgewogICAgICAgICBjYWxsYmFjayhjYWxsYmFja0NvbnRleHQp
OwogICAgIH0pOwogfQogCi12b2lkIFdLUGFnZVNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3Zl
cnJpZGVUaW1lckZvclRlc3RpbmcoV0tQYWdlUmVmIHBhZ2UsIGJvb2wgdmFsdWUsIFdLUGFnZVNl
dFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmdGdW5jdGlvbiBj
YWxsYmFjaywgdm9pZCogY2FsbGJhY2tDb250ZXh0KQordm9pZCBXS1BhZ2VTZXRBZENsaWNrQXR0
cmlidXRpb25PdmVycmlkZVRpbWVyRm9yVGVzdGluZyhXS1BhZ2VSZWYgcGFnZSwgYm9vbCB2YWx1
ZSwgV0tQYWdlU2V0QWRDbGlja0F0dHJpYnV0aW9uT3ZlcnJpZGVUaW1lckZvclRlc3RpbmdGdW5j
dGlvbiBjYWxsYmFjaywgdm9pZCogY2FsbGJhY2tDb250ZXh0KQogewotICAgIHRvSW1wbChwYWdl
KS0+c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVzdGluZyh2YWx1
ZSwgW2NhbGxiYWNrQ29udGV4dCwgY2FsbGJhY2tdICgpIHsKKyAgICB0b0ltcGwocGFnZSktPnNl
dEFkQ2xpY2tBdHRyaWJ1dGlvbk92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKHZhbHVlLCBbY2FsbGJh
Y2tDb250ZXh0LCBjYWxsYmFja10gKCkgewogICAgICAgICBjYWxsYmFjayhjYWxsYmFja0NvbnRl
eHQpOwogICAgIH0pOwogfQogCi12b2lkIFdLUGFnZVNldFByaXZhdGVDbGlja01lYXN1cmVtZW50
Q29udmVyc2lvblVSTEZvclRlc3RpbmcoV0tQYWdlUmVmIHBhZ2UsIFdLVVJMUmVmIFVSTFJlZiwg
V0tQYWdlU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZ0Z1
bmN0aW9uIGNhbGxiYWNrLCB2b2lkKiBjYWxsYmFja0NvbnRleHQpCit2b2lkIFdLUGFnZVNldEFk
Q2xpY2tBdHRyaWJ1dGlvbkNvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFdLUGFnZVJlZiBwYWdlLCBX
S1VSTFJlZiBVUkxSZWYsIFdLUGFnZVNldEFkQ2xpY2tBdHRyaWJ1dGlvbkNvbnZlcnNpb25VUkxG
b3JUZXN0aW5nRnVuY3Rpb24gY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrQ29udGV4dCkKIHsKLSAg
ICB0b0ltcGwocGFnZSktPnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZv
clRlc3RpbmcoVVJMKFVSTCgpLCB0b1dURlN0cmluZyhVUkxSZWYpKSwgW2NhbGxiYWNrQ29udGV4
dCwgY2FsbGJhY2tdICgpIHsKKyAgICB0b0ltcGwocGFnZSktPnNldEFkQ2xpY2tBdHRyaWJ1dGlv
bkNvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFVSTChVUkwoKSwgdG9XVEZTdHJpbmcoVVJMUmVmKSks
IFtjYWxsYmFja0NvbnRleHQsIGNhbGxiYWNrXSAoKSB7CiAgICAgICAgIGNhbGxiYWNrKGNhbGxi
YWNrQ29udGV4dCk7CiAgICAgfSk7CiB9CiAKLXZvaWQgV0tQYWdlTWFya1ByaXZhdGVDbGlja01l
YXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoV0tQYWdlUmVmIHBhZ2UsIFdLUGFnZU1hcmtQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nRnVuY3Rpb24gY2FsbGJh
Y2ssIHZvaWQqIGNhbGxiYWNrQ29udGV4dCkKK3ZvaWQgV0tQYWdlTWFya0FkQ2xpY2tBdHRyaWJ1
dGlvbnNBc0V4cGlyZWRGb3JUZXN0aW5nKFdLUGFnZVJlZiBwYWdlLCBXS1BhZ2VNYXJrQWRDbGlj
a0F0dHJpYnV0aW9uc0FzRXhwaXJlZEZvclRlc3RpbmdGdW5jdGlvbiBjYWxsYmFjaywgdm9pZCog
Y2FsbGJhY2tDb250ZXh0KQogewotICAgIHRvSW1wbChwYWdlKS0+bWFya1ByaXZhdGVDbGlja01l
YXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoW2NhbGxiYWNrQ29udGV4dCwgY2FsbGJhY2td
ICgpIHsKKyAgICB0b0ltcGwocGFnZSktPm1hcmtBZENsaWNrQXR0cmlidXRpb25zQXNFeHBpcmVk
Rm9yVGVzdGluZyhbY2FsbGJhY2tDb250ZXh0LCBjYWxsYmFja10gKCkgewogICAgICAgICBjYWxs
YmFjayhjYWxsYmFja0NvbnRleHQpOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tQYWdlUHJpdmF0ZS5oCmluZGV4IGZiZDYxMTlhZmExMWFlMDVhMjJhNjNh
NjQ0NzhmM2M4NmRmODIxOGMuLjIwZDNlZTk2ZjhhY2QzZWFkMmM3YjczNDEyYmQwNDE2ZTkzZjY0
YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVByaXZh
dGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRlLmgK
QEAgLTE2OSwxNiArMTY5LDE2IEBAIHR5cGVkZWYgdm9pZCAoXldLUGFnZUdldEFwcGxpY2F0aW9u
TWFuaWZlc3RCbG9jaykodm9pZCk7CiBXS19FWFBPUlQgdm9pZCBXS1BhZ2VHZXRBcHBsaWNhdGlv
bk1hbmlmZXN0X2IoV0tQYWdlUmVmIHBhZ2UsIFdLUGFnZUdldEFwcGxpY2F0aW9uTWFuaWZlc3RC
bG9jayBibG9jayk7CiAjZW5kaWYKIAotdHlwZWRlZiB2b2lkICgqV0tQYWdlRHVtcFByaXZhdGVD
bGlja01lYXN1cmVtZW50RnVuY3Rpb24pKFdLU3RyaW5nUmVmIHByaXZhdGVDbGlja01lYXN1cmVt
ZW50UmVwcmVzZW50YXRpb24sIHZvaWQqIGZ1bmN0aW9uQ29udGV4dCk7Ci1XS19FWFBPUlQgdm9p
ZCBXS1BhZ2VEdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoV0tQYWdlUmVmLCBXS1BhZ2VEdW1w
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRGdW5jdGlvbiwgdm9pZCogY2FsbGJhY2tDb250ZXh0KTsK
LXR5cGVkZWYgdm9pZCAoKldLUGFnZUNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRGdW5jdGlv
bikodm9pZCogZnVuY3Rpb25Db250ZXh0KTsKLVdLX0VYUE9SVCB2b2lkIFdLUGFnZUNsZWFyUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQoV0tQYWdlUmVmLCBXS1BhZ2VDbGVhclByaXZhdGVDbGlja01l
YXN1cmVtZW50RnVuY3Rpb24sIHZvaWQqIGNhbGxiYWNrQ29udGV4dCk7Ci10eXBlZGVmIHZvaWQg
KCpXS1BhZ2VTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5n
RnVuY3Rpb24pKHZvaWQqIGZ1bmN0aW9uQ29udGV4dCk7Ci1XS19FWFBPUlQgdm9pZCBXS1BhZ2VT
ZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKFdLUGFnZVJl
ZiBwYWdlLCBib29sIHZhbHVlLCBXS1BhZ2VTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJy
aWRlVGltZXJGb3JUZXN0aW5nRnVuY3Rpb24gY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrQ29udGV4
dCk7Ci10eXBlZGVmIHZvaWQgKCpXS1BhZ2VTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZl
cnNpb25VUkxGb3JUZXN0aW5nRnVuY3Rpb24pKHZvaWQqIGZ1bmN0aW9uQ29udGV4dCk7Ci1XS19F
WFBPUlQgdm9pZCBXS1BhZ2VTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxG
b3JUZXN0aW5nKFdLUGFnZVJlZiBwYWdlLCBXS1VSTFJlZiB1cmxTdHJpbmcsIFdLUGFnZVNldFBy
aXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmdGdW5jdGlvbiBjYWxs
YmFjaywgdm9pZCogY2FsbGJhY2tDb250ZXh0KTsKLXR5cGVkZWYgdm9pZCAoKldLUGFnZU1hcmtQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nRnVuY3Rpb24pKHZvaWQq
IGZ1bmN0aW9uQ29udGV4dCk7Ci1XS19FWFBPUlQgdm9pZCBXS1BhZ2VNYXJrUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyhXS1BhZ2VSZWYgcGFnZSwgV0tQYWdlTWFy
a1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmdGdW5jdGlvbiBjYWxs
YmFjaywgdm9pZCogY2FsbGJhY2tDb250ZXh0KTsKK3R5cGVkZWYgdm9pZCAoKldLUGFnZUR1bXBB
ZENsaWNrQXR0cmlidXRpb25GdW5jdGlvbikoV0tTdHJpbmdSZWYgYWRDbGlja0F0dHJpYnV0aW9u
UmVwcmVzZW50YXRpb24sIHZvaWQqIGZ1bmN0aW9uQ29udGV4dCk7CitXS19FWFBPUlQgdm9pZCBX
S1BhZ2VEdW1wQWRDbGlja0F0dHJpYnV0aW9uKFdLUGFnZVJlZiwgV0tQYWdlRHVtcEFkQ2xpY2tB
dHRyaWJ1dGlvbkZ1bmN0aW9uLCB2b2lkKiBjYWxsYmFja0NvbnRleHQpOwordHlwZWRlZiB2b2lk
ICgqV0tQYWdlQ2xlYXJBZENsaWNrQXR0cmlidXRpb25GdW5jdGlvbikodm9pZCogZnVuY3Rpb25D
b250ZXh0KTsKK1dLX0VYUE9SVCB2b2lkIFdLUGFnZUNsZWFyQWRDbGlja0F0dHJpYnV0aW9uKFdL
UGFnZVJlZiwgV0tQYWdlQ2xlYXJBZENsaWNrQXR0cmlidXRpb25GdW5jdGlvbiwgdm9pZCogY2Fs
bGJhY2tDb250ZXh0KTsKK3R5cGVkZWYgdm9pZCAoKldLUGFnZVNldEFkQ2xpY2tBdHRyaWJ1dGlv
bk92ZXJyaWRlVGltZXJGb3JUZXN0aW5nRnVuY3Rpb24pKHZvaWQqIGZ1bmN0aW9uQ29udGV4dCk7
CitXS19FWFBPUlQgdm9pZCBXS1BhZ2VTZXRBZENsaWNrQXR0cmlidXRpb25PdmVycmlkZVRpbWVy
Rm9yVGVzdGluZyhXS1BhZ2VSZWYgcGFnZSwgYm9vbCB2YWx1ZSwgV0tQYWdlU2V0QWRDbGlja0F0
dHJpYnV0aW9uT3ZlcnJpZGVUaW1lckZvclRlc3RpbmdGdW5jdGlvbiBjYWxsYmFjaywgdm9pZCog
Y2FsbGJhY2tDb250ZXh0KTsKK3R5cGVkZWYgdm9pZCAoKldLUGFnZVNldEFkQ2xpY2tBdHRyaWJ1
dGlvbkNvbnZlcnNpb25VUkxGb3JUZXN0aW5nRnVuY3Rpb24pKHZvaWQqIGZ1bmN0aW9uQ29udGV4
dCk7CitXS19FWFBPUlQgdm9pZCBXS1BhZ2VTZXRBZENsaWNrQXR0cmlidXRpb25Db252ZXJzaW9u
VVJMRm9yVGVzdGluZyhXS1BhZ2VSZWYgcGFnZSwgV0tVUkxSZWYgdXJsU3RyaW5nLCBXS1BhZ2VT
ZXRBZENsaWNrQXR0cmlidXRpb25Db252ZXJzaW9uVVJMRm9yVGVzdGluZ0Z1bmN0aW9uIGNhbGxi
YWNrLCB2b2lkKiBjYWxsYmFja0NvbnRleHQpOwordHlwZWRlZiB2b2lkICgqV0tQYWdlTWFya0Fk
Q2xpY2tBdHRyaWJ1dGlvbnNBc0V4cGlyZWRGb3JUZXN0aW5nRnVuY3Rpb24pKHZvaWQqIGZ1bmN0
aW9uQ29udGV4dCk7CitXS19FWFBPUlQgdm9pZCBXS1BhZ2VNYXJrQWRDbGlja0F0dHJpYnV0aW9u
c0FzRXhwaXJlZEZvclRlc3RpbmcoV0tQYWdlUmVmIHBhZ2UsIFdLUGFnZU1hcmtBZENsaWNrQXR0
cmlidXRpb25zQXNFeHBpcmVkRm9yVGVzdGluZ0Z1bmN0aW9uIGNhbGxiYWNrLCB2b2lkKiBjYWxs
YmFja0NvbnRleHQpOwogCiBXS19FWFBPUlQgdm9pZCBXS1BhZ2VTZXRNb2NrQ2FtZXJhT3JpZW50
YXRpb24oV0tQYWdlUmVmIHBhZ2UsIHVpbnQ2NF90IG9yaWVudGF0aW9uKTsKIFdLX0VYUE9SVCBi
b29sIFdLUGFnZUlzTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJFbmFibGVkKFdLUGFnZVJl
ZiBwYWdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vi
c2l0ZURhdGFTdG9yZVJlZi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dl
YnNpdGVEYXRhU3RvcmVSZWYuY3BwCmluZGV4IDIwZWM3NGQxYjZkMDEwNzVmZGMxZTZiYzFjYTBj
ZWExNmI0ZGEwZWYuLjE4NGJmZGVmNjQ2ZTRhYWY2ZDk5ZmI4OWZhOTkwOWU2MDdiMDkxNzUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9y
ZVJlZi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0
YVN0b3JlUmVmLmNwcApAQCAtODE3LDkgKzgxNyw5IEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3Jl
Q2xlYXJBbGxEZXZpY2VPcmllbnRhdGlvblBlcm1pc3Npb25zKFdLV2Vic2l0ZURhdGFTdG9yZVJl
CiAjZW5kaWYKIH0KIAotdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVDbGVhclByaXZhdGVDbGlja01l
YXN1cmVtZW50c1Rocm91Z2hXZWJzaXRlRGF0YVJlbW92YWwoV0tXZWJzaXRlRGF0YVN0b3JlUmVm
IGRhdGFTdG9yZVJlZiwgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlQ2xlYXJQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudHNUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsRnVuY3Rpb24gY2Fs
bGJhY2spCit2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZUNsZWFyQWRDbGlja0F0dHJpYnV0aW9uc1Ro
cm91Z2hXZWJzaXRlRGF0YVJlbW92YWwoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJl
Ziwgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlQ2xlYXJBZENsaWNrQXR0cmlidXRp
b25zVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbEZ1bmN0aW9uIGNhbGxiYWNrKQogewotICAgIE9w
dGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzID0gV2ViS2l0OjpXZWJz
aXRlRGF0YVR5cGU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50czsKKyAgICBPcHRpb25TZXQ8V2Vi
S2l0OjpXZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBlcyA9IFdlYktpdDo6V2Vic2l0ZURhdGFUeXBl
OjpBZENsaWNrQXR0cmlidXRpb25zOwogICAgIFdlYktpdDo6dG9JbXBsKGRhdGFTdG9yZVJlZikt
PnJlbW92ZURhdGEoZGF0YVR5cGVzLCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoMCksIFtjb250
ZXh0LCBjYWxsYmFja10gewogICAgICAgICBjYWxsYmFjayhjb250ZXh0KTsKICAgICB9KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9y
ZVJlZi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3Jl
UmVmLmgKaW5kZXggZmQ0MTc2ZDRmMmUyZTA0ZDY0MzQ4YzdhOTliMThhMGJlYjlmYWRmNy4uMWI2
YjgzNThhOGI3MDkwZmM1NzQ1MzE5YzcxZTYwMDkxYzI3ZjdiYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmgKQEAgLTE4
Niw4ICsxODYsOCBAQCBXS19FWFBPUlQgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVHZXRBbGxTdG9y
YWdlQWNjZXNzRW50cmllcyhXS1dlYnNpdGVEYXRhU3RvcmVSZQogCiBXS19FWFBPUlQgdm9pZCBX
S1dlYnNpdGVEYXRhU3RvcmVDbGVhckFsbERldmljZU9yaWVudGF0aW9uUGVybWlzc2lvbnMoV0tX
ZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZik7CiAKLXR5cGVkZWYgdm9pZCAoKldLV2Vi
c2l0ZURhdGFTdG9yZUNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzVGhyb3VnaFdlYnNpdGVE
YXRhUmVtb3ZhbEZ1bmN0aW9uKSh2b2lkKiBmdW5jdGlvbkNvbnRleHQpOwotV0tfRVhQT1JUIHZv
aWQgV0tXZWJzaXRlRGF0YVN0b3JlQ2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNUaHJvdWdo
V2Vic2l0ZURhdGFSZW1vdmFsKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIHZv
aWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9yZUNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRzVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbEZ1bmN0aW9uIGNhbGxiYWNrKTsKK3R5cGVkZWYg
dm9pZCAoKldLV2Vic2l0ZURhdGFTdG9yZUNsZWFyQWRDbGlja0F0dHJpYnV0aW9uc1Rocm91Z2hX
ZWJzaXRlRGF0YVJlbW92YWxGdW5jdGlvbikodm9pZCogZnVuY3Rpb25Db250ZXh0KTsKK1dLX0VY
UE9SVCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZUNsZWFyQWRDbGlja0F0dHJpYnV0aW9uc1Rocm91
Z2hXZWJzaXRlRGF0YVJlbW92YWwoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwg
dm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlQ2xlYXJBZENsaWNrQXR0cmlidXRpb25z
VGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbEZ1bmN0aW9uIGNhbGxiYWNrKTsKIAogV0tfRVhQT1JU
IHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0Q2FjaGVNb2RlbFN5bmNocm9ub3VzbHlGb3JUZXN0
aW5nKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLQ2FjaGVNb2RlbCBjYWNo
ZU1vZGVsKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2Vic2l0ZURhdGFSZWNvcmQubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJzaXRlRGF0YVJlY29yZC5tbQppbmRleCBlM2EwNDQ2YzBiNTdiZWFiNzA0ZjZiM2Zi
YjlhMzIzM2IyMDJhYzJkLi40NTQwM2QxNjkzNmVhYTgyNTRjZDUwNWZhODg0ZWRmMGRhZmUwNDlj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRl
RGF0YVJlY29yZC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJzaXRlRGF0YVJlY29yZC5tbQpAQCAtNDgsNyArNDgsNyBAQCBOU1N0cmluZyAqIGNvbnN0IF9X
S1dlYnNpdGVEYXRhVHlwZUhTVFNDYWNoZSA9IEAiX1dLV2Vic2l0ZURhdGFUeXBlSFNUU0NhY2hl
IjsKIE5TU3RyaW5nICogY29uc3QgX1dLV2Vic2l0ZURhdGFUeXBlU2VhcmNoRmllbGRSZWNlbnRT
ZWFyY2hlcyA9IEAiX1dLV2Vic2l0ZURhdGFUeXBlU2VhcmNoRmllbGRSZWNlbnRTZWFyY2hlcyI7
CiBOU1N0cmluZyAqIGNvbnN0IF9XS1dlYnNpdGVEYXRhVHlwZVJlc291cmNlTG9hZFN0YXRpc3Rp
Y3MgPSBAIl9XS1dlYnNpdGVEYXRhVHlwZVJlc291cmNlTG9hZFN0YXRpc3RpY3MiOwogTlNTdHJp
bmcgKiBjb25zdCBfV0tXZWJzaXRlRGF0YVR5cGVDcmVkZW50aWFscyA9IEAiX1dLV2Vic2l0ZURh
dGFUeXBlQ3JlZGVudGlhbHMiOwotTlNTdHJpbmcgKiBjb25zdCBfV0tXZWJzaXRlRGF0YVR5cGVQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudHMgPSBAIl9XS1dlYnNpdGVEYXRhVHlwZVByaXZhdGVDbGlj
a01lYXN1cmVtZW50cyI7CitOU1N0cmluZyAqIGNvbnN0IF9XS1dlYnNpdGVEYXRhVHlwZUFkQ2xp
Y2tBdHRyaWJ1dGlvbnMgPSBAIl9XS1dlYnNpdGVEYXRhVHlwZUFkQ2xpY2tBdHRyaWJ1dGlvbnMi
OwogTlNTdHJpbmcgKiBjb25zdCBfV0tXZWJzaXRlRGF0YVR5cGVBbHRlcm5hdGl2ZVNlcnZpY2Vz
ID0gQCJfV0tXZWJzaXRlRGF0YVR5cGVBbHRlcm5hdGl2ZVNlcnZpY2VzIjsKIAogI2lmIFBMQVRG
T1JNKE1BQykKQEAgLTEwMiw4ICsxMDIsOCBAQCBzdGF0aWMgTlNTdHJpbmcgKmRhdGFUeXBlc1Rv
U3RyaW5nKE5TU2V0ICpkYXRhVHlwZXMpCiAgICAgICAgIFthcnJheSBhZGRPYmplY3Q6QCJSZXNv
dXJjZSBMb2FkIFN0YXRpc3RpY3MiXTsKICAgICBpZiAoW2RhdGFUeXBlcyBjb250YWluc09iamVj
dDpfV0tXZWJzaXRlRGF0YVR5cGVDcmVkZW50aWFsc10pCiAgICAgICAgIFthcnJheSBhZGRPYmpl
Y3Q6QCJDcmVkZW50aWFscyJdOwotICAgIGlmIChbZGF0YVR5cGVzIGNvbnRhaW5zT2JqZWN0Ol9X
S1dlYnNpdGVEYXRhVHlwZVByaXZhdGVDbGlja01lYXN1cmVtZW50c10pCi0gICAgICAgIFthcnJh
eSBhZGRPYmplY3Q6QCJQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50cyJdOworICAgIGlmIChbZGF0
YVR5cGVzIGNvbnRhaW5zT2JqZWN0Ol9XS1dlYnNpdGVEYXRhVHlwZUFkQ2xpY2tBdHRyaWJ1dGlv
bnNdKQorICAgICAgICBbYXJyYXkgYWRkT2JqZWN0OkAiQWQgQ2xpY2sgQXR0cmlidXRpb25zIl07
CiAgICAgaWYgKFtkYXRhVHlwZXMgY29udGFpbnNPYmplY3Q6X1dLV2Vic2l0ZURhdGFUeXBlQWx0
ZXJuYXRpdmVTZXJ2aWNlc10pCiAgICAgICAgIFthcnJheSBhZGRPYmplY3Q6QCJBbHRlcm5hdGl2
ZSBTZXJ2aWNlcyJdOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJzaXRlRGF0YVJlY29yZEludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVJlY29yZEludGVybmFsLmgKaW5kZXggMzhjODM1
ZGM3ODIyNmYzZGM5ZTgwNjYwY2VkMzFkN2RkN2ZlZWZkOC4uMjFlZWNiMzdjNjNlYTQxODM2MGJk
ZTE1MDg2YWJkOWMyN2E0YTY5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2Vic2l0ZURhdGFSZWNvcmRJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhUmVjb3JkSW50ZXJuYWwuaApAQCAt
NzQsOCArNzQsOCBAQCBzdGF0aWMgaW5saW5lIE9wdGlvbmFsPFdlYnNpdGVEYXRhVHlwZT4gdG9X
ZWJzaXRlRGF0YVR5cGUoTlNTdHJpbmcgKndlYnNpdGVEYXRhVAogICAgICAgICByZXR1cm4gV2Vi
c2l0ZURhdGFUeXBlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOwogICAgIGlmIChbd2Vic2l0ZURh
dGFUeXBlIGlzRXF1YWxUb1N0cmluZzpfV0tXZWJzaXRlRGF0YVR5cGVDcmVkZW50aWFsc10pCiAg
ICAgICAgIHJldHVybiBXZWJzaXRlRGF0YVR5cGU6OkNyZWRlbnRpYWxzOwotICAgIGlmIChbd2Vi
c2l0ZURhdGFUeXBlIGlzRXF1YWxUb1N0cmluZzpfV0tXZWJzaXRlRGF0YVR5cGVQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudHNdKQotICAgICAgICByZXR1cm4gV2Vic2l0ZURhdGFUeXBlOjpQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudHM7CisgICAgaWYgKFt3ZWJzaXRlRGF0YVR5cGUgaXNFcXVhbFRvU3Ry
aW5nOl9XS1dlYnNpdGVEYXRhVHlwZUFkQ2xpY2tBdHRyaWJ1dGlvbnNdKQorICAgICAgICByZXR1
cm4gV2Vic2l0ZURhdGFUeXBlOjpBZENsaWNrQXR0cmlidXRpb25zOwogI2lmIEhBVkUoQ0ZORVRX
T1JLX0FMVEVSTkFUSVZFX1NFUlZJQ0UpCiAgICAgaWYgKFt3ZWJzaXRlRGF0YVR5cGUgaXNFcXVh
bFRvU3RyaW5nOl9XS1dlYnNpdGVEYXRhVHlwZUFsdGVybmF0aXZlU2VydmljZXNdKQogICAgICAg
ICByZXR1cm4gV2Vic2l0ZURhdGFUeXBlOjpBbHRlcm5hdGl2ZVNlcnZpY2VzOwpAQCAtMTM1LDgg
KzEzNSw4IEBAIHN0YXRpYyBpbmxpbmUgUmV0YWluUHRyPE5TU2V0PiB0b1dLV2Vic2l0ZURhdGFU
eXBlcyhPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0CiAgICAgICAgIFt3a1dlYnNpdGVEYXRh
VHlwZXMgYWRkT2JqZWN0Ol9XS1dlYnNpdGVEYXRhVHlwZVJlc291cmNlTG9hZFN0YXRpc3RpY3Nd
OwogICAgIGlmICh3ZWJzaXRlRGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6Q3Jl
ZGVudGlhbHMpKQogICAgICAgICBbd2tXZWJzaXRlRGF0YVR5cGVzIGFkZE9iamVjdDpfV0tXZWJz
aXRlRGF0YVR5cGVDcmVkZW50aWFsc107Ci0gICAgaWYgKHdlYnNpdGVEYXRhVHlwZXMuY29udGFp
bnMoV2Vic2l0ZURhdGFUeXBlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHMpKQotICAgICAgICBb
d2tXZWJzaXRlRGF0YVR5cGVzIGFkZE9iamVjdDpfV0tXZWJzaXRlRGF0YVR5cGVQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudHNdOworICAgIGlmICh3ZWJzaXRlRGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNp
dGVEYXRhVHlwZTo6QWRDbGlja0F0dHJpYnV0aW9ucykpCisgICAgICAgIFt3a1dlYnNpdGVEYXRh
VHlwZXMgYWRkT2JqZWN0Ol9XS1dlYnNpdGVEYXRhVHlwZUFkQ2xpY2tBdHRyaWJ1dGlvbnNdOwog
I2lmIEhBVkUoQ0ZORVRXT1JLX0FMVEVSTkFUSVZFX1NFUlZJQ0UpCiAgICAgaWYgKHdlYnNpdGVE
YXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURhdGFUeXBlOjpBbHRlcm5hdGl2ZVNlcnZpY2VzKSkK
ICAgICAgICAgW3drV2Vic2l0ZURhdGFUeXBlcyBhZGRPYmplY3Q6X1dLV2Vic2l0ZURhdGFUeXBl
QWx0ZXJuYXRpdmVTZXJ2aWNlc107CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVJlY29yZFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhUmVjb3JkUHJpdmF0ZS5oCmluZGV4IDZk
ZTBmMWY4ZjE3OTBlOWJhMjNhNjFkN2QzNjdiYzIwNTBlNDc2MDEuLjZjZWRmZjdlNzZiNTRlZGI1
ZjgwMTMyNDgwMDIwMGI3YjllODE4NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhUmVjb3JkUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhUmVjb3JkUHJpdmF0ZS5oCkBA
IC0zNCw3ICszNCw3IEBAIFdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS1dlYnNpdGVEYXRh
VHlwZU1lZGlhS2V5cyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwCiBXS19FWFRFUk4gTlNTdHJp
bmcgKiBjb25zdCBfV0tXZWJzaXRlRGF0YVR5cGVTZWFyY2hGaWVsZFJlY2VudFNlYXJjaGVzIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwogV0tfRVhURVJOIE5TU3Ry
aW5nICogY29uc3QgX1dLV2Vic2l0ZURhdGFUeXBlUmVzb3VyY2VMb2FkU3RhdGlzdGljcyBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKIFdLX0VYVEVSTiBOU1N0cmlu
ZyAqIGNvbnN0IF9XS1dlYnNpdGVEYXRhVHlwZUNyZWRlbnRpYWxzIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOwotV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dL
V2Vic2l0ZURhdGFUeXBlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTUpLCBpb3MoMTMuMCkpOworV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dL
V2Vic2l0ZURhdGFUeXBlQWRDbGlja0F0dHJpYnV0aW9ucyBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEwLjE1KSwgaW9zKDEzLjApKTsKIFdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS1dlYnNp
dGVEYXRhVHlwZUFsdGVybmF0aXZlU2VydmljZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19N
QUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogI2lmICFUQVJHRVRfT1NfSVBIT05FCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0
b3JlLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFT
dG9yZS5tbQppbmRleCAxYjA4ZjBkNjU5M2RiOWM1OWVhNGFlN2Q5ZjM5N2ViNjNmNTg2NGExLi43
NmZkYWMwZTkwMGY0ZTJmMGY1NGY2Y2YyMWQ4YmY3MDZhMjBiMjEyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0K
QEAgLTIzOSw3ICsyMzksNyBAQCArIChOU1NldDxOU1N0cmluZyAqPiAqKV9hbGxXZWJzaXRlRGF0
YVR5cGVzSW5jbHVkaW5nUHJpdmF0ZQogICAgICAgICAgICAgX1dLV2Vic2l0ZURhdGFUeXBlU2Vh
cmNoRmllbGRSZWNlbnRTZWFyY2hlcywKICAgICAgICAgICAgIF9XS1dlYnNpdGVEYXRhVHlwZVJl
c291cmNlTG9hZFN0YXRpc3RpY3MsCiAgICAgICAgICAgICBfV0tXZWJzaXRlRGF0YVR5cGVDcmVk
ZW50aWFscywKLSAgICAgICAgICAgIF9XS1dlYnNpdGVEYXRhVHlwZVByaXZhdGVDbGlja01lYXN1
cmVtZW50cywKKyAgICAgICAgICAgIF9XS1dlYnNpdGVEYXRhVHlwZUFkQ2xpY2tBdHRyaWJ1dGlv
bnMsCiAgICAgICAgICAgICBfV0tXZWJzaXRlRGF0YVR5cGVBbHRlcm5hdGl2ZVNlcnZpY2VzCiAj
aWYgIVRBUkdFVF9PU19JUEhPTkUKICAgICAgICAgICAgICwgX1dLV2Vic2l0ZURhdGFUeXBlUGx1
Z0luRGF0YQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJv
Y2Vzc1Bvb2xDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nl
c3NQb29sQ29jb2EubW0KaW5kZXggYTc2NmVjNWY5N2M0NWM5MGYxNmU3N2QzZGEwNWYxYTBhZjA5
OGVhMC4uZTE1NzAxYWFhNWI5MzFhZTYxMGM2ZGUyZDNlZTIwOWYwOGY0OGMyOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1t
CkBAIC00NzUsNyArNDc1LDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFs
aXplTmV0d29ya1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmEKICAgICBwYXJhbWV0
ZXJzLnVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVyID0gaWRlbnRpZnlpbmdEYXRhRnJv
bUNvb2tpZVN0b3JhZ2UoW1tOU0hUVFBDb29raWVTdG9yYWdlIHNoYXJlZEhUVFBDb29raWVTdG9y
YWdlXSBfY29va2llU3RvcmFnZV0pOwogI2VuZGlmCiAKLSAgICBwYXJhbWV0ZXJzLmVuYWJsZVBy
aXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlID0gW2RlZmF1bHRzIGJvb2xGb3JLZXk6W05T
U3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJFeHBlcmltZW50YWwlQCIsIFdlYlByZWZlcmVuY2Vz
S2V5Ojpwcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZUVuYWJsZWRLZXkoKS5jcmVhdGVD
RlN0cmluZygpLmdldCgpXV07CisgICAgcGFyYW1ldGVycy5lbmFibGVBZENsaWNrQXR0cmlidXRp
b25EZWJ1Z01vZGUgPSBbZGVmYXVsdHMgYm9vbEZvcktleTpbTlNTdHJpbmcgc3RyaW5nV2l0aEZv
cm1hdDpAIkV4cGVyaW1lbnRhbCVAIiwgV2ViUHJlZmVyZW5jZXNLZXk6OmFkQ2xpY2tBdHRyaWJ1
dGlvbkRlYnVnTW9kZUVuYWJsZWRLZXkoKS5jcmVhdGVDRlN0cmluZygpLmdldCgpXV07CiB9CiAK
IHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW52YWxpZGF0ZUNvbnRleHQoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JQcm94
eS5jcHAKaW5kZXggMmEyOWQ4ZGE3NjcwNWE4MTE0Yjc4YzlkOWYwM2U5MGFiZDQ3YjkzYy4uZjBm
N2IyZGY1ZTQxOTJhYzQ1NDhiOGY3YmNiOTk3ZDFmMTMwZDQ2MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yUHJveHkuY3BwCkBA
IC02NTQsOSArNjU0LDkgQEAgdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6dGltZWxpbmVSZWNvcmRp
bmdDaGFuZ2VkKGJvb2wgYWN0aXZlKQogdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6c2V0RGV2ZWxv
cGVyUHJlZmVyZW5jZU92ZXJyaWRlKFdlYkNvcmU6Okluc3BlY3RvckNsaWVudDo6RGV2ZWxvcGVy
UHJlZmVyZW5jZSBkZXZlbG9wZXJQcmVmZXJlbmNlLCBPcHRpb25hbDxib29sPiBvdmVycmlkZVZh
bHVlKQogewogICAgIHN3aXRjaCAoZGV2ZWxvcGVyUHJlZmVyZW5jZSkgewotICAgIGNhc2UgSW5z
cGVjdG9yQ2xpZW50OjpEZXZlbG9wZXJQcmVmZXJlbmNlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dERlYnVnTW9kZUVuYWJsZWQ6CisgICAgY2FzZSBJbnNwZWN0b3JDbGllbnQ6OkRldmVsb3BlclBy
ZWZlcmVuY2U6OkFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZUVuYWJsZWQ6CiAgICAgICAgIGlm
IChtX2luc3BlY3RlZFBhZ2UpCi0gICAgICAgICAgICBtX2luc3BlY3RlZFBhZ2UtPndlYnNpdGVE
YXRhU3RvcmUoKS5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZShvdmVycmlkZVZh
bHVlICYmIG92ZXJyaWRlVmFsdWUudmFsdWUoKSk7CisgICAgICAgICAgICBtX2luc3BlY3RlZFBh
Z2UtPndlYnNpdGVEYXRhU3RvcmUoKS5zZXRBZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGUob3Zl
cnJpZGVWYWx1ZSAmJiBvdmVycmlkZVZhbHVlLnZhbHVlKCkpOwogICAgICAgICByZXR1cm47CiAK
ICAgICBjYXNlIEluc3BlY3RvckNsaWVudDo6RGV2ZWxvcGVyUHJlZmVyZW5jZTo6SVRQRGVidWdN
b2RlRW5hYmxlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IDdiMjQ1ZTNjMDQ4NWM1M2NiNzkzZjNmNGMy
YjcwYWIzZGQwMWI4NTEuLjZlZTI2ZDA0NmIwYjIxODg3MDczZTZlZTczNDk4NDNkYWQzMzVhZmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5LmNwcApAQCAtMTI3MiwxMiArMTI3MiwxMiBAQCB2b2lkIE5ldHdvcmtQcm9j
ZXNzUHJveHk6OnNldERvbWFpbnNXaXRoVXNlckludGVyYWN0aW9uKEhhc2hTZXQ8V2ViQ29yZTo6
UmVnaXN0cgogfQogI2VuZGlmIC8vIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAK
LXZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1
Z01vZGUoYm9vbCBkZWJ1Z01vZGUpCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldEFkQ2xp
Y2tBdHRyaWJ1dGlvbkRlYnVnTW9kZShib29sIGRlYnVnTW9kZSkKIHsKICAgICBpZiAoIWNhblNl
bmRNZXNzYWdlKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdv
cmtQcm9jZXNzOjpTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZShkZWJ1Z01vZGUp
LCAwKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0QWRDbGlja0F0dHJp
YnV0aW9uRGVidWdNb2RlKGRlYnVnTW9kZSksIDApOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNz
UHJveHk6OnNlbmRQcm9jZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5Rm9yVGVzdGluZygpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94
eS5oCmluZGV4IGI2ZWY3NTRiYjUxMmFlMDg4ZDUwMjJkYmE4YTU0ZmU4NDA0YTI3NGUuLmQwMzA0
M2Y3OGQwMjEzMmY0MzkzMTFkMjYyN2IwOGMzYzdkYWFkMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCkBAIC0yMDIs
NyArMjAyLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0RG9tYWluc1dpdGhVc2VySW50ZXJhY3Rp
b24oSGFzaFNldDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4mJik7CiAjZW5kaWYKIAotICAg
IHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGUoYm9vbCk7CisgICAgdm9p
ZCBzZXRBZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGUoYm9vbCk7CiAgICAgCiAgICAgdm9pZCBz
eW50aGVzaXplQXBwSXNCYWNrZ3JvdW5kKGJvb2wgYmFja2dyb3VuZCk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDYzMDlkZWU1YjQwMjk1MDA3NWY2ZWVh
OWVmZWExM2Y0NmJmYzY4OTQuLmE4ODczOGM0ODI3Y2NhZGRkYmMzZTEzZDcwODljZDAxOTkwNjdk
YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMTM5LDYg
KzEzOSw3IEBACiAjaW5jbHVkZSAiV2ViVmlld0RpZE1vdmVUb1dpbmRvd09ic2VydmVyLmgiCiAj
aW5jbHVkZSAiV2ViV2hlZWxFdmVudENvYWxlc2Nlci5oIgogI2luY2x1ZGUgIldlYnNpdGVEYXRh
U3RvcmUuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0FkQ2xpY2tBdHRyaWJ1dGlvbi5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvQml0bWFwSW1hZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0NvbXBvc2l0aW9u
SGlnaGxpZ2h0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Dcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRy
YW5zZmVyLmg+CkBAIC0xNjIsNyArMTYzLDYgQEAKICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhU3Ry
ZWFtUmVxdWVzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGVyZm9ybWFuY2VMb2dnaW5nQ2xpZW50
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUV2ZW50Lmg+Ci0jaW5jbHVkZSA8V2ViQ29y
ZS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUHVibGljU3Vm
Zml4Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJFbWJlZGRlZE9iamVjdC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5oPgpAQCAtNDY1MiwxNyArNDY1Miwx
NyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKEZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCBGcmFtZUluZm9EYXRhJgogICAgIGZyYW1lLT5kaWRDb21taXRMb2FkKG1p
bWVUeXBlLCB3ZWJDZXJ0aWZpY2F0ZUluZm8sIGNvbnRhaW5zUGx1Z2luRG9jdW1lbnQpOwogCiAg
ICAgaWYgKGZyYW1lLT5pc01haW5GcmFtZSgpKSB7Ci0gICAgICAgIE9wdGlvbmFsPFdlYkNvcmU6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50PiBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudDsKLSAgICAg
ICAgaWYgKG1fbmV3UGFnZU5hdmlnYXRpb25Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudCkKLSAgICAg
ICAgICAgIHByaXZhdGVDbGlja01lYXN1cmVtZW50ID0gbV9uZXdQYWdlTmF2aWdhdGlvblByaXZh
dGVDbGlja01lYXN1cmVtZW50OwotICAgICAgICBlbHNlIGlmIChuYXZpZ2F0aW9uICYmIG5hdmln
YXRpb24tPnByaXZhdGVDbGlja01lYXN1cmVtZW50KCkpCi0gICAgICAgICAgICBwcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCA9IG5hdmlnYXRpb24tPnByaXZhdGVDbGlja01lYXN1cmVtZW50KCk7Ci0g
ICAgICAgIGlmIChwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCkgewotICAgICAgICAgICAgaWYgKHBy
aXZhdGVDbGlja01lYXN1cmVtZW50LT5kZXN0aW5hdGlvbigpLm1hdGNoZXMoZnJhbWUtPnVybCgp
KSkKLSAgICAgICAgICAgICAgICB3ZWJzaXRlRGF0YVN0b3JlKCkubmV0d29ya1Byb2Nlc3MoKS5z
ZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U3RvcmVQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dChtX3dlYnNpdGVEYXRhU3RvcmUtPnNlc3Npb25JRCgpLCAqcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQpLCAwKTsKKyAgICAgICAgT3B0aW9uYWw8V2ViQ29yZTo6QWRDbGlja0F0dHJpYnV0aW9uPiBh
ZENsaWNrQXR0cmlidXRpb247CisgICAgICAgIGlmIChtX25ld1BhZ2VOYXZpZ2F0aW9uQWRDbGlj
a0F0dHJpYnV0aW9uKQorICAgICAgICAgICAgYWRDbGlja0F0dHJpYnV0aW9uID0gbV9uZXdQYWdl
TmF2aWdhdGlvbkFkQ2xpY2tBdHRyaWJ1dGlvbjsKKyAgICAgICAgZWxzZSBpZiAobmF2aWdhdGlv
biAmJiBuYXZpZ2F0aW9uLT5hZENsaWNrQXR0cmlidXRpb24oKSkKKyAgICAgICAgICAgIGFkQ2xp
Y2tBdHRyaWJ1dGlvbiA9IG5hdmlnYXRpb24tPmFkQ2xpY2tBdHRyaWJ1dGlvbigpOworICAgICAg
ICBpZiAoYWRDbGlja0F0dHJpYnV0aW9uKSB7CisgICAgICAgICAgICBpZiAoYWRDbGlja0F0dHJp
YnV0aW9uLT5kZXN0aW5hdGlvbigpLm1hdGNoZXMoZnJhbWUtPnVybCgpKSkKKyAgICAgICAgICAg
ICAgICB3ZWJzaXRlRGF0YVN0b3JlKCkubmV0d29ya1Byb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpO
ZXR3b3JrUHJvY2Vzczo6U3RvcmVBZENsaWNrQXR0cmlidXRpb24obV93ZWJzaXRlRGF0YVN0b3Jl
LT5zZXNzaW9uSUQoKSwgKmFkQ2xpY2tBdHRyaWJ1dGlvbiksIDApOwogICAgICAgICB9CiAgICAg
fQotICAgIG1fbmV3UGFnZU5hdmlnYXRpb25Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5yZXNldCgp
OworICAgIG1fbmV3UGFnZU5hdmlnYXRpb25BZENsaWNrQXR0cmlidXRpb24ucmVzZXQoKTsKIAog
ICAgIGlmIChmcmFtZS0+aXNNYWluRnJhbWUoKSkgewogICAgICAgICBtX21haW5GcmFtZUhhc0N1
c3RvbUNvbnRlbnRQcm92aWRlciA9IGZyYW1lSGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyOwpAQCAt
NTUyNCw3ICs1NTI0LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNyZWF0ZU5ld1BhZ2UoRnJhbWVJ
bmZvRGF0YSYmIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgV2ViUGEKICAgICBhdXRvKiBvcmln
aW5hdGluZ1BhZ2UgPSBtX3Byb2Nlc3MtPndlYlBhZ2Uob3JpZ2luYXRpbmdQYWdlSUQpOwogICAg
IGF1dG8gb3JpZ2luYXRpbmdGcmFtZUluZm8gPSBBUEk6OkZyYW1lSW5mbzo6Y3JlYXRlKFdURk1v
dmUob3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhKSwgb3JpZ2luYXRpbmdQYWdlKTsKICAgICBhdXRv
IG1haW5GcmFtZVVSTCA9IG1fbWFpbkZyYW1lID8gbV9tYWluRnJhbWUtPnVybCgpIDogVVJMKCk7
Ci0gICAgYXV0byBjb21wbGV0aW9uSGFuZGxlciA9IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZigqdGhpcyksIG1haW5GcmFtZVVSTCwgcmVxdWVzdCwgcmVwbHkgPSBXVEZNb3ZlKHJlcGx5
KSwgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgPSBuYXZpZ2F0aW9uQWN0aW9uRGF0YS5wcml2YXRl
Q2xpY2tNZWFzdXJlbWVudF0gKFJlZlB0cjxXZWJQYWdlUHJveHk+IG5ld1BhZ2UpIG11dGFibGUg
eworICAgIGF1dG8gY29tcGxldGlvbkhhbmRsZXIgPSBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1h
a2VSZWYoKnRoaXMpLCBtYWluRnJhbWVVUkwsIHJlcXVlc3QsIHJlcGx5ID0gV1RGTW92ZShyZXBs
eSksIGFkQ2xpY2tBdHRyaWJ1dGlvbiA9IG5hdmlnYXRpb25BY3Rpb25EYXRhLmFkQ2xpY2tBdHRy
aWJ1dGlvbl0gKFJlZlB0cjxXZWJQYWdlUHJveHk+IG5ld1BhZ2UpIG11dGFibGUgewogICAgICAg
ICBpZiAoIW5ld1BhZ2UpIHsKICAgICAgICAgICAgIHJlcGx5KFdURjo6bnVsbG9wdCwgV1RGOjpu
dWxsb3B0KTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTU1MzYsNyArNTUzNiw3IEBAIHZvaWQg
V2ViUGFnZVByb3h5OjpjcmVhdGVOZXdQYWdlKEZyYW1lSW5mb0RhdGEmJiBvcmlnaW5hdGluZ0Zy
YW1lSW5mb0RhdGEsIFdlYlBhCiAKICAgICAgICAgbmV3UGFnZS0+bV9zaG91bGRTdXBwcmVzc0Fw
cExpbmtzSW5OZXh0TmF2aWdhdGlvblBvbGljeURlY2lzaW9uID0gbWFpbkZyYW1lVVJMLmhvc3Qo
KSA9PSByZXF1ZXN0LnVybCgpLmhvc3QoKTsKIAotICAgICAgICBuZXdQYWdlLT5tX25ld1BhZ2VO
YXZpZ2F0aW9uUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgPSBwcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDsKKyAgICAgICAgbmV3UGFnZS0+bV9uZXdQYWdlTmF2aWdhdGlvbkFkQ2xpY2tBdHRyaWJ1dGlv
biA9IGFkQ2xpY2tBdHRyaWJ1dGlvbjsKICNpZiBIQVZFKEFQUF9TU08pCiAgICAgICAgIG5ld1Bh
Z2UtPm1fc2hvdWxkU3VwcHJlc3NTT0F1dGhvcml6YXRpb25Jbk5leHROYXZpZ2F0aW9uUG9saWN5
RGVjaXNpb24gPSB0cnVlOwogI2VuZGlmCkBAIC05OTU2LDI5ICs5OTU2LDI5IEBAIHZvaWQgV2Vi
UGFnZVByb3h5OjpzeXN0ZW1QcmV2aWV3QWN0aW9uVHJpZ2dlcmVkKGNvbnN0IFdlYkNvcmU6OlN5
c3RlbVByZXZpZXdJbmZvCiB9CiAjZW5kaWYKIAotdm9pZCBXZWJQYWdlUHJveHk6OmR1bXBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFN0cmluZyYp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJQYWdlUHJveHk6OmR1bXBBZENsaWNrQXR0
cmlidXRpb24oQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBTdHJpbmcmKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKIHsKLSAgICB3ZWJzaXRlRGF0YVN0b3JlKCkubmV0d29ya1Byb2Nlc3MoKS5z
ZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpEdW1wUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQobV93ZWJzaXRlRGF0YVN0b3JlLT5zZXNzaW9uSUQoKSksIFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICB3ZWJzaXRlRGF0YVN0b3JlKCkubmV0d29ya1Byb2Nl
c3MoKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpEdW1wQWRD
bGlja0F0dHJpYnV0aW9uKG1fd2Vic2l0ZURhdGFTdG9yZS0+c2Vzc2lvbklEKCkpLCBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpjbGVhclByaXZh
dGVDbGlja01lYXN1cmVtZW50KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKK3ZvaWQgV2ViUGFnZVByb3h5OjpjbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbihDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgd2Vic2l0
ZURhdGFTdG9yZSgpLm5ldHdvcmtQcm9jZXNzKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2Vz
OjpOZXR3b3JrUHJvY2Vzczo6Q2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChtX3dlYnNpdGVE
YXRhU3RvcmUtPnNlc3Npb25JRCgpKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAg
IHdlYnNpdGVEYXRhU3RvcmUoKS5uZXR3b3JrUHJvY2VzcygpLnNlbmRXaXRoQXN5bmNSZXBseShN
ZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkNsZWFyQWRDbGlja0F0dHJpYnV0aW9uKG1fd2Vic2l0
ZURhdGFTdG9yZS0+c2Vzc2lvbklEKCkpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9
CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRl
VGltZXJGb3JUZXN0aW5nKGJvb2wgdmFsdWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFnZVByb3h5OjpzZXRBZENsaWNrQXR0cmlidXRp
b25PdmVycmlkZVRpbWVyRm9yVGVzdGluZyhib29sIHZhbHVlLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgd2Vic2l0ZURhdGFTdG9yZSgpLm5l
dHdvcmtQcm9jZXNzKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vz
czo6U2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVzdGluZyhtX3dl
YnNpdGVEYXRhU3RvcmUtPnNlc3Npb25JRCgpLCB2YWx1ZSksIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKKyAgICB3ZWJzaXRlRGF0YVN0b3JlKCkubmV0d29ya1Byb2Nlc3MoKS5zZW5kV2l0
aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRBZENsaWNrQXR0cmlidXRp
b25PdmVycmlkZVRpbWVyRm9yVGVzdGluZyhtX3dlYnNpdGVEYXRhU3RvcmUtPnNlc3Npb25JRCgp
LCB2YWx1ZSksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAotdm9pZCBXZWJQYWdl
UHJveHk6OnNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3Rpbmco
Y29uc3QgVVJMJiB1cmwsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKK3ZvaWQgV2ViUGFnZVByb3h5OjpzZXRBZENsaWNrQXR0cmlidXRpb25Db252ZXJzaW9u
VVJMRm9yVGVzdGluZyhjb25zdCBVUkwmIHVybCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIHdlYnNpdGVEYXRhU3RvcmUoKS5uZXR3b3JrUHJv
Y2VzcygpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNldFBy
aXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcobV93ZWJzaXRlRGF0
YVN0b3JlLT5zZXNzaW9uSUQoKSwgdXJsKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwor
ICAgIHdlYnNpdGVEYXRhU3RvcmUoKS5uZXR3b3JrUHJvY2VzcygpLnNlbmRXaXRoQXN5bmNSZXBs
eShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNldEFkQ2xpY2tBdHRyaWJ1dGlvbkNvbnZlcnNp
b25VUkxGb3JUZXN0aW5nKG1fd2Vic2l0ZURhdGFTdG9yZS0+c2Vzc2lvbklEKCksIHVybCksIFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6Om1hcmtQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFnZVByb3h5OjptYXJr
QWRDbGlja0F0dHJpYnV0aW9uc0FzRXhwaXJlZEZvclRlc3RpbmcoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIHdlYnNpdGVEYXRhU3RvcmUoKS5u
ZXR3b3JrUHJvY2VzcygpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nl
c3M6Ok1hcmtQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKG1fd2Vi
c2l0ZURhdGFTdG9yZS0+c2Vzc2lvbklEKCkpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7
CisgICAgd2Vic2l0ZURhdGFTdG9yZSgpLm5ldHdvcmtQcm9jZXNzKCkuc2VuZFdpdGhBc3luY1Jl
cGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6TWFya0FkQ2xpY2tBdHRyaWJ1dGlvbnNBc0V4
cGlyZWRGb3JUZXN0aW5nKG1fd2Vic2l0ZURhdGFTdG9yZS0+c2Vzc2lvbklEKCkpLCBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKICNpZiBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggOGE0Y2VhYWE1ZDM2MTUx
NDM2YWQ4YmRlZDMxYWI4Y2IxOTllYzdlMi4uN2NlZmJmYzY5NDVlZGZlNDNhZTU2YzJkNTY0YzBl
ODFlOTViYjRhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTE2
ODQsMTEgKzE2ODQsMTEgQEAgcHVibGljOgogICAgIHZvaWQgY29udGVudEZpbHRlckRpZEJsb2Nr
TG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNvbnN0IFdlYkNvcmU6
OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7
CiAjZW5kaWYKIAotICAgIHZvaWQgZHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50KENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoY29uc3QgU3RyaW5nJik+JiYpOwotICAgIHZvaWQgY2xlYXJQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQg
c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVzdGluZyhib29sIHZh
bHVlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgc2V0UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uVVJMRm9yVGVzdGluZyhjb25zdCBVUkwmLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgbWFya1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAg
ICB2b2lkIGR1bXBBZENsaWNrQXR0cmlidXRpb24oQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25z
dCBTdHJpbmcmKT4mJik7CisgICAgdm9pZCBjbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbihDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc2V0QWRDbGlja0F0dHJpYnV0aW9uT3Zl
cnJpZGVUaW1lckZvclRlc3RpbmcoYm9vbCB2YWx1ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKTsKKyAgICB2b2lkIHNldEFkQ2xpY2tBdHRyaWJ1dGlvbkNvbnZlcnNpb25VUkxGb3JUZXN0
aW5nKGNvbnN0IFVSTCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBt
YXJrQWRDbGlja0F0dHJpYnV0aW9uc0FzRXhwaXJlZEZvclRlc3RpbmcoQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKTsKIAogI2lmIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKQogICAgIHZvaWQg
c3BlZWNoU3ludGhlc2lzVm9pY2VMaXN0KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdl
YlNwZWVjaFN5bnRoZXNpc1ZvaWNlPiYmKT4mJik7CkBAIC0yODg3LDcgKzI4ODcsNyBAQCBwcml2
YXRlOgogCiAgICAgc2l6ZV90IG1fc3VzcGVuZE1lZGlhUGxheWJhY2tDb3VudGVyIHsgMCB9Owog
Ci0gICAgT3B0aW9uYWw8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+IG1fbmV3UGFn
ZU5hdmlnYXRpb25Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudDsKKyAgICBPcHRpb25hbDxXZWJDb3Jl
OjpBZENsaWNrQXR0cmlidXRpb24+IG1fbmV3UGFnZU5hdmlnYXRpb25BZENsaWNrQXR0cmlidXRp
b247CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggMGU0
NDM5MjQ0ZmY4MWFiNTVkNmFlMWE0MjlkYTMzOWQ4NmQ2ZDY3Mi4uZGFkMjA3MDFiZDM5ODkzOTg1
Yzg0MmM4YTE4NjZhNWY1MGNlNWZkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAgLTIwNTAsOSArMjA1
MCw5IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6aXNSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRXBo
ZW1lcmFsKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoCiAjZW5kaWYKIH0KIAotdm9pZCBXZWJzaXRl
RGF0YVN0b3JlOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZShib29sIGVuYWJs
ZWQpCit2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNldEFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9k
ZShib29sIGVuYWJsZWQpCiB7Ci0gICAgbmV0d29ya1Byb2Nlc3MoKS5zZXRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudERlYnVnTW9kZShlbmFibGVkKTsKKyAgICBuZXR3b3JrUHJvY2VzcygpLnNldEFk
Q2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZShlbmFibGVkKTsKIH0KIAogI2lmIEVOQUJMRShSRVNP
VVJDRV9MT0FEX1NUQVRJU1RJQ1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKaW5kZXggZDViNGUzZDMyMTE1MjAxYjZh
MDk5NDNmOTY1OTdiMDViNmJkZmY5ZC4uZjNmZTY2ZDA1OTQxYWEzZjE3ZGMyOTMyNTJmNTA3YzI1
ZmJjMWJjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEv
V2Vic2l0ZURhdGFTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuaApAQCAtMTQ5LDcgKzE0OSw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUoYm9vbCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIGlzUmVzb3VyY2VMb2FkU3RhdGlzdGljc0VwaGVt
ZXJhbChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBjb25zdDsKIAotICAgIHZvaWQg
c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGUoYm9vbCk7CisgICAgdm9pZCBzZXRB
ZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGUoYm9vbCk7CiAKICAgICB1aW50NjRfdCBwZXJPcmln
aW5TdG9yYWdlUXVvdGEoKSBjb25zdCB7IHJldHVybiBtX3Jlc29sdmVkQ29uZmlndXJhdGlvbi0+
cGVyT3JpZ2luU3RvcmFnZVF1b3RhKCk7IH0KICAgICB1aW50NjRfdCBwZXJUaGlyZFBhcnR5T3Jp
Z2luU3RvcmFnZVF1b3RhKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1MTlhNWM5M2U0M2UwYjBkYmI2OTZmZjRjNjJkZGNh
YjBjOWE1NWU1Li5jMDI3NDk0YjczYWNjZWM1ZWZkODFjNjk0ZDNhODUzYjRlZGVmMGNhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEy
MzksNyArMTIzOSw3IEBACiAJCTYzQzMyQzI4MUU5ODExOTAwMDY5OUJEMCAvKiBfV0tHZW9sb2Nh
dGlvblBvc2l0aW9uSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDYzQzMyQzI3MUU5ODExOTAwMDY5OUJEMCAvKiBfV0tHZW9sb2NhdGlvblBv
c2l0aW9uSW50ZXJuYWwuaCAqLzsgfTsKIAkJNjVCODZGMUUxMkYxMURFMzAwQjdERDhBIC8qIFdL
QnVuZGxlSW5zcGVjdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA2NUI4NkYxODEyRjExRDdCMDBCN0REOEEgLyogV0tCdW5kbGVJbnNwZWN0b3IuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2QTUwODBC
RjFGMEVEQUFBMDBFNjE3QzUgLyogV0tXaW5kb3dGZWF0dXJlc1ByaXZhdGUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZBNTA4MEJFMUYwRURBQUEwMEU2
MTdDNSAvKiBXS1dpbmRvd0ZlYXR1cmVzUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTZCRDA1ODY1MjIwQ0U4QzIwMDBCRUQ1QyAvKiBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZCRDA1ODYzMjIwQ0U4QzIwMDBCRUQ1QyAvKiBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuaCAqLzsgfTsKKwkJNkJEMDU4NjUyMjBDRThDMjAwMEJF
RDVDIC8qIEFkQ2xpY2tBdHRyaWJ1dGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZCRDA1ODYzMjIwQ0U4QzIwMDBCRUQ1QyAvKiBBZENs
aWNrQXR0cmlidXRpb25NYW5hZ2VyLmggKi87IH07CiAJCTZCRTk2OUMxMUU1NEQ0NTIwMDhCNzQ4
MyAvKiBjb3JlUHJlZGljdGlvbl9tb2RlbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNkJFOTY5QzAxRTU0RDQ1MjAwOEI3NDgzIC8qIGNvcmVQcmVkaWN0
aW9uX21vZGVsICovOyB9OwogCQk2QkU5NjlDQjFFNTRENENGMDA4Qjc0ODMgLyogUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0NsYXNzaWZpZXJDb2NvYS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNkJFOTY5QzkxRTU0RDRDRjAwOEI3NDgzIC8qIFJlc291cmNl
TG9hZFN0YXRpc3RpY3NDbGFzc2lmaWVyQ29jb2EuaCAqLzsgfTsKIAkJNkJFOTY5Q0QxRTU0RTA1
NDAwOEI3NDgzIC8qIFJlc291cmNlTG9hZFN0YXRpc3RpY3NDbGFzc2lmaWVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QkU5NjlDQzFFNTRFMDU0MDA4
Qjc0ODMgLyogUmVzb3VyY2VMb2FkU3RhdGlzdGljc0NsYXNzaWZpZXIuaCAqLzsgfTsKQEAgLTQy
MjQsOCArNDIyNCw4IEBACiAJCTY1Qjg2RjE3MTJGMTFEN0IwMEI3REQ4QSAvKiBXS0J1bmRsZUlu
c3BlY3Rvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS0J1bmRs
ZUluc3BlY3Rvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1Qjg2RjE4MTJG
MTFEN0IwMEI3REQ4QSAvKiBXS0J1bmRsZUluc3BlY3Rvci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXS0J1bmRsZUluc3BlY3Rvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk2QTUwODBCRTFGMEVEQUFBMDBFNjE3QzUgLyogV0tXaW5kb3dGZWF0dXJlc1ByaXZh
dGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV0tXaW5kb3dGZWF0dXJlc1ByaXZhdGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNkJEMDU4NjMyMjBDRThDMjAwMEJFRDVDIC8qIFByaXZhdGVD
bGlja01lYXN1cmVtZW50TWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNkJEMDU4NjQy
MjBDRThDMjAwMEJFRDVDIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2QkQwNTg2MzIyMENFOEMyMDAwQkVENUMgLyogQWRD
bGlja0F0dHJpYnV0aW9uTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBZENsaWNrQXR0cmlidXRp
b25NYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZCRDA1ODY0MjIwQ0U4
QzIwMDBCRUQ1QyAvKiBBZENsaWNrQXR0cmlidXRpb25NYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEFkQ2xpY2tBdHRyaWJ1dGlvbk1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk2QkU5NjlDMDFFNTRENDUyMDA4Qjc0ODMgLyogY29yZVByZWRpY3Rpb25fbW9k
ZWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gY29yZVByZWRpY3Rpb25fbW9kZWw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZCRTk2OUM2MUU1NEQ0QjYwMDhCNzQ4MyAvKiBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzQ2xhc3NpZmllci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzQ2xhc3NpZmllci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZCRTk2OUM4MUU1NEQ0Q0YwMDhCNzQ4MyAvKiBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzQ2xhc3NpZmllckNvY29hLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFJlc291cmNlTG9hZFN0YXRpc3RpY3NDbGFzc2lmaWVyQ29jb2EuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzkxNiw2ICs3OTE2LDggQEAKIAkJCQk5
M0JBMDREOTIxNTFBRENEMDA3RjQ1NUYgLyogU2VydmljZVdvcmtlciAqLywKIAkJCQk0MTMwNzU5
NzFERTg0RUQ3MDAzOUVDNjkgLyogd2VicnRjICovLAogCQkJCTkzQjI2MTQzMjI3RDE0MzEwMEI5
N0E3NiAvKiBXZWJTdG9yYWdlICovLAorCQkJCTZCRDA1ODY0MjIwQ0U4QzIwMDBCRUQ1QyAvKiBB
ZENsaWNrQXR0cmlidXRpb25NYW5hZ2VyLmNwcCAqLywKKwkJCQk2QkQwNTg2MzIyMENFOEMyMDAw
QkVENUMgLyogQWRDbGlja0F0dHJpYnV0aW9uTWFuYWdlci5oICovLAogCQkJCTUzRjNDQUE1MjA2
QzQ0M0UwMDg2NDkwRSAvKiBOZXR3b3JrQWN0aXZpdHlUcmFja2VyLmNwcCAqLywKIAkJCQk1MzVC
Q0I5MDIwNjlDNDlDMDBDQ0NFMDIgLyogTmV0d29ya0FjdGl2aXR5VHJhY2tlci5oICovLAogCQkJ
CTUxM0ExNjQ5MTYzMEE5QkYwMDVEN0QyMiAvKiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5jcHAgKi8sCkBAIC03OTcwLDggKzc5NzIsNiBAQAogCQkJCTVDRTg1QjFGMUM4OEU2NDMwMDcw
QkZDRSAvKiBQaW5nTG9hZC5oICovLAogCQkJCTgzQTBFRDMzMUY3NDdDQzcwMDMyOTlFQiAvKiBQ
cmVjb25uZWN0VGFzay5jcHAgKi8sCiAJCQkJODNBMEVEMzIxRjc0N0NDNjAwMzI5OUVCIC8qIFBy
ZWNvbm5lY3RUYXNrLmggKi8sCi0JCQkJNkJEMDU4NjQyMjBDRThDMjAwMEJFRDVDIC8qIFByaXZh
dGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5jcHAgKi8sCi0JCQkJNkJEMDU4NjMyMjBDRThDMjAw
MEJFRDVDIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5oICovLAogCQkJCUUxQjc4
NDcwMTYzRjI0NjkwMDA3QjY5MiAvKiBSZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oICovLAogCQkJ
CTQxMjg3RDREMjI1QzE2MUYwMDlBM0UyNiAvKiBXZWJTb2NrZXRUYXNrLmggKi8sCiAJCQkpOwpA
QCAtMTA4OTQsNiArMTA4OTQsNyBAQAogCQkJCUExODJENUI1MUJFNkJEMjUwMDg3QTdDQyAvKiBB
Y2Nlc3NpYmlsaXR5SU9TLmggaW4gSGVhZGVycyAqLywKIAkJCQlFM0NBQUE0NDI0MTMyNzk5MDBD
RUQyRTIgLyogQWNjZXNzaWJpbGl0eVN1cHBvcnRTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3
RDc5MkQ4MTc2N0NDQTMwMDg4MUNCRSAvKiBBY3Rpdml0eUFzc2VydGlvbi5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJNkJEMDU4NjUyMjBDRThDMjAwMEJFRDVDIC8qIEFkQ2xpY2tBdHRyaWJ1dGlvbk1h
bmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTYzNDg0MjUxMUZCMjZFNzEwMDk0NkUzQyAvKiBB
UElBcHBsaWNhdGlvbk1hbmlmZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzY0Njk3MDExREJF
NjAzMDA2NDU1QjAgLyogQVBJQXJyYXkuaCBpbiBIZWFkZXJzICovLAogCQkJCTJFNUM3NzBFMUZB
N0Q0MjkwMDU5MzJDMyAvKiBBUElBdHRhY2htZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTExMjg2
LDcgKzExMjg3LDYgQEAKIAkJCQlDMTVDQkIzNjIzRjM3NzcxMDAzMDBDQzcgLyogUHJlZmVyZW5j
ZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBQUIxNDVFNjIyM0Y5MzEyMDBFNDg5RDgg
LyogUHJlZmV0Y2hDYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTFDQzFCOTAxMkQ3RUFERjAw
NjI1ODM4IC8qIFByaW50SW5mby5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNkJEMDU4NjUyMjBDRThD
MjAwMEJFRDVDIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJODZGOTUzNjUxOEZGNThGNTAwMURCMkVGIC8qIFByb2Nlc3NBc3NlcnRpb24uaCBp
biBIZWFkZXJzICovLAogCQkJCUJDMUE3QzU4MTEzNkUxOUMwMEZCNzE2NyAvKiBQcm9jZXNzTGF1
bmNoZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2M0ZENDgyMUVCOTRFQzAwMEEyOTgyQyAvKiBQ
cm9jZXNzVGVybWluYXRpb25SZWFzb24uaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmNwcAppbmRleCA5ZGVkMjVkMTIzZTVlM2JmNzIxZTkyNTMyZDg1MWEwZGE3N2RlNWJkLi5mZWRj
M2RiMTBhZDc3M2JkNTUzNjMyNmZhYjFjMTc0MDg1Y2IxNmQwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmNwcApAQCAtMjcwLDcgKzI3MCw3IEBAIFBhZ2UqIFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlV2lu
ZG93KEZyYW1lJiBmcmFtZSwgY29uc3QgV2luZG93RmVhdHVyZXMmIHdpbmRvd0ZlCiAgICAgbmF2
aWdhdGlvbkFjdGlvbkRhdGEuY2FuSGFuZGxlUmVxdWVzdCA9IG1fcGFnZS5jYW5IYW5kbGVSZXF1
ZXN0KG5hdmlnYXRpb25BY3Rpb24ucmVzb3VyY2VSZXF1ZXN0KCkpOwogICAgIG5hdmlnYXRpb25B
Y3Rpb25EYXRhLnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgPSBuYXZpZ2F0aW9uQWN0aW9u
LnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3koKTsKICAgICBuYXZpZ2F0aW9uQWN0aW9uRGF0
YS5kb3dubG9hZEF0dHJpYnV0ZSA9IG5hdmlnYXRpb25BY3Rpb24uZG93bmxvYWRBdHRyaWJ1dGUo
KTsKLSAgICBuYXZpZ2F0aW9uQWN0aW9uRGF0YS5wcml2YXRlQ2xpY2tNZWFzdXJlbWVudCA9IG5h
dmlnYXRpb25BY3Rpb24ucHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKKyAgICBuYXZpZ2F0aW9u
QWN0aW9uRGF0YS5hZENsaWNrQXR0cmlidXRpb24gPSBuYXZpZ2F0aW9uQWN0aW9uLmFkQ2xpY2tB
dHRyaWJ1dGlvbigpOwogCiAgICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZyb21D
b3JlRnJhbWUoZnJhbWUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCA2
MDNhZGY4YjJlOTQ5MzZhZjA3NDZkZWU5NjE3YTRmMjU1NDIxZTA2Li5mZjcxYjgzMzM4ZjFlZGU5
YWMzMmFjZmE2ZTJkMzU1N2EzN2RkNzkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5j
cHAKQEAgLTg3OCw3ICs4NzgsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRj
aERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihjb25zdCBOYXZpZ2F0aQogICAgIG5hdmln
YXRpb25BY3Rpb25EYXRhLmNhbkhhbmRsZVJlcXVlc3QgPSB3ZWJQYWdlLT5jYW5IYW5kbGVSZXF1
ZXN0KHJlcXVlc3QpOwogICAgIG5hdmlnYXRpb25BY3Rpb25EYXRhLnNob3VsZE9wZW5FeHRlcm5h
bFVSTHNQb2xpY3kgPSBuYXZpZ2F0aW9uQWN0aW9uLnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xp
Y3koKTsKICAgICBuYXZpZ2F0aW9uQWN0aW9uRGF0YS5kb3dubG9hZEF0dHJpYnV0ZSA9IG5hdmln
YXRpb25BY3Rpb24uZG93bmxvYWRBdHRyaWJ1dGUoKTsKLSAgICBuYXZpZ2F0aW9uQWN0aW9uRGF0
YS5wcml2YXRlQ2xpY2tNZWFzdXJlbWVudCA9IG5hdmlnYXRpb25BY3Rpb24ucHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQoKTsKKyAgICBuYXZpZ2F0aW9uQWN0aW9uRGF0YS5hZENsaWNrQXR0cmlidXRp
b24gPSBuYXZpZ2F0aW9uQWN0aW9uLmFkQ2xpY2tBdHRyaWJ1dGlvbigpOwogCiAgICAgd2ViUGFn
ZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dB
Y3Rpb24obV9mcmFtZS0+ZnJhbWVJRCgpLCBtX2ZyYW1lLT5pbmZvKCksIGlkZW50aWZpZXIsIG5h
dmlnYXRpb25BY3Rpb25EYXRhLCByZXF1ZXN0LAogICAgICAgICBmcmFtZU5hbWUsIGxpc3RlbmVy
SUQsIFVzZXJEYXRhKFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnRyYW5zZm9ybU9iamVjdHNUb0hh
bmRsZXModXNlckRhdGEuZ2V0KCkpLmdldCgpKSkpOwpAQCAtOTg1LDcgKzk4NSw3IEBAIHZvaWQg
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvbihjb25zdCBOYXZpZ2F0CiAgICAgbmF2aWdhdGlvbkFjdGlvbkRhdGEuc291cmNlQmFja0Zv
cndhcmRJdGVtSWRlbnRpZmllciA9IG5hdmlnYXRpb25BY3Rpb24uc291cmNlQmFja0ZvcndhcmRJ
dGVtSWRlbnRpZmllcigpOwogICAgIG5hdmlnYXRpb25BY3Rpb25EYXRhLmxvY2tIaXN0b3J5ID0g
bmF2aWdhdGlvbkFjdGlvbi5sb2NrSGlzdG9yeSgpOwogICAgIG5hdmlnYXRpb25BY3Rpb25EYXRh
LmxvY2tCYWNrRm9yd2FyZExpc3QgPSBuYXZpZ2F0aW9uQWN0aW9uLmxvY2tCYWNrRm9yd2FyZExp
c3QoKTsKLSAgICBuYXZpZ2F0aW9uQWN0aW9uRGF0YS5wcml2YXRlQ2xpY2tNZWFzdXJlbWVudCA9
IG5hdmlnYXRpb25BY3Rpb24ucHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKKyAgICBuYXZpZ2F0
aW9uQWN0aW9uRGF0YS5hZENsaWNrQXR0cmlidXRpb24gPSBuYXZpZ2F0aW9uQWN0aW9uLmFkQ2xp
Y2tBdHRyaWJ1dGlvbigpOwogCiAgICAgYXV0byogY29yZUZyYW1lID0gbV9mcmFtZS0+Y29yZUZy
YW1lKCk7CiAgICAgaWYgKCFjb3JlRnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KaW5kZXggM2U4NTQx
NzY3ZjJlMDkyNWIxYWFiNTBjODEwN2M2OTZlZjU3N2M1OC4uNmZkN2EyNjUzMjE1NWM5YzhkNTc1
MzY1NTE0ZTRmNGExYThjYjhkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQpAQCAtMTI0LDcgKzEyNCw3
IEBAIE5TU3RyaW5nICpXZWJDb25zb2xlTWVzc2FnZU1lZGlhTWVzc2FnZVNvdXJjZSA9IEAiTWVk
aWFNZXNzYWdlU291cmNlIjsKIE5TU3RyaW5nICpXZWJDb25zb2xlTWVzc2FnZU1lZGlhU291cmNl
TWVzc2FnZVNvdXJjZSA9IEAiTWVkaWFTb3VyY2VNZXNzYWdlU291cmNlIjsKIE5TU3RyaW5nICpX
ZWJDb25zb2xlTWVzc2FnZVdlYlJUQ01lc3NhZ2VTb3VyY2UgPSBAIldlYlJUQ01lc3NhZ2VTb3Vy
Y2UiOwogTlNTdHJpbmcgKldlYkNvbnNvbGVNZXNzYWdlSVRQRGVidWdNZXNzYWdlU291cmNlID0g
QCJJVFBEZWJ1Z01lc3NhZ2VTb3VyY2UiOwotTlNTdHJpbmcgKldlYkNvbnNvbGVNZXNzYWdlUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRNZXNzYWdlU291cmNlID0gQCJQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudE1lc3NhZ2VTb3VyY2UiOworTlNTdHJpbmcgKldlYkNvbnNvbGVNZXNzYWdlQWRDbGlja0F0
dHJpYnV0aW9uTWVzc2FnZVNvdXJjZSA9IEAiQWRDbGlja0F0dHJpYnV0aW9uTWVzc2FnZVNvdXJj
ZSI7CiBOU1N0cmluZyAqV2ViQ29uc29sZU1lc3NhZ2VPdGhlck1lc3NhZ2VTb3VyY2UgPSBAIk90
aGVyTWVzc2FnZVNvdXJjZSI7CiAKIE5TU3RyaW5nICpXZWJDb25zb2xlTWVzc2FnZURlYnVnTWVz
c2FnZUxldmVsID0gQCJEZWJ1Z01lc3NhZ2VMZXZlbCI7CkBAIC00MDMsOCArNDAzLDggQEAgaW5s
aW5lIHN0YXRpYyBOU1N0cmluZyAqc3RyaW5nRm9yTWVzc2FnZVNvdXJjZShNZXNzYWdlU291cmNl
IHNvdXJjZSkKICAgICAgICAgcmV0dXJuIFdlYkNvbnNvbGVNZXNzYWdlV2ViUlRDTWVzc2FnZVNv
dXJjZTsKICAgICBjYXNlIE1lc3NhZ2VTb3VyY2U6OklUUERlYnVnOgogICAgICAgICByZXR1cm4g
V2ViQ29uc29sZU1lc3NhZ2VJVFBEZWJ1Z01lc3NhZ2VTb3VyY2U7Ci0gICAgY2FzZSBNZXNzYWdl
U291cmNlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDoKLSAgICAgICAgcmV0dXJuIFdlYkNvbnNv
bGVNZXNzYWdlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNZXNzYWdlU291cmNlOworICAgIGNhc2Ug
TWVzc2FnZVNvdXJjZTo6QWRDbGlja0F0dHJpYnV0aW9uOgorICAgICAgICByZXR1cm4gV2ViQ29u
c29sZU1lc3NhZ2VBZENsaWNrQXR0cmlidXRpb25NZXNzYWdlU291cmNlOwogICAgIGNhc2UgTWVz
c2FnZVNvdXJjZTo6T3RoZXI6CiAgICAgICAgIHJldHVybiBXZWJDb25zb2xlTWVzc2FnZU90aGVy
TWVzc2FnZVNvdXJjZTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAppbmRleCBhYjMxN2IwNmIw
NWY4OWFiMTNkZTU2NGVkMjg5NDY4NzUyYWY2ZmNmLi41ZmE5ZTkwYzEwNTc3OGM0YzJkOTg3YzZm
YjFjMGY1YjA3ZGViYWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKQEAgLTI3Myw3ICsyNzMsNyBA
QAogI2RlZmluZSBXZWJLaXRTZXJ2ZXJUaW1pbmdFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktp
dFNlcnZlclRpbWluZ0VuYWJsZWQiCiAjZGVmaW5lIFdlYktpdENTU0N1c3RvbVByb3BlcnRpZXNB
bmRWYWx1ZXNFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdENTU0N1c3RvbVByb3BlcnRpZXNB
bmRWYWx1ZXNFbmFibGVkIgogI2RlZmluZSBXZWJLaXRSZXNpemVPYnNlcnZlckVuYWJsZWRQcmVm
ZXJlbmNlS2V5IEAiV2ViS2l0UmVzaXplT2JzZXJ2ZXJFbmFibGVkIgotI2RlZmluZSBXZWJLaXRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudEVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRFbmFibGVkIgorI2RlZmluZSBXZWJLaXRBZENsaWNrQXR0cmlidXRp
b25FbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdEFkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJsZWQi
CiAjZGVmaW5lIFdlYktpdEZldGNoQVBJS2VlcEFsaXZlRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJX
ZWJLaXRGZXRjaEFQSUtlZXBBbGl2ZUVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdEdlbmVyaWNDdWVB
UElFbmFibGVkS2V5IEAiV2ViS2l0R2VuZXJpY0N1ZUFQSUVuYWJsZWQiCiAjZGVmaW5lIFdlYktp
dEFzcGVjdFJhdGlvT2ZJbWdGcm9tV2lkdGhBbmRIZWlnaHRFbmFibGVkUHJlZmVyZW5jZUtleSBA
IldlYktpdEFzcGVjdFJhdGlvT2ZJbWdGcm9tV2lkdGhBbmRIZWlnaHRFbmFibGVkIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbSBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KaW5kZXgg
NmEwZTg1N2UwNjQzMTkxNzFlYmFkNDlkN2U1YzdmMmY2MWFjMjQ3Zi4uMDg0OGE3MmFiOGFhYjY2
ZmIyOTRmZjM0MWZkNTQwYjI5NWQ1M2FjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCkBAIC0zMjMzLDE0ICszMjMzLDE0IEBAIC0g
KHZvaWQpc2V0UmVzaXplT2JzZXJ2ZXJFbmFibGVkOihCT09MKWZsYWcKICAgICBbc2VsZiBfc2V0
Qm9vbFZhbHVlOmZsYWcgZm9yS2V5OldlYktpdFJlc2l6ZU9ic2VydmVyRW5hYmxlZFByZWZlcmVu
Y2VLZXldOwogfQogCi0tIChCT09MKXByaXZhdGVDbGlja01lYXN1cmVtZW50RW5hYmxlZAorLSAo
Qk9PTClhZENsaWNrQXR0cmlidXRpb25FbmFibGVkCiB7Ci0gICAgcmV0dXJuIFtzZWxmIF9ib29s
VmFsdWVGb3JLZXk6V2ViS2l0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmFibGVkUHJlZmVyZW5j
ZUtleV07CisgICAgcmV0dXJuIFtzZWxmIF9ib29sVmFsdWVGb3JLZXk6V2ViS2l0QWRDbGlja0F0
dHJpYnV0aW9uRW5hYmxlZFByZWZlcmVuY2VLZXldOwogfQogCi0tICh2b2lkKXNldFByaXZhdGVD
bGlja01lYXN1cmVtZW50RW5hYmxlZDooQk9PTClmbGFnCistICh2b2lkKXNldEFkQ2xpY2tBdHRy
aWJ1dGlvbkVuYWJsZWQ6KEJPT0wpZmxhZwogewotICAgIFtzZWxmIF9zZXRCb29sVmFsdWU6Zmxh
ZyBmb3JLZXk6V2ViS2l0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmFibGVkUHJlZmVyZW5jZUtl
eV07CisgICAgW3NlbGYgX3NldEJvb2xWYWx1ZTpmbGFnIGZvcktleTpXZWJLaXRBZENsaWNrQXR0
cmlidXRpb25FbmFibGVkUHJlZmVyZW5jZUtleV07CiB9CiAKIC0gKEJPT0wpZmV0Y2hBUElLZWVw
QWxpdmVFbmFibGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAppbmRleCA0NTZhMDEzYjg4ZDU4MzdlYTk0N2ZlNGNm
NjQyYjNlNWE3Yjg2MGYzLi5lZjBlODEzNGVmNTI4MGY5YTNjODcxMTBmYzU4Zjc3YzgzOTUwYWI2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVu
Y2VzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJl
ZmVyZW5jZXNQcml2YXRlLmgKQEAgLTMzNCw3ICszMzQsNyBAQCBleHRlcm4gTlNTdHJpbmcgKldl
YlByZWZlcmVuY2VzQ2FjaGVNb2RlbENoYW5nZWRJbnRlcm5hbE5vdGlmaWNhdGlvbiBXRUJLSVRf
REVQUgogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgc2VydmVyVGltaW5nRW5hYmxlZDsKIEBw
cm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIENTU0N1c3RvbVByb3BlcnRpZXNBbmRWYWx1ZXNFbmFi
bGVkOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgcmVzaXplT2JzZXJ2ZXJFbmFibGVkOwot
QHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmFibGVk
OworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgYWRDbGlja0F0dHJpYnV0aW9uRW5hYmxlZDsK
IEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGZldGNoQVBJS2VlcEFsaXZlRW5hYmxlZDsKIEBw
cm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGdlbmVyaWNDdWVBUElFbmFibGVkOwogQHByb3BlcnR5
IChub25hdG9taWMpIEJPT0wgYXNwZWN0UmF0aW9PZkltZ0Zyb21XaWR0aEFuZEhlaWdodEVuYWJs
ZWQ7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXgg
NjkxZGVhYmVjNWYyZDA0NGUzODJiY2FhNGZlNjAzNWJiZmUwOWQ1YS4uZDkxODRlODI1MTNlYzhj
NGVjMGMyN2Y4MDdmM2U4MDhkYjBhZTEwMiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisr
KyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIwLTExLTEwICBDb21taXQg
UXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2VkLCBy
ZXZlcnRpbmcgcjI2OTY2MC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIxODc4NgorCisgICAgICAgIENyYXNoaW5nIGluIEVXUyBpT1Mgc2ltdWxhdG9y
IGJvdHMKKworICAgICAgICBSZXZlcnRlZCBjaGFuZ2VzZXQ6CisKKyAgICAgICAgIlBDTTogQ2hh
bmdlIGZyb20gYWQtY2xpY2stYXR0cmlidXRpb24gdG8gcHJpdmF0ZS1jbGljay0KKyAgICAgICAg
bWVhc3VyZW1lbnQgKGluIGFsbCBmb3JtcywgaW5jbHVkaW5nIC53ZWxsLWtub3duIFVSTCkiCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg3MzAKKyAg
ICAgICAgaHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzI2OTY2MAorCiAyMDIwLTEx
LTEwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgV2Via2l0IGlu
Y29ycmVjdGx5IHNldHRpbmcgdmlzaWJpbGl0eVN0YXRlIHRvICJwcmVyZW5kZXIiIHdoZW4gb3Bl
bmluZyBsaW5rIGluIG5ldyB0YWIKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rl
c3RPcHRpb25zLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcAppbmRl
eCA3ZjQzMzdmNzM1NTEwNjdlYWFiZmUyMDkzNDg5ZWM2NWE5NTZhYzg2Li5mZTYwM2VmZWFiY2Vl
MzU5YTYzNGQ4ODQ2YzczNzMxNGYyMDU5ZjY4IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9UZXN0T3B0aW9ucy5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlv
bnMuY3BwCkBAIC02Niw2ICs2Niw3IEBAIGNvbnN0IFRlc3RGZWF0dXJlcyYgVGVzdE9wdGlvbnM6
OmRlZmF1bHRzKCkKICAgICAgICAgICAgIC8vIFRoZXNlIGFyZSBXZWJQcmVmZXJlbmNlIHZhbHVl
cyB0aGF0IG11c3QgYWx3YXlzIGJlIHNldCBhcyB0aGV5IG1heQogICAgICAgICAgICAgLy8gZGlm
ZmVyIGZyb20gdGhlIGRlZmF1bHQgc2V0IGluIHRoZSBXZWJQcmVmZXJlbmNlcyoueWFtbCBjb25m
aWd1cmF0aW9uLgogICAgICAgICAgICAgeyAiQWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZCIsIGZh
bHNlIH0sCisgICAgICAgICAgICB7ICJBZENsaWNrQXR0cmlidXRpb25FbmFibGVkIiwgZmFsc2Ug
fSwKICAgICAgICAgICAgIHsgIkFsbG93Q3Jvc3NPcmlnaW5TdWJyZXNvdXJjZXNUb0Fza0ZvckNy
ZWRlbnRpYWxzIiwgZmFsc2UgfSwKICAgICAgICAgICAgIHsgIkFsbG93RmlsZUFjY2Vzc0Zyb21G
aWxlVVJMcyIsIHRydWUgfSwKICAgICAgICAgICAgIHsgIkFsbG93VG9wTmF2aWdhdGlvblRvRGF0
YVVSTHMiLCB0cnVlIH0sCkBAIC05NSw3ICs5Niw2IEBAIGNvbnN0IFRlc3RGZWF0dXJlcyYgVGVz
dE9wdGlvbnM6OmRlZmF1bHRzKCkKICAgICAgICAgICAgIHsgIk1vZGVybk1lZGlhQ29udHJvbHNF
bmFibGVkIiwgdHJ1ZSB9LAogICAgICAgICAgICAgeyAiTmVlZHNTdG9yYWdlQWNjZXNzRnJvbUZp
bGVVUkxzUXVpcmsiLCBmYWxzZSB9LAogICAgICAgICAgICAgeyAiUGx1Z2luc0VuYWJsZWQiLCB0
cnVlIH0sCi0gICAgICAgICAgICB7ICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVuYWJsZWQiLCBm
YWxzZSB9LAogICAgICAgICAgICAgeyAiUmVxdWVzdElkbGVDYWxsYmFja0VuYWJsZWQiLCBmYWxz
ZSB9LAogICAgICAgICAgICAgeyAiUmVzaXplT2JzZXJ2ZXJFbmFibGVkIiwgZmFsc2UgfSwKICAg
ICAgICAgICAgIHsgIlNlbGVjdGlvbkFjcm9zc1NoYWRvd0JvdW5kYXJpZXNFbmFibGVkIiwgdHJ1
ZSB9LApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1MjhmNWZkNWUxZDRhOGExYmNhYTM2OWVj
MDcyMzYzY2NlZTFlYTFkLi4zZDEyNzQ1MzhhNzM2YTBjZGE1NTM0YWEzNzI2YWU2OTAzYTBmNDY3
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTA1LDcgKzUwNSw3IEBACiAJCTYzNzI4MUE3
MjFBRTEzODYwMDlFMERFNiAvKiBEb3dubG9hZFByb2dyZXNzLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjM3MjgxQTYyMUFFMTM4NjAwOUUwREU2IC8q
IERvd25sb2FkUHJvZ3Jlc3MubW0gKi87IH07CiAJCTYzQTYxQjhCMUZBRDI1MTEwMEYwNjg4NSAv
KiBkaXNwbGF5LW1vZGUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA2M0E2MUI4QTFGQUQyMDREMDBGMDY4ODUgLyogZGlzcGxheS1tb2Rl
Lmh0bWwgKi87IH07CiAJCTYzRjY2ODIyMUY5N0Y3RjkwMDMyRUU1MSAvKiBBcHBsaWNhdGlvbk1h
bmlmZXN0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NjNGNjY4MjAxRjk3QzNBQTAwMzJFRTUxIC8qIEFwcGxpY2F0aW9uTWFuaWZlc3QubW0gKi87IH07
Ci0JCTZCMEEwN0Y3MjFGQTlDMkIwMEQ1NzM5MSAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QjBBMDdG
NjIxRkE5QzJCMDBENTczOTEgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwICovOyB9Owor
CQk2QjBBMDdGNzIxRkE5QzJCMDBENTczOTEgLyogQWRDbGlja0F0dHJpYnV0aW9uLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZCMEEwN0Y2MjFGQTlD
MkIwMEQ1NzM5MSAvKiBBZENsaWNrQXR0cmlidXRpb24uY3BwICovOyB9OwogCQk2QjMwNjEwNjIx
OEEzNzI5MDBGNUE4MDIgLyogQ2xvc2luZ1dlYlZpZXcubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QjMwNjEwNTIxOEEzNzI5MDBGNUE4MDIgLyogQ2xv
c2luZ1dlYlZpZXcubW0gKi87IH07CiAJCTZCNEU4NjFDMjIyMEE1NTIwMDIyRjM4OSAvKiBSZWdp
c3RyYWJsZURvbWFpbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA2QjRFODYxQjIyMjBBNTUyMDAyMkYzODkgLyogUmVnaXN0cmFibGVEb21haW4uY3Bw
ICovOyB9OwogCQk2QjlBQkUxMjIwODY5NTJGMDBENzVERTYgLyogSFRUUFBhcnNlcnMuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkI5QUJFMTEyMDg2
OTUyRjAwRDc1REU2IC8qIEhUVFBQYXJzZXJzLmNwcCAqLzsgfTsKQEAgLTIyNzEsNyArMjI3MSw3
IEBACiAJCTYzNzI4MUE2MjFBRTEzODYwMDlFMERFNiAvKiBEb3dubG9hZFByb2dyZXNzLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gRG93bmxvYWRQcm9ncmVzcy5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNjNBNjFCOEExRkFEMjA0RDAwRjA2ODg1IC8qIGRpc3BsYXktbW9kZS5o
dG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dC5odG1sOyBwYXRoID0gImRpc3BsYXktbW9kZS5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNjNGNjY4MjAxRjk3QzNBQTAwMzJFRTUxIC8qIEFwcGxpY2F0aW9uTWFuaWZlc3Qu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBcHBsaWNhdGlvbk1hbmlmZXN0Lm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQk2QjBBMDdGNjIxRkE5QzJCMDBENTczOTEgLyogUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2QjBBMDdGNjIxRkE5
QzJCMDBENTczOTEgLyogQWRDbGlja0F0dHJpYnV0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEFkQ2xpY2tBdHRyaWJ1dGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZC
MzA2MTA1MjE4QTM3MjkwMEY1QTgwMiAvKiBDbG9zaW5nV2ViVmlldy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IENsb3NpbmdXZWJWaWV3Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk2QjRFODYxQjIyMjBBNTUyMDAyMkYzODkgLyogUmVnaXN0cmFibGVEb21haW4uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUmVnaXN0cmFibGVEb21haW4uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk2QjlBQkUxMTIwODY5NTJGMDBENzVERTYgLyogSFRUUFBhcnNlcnMuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSFRUUFBhcnNlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMzQ3OSw2ICszNDc5LDcgQEAKIAkJCQlDRDg5RDAzNzFDNEVEQjEzMDAwNDBBMDQg
LyogY29jb2EgKi8sCiAJCQkJQTFFQzExODUxRjQyNTNEOTAwRDAxNDZFIC8qIGlvcyAqLywKIAkJ
CQlBQkY1MTA2MzJBMTlCOEFDN0VDNDBFMTcgLyogQWJvcnRhYmxlVGFza1F1ZXVlLmNwcCAqLywK
KwkJCQk2QjBBMDdGNjIxRkE5QzJCMDBENTczOTEgLyogQWRDbGlja0F0dHJpYnV0aW9uLmNwcCAq
LywKIAkJCQk3QTkwOUE2RjFEODc3NDc1MDA3RTEwRjggLyogQWZmaW5lVHJhbnNmb3JtLmNwcCAq
LywKIAkJCQk1NzE1MkI1RDIxQ0MyMDQ1MDAwQzM3Q0EgLyogQXBkdVRlc3QuY3BwICovLAogCQkJ
CTYzNTRGNEQwMUY3QzNBQjUwMEQ4OURGMyAvKiBBcHBsaWNhdGlvbk1hbmlmZXN0UGFyc2VyLmNw
cCAqLywKQEAgLTM1MjQsNyArMzUyNSw2IEBACiAJCQkJQTVCMTQ5REQxRjVBMTlEQzAwQzZEQUZG
IC8qIE1JTUVUeXBlUmVnaXN0cnkuY3BwICovLAogCQkJCUNEMjI1QzA3MUM0NUE2OTIwMDE0MDc2
MSAvKiBQYXJzZWRDb250ZW50UmFuZ2UuY3BwICovLAogCQkJCUFBOTZDQUI0MjFDN0RCNDIwMEZE
MkY5NyAvKiBQYXJzZWRDb250ZW50VHlwZS5jcHAgKi8sCi0JCQkJNkIwQTA3RjYyMUZBOUMyQjAw
RDU3MzkxIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcCAqLywKIAkJCQkwNDFBMUUzMzIx
NkZGREJDMDA3ODlFMEEgLyogUHVibGljU3VmZml4LmNwcCAqLywKIAkJCQk2QjRFODYxQjIyMjBB
NTUyMDAyMkYzODkgLyogUmVnaXN0cmFibGVEb21haW4uY3BwICovLAogCQkJCUY0MThCRTE0MUY3
MUI3REMwMDE5NzBFNiAvKiBSb3VuZGVkUmVjdFRlc3RzLmNwcCAqLywKQEAgLTUwNDAsNiArNTA0
MCw3IEBACiAJCQkJMkUyMDVCQTQxRjUyNzc0NjAwNTk1MkREIC8qIEFjY2Vzc2liaWxpdHlUZXN0
c0lPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTlCRDUxMTFDMUZFOEUxMTYwMEQyQjYzMCAvKiBB
Y2Nlc3NpbmdQYXN0ZWRJbWFnZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUY0NUI2M0ZFMUYxOUQ0
MTAwMDlEMzhCOSAvKiBBY3Rpb25TaGVldFRlc3RzLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNkIw
QTA3RjcyMUZBOUMyQjAwRDU3MzkxIC8qIEFkQ2xpY2tBdHRyaWJ1dGlvbi5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkzN0U3REQ2NDFFQTA2RkYyMDA5QjM5NkQgLyogQWRkaXRpb25hbFJlYWRBY2Nl
c3NBbGxvd2VkVVJMcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTU1QTgxN0ZDMjE4MTAwRTAwMDA0
QTM5QSAvKiBBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcy5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTU1RjlEMkU1MjIwNTAzMTgwMEE5QUIzOCAvKiBBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VU
eXBlcy5tbSBpbiBTb3VyY2VzICovLApAQCAtNTM4MCw3ICs1MzgxLDYgQEAKIAkJCQk3Q0NFN0Yy
QzFBNDExQjEwMDA0NDdDNEMgLyogUHJldmVudEltYWdlTG9hZFdpdGhBdXRvUmVzaXppbmcubW0g
aW4gU291cmNlcyAqLywKIAkJCQlBMUVDMTE4ODFGNDI1NDEyMDBEMDE0NkUgLyogUHJldmlld0Nv
bnZlcnRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0YwQzFBNDExQUU2MDA0NDdDNEMg
LyogUHJpdmF0ZUJyb3dzaW5nUHVzaFN0YXRlTm9IaXN0b3J5Q2FsbGJhY2suY3BwIGluIFNvdXJj
ZXMgKi8sCi0JCQkJNkIwQTA3RjcyMUZBOUMyQjAwRDU3MzkxIC8qIFByaXZhdGVDbGlja01lYXN1
cmVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ2NDdCMTI2MUVCQTNCODUwMDQxRDdFRiAv
KiBQcm9jZXNzRGlkVGVybWluYXRlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxODgyRjAzMjEw
MTBDMEQwMDJGRjI4OCAvKiBQcm9jZXNzUHJlV2FybWluZy5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CUNEQTQ0MzhFMjFGN0E0NzcwMDM3OTQ4OSAvKiBQcm9jZXNzU3VzcGVuZE1lZGlhQnVmZmVyaW5n
Lm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvQWRDbGlja0F0dHJpYnV0aW9uLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9BZENsaWNrQXR0cmlidXRpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQxMTFmMGVhMGMw
ZTFkMTk1ODBmZDNjNjQ1YmQzN2MwMmU1YWY5N2MKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQWRDbGlja0F0dHJpYnV0aW9uLmNwcApAQCAtMCww
ICsxLDI3OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUg
PFdlYkNvcmUvQWRDbGlja0F0dHJpYnV0aW9uLmg+CisjaW5jbHVkZSA8d3RmL1VSTC5oPgorI2lu
Y2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFt
ZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitjb25zdGV4cHIgdWludDMyX3QgbWluNkJpdFZhbHVl
IHsgMCB9OworCitjb25zdCBVUkwgd2ViS2l0VVJMIHsgeyB9LCAiaHR0cHM6Ly93ZWJraXQub3Jn
Il9zIH07Citjb25zdCBVUkwgZXhhbXBsZVVSTCB7IHsgfSwgImh0dHBzOi8vZXhhbXBsZS5jb20i
X3MgfTsKK2NvbnN0IFVSTCBlbXB0eVVSTCB7IH07CisKKy8vIFBvc2l0aXZlIHRlc3QgY2FzZXMu
CisKK1RFU1QoQWRDbGlja0F0dHJpYnV0aW9uLCBWYWxpZE1pblZhbHVlcykKK3sKKyAgICBBZENs
aWNrQXR0cmlidXRpb24gYXR0cmlidXRpb24geyBBZENsaWNrQXR0cmlidXRpb246OkNhbXBhaWdu
KG1pbjZCaXRWYWx1ZSksIEFkQ2xpY2tBdHRyaWJ1dGlvbjo6U291cmNlIHsgd2ViS2l0VVJMIH0s
IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6RGVzdGluYXRpb24geyBleGFtcGxlVVJMIH0gfTsKKyAgICBh
dHRyaWJ1dGlvbi5jb252ZXJ0QW5kR2V0RWFybGllc3RUaW1lVG9TZW5kKEFkQ2xpY2tBdHRyaWJ1
dGlvbjo6Q29udmVyc2lvbihtaW42Qml0VmFsdWUsIEFkQ2xpY2tBdHRyaWJ1dGlvbjo6UHJpb3Jp
dHkobWluNkJpdFZhbHVlKSkpOworCisgICAgYXV0byBhdHRyaWJ1dGlvblVSTCA9IGF0dHJpYnV0
aW9uLnJlcG9ydFVSTCgpOworICAgIAorICAgIEFTU0VSVF9FUShhdHRyaWJ1dGlvblVSTC5zdHJp
bmcoKSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9hZC1jbGljay1hdHRyaWJ1dGlv
bi8iKTsKKworICAgIEFTU0VSVF9FUShhdHRyaWJ1dGlvbi5qc29uKCktPnRvSlNPTlN0cmluZygp
LCAie1wiY29udGVudC10eXBlXCI6XCJjbGlja1wiLFwiY29udGVudC1zaXRlXCI6XCJ3ZWJraXQu
b3JnXCIsXCJjb250ZW50LWlkXCI6MCxcImNvbnZlcnNpb24tc2l0ZVwiOlwiZXhhbXBsZS5jb21c
IixcImNvbnZlcnNpb24tZGF0YVwiOjAsXCJyZXBvcnQtdmVyc2lvblwiOjF9Iik7Cit9CisKK1RF
U1QoQWRDbGlja0F0dHJpYnV0aW9uLCBWYWxpZE1pZFZhbHVlcykKK3sKKyAgICBBZENsaWNrQXR0
cmlidXRpb24gYXR0cmlidXRpb24geyBBZENsaWNrQXR0cmlidXRpb246OkNhbXBhaWduKCh1aW50
MzJfdCkxMiksIEFkQ2xpY2tBdHRyaWJ1dGlvbjo6U291cmNlIHsgd2ViS2l0VVJMIH0sIEFkQ2xp
Y2tBdHRyaWJ1dGlvbjo6RGVzdGluYXRpb24geyBleGFtcGxlVVJMIH0gfTsKKyAgICBhdHRyaWJ1
dGlvbi5jb252ZXJ0QW5kR2V0RWFybGllc3RUaW1lVG9TZW5kKEFkQ2xpY2tBdHRyaWJ1dGlvbjo6
Q29udmVyc2lvbigodWludDMyX3QpNDQsIEFkQ2xpY2tBdHRyaWJ1dGlvbjo6UHJpb3JpdHkoKHVp
bnQzMl90KTIyKSkpOworCisgICAgYXV0byBhdHRyaWJ1dGlvblVSTCA9IGF0dHJpYnV0aW9uLnJl
cG9ydFVSTCgpOworICAgIAorICAgIEFTU0VSVF9FUShhdHRyaWJ1dGlvblVSTC5zdHJpbmcoKSwg
Imh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9hZC1jbGljay1hdHRyaWJ1dGlvbi8iKTsK
KworICAgIEFTU0VSVF9FUShhdHRyaWJ1dGlvbi5qc29uKCktPnRvSlNPTlN0cmluZygpLCAie1wi
Y29udGVudC10eXBlXCI6XCJjbGlja1wiLFwiY29udGVudC1zaXRlXCI6XCJ3ZWJraXQub3JnXCIs
XCJjb250ZW50LWlkXCI6MTIsXCJjb252ZXJzaW9uLXNpdGVcIjpcImV4YW1wbGUuY29tXCIsXCJj
b252ZXJzaW9uLWRhdGFcIjo0NCxcInJlcG9ydC12ZXJzaW9uXCI6MX0iKTsKK30KKworVEVTVChB
ZENsaWNrQXR0cmlidXRpb24sIFZhbGlkTWF4VmFsdWVzKQoreworICAgIEFkQ2xpY2tBdHRyaWJ1
dGlvbiBhdHRyaWJ1dGlvbiB7IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6Q2FtcGFpZ24oQWRDbGlja0F0
dHJpYnV0aW9uOjpNYXhFbnRyb3B5KSwgQWRDbGlja0F0dHJpYnV0aW9uOjpTb3VyY2UgeyB3ZWJL
aXRVUkwgfSwgQWRDbGlja0F0dHJpYnV0aW9uOjpEZXN0aW5hdGlvbiB7IGV4YW1wbGVVUkwgfSB9
OworICAgIGF0dHJpYnV0aW9uLmNvbnZlcnRBbmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQoQWRDbGlj
a0F0dHJpYnV0aW9uOjpDb252ZXJzaW9uKEFkQ2xpY2tBdHRyaWJ1dGlvbjo6TWF4RW50cm9weSwg
QWRDbGlja0F0dHJpYnV0aW9uOjpQcmlvcml0eShBZENsaWNrQXR0cmlidXRpb246Ok1heEVudHJv
cHkpKSk7CisKKyAgICBhdXRvIGF0dHJpYnV0aW9uVVJMID0gYXR0cmlidXRpb24ucmVwb3J0VVJM
KCk7CisgICAgCisgICAgQVNTRVJUX0VRKGF0dHJpYnV0aW9uVVJMLnN0cmluZygpLCAiaHR0cHM6
Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL2FkLWNsaWNrLWF0dHJpYnV0aW9uLyIpOworCisgICAg
QVNTRVJUX0VRKGF0dHJpYnV0aW9uLmpzb24oKS0+dG9KU09OU3RyaW5nKCksICJ7XCJjb250ZW50
LXR5cGVcIjpcImNsaWNrXCIsXCJjb250ZW50LXNpdGVcIjpcIndlYmtpdC5vcmdcIixcImNvbnRl
bnQtaWRcIjo2MyxcImNvbnZlcnNpb24tc2l0ZVwiOlwiZXhhbXBsZS5jb21cIixcImNvbnZlcnNp
b24tZGF0YVwiOjYzLFwicmVwb3J0LXZlcnNpb25cIjoxfSIpOworfQorCitURVNUKEFkQ2xpY2tB
dHRyaWJ1dGlvbiwgRWFybGllc3RUaW1lVG9TZW5kQXR0cmlidXRpb25NaW5pbXVtRGVsYXkpCit7
CisgICAgQWRDbGlja0F0dHJpYnV0aW9uIGF0dHJpYnV0aW9uIHsgQWRDbGlja0F0dHJpYnV0aW9u
OjpDYW1wYWlnbihBZENsaWNrQXR0cmlidXRpb246Ok1heEVudHJvcHkpLCBBZENsaWNrQXR0cmli
dXRpb246OlNvdXJjZSB7IHdlYktpdFVSTCB9LCBBZENsaWNrQXR0cmlidXRpb246OkRlc3RpbmF0
aW9uIHsgZXhhbXBsZVVSTCB9IH07CisgICAgYXV0byBub3cgPSBXYWxsVGltZTo6bm93KCk7Cisg
ICAgYXR0cmlidXRpb24uY29udmVydEFuZEdldEVhcmxpZXN0VGltZVRvU2VuZChBZENsaWNrQXR0
cmlidXRpb246OkNvbnZlcnNpb24oQWRDbGlja0F0dHJpYnV0aW9uOjpNYXhFbnRyb3B5LCBBZENs
aWNrQXR0cmlidXRpb246OlByaW9yaXR5KEFkQ2xpY2tBdHRyaWJ1dGlvbjo6TWF4RW50cm9weSkp
KTsKKyAgICBhdXRvIGVhcmxpZXN0VGltZVRvU2VuZCA9IGF0dHJpYnV0aW9uLmVhcmxpZXN0VGlt
ZVRvU2VuZCgpOworICAgIEFTU0VSVF9UUlVFKGVhcmxpZXN0VGltZVRvU2VuZCk7CisgICAgQVNT
RVJUX1RSVUUoZWFybGllc3RUaW1lVG9TZW5kLnZhbHVlKCkuc2Vjb25kc1NpbmNlRXBvY2goKSAt
IDI0X2ggPj0gbm93LnNlY29uZHNTaW5jZUVwb2NoKCkpOworfQorCitURVNUKEFkQ2xpY2tBdHRy
aWJ1dGlvbiwgVmFsaWRDb252ZXJzaW9uVVJMcykKK3sKKyAgICBjb25zdCBVUkwgY29udmVyc2lv
blVSTFdpdGhvdXRQcmlvcml0eSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93
bi9hZC1jbGljay1hdHRyaWJ1dGlvbi8yMiJfcyB9OworICAgIGF1dG8gb3B0aW9uYWxDb252ZXJz
aW9uID0gQWRDbGlja0F0dHJpYnV0aW9uOjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNp
b25VUkxXaXRob3V0UHJpb3JpdHkpOworICAgIEFTU0VSVF9UUlVFKG9wdGlvbmFsQ29udmVyc2lv
bik7CisgICAgQVNTRVJUX0VRKG9wdGlvbmFsQ29udmVyc2lvbi0+ZGF0YSwgKHVpbnQzMl90KTIy
KTsKKworICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aG91dFByaW9yaXR5TWF4RW50cm9w
eSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9hZC1jbGljay1hdHRyaWJ1
dGlvbi82MyJfcyB9OworICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IEFkQ2xpY2tBdHRyaWJ1dGlv
bjo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aG91dFByaW9yaXR5TWF4
RW50cm9weSk7CisgICAgQVNTRVJUX1RSVUUob3B0aW9uYWxDb252ZXJzaW9uKTsKKyAgICBBU1NF
UlRfRVEob3B0aW9uYWxDb252ZXJzaW9uLT5kYXRhLCAodWludDMyX3QpNjMpOworICAgIAorICAg
IGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aG91dFByaW9yaXR5QW5kTGVhZGluZ1plcm8geyB7
IH0sICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vYWQtY2xpY2stYXR0cmlidXRpb24v
MDIiX3MgfTsKKyAgICBvcHRpb25hbENvbnZlcnNpb24gPSBBZENsaWNrQXR0cmlidXRpb246OnBh
cnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhvdXRQcmlvcml0eUFuZExlYWRp
bmdaZXJvKTsKKyAgICBBU1NFUlRfVFJVRShvcHRpb25hbENvbnZlcnNpb24pOworICAgIEFTU0VS
VF9FUShvcHRpb25hbENvbnZlcnNpb24tPmRhdGEsICh1aW50MzJfdCkyKTsKKworICAgIGNvbnN0
IFVSTCBjb252ZXJzaW9uVVJMV2l0aFByaW9yaXR5IHsgeyB9LCAiaHR0cHM6Ly93ZWJraXQub3Jn
Ly53ZWxsLWtub3duL2FkLWNsaWNrLWF0dHJpYnV0aW9uLzIyLzEyIl9zIH07CisgICAgb3B0aW9u
YWxDb252ZXJzaW9uID0gQWRDbGlja0F0dHJpYnV0aW9uOjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0
KGNvbnZlcnNpb25VUkxXaXRoUHJpb3JpdHkpOworICAgIEFTU0VSVF9UUlVFKG9wdGlvbmFsQ29u
dmVyc2lvbik7CisgICAgQVNTRVJUX0VRKG9wdGlvbmFsQ29udmVyc2lvbi0+ZGF0YSwgKHVpbnQz
Ml90KTIyKTsKKyAgICBBU1NFUlRfRVEob3B0aW9uYWxDb252ZXJzaW9uLT5wcmlvcml0eSwgKHVp
bnQzMl90KTEyKTsKKworICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aFByaW9yaXR5TWF4
RW50cm9weSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9hZC1jbGljay1h
dHRyaWJ1dGlvbi82My82MyJfcyB9OworICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IEFkQ2xpY2tB
dHRyaWJ1dGlvbjo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aFByaW9y
aXR5TWF4RW50cm9weSk7CisgICAgQVNTRVJUX1RSVUUob3B0aW9uYWxDb252ZXJzaW9uKTsKKyAg
ICBBU1NFUlRfRVEob3B0aW9uYWxDb252ZXJzaW9uLT5kYXRhLCAodWludDMyX3QpNjMpOworICAg
IEFTU0VSVF9FUShvcHRpb25hbENvbnZlcnNpb24tPnByaW9yaXR5LCAodWludDMyX3QpNjMpOwor
ICAgIAorICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aFByaW9yaXR5QW5kTGVhZGluZ1pl
cm8geyB7IH0sICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vYWQtY2xpY2stYXR0cmli
dXRpb24vMjIvMDIiX3MgfTsKKyAgICBvcHRpb25hbENvbnZlcnNpb24gPSBBZENsaWNrQXR0cmli
dXRpb246OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhQcmlvcml0eUFu
ZExlYWRpbmdaZXJvKTsKKyAgICBBU1NFUlRfVFJVRShvcHRpb25hbENvbnZlcnNpb24pOworICAg
IEFTU0VSVF9FUShvcHRpb25hbENvbnZlcnNpb24tPmRhdGEsICh1aW50MzJfdCkyMik7CisgICAg
QVNTRVJUX0VRKG9wdGlvbmFsQ29udmVyc2lvbi0+cHJpb3JpdHksICh1aW50MzJfdCkyKTsKK30K
KworLy8gTmVnYXRpdmUgdGVzdCBjYXNlcy4KKworVEVTVChBZENsaWNrQXR0cmlidXRpb24sIElu
dmFsaWRDYW1wYWlnbklkKQoreworICAgIEFkQ2xpY2tBdHRyaWJ1dGlvbiBhdHRyaWJ1dGlvbiB7
IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6Q2FtcGFpZ24oQWRDbGlja0F0dHJpYnV0aW9uOjpNYXhFbnRy
b3B5ICsgMSksIEFkQ2xpY2tBdHRyaWJ1dGlvbjo6U291cmNlIHsgd2ViS2l0VVJMIH0sIEFkQ2xp
Y2tBdHRyaWJ1dGlvbjo6RGVzdGluYXRpb24geyBleGFtcGxlVVJMIH0gfTsKKyAgICBhdHRyaWJ1
dGlvbi5jb252ZXJ0QW5kR2V0RWFybGllc3RUaW1lVG9TZW5kKEFkQ2xpY2tBdHRyaWJ1dGlvbjo6
Q29udmVyc2lvbihBZENsaWNrQXR0cmlidXRpb246Ok1heEVudHJvcHksIEFkQ2xpY2tBdHRyaWJ1
dGlvbjo6UHJpb3JpdHkoQWRDbGlja0F0dHJpYnV0aW9uOjpNYXhFbnRyb3B5KSkpOworCisgICAg
QVNTRVJUX1RSVUUoYXR0cmlidXRpb24ucmVwb3J0VVJMKCkuaXNFbXB0eSgpKTsKK30KKworVEVT
VChBZENsaWNrQXR0cmlidXRpb24sIEludmFsaWRTb3VyY2VIb3N0KQoreworICAgIEFkQ2xpY2tB
dHRyaWJ1dGlvbiBhdHRyaWJ1dGlvbiB7IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6Q2FtcGFpZ24oQWRD
bGlja0F0dHJpYnV0aW9uOjpNYXhFbnRyb3B5KSwgQWRDbGlja0F0dHJpYnV0aW9uOjpTb3VyY2Ug
eyBlbXB0eVVSTCB9LCBBZENsaWNrQXR0cmlidXRpb246OkRlc3RpbmF0aW9uIHsgZXhhbXBsZVVS
TCB9IH07CisgICAgYXR0cmlidXRpb24uY29udmVydEFuZEdldEVhcmxpZXN0VGltZVRvU2VuZChB
ZENsaWNrQXR0cmlidXRpb246OkNvbnZlcnNpb24oQWRDbGlja0F0dHJpYnV0aW9uOjpNYXhFbnRy
b3B5LCBBZENsaWNrQXR0cmlidXRpb246OlByaW9yaXR5KEFkQ2xpY2tBdHRyaWJ1dGlvbjo6TWF4
RW50cm9weSkpKTsKKworICAgIEFTU0VSVF9UUlVFKGF0dHJpYnV0aW9uLnJlcG9ydFVSTCgpLmlz
RW1wdHkoKSk7Cit9CisKK1RFU1QoQWRDbGlja0F0dHJpYnV0aW9uLCBJbnZhbGlkRGVzdGluYXRp
b25Ib3N0KQoreworICAgIEFkQ2xpY2tBdHRyaWJ1dGlvbiBhdHRyaWJ1dGlvbiB7IEFkQ2xpY2tB
dHRyaWJ1dGlvbjo6Q2FtcGFpZ24oQWRDbGlja0F0dHJpYnV0aW9uOjpNYXhFbnRyb3B5ICsgMSks
IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6U291cmNlIHsgd2ViS2l0VVJMIH0sIEFkQ2xpY2tBdHRyaWJ1
dGlvbjo6RGVzdGluYXRpb24geyBlbXB0eVVSTCB9IH07CisgICAgYXR0cmlidXRpb24uY29udmVy
dEFuZEdldEVhcmxpZXN0VGltZVRvU2VuZChBZENsaWNrQXR0cmlidXRpb246OkNvbnZlcnNpb24o
QWRDbGlja0F0dHJpYnV0aW9uOjpNYXhFbnRyb3B5LCBBZENsaWNrQXR0cmlidXRpb246OlByaW9y
aXR5KEFkQ2xpY2tBdHRyaWJ1dGlvbjo6TWF4RW50cm9weSkpKTsKKworICAgIEFTU0VSVF9UUlVF
KGF0dHJpYnV0aW9uLnJlcG9ydFVSTCgpLmlzRW1wdHkoKSk7Cit9CisKK1RFU1QoQWRDbGlja0F0
dHJpYnV0aW9uLCBJbnZhbGlkQ29udmVyc2lvbkRhdGEpCit7CisgICAgQWRDbGlja0F0dHJpYnV0
aW9uIGF0dHJpYnV0aW9uIHsgQWRDbGlja0F0dHJpYnV0aW9uOjpDYW1wYWlnbihBZENsaWNrQXR0
cmlidXRpb246Ok1heEVudHJvcHkpLCBBZENsaWNrQXR0cmlidXRpb246OlNvdXJjZSB7IHdlYktp
dFVSTCB9LCBBZENsaWNrQXR0cmlidXRpb246OkRlc3RpbmF0aW9uIHsgZXhhbXBsZVVSTCB9IH07
CisgICAgYXR0cmlidXRpb24uY29udmVydEFuZEdldEVhcmxpZXN0VGltZVRvU2VuZChBZENsaWNr
QXR0cmlidXRpb246OkNvbnZlcnNpb24oKEFkQ2xpY2tBdHRyaWJ1dGlvbjo6TWF4RW50cm9weSAr
IDEpLCBBZENsaWNrQXR0cmlidXRpb246OlByaW9yaXR5KEFkQ2xpY2tBdHRyaWJ1dGlvbjo6TWF4
RW50cm9weSkpKTsKKworICAgIEFTU0VSVF9UUlVFKGF0dHJpYnV0aW9uLnJlcG9ydFVSTCgpLmlz
RW1wdHkoKSk7Cit9CisKK1RFU1QoQWRDbGlja0F0dHJpYnV0aW9uLCBJbnZhbGlkUHJpb3JpdHkp
Cit7CisgICAgQWRDbGlja0F0dHJpYnV0aW9uIGF0dHJpYnV0aW9uIHsgQWRDbGlja0F0dHJpYnV0
aW9uOjpDYW1wYWlnbihBZENsaWNrQXR0cmlidXRpb246Ok1heEVudHJvcHkpLCBBZENsaWNrQXR0
cmlidXRpb246OlNvdXJjZSB7IHdlYktpdFVSTCB9LCBBZENsaWNrQXR0cmlidXRpb246OkRlc3Rp
bmF0aW9uIHsgZXhhbXBsZVVSTCB9IH07CisgICAgYXR0cmlidXRpb24uY29udmVydEFuZEdldEVh
cmxpZXN0VGltZVRvU2VuZChBZENsaWNrQXR0cmlidXRpb246OkNvbnZlcnNpb24oQWRDbGlja0F0
dHJpYnV0aW9uOjpNYXhFbnRyb3B5LCBBZENsaWNrQXR0cmlidXRpb246OlByaW9yaXR5KEFkQ2xp
Y2tBdHRyaWJ1dGlvbjo6TWF4RW50cm9weSArIDEpKSk7CisKKyAgICBBU1NFUlRfVFJVRShhdHRy
aWJ1dGlvbi5yZXBvcnRVUkwoKS5pc0VtcHR5KCkpOworfQorCitURVNUKEFkQ2xpY2tBdHRyaWJ1
dGlvbiwgSW52YWxpZE1pc3NpbmdDb252ZXJzaW9uKQoreworICAgIEFkQ2xpY2tBdHRyaWJ1dGlv
biBhdHRyaWJ1dGlvbiB7IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6Q2FtcGFpZ24oQWRDbGlja0F0dHJp
YnV0aW9uOjpNYXhFbnRyb3B5KSwgQWRDbGlja0F0dHJpYnV0aW9uOjpTb3VyY2UgeyB3ZWJLaXRV
UkwgfSwgQWRDbGlja0F0dHJpYnV0aW9uOjpEZXN0aW5hdGlvbiB7IGV4YW1wbGVVUkwgfSB9Owor
CisgICAgQVNTRVJUX1RSVUUoYXR0cmlidXRpb24ucmVwb3J0VVJMKCkuaXNFbXB0eSgpKTsKKyAg
ICBBU1NFUlRfRkFMU0UoYXR0cmlidXRpb24uZWFybGllc3RUaW1lVG9TZW5kKCkpOworfQorCitU
RVNUKEFkQ2xpY2tBdHRyaWJ1dGlvbiwgSW52YWxpZENvbnZlcnNpb25VUkxzKQoreworICAgIGNv
bnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aFNpbmdsZURpZ2l0Q29udmVyc2lvbkRhdGEgeyB7IH0s
ICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vYWQtY2xpY2stYXR0cmlidXRpb24vMiJf
cyB9OworICAgIGF1dG8gb3B0aW9uYWxDb252ZXJzaW9uID0gQWRDbGlja0F0dHJpYnV0aW9uOjpw
YXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoU2luZ2xlRGlnaXRDb252ZXJz
aW9uRGF0YSk7CisgICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lvbik7CisgICAgCisg
ICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoTm9uTnVtZXJhbENvbnZlcnNpb25EYXRhIHsg
eyB9LCAiaHR0cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL2FkLWNsaWNrLWF0dHJpYnV0aW9u
LzJzIl9zIH07CisgICAgb3B0aW9uYWxDb252ZXJzaW9uID0gQWRDbGlja0F0dHJpYnV0aW9uOjpw
YXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoTm9uTnVtZXJhbENvbnZlcnNp
b25EYXRhKTsKKyAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKKworICAgIGNv
bnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aE5lZ2F0aXZlQ29udmVyc2lvbkRhdGEgeyB7IH0sICJo
dHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vYWQtY2xpY2stYXR0cmlidXRpb24vLTIiX3Mg
fTsKKyAgICBvcHRpb25hbENvbnZlcnNpb24gPSBBZENsaWNrQXR0cmlidXRpb246OnBhcnNlQ29u
dmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhOZWdhdGl2ZUNvbnZlcnNpb25EYXRhKTsK
KyAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKKworICAgIGNvbnN0IFVSTCBj
b252ZXJzaW9uVVJMV2l0aFRvb0xhcmdlQ29udmVyc2lvbkRhdGEgeyB7IH0sICJodHRwczovL3dl
YmtpdC5vcmcvLndlbGwta25vd24vYWQtY2xpY2stYXR0cmlidXRpb24vNjQiX3MgfTsKKyAgICBv
cHRpb25hbENvbnZlcnNpb24gPSBBZENsaWNrQXR0cmlidXRpb246OnBhcnNlQ29udmVyc2lvblJl
cXVlc3QoY29udmVyc2lvblVSTFdpdGhUb29MYXJnZUNvbnZlcnNpb25EYXRhKTsKKyAgICBBU1NF
UlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKKworICAgIGNvbnN0IFVSTCBjb252ZXJzaW9u
VVJMV2l0aFNpbmdsZURpZ2l0UHJpb3JpdHkgeyB7IH0sICJodHRwczovL3dlYmtpdC5vcmcvLndl
bGwta25vd24vYWQtY2xpY2stYXR0cmlidXRpb24vMjIvMiJfcyB9OworICAgIG9wdGlvbmFsQ29u
dmVyc2lvbiA9IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252
ZXJzaW9uVVJMV2l0aFNpbmdsZURpZ2l0UHJpb3JpdHkpOworICAgIEFTU0VSVF9GQUxTRShvcHRp
b25hbENvbnZlcnNpb24pOworICAgIAorICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aE5v
bk51bWVyYWxQcmlvcml0eSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9h
ZC1jbGljay1hdHRyaWJ1dGlvbi8yMi8ycyJfcyB9OworICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9
IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJM
V2l0aE5vbk51bWVyYWxQcmlvcml0eSk7CisgICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVy
c2lvbik7CisgICAgCisgICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoTmVnYXRpdmVQcmlv
cml0eSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9hZC1jbGljay1hdHRy
aWJ1dGlvbi8yMi8tMiJfcyB9OworICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IEFkQ2xpY2tBdHRy
aWJ1dGlvbjo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aE5lZ2F0aXZl
UHJpb3JpdHkpOworICAgIEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOworICAgIAor
ICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aFRvb0xhcmdlUHJpb3JpdHkgeyB7IH0sICJo
dHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vYWQtY2xpY2stYXR0cmlidXRpb24vMjIvNjQi
X3MgfTsKKyAgICBvcHRpb25hbENvbnZlcnNpb24gPSBBZENsaWNrQXR0cmlidXRpb246OnBhcnNl
Q29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhUb29MYXJnZVByaW9yaXR5KTsKKyAg
ICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKKworICAgIGNvbnN0IFVSTCBjb252
ZXJzaW9uVVJMV2l0aFRvb0xhcmdlQ29udmVyc2lvbkRhdGFBbmRQcmlvcml0eSB7IHsgfSwgImh0
dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9hZC1jbGljay1hdHRyaWJ1dGlvbi82NC8yMiJf
cyB9OworICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6cGFyc2VD
b252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aFRvb0xhcmdlQ29udmVyc2lvbkRhdGFB
bmRQcmlvcml0eSk7CisgICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lvbik7CisKKyAg
ICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhUb29MYXJnZUNvbnZlcnNpb25EYXRhQW5kVG9v
TGFyZ2VQcmlvcml0eSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9hZC1j
bGljay1hdHRyaWJ1dGlvbi82NC82NCJfcyB9OworICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IEFk
Q2xpY2tBdHRyaWJ1dGlvbjo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0
aFRvb0xhcmdlQ29udmVyc2lvbkRhdGFBbmRUb29MYXJnZVByaW9yaXR5KTsKKyAgICBBU1NFUlRf
RkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKKworICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJM
V2l0aEV4dHJhTGVhZGluZ1NsYXNoID0geyB7IH0sICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwt
a25vd24vYWQtY2xpY2stYXR0cmlidXRpb24vLzIyLzEyIl9zIH07CisgICAgb3B0aW9uYWxDb252
ZXJzaW9uID0gQWRDbGlja0F0dHJpYnV0aW9uOjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZl
cnNpb25VUkxXaXRoRXh0cmFMZWFkaW5nU2xhc2gpOworICAgIEFTU0VSVF9GQUxTRShvcHRpb25h
bENvbnZlcnNpb24pOworCisgICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoRXh0cmFUcmFp
bGluZ1NsYXNoID0geyB7IH0sICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vYWQtY2xp
Y2stYXR0cmlidXRpb24vMjIvMTIvIl9zIH07CisgICAgb3B0aW9uYWxDb252ZXJzaW9uID0gQWRD
bGlja0F0dHJpYnV0aW9uOjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRo
RXh0cmFUcmFpbGluZ1NsYXNoKTsKKyAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9u
KTsKKworICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aFRyYWlsaW5nUXVlc3Rpb25NYXJr
ID0geyB7IH0sICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vYWQtY2xpY2stYXR0cmli
dXRpb24vMjIvMTI/Il9zIH07CisgICAgb3B0aW9uYWxDb252ZXJzaW9uID0gQWRDbGlja0F0dHJp
YnV0aW9uOjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoVHJhaWxpbmdR
dWVzdGlvbk1hcmspOworICAgIEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOworfQor
CitURVNUKEFkQ2xpY2tBdHRyaWJ1dGlvbiwgSW52YWxpZENvbnZlcnNpb25XaXRoRGlzYWxsb3dl
ZFVSTENvbXBvbmVudHMpCit7CisgICAgLy8gUHJvdG9jb2wuCisgICAgY29uc3QgVVJMIGNvbnZl
cnNpb25VUkxXaXRoSHR0cFByb3RvY29sIHsgeyB9LCAiaHR0cDovL3dlYmtpdC5vcmcvLndlbGwt
a25vd24vYWQtY2xpY2stYXR0cmlidXRpb24vMiJfcyB9OworICAgIGF1dG8gb3B0aW9uYWxDb252
ZXJzaW9uID0gQWRDbGlja0F0dHJpYnV0aW9uOjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZl
cnNpb25VUkxXaXRoSHR0cFByb3RvY29sKTsKKyAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252
ZXJzaW9uKTsKKworICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aFdzc1Byb3RvY29sIHsg
eyB9LCAid3NzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9hZC1jbGljay1hdHRyaWJ1dGlvbi8y
Il9zIH07CisgICAgb3B0aW9uYWxDb252ZXJzaW9uID0gQWRDbGlja0F0dHJpYnV0aW9uOjpwYXJz
ZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoV3NzUHJvdG9jb2wpOworICAgIEFT
U0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOworCisgICAgY29uc3QgVVJMIGNvbnZlcnNp
b25VUkxXaXRoRmlsZVByb3RvY29sIHsgeyB9LCAiZmlsZTovLy8ud2VsbC1rbm93bi9hZC1jbGlj
ay1hdHRyaWJ1dGlvbi8yIl9zIH07CisgICAgb3B0aW9uYWxDb252ZXJzaW9uID0gQWRDbGlja0F0
dHJpYnV0aW9uOjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoRmlsZVBy
b3RvY29sKTsKKyAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKKworICAgIC8v
IFVzZXJuYW1lIGFuZCBwYXNzd29yZC4KKyAgICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhV
c2VyTmFtZSB7IHsgfSwgImh0dHBzOi8vdXNlckB3ZWJraXQub3JnLy53ZWxsLWtub3duL2FkLWNs
aWNrLWF0dHJpYnV0aW9uLzIiX3MgfTsKKyAgICBvcHRpb25hbENvbnZlcnNpb24gPSBBZENsaWNr
QXR0cmlidXRpb246OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhVc2Vy
TmFtZSk7CisgICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lvbik7CisKKyAgICBjb25z
dCBVUkwgY29udmVyc2lvblVSTFdpdGhQYXNzd29yZCA9IHsgeyB9LCAiaHR0cHM6Ly86cHdkQHdl
YmtpdC5vcmcvLndlbGwta25vd24vYWQtY2xpY2stYXR0cmlidXRpb24vMjIvMTI/Il9zIH07Cisg
ICAgb3B0aW9uYWxDb252ZXJzaW9uID0gQWRDbGlja0F0dHJpYnV0aW9uOjpwYXJzZUNvbnZlcnNp
b25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoUGFzc3dvcmQpOworICAgIEFTU0VSVF9GQUxTRShv
cHRpb25hbENvbnZlcnNpb24pOworCisgICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoVXNl
cm5hbWVBbmRQYXNzd29yZCA9IHsgeyB9LCAiaHR0cHM6Ly91c2VyOnB3ZEB3ZWJraXQub3JnLy53
ZWxsLWtub3duL2FkLWNsaWNrLWF0dHJpYnV0aW9uLzIyLzEyPyJfcyB9OworICAgIG9wdGlvbmFs
Q29udmVyc2lvbiA9IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChj
b252ZXJzaW9uVVJMV2l0aFVzZXJuYW1lQW5kUGFzc3dvcmQpOworICAgIEFTU0VSVF9GQUxTRShv
cHRpb25hbENvbnZlcnNpb24pOworCisgICAgLy8gUXVlcnkgc3RyaW5nLgorICAgIGNvbnN0IFVS
TCBjb252ZXJzaW9uVVJMV2l0aFRyYWlsaW5nUXVlc3Rpb25NYXJrID0geyB7IH0sICJodHRwczov
L3dlYmtpdC5vcmcvLndlbGwta25vd24vYWQtY2xpY2stYXR0cmlidXRpb24vMjIvMTI/Il9zIH07
CisgICAgb3B0aW9uYWxDb252ZXJzaW9uID0gQWRDbGlja0F0dHJpYnV0aW9uOjpwYXJzZUNvbnZl
cnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoVHJhaWxpbmdRdWVzdGlvbk1hcmspOworICAg
IEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOworCisgICAgY29uc3QgVVJMIGNvbnZl
cnNpb25VUkxXaXRoUXVlcnlTdHJpbmcgPSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2Vs
bC1rbm93bi9hZC1jbGljay1hdHRyaWJ1dGlvbi8yMi8xMj9leHRyYT1kYXRhIl9zIH07CisgICAg
b3B0aW9uYWxDb252ZXJzaW9uID0gQWRDbGlja0F0dHJpYnV0aW9uOjpwYXJzZUNvbnZlcnNpb25S
ZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoUXVlcnlTdHJpbmcpOworICAgIEFTU0VSVF9GQUxTRShv
cHRpb25hbENvbnZlcnNpb24pOworICAgIAorICAgIC8vIEZyYWdtZW50LgorICAgIGNvbnN0IFVS
TCBjb252ZXJzaW9uVVJMV2l0aFRyYWlsaW5nSGFzaCA9IHsgeyB9LCAiaHR0cHM6Ly93ZWJraXQu
b3JnLy53ZWxsLWtub3duL2FkLWNsaWNrLWF0dHJpYnV0aW9uLzIyLzEyIyJfcyB9OworICAgIG9w
dGlvbmFsQ29udmVyc2lvbiA9IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6cGFyc2VDb252ZXJzaW9uUmVx
dWVzdChjb252ZXJzaW9uVVJMV2l0aFRyYWlsaW5nSGFzaCk7CisgICAgQVNTRVJUX0ZBTFNFKG9w
dGlvbmFsQ29udmVyc2lvbik7CisKKyAgICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhGcmFn
bWVudCA9IHsgeyB9LCAiaHR0cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL2FkLWNsaWNrLWF0
dHJpYnV0aW9uLzIyLzEyI2ZyYWdtZW50Il9zIH07CisgICAgb3B0aW9uYWxDb252ZXJzaW9uID0g
QWRDbGlja0F0dHJpYnV0aW9uOjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxX
aXRoRnJhZ21lbnQpOworICAgIEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOworfQor
Cit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmIzOWIwZGNkNjljN2RiYzk5ZjFmYzIwZDBj
ZTM2NDhlNWQ2OTA3Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMjc4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
aW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpbmNsdWRlIDxXZWJDb3JlL1ByaXZhdGVDbGlja01lYXN1
cmVtZW50Lmg+Ci0jaW5jbHVkZSA8d3RmL1VSTC5oPgotI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5o
PgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkg
ewotCi1jb25zdGV4cHIgdWludDMyX3QgbWluNkJpdFZhbHVlIHsgMCB9OwotCi1jb25zdCBVUkwg
d2ViS2l0VVJMIHsgeyB9LCAiaHR0cHM6Ly93ZWJraXQub3JnIl9zIH07Ci1jb25zdCBVUkwgZXhh
bXBsZVVSTCB7IHsgfSwgImh0dHBzOi8vZXhhbXBsZS5jb20iX3MgfTsKLWNvbnN0IFVSTCBlbXB0
eVVSTCB7IH07Ci0KLS8vIFBvc2l0aXZlIHRlc3QgY2FzZXMuCi0KLVRFU1QoUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQsIFZhbGlkTWluVmFsdWVzKQotewotICAgIFByaXZhdGVDbGlja01lYXN1cmVt
ZW50IGF0dHJpYnV0aW9uIHsgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNhbXBhaWduKG1pbjZC
aXRWYWx1ZSksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2UgeyB3ZWJLaXRVUkwgfSwg
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9uIHsgZXhhbXBsZVVSTCB9IH07Ci0g
ICAgYXR0cmlidXRpb24uY29udmVydEFuZEdldEVhcmxpZXN0VGltZVRvU2VuZChQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6Q29udmVyc2lvbihtaW42Qml0VmFsdWUsIFByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpQcmlvcml0eShtaW42Qml0VmFsdWUpKSk7Ci0KLSAgICBhdXRvIGF0dHJpYnV0aW9u
VVJMID0gYXR0cmlidXRpb24ucmVwb3J0VVJMKCk7Ci0gICAgCi0gICAgQVNTRVJUX0VRKGF0dHJp
YnV0aW9uVVJMLnN0cmluZygpLCAiaHR0cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL3ByaXZh
dGUtY2xpY2stbWVhc3VyZW1lbnQvIik7Ci0KLSAgICBBU1NFUlRfRVEoYXR0cmlidXRpb24uanNv
bigpLT50b0pTT05TdHJpbmcoKSwgIntcImNvbnRlbnQtdHlwZVwiOlwiY2xpY2tcIixcImNvbnRl
bnQtc2l0ZVwiOlwid2Via2l0Lm9yZ1wiLFwiY29udGVudC1pZFwiOjAsXCJjb252ZXJzaW9uLXNp
dGVcIjpcImV4YW1wbGUuY29tXCIsXCJjb252ZXJzaW9uLWRhdGFcIjowLFwicmVwb3J0LXZlcnNp
b25cIjoxfSIpOwotfQotCi1URVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBWYWxpZE1pZFZh
bHVlcykKLXsKLSAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB7IFByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpDYW1wYWlnbigodWludDMyX3QpMTIpLCBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudDo6U291cmNlIHsgd2ViS2l0VVJMIH0sIFByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpEZXN0aW5hdGlvbiB7IGV4YW1wbGVVUkwgfSB9OwotICAgIGF0dHJpYnV0aW9uLmNvbnZlcnRB
bmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNvbnZlcnNp
b24oKHVpbnQzMl90KTQ0LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UHJpb3JpdHkoKHVpbnQz
Ml90KTIyKSkpOwotCi0gICAgYXV0byBhdHRyaWJ1dGlvblVSTCA9IGF0dHJpYnV0aW9uLnJlcG9y
dFVSTCgpOwotICAgIAotICAgIEFTU0VSVF9FUShhdHRyaWJ1dGlvblVSTC5zdHJpbmcoKSwgImh0
dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LyIp
OwotCi0gICAgQVNTRVJUX0VRKGF0dHJpYnV0aW9uLmpzb24oKS0+dG9KU09OU3RyaW5nKCksICJ7
XCJjb250ZW50LXR5cGVcIjpcImNsaWNrXCIsXCJjb250ZW50LXNpdGVcIjpcIndlYmtpdC5vcmdc
IixcImNvbnRlbnQtaWRcIjoxMixcImNvbnZlcnNpb24tc2l0ZVwiOlwiZXhhbXBsZS5jb21cIixc
ImNvbnZlcnNpb24tZGF0YVwiOjQ0LFwicmVwb3J0LXZlcnNpb25cIjoxfSIpOwotfQotCi1URVNU
KFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBWYWxpZE1heFZhbHVlcykKLXsKLSAgICBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB7IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpD
YW1wYWlnbihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6TWF4RW50cm9weSksIFByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpTb3VyY2UgeyB3ZWJLaXRVUkwgfSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OkRlc3RpbmF0aW9uIHsgZXhhbXBsZVVSTCB9IH07Ci0gICAgYXR0cmlidXRpb24uY29udmVy
dEFuZEdldEVhcmxpZXN0VGltZVRvU2VuZChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q29udmVy
c2lvbihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6TWF4RW50cm9weSwgUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OlByaW9yaXR5KFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpNYXhFbnRyb3B5KSkp
OwotCi0gICAgYXV0byBhdHRyaWJ1dGlvblVSTCA9IGF0dHJpYnV0aW9uLnJlcG9ydFVSTCgpOwot
ICAgIAotICAgIEFTU0VSVF9FUShhdHRyaWJ1dGlvblVSTC5zdHJpbmcoKSwgImh0dHBzOi8vd2Vi
a2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LyIpOwotCi0gICAg
QVNTRVJUX0VRKGF0dHJpYnV0aW9uLmpzb24oKS0+dG9KU09OU3RyaW5nKCksICJ7XCJjb250ZW50
LXR5cGVcIjpcImNsaWNrXCIsXCJjb250ZW50LXNpdGVcIjpcIndlYmtpdC5vcmdcIixcImNvbnRl
bnQtaWRcIjo2MyxcImNvbnZlcnNpb24tc2l0ZVwiOlwiZXhhbXBsZS5jb21cIixcImNvbnZlcnNp
b24tZGF0YVwiOjYzLFwicmVwb3J0LXZlcnNpb25cIjoxfSIpOwotfQotCi1URVNUKFByaXZhdGVD
bGlja01lYXN1cmVtZW50LCBFYXJsaWVzdFRpbWVUb1NlbmRBdHRyaWJ1dGlvbk1pbmltdW1EZWxh
eSkKLXsKLSAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB7IFByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpDYW1wYWlnbihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6TWF4RW50
cm9weSksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2UgeyB3ZWJLaXRVUkwgfSwgUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9uIHsgZXhhbXBsZVVSTCB9IH07Ci0gICAg
YXV0byBub3cgPSBXYWxsVGltZTo6bm93KCk7Ci0gICAgYXR0cmlidXRpb24uY29udmVydEFuZEdl
dEVhcmxpZXN0VGltZVRvU2VuZChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q29udmVyc2lvbihQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6TWF4RW50cm9weSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OlByaW9yaXR5KFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpNYXhFbnRyb3B5KSkpOwotICAg
IGF1dG8gZWFybGllc3RUaW1lVG9TZW5kID0gYXR0cmlidXRpb24uZWFybGllc3RUaW1lVG9TZW5k
KCk7Ci0gICAgQVNTRVJUX1RSVUUoZWFybGllc3RUaW1lVG9TZW5kKTsKLSAgICBBU1NFUlRfVFJV
RShlYXJsaWVzdFRpbWVUb1NlbmQudmFsdWUoKS5zZWNvbmRzU2luY2VFcG9jaCgpIC0gMjRfaCA+
PSBub3cuc2Vjb25kc1NpbmNlRXBvY2goKSk7Ci19Ci0KLVRFU1QoUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQsIFZhbGlkQ29udmVyc2lvblVSTHMpCi17Ci0gICAgY29uc3QgVVJMIGNvbnZlcnNpb25V
UkxXaXRob3V0UHJpb3JpdHkgeyB7IH0sICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24v
cHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8yMiJfcyB9OwotICAgIGF1dG8gb3B0aW9uYWxDb252
ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQ29udmVyc2lvblJlcXVlc3Qo
Y29udmVyc2lvblVSTFdpdGhvdXRQcmlvcml0eSk7Ci0gICAgQVNTRVJUX1RSVUUob3B0aW9uYWxD
b252ZXJzaW9uKTsKLSAgICBBU1NFUlRfRVEob3B0aW9uYWxDb252ZXJzaW9uLT5kYXRhLCAodWlu
dDMyX3QpMjIpOwotCi0gICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRob3V0UHJpb3JpdHlN
YXhFbnRyb3B5IHsgeyB9LCAiaHR0cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL3ByaXZhdGUt
Y2xpY2stbWVhc3VyZW1lbnQvNjMiX3MgfTsKLSAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJM
V2l0aG91dFByaW9yaXR5TWF4RW50cm9weSk7Ci0gICAgQVNTRVJUX1RSVUUob3B0aW9uYWxDb252
ZXJzaW9uKTsKLSAgICBBU1NFUlRfRVEob3B0aW9uYWxDb252ZXJzaW9uLT5kYXRhLCAodWludDMy
X3QpNjMpOwotICAgIAotICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aG91dFByaW9yaXR5
QW5kTGVhZGluZ1plcm8geyB7IH0sICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vcHJp
dmF0ZS1jbGljay1tZWFzdXJlbWVudC8wMiJfcyB9OwotICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9
IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNp
b25VUkxXaXRob3V0UHJpb3JpdHlBbmRMZWFkaW5nWmVybyk7Ci0gICAgQVNTRVJUX1RSVUUob3B0
aW9uYWxDb252ZXJzaW9uKTsKLSAgICBBU1NFUlRfRVEob3B0aW9uYWxDb252ZXJzaW9uLT5kYXRh
LCAodWludDMyX3QpMik7Ci0KLSAgICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhQcmlvcml0
eSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1l
YXN1cmVtZW50LzIyLzEyIl9zIH07Ci0gICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhQ
cmlvcml0eSk7Ci0gICAgQVNTRVJUX1RSVUUob3B0aW9uYWxDb252ZXJzaW9uKTsKLSAgICBBU1NF
UlRfRVEob3B0aW9uYWxDb252ZXJzaW9uLT5kYXRhLCAodWludDMyX3QpMjIpOwotICAgIEFTU0VS
VF9FUShvcHRpb25hbENvbnZlcnNpb24tPnByaW9yaXR5LCAodWludDMyX3QpMTIpOwotCi0gICAg
Y29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoUHJpb3JpdHlNYXhFbnRyb3B5IHsgeyB9LCAiaHR0
cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvNjMv
NjMiX3MgfTsKLSAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aFByaW9yaXR5TWF4RW50
cm9weSk7Ci0gICAgQVNTRVJUX1RSVUUob3B0aW9uYWxDb252ZXJzaW9uKTsKLSAgICBBU1NFUlRf
RVEob3B0aW9uYWxDb252ZXJzaW9uLT5kYXRhLCAodWludDMyX3QpNjMpOwotICAgIEFTU0VSVF9F
UShvcHRpb25hbENvbnZlcnNpb24tPnByaW9yaXR5LCAodWludDMyX3QpNjMpOwotICAgIAotICAg
IGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aFByaW9yaXR5QW5kTGVhZGluZ1plcm8geyB7IH0s
ICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVu
dC8yMi8wMiJfcyB9OwotICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoUHJpb3JpdHlB
bmRMZWFkaW5nWmVybyk7Ci0gICAgQVNTRVJUX1RSVUUob3B0aW9uYWxDb252ZXJzaW9uKTsKLSAg
ICBBU1NFUlRfRVEob3B0aW9uYWxDb252ZXJzaW9uLT5kYXRhLCAodWludDMyX3QpMjIpOwotICAg
IEFTU0VSVF9FUShvcHRpb25hbENvbnZlcnNpb24tPnByaW9yaXR5LCAodWludDMyX3QpMik7Ci19
Ci0KLS8vIE5lZ2F0aXZlIHRlc3QgY2FzZXMuCi0KLVRFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQsIEludmFsaWRDYW1wYWlnbklkKQotewotICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50IGF0
dHJpYnV0aW9uIHsgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNhbXBhaWduKFByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpNYXhFbnRyb3B5ICsgMSksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpT
b3VyY2UgeyB3ZWJLaXRVUkwgfSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9u
IHsgZXhhbXBsZVVSTCB9IH07Ci0gICAgYXR0cmlidXRpb24uY29udmVydEFuZEdldEVhcmxpZXN0
VGltZVRvU2VuZChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q29udmVyc2lvbihQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6TWF4RW50cm9weSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlByaW9y
aXR5KFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpNYXhFbnRyb3B5KSkpOwotCi0gICAgQVNTRVJU
X1RSVUUoYXR0cmlidXRpb24ucmVwb3J0VVJMKCkuaXNFbXB0eSgpKTsKLX0KLQotVEVTVChQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCwgSW52YWxpZFNvdXJjZUhvc3QpCi17Ci0gICAgUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQgYXR0cmlidXRpb24geyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q2Ft
cGFpZ24oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Ok1heEVudHJvcHkpLCBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudDo6U291cmNlIHsgZW1wdHlVUkwgfSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OkRlc3RpbmF0aW9uIHsgZXhhbXBsZVVSTCB9IH07Ci0gICAgYXR0cmlidXRpb24uY29udmVydEFu
ZEdldEVhcmxpZXN0VGltZVRvU2VuZChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q29udmVyc2lv
bihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6TWF4RW50cm9weSwgUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OlByaW9yaXR5KFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpNYXhFbnRyb3B5KSkpOwot
Ci0gICAgQVNTRVJUX1RSVUUoYXR0cmlidXRpb24ucmVwb3J0VVJMKCkuaXNFbXB0eSgpKTsKLX0K
LQotVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgSW52YWxpZERlc3RpbmF0aW9uSG9zdCkK
LXsKLSAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB7IFByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpDYW1wYWlnbihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6TWF4RW50cm9w
eSArIDEpLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlIHsgd2ViS2l0VVJMIH0sIFBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbiB7IGVtcHR5VVJMIH0gfTsKLSAgICBh
dHRyaWJ1dGlvbi5jb252ZXJ0QW5kR2V0RWFybGllc3RUaW1lVG9TZW5kKFByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpDb252ZXJzaW9uKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpNYXhFbnRyb3B5
LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UHJpb3JpdHkoUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6Ok1heEVudHJvcHkpKSk7Ci0KLSAgICBBU1NFUlRfVFJVRShhdHRyaWJ1dGlvbi5yZXBvcnRV
UkwoKS5pc0VtcHR5KCkpOwotfQotCi1URVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBJbnZh
bGlkQ29udmVyc2lvbkRhdGEpCi17Ci0gICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgYXR0cmli
dXRpb24geyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q2FtcGFpZ24oUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6Ok1heEVudHJvcHkpLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlIHsg
d2ViS2l0VVJMIH0sIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpEZXN0aW5hdGlvbiB7IGV4YW1w
bGVVUkwgfSB9OwotICAgIGF0dHJpYnV0aW9uLmNvbnZlcnRBbmRHZXRFYXJsaWVzdFRpbWVUb1Nl
bmQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkNvbnZlcnNpb24oKFByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpNYXhFbnRyb3B5ICsgMSksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQcmlvcml0
eShQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6TWF4RW50cm9weSkpKTsKLQotICAgIEFTU0VSVF9U
UlVFKGF0dHJpYnV0aW9uLnJlcG9ydFVSTCgpLmlzRW1wdHkoKSk7Ci19Ci0KLVRFU1QoUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQsIEludmFsaWRQcmlvcml0eSkKLXsKLSAgICBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB7IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpDYW1wYWln
bihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6TWF4RW50cm9weSksIFByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpTb3VyY2UgeyB3ZWJLaXRVUkwgfSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkRl
c3RpbmF0aW9uIHsgZXhhbXBsZVVSTCB9IH07Ci0gICAgYXR0cmlidXRpb24uY29udmVydEFuZEdl
dEVhcmxpZXN0VGltZVRvU2VuZChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6Q29udmVyc2lvbihQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6TWF4RW50cm9weSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OlByaW9yaXR5KFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpNYXhFbnRyb3B5ICsgMSkpKTsK
LQotICAgIEFTU0VSVF9UUlVFKGF0dHJpYnV0aW9uLnJlcG9ydFVSTCgpLmlzRW1wdHkoKSk7Ci19
Ci0KLVRFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIEludmFsaWRNaXNzaW5nQ29udmVyc2lv
bikKLXsKLSAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB7IFByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpDYW1wYWlnbihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6TWF4RW50
cm9weSksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2UgeyB3ZWJLaXRVUkwgfSwgUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkRlc3RpbmF0aW9uIHsgZXhhbXBsZVVSTCB9IH07Ci0KLSAg
ICBBU1NFUlRfVFJVRShhdHRyaWJ1dGlvbi5yZXBvcnRVUkwoKS5pc0VtcHR5KCkpOwotICAgIEFT
U0VSVF9GQUxTRShhdHRyaWJ1dGlvbi5lYXJsaWVzdFRpbWVUb1NlbmQoKSk7Ci19Ci0KLVRFU1Qo
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIEludmFsaWRDb252ZXJzaW9uVVJMcykKLXsKLSAgICBj
b25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhTaW5nbGVEaWdpdENvbnZlcnNpb25EYXRhIHsgeyB9
LCAiaHR0cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1l
bnQvMiJfcyB9OwotICAgIGF1dG8gb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhTaW5nbGVE
aWdpdENvbnZlcnNpb25EYXRhKTsKLSAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9u
KTsKLSAgICAKLSAgICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhOb25OdW1lcmFsQ29udmVy
c2lvbkRhdGEgeyB7IH0sICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0ZS1j
bGljay1tZWFzdXJlbWVudC8ycyJfcyB9OwotICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxX
aXRoTm9uTnVtZXJhbENvbnZlcnNpb25EYXRhKTsKLSAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxD
b252ZXJzaW9uKTsKLQotICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aE5lZ2F0aXZlQ29u
dmVyc2lvbkRhdGEgeyB7IH0sICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0
ZS1jbGljay1tZWFzdXJlbWVudC8tMiJfcyB9OwotICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25V
UkxXaXRoTmVnYXRpdmVDb252ZXJzaW9uRGF0YSk7Ci0gICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFs
Q29udmVyc2lvbik7Ci0KLSAgICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhUb29MYXJnZUNv
bnZlcnNpb25EYXRhIHsgeyB9LCAiaHR0cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL3ByaXZh
dGUtY2xpY2stbWVhc3VyZW1lbnQvNjQiX3MgfTsKLSAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9u
VVJMV2l0aFRvb0xhcmdlQ29udmVyc2lvbkRhdGEpOwotICAgIEFTU0VSVF9GQUxTRShvcHRpb25h
bENvbnZlcnNpb24pOwotCi0gICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoU2luZ2xlRGln
aXRQcmlvcml0eSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRl
LWNsaWNrLW1lYXN1cmVtZW50LzIyLzIiX3MgfTsKLSAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9u
VVJMV2l0aFNpbmdsZURpZ2l0UHJpb3JpdHkpOwotICAgIEFTU0VSVF9GQUxTRShvcHRpb25hbENv
bnZlcnNpb24pOwotICAgIAotICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aE5vbk51bWVy
YWxQcmlvcml0eSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRl
LWNsaWNrLW1lYXN1cmVtZW50LzIyLzJzIl9zIH07Ci0gICAgb3B0aW9uYWxDb252ZXJzaW9uID0g
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lv
blVSTFdpdGhOb25OdW1lcmFsUHJpb3JpdHkpOwotICAgIEFTU0VSVF9GQUxTRShvcHRpb25hbENv
bnZlcnNpb24pOwotICAgIAotICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aE5lZ2F0aXZl
UHJpb3JpdHkgeyB7IH0sICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0ZS1j
bGljay1tZWFzdXJlbWVudC8yMi8tMiJfcyB9OwotICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25V
UkxXaXRoTmVnYXRpdmVQcmlvcml0eSk7Ci0gICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVy
c2lvbik7Ci0gICAgCi0gICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoVG9vTGFyZ2VQcmlv
cml0eSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNr
LW1lYXN1cmVtZW50LzIyLzY0Il9zIH07Ci0gICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdp
dGhUb29MYXJnZVByaW9yaXR5KTsKLSAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9u
KTsKLQotICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aFRvb0xhcmdlQ29udmVyc2lvbkRh
dGFBbmRQcmlvcml0eSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2
YXRlLWNsaWNrLW1lYXN1cmVtZW50LzY0LzIyIl9zIH07Ci0gICAgb3B0aW9uYWxDb252ZXJzaW9u
ID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVy
c2lvblVSTFdpdGhUb29MYXJnZUNvbnZlcnNpb25EYXRhQW5kUHJpb3JpdHkpOwotICAgIEFTU0VS
VF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOwotCi0gICAgY29uc3QgVVJMIGNvbnZlcnNpb25V
UkxXaXRoVG9vTGFyZ2VDb252ZXJzaW9uRGF0YUFuZFRvb0xhcmdlUHJpb3JpdHkgeyB7IH0sICJo
dHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC82
NC82NCJfcyB9OwotICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoVG9vTGFyZ2VDb252
ZXJzaW9uRGF0YUFuZFRvb0xhcmdlUHJpb3JpdHkpOwotICAgIEFTU0VSVF9GQUxTRShvcHRpb25h
bENvbnZlcnNpb24pOwotCi0gICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoRXh0cmFMZWFk
aW5nU2xhc2ggPSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRl
LWNsaWNrLW1lYXN1cmVtZW50Ly8yMi8xMiJfcyB9OwotICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9
IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNp
b25VUkxXaXRoRXh0cmFMZWFkaW5nU2xhc2gpOwotICAgIEFTU0VSVF9GQUxTRShvcHRpb25hbENv
bnZlcnNpb24pOwotCi0gICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoRXh0cmFUcmFpbGlu
Z1NsYXNoID0geyB7IH0sICJodHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0ZS1j
bGljay1tZWFzdXJlbWVudC8yMi8xMi8iX3MgfTsKLSAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9u
VVJMV2l0aEV4dHJhVHJhaWxpbmdTbGFzaCk7Ci0gICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29u
dmVyc2lvbik7Ci0KLSAgICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhUcmFpbGluZ1F1ZXN0
aW9uTWFyayA9IHsgeyB9LCAiaHR0cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL3ByaXZhdGUt
Y2xpY2stbWVhc3VyZW1lbnQvMjIvMTI/Il9zIH07Ci0gICAgb3B0aW9uYWxDb252ZXJzaW9uID0g
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lv
blVSTFdpdGhUcmFpbGluZ1F1ZXN0aW9uTWFyayk7Ci0gICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFs
Q29udmVyc2lvbik7Ci19Ci0KLVRFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIEludmFsaWRD
b252ZXJzaW9uV2l0aERpc2FsbG93ZWRVUkxDb21wb25lbnRzKQotewotICAgIC8vIFByb3RvY29s
LgotICAgIGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aEh0dHBQcm90b2NvbCB7IHsgfSwgImh0
dHA6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvMiJf
cyB9OwotICAgIGF1dG8gb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhIdHRwUHJvdG9jb2wp
OwotICAgIEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOwotCi0gICAgY29uc3QgVVJM
IGNvbnZlcnNpb25VUkxXaXRoV3NzUHJvdG9jb2wgeyB7IH0sICJ3c3M6Ly93ZWJraXQub3JnLy53
ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvMiJfcyB9OwotICAgIG9wdGlvbmFs
Q29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUNvbnZlcnNpb25SZXF1
ZXN0KGNvbnZlcnNpb25VUkxXaXRoV3NzUHJvdG9jb2wpOwotICAgIEFTU0VSVF9GQUxTRShvcHRp
b25hbENvbnZlcnNpb24pOwotCi0gICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoRmlsZVBy
b3RvY29sIHsgeyB9LCAiZmlsZTovLy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVt
ZW50LzIiX3MgfTsKLSAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0aEZpbGVQcm90b2Nv
bCk7Ci0gICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lvbik7Ci0KLSAgICAvLyBVc2Vy
bmFtZSBhbmQgcGFzc3dvcmQuCi0gICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoVXNlck5h
bWUgeyB7IH0sICJodHRwczovL3VzZXJAd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRlLWNs
aWNrLW1lYXN1cmVtZW50LzIiX3MgfTsKLSAgICBvcHRpb25hbENvbnZlcnNpb24gPSBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6cGFyc2VDb252ZXJzaW9uUmVxdWVzdChjb252ZXJzaW9uVVJMV2l0
aFVzZXJOYW1lKTsKLSAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKLQotICAg
IGNvbnN0IFVSTCBjb252ZXJzaW9uVVJMV2l0aFBhc3N3b3JkID0geyB7IH0sICJodHRwczovLzpw
d2RAd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LzIyLzEy
PyJfcyB9OwotICAgIG9wdGlvbmFsQ29udmVyc2lvbiA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZlcnNpb25VUkxXaXRoUGFzc3dvcmQpOwotICAg
IEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZlcnNpb24pOwotCi0gICAgY29uc3QgVVJMIGNvbnZl
cnNpb25VUkxXaXRoVXNlcm5hbWVBbmRQYXNzd29yZCA9IHsgeyB9LCAiaHR0cHM6Ly91c2VyOnB3
ZEB3ZWJraXQub3JnLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvMjIvMTI/
Il9zIH07Ci0gICAgb3B0aW9uYWxDb252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lvblVSTFdpdGhVc2VybmFtZUFuZFBhc3N3
b3JkKTsKLSAgICBBU1NFUlRfRkFMU0Uob3B0aW9uYWxDb252ZXJzaW9uKTsKLQotICAgIC8vIFF1
ZXJ5IHN0cmluZy4KLSAgICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhUcmFpbGluZ1F1ZXN0
aW9uTWFyayA9IHsgeyB9LCAiaHR0cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL3ByaXZhdGUt
Y2xpY2stbWVhc3VyZW1lbnQvMjIvMTI/Il9zIH07Ci0gICAgb3B0aW9uYWxDb252ZXJzaW9uID0g
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVyc2lv
blVSTFdpdGhUcmFpbGluZ1F1ZXN0aW9uTWFyayk7Ci0gICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFs
Q29udmVyc2lvbik7Ci0KLSAgICBjb25zdCBVUkwgY29udmVyc2lvblVSTFdpdGhRdWVyeVN0cmlu
ZyA9IHsgeyB9LCAiaHR0cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2st
bWVhc3VyZW1lbnQvMjIvMTI/ZXh0cmE9ZGF0YSJfcyB9OwotICAgIG9wdGlvbmFsQ29udmVyc2lv
biA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUNvbnZlcnNpb25SZXF1ZXN0KGNvbnZl
cnNpb25VUkxXaXRoUXVlcnlTdHJpbmcpOwotICAgIEFTU0VSVF9GQUxTRShvcHRpb25hbENvbnZl
cnNpb24pOwotICAgIAotICAgIC8vIEZyYWdtZW50LgotICAgIGNvbnN0IFVSTCBjb252ZXJzaW9u
VVJMV2l0aFRyYWlsaW5nSGFzaCA9IHsgeyB9LCAiaHR0cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtu
b3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvMjIvMTIjIl9zIH07Ci0gICAgb3B0aW9uYWxD
b252ZXJzaW9uID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQ29udmVyc2lvblJlcXVl
c3QoY29udmVyc2lvblVSTFdpdGhUcmFpbGluZ0hhc2gpOwotICAgIEFTU0VSVF9GQUxTRShvcHRp
b25hbENvbnZlcnNpb24pOwotCi0gICAgY29uc3QgVVJMIGNvbnZlcnNpb25VUkxXaXRoRnJhZ21l
bnQgPSB7IHsgfSwgImh0dHBzOi8vd2Via2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNr
LW1lYXN1cmVtZW50LzIyLzEyI2ZyYWdtZW50Il9zIH07Ci0gICAgb3B0aW9uYWxDb252ZXJzaW9u
ID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQ29udmVyc2lvblJlcXVlc3QoY29udmVy
c2lvblVSTFdpdGhGcmFnbWVudCk7Ci0gICAgQVNTRVJUX0ZBTFNFKG9wdGlvbmFsQ29udmVyc2lv
bik7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5u
ZXIuaWRsCmluZGV4IGZlODUzOWYzNTE4ZmU2NTcwZDc0MzU4ZGE3NzAwNGFlMDliZjljZGQuLjU1
MTYyZmYzNDNkMjVmNjkwNmMzOTI3NmZkNWE4OTFlZGYyOWI4NjkgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwK
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0
UnVubmVyLmlkbApAQCAtNjYsNyArNjYsNyBAQCBpbnRlcmZhY2UgVGVzdFJ1bm5lciB7CiAgICAg
dW5kZWZpbmVkIGR1bXBET01Bc1dlYkFyY2hpdmUoKTsKICAgICB1bmRlZmluZWQgZHVtcFBvbGlj
eURlbGVnYXRlQ2FsbGJhY2tzKCk7CiAgICAgdW5kZWZpbmVkIGR1bXBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzKCk7Ci0gICAgdW5kZWZpbmVkIGR1bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpOwor
ICAgIHVuZGVmaW5lZCBkdW1wQWRDbGlja0F0dHJpYnV0aW9uKCk7CiAKICAgICB1bmRlZmluZWQg
Y2xlYXJET01DYWNoZXMoKTsKICAgICB1bmRlZmluZWQgY2xlYXJET01DYWNoZShET01TdHJpbmcg
b3JpZ2luKTsKQEAgLTM5NywxMCArMzk3LDEwIEBAIGludGVyZmFjZSBUZXN0UnVubmVyIHsKICAg
ICB1bmRlZmluZWQgY2xlYW5VcEtleWNoYWluKERPTVN0cmluZyBhdHRyTGFiZWwsIG9wdGlvbmFs
IERPTVN0cmluZyBhcHBsaWNhdGlvbkxhYmVsQmFzZTY0KTsKICAgICBib29sZWFuIGtleUV4aXN0
c0luS2V5Y2hhaW4oRE9NU3RyaW5nIGF0dHJMYWJlbCwgRE9NU3RyaW5nIGFwcGxpY2F0aW9uTGFi
ZWxCYXNlNjQpOwogCi0gICAgLy8gUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudAotICAgIHVuZGVm
aW5lZCBjbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50KCk7Ci0gICAgdW5kZWZpbmVkIGNsZWFy
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbCgpOwotICAg
IHVuZGVmaW5lZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0
aW5nKGJvb2xlYW4gdmFsdWUpOwotICAgIHVuZGVmaW5lZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKERPTVN0cmluZyB1cmwpOwotICAgIHVuZGVmaW5l
ZCBtYXJrUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZygpOworICAg
IC8vIEFkIENsaWNrIEF0dHJpYnV0aW9uCisgICAgdW5kZWZpbmVkIGNsZWFyQWRDbGlja0F0dHJp
YnV0aW9uKCk7CisgICAgdW5kZWZpbmVkIGNsZWFyQWRDbGlja0F0dHJpYnV0aW9uc1Rocm91Z2hX
ZWJzaXRlRGF0YVJlbW92YWwoKTsKKyAgICB1bmRlZmluZWQgc2V0QWRDbGlja0F0dHJpYnV0aW9u
T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcoYm9vbGVhbiB2YWx1ZSk7CisgICAgdW5kZWZpbmVkIHNl
dEFkQ2xpY2tBdHRyaWJ1dGlvbkNvbnZlcnNpb25VUkxGb3JUZXN0aW5nKERPTVN0cmluZyB1cmwp
OworICAgIHVuZGVmaW5lZCBtYXJrQWRDbGlja0F0dHJpYnV0aW9uc0FzRXhwaXJlZEZvclRlc3Rp
bmcoKTsKIH07CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9UZXN0UnVubmVyLmNwcAppbmRleCAwNzdlMjJiMzY2NzU2MDI0MTQ2ODA3NjU3MmE1NjEzNzgw
YWIyNjc4Li45MzQ3ZjgxODRmZWJlMjVkMzNmOTQxYTQ0ZjkyYzc2ZjdmNWU2YTdkIDEwMDY0NAot
LS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3Bw
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5j
cHAKQEAgLTE5OTUsMzUgKzE5OTUsMzUgQEAgdm9pZCBUZXN0UnVubmVyOjphYm9ydE1vZGFsKCkK
ICAgICBwb3N0U3luY2hyb25vdXNNZXNzYWdlKCJBYm9ydE1vZGFsIik7CiB9CiAKLXZvaWQgVGVz
dFJ1bm5lcjo6ZHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50KCkKK3ZvaWQgVGVzdFJ1bm5lcjo6
ZHVtcEFkQ2xpY2tBdHRyaWJ1dGlvbigpCiB7Ci0gICAgcG9zdFN5bmNocm9ub3VzUGFnZU1lc3Nh
Z2UoIkR1bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCIpOworICAgIHBvc3RTeW5jaHJvbm91c1Bh
Z2VNZXNzYWdlKCJEdW1wQWRDbGlja0F0dHJpYnV0aW9uIik7CiB9CiAKLXZvaWQgVGVzdFJ1bm5l
cjo6Y2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpCit2b2lkIFRlc3RSdW5uZXI6OmNsZWFy
QWRDbGlja0F0dHJpYnV0aW9uKCkKIHsKLSAgICBwb3N0U3luY2hyb25vdXNQYWdlTWVzc2FnZSgi
Q2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCIpOworICAgIHBvc3RTeW5jaHJvbm91c1BhZ2VN
ZXNzYWdlKCJDbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbiIpOwogfQogCi12b2lkIFRlc3RSdW5uZXI6
OmNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbCgp
Cit2b2lkIFRlc3RSdW5uZXI6OmNsZWFyQWRDbGlja0F0dHJpYnV0aW9uc1Rocm91Z2hXZWJzaXRl
RGF0YVJlbW92YWwoKQogewotICAgIHBvc3RTeW5jaHJvbm91c01lc3NhZ2UoIkNsZWFyUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRzVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbCIpOworICAgIHBvc3RT
eW5jaHJvbm91c01lc3NhZ2UoIkNsZWFyQWRDbGlja0F0dHJpYnV0aW9uc1Rocm91Z2hXZWJzaXRl
RGF0YVJlbW92YWwiKTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKGJvb2wgdmFsdWUpCit2b2lkIFRlc3RSdW5u
ZXI6OnNldEFkQ2xpY2tBdHRyaWJ1dGlvbk92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKGJvb2wgdmFs
dWUpCiB7Ci0gICAgcG9zdFN5bmNocm9ub3VzUGFnZU1lc3NhZ2UoIlNldFByaXZhdGVDbGlja01l
YXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmciLCB2YWx1ZSk7CisgICAgcG9zdFN5bmNo
cm9ub3VzUGFnZU1lc3NhZ2UoIlNldEFkQ2xpY2tBdHRyaWJ1dGlvbk92ZXJyaWRlVGltZXJGb3JU
ZXN0aW5nIiwgdmFsdWUpOwogfQogCi12b2lkIFRlc3RSdW5uZXI6OnNldFByaXZhdGVDbGlja01l
YXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcoSlNTdHJpbmdSZWYgdXJsU3RyaW5nKQor
dm9pZCBUZXN0UnVubmVyOjpzZXRBZENsaWNrQXR0cmlidXRpb25Db252ZXJzaW9uVVJMRm9yVGVz
dGluZyhKU1N0cmluZ1JlZiB1cmxTdHJpbmcpCiB7Ci0gICAgcG9zdFN5bmNocm9ub3VzUGFnZU1l
c3NhZ2UoIlNldFByaXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3Rpbmci
LAorICAgIHBvc3RTeW5jaHJvbm91c1BhZ2VNZXNzYWdlKCJTZXRBZENsaWNrQXR0cmlidXRpb25D
b252ZXJzaW9uVVJMRm9yVGVzdGluZyIsCiAgICAgICAgIGFkb3B0V0soV0tVUkxDcmVhdGVXaXRo
VVRGOENTdHJpbmcodG9XVEZTdHJpbmcodXJsU3RyaW5nKS51dGY4KCkuZGF0YSgpKSkpOwogfQog
Ci12b2lkIFRlc3RSdW5uZXI6Om1hcmtQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRG
b3JUZXN0aW5nKCkKK3ZvaWQgVGVzdFJ1bm5lcjo6bWFya0FkQ2xpY2tBdHRyaWJ1dGlvbnNBc0V4
cGlyZWRGb3JUZXN0aW5nKCkKIHsKLSAgICBwb3N0U3luY2hyb25vdXNQYWdlTWVzc2FnZSgiTWFy
a1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmciKTsKKyAgICBwb3N0
U3luY2hyb25vdXNQYWdlTWVzc2FnZSgiTWFya0FkQ2xpY2tBdHRyaWJ1dGlvbnNBc0V4cGlyZWRG
b3JUZXN0aW5nIik7CiB9CiAKIGJvb2wgVGVzdFJ1bm5lcjo6aGFzQXBwQm91bmRTZXNzaW9uKCkK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1
bm5lci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVy
LmgKaW5kZXggMTRlNTNjNTEzYTI5MmIxYTAwM2NlZmQyMzUzN2I2MDk0ODhhN2FkYS4uMGJkM2Ew
OWUzMmQ3MWIzNTE2ZTRmOGUwNWJlYTIyYWY5OTRiMWQyMyAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKQEAgLTUwNywxMyArNTA3
LDEzIEBAIHB1YmxpYzoKIAogICAgIHVuc2lnbmVkIGxvbmcgc2VydmVyVHJ1c3RFdmFsdWF0aW9u
Q2FsbGJhY2tDYWxsc0NvdW50KCk7CiAKLSAgICAvLyBQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50
LgotICAgIHZvaWQgZHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50KCk7Ci0gICAgdm9pZCBjbGVh
clByaXZhdGVDbGlja01lYXN1cmVtZW50KCk7Ci0gICAgdm9pZCBjbGVhclByaXZhdGVDbGlja01l
YXN1cmVtZW50c1Rocm91Z2hXZWJzaXRlRGF0YVJlbW92YWwoKTsKLSAgICB2b2lkIHNldFByaXZh
dGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3RpbmcoYm9vbCB2YWx1ZSk7Ci0g
ICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5n
KEpTU3RyaW5nUmVmKTsKLSAgICB2b2lkIG1hcmtQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4
cGlyZWRGb3JUZXN0aW5nKCk7CisgICAgLy8gQWQgQ2xpY2sgQXR0cmlidXRpb24uCisgICAgdm9p
ZCBkdW1wQWRDbGlja0F0dHJpYnV0aW9uKCk7CisgICAgdm9pZCBjbGVhckFkQ2xpY2tBdHRyaWJ1
dGlvbigpOworICAgIHZvaWQgY2xlYXJBZENsaWNrQXR0cmlidXRpb25zVGhyb3VnaFdlYnNpdGVE
YXRhUmVtb3ZhbCgpOworICAgIHZvaWQgc2V0QWRDbGlja0F0dHJpYnV0aW9uT3ZlcnJpZGVUaW1l
ckZvclRlc3RpbmcoYm9vbCB2YWx1ZSk7CisgICAgdm9pZCBzZXRBZENsaWNrQXR0cmlidXRpb25D
b252ZXJzaW9uVVJMRm9yVGVzdGluZyhKU1N0cmluZ1JlZik7CisgICAgdm9pZCBtYXJrQWRDbGlj
a0F0dHJpYnV0aW9uc0FzRXhwaXJlZEZvclRlc3RpbmcoKTsKIAogcHJpdmF0ZToKICAgICBUZXN0
UnVubmVyKCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4
IDE2YWQxN2UyNGJhM2ViMWRlNzczNzllZmI4NTI0Yjg2NmUzYzdiNjcuLmU0YWFmMzhiNThiYzJk
ZjA1NjBjNTI5MGYxYWQ4ZjRkNGRmYjM1NWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dENvbnRyb2xsZXIuY3BwCkBAIC0xMDQ2LDcgKzEwNDYsNyBAQCBib29sIFRlc3RDb250cm9sbGVy
OjpyZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKGNvbnN0IFRlc3RPcHRpb25zJiBvcHRpb25z
LCBSZQogICAgIHN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKCk7CiAgICAgY2xlYXJM
b2FkZWRTdWJyZXNvdXJjZURvbWFpbnMoKTsKICAgICBjbGVhckFwcEJvdW5kU2Vzc2lvbigpOwot
ICAgIGNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKKyAgICBjbGVhckFkQ2xpY2tBdHRy
aWJ1dGlvbigpOwogCiAgICAgV0tQYWdlRGlzcGF0Y2hBY3Rpdml0eVN0YXRlVXBkYXRlRm9yVGVz
dGluZyhtX21haW5XZWJWaWV3LT5wYWdlKCkpOwogCkBAIC0zNTA4LDM1ICszNTA4LDM1IEBAIHZv
aWQgVGVzdENvbnRyb2xsZXI6OnNldFNlcnZpY2VXb3JrZXJGZXRjaFRpbWVvdXRGb3JUZXN0aW5n
KGRvdWJsZSBzZWNvbmRzKQogICAgIFdLV2Vic2l0ZURhdGFTdG9yZVNldFNlcnZpY2VXb3JrZXJG
ZXRjaFRpbWVvdXRGb3JUZXN0aW5nKHdlYnNpdGVEYXRhU3RvcmUoKSwgc2Vjb25kcyk7CiB9CiAK
LXN0cnVjdCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0cmluZ1Jlc3VsdENhbGxiYWNrQ29udGV4
dCB7Ci0gICAgZXhwbGljaXQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdHJpbmdSZXN1bHRDYWxs
YmFja0NvbnRleHQoVGVzdENvbnRyb2xsZXImIGNvbnRyb2xsZXIpCitzdHJ1Y3QgQWRDbGlja0F0
dHJpYnV0aW9uU3RyaW5nUmVzdWx0Q2FsbGJhY2tDb250ZXh0IHsKKyAgICBleHBsaWNpdCBBZENs
aWNrQXR0cmlidXRpb25TdHJpbmdSZXN1bHRDYWxsYmFja0NvbnRleHQoVGVzdENvbnRyb2xsZXIm
IGNvbnRyb2xsZXIpCiAgICAgICAgIDogdGVzdENvbnRyb2xsZXIoY29udHJvbGxlcikKICAgICB7
CiAgICAgfQogICAgIAogICAgIFRlc3RDb250cm9sbGVyJiB0ZXN0Q29udHJvbGxlcjsKICAgICBi
b29sIGRvbmUgeyBmYWxzZSB9OwotICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBwcml2YXRl
Q2xpY2tNZWFzdXJlbWVudFJlcHJlc2VudGF0aW9uOworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5n
UmVmPiBhZENsaWNrQXR0cmlidXRpb25SZXByZXNlbnRhdGlvbjsKIH07CiAKLXN0YXRpYyB2b2lk
IHByaXZhdGVDbGlja01lYXN1cmVtZW50U3RyaW5nUmVzdWx0Q2FsbGJhY2soV0tTdHJpbmdSZWYg
cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRSZXByZXNlbnRhdGlvbiwgdm9pZCogdXNlckRhdGEpCitz
dGF0aWMgdm9pZCBhZENsaWNrQXR0cmlidXRpb25TdHJpbmdSZXN1bHRDYWxsYmFjayhXS1N0cmlu
Z1JlZiBhZENsaWNrQXR0cmlidXRpb25SZXByZXNlbnRhdGlvbiwgdm9pZCogdXNlckRhdGEpCiB7
Ci0gICAgYXV0byogY29udGV4dCA9IHN0YXRpY19jYXN0PFByaXZhdGVDbGlja01lYXN1cmVtZW50
U3RyaW5nUmVzdWx0Q2FsbGJhY2tDb250ZXh0Kj4odXNlckRhdGEpOwotICAgIGNvbnRleHQtPnBy
aXZhdGVDbGlja01lYXN1cmVtZW50UmVwcmVzZW50YXRpb24gPSBwcml2YXRlQ2xpY2tNZWFzdXJl
bWVudFJlcHJlc2VudGF0aW9uOworICAgIGF1dG8qIGNvbnRleHQgPSBzdGF0aWNfY2FzdDxBZENs
aWNrQXR0cmlidXRpb25TdHJpbmdSZXN1bHRDYWxsYmFja0NvbnRleHQqPih1c2VyRGF0YSk7Cisg
ICAgY29udGV4dC0+YWRDbGlja0F0dHJpYnV0aW9uUmVwcmVzZW50YXRpb24gPSBhZENsaWNrQXR0
cmlidXRpb25SZXByZXNlbnRhdGlvbjsKICAgICBjb250ZXh0LT5kb25lID0gdHJ1ZTsKICAgICBj
b250ZXh0LT50ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CiB9CiAKLVN0cmluZyBUZXN0Q29u
dHJvbGxlcjo6ZHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50KCkKK1N0cmluZyBUZXN0Q29udHJv
bGxlcjo6ZHVtcEFkQ2xpY2tBdHRyaWJ1dGlvbigpCiB7Ci0gICAgUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRTdHJpbmdSZXN1bHRDYWxsYmFja0NvbnRleHQgY2FsbGJhY2tDb250ZXh0KCp0aGlzKTsK
LSAgICBXS1BhZ2VEdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQobV9tYWluV2ViVmlldy0+cGFn
ZSgpLCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0cmluZ1Jlc3VsdENhbGxiYWNrLCAmY2FsbGJh
Y2tDb250ZXh0KTsKKyAgICBBZENsaWNrQXR0cmlidXRpb25TdHJpbmdSZXN1bHRDYWxsYmFja0Nv
bnRleHQgY2FsbGJhY2tDb250ZXh0KCp0aGlzKTsKKyAgICBXS1BhZ2VEdW1wQWRDbGlja0F0dHJp
YnV0aW9uKG1fbWFpbldlYlZpZXctPnBhZ2UoKSwgYWRDbGlja0F0dHJpYnV0aW9uU3RyaW5nUmVz
dWx0Q2FsbGJhY2ssICZjYWxsYmFja0NvbnRleHQpOwogICAgIHJ1blVudGlsKGNhbGxiYWNrQ29u
dGV4dC5kb25lLCBub1RpbWVvdXQpOwotICAgIHJldHVybiB0b1dURlN0cmluZyhjYWxsYmFja0Nv
bnRleHQucHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRSZXByZXNlbnRhdGlvbi5nZXQoKSk7CisgICAg
cmV0dXJuIHRvV1RGU3RyaW5nKGNhbGxiYWNrQ29udGV4dC5hZENsaWNrQXR0cmlidXRpb25SZXBy
ZXNlbnRhdGlvbi5nZXQoKSk7CiB9CiAKLXN0cnVjdCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFZv
aWRDYWxsYmFja0NvbnRleHQgewotICAgIGV4cGxpY2l0IFByaXZhdGVDbGlja01lYXN1cmVtZW50
Vm9pZENhbGxiYWNrQ29udGV4dChUZXN0Q29udHJvbGxlciYgY29udHJvbGxlcikKK3N0cnVjdCBB
ZENsaWNrQXR0cmlidXRpb25Wb2lkQ2FsbGJhY2tDb250ZXh0IHsKKyAgICBleHBsaWNpdCBBZENs
aWNrQXR0cmlidXRpb25Wb2lkQ2FsbGJhY2tDb250ZXh0KFRlc3RDb250cm9sbGVyJiBjb250cm9s
bGVyKQogICAgICAgICA6IHRlc3RDb250cm9sbGVyKGNvbnRyb2xsZXIpCiAgICAgewogICAgIH0K
QEAgLTM1NDUsNDUgKzM1NDUsNDUgQEAgc3RydWN0IFByaXZhdGVDbGlja01lYXN1cmVtZW50Vm9p
ZENhbGxiYWNrQ29udGV4dCB7CiAgICAgYm9vbCBkb25lIHsgZmFsc2UgfTsKIH07CiAKLXN0YXRp
YyB2b2lkIHByaXZhdGVDbGlja01lYXN1cmVtZW50Vm9pZENhbGxiYWNrKHZvaWQqIHVzZXJEYXRh
KQorc3RhdGljIHZvaWQgYWRDbGlja0F0dHJpYnV0aW9uVm9pZENhbGxiYWNrKHZvaWQqIHVzZXJE
YXRhKQogewotICAgIGF1dG8qIGNvbnRleHQgPSBzdGF0aWNfY2FzdDxQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudFZvaWRDYWxsYmFja0NvbnRleHQqPih1c2VyRGF0YSk7CisgICAgYXV0byogY29udGV4
dCA9IHN0YXRpY19jYXN0PEFkQ2xpY2tBdHRyaWJ1dGlvblZvaWRDYWxsYmFja0NvbnRleHQqPih1
c2VyRGF0YSk7CiAgICAgY29udGV4dC0+ZG9uZSA9IHRydWU7CiAgICAgY29udGV4dC0+dGVzdENv
bnRyb2xsZXIubm90aWZ5RG9uZSgpOwogfQogCi12b2lkIFRlc3RDb250cm9sbGVyOjpjbGVhclBy
aXZhdGVDbGlja01lYXN1cmVtZW50KCkKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OmNsZWFyQWRDbGlj
a0F0dHJpYnV0aW9uKCkKIHsKLSAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFZvaWRDYWxsYmFj
a0NvbnRleHQgY2FsbGJhY2tDb250ZXh0KCp0aGlzKTsKLSAgICBXS1BhZ2VDbGVhclByaXZhdGVD
bGlja01lYXN1cmVtZW50KG1fbWFpbldlYlZpZXctPnBhZ2UoKSwgcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRWb2lkQ2FsbGJhY2ssICZjYWxsYmFja0NvbnRleHQpOworICAgIEFkQ2xpY2tBdHRyaWJ1
dGlvblZvaWRDYWxsYmFja0NvbnRleHQgY2FsbGJhY2tDb250ZXh0KCp0aGlzKTsKKyAgICBXS1Bh
Z2VDbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbihtX21haW5XZWJWaWV3LT5wYWdlKCksIGFkQ2xpY2tB
dHRyaWJ1dGlvblZvaWRDYWxsYmFjaywgJmNhbGxiYWNrQ29udGV4dCk7CiAgICAgcnVuVW50aWwo
Y2FsbGJhY2tDb250ZXh0LmRvbmUsIG5vVGltZW91dCk7CiB9CiAKLXZvaWQgVGVzdENvbnRyb2xs
ZXI6OmNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3Zh
bCgpCit2b2lkIFRlc3RDb250cm9sbGVyOjpjbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbnNUaHJvdWdo
V2Vic2l0ZURhdGFSZW1vdmFsKCkKIHsKLSAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFZvaWRD
YWxsYmFja0NvbnRleHQgY2FsbGJhY2tDb250ZXh0KCp0aGlzKTsKLSAgICBXS1dlYnNpdGVEYXRh
U3RvcmVDbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50c1Rocm91Z2hXZWJzaXRlRGF0YVJlbW92
YWwod2Vic2l0ZURhdGFTdG9yZSgpLCAmY2FsbGJhY2tDb250ZXh0LCBwcml2YXRlQ2xpY2tNZWFz
dXJlbWVudFZvaWRDYWxsYmFjayk7CisgICAgQWRDbGlja0F0dHJpYnV0aW9uVm9pZENhbGxiYWNr
Q29udGV4dCBjYWxsYmFja0NvbnRleHQoKnRoaXMpOworICAgIFdLV2Vic2l0ZURhdGFTdG9yZUNs
ZWFyQWRDbGlja0F0dHJpYnV0aW9uc1Rocm91Z2hXZWJzaXRlRGF0YVJlbW92YWwod2Vic2l0ZURh
dGFTdG9yZSgpLCAmY2FsbGJhY2tDb250ZXh0LCBhZENsaWNrQXR0cmlidXRpb25Wb2lkQ2FsbGJh
Y2spOwogICAgIHJ1blVudGlsKGNhbGxiYWNrQ29udGV4dC5kb25lLCBub1RpbWVvdXQpOwogfQog
Ci12b2lkIFRlc3RDb250cm9sbGVyOjpzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRl
VGltZXJGb3JUZXN0aW5nKGJvb2wgdmFsdWUpCit2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRBZENs
aWNrQXR0cmlidXRpb25PdmVycmlkZVRpbWVyRm9yVGVzdGluZyhib29sIHZhbHVlKQogewotICAg
IFByaXZhdGVDbGlja01lYXN1cmVtZW50Vm9pZENhbGxiYWNrQ29udGV4dCBjYWxsYmFja0NvbnRl
eHQoKnRoaXMpOwotICAgIFdLUGFnZVNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVU
aW1lckZvclRlc3RpbmcobV9tYWluV2ViVmlldy0+cGFnZSgpLCB2YWx1ZSwgcHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRWb2lkQ2FsbGJhY2ssICZjYWxsYmFja0NvbnRleHQpOworICAgIEFkQ2xpY2tB
dHRyaWJ1dGlvblZvaWRDYWxsYmFja0NvbnRleHQgY2FsbGJhY2tDb250ZXh0KCp0aGlzKTsKKyAg
ICBXS1BhZ2VTZXRBZENsaWNrQXR0cmlidXRpb25PdmVycmlkZVRpbWVyRm9yVGVzdGluZyhtX21h
aW5XZWJWaWV3LT5wYWdlKCksIHZhbHVlLCBhZENsaWNrQXR0cmlidXRpb25Wb2lkQ2FsbGJhY2ss
ICZjYWxsYmFja0NvbnRleHQpOwogICAgIHJ1blVudGlsKGNhbGxiYWNrQ29udGV4dC5kb25lLCBu
b1RpbWVvdXQpOwogfQogCi12b2lkIFRlc3RDb250cm9sbGVyOjpzZXRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFdLVVJMUmVmIHVybCkKK3ZvaWQgVGVzdENv
bnRyb2xsZXI6OnNldEFkQ2xpY2tBdHRyaWJ1dGlvbkNvbnZlcnNpb25VUkxGb3JUZXN0aW5nKFdL
VVJMUmVmIHVybCkKIHsKLSAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFZvaWRDYWxsYmFja0Nv
bnRleHQgY2FsbGJhY2tDb250ZXh0KCp0aGlzKTsKLSAgICBXS1BhZ2VTZXRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKG1fbWFpbldlYlZpZXctPnBhZ2UoKSwg
dXJsLCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFZvaWRDYWxsYmFjaywgJmNhbGxiYWNrQ29udGV4
dCk7CisgICAgQWRDbGlja0F0dHJpYnV0aW9uVm9pZENhbGxiYWNrQ29udGV4dCBjYWxsYmFja0Nv
bnRleHQoKnRoaXMpOworICAgIFdLUGFnZVNldEFkQ2xpY2tBdHRyaWJ1dGlvbkNvbnZlcnNpb25V
UkxGb3JUZXN0aW5nKG1fbWFpbldlYlZpZXctPnBhZ2UoKSwgdXJsLCBhZENsaWNrQXR0cmlidXRp
b25Wb2lkQ2FsbGJhY2ssICZjYWxsYmFja0NvbnRleHQpOwogICAgIHJ1blVudGlsKGNhbGxiYWNr
Q29udGV4dC5kb25lLCBub1RpbWVvdXQpOwogfQogCi12b2lkIFRlc3RDb250cm9sbGVyOjptYXJr
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZygpCit2b2lkIFRlc3RD
b250cm9sbGVyOjptYXJrQWRDbGlja0F0dHJpYnV0aW9uc0FzRXhwaXJlZEZvclRlc3RpbmcoKQog
ewotICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50Vm9pZENhbGxiYWNrQ29udGV4dCBjYWxsYmFj
a0NvbnRleHQoKnRoaXMpOwotICAgIFdLUGFnZU1hcmtQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNB
c0V4cGlyZWRGb3JUZXN0aW5nKG1fbWFpbldlYlZpZXctPnBhZ2UoKSwgcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRWb2lkQ2FsbGJhY2ssICZjYWxsYmFja0NvbnRleHQpOworICAgIEFkQ2xpY2tBdHRy
aWJ1dGlvblZvaWRDYWxsYmFja0NvbnRleHQgY2FsbGJhY2tDb250ZXh0KCp0aGlzKTsKKyAgICBX
S1BhZ2VNYXJrQWRDbGlja0F0dHJpYnV0aW9uc0FzRXhwaXJlZEZvclRlc3RpbmcobV9tYWluV2Vi
Vmlldy0+cGFnZSgpLCBhZENsaWNrQXR0cmlidXRpb25Wb2lkQ2FsbGJhY2ssICZjYWxsYmFja0Nv
bnRleHQpOwogICAgIHJ1blVudGlsKGNhbGxiYWNrQ29udGV4dC5kb25lLCBub1RpbWVvdXQpOwog
fQogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKaW5kZXggMDkxNWVkOGNm
YjVlYzRjNTc4ZTI4OGE5OTg5NWE0OGIwOWVjNDNkYS4uMzNiNjQ5NGFjNjI0NGI5MmZjYjc4MDlh
NThkNzIwM2M3YzEyNThhOCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
aApAQCAtMzQwLDEyICszNDAsMTIgQEAgcHVibGljOgogCiAgICAgYm9vbCBpc0RvaW5nTWVkaWFD
YXB0dXJlKCkgY29uc3Q7CiAKLSAgICBTdHJpbmcgZHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50
KCk7Ci0gICAgdm9pZCBjbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50KCk7Ci0gICAgdm9pZCBj
bGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50c1Rocm91Z2hXZWJzaXRlRGF0YVJlbW92YWwoKTsK
LSAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3Rp
bmcoYm9vbCB2YWx1ZSk7Ci0gICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZl
cnNpb25VUkxGb3JUZXN0aW5nKFdLVVJMUmVmKTsKLSAgICB2b2lkIG1hcmtQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKCk7CisgICAgU3RyaW5nIGR1bXBBZENsaWNr
QXR0cmlidXRpb24oKTsKKyAgICB2b2lkIGNsZWFyQWRDbGlja0F0dHJpYnV0aW9uKCk7CisgICAg
dm9pZCBjbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbnNUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsKCk7
CisgICAgdm9pZCBzZXRBZENsaWNrQXR0cmlidXRpb25PdmVycmlkZVRpbWVyRm9yVGVzdGluZyhi
b29sIHZhbHVlKTsKKyAgICB2b2lkIHNldEFkQ2xpY2tBdHRyaWJ1dGlvbkNvbnZlcnNpb25VUkxG
b3JUZXN0aW5nKFdLVVJMUmVmKTsKKyAgICB2b2lkIG1hcmtBZENsaWNrQXR0cmlidXRpb25zQXNF
eHBpcmVkRm9yVGVzdGluZygpOwogCiAgICAgdm9pZCBkaWRTZXRBcHBCb3VuZERvbWFpbnMoKSBj
b25zdDsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlv
bi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAppbmRleCBm
MjQ3ZmI1NmEwNTY4M2QyOGZlMzhmNDU5NmQzM2YzYTA4NDdlYjFjLi4xNGMwNGVkMWZhOTM5NGY1
NzJmNjQ5YTkxYjQ3ZWZiMjA2ZWY4NTRlIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJ
bnZvY2F0aW9uLmNwcApAQCAtMjQzLDggKzI0Myw4IEBAIHZvaWQgVGVzdEludm9jYXRpb246OmR1
bXBSZXN1bHRzKCkKICAgICBpZiAobV9zaG91bGREdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGljcykK
ICAgICAgICAgbV90ZXh0T3V0cHV0LmFwcGVuZChtX3NhdmVkUmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy5pc051bGwoKSA/IFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5kdW1wUmVzb3VyY2VMb2Fk
U3RhdGlzdGljcygpIDogbV9zYXZlZFJlc291cmNlTG9hZFN0YXRpc3RpY3MpOwogCi0gICAgaWYg
KG1fc2hvdWxkRHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50KQotICAgICAgICBtX3RleHRPdXRw
dXQuYXBwZW5kKFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5kdW1wUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQoKSk7CisgICAgaWYgKG1fc2hvdWxkRHVtcEFkQ2xpY2tBdHRyaWJ1dGlvbikKKyAg
ICAgICAgbV90ZXh0T3V0cHV0LmFwcGVuZChUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuZHVt
cEFkQ2xpY2tBdHRyaWJ1dGlvbigpKTsKICAgICAKICAgICBpZiAobV90ZXh0T3V0cHV0Lmxlbmd0
aCgpIHx8ICFtX2F1ZGlvUmVzdWx0KQogICAgICAgICBkdW1wKG1fdGV4dE91dHB1dC50b1N0cmlu
ZygpLnV0ZjgoKS5kYXRhKCkpOwpAQCAtMTMwNCwxOCArMTMwNCwxOCBAQCBXS1JldGFpblB0cjxX
S1R5cGVSZWY+IFRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJv
bUluamVjdGVkQgogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAgICBpZiAoV0tT
dHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIkR1bXBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCIpKSB7Ci0gICAgICAgIGR1bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpOwor
ICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiRHVtcEFk
Q2xpY2tBdHRyaWJ1dGlvbiIpKSB7CisgICAgICAgIGR1bXBBZENsaWNrQXR0cmlidXRpb24oKTsK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogICAgIAotICAgIGlmIChXS1N0cmluZ0lz
RXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiQ2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudCIpKSB7Ci0gICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5jbGVhclByaXZh
dGVDbGlja01lYXN1cmVtZW50KCk7CisgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJp
bmcobWVzc2FnZU5hbWUsICJDbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbiIpKSB7CisgICAgICAgIFRl
c3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5jbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbigpOwogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9V
VEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIkNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzVGhy
b3VnaFdlYnNpdGVEYXRhUmVtb3ZhbCIpKSB7Ci0gICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5n
bGV0b24oKS5jbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50c1Rocm91Z2hXZWJzaXRlRGF0YVJl
bW92YWwoKTsKKyAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFt
ZSwgIkNsZWFyQWRDbGlja0F0dHJpYnV0aW9uc1Rocm91Z2hXZWJzaXRlRGF0YVJlbW92YWwiKSkg
eworICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuY2xlYXJBZENsaWNrQXR0cmli
dXRpb25zVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbCgpOwogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICB9CiAgICAgCkBAIC0xMzI0LDE5ICsxMzI0LDE5IEBAIFdLUmV0YWluUHRyPFdLVHlw
ZVJlZj4gVGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5q
ZWN0ZWRCCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAotICAgIGlmIChXS1N0cmlu
Z0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVzdGluZyIpKSB7Ci0gICAgICAgIFRlc3RDb250cm9sbGVy
OjpzaW5nbGV0b24oKS5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JU
ZXN0aW5nKGJvb2xlYW5WYWx1ZShtZXNzYWdlQm9keSkpOworICAgIGlmIChXS1N0cmluZ0lzRXF1
YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0QWRDbGlja0F0dHJpYnV0aW9uT3ZlcnJp
ZGVUaW1lckZvclRlc3RpbmciKSkgeworICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9u
KCkuc2V0QWRDbGlja0F0dHJpYnV0aW9uT3ZlcnJpZGVUaW1lckZvclRlc3RpbmcoYm9vbGVhblZh
bHVlKG1lc3NhZ2VCb2R5KSk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KICAgICAK
LSAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldFBy
aXZhdGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmciKSkgeworICAgIGlm
IChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0QWRDbGlja0F0
dHJpYnV0aW9uQ29udmVyc2lvblVSTEZvclRlc3RpbmciKSkgewogICAgICAgICBBU1NFUlQoV0tH
ZXRUeXBlSUQobWVzc2FnZUJvZHkpID09IFdLVVJMR2V0VHlwZUlEKCkpOwotICAgICAgICBUZXN0
Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJz
aW9uVVJMRm9yVGVzdGluZyhzdGF0aWNfY2FzdDxXS1VSTFJlZj4obWVzc2FnZUJvZHkpKTsKKyAg
ICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnNldEFkQ2xpY2tBdHRyaWJ1dGlvbkNv
bnZlcnNpb25VUkxGb3JUZXN0aW5nKHN0YXRpY19jYXN0PFdLVVJMUmVmPihtZXNzYWdlQm9keSkp
OwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAgICBpZiAoV0tTdHJpbmdJc0Vx
dWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIk1hcmtQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dHNBc0V4cGlyZWRGb3JUZXN0aW5nIikpIHsKLSAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmds
ZXRvbigpLm1hcmtQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKCk7
CisgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJNYXJr
QWRDbGlja0F0dHJpYnV0aW9uc0FzRXhwaXJlZEZvclRlc3RpbmciKSkgeworICAgICAgICBUZXN0
Q29udHJvbGxlcjo6c2luZ2xldG9uKCkubWFya0FkQ2xpY2tBdHRyaWJ1dGlvbnNBc0V4cGlyZWRG
b3JUZXN0aW5nKCk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIApAQCAtMTUzMyw5
ICsxNTMzLDkgQEAgdm9pZCBUZXN0SW52b2NhdGlvbjo6ZHVtcFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3MoKQogICAgIG1fc2hvdWxkRHVtcFJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSB0cnVlOwogfQog
Ci12b2lkIFRlc3RJbnZvY2F0aW9uOjpkdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKQordm9p
ZCBUZXN0SW52b2NhdGlvbjo6ZHVtcEFkQ2xpY2tBdHRyaWJ1dGlvbigpCiB7Ci0gICAgbV9zaG91
bGREdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgPSB0cnVlOworICAgIG1fc2hvdWxkRHVtcEFk
Q2xpY2tBdHRyaWJ1dGlvbiA9IHRydWU7CiB9CiAKIHZvaWQgVGVzdEludm9jYXRpb246OnBlcmZv
cm1DdXN0b21NZW51QWN0aW9uKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdEludm9jYXRpb24uaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24u
aAppbmRleCBkOTRmNTRlMTc3MzM5MWRmZmQ5MTFjM2U1NjgzYjU3Yzk4OWM4MzcyLi5iOGNhNmI3
YmRjZmQzNDc0NTU2MmQwY2M3YmI5ZWU3NjRhMGQwZDIxIDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0SW52b2NhdGlvbi5oCkBAIC0xMDAsNyArMTAwLDcgQEAgcHVibGljOgogCiAgICAgYm9v
bCBjYW5PcGVuV2luZG93cygpIGNvbnN0IHsgcmV0dXJuIG1fY2FuT3BlbldpbmRvd3M7IH0KIAot
ICAgIHZvaWQgZHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50KCk7CisgICAgdm9pZCBkdW1wQWRD
bGlja0F0dHJpYnV0aW9uKCk7CiAgICAgdm9pZCBwZXJmb3JtQ3VzdG9tTWVudUFjdGlvbigpOwog
CiAgICAgdm9pZCB3aWxsQ3JlYXRlTmV3UGFnZSgpOwpAQCAtMTYyLDcgKzE2Miw3IEBAIHByaXZh
dGU6CiAgICAgYm9vbCBtX3BpeGVsUmVzdWx0SXNQZW5kaW5nIHsgZmFsc2UgfTsKICAgICBib29s
IG1fc2hvdWxkRHVtcFJlc291cmNlTG9hZFN0YXRpc3RpY3MgeyBmYWxzZSB9OwogICAgIGJvb2wg
bV9jYW5PcGVuV2luZG93cyB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX3Nob3VsZER1bXBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCB7IGZhbHNlIH07CisgICAgYm9vbCBtX3Nob3VsZER1bXBBZENsaWNr
QXR0cmlidXRpb24geyBmYWxzZSB9OwogICAgIFdoYXRUb0R1bXAgbV93aGF0VG9EdW1wIHsgV2hh
dFRvRHVtcDo6UmVuZGVyVHJlZSB9OwogCiAgICAgU3RyaW5nQnVpbGRlciBtX3RleHRPdXRwdXQ7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggNzliODI3NzFmMTJmYjdlYTA1NDMxY2RlZDVkODBjOWViZDdiNTJmYS4uZGM2Mzg2
NmIwMzBhOTNjZWE4ZTIxNzkxNzQ4ZTc4NmUwNzlkZTNmNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBA
CisyMDIwLTExLTEwICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKwor
ICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI2OTY2MC4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODc4NgorCisgICAgICAgIENyYXNoaW5n
IGluIEVXUyBpT1Mgc2ltdWxhdG9yIGJvdHMKKworICAgICAgICBSZXZlcnRlZCBjaGFuZ2VzZXQ6
CisKKyAgICAgICAgIlBDTTogQ2hhbmdlIGZyb20gYWQtY2xpY2stYXR0cmlidXRpb24gdG8gcHJp
dmF0ZS1jbGljay0KKyAgICAgICAgbWVhc3VyZW1lbnQgKGluIGFsbCBmb3JtcywgaW5jbHVkaW5n
IC53ZWxsLWtub3duIFVSTCkiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTg3MzAKKyAgICAgICAgaHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdl
c2V0LzI2OTY2MAorCiAyMDIwLTExLTEwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CiAKICAgICAgICAgV2Via2l0IGluY29ycmVjdGx5IHNldHRpbmcgdmlzaWJpbGl0eVN0YXRlIHRv
ICJwcmVyZW5kZXIiIHdoZW4gb3BlbmluZyBsaW5rIGluIG5ldyB0YWIKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25z
CmluZGV4IGViNDQyZTFmZjRkZWVkNDMwYjZhNjE3Y2Y3OThkMjcxOTYwOWI1MDEuLjM4MzI0ZDFk
NjVmNzk5ZTgwZWZmZjE0YzllOTU1YTJkZDE3OTExZjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAt
MTEwMSw4ICsxMTAxLDggQEAgaW5zcGVjdG9yL3J1bnRpbWUvY2FsbEZ1bmN0aW9uT24tZW11bGF0
ZVVzZXJHZXN0dXJlLXVzZXJJc0ludGVyYWN0aW5nLmh0bWwgWyBTa2kKICMgVGFyZ2V0IGRvbWFp
biBpcyBvbmx5IHByZXNlbnQgaW4gV0syLgogaHR0cC90ZXN0cy9pbnNwZWN0b3IvdGFyZ2V0IFsg
U2tpcCBdCiAKLSMgSVRQIGFuZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhcmUgV0syIG9ubHku
Ci1pbnNwZWN0b3IvcGFnZS9vdmVycmlkZVNldHRpbmctUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRE
ZWJ1Z01vZGVFbmFibGVkLmh0bWwgWyBTa2lwIF0KKyMgSVRQIGFuZCBBZENsaWNrQXR0cmlidXRp
b24gYXJlIFdLMiBvbmx5LgoraW5zcGVjdG9yL3BhZ2Uvb3ZlcnJpZGVTZXR0aW5nLUFkQ2xpY2tB
dHRyaWJ1dGlvbkRlYnVnTW9kZUVuYWJsZWQuaHRtbCBbIFNraXAgXQogaW5zcGVjdG9yL3BhZ2Uv
b3ZlcnJpZGVTZXR0aW5nLUlUUERlYnVnTW9kZUVuYWJsZWQuaHRtbCBbIFNraXAgXQogCiAjIFRo
ZXNlIGNvbmZvcm1hbmNlIHRlc3RzIGFyZSBubyBsb25nZXIgaW4gc3luYyB3aXRoIHRoZSBsYXRl
c3Qgc3BlY2lmaWNhdGlvbgpAQCAtMjc3Miw3ICsyNzcyLDcgQEAgd2Via2l0Lm9yZy9iLzE3OTA2
OSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVk
LWNvbnQKIHdlYmtpdC5vcmcvYi8xNTcwNjggWyBEZWJ1ZyBdIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvbm9zbmlmZi9pbXBvcnRzY3JpcHRzLmh0bWwgWyBQYXNzIENyYXNo
IF0KIHdlYmtpdC5vcmcvYi8xNTcwNjggWyBSZWxlYXNlIF0gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9ub3NuaWZmL2ltcG9ydHNjcmlwdHMuaHRtbCBbIFBhc3MgRmFpbHVy
ZSBdCiAKLWh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgWyBTa2lwIF0KK2h0dHAv
dGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uIFsgU2tpcCBdCiAKICMgQXBwbGljYXRpb24gTWFuaWZl
c3QgdGVzdHMKIHdlYmtpdC5vcmcvYi8xNTMxNTIgaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50
U2VjdXJpdHlQb2xpY3kvbWFuaWZlc3Qtc3JjLWFsbG93ZWQuaHRtbCBbIFNraXAgXQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vYW5jaG9yLXRh
Zy1hdHRyaWJ1dGVzLXJlZmxlY3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9hZENsaWNrQXR0cmlidXRpb24vYW5jaG9yLXRhZy1hdHRyaWJ1dGVzLXJlZmxlY3QtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjFjN2E5NWVhZTRlODBjZWNjNTMyNjBmMGFmNzQ1YTExYjY4NWJh
YmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRy
aWJ1dGlvbi9hbmNob3ItdGFnLWF0dHJpYnV0ZXMtcmVmbGVjdC1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxMSBAQAorVGVzdCBmb3IgdGhlIG5ldyBhZCBjbGljayBhdHRyaWJ1dGlvbiBhdHRyaWJ1
dGVzIG9uIGFuY2hvciB0YWdzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyBhbmNob3JUYWcuYWRjYW1wYWlnbmlkIGlzICI0MCIKK1BBU1MgYW5jaG9yVGFnLmFkZGVzdGlu
YXRpb24gaXMgImRlc3RpbmF0aW9uLmV4YW1wbGUiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vYW5jaG9yLXRhZy1hdHRyaWJ1dGVzLXJlZmxlY3QuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2FuY2hvci10YWct
YXR0cmlidXRlcy1yZWZsZWN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGQ5OTU2ZmRlZWM3OGVkNzBiMmZi
NDgyMDAxZmRkZDViNTM5ODI5NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2FuY2hvci10YWctYXR0cmlidXRlcy1yZWZsZWN0Lmh0
bWwKQEAgLTAsMCArMSwxNyBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgQWRDbGlja0F0dHJpYnV0aW9uRW5hYmxlZD10cnVlIF0gLS0+Cis8aHRtbCBsYW5nPSJl
biI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHNjcmlwdCBzcmM9
Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPGEgaWQ9InRlc3RUYWciIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIgYWRjYW1wYWln
bmlkPSI0MCIgYWRkZXN0aW5hdGlvbj0iZGVzdGluYXRpb24uZXhhbXBsZSI+PC9hPgorPHNjcmlw
dD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdCBmb3IgdGhlIG5ldyBhZCBjbGljayBhdHRyaWJ1dGlv
biBhdHRyaWJ1dGVzIG9uIGFuY2hvciB0YWdzLiIpOworCisgICAgY29uc3QgYW5jaG9yVGFnID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3RUYWciKTsKKyAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoImFuY2hvclRhZy5hZGNhbXBhaWduaWQiLCAiNDAiKTsKKyAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoImFuY2hvclRhZy5hZGRlc3RpbmF0aW9uIiwgImRlc3RpbmF0aW9uLmV4YW1wbGUi
KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vYW5jaG9yLXRhZy1hdHRyaWJ1dGVzLXZhbGlk
YXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmli
dXRpb24vYW5jaG9yLXRhZy1hdHRyaWJ1dGVzLXZhbGlkYXRpb24tZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmZiNTQ5OWY0YWQ0MTQ3YTFlOGJhMDJmOTQ5NmE5MTA3YzJhOTAxOWQKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9hbmNo
b3ItdGFnLWF0dHJpYnV0ZXMtdmFsaWRhdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMCBA
QAorQ09OU09MRSBNRVNTQUdFOiBhZGNhbXBhaWduaWQgbXVzdCBoYXZlIGEgbm9uLW5lZ2F0aXZl
IHZhbHVlIGxlc3MgdGhhbiBvciBlcXVhbCB0byA2MyBmb3IgQWQgQ2xpY2sgQXR0cmlidXRpb24u
CitDT05TT0xFIE1FU1NBR0U6IGFkY2FtcGFpZ25pZCBtdXN0IGhhdmUgYSBub24tbmVnYXRpdmUg
dmFsdWUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDYzIGZvciBBZCBDbGljayBBdHRyaWJ1dGlvbi4K
K0NPTlNPTEUgTUVTU0FHRTogYWRjYW1wYWlnbmlkIGNhbiBub3QgYmUgY29udmVydGVkIHRvIGEg
bm9uLW5lZ2F0aXZlIGludGVnZXIgd2hpY2ggaXMgcmVxdWlyZWQgZm9yIEFkIENsaWNrIEF0dHJp
YnV0aW9uLgorQ09OU09MRSBNRVNTQUdFOiBhZGNhbXBhaWduaWQgY2FuIG5vdCBiZSBjb252ZXJ0
ZWQgdG8gYSBub24tbmVnYXRpdmUgaW50ZWdlciB3aGljaCBpcyByZXF1aXJlZCBmb3IgQWQgQ2xp
Y2sgQXR0cmlidXRpb24uCitDT05TT0xFIE1FU1NBR0U6IGFkY2FtcGFpZ25pZCBjYW4gbm90IGJl
IGNvbnZlcnRlZCB0byBhIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyIHdoaWNoIGlzIHJlcXVpcmVkIGZv
ciBBZCBDbGljayBBdHRyaWJ1dGlvbi4KK0NPTlNPTEUgTUVTU0FHRTogYWRkZXN0aW5hdGlvbiBj
b3VsZCBub3QgYmUgY29udmVydGVkIHRvIGEgdmFsaWQgSFRUUC1mYW1pbHkgVVJMLgorQ09OU09M
RSBNRVNTQUdFOiBhZGRlc3RpbmF0aW9uIGNvdWxkIG5vdCBiZSBjb252ZXJ0ZWQgdG8gYSB2YWxp
ZCBIVFRQLWZhbWlseSBVUkwuCitDT05TT0xFIE1FU1NBR0U6IGFkZGVzdGluYXRpb24gY291bGQg
bm90IGJlIGNvbnZlcnRlZCB0byBhIHZhbGlkIEhUVFAtZmFtaWx5IFVSTC4KK0NPTlNPTEUgTUVT
U0FHRTogQm90aCBhZGNhbXBhaWduaWQgYW5kIGFkZGVzdGluYXRpb24gbmVlZCB0byBiZSBzZXQg
Zm9yIEFkIENsaWNrIEF0dHJpYnV0aW9uIHRvIHdvcmsuCitDT05TT0xFIE1FU1NBR0U6IEJvdGgg
YWRjYW1wYWlnbmlkIGFuZCBhZGRlc3RpbmF0aW9uIG5lZWQgdG8gYmUgc2V0IGZvciBBZCBDbGlj
ayBBdHRyaWJ1dGlvbiB0byB3b3JrLgorQ09OU09MRSBNRVNTQUdFOiBhZGRlc3RpbmF0aW9uIGNh
biBub3QgYmUgdGhlIHNhbWUgc2l0ZSBhcyB0aGUgY3VycmVudCB3ZWJzaXRlLgorVGVzdCBmb3Ig
dmFsaWRpdHkgb2YgYWQgY2xpY2sgYXR0cmlidXRpb24gYXR0cmlidXRlcyBvbiBhbmNob3IgdGFn
cy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9hbmNob3ItdGFnLWF0dHJpYnV0ZXMtdmFsaWRh
dGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vYW5j
aG9yLXRhZy1hdHRyaWJ1dGVzLXZhbGlkYXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZTJmZDYzZTQz
NTg3NzMzNWVkYmE3OWZiYTY1MDQ4ZTliMDhlZDkwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vYW5jaG9yLXRhZy1hdHRyaWJ1dGVz
LXZhbGlkYXRpb24uaHRtbApAQCAtMCwwICsxLDg1IEBACis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgXSAtLT4KKzxodG1s
IGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8bWV0
YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNj
YWxlPTEsIHVzZXItc2NhbGFibGU9bm8iPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNv
dXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJl
c291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDxzdHlsZT4KKyAgICAgICAgLndp
ZGUtbGluayB7CisgICAgICAgICAgICB3aWR0aDogMTUwcHg7CisgICAgICAgICAgICBkaXNwbGF5
OiBpbmxpbmUtYmxvY2s7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHkg
b25sb2FkPSJydW5BbGxUZXN0cygpIj4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxk
aXYgaWQ9Im91dHB1dCI+PC9kaXY+PGJyPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2Ny
aXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0IGZvciB2YWxpZGl0eSBvZiBhZCBjbGljayBhdHRy
aWJ1dGlvbiBhdHRyaWJ1dGVzIG9uIGFuY2hvciB0YWdzLiIpOworICAgIGpzVGVzdElzQXN5bmMg
PSB0cnVlOworCisgICAgZnVuY3Rpb24gY3JlYXRlQWRDbGlja0F0dHJpYnV0aW9uQW5jaG9yRWxl
bWVudChlbGVtZW50SUQsIGFkQ2FtcGFpZ25JRCwgYWREZXN0aW5hdGlvbikgeworICAgICAgICBs
ZXQgYW5jaG9yRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTsKKyAgICAgICAg
YW5jaG9yRWxlbWVudC5pZCA9IGVsZW1lbnRJRDsKKyAgICAgICAgYW5jaG9yRWxlbWVudC5jbGFz
c0xpc3QuYWRkKCJ3aWRlLWxpbmsiKTsKKyAgICAgICAgYW5jaG9yRWxlbWVudC5hZGNhbXBhaWdu
aWQgPSBhZENhbXBhaWduSUQ7CisgICAgICAgIGFuY2hvckVsZW1lbnQuYWRkZXN0aW5hdGlvbiA9
IGFkRGVzdGluYXRpb247CisgICAgICAgIGFuY2hvckVsZW1lbnQuaHJlZiA9ICIjIjsKKyAgICAg
ICAgYW5jaG9yRWxlbWVudC5pbm5lclRleHQgPSAiTGluayIgKyBjdXJyZW50VGVzdDsKKyAgICAg
ICAgcmV0dXJuIGFuY2hvckVsZW1lbnQ7CisgICAgfQorCisgICAgZnVuY3Rpb24gYWN0aXZhdGVF
bGVtZW50KGVsZW1lbnRJRCwgY2FsbGJhY2spIHsKKyAgICAgICAgVUlIZWxwZXIuYWN0aXZhdGVF
bGVtZW50KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJRCkpLnRoZW4oCisgICAgICAg
ICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgY2FsbGJhY2soKTsKKyAgICAgICAg
ICAgIH0sCisgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZCgiUHJvbWlzZSByZWplY3RlZC4iKTsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3Qo
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgKTsKKyAgICB9CisKKyAgICBsZXQgY3VycmVudFRl
c3QgPSAwOworICAgIGZ1bmN0aW9uIHJ1bk9uZVRlc3QoYWRDYW1wYWlnbklELCBhZERlc3RpbmF0
aW9uLCBjYWxsYmFjaykgeworICAgICAgICBjb25zdCBjdXJyZW50RWxlbWVudElEID0gInRlc3Qi
ICsgY3VycmVudFRlc3QrKzsKKyAgICAgICAgY29uc3QgYW5jaG9yRWxlbWVudCA9IGNyZWF0ZUFk
Q2xpY2tBdHRyaWJ1dGlvbkFuY2hvckVsZW1lbnQoY3VycmVudEVsZW1lbnRJRCwgYWRDYW1wYWln
bklELCBhZERlc3RpbmF0aW9uKTsKKyAgICAgICAgb3V0cHV0LmFwcGVuZENoaWxkKGFuY2hvckVs
ZW1lbnQpOworICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoY3VycmVudEVsZW1lbnRJRCwgY2FsbGJh
Y2spOworICAgIH0KKworICAgIGNvbnN0IHZhbGlkQWRDYW1wYWlnbklEID0gIjAzIjsKKyAgICBj
b25zdCB2YWxpZEFkRGVzdGluYXRpb24gPSAiaHR0cDovL3dlYmtpdC5vcmciOworICAgIGNvbnN0
IHNhbWVTaXRlID0gZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luOworICAgIGNvbnN0IHRlc3RDYXNl
cyA9IFsKKyAgICAgICAgWyB2YWxpZEFkQ2FtcGFpZ25JRCwgdmFsaWRBZERlc3RpbmF0aW9uIF0s
CisgICAgICAgIFsgIjEwMCIsIHZhbGlkQWREZXN0aW5hdGlvbiBdLCAgICAgICAgICAgLy8gVG9v
IG1hbnkgY2hhcmFjdGVycy4KKyAgICAgICAgWyAiMSIsIHZhbGlkQWREZXN0aW5hdGlvbiBdLCAg
ICAgICAgICAgICAvLyBUb28gZmV3IGNoYXJhY3RlcnMuCisgICAgICAgIFsgIjk4IiwgdmFsaWRB
ZERlc3RpbmF0aW9uIF0sICAgICAgICAgICAgLy8gVG9vIGhpZ2ggdmFsdWUuCisgICAgICAgIFsg
Ii0xIiwgdmFsaWRBZERlc3RpbmF0aW9uIF0sICAgICAgICAgICAgLy8gTmVnYXRpdmUgdmFsdWUu
CisgICAgICAgIFsgImFiIiwgdmFsaWRBZERlc3RpbmF0aW9uIF0sICAgICAgICAgICAgLy8gTm9u
LWRpZ2l0cy4KKyAgICAgICAgWyAi76O/MSIsIHZhbGlkQWREZXN0aW5hdGlvbiBdLCAgICAgICAg
ICAgIC8vIE5vbi1BU0NJSS4KKyAgICAgICAgWyAiIDEiLCB2YWxpZEFkRGVzdGluYXRpb24gXSwg
ICAgICAgICAgICAvLyBMZWFkaW5nIHNwYWNlLgorICAgICAgICBbICIxICIsIHZhbGlkQWREZXN0
aW5hdGlvbiBdLCAgICAgICAgICAgIC8vIFRyYWlsaW5nIHNwYWNlLgorICAgICAgICBbIHZhbGlk
QWRDYW1wYWlnbklELCAid2Via2l0Lm9yZyIgXSwgICAgIC8vIE1pc3NpbmcgcHJvdG9jb2wuCisg
ICAgICAgIFsgdmFsaWRBZENhbXBhaWduSUQsICI6Ly93ZWJraXQub3JnIiBdLCAgLy8gUGFydGlh
bGx5IG1pc3NpbmcgcHJvdG9jb2wuCisgICAgICAgIFsgdmFsaWRBZENhbXBhaWduSUQsICLvo7/v
o7/vo78iIF0sICAgICAgICAgICAvLyBOb24tQVNDSUkgY2hhcmFjdGVycyBhcyBkZXN0aW5hdGlv
bi4KKyAgICAgICAgWyAiIiwgdmFsaWRBZERlc3RpbmF0aW9uIF0sICAgICAgICAgICAgICAvLyBF
bXB0eSBjYW1wYWlnbiBJRC4KKyAgICAgICAgWyB2YWxpZEFkQ2FtcGFpZ25JRCwgIiIgXSwgICAg
ICAgICAgICAgICAvLyBFbXB0eSBkZXN0aW5hdGlvbi4KKyAgICAgICAgWyB2YWxpZEFkQ2FtcGFp
Z25JRCwgc2FtZVNpdGUgXSAgICAgICAgICAvLyBTYW1lLXNpdGUgZGVzdGluYXRpb24uCisgICAg
XTsKKworICAgIGZ1bmN0aW9uIHJ1bkFsbFRlc3RzKCkgeworICAgICAgICBpZiAoY3VycmVudFRl
c3QgPCB0ZXN0Q2FzZXMubGVuZ3RoKQorICAgICAgICAgICAgcnVuT25lVGVzdCh0ZXN0Q2FzZXNb
Y3VycmVudFRlc3RdWzBdLCB0ZXN0Q2FzZXNbY3VycmVudFRlc3RdWzFdLCBydW5BbGxUZXN0cyk7
CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChv
dXRwdXQpOworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH0KKyAgICB9Cis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1j
cm9zcy1zaXRlLWltYWdlLXJlZGlyZWN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1j
cm9zcy1zaXRlLWltYWdlLXJlZGlyZWN0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZWE1ZTYx
ZmM4NWNkZjU0MmY5MTc1MzNmYWJmYmI4MzVkNjhlNjU4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vYXR0cmlidXRpb24tY29udmVy
c2lvbi10aHJvdWdoLWNyb3NzLXNpdGUtaW1hZ2UtcmVkaXJlY3QtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsOSBAQAorVGVzdHMgdGhhdCB0cmlnZ2VyaW5nIG9mIGFkIGNsaWNrIGF0dHJpYnV0aW9u
IGNvbnZlcnNpb25zIHRocm91Z2ggY3Jvc3Mtc2l0ZSByZWRpcmVjdHMgZG8gbm90IHdvcmsuCisK
KworVW5jb252ZXJ0ZWQgQWQgQ2xpY2sgQXR0cmlidXRpb25zOgorV2ViQ29yZTo6QWRDbGlja0F0
dHJpYnV0aW9uIDEKK1NvdXJjZTogMTI3LjAuMC4xCitEZXN0aW5hdGlvbjogbG9jYWxob3N0CitD
YW1wYWlnbiBJRDogMworTm8gY29udmVyc2lvbiBkYXRhLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vYXR0cmlidXRpb24tY29udmVyc2lvbi10
aHJvdWdoLWNyb3NzLXNpdGUtaW1hZ2UtcmVkaXJlY3QuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1j
cm9zcy1zaXRlLWltYWdlLXJlZGlyZWN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjU3MjZlOTA5ZmZjOTBi
MjEwOWZmYmEwNGI0MDZkMDg1MzE2OGE5YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhy
b3VnaC1jcm9zcy1zaXRlLWltYWdlLXJlZGlyZWN0Lmh0bWwKQEAgLTAsMCArMSw1MiBAQAorPCFE
T0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9y
dD10cnVlIEFkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWwgbGFuZz0i
ZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxtZXRhIG5hbWU9
InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSwg
dXNlci1zY2FsYWJsZT1ubyI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91
aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQocnVuVGVzdCwg
MCkiPgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPlRlc3RzIHRoYXQgdHJpZ2dlcmluZyBvZiBhZCBj
bGljayBhdHRyaWJ1dGlvbiBjb252ZXJzaW9ucyB0aHJvdWdoIGNyb3NzLXNpdGUgcmVkaXJlY3Rz
IGRvIG5vdCB3b3JrLjwvZGl2PgorPGEgaWQ9InRhcmdldExpbmsiIGhyZWY9Imh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMC9hZENsaWNrQXR0cmlidXRpb24vYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJv
dWdoLWNyb3NzLXNpdGUtaW1hZ2UtcmVkaXJlY3QuaHRtbD9zdGVwVHdvIiBhZGNhbXBhaWduaWQ9
IjMiIGFkZGVzdGluYXRpb249Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI+TGluazwvYT48YnI+Cis8
ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgorPHNjcmlwdD4KKyAgICBwcmVwYXJlVGVzdCgpOworCisg
ICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJRCkgeworICAgICAgICB2YXIgZWxl
bWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJRCk7CisgICAgICAgIHZhciBj
ZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7Cisg
ICAgICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhl
aWdodCAvIDI7CisgICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSku
dGhlbigKKyAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIH0sCisgICAgICAg
ICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIFByb21pc2UgcmVqZWN0ZWQuIjsKKyAgICAg
ICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOworICAgICAgICAgICAgfQorICAgICAgICAp
OworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09
ICI/c3RlcFR3byIpIHsKKyAgICAgICAgICAgICAgICBsZXQgaW1hZ2VFbGVtZW50ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiaW1nIik7CisgICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50LnNy
YyA9ICJodHRwczovL2xvY2FsaG9zdDo4NDQzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMv
cmVkaXJlY3RUb0NvbnZlcnNpb25PbklQQWRkcmVzcy5waHA/Y29udmVyc2lvbkRhdGE9MTIiOwor
ICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5pZCA9ICJwaXhlbCI7CisgICAgICAgICAgICAg
ICAgaW1hZ2VFbGVtZW50Lm9uZXJyb3IgPSBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIuZHVtcEFkQ2xpY2tBdHRyaWJ1dGlvbigpOworICAgICAgICAgICAgICAg
ICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0
YXJnZXRMaW5rIikpOworICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNo
aWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwaXhlbCIpKTsKKyAgICAgICAgICAgICAgICAg
ICAgdGVhckRvd25BbmRGaW5pc2goKTsKKyAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW1hZ2VFbGVtZW50KTsKKyAgICAgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJ0YXJnZXRMaW5rIik7
CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgTm8gdGVzdFJ1bm5lci4i
OworICAgICAgICB9CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9hdHRyaWJ1dGlv
bi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3QtaW4tbmV3LXdpbmRvdy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9hdHRyaWJ1
dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3QtaW4tbmV3LXdpbmRvdy1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMzg0MzZiMDk2OTM1NmM1NjNiODVjYmFhYTlhZDU2MmE1YjNi
MzZmNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0
dHJpYnV0aW9uL2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC1p
bi1uZXctd2luZG93LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0cmlnZ2Vy
aW5nIG9mIGFkIGNsaWNrIGF0dHJpYnV0aW9uIGNvbnZlcnNpb25zIGluIGEgbmV3IHdpbmRvdy4K
KworCitDb252ZXJ0ZWQgQWQgQ2xpY2sgQXR0cmlidXRpb25zOgorV2ViQ29yZTo6QWRDbGlja0F0
dHJpYnV0aW9uIDEKK1NvdXJjZTogMTI3LjAuMC4xCitEZXN0aW5hdGlvbjogbG9jYWxob3N0CitD
YW1wYWlnbiBJRDogMworQ29udmVyc2lvbiBkYXRhOiAxMgorQ29udmVyc2lvbiBwcmlvcml0eTog
MworQ29udmVyc2lvbiBlYXJsaWVzdCB0aW1lIHRvIHNlbmQ6IFdpdGhpbiAyNC00OCBob3Vycwor
Q29udmVyc2lvbiByZXF1ZXN0IHNlbnQ6IGZhbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91
Z2gtaW1hZ2UtcmVkaXJlY3QtaW4tbmV3LXdpbmRvdy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWlt
YWdlLXJlZGlyZWN0LWluLW5ldy13aW5kb3cuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYWQyYjQzNDdiZDZm
ZjllNmE2OGRkZDliMWQxOWU1NjViY2NhZTI2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vYXR0cmlidXRpb24tY29udmVyc2lvbi10
aHJvdWdoLWltYWdlLXJlZGlyZWN0LWluLW5ldy13aW5kb3cuaHRtbApAQCAtMCwwICsxLDU5IEBA
Cis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZp
ZXdwb3J0PXRydWUgQWRDbGlja0F0dHJpYnV0aW9uRW5hYmxlZD10cnVlIF0gLS0+Cis8aHRtbCBs
YW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPG1ldGEg
bmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2Fs
ZT0xLCB1c2VyLXNjYWxhYmxlPW5vIj4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3Vy
Y2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91
dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0VGltZW91dChydW5U
ZXN0LCAwKSI+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgdHJpZ2dlcmluZyBvZiBhZCBj
bGljayBhdHRyaWJ1dGlvbiBjb252ZXJzaW9ucyBpbiBhIG5ldyB3aW5kb3cuPC9kaXY+Cis8YSB0
YXJnZXQ9Il9ibGFuayIgcmVsPSJvcGVuZXIiIGlkPSJ0YXJnZXRMaW5rIiBocmVmPSJodHRwOi8v
bG9jYWxob3N0OjgwMDAvYWRDbGlja0F0dHJpYnV0aW9uL3Jlc291cmNlcy9jb252ZXJ0QW5kUG9z
dE1lc3NhZ2VCYWNrLmh0bWwiIGFkY2FtcGFpZ25pZD0iMyIgYWRkZXN0aW5hdGlvbj0iaHR0cDov
L2xvY2FsaG9zdDo4MDAwIj5MaW5rPC9hPjxicj4KKzxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Cis8
c2NyaXB0PgorICAgIHByZXBhcmVUZXN0KCk7CisKKyAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1l
bnQoZWxlbWVudElEKSB7CisgICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoZWxlbWVudElEKTsKKyAgICAgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNldExl
ZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKKyAgICAgICAgdmFyIGNlbnRlclkgPSBlbGVt
ZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAgICAgVUlIZWxw
ZXIuYWN0aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZKS50aGVuKAorICAgICAgICAgICAgZnVuY3Rp
b24gKCkgeworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAg
ICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0g
IkZBSUwgUHJvbWlzZSByZWplY3RlZC4iOworICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmlu
aXNoKCk7CisgICAgICAgICAgICB9CisgICAgICAgICk7CisgICAgfQorCisgICAgZnVuY3Rpb24g
cmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gImh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMCIpIHsKKyAgICAgICAgICAgIGlmIChldmVudC5kYXRhID09PSAi
RG9uZSIpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBZENsaWNrQXR0cmlidXRp
b24oKTsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXRMaW5rIikpOworICAgICAgICAgICAgICAgIHRlYXJEb3du
QW5kRmluaXNoKCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQoIlJlY2VpdmVkIHVua25vd24gbWVzc2FnZTogIiArIGV2ZW50LmRhdGEpOworICAgICAg
ICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBh
biB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisgICAgICAgICAgICB0ZWFy
RG93bkFuZEZpbmlzaCgpOworICAgICAgICB9CisgICAgfQorCisgICAgd2luZG93LmFkZEV2ZW50
TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworCisgICAgZnVuY3Rp
b24gcnVuVGVzdCgpIHsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAg
ICAgICB0ZXN0UnVubmVyLnNldENhbk9wZW5XaW5kb3dzKCk7CisgICAgICAgICAgICBhY3RpdmF0
ZUVsZW1lbnQoInRhcmdldExpbmsiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBObyB0ZXN0
UnVubmVyLiI7CisgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOworICAgICAgICB9Cisg
ICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRo
cm91Z2gtaW1hZ2UtcmVkaXJlY3Qtd2l0aC1wcmlvcml0eS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9hdHRyaWJ1dGlvbi1jb252ZXJzaW9u
LXRocm91Z2gtaW1hZ2UtcmVkaXJlY3Qtd2l0aC1wcmlvcml0eS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNTk3ZjY1Y2QxOGQ1OTQwODE5NzcwOGY3MGVhNDJlNDAzZWQwYWRkMwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2F0dHJp
YnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRoLXByaW9yaXR5LWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0cmlnZ2VyaW5nIG9mIGFkIGNsaWNr
IGF0dHJpYnV0aW9uIGNvbnZlcnNpb25zIHdpdGggcHJpb3JpdHkuCisKKworQ29udmVydGVkIEFk
IENsaWNrIEF0dHJpYnV0aW9uczoKK1dlYkNvcmU6OkFkQ2xpY2tBdHRyaWJ1dGlvbiAxCitTb3Vy
Y2U6IDEyNy4wLjAuMQorRGVzdGluYXRpb246IGxvY2FsaG9zdAorQ2FtcGFpZ24gSUQ6IDMKK0Nv
bnZlcnNpb24gZGF0YTogMTIKK0NvbnZlcnNpb24gcHJpb3JpdHk6IDMKK0NvbnZlcnNpb24gZWFy
bGllc3QgdGltZSB0byBzZW5kOiBXaXRoaW4gMjQtNDggaG91cnMKK0NvbnZlcnNpb24gcmVxdWVz
dCBzZW50OiBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNr
QXR0cmlidXRpb24vYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0
LXdpdGgtcHJpb3JpdHkuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJp
YnV0aW9uL2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRo
LXByaW9yaXR5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODU2YjQyNTM2MGEzYzI1ZjliMmQyZDViNWQ5MTQz
NDQ5ZWU4NGYzMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRD
bGlja0F0dHJpYnV0aW9uL2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRp
cmVjdC13aXRoLXByaW9yaXR5Lmh0bWwKQEAgLTAsMCArMSw1MiBAQAorPCFET0NUWVBFIGh0bWw+
IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIEFkQ2xp
Y2tBdHRyaWJ1dGlvbkVuYWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+
CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBj
b250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSwgdXNlci1zY2FsYWJs
ZT1ubyI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQocnVuVGVzdCwgMCkiPgorPGRpdiBp
ZD0iZGVzY3JpcHRpb24iPlRlc3RzIHRyaWdnZXJpbmcgb2YgYWQgY2xpY2sgYXR0cmlidXRpb24g
Y29udmVyc2lvbnMgd2l0aCBwcmlvcml0eS48L2Rpdj4KKzxhIGlkPSJ0YXJnZXRMaW5rIiBocmVm
PSJodHRwOi8vbG9jYWxob3N0OjgwMDAvYWRDbGlja0F0dHJpYnV0aW9uL2F0dHJpYnV0aW9uLWNv
bnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRoLXByaW9yaXR5Lmh0bWw/c3RlcFR3
byIgYWRjYW1wYWlnbmlkPSIzIiBhZGRlc3RpbmF0aW9uPSJodHRwOi8vbG9jYWxob3N0OjgwMDAi
Pkxpbms8L2E+PGJyPgorPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KKzxzY3JpcHQ+CisgICAgcHJl
cGFyZVRlc3QoKTsKKworICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVudChlbGVtZW50SUQpIHsK
KyAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SUQp
OworICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zm
c2V0V2lkdGggLyAyOworICAgICAgICB2YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0VG9wICsg
ZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOworICAgICAgICBVSUhlbHBlci5hY3RpdmF0ZUF0KGNl
bnRlclgsIGNlbnRlclkpLnRoZW4oCisgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAg
ICAgICB9LAorICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBQcm9taXNlIHJl
amVjdGVkLiI7CisgICAgICAgICAgICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAg
ICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cubG9j
YXRpb24uc2VhcmNoID09PSAiP3N0ZXBUd28iKSB7CisgICAgICAgICAgICAgICAgbGV0IGltYWdl
RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpOworICAgICAgICAgICAgICAg
IGltYWdlRWxlbWVudC5zcmMgPSAiaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9hZENsaWNrQXR0cmli
dXRpb24vcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uLnBocD9jb252ZXJzaW9uRGF0YT0x
MiZwcmlvcml0eT0wMyI7CisgICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50LmlkID0gInBpeGVs
IjsKKyAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQub25lcnJvciA9IGZ1bmN0aW9uKGUpIHsK
KyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQWRDbGlja0F0dHJpYnV0aW9uKCk7
CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKSk7CisgICAgICAgICAgICAgICAgICAgIGRvY3Vt
ZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBpeGVsIikpOwor
ICAgICAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOworICAgICAgICAgICAgICAg
IH07CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbWFnZUVsZW1l
bnQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBhY3RpdmF0ZUVsZW1l
bnQoInRhcmdldExpbmsiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJ
TCBObyB0ZXN0UnVubmVyLiI7CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJp
YnV0aW9uL2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRo
b3V0LXByaW9yaXR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlj
a0F0dHJpYnV0aW9uL2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVj
dC13aXRob3V0LXByaW9yaXR5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZTBhMjgwZmFkMTg2
YTc2ZmFhOTQyZjYyZjliMTA0NThjOGQxMmMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vYXR0cmlidXRpb24tY29udmVyc2lvbi10
aHJvdWdoLWltYWdlLXJlZGlyZWN0LXdpdGhvdXQtcHJpb3JpdHktZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTIgQEAKK1Rlc3RzIHRyaWdnZXJpbmcgb2YgYWQgY2xpY2sgYXR0cmlidXRpb24gY29u
dmVyc2lvbnMgd2l0aG91dCBwcmlvcml0eS4KKworCitDb252ZXJ0ZWQgQWQgQ2xpY2sgQXR0cmli
dXRpb25zOgorV2ViQ29yZTo6QWRDbGlja0F0dHJpYnV0aW9uIDEKK1NvdXJjZTogMTI3LjAuMC4x
CitEZXN0aW5hdGlvbjogbG9jYWxob3N0CitDYW1wYWlnbiBJRDogMworQ29udmVyc2lvbiBkYXRh
OiAxMgorQ29udmVyc2lvbiBwcmlvcml0eTogMAorQ29udmVyc2lvbiBlYXJsaWVzdCB0aW1lIHRv
IHNlbmQ6IFdpdGhpbiAyNC00OCBob3VycworQ29udmVyc2lvbiByZXF1ZXN0IHNlbnQ6IGZhbHNl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9h
dHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3Qtd2l0aG91dC1wcmlv
cml0eS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vYXR0
cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LXdpdGhvdXQtcHJpb3Jp
dHkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44YTBiMmQ4OTZkYzQxMDAzMjU4MmUzZjE3M2M0YjUxY2RjNmRj
ZDEyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0
cmlidXRpb24vYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LXdp
dGhvdXQtcHJpb3JpdHkuaHRtbApAQCAtMCwwICsxLDUyIEBACis8IURPQ1RZUEUgaHRtbD4gPCEt
LSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgXSAtLT4KKzxo
dG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8
bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFs
LXNjYWxlPTEsIHVzZXItc2NhbGFibGU9bm8iPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1y
ZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0
KHJ1blRlc3QsIDApIj4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0cyB0cmlnZ2VyaW5nIG9m
IGFkIGNsaWNrIGF0dHJpYnV0aW9uIGNvbnZlcnNpb25zIHdpdGhvdXQgcHJpb3JpdHkuPC9kaXY+
Cis8YSBpZD0idGFyZ2V0TGluayIgaHJlZj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL2FkQ2xpY2tB
dHRyaWJ1dGlvbi9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3Qt
d2l0aG91dC1wcmlvcml0eS5odG1sP3N0ZXBUd28iIGFkY2FtcGFpZ25pZD0iMyIgYWRkZXN0aW5h
dGlvbj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwIj5MaW5rPC9hPjxicj4KKzxkaXYgaWQ9Im91dHB1
dCI+PC9kaXY+Cis8c2NyaXB0PgorICAgIHByZXBhcmVUZXN0KCk7CisKKyAgICBmdW5jdGlvbiBh
Y3RpdmF0ZUVsZW1lbnQoZWxlbWVudElEKSB7CisgICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElEKTsKKyAgICAgICAgdmFyIGNlbnRlclggPSBlbGVt
ZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKKyAgICAgICAgdmFyIGNl
bnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAg
ICAgICAgVUlIZWxwZXIuYWN0aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZKS50aGVuKAorICAgICAg
ICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGZ1bmN0aW9u
ICgpIHsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iiku
aW5uZXJUZXh0ID0gIkZBSUwgUHJvbWlzZSByZWplY3RlZC4iOworICAgICAgICAgICAgICAgIHRl
YXJEb3duQW5kRmluaXNoKCk7CisgICAgICAgICAgICB9CisgICAgICAgICk7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CisgICAgICAgICAgICBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0gIj9zdGVwVHdvIikg
eworICAgICAgICAgICAgICAgIGxldCBpbWFnZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJpbWciKTsKKyAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQuc3JjID0gImh0dHBzOi8v
MTI3LjAuMC4xOjg0NDMvYWRDbGlja0F0dHJpYnV0aW9uL3Jlc291cmNlcy9yZWRpcmVjdFRvQ29u
dmVyc2lvbi5waHA/Y29udmVyc2lvbkRhdGE9MTIiOworICAgICAgICAgICAgICAgIGltYWdlRWxl
bWVudC5pZCA9ICJwaXhlbCI7CisgICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50Lm9uZXJyb3Ig
PSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQWRDbGlj
a0F0dHJpYnV0aW9uKCk7CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3Zl
Q2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKSk7CisgICAgICAgICAg
ICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInBpeGVsIikpOworICAgICAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOwor
ICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRD
aGlsZChpbWFnZUVsZW1lbnQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAg
ICBhY3RpdmF0ZUVsZW1lbnQoInRhcmdldExpbmsiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5p
bm5lclRleHQgPSAiRkFJTCBObyB0ZXN0UnVubmVyLiI7CisgICAgICAgIH0KKyAgICB9Cis8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvYWRDbGlja0F0dHJpYnV0aW9uL2NsZWFyLXRocm91Z2gtd2Vic2l0ZS1kYXRhLXJlbW92YWwt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24v
Y2xlYXItdGhyb3VnaC13ZWJzaXRlLWRhdGEtcmVtb3ZhbC1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZTJlZTZhOTNjYWQwYjVlNWNhODUxZTZiYjJmMjFiOWFmOWE5NmM1YgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2NsZWFyLXRo
cm91Z2gtd2Vic2l0ZS1kYXRhLXJlbW92YWwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAor
VGVzdHMgdGhhdCBib3RoIHVuY29udmVydGVkIGFuZCBjb252ZXJ0ZWQgYXR0cmlidXRpb25zIGFy
ZSBjbGVhcmVkIG9uIHdlYnNpdGUgZGF0YSByZW1vdmFsLgorCisKKworTm8gc3RvcmVkIEFkIENs
aWNrIEF0dHJpYnV0aW9uIGRhdGEuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2FkQ2xpY2tBdHRyaWJ1dGlvbi9jbGVhci10aHJvdWdoLXdlYnNpdGUtZGF0YS1yZW1vdmFsLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9jbGVhci10aHJv
dWdoLXdlYnNpdGUtZGF0YS1yZW1vdmFsLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmQ2ZWNiNTAyZmJhYTJk
NjJhNWQ3YmUwZGViNTE2YmQ2NzI4ODgzYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2NsZWFyLXRocm91Z2gtd2Vic2l0ZS1kYXRh
LXJlbW92YWwuaHRtbApAQCAtMCwwICsxLDgzIEBACis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJr
aXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgQWRDbGlja0F0dHJpYnV0
aW9uRW5hYmxlZD10cnVlIF0gLS0+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0
YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9Indp
ZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCB1c2VyLXNjYWxhYmxlPW5vIj4KKyAg
ICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5IG9ubG9hZD0ic2V0VGltZW91dChydW5UZXN0LCAwKSI+Cis8ZGl2IGlkPSJkZXNjcmlw
dGlvbiI+VGVzdHMgdGhhdCBib3RoIHVuY29udmVydGVkIGFuZCBjb252ZXJ0ZWQgYXR0cmlidXRp
b25zIGFyZSBjbGVhcmVkIG9uIHdlYnNpdGUgZGF0YSByZW1vdmFsLjwvZGl2PgorPGEgaWQ9InRh
cmdldExpbmsiPkxpbms8L2E+PGJyPgorPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KKzxzY3JpcHQ+
CisgICAgY29uc3QgcGF0aCA9ICIvYWRDbGlja0F0dHJpYnV0aW9uL2NsZWFyLXRocm91Z2gtd2Vi
c2l0ZS1kYXRhLXJlbW92YWwuaHRtbCI7CisgICAgY29uc3QgY29uZmlndXJhdGlvbiA9IFsKKyAg
ICAgICAgeworICAgICAgICAgICAgaHJlZjogImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIgKyBwYXRo
ICsgIj9zdGVwVHdvIiwKKyAgICAgICAgICAgIGFkY2FtcGFpZ25pZDogIjMiLAorICAgICAgICAg
ICAgYWRkZXN0aW5hdGlvbjogImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIKKyAgICAgICAgfSwKKyAg
ICAgICAgeworICAgICAgICAgICAgaHJlZjogImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgKyBwYXRo
ICsgIj9zdGVwVGhyZWUiLAorICAgICAgICAgICAgYWRjYW1wYWlnbmlkOiAiNCIsCisgICAgICAg
ICAgICBhZGRlc3RpbmF0aW9uOiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIgorICAgICAgICB9Cisg
ICAgXTsKKworICAgIHByZXBhcmVUZXN0KCk7CisKKyAgICBmdW5jdGlvbiBjb25maWd1cmVMaW5r
KGluZGV4KSB7CisgICAgICAgIGxldCBsaW5rRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJ0YXJnZXRMaW5rIik7CisgICAgICAgIGxpbmtFbGVtZW50LnNldEF0dHJpYnV0ZSgiaHJl
ZiIsIGNvbmZpZ3VyYXRpb25baW5kZXhdLmhyZWYpOworICAgICAgICBsaW5rRWxlbWVudC5zZXRB
dHRyaWJ1dGUoImFkY2FtcGFpZ25pZCIsIGNvbmZpZ3VyYXRpb25baW5kZXhdLmFkY2FtcGFpZ25p
ZCk7CisgICAgICAgIGxpbmtFbGVtZW50LnNldEF0dHJpYnV0ZSgiYWRkZXN0aW5hdGlvbiIsIGNv
bmZpZ3VyYXRpb25baW5kZXhdLmFkZGVzdGluYXRpb24pOworICAgIH0KKworICAgIGZ1bmN0aW9u
IGFjdGl2YXRlRWxlbWVudChlbGVtZW50SUQpIHsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SUQpOworICAgICAgICB2YXIgY2VudGVyWCA9IGVs
ZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOworICAgICAgICB2YXIg
Y2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOwor
ICAgICAgICBVSUhlbHBlci5hY3RpdmF0ZUF0KGNlbnRlclgsIGNlbnRlclkpLnRoZW4oCisgICAg
ICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgZnVuY3Rp
b24gKCkgeworICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQi
KS5pbm5lclRleHQgPSAiRkFJTCBQcm9taXNlIHJlamVjdGVkLiI7CisgICAgICAgICAgICAgICAg
dGVhckRvd25BbmRGaW5pc2goKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgKTsKKyAgICB9CisK
KyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAiIikgeworICAg
ICAgICAgICAgICAgIC8vIEZpcnN0IGFkIGNsaWNrIDEyNy4wLjAuMSDigJM+IGxvY2FsaG9zdC4K
KyAgICAgICAgICAgICAgICBjb25maWd1cmVMaW5rKDApOworICAgICAgICAgICAgICAgIGFjdGl2
YXRlRWxlbWVudCgidGFyZ2V0TGluayIpOworICAgICAgICAgICAgfSBlbHNlIGlmICh3aW5kb3cu
bG9jYXRpb24uc2VhcmNoID09PSAiP3N0ZXBUd28iKSB7CisgICAgICAgICAgICAgICAgLy8gQ29u
dmVydCB0aGUgZmlyc3QgYWQgY2xpY2sgd2l0aCBwcmlvcml0eSA0LCB0aGVuIGRvIGEgcmV2ZXJz
ZSBhZCBjbGljay4KKyAgICAgICAgICAgICAgICBsZXQgaW1hZ2VFbGVtZW50ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiaW1nIik7CisgICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50LnNyYyA9
ICJodHRwczovLzEyNy4wLjAuMTo4NDQzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMvcmVk
aXJlY3RUb0NvbnZlcnNpb24ucGhwP2NvbnZlcnNpb25EYXRhPTEyJnByaW9yaXR5PTA0IjsKKyAg
ICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQuaWQgPSAicGl4ZWwiOworICAgICAgICAgICAgICAg
IGltYWdlRWxlbWVudC5vbmVycm9yID0gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgICAg
ICAvLyBTZWNvbmQgYWQgY2xpY2sgbG9jYWxob3N0IOKAkz4gMTI3LjAuMC4xLgorICAgICAgICAg
ICAgICAgICAgICBjb25maWd1cmVMaW5rKDEpOworICAgICAgICAgICAgICAgICAgICBhY3RpdmF0
ZUVsZW1lbnQoInRhcmdldExpbmsiKTsKKyAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW1hZ2VFbGVtZW50KTsKKyAgICAgICAgICAg
IH0gZWxzZSBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0gIj9zdGVwVGhyZWUiKSB7Cisg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5jbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbnNUaHJvdWdo
V2Vic2l0ZURhdGFSZW1vdmFsKCk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQWRD
bGlja0F0dHJpYnV0aW9uKCk7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVD
aGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0TGluayIpKTsKKyAgICAgICAgICAg
ICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZB
SUwgVW5rbm93biB3aW5kb3cubG9jYXRpb24uc2VhcmNoID09ICIgKyB3aW5kb3cubG9jYXRpb24u
c2VhcmNoICsgIi4iOworICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgTm8gdGVzdFJ1bm5lci4iOworICAg
ICAgICB9CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9jb252ZXJzaW9uLWRpc2Fi
bGVkLWluLWVwaGVtZXJhbC1zZXNzaW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2NvbnZlcnNpb24tZGlzYWJsZWQtaW4tZXBoZW1lcmFs
LXNlc3Npb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMzNGFiNWQ5MTI1OTQ1ODMwYTJiODQz
ZTcxNzRlMTUwOWQyY2Q1ODAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9jb252ZXJzaW9uLWRpc2FibGVkLWluLWVwaGVtZXJhbC1z
ZXNzaW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1IEBACitUZXN0cyB0aGF0IHN0b3JlZCBh
dHRyaWJ1dGlvbnMgY2Fubm90IGJlIGNvbnZlcnRlZCBpbiBhbiBlcGhlbWVyYWwgc2Vzc2lvbi4K
KworCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTEtLT4nCistLS0tLS0tLQorQ29udmVy
c2lvbiBub3QgcmVjZWl2ZWQgLSB0aW1lZCBvdXQuCisKK1VuY29udmVydGVkIEFkIENsaWNrIEF0
dHJpYnV0aW9uczoKK1dlYkNvcmU6OkFkQ2xpY2tBdHRyaWJ1dGlvbiAxCitTb3VyY2U6IDEyNy4w
LjAuMQorRGVzdGluYXRpb246IGxvY2FsaG9zdAorQ2FtcGFpZ24gSUQ6IDMKK05vIGNvbnZlcnNp
b24gZGF0YS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJp
YnV0aW9uL2NvbnZlcnNpb24tZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24uaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2NvbnZlcnNpb24tZGlzYWJs
ZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YThmMTg0ZmE5ZjE2MmY2
NmM5NDVmMzYzMzg0NGU0MGI2OWVkNWZmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vY29udmVyc2lvbi1kaXNhYmxlZC1pbi1lcGhl
bWVyYWwtc2Vzc2lvbi5odG1sCkBAIC0wLDAgKzEsODAgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSBdIC0tPgorPGh0
bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxt
ZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwt
c2NhbGU9MSwgdXNlci1zY2FsYWJsZT1ubyI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJl
c291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQo
cnVuVGVzdCwgMCkiPgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPlRlc3RzIHRoYXQgc3RvcmVkIGF0
dHJpYnV0aW9ucyBjYW5ub3QgYmUgY29udmVydGVkIGluIGFuIGVwaGVtZXJhbCBzZXNzaW9uLjwv
ZGl2PgorPGEgaWQ9InRhcmdldExpbmsiIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9hZENs
aWNrQXR0cmlidXRpb24vY29udmVyc2lvbi1kaXNhYmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lvbi5o
dG1sP3N0ZXBUd28iIGFkY2FtcGFpZ25pZD0iMyIgYWRkZXN0aW5hdGlvbj0iaHR0cDovL2xvY2Fs
aG9zdDo4MDAwIj5MaW5rPC9hPjxicj4KKzxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Cis8c2NyaXB0
PgorICAgIGNvbnN0IGN1cnJlbnRUaW1lTWlsbGlzID0gKG5ldyBEYXRlKCkpLmdldFRpbWUoKTsK
KyAgICBjb25zdCBoaWdoRW50cm9weUJpdHMgPSBjdXJyZW50VGltZU1pbGxpcyAtIChNYXRoLmZs
b29yKGN1cnJlbnRUaW1lTWlsbGlzIC8gMTAwMDAwMCkgKiAxMDAwMDAwKTsKKyAgICBjb25zdCBu
b25jZSA9IGhpZ2hFbnRyb3B5Qml0cyArICIiICsgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICog
MTAwKTsKKworICAgIHByZXBhcmVUZXN0KCk7CisKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
CisgICAgICAgIHRlc3RSdW5uZXIuc2V0QWRDbGlja0F0dHJpYnV0aW9uQ29udmVyc2lvblVSTEZv
clRlc3RpbmcoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9hZENsaWNrQXR0cmlidXRpb24vcmVzb3Vy
Y2VzL2NvbnZlcnNpb25SZXBvcnQucGhwP25vbmNlPSIgKyBub25jZSk7CisKKyAgICBmdW5jdGlv
biBhY3RpdmF0ZUVsZW1lbnQoZWxlbWVudElEKSB7CisgICAgICAgIHZhciBlbGVtZW50ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElEKTsKKyAgICAgICAgdmFyIGNlbnRlclggPSBl
bGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKKyAgICAgICAgdmFy
IGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsK
KyAgICAgICAgVUlIZWxwZXIuYWN0aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZKS50aGVuKAorICAg
ICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGZ1bmN0
aW9uICgpIHsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0
IikuaW5uZXJUZXh0ID0gIkZBSUwgUHJvbWlzZSByZWplY3RlZC4iOworICAgICAgICAgICAgICAg
IHRlYXJEb3duQW5kRmluaXNoKCk7CisgICAgICAgICAgICB9CisgICAgICAgICk7CisgICAgfQor
CisgICAgZnVuY3Rpb24gYXBwZW5kSWZyYW1lKHVybCwgb25sb2FkQ2FsbGJhY2spIHsKKyAgICAg
ICAgbGV0IGlmcmFtZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsK
KyAgICAgICAgaWZyYW1lRWxlbWVudC5zcmMgPSB1cmw7CisgICAgICAgIGlmIChvbmxvYWRDYWxs
YmFjaykKKyAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQub25sb2FkID0gb25sb2FkQ2FsbGJhY2s7
CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lRWxlbWVudCk7CisgICAg
fQorCisgICAgZnVuY3Rpb24gYXBwZW5kQ29udmVyc2lvbkRhdGFJZnJhbWVBbmRGaW5pc2goKSB7
CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFkQ2xpY2tBdHRyaWJ1dGlvbigpOworICAgICAgICBk
b2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXRM
aW5rIikpOworCisgICAgICAgIGFwcGVuZElmcmFtZSgiaHR0cDovLzEyNy4wLjAuMTo4MDAwL2Fk
Q2xpY2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMvZ2V0Q29udmVyc2lvbkRhdGEucGhwP3RpbWVvdXRf
bXM9MTAwMCZub25jZT0iICsgbm9uY2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVhckRv
d25BbmRGaW5pc2goKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVz
dCgpIHsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICBpZiAo
d2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0gIj9zdGVwVHdvIikgeworICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIuc2V0U2hvdWxkU3dhcFRvRXBoZW1lcmFsU2Vzc2lvbk9uTmV4dE5hdmlnYXRp
b24odHJ1ZSk7CisgICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uID0gImh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMC9hZENsaWNrQXR0cmlidXRpb24vY29udmVyc2lvbi1kaXNhYmxlZC1pbi1lcGhl
bWVyYWwtc2Vzc2lvbi5odG1sP3N0ZXBUaHJlZSI7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHdp
bmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/c3RlcFRocmVlIikgeworICAgICAgICAgICAgICAg
IGxldCBpbWFnZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTsKKyAgICAg
ICAgICAgICAgICBpbWFnZUVsZW1lbnQuc3JjID0gImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvYWRD
bGlja0F0dHJpYnV0aW9uL3Jlc291cmNlcy9yZWRpcmVjdFRvQ29udmVyc2lvbi5waHA/Y29udmVy
c2lvbkRhdGE9MTImbm9uY2U9IiArIG5vbmNlOworICAgICAgICAgICAgICAgIGltYWdlRWxlbWVu
dC5pZCA9ICJwaXhlbCI7CisgICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50Lm9uZXJyb3IgPSBm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTaG91bGRTd2Fw
VG9EZWZhdWx0U2Vzc2lvbk9uTmV4dE5hdmlnYXRpb24odHJ1ZSk7CisgICAgICAgICAgICAgICAg
ICAgIHdpbmRvdy5sb2NhdGlvbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvYWRDbGlja0F0dHJp
YnV0aW9uL2NvbnZlcnNpb24tZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24uaHRtbD9zdGVw
Rm91ciI7CisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5
LmFwcGVuZENoaWxkKGltYWdlRWxlbWVudCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHdpbmRv
dy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/c3RlcEZvdXIiKSB7CisgICAgICAgICAgICAgICAgYXBw
ZW5kQ29udmVyc2lvbkRhdGFJZnJhbWVBbmRGaW5pc2goKTsKKyAgICAgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gImNvb2tpZVNldEFzRmlyc3RQYXJ0
eT0xOyBwYXRoPS8iOworICAgICAgICAgICAgICAgIGFjdGl2YXRlRWxlbWVudCgidGFyZ2V0TGlu
ayIpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIE5vIHRlc3RSdW5u
ZXIuIjsKKyAgICAgICAgfQorICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vZXhwaXJl
ZC1hdHRyaWJ1dGlvbnMtcmVtb3ZlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9leHBpcmVkLWF0dHJpYnV0aW9ucy1yZW1vdmVkLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi41ZTdhZWRkMWZmNjY4MWNkOGY3MGQwZjg0ODQ5MTM2NDRhNjU2
YzEzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0
cmlidXRpb24vZXhwaXJlZC1hdHRyaWJ1dGlvbnMtcmVtb3ZlZC1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw1IEBACitUZXN0cyBleHBpcmF0aW9uIG9mIGFkIGNsaWNrIGF0dHJpYnV0aW9uLgorCisK
KworTm8gc3RvcmVkIEFkIENsaWNrIEF0dHJpYnV0aW9uIGRhdGEuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9leHBpcmVkLWF0dHJpYnV0aW9u
cy1yZW1vdmVkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlv
bi9leHBpcmVkLWF0dHJpYnV0aW9ucy1yZW1vdmVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2EzNTkzMTY2
ZTJlZDM0ZWIxODhkYmM5YjAzYWMyY2MzZThkNDI4OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2V4cGlyZWQtYXR0cmlidXRpb25z
LXJlbW92ZWQuaHRtbApAQCAtMCwwICsxLDUzIEBACis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJr
aXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgXSAtLT4KKzxodG1sIGxh
bmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8bWV0YSBu
YW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxl
PTEsIHVzZXItc2NhbGFibGU9bm8iPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJj
ZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0
aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KHJ1blRl
c3QsIDApIj4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0cyBleHBpcmF0aW9uIG9mIGFkIGNs
aWNrIGF0dHJpYnV0aW9uLjwvZGl2PgorPGEgaWQ9InRhcmdldExpbmsiIGhyZWY9Imh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMC9hZENsaWNrQXR0cmlidXRpb24vZXhwaXJlZC1hdHRyaWJ1dGlvbnMtcmVt
b3ZlZC5odG1sP3N0ZXBUd28iIGFkY2FtcGFpZ25pZD0iMyIgYWRkZXN0aW5hdGlvbj0iaHR0cDov
L2xvY2FsaG9zdDo4MDAwIj5MaW5rPC9hPjxicj4KKzxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Cis8
c2NyaXB0PgorICAgIHByZXBhcmVUZXN0KCk7CisKKyAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1l
bnQoZWxlbWVudElEKSB7CisgICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoZWxlbWVudElEKTsKKyAgICAgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNldExl
ZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKKyAgICAgICAgdmFyIGNlbnRlclkgPSBlbGVt
ZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAgICAgVUlIZWxw
ZXIuYWN0aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZKS50aGVuKAorICAgICAgICAgICAgZnVuY3Rp
b24gKCkgeworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAg
ICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0g
IkZBSUwgUHJvbWlzZSByZWplY3RlZC4iOworICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmlu
aXNoKCk7CisgICAgICAgICAgICB9CisgICAgICAgICk7CisgICAgfQorCisgICAgZnVuY3Rpb24g
cnVuVGVzdCgpIHsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAg
ICBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0gIj9zdGVwVHdvIikgeworICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIubWFya0FkQ2xpY2tBdHRyaWJ1dGlvbnNBc0V4cGlyZWRGb3JUZXN0
aW5nKCk7CisgICAgICAgICAgICAgICAgbGV0IGltYWdlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImltZyIpOworICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5zcmMgPSAiaHR0
cHM6Ly8xMjcuMC4wLjE6ODQ0My9hZENsaWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL3JlZGlyZWN0
VG9Db252ZXJzaW9uLnBocD9jb252ZXJzaW9uRGF0YT0xMiI7CisgICAgICAgICAgICAgICAgaW1h
Z2VFbGVtZW50LmlkID0gInBpeGVsIjsKKyAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQub25l
cnJvciA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBB
ZENsaWNrQXR0cmlidXRpb24oKTsKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5y
ZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0TGluayIpKTsKKyAgICAg
ICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgicGl4ZWwiKSk7CisgICAgICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNo
KCk7CisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFw
cGVuZENoaWxkKGltYWdlRWxlbWVudCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgICAgIGFjdGl2YXRlRWxlbWVudCgidGFyZ2V0TGluayIpOworICAgICAgICAgICAgfQorICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1
dCIpLmlubmVyVGV4dCA9ICJGQUlMIE5vIHRlc3RSdW5uZXIuIjsKKyAgICAgICAgfQorICAgIH0K
Kzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL2NvbnZlcnNpb25GaWxlUGF0aC5w
aHAgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMv
Y29udmVyc2lvbkZpbGVQYXRoLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYTExMjQwYzFkOThjMzg4OGI4ZTlm
MDc5NmI2YzY0Nzg0OGRjZTlkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL2NvbnZlcnNpb25GaWxlUGF0aC5waHAK
QEAgLTAsMCArMSw5IEBACis8P3BocAorcmVxdWlyZV9vbmNlICcuLi8uLi9yZXNvdXJjZXMvcG9y
dGFiaWxpdHlMYXllci5waHAnOworCitpZiAoaXNzZXQoJF9HRVRbIm5vbmNlIl0pKQorICAgICRj
b252ZXJzaW9uRmlsZU5hbWUgPSAiL2FkQ2xpY2tDb252ZXJzaW9uIiAuICRfR0VUWyJub25jZSJd
IC4gIi50eHQiOworZWxzZQorICAgICRjb252ZXJzaW9uRmlsZU5hbWUgPSAiL2FkQ2xpY2tDb252
ZXJzaW9uLnR4dCI7CiskY29udmVyc2lvbkZpbGVQYXRoID0gc3lzX2dldF90ZW1wX2RpcigpIC4g
JGNvbnZlcnNpb25GaWxlTmFtZTsKKz8+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMvY29udmVyc2lvblJlcG9ydC5waHAgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMvY29udmVy
c2lvblJlcG9ydC5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjVjMjAyNjljNzg0OTA2ZmZmNzQ3NDQ4YjM4ODFm
NDA2MzdhYmMwMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRD
bGlja0F0dHJpYnV0aW9uL3Jlc291cmNlcy9jb252ZXJzaW9uUmVwb3J0LnBocApAQCAtMCwwICsx
LDM3IEBACis8P3BocAorcmVxdWlyZV9vbmNlICdjb252ZXJzaW9uRmlsZVBhdGgucGhwJzsKKwor
JGNvbnZlcnNpb25GaWxlID0gZm9wZW4oJGNvbnZlcnNpb25GaWxlUGF0aCAuICIudG1wIiwgJ3cn
KTsKKyRodHRwSGVhZGVycyA9ICRfU0VSVkVSOworJGNvb2tpZXNGb3VuZCA9IGZhbHNlOworZm9y
ZWFjaCAoJGh0dHBIZWFkZXJzIGFzICRuYW1lID0+ICR2YWx1ZSkgeworICAgIGlmICgkbmFtZSA9
PT0gIkhUVFBfSE9TVCIpIHsKKyAgICAgICAgZndyaXRlKCRjb252ZXJzaW9uRmlsZSwgIiRuYW1l
OiAkdmFsdWVcbiIpOworICAgIH0gZWxzZSBpZiAoJG5hbWUgPT09ICJSRVFVRVNUX1VSSSIpIHsK
KyAgICAgICAgJHBvc2l0aW9uT2ZOb25jZSA9IHN0cnBvcygkdmFsdWUsICI/bm9uY2U9Iik7Cisg
ICAgICAgIGlmICgkcG9zaXRpb25PZk5vbmNlID09PSBmYWxzZSkKKyAgICAgICAgICAgICRvdXRw
dXRVUkwgPSAkdmFsdWU7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgICRvdXRwdXRVUkwgPSBz
dWJzdHIoJHZhbHVlLCAwLCAkcG9zaXRpb25PZk5vbmNlKTsKKyAgICAgICAgZndyaXRlKCRjb252
ZXJzaW9uRmlsZSwgIiRuYW1lOiAkb3V0cHV0VVJMXG4iKTsKKyAgICB9IGVsc2UgaWYgKCRuYW1l
ID09PSAiSFRUUF9DT09LSUUiKSB7CisgICAgICAgIGZ3cml0ZSgkY29udmVyc2lvbkZpbGUsICJD
b29raWVzIGluIGNvbnZlcnNpb24gcmVxdWVzdDogJHZhbHVlXG4iKTsKKyAgICAgICAgJGNvb2tp
ZXNGb3VuZCA9IHRydWU7CisgICAgfSBlbHNlIGlmICgkbmFtZSA9PT0gIkNPTlRFTlRfVFlQRSIp
IHsKKyAgICAgICAgZndyaXRlKCRjb252ZXJzaW9uRmlsZSwgIkNvbnRlbnQgdHlwZTogJHZhbHVl
XG4iKTsKKyAgICB9Cit9CitpZiAoISRjb29raWVzRm91bmQpIHsKKyAgICBmd3JpdGUoJGNvbnZl
cnNpb25GaWxlLCAiTm8gY29va2llcyBpbiBjb252ZXJzaW9uIHJlcXVlc3QuXG4iKTsKK30KKwor
JHJlcXVlc3RCb2R5ID0gZmlsZV9nZXRfY29udGVudHMoJ3BocDovL2lucHV0Jyk7Citmd3JpdGUo
JGNvbnZlcnNpb25GaWxlLCAiUmVxdWVzdCBib2R5OlxuJHJlcXVlc3RCb2R5XG4iKTsKKworZmNs
b3NlKCRjb252ZXJzaW9uRmlsZSk7CityZW5hbWUoJGNvbnZlcnNpb25GaWxlUGF0aCAuICIudG1w
IiwgJGNvbnZlcnNpb25GaWxlUGF0aCk7CisKK2hlYWRlcigiSFRUUC8xLjEgMjAwIE9LIik7Citz
ZXRjb29raWUoImNvb2tpZVNldEluQ29udmVyc2lvblJlcG9ydCIsICIxIiwgMCwgIi8iKTsKKwor
Pz4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9u
L3Jlc291cmNlcy9jb252ZXJ0QW5kUG9zdE1lc3NhZ2VCYWNrLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMvY29udmVydEFuZFBvc3RNZXNz
YWdlQmFjay5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI0ODM1YTcxMjE4NTVkZWIyODAwZjY5ODM5M2Q2YzI4
ODM4YTIzMjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xp
Y2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMvY29udmVydEFuZFBvc3RNZXNzYWdlQmFjay5odG1sCkBA
IC0wLDAgKzEsMjcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+
CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGZ1bmN0
aW9uIGZpcmVDb252ZXJzaW9uUGl4ZWwoKSB7CisgICAgICAgICAgICBsZXQgaW1hZ2VFbGVtZW50
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7CisgICAgICAgICAgICBpbWFnZUVsZW1l
bnQuc3JjID0gImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvYWRDbGlja0F0dHJpYnV0aW9uL3Jlc291
cmNlcy9yZWRpcmVjdFRvQ29udmVyc2lvbi5waHA/Y29udmVyc2lvbkRhdGE9MTImcHJpb3JpdHk9
MDMiOworICAgICAgICAgICAgaW1hZ2VFbGVtZW50LmlkID0gInBpeGVsIjsKKyAgICAgICAgICAg
IGltYWdlRWxlbWVudC5vbmVycm9yID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgZG9j
dW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGl4ZWwiKSk7
CisgICAgICAgICAgICAgICAgcG9zdE1lc3NhZ2VCYWNrKCk7CisgICAgICAgICAgICB9OworICAg
ICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbWFnZUVsZW1lbnQpOworICAgICAg
ICB9CisKKyAgICAgICAgZnVuY3Rpb24gcG9zdE1lc3NhZ2VCYWNrKCkgeworICAgICAgICAgICAg
aWYgKHdpbmRvdy5vcGVuZXIpIHsKKyAgICAgICAgICAgICAgICB3aW5kb3cub3BlbmVyLnBvc3RN
ZXNzYWdlKCJEb25lIiwgImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIpOworICAgICAgICAgICAgICAg
IHdpbmRvdy5jbG9zZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgPC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQoZmlyZUNvbnZlcnNpb25QaXhlbCwg
MCkiPgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3Jlc291cmNl
cy9nZXRDb252ZXJzaW9uRGF0YS5waHAgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tB
dHRyaWJ1dGlvbi9yZXNvdXJjZXMvZ2V0Q29udmVyc2lvbkRhdGEucGhwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZm
MTEyNGI4OWNmZDQ5N2Q2MTlmN2U5Y2RkY2E1MWY3ZTkzNzU2ZjQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMvZ2V0
Q29udmVyc2lvbkRhdGEucGhwCkBAIC0wLDAgKzEsNTQgQEAKKzw/cGhwCityZXF1aXJlX29uY2Ug
J2NvbnZlcnNpb25GaWxlUGF0aC5waHAnOworCiskbm9UaW1lb3V0ID0gVHJ1ZTsKKyR0aW1lb3V0
TXNlY3MgPSAwOworaWYgKGlzc2V0KCRfR0VUWyd0aW1lb3V0X21zJ10pKSB7CisgICAgJG5vVGlt
ZW91dCA9IEZhbHNlOworICAgICR0aW1lb3V0TXNlY3MgPSAoaW50KSAkX0dFVFsndGltZW91dF9t
cyddOworfQorCiskY29udmVyc2lvbkZpbGVGb3VuZCA9IEZhbHNlOword2hpbGUgKCRub1RpbWVv
dXQgfHwgJHRpbWVvdXRNc2VjcyA+IDApIHsKKyAgICBpZiAoZmlsZV9leGlzdHMoJGNvbnZlcnNp
b25GaWxlUGF0aCkpIHsKKyAgICAgICAgJGNvbnZlcnNpb25GaWxlRm91bmQgPSBUcnVlOworICAg
ICAgICBicmVhazsKKyAgICB9CisgICAgJHNsZWVwTXNlY3MgPSAxMDsKKyAgICB1c2xlZXAoJHNs
ZWVwTXNlY3MgKiAxMDAwKTsKKyAgICBpZiAoISRub1RpbWVvdXQpIHsKKyAgICAgICAgJHRpbWVv
dXRNc2VjcyAtPSAkc2xlZXBNc2VjczsKKyAgICB9CisgICAgLy8gZmlsZV9leGlzdHMoKSBjYWNo
ZXMgcmVzdWx0cywgd2Ugd2FudCB0byBpbnZhbGlkYXRlIHRoZSBjYWNoZS4KKyAgICBjbGVhcnN0
YXRjYWNoZSgpOworfQorCisKK2VjaG8gIjxodG1sPjxib2R5PlxuIjsKKworaWYgKCRjb252ZXJz
aW9uRmlsZUZvdW5kKSB7CisgICAgZWNobyAiQ29udmVyc2lvbiByZWNlaXZlZC4iOworICAgICRj
b252ZXJzaW9uRmlsZSA9IGZvcGVuKCRjb252ZXJzaW9uRmlsZVBhdGgsICdyJyk7CisgICAgd2hp
bGUgKCRsaW5lID0gZmdldHMoJGNvbnZlcnNpb25GaWxlKSkgeworICAgICAgICBlY2hvICI8YnI+
IjsKKyAgICAgICAgZWNobyB0cmltKCRsaW5lKTsKKyAgICB9CisgICAgZWNobyAiPGJyPiI7Cisg
ICAgZmNsb3NlKCRjb252ZXJzaW9uRmlsZSk7CisgICAgdW5saW5rKCRjb252ZXJzaW9uRmlsZVBh
dGgpOworfSBlbHNlIHsKKyAgICBlY2hvICJDb252ZXJzaW9uIG5vdCByZWNlaXZlZCAtIHRpbWVk
IG91dC48YnI+IjsKK30KKworaWYgKGlzc2V0KCRfR0VUWydlbmRUZXN0J10pKSB7CisgICAgZWNo
byAiPHNjcmlwdD4iOworICAgIGVjaG8gImlmICh3aW5kb3cudGVzdFJ1bm5lcikgeyI7CisgICAg
ZWNobyAiICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOyI7CisgICAgZWNobyAiICAgIHRlc3RS
dW5uZXIuc2V0QWRDbGlja0F0dHJpYnV0aW9uT3ZlcnJpZGVUaW1lckZvclRlc3RpbmcoZmFsc2Up
OyI7CisgICAgZWNobyAiICAgIHRlc3RSdW5uZXIuc2V0QWRDbGlja0F0dHJpYnV0aW9uQ29udmVy
c2lvblVSTEZvclRlc3RpbmcoJycpOyI7CisgICAgZWNobyAifSI7CisgICAgZWNobyAiPC9zY3Jp
cHQ+IjsKK30KKworZWNobyAiPC9ib2R5PjwvaHRtbD4iOworPz4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3Jlc291cmNlcy9yZWRpcmVjdFRv
Q29udmVyc2lvbi5waHAgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlv
bi9yZXNvdXJjZXMvcmVkaXJlY3RUb0NvbnZlcnNpb24ucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcwY2ViNDYx
N2QwZWViMWUzNzVkZmRiNjMzZThjY2Q3N2RhNWUxM2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMvcmVkaXJlY3RU
b0NvbnZlcnNpb24ucGhwCkBAIC0wLDAgKzEsOSBAQAorPD9waHAKK2hlYWRlcigiSFRUUC8xLjEg
MzAyIEZvdW5kIik7CitoZWFkZXIoIkNhY2hlLUNvbnRyb2w6IG5vLWNhY2hlLCBuby1zdG9yZSwg
bXVzdC1yZXZhbGlkYXRlIik7CitpZiAoaXNzZXQoJF9HRVRbImNvbnZlcnNpb25EYXRhIl0pICYm
IGlzc2V0KCRfR0VUWyJwcmlvcml0eSJdKSkgeworICBoZWFkZXIoIkxvY2F0aW9uOiAvLndlbGwt
a25vd24vYWQtY2xpY2stYXR0cmlidXRpb24vIiAuICRfR0VUWyJjb252ZXJzaW9uRGF0YSJdIC4g
Ii8iIC4gJF9HRVRbInByaW9yaXR5Il0pOworfSBlbHNlIGlmIChpc3NldCgkX0dFVFsiY29udmVy
c2lvbkRhdGEiXSkpIHsKKyAgaGVhZGVyKCJMb2NhdGlvbjogLy53ZWxsLWtub3duL2FkLWNsaWNr
LWF0dHJpYnV0aW9uLyIgLiAkX0dFVFsiY29udmVyc2lvbkRhdGEiXSk7Cit9Cis/PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vcmVzb3VyY2Vz
L3JlZGlyZWN0VG9Db252ZXJzaW9uT25JUEFkZHJlc3MucGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uT25J
UEFkZHJlc3MucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBmZTFhYTk4NzQ4MzgwODY1ZTkxNmYxNTIxODU1ZDNj
ODI2OGIyNzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xp
Y2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMvcmVkaXJlY3RUb0NvbnZlcnNpb25PbklQQWRkcmVzcy5w
aHAKQEAgLTAsMCArMSw4IEBACis8P3BocAoraGVhZGVyKCJIVFRQLzEuMCAzMDIgRm91bmQiKTsK
K2lmIChpc3NldCgkX0dFVFsiY29udmVyc2lvbkRhdGEiXSkgJiYgaXNzZXQoJF9HRVRbInByaW9y
aXR5Il0pKSB7CisgIGhlYWRlcigiTG9jYXRpb246IGh0dHBzOi8vMTI3LjAuMC4xOjgwMDAvLndl
bGwta25vd24vYWQtY2xpY2stYXR0cmlidXRpb24vIiAuICRfR0VUWyJjb252ZXJzaW9uRGF0YSJd
IC4gIi8iIC4gJF9HRVRbInByaW9yaXR5Il0pOworfSBlbHNlIGlmIChpc3NldCgkX0dFVFsiY29u
dmVyc2lvbkRhdGEiXSkpIHsKKyAgaGVhZGVyKCJMb2NhdGlvbjogaHR0cHM6Ly8xMjcuMC4wLjE6
ODAwMC8ud2VsbC1rbm93bi9hZC1jbGljay1hdHRyaWJ1dGlvbi8iIC4gJF9HRVRbImNvbnZlcnNp
b25EYXRhIl0pOworfQorPz4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRD
bGlja0F0dHJpYnV0aW9uL3Jlc291cmNlcy91dGlsLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9hZENsaWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL3V0aWwuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmI2MjU0
NTNkMGMwM2ExNmRhYjZmMjg0ZjNiZDI1NDAwYzhkNzk2YQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3Jlc291cmNlcy91dGlsLmpz
CkBAIC0wLDAgKzEsMTcgQEAKK2Z1bmN0aW9uIHByZXBhcmVUZXN0KCkgeworICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAg
ICAgICAgdGVzdFJ1bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAgICAgICAgdGVzdFJ1
bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0QWxsb3dzQW55U1NMQ2Vy
dGlmaWNhdGUodHJ1ZSk7CisgICAgfQorfQorCitmdW5jdGlvbiB0ZWFyRG93bkFuZEZpbmlzaCgp
IHsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRB
bGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZShmYWxzZSk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0QWRD
bGlja0F0dHJpYnV0aW9uT3ZlcnJpZGVUaW1lckZvclRlc3RpbmcoZmFsc2UpOworICAgICAgICB0
ZXN0UnVubmVyLnNldEFkQ2xpY2tBdHRyaWJ1dGlvbkNvbnZlcnNpb25VUkxGb3JUZXN0aW5nKCIi
KTsKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgfQorfQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vc2Vjb25kLWF0dHJp
YnV0aW9uLWNvbnZlcnRlZC13aXRoLWhpZ2hlci1wcmlvcml0eS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9zZWNvbmQtYXR0cmlidXRpb24t
Y29udmVydGVkLXdpdGgtaGlnaGVyLXByaW9yaXR5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
OTBmY2JjYmZkZjFjODE1ZGRhNDI1YjU0NmIyMGRlMTMzYTNmMWE4Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vc2Vjb25kLWF0dHJp
YnV0aW9uLWNvbnZlcnRlZC13aXRoLWhpZ2hlci1wcmlvcml0eS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxMiBAQAorVGVzdHMgdGhhdCBhIHNlY29uZCBhdHRyaWJ1dGlvbiBjb252ZXJzaW9uIHdp
dGggaGlnaGVyIHByaW9yaXR5IHJlcGxhY2VzIGFuIG9sZGVyIHdpdGggbG93ZXIgcHJpb3JpdHku
CisKKworQ29udmVydGVkIEFkIENsaWNrIEF0dHJpYnV0aW9uczoKK1dlYkNvcmU6OkFkQ2xpY2tB
dHRyaWJ1dGlvbiAxCitTb3VyY2U6IDEyNy4wLjAuMQorRGVzdGluYXRpb246IGxvY2FsaG9zdAor
Q2FtcGFpZ24gSUQ6IDQKK0NvbnZlcnNpb24gZGF0YTogMTIKK0NvbnZlcnNpb24gcHJpb3JpdHk6
IDQKK0NvbnZlcnNpb24gZWFybGllc3QgdGltZSB0byBzZW5kOiBXaXRoaW4gMjQtNDggaG91cnMK
K0NvbnZlcnNpb24gcmVxdWVzdCBzZW50OiBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vc2Vjb25kLWF0dHJpYnV0aW9uLWNvbnZlcnRl
ZC13aXRoLWhpZ2hlci1wcmlvcml0eS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENs
aWNrQXR0cmlidXRpb24vc2Vjb25kLWF0dHJpYnV0aW9uLWNvbnZlcnRlZC13aXRoLWhpZ2hlci1w
cmlvcml0eS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM3ZTJhMGMyY2M3NDZjNTI2YWZjYjFiZWE4MzE0YjFj
ZTBjOWQwNDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xp
Y2tBdHRyaWJ1dGlvbi9zZWNvbmQtYXR0cmlidXRpb24tY29udmVydGVkLXdpdGgtaGlnaGVyLXBy
aW9yaXR5Lmh0bWwKQEAgLTAsMCArMSw5MiBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIF0gLS0+Cis8aHRtbCBsYW5n
PSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPG1ldGEgbmFt
ZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0x
LCB1c2VyLXNjYWxhYmxlPW5vIj4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2Vz
L3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGls
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0VGltZW91dChydW5UZXN0
LCAwKSI+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgdGhhdCBhIHNlY29uZCBhdHRyaWJ1
dGlvbiBjb252ZXJzaW9uIHdpdGggaGlnaGVyIHByaW9yaXR5IHJlcGxhY2VzIGFuIG9sZGVyIHdp
dGggbG93ZXIgcHJpb3JpdHkuPC9kaXY+Cis8YSBpZD0idGFyZ2V0TGluayI+TGluazwvYT48YnI+
Cis8ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgorPHNjcmlwdD4KKyAgICBjb25zdCBwYXRoID0gIi9h
ZENsaWNrQXR0cmlidXRpb24vc2Vjb25kLWF0dHJpYnV0aW9uLWNvbnZlcnRlZC13aXRoLWhpZ2hl
ci1wcmlvcml0eS5odG1sIjsKKyAgICBjb25zdCBjb25maWd1cmF0aW9uID0gWworICAgICAgICB7
CisgICAgICAgICAgICBocmVmOiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIiArIHBhdGggKyAiP3N0
ZXBUd28iLAorICAgICAgICAgICAgYWRjYW1wYWlnbmlkOiAiMyIsCisgICAgICAgICAgICBhZGRl
c3RpbmF0aW9uOiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIgorICAgICAgICB9LAorICAgICAgICB7
CisgICAgICAgICAgICBocmVmOiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIiArIHBhdGggKyAiP3N0
ZXBGb3VyIiwKKyAgICAgICAgICAgIGFkY2FtcGFpZ25pZDogIjQiLAorICAgICAgICAgICAgYWRk
ZXN0aW5hdGlvbjogImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIKKyAgICAgICAgfQorICAgIF07CisK
KyAgICBwcmVwYXJlVGVzdCgpOworCisgICAgZnVuY3Rpb24gY29uZmlndXJlTGluayhpbmRleCkg
eworICAgICAgICBsZXQgbGlua0VsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFy
Z2V0TGluayIpOworICAgICAgICBsaW5rRWxlbWVudC5zZXRBdHRyaWJ1dGUoImhyZWYiLCBjb25m
aWd1cmF0aW9uW2luZGV4XS5ocmVmKTsKKyAgICAgICAgbGlua0VsZW1lbnQuc2V0QXR0cmlidXRl
KCJhZGNhbXBhaWduaWQiLCBjb25maWd1cmF0aW9uW2luZGV4XS5hZGNhbXBhaWduaWQpOworICAg
ICAgICBsaW5rRWxlbWVudC5zZXRBdHRyaWJ1dGUoImFkZGVzdGluYXRpb24iLCBjb25maWd1cmF0
aW9uW2luZGV4XS5hZGRlc3RpbmF0aW9uKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBhY3RpdmF0
ZUVsZW1lbnQoZWxlbWVudElEKSB7CisgICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoZWxlbWVudElEKTsKKyAgICAgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9m
ZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKKyAgICAgICAgdmFyIGNlbnRlclkg
PSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAgICAg
VUlIZWxwZXIuYWN0aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZKS50aGVuKAorICAgICAgICAgICAg
ZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsK
KyAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJU
ZXh0ID0gIkZBSUwgUHJvbWlzZSByZWplY3RlZC4iOworICAgICAgICAgICAgICAgIHRlYXJEb3du
QW5kRmluaXNoKCk7CisgICAgICAgICAgICB9CisgICAgICAgICk7CisgICAgfQorCisgICAgZnVu
Y3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAg
ICAgICAgICBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0gIiIpIHsKKyAgICAgICAgICAg
ICAgICAvLyBGaXJzdCBhZCBjbGljayAxMjcuMC4wLjEg4oCTPiBsb2NhbGhvc3QuCisgICAgICAg
ICAgICAgICAgY29uZmlndXJlTGluaygwKTsKKyAgICAgICAgICAgICAgICBhY3RpdmF0ZUVsZW1l
bnQoInRhcmdldExpbmsiKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAod2luZG93LmxvY2F0aW9u
LnNlYXJjaCA9PT0gIj9zdGVwVHdvIikgeworICAgICAgICAgICAgICAgIC8vIENvbnZlcnQgdGhl
IGZpcnN0IGFkIGNsaWNrIHdpdGggcHJpb3JpdHkgMyBhbmQgbmF2aWdhdGUgYmFjayB0byAxMjcu
MC4wLjEuCisgICAgICAgICAgICAgICAgbGV0IGltYWdlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImltZyIpOworICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5zcmMgPSAiaHR0
cHM6Ly8xMjcuMC4wLjE6ODQ0My9hZENsaWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL3JlZGlyZWN0
VG9Db252ZXJzaW9uLnBocD9jb252ZXJzaW9uRGF0YT0xMiZwcmlvcml0eT0wMyI7CisgICAgICAg
ICAgICAgICAgaW1hZ2VFbGVtZW50LmlkID0gInBpeGVsIjsKKyAgICAgICAgICAgICAgICBpbWFn
ZUVsZW1lbnQub25lcnJvciA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICAgICAgZG9j
dW1lbnQubG9jYXRpb24uaHJlZiA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiICsgcGF0aCArICI/
c3RlcFRocmVlIjsKKyAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgIGRvY3VtZW50
LmJvZHkuYXBwZW5kQ2hpbGQoaW1hZ2VFbGVtZW50KTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAo
d2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0gIj9zdGVwVGhyZWUiKSB7CisgICAgICAgICAgICAg
ICAgLy8gU2Vjb25kIGFkIGNsaWNrIDEyNy4wLjAuMSDigJM+IGxvY2FsaG9zdC4KKyAgICAgICAg
ICAgICAgICBjb25maWd1cmVMaW5rKDEpOworICAgICAgICAgICAgICAgIGFjdGl2YXRlRWxlbWVu
dCgidGFyZ2V0TGluayIpOworICAgICAgICAgICAgfSBlbHNlIGlmICh3aW5kb3cubG9jYXRpb24u
c2VhcmNoID09PSAiP3N0ZXBGb3VyIikgeworICAgICAgICAgICAgICAgIC8vIENvbnZlcnQgdGhl
IHNlY29uZCBhZCBjbGljayB3aXRoIHByaW9yaXR5IDQgYW5kIGZpbmlzaC4KKyAgICAgICAgICAg
ICAgICBsZXQgaW1hZ2VFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7Cisg
ICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50LnNyYyA9ICJodHRwczovLzEyNy4wLjAuMTo4NDQz
L2FkQ2xpY2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMvcmVkaXJlY3RUb0NvbnZlcnNpb24ucGhwP2Nv
bnZlcnNpb25EYXRhPTEyJnByaW9yaXR5PTA0IjsKKyAgICAgICAgICAgICAgICBpbWFnZUVsZW1l
bnQuaWQgPSAicGl4ZWwiOworICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5vbmVycm9yID0g
ZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBZENsaWNr
QXR0cmlidXRpb24oKTsKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVD
aGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0TGluayIpKTsKKyAgICAgICAgICAg
ICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgicGl4ZWwiKSk7CisgICAgICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7Cisg
ICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENo
aWxkKGltYWdlRWxlbWVudCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBVbmtu
b3duIHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT0gIiArIHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gg
KyAiLiI7CisgICAgICAgICAgICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBObyB0ZXN0UnVubmVyLiI7CisgICAgICAgIH0K
KyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3NlY29uZC1hdHRyaWJ1dGlvbi1jb252
ZXJ0ZWQtd2l0aC1sb3dlci1wcmlvcml0eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9zZWNvbmQtYXR0cmlidXRpb24tY29udmVydGVkLXdp
dGgtbG93ZXItcHJpb3JpdHktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE3ZTJkZjcwY2M5ZmJl
MzVhOGU0MzdjZGU2NDIwOGM3NmNiODdhMTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9zZWNvbmQtYXR0cmlidXRpb24tY29udmVy
dGVkLXdpdGgtbG93ZXItcHJpb3JpdHktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rl
c3RzIHRoYXQgYSBzZWNvbmQgYXR0cmlidXRpb24gY29udmVyc2lvbiB3aXRoIGxvd2VyIHByaW9y
aXR5IGRvZXMgbm90IHJlcGxhY2UgYW4gb2xkZXIgd2l0aCBoaWdoZXIgcHJpb3JpdHkuCisKKwor
Q29udmVydGVkIEFkIENsaWNrIEF0dHJpYnV0aW9uczoKK1dlYkNvcmU6OkFkQ2xpY2tBdHRyaWJ1
dGlvbiAxCitTb3VyY2U6IDEyNy4wLjAuMQorRGVzdGluYXRpb246IGxvY2FsaG9zdAorQ2FtcGFp
Z24gSUQ6IDMKK0NvbnZlcnNpb24gZGF0YTogMTIKK0NvbnZlcnNpb24gcHJpb3JpdHk6IDQKK0Nv
bnZlcnNpb24gZWFybGllc3QgdGltZSB0byBzZW5kOiBXaXRoaW4gMjQtNDggaG91cnMKK0NvbnZl
cnNpb24gcmVxdWVzdCBzZW50OiBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vc2Vjb25kLWF0dHJpYnV0aW9uLWNvbnZlcnRlZC13aXRo
LWxvd2VyLXByaW9yaXR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRy
aWJ1dGlvbi9zZWNvbmQtYXR0cmlidXRpb24tY29udmVydGVkLXdpdGgtbG93ZXItcHJpb3JpdHku
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi44YTM1NzJkYmQwYzJmMGJkNjU2YTk0ZTA1MWMxMDc5ZmEyMmY4OWFl
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmli
dXRpb24vc2Vjb25kLWF0dHJpYnV0aW9uLWNvbnZlcnRlZC13aXRoLWxvd2VyLXByaW9yaXR5Lmh0
bWwKQEAgLTAsMCArMSw5MiBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIF0gLS0+Cis8aHRtbCBsYW5nPSJlbiI+Cis8
aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPG1ldGEgbmFtZT0idmlld3Bv
cnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCB1c2VyLXNj
YWxhYmxlPW5vIj4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBl
ci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0VGltZW91dChydW5UZXN0LCAwKSI+Cis8
ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgdGhhdCBhIHNlY29uZCBhdHRyaWJ1dGlvbiBjb252
ZXJzaW9uIHdpdGggbG93ZXIgcHJpb3JpdHkgZG9lcyBub3QgcmVwbGFjZSBhbiBvbGRlciB3aXRo
IGhpZ2hlciBwcmlvcml0eS48L2Rpdj4KKzxhIGlkPSJ0YXJnZXRMaW5rIj5MaW5rPC9hPjxicj4K
KzxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Cis8c2NyaXB0PgorICAgIGNvbnN0IHBhdGggPSAiL2Fk
Q2xpY2tBdHRyaWJ1dGlvbi9zZWNvbmQtYXR0cmlidXRpb24tY29udmVydGVkLXdpdGgtbG93ZXIt
cHJpb3JpdHkuaHRtbCI7CisgICAgY29uc3QgY29uZmlndXJhdGlvbiA9IFsKKyAgICAgICAgewor
ICAgICAgICAgICAgaHJlZjogImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIgKyBwYXRoICsgIj9zdGVw
VHdvIiwKKyAgICAgICAgICAgIGFkY2FtcGFpZ25pZDogIjMiLAorICAgICAgICAgICAgYWRkZXN0
aW5hdGlvbjogImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIKKyAgICAgICAgfSwKKyAgICAgICAgewor
ICAgICAgICAgICAgaHJlZjogImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIgKyBwYXRoICsgIj9zdGVw
Rm91ciIsCisgICAgICAgICAgICBhZGNhbXBhaWduaWQ6ICI0IiwKKyAgICAgICAgICAgIGFkZGVz
dGluYXRpb246ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiCisgICAgICAgIH0KKyAgICBdOworCisg
ICAgcHJlcGFyZVRlc3QoKTsKKworICAgIGZ1bmN0aW9uIGNvbmZpZ3VyZUxpbmsoaW5kZXgpIHsK
KyAgICAgICAgbGV0IGxpbmtFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdl
dExpbmsiKTsKKyAgICAgICAgbGlua0VsZW1lbnQuc2V0QXR0cmlidXRlKCJocmVmIiwgY29uZmln
dXJhdGlvbltpbmRleF0uaHJlZik7CisgICAgICAgIGxpbmtFbGVtZW50LnNldEF0dHJpYnV0ZSgi
YWRjYW1wYWlnbmlkIiwgY29uZmlndXJhdGlvbltpbmRleF0uYWRjYW1wYWlnbmlkKTsKKyAgICAg
ICAgbGlua0VsZW1lbnQuc2V0QXR0cmlidXRlKCJhZGRlc3RpbmF0aW9uIiwgY29uZmlndXJhdGlv
bltpbmRleF0uYWRkZXN0aW5hdGlvbik7CisgICAgfQorCisgICAgZnVuY3Rpb24gYWN0aXZhdGVF
bGVtZW50KGVsZW1lbnRJRCkgeworICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKGVsZW1lbnRJRCk7CisgICAgICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZz
ZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7CisgICAgICAgIHZhciBjZW50ZXJZID0g
ZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7CisgICAgICAgIFVJ
SGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKKyAgICAgICAgICAgIGZ1
bmN0aW9uICgpIHsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBmdW5jdGlvbiAoKSB7Cisg
ICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4
dCA9ICJGQUlMIFByb21pc2UgcmVqZWN0ZWQuIjsKKyAgICAgICAgICAgICAgICB0ZWFyRG93bkFu
ZEZpbmlzaCgpOworICAgICAgICAgICAgfQorICAgICAgICApOworICAgIH0KKworICAgIGZ1bmN0
aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAg
ICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICIiKSB7CisgICAgICAgICAgICAg
ICAgLy8gRmlyc3QgYWQgY2xpY2sgMTI3LjAuMC4xIOKAkz4gbG9jYWxob3N0LgorICAgICAgICAg
ICAgICAgIGNvbmZpZ3VyZUxpbmsoMCk7CisgICAgICAgICAgICAgICAgYWN0aXZhdGVFbGVtZW50
KCJ0YXJnZXRMaW5rIik7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHdpbmRvdy5sb2NhdGlvbi5z
ZWFyY2ggPT09ICI/c3RlcFR3byIpIHsKKyAgICAgICAgICAgICAgICAvLyBDb252ZXJ0IHRoZSBm
aXJzdCBhZCBjbGljayB3aXRoIHByaW9yaXR5IDQgYW5kIG5hdmlnYXRlIGJhY2sgdG8gMTI3LjAu
MC4xLgorICAgICAgICAgICAgICAgIGxldCBpbWFnZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJpbWciKTsKKyAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQuc3JjID0gImh0dHBz
Oi8vMTI3LjAuMC4xOjg0NDMvYWRDbGlja0F0dHJpYnV0aW9uL3Jlc291cmNlcy9yZWRpcmVjdFRv
Q29udmVyc2lvbi5waHA/Y29udmVyc2lvbkRhdGE9MTImcHJpb3JpdHk9MDQiOworICAgICAgICAg
ICAgICAgIGltYWdlRWxlbWVudC5pZCA9ICJwaXhlbCI7CisgICAgICAgICAgICAgICAgaW1hZ2VF
bGVtZW50Lm9uZXJyb3IgPSBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgICAgIGRvY3Vt
ZW50LmxvY2F0aW9uLmhyZWYgPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiArIHBhdGggKyAiP3N0
ZXBUaHJlZSI7CisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5i
b2R5LmFwcGVuZENoaWxkKGltYWdlRWxlbWVudCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHdp
bmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/c3RlcFRocmVlIikgeworICAgICAgICAgICAgICAg
IC8vIFNlY29uZCBhZCBjbGljayAxMjcuMC4wLjEg4oCTPiBsb2NhbGhvc3QuCisgICAgICAgICAg
ICAgICAgY29uZmlndXJlTGluaygxKTsKKyAgICAgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQo
InRhcmdldExpbmsiKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAod2luZG93LmxvY2F0aW9uLnNl
YXJjaCA9PT0gIj9zdGVwRm91ciIpIHsKKyAgICAgICAgICAgICAgICAvLyBDb252ZXJ0IHRoZSBz
ZWNvbmQgYWQgY2xpY2sgd2l0aCBwcmlvcml0eSAzIGFuZCBmaW5pc2guCisgICAgICAgICAgICAg
ICAgbGV0IGltYWdlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpOworICAg
ICAgICAgICAgICAgIGltYWdlRWxlbWVudC5zcmMgPSAiaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9h
ZENsaWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uLnBocD9jb252
ZXJzaW9uRGF0YT0xMiZwcmlvcml0eT0wMyI7CisgICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50
LmlkID0gInBpeGVsIjsKKyAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQub25lcnJvciA9IGZ1
bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQWRDbGlja0F0
dHJpYnV0aW9uKCk7CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hp
bGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKSk7CisgICAgICAgICAgICAg
ICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InBpeGVsIikpOworICAgICAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOworICAg
ICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGls
ZChpbWFnZUVsZW1lbnQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgVW5rbm93
biB3aW5kb3cubG9jYXRpb24uc2VhcmNoID09ICIgKyB3aW5kb3cubG9jYXRpb24uc2VhcmNoICsg
Ii4iOworICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7CisgICAgICAgICAgICB9
CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
b3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgTm8gdGVzdFJ1bm5lci4iOworICAgICAgICB9Cisg
ICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9zZWNvbmQtY29udmVyc2lvbi13aXRoLWhp
Z2hlci1wcmlvcml0eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xp
Y2tBdHRyaWJ1dGlvbi9zZWNvbmQtY29udmVyc2lvbi13aXRoLWhpZ2hlci1wcmlvcml0eS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uM2UxYjFiYTM4NjVhMjU1YWQ3OWRmODYyMjFkNTQwYWY1Njc5
Mjg3MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0
dHJpYnV0aW9uL3NlY29uZC1jb252ZXJzaW9uLXdpdGgtaGlnaGVyLXByaW9yaXR5LWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0aGF0IHRoZSBhdHRyaWJ1dGlvbiBpcyB1cGRh
dGVkIGlmIGl0IGdldHMgYSBzZWNvbmQgY29udmVyc2lvbiB3aXRoIGhpZ2hlciBwcmlvcml0eS4K
KworCitDb252ZXJ0ZWQgQWQgQ2xpY2sgQXR0cmlidXRpb25zOgorV2ViQ29yZTo6QWRDbGlja0F0
dHJpYnV0aW9uIDEKK1NvdXJjZTogMTI3LjAuMC4xCitEZXN0aW5hdGlvbjogbG9jYWxob3N0CitD
YW1wYWlnbiBJRDogMworQ29udmVyc2lvbiBkYXRhOiAxMgorQ29udmVyc2lvbiBwcmlvcml0eTog
NAorQ29udmVyc2lvbiBlYXJsaWVzdCB0aW1lIHRvIHNlbmQ6IFdpdGhpbiAyNC00OCBob3Vycwor
Q29udmVyc2lvbiByZXF1ZXN0IHNlbnQ6IGZhbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9zZWNvbmQtY29udmVyc2lvbi13aXRoLWhpZ2hl
ci1wcmlvcml0eS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRp
b24vc2Vjb25kLWNvbnZlcnNpb24td2l0aC1oaWdoZXItcHJpb3JpdHkuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5lZGZmNTkyZjcxZDhjNGU5MTRmMTA5MGQ1YjllMzcyZDY5YTY3N2Q3Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vc2Vjb25kLWNv
bnZlcnNpb24td2l0aC1oaWdoZXItcHJpb3JpdHkuaHRtbApAQCAtMCwwICsxLDg1IEBACis8IURP
Q1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0
PXRydWUgXSAtLT4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9
IlVURi04Ij4KKyAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNl
LXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHVzZXItc2NhbGFibGU9bm8iPgorICAgIDxzY3JpcHQg
c3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25s
b2FkPSJzZXRUaW1lb3V0KHJ1blRlc3QsIDApIj4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0
cyB0aGF0IHRoZSBhdHRyaWJ1dGlvbiBpcyB1cGRhdGVkIGlmIGl0IGdldHMgYSBzZWNvbmQgY29u
dmVyc2lvbiB3aXRoIGhpZ2hlciBwcmlvcml0eS48L2Rpdj4KKzxhIGlkPSJ0YXJnZXRMaW5rIj5M
aW5rPC9hPjxicj4KKzxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Cis8c2NyaXB0PgorICAgIGNvbnN0
IHBhdGggPSAiL2FkQ2xpY2tBdHRyaWJ1dGlvbi9zZWNvbmQtY29udmVyc2lvbi13aXRoLWhpZ2hl
ci1wcmlvcml0eS5odG1sIjsKKyAgICBjb25zdCBjb25maWd1cmF0aW9uID0gWworICAgICAgICB7
CisgICAgICAgICAgICBocmVmOiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIiArIHBhdGggKyAiP3N0
ZXBUd28iLAorICAgICAgICAgICAgYWRjYW1wYWlnbmlkOiAiMyIsCisgICAgICAgICAgICBhZGRl
c3RpbmF0aW9uOiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIgorICAgICAgICB9CisgICAgXTsKKwor
ICAgIHByZXBhcmVUZXN0KCk7CisKKyAgICBmdW5jdGlvbiBjb25maWd1cmVMaW5rKGluZGV4KSB7
CisgICAgICAgIGxldCBsaW5rRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJn
ZXRMaW5rIik7CisgICAgICAgIGxpbmtFbGVtZW50LnNldEF0dHJpYnV0ZSgiaHJlZiIsIGNvbmZp
Z3VyYXRpb25baW5kZXhdLmhyZWYpOworICAgICAgICBsaW5rRWxlbWVudC5zZXRBdHRyaWJ1dGUo
ImFkY2FtcGFpZ25pZCIsIGNvbmZpZ3VyYXRpb25baW5kZXhdLmFkY2FtcGFpZ25pZCk7CisgICAg
ICAgIGxpbmtFbGVtZW50LnNldEF0dHJpYnV0ZSgiYWRkZXN0aW5hdGlvbiIsIGNvbmZpZ3VyYXRp
b25baW5kZXhdLmFkZGVzdGluYXRpb24pOworICAgIH0KKworICAgIGZ1bmN0aW9uIGFjdGl2YXRl
RWxlbWVudChlbGVtZW50SUQpIHsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZChlbGVtZW50SUQpOworICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zm
c2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOworICAgICAgICB2YXIgY2VudGVyWSA9
IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOworICAgICAgICBV
SUhlbHBlci5hY3RpdmF0ZUF0KGNlbnRlclgsIGNlbnRlclkpLnRoZW4oCisgICAgICAgICAgICBm
dW5jdGlvbiAoKSB7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgZnVuY3Rpb24gKCkgewor
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRl
eHQgPSAiRkFJTCBQcm9taXNlIHJlamVjdGVkLiI7CisgICAgICAgICAgICAgICAgdGVhckRvd25B
bmRGaW5pc2goKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgKTsKKyAgICB9CisKKyAgICBmdW5j
dGlvbiBjb252ZXJ0KHByaW9yaXR5LCBjYWxsYmFjaykgeworICAgICAgICBsZXQgcGl4ZWxFbGVt
ZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBpeGVsIik7CisgICAgICAgIGlmIChwaXhl
bEVsZW1lbnQpCisgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHBpeGVsRWxl
bWVudCk7CisKKyAgICAgICAgbGV0IGltYWdlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImltZyIpOworICAgICAgICBpbWFnZUVsZW1lbnQuc3JjID0gImh0dHBzOi8vMTI3LjAuMC4x
Ojg0NDMvYWRDbGlja0F0dHJpYnV0aW9uL3Jlc291cmNlcy9yZWRpcmVjdFRvQ29udmVyc2lvbi5w
aHA/Y29udmVyc2lvbkRhdGE9MTImcHJpb3JpdHk9IiArIHByaW9yaXR5OworICAgICAgICBpbWFn
ZUVsZW1lbnQuaWQgPSAicGl4ZWwiOworICAgICAgICBpbWFnZUVsZW1lbnQub25lcnJvciA9IGNh
bGxiYWNrOworICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltYWdlRWxlbWVudCk7
CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKSB7CisgICAgICAgICAgICBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0g
IiIpIHsKKyAgICAgICAgICAgICAgICAvLyBBZCBjbGljayAxMjcuMC4wLjEg4oCTPiBsb2NhbGhv
c3QuCisgICAgICAgICAgICAgICAgY29uZmlndXJlTGluaygwKTsKKyAgICAgICAgICAgICAgICBh
Y3RpdmF0ZUVsZW1lbnQoInRhcmdldExpbmsiKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAod2lu
ZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0gIj9zdGVwVHdvIikgeworICAgICAgICAgICAgICAgIC8v
IENvbnZlcnQgdGhlIGFkIGNsaWNrIHdpdGggcHJpb3JpdHkgMy4KKyAgICAgICAgICAgICAgICBj
b252ZXJ0KCIwMyIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAvLyBDb252ZXJ0
IHRoZSBhZCBjbGljayB3aXRoIHByaW9yaXR5IDQuCisgICAgICAgICAgICAgICAgICAgIGNvbnZl
cnQoIjA0IiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LmR1bXBBZENsaWNrQXR0cmlidXRpb24oKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvY3Vt
ZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsi
KSk7CisgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJwaXhlbCIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IHRlYXJEb3duQW5kRmluaXNoKCk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgVW5rbm93biB3aW5k
b3cubG9jYXRpb24uc2VhcmNoID09ICIgKyB3aW5kb3cubG9jYXRpb24uc2VhcmNoICsgIi4iOwor
ICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0
IikuaW5uZXJUZXh0ID0gIkZBSUwgTm8gdGVzdFJ1bm5lci4iOworICAgICAgICB9CisgICAgfQor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9zZWNvbmQtY29udmVyc2lvbi13aXRoLWxvd2VyLXBy
aW9yaXR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJp
YnV0aW9uL3NlY29uZC1jb252ZXJzaW9uLXdpdGgtbG93ZXItcHJpb3JpdHktZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjcwM2NmZGJhM2VmZjUwOTE4MjVmZWNmNDJhY2FmNGMxZjE4MWFlOGYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlv
bi9zZWNvbmQtY29udmVyc2lvbi13aXRoLWxvd2VyLXByaW9yaXR5LWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDEyIEBACitUZXN0cyB0aGF0IHRoZSBhdHRyaWJ1dGlvbiBpcyBub3QgdXBkYXRlZCBp
ZiBpdCBnZXRzIGEgc2Vjb25kIGNvbnZlcnNpb24gd2l0aCBsb3dlciBwcmlvcml0eS4KKworCitD
b252ZXJ0ZWQgQWQgQ2xpY2sgQXR0cmlidXRpb25zOgorV2ViQ29yZTo6QWRDbGlja0F0dHJpYnV0
aW9uIDEKK1NvdXJjZTogMTI3LjAuMC4xCitEZXN0aW5hdGlvbjogbG9jYWxob3N0CitDYW1wYWln
biBJRDogMworQ29udmVyc2lvbiBkYXRhOiAxMgorQ29udmVyc2lvbiBwcmlvcml0eTogNAorQ29u
dmVyc2lvbiBlYXJsaWVzdCB0aW1lIHRvIHNlbmQ6IFdpdGhpbiAyNC00OCBob3VycworQ29udmVy
c2lvbiByZXF1ZXN0IHNlbnQ6IGZhbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9zZWNvbmQtY29udmVyc2lvbi13aXRoLWxvd2VyLXByaW9y
aXR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9zZWNv
bmQtY29udmVyc2lvbi13aXRoLWxvd2VyLXByaW9yaXR5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWNmZjk2
YWE1OWE0NGE2MWM5N2JjNmI1NjhiZDA3MDkxYTBlY2NkZgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3NlY29uZC1jb252ZXJzaW9u
LXdpdGgtbG93ZXItcHJpb3JpdHkuaHRtbApAQCAtMCwwICsxLDg1IEBACis8IURPQ1RZUEUgaHRt
bD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgXSAt
LT4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4K
KyAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBp
bml0aWFsLXNjYWxlPTEsIHVzZXItc2NhbGFibGU9bm8iPgorICAgIDxzY3JpcHQgc3JjPSIvanMt
dGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJzZXRU
aW1lb3V0KHJ1blRlc3QsIDApIj4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0cyB0aGF0IHRo
ZSBhdHRyaWJ1dGlvbiBpcyBub3QgdXBkYXRlZCBpZiBpdCBnZXRzIGEgc2Vjb25kIGNvbnZlcnNp
b24gd2l0aCBsb3dlciBwcmlvcml0eS48L2Rpdj4KKzxhIGlkPSJ0YXJnZXRMaW5rIj5MaW5rPC9h
Pjxicj4KKzxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Cis8c2NyaXB0PgorICAgIGNvbnN0IHBhdGgg
PSAiL2FkQ2xpY2tBdHRyaWJ1dGlvbi9zZWNvbmQtY29udmVyc2lvbi13aXRoLWxvd2VyLXByaW9y
aXR5Lmh0bWwiOworICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBbCisgICAgICAgIHsKKyAgICAg
ICAgICAgIGhyZWY6ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiICsgcGF0aCArICI/c3RlcFR3byIs
CisgICAgICAgICAgICBhZGNhbXBhaWduaWQ6ICIzIiwKKyAgICAgICAgICAgIGFkZGVzdGluYXRp
b246ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiCisgICAgICAgIH0KKyAgICBdOworCisgICAgcHJl
cGFyZVRlc3QoKTsKKworICAgIGZ1bmN0aW9uIGNvbmZpZ3VyZUxpbmsoaW5kZXgpIHsKKyAgICAg
ICAgbGV0IGxpbmtFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsi
KTsKKyAgICAgICAgbGlua0VsZW1lbnQuc2V0QXR0cmlidXRlKCJocmVmIiwgY29uZmlndXJhdGlv
bltpbmRleF0uaHJlZik7CisgICAgICAgIGxpbmtFbGVtZW50LnNldEF0dHJpYnV0ZSgiYWRjYW1w
YWlnbmlkIiwgY29uZmlndXJhdGlvbltpbmRleF0uYWRjYW1wYWlnbmlkKTsKKyAgICAgICAgbGlu
a0VsZW1lbnQuc2V0QXR0cmlidXRlKCJhZGRlc3RpbmF0aW9uIiwgY29uZmlndXJhdGlvbltpbmRl
eF0uYWRkZXN0aW5hdGlvbik7CisgICAgfQorCisgICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50
KGVsZW1lbnRJRCkgeworICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKGVsZW1lbnRJRCk7CisgICAgICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0
ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7CisgICAgICAgIHZhciBjZW50ZXJZID0gZWxlbWVu
dC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7CisgICAgICAgIFVJSGVscGVy
LmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKKyAgICAgICAgICAgIGZ1bmN0aW9u
ICgpIHsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAg
ICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJG
QUlMIFByb21pc2UgcmVqZWN0ZWQuIjsKKyAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlz
aCgpOworICAgICAgICAgICAgfQorICAgICAgICApOworICAgIH0KKworICAgIGZ1bmN0aW9uIGNv
bnZlcnQocHJpb3JpdHksIGNhbGxiYWNrKSB7CisgICAgICAgIGxldCBwaXhlbEVsZW1lbnQgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGl4ZWwiKTsKKyAgICAgICAgaWYgKHBpeGVsRWxlbWVu
dCkKKyAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQocGl4ZWxFbGVtZW50KTsK
KworICAgICAgICBsZXQgaW1hZ2VFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1n
Iik7CisgICAgICAgIGltYWdlRWxlbWVudC5zcmMgPSAiaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9h
ZENsaWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uLnBocD9jb252
ZXJzaW9uRGF0YT0xMiZwcmlvcml0eT0iICsgcHJpb3JpdHk7CisgICAgICAgIGltYWdlRWxlbWVu
dC5pZCA9ICJwaXhlbCI7CisgICAgICAgIGltYWdlRWxlbWVudC5vbmVycm9yID0gY2FsbGJhY2s7
CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW1hZ2VFbGVtZW50KTsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAiIikgewor
ICAgICAgICAgICAgICAgIC8vIEFkIGNsaWNrIDEyNy4wLjAuMSDigJM+IGxvY2FsaG9zdC4KKyAg
ICAgICAgICAgICAgICBjb25maWd1cmVMaW5rKDApOworICAgICAgICAgICAgICAgIGFjdGl2YXRl
RWxlbWVudCgidGFyZ2V0TGluayIpOworICAgICAgICAgICAgfSBlbHNlIGlmICh3aW5kb3cubG9j
YXRpb24uc2VhcmNoID09PSAiP3N0ZXBUd28iKSB7CisgICAgICAgICAgICAgICAgLy8gQ29udmVy
dCB0aGUgYWQgY2xpY2sgd2l0aCBwcmlvcml0eSA0LgorICAgICAgICAgICAgICAgIGNvbnZlcnQo
IjA0IiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIENvbnZlcnQgdGhlIGFk
IGNsaWNrIHdpdGggcHJpb3JpdHkgMy4KKyAgICAgICAgICAgICAgICAgICAgY29udmVydCgiMDMi
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFk
Q2xpY2tBdHRyaWJ1dGlvbigpOworICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9k
eS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0TGluayIpKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInBpeGVsIikpOworICAgICAgICAgICAgICAgICAgICAgICAgdGVhckRv
d25BbmRGaW5pc2goKTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBVbmtub3duIHdpbmRvdy5sb2Nh
dGlvbi5zZWFyY2ggPT0gIiArIHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggKyAiLiI7CisgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICB9CisgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iiku
aW5uZXJUZXh0ID0gIkZBSUwgTm8gdGVzdFJ1bm5lci4iOworICAgICAgICB9CisgICAgfQorPC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9zZW5kLWF0dHJpYnV0aW9uLWNvbnZlcnNpb24tcmVxdWVz
dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlv
bi9zZW5kLWF0dHJpYnV0aW9uLWNvbnZlcnNpb24tcmVxdWVzdC1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYTgyMzdkMTUzZmM3ZjBiODFiZDkwMTE0YmIyYTJlNzBlYThiYmQ5YgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3NlbmQt
YXR0cmlidXRpb24tY29udmVyc2lvbi1yZXF1ZXN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI3
IEBACitUZXN0cyBzZW5kaW5nIG9mIGFkIGNsaWNrIGF0dHJpYnV0aW9uIHJlcXVlc3RzIGFmdGVy
IGEgY29udmVyc2lvbi4gQWxzbyB0ZXN0cyB0aGF0IGNvb2tpZXMgYXJlIG5vdCBzZW50IGluIHRo
b3NlIHJlcXVlc3RzIGFuZCBjb29raWVzIGFyZSBub3QgYWNjZXB0ZWQgaW4gdGhlIHJlc3BvbnNl
cy4KKworCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTEtLT4nCistLS0tLS0tLQorQ29v
a2llcyBhcmU6IGNvb2tpZVNldEFzRmlyc3RQYXJ0eSA9IDEKKworLS0tLS0tLS0KK0ZyYW1lOiAn
PCEtLWZyYW1lMi0tPicKKy0tLS0tLS0tCitDb252ZXJzaW9uIHJlY2VpdmVkLgorSFRUUF9IT1NU
OiAxMjcuMC4wLjE6ODAwMAorQ29udGVudCB0eXBlOiBhcHBsaWNhdGlvbi9qc29uCitSRVFVRVNU
X1VSSTogL2FkQ2xpY2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMvY29udmVyc2lvblJlcG9ydC5waHAK
K05vIGNvb2tpZXMgaW4gY29udmVyc2lvbiByZXF1ZXN0LgorUmVxdWVzdCBib2R5OgoreyJjb250
ZW50LXR5cGUiOiJjbGljayIsImNvbnRlbnQtc2l0ZSI6IjEyNy4wLjAuMSIsImNvbnRlbnQtaWQi
OjMsImNvbnZlcnNpb24tc2l0ZSI6ImxvY2FsaG9zdCIsImNvbnZlcnNpb24tZGF0YSI6MTIsInJl
cG9ydC12ZXJzaW9uIjoxfQorCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTMtLT4nCist
LS0tLS0tLQorQ29va2llcyBhcmU6IGNvb2tpZVNldEFzRmlyc3RQYXJ0eSA9IDEKKworTm8gc3Rv
cmVkIEFkIENsaWNrIEF0dHJpYnV0aW9uIGRhdGEuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9zZW5kLWF0dHJpYnV0aW9uLWNvbnZlcnNpb24t
cmVxdWVzdC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24v
c2VuZC1hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXJlcXVlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45OGZj
YmZhMjVlM2Y1ZTNkYzgxOGJhMGNhOTU1MjlkYzNjMWQyMzNjCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vc2VuZC1hdHRyaWJ1dGlv
bi1jb252ZXJzaW9uLXJlcXVlc3QuaHRtbApAQCAtMCwwICsxLDgwIEBACis8IURPQ1RZUEUgaHRt
bD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgXSAt
LT4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4K
KyAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBp
bml0aWFsLXNjYWxlPTEsIHVzZXItc2NhbGFibGU9bm8iPgorICAgIDxzY3JpcHQgc3JjPSIvanMt
dGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJzZXRU
aW1lb3V0KHJ1blRlc3QsIDApIj4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0cyBzZW5kaW5n
IG9mIGFkIGNsaWNrIGF0dHJpYnV0aW9uIHJlcXVlc3RzIGFmdGVyIGEgY29udmVyc2lvbi4gQWxz
byB0ZXN0cyB0aGF0IGNvb2tpZXMgYXJlIG5vdCBzZW50IGluIHRob3NlIHJlcXVlc3RzIGFuZCBj
b29raWVzIGFyZSBub3QgYWNjZXB0ZWQgaW4gdGhlIHJlc3BvbnNlcy48L2Rpdj4KKzxhIGlkPSJ0
YXJnZXRMaW5rIiBocmVmPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvYWRDbGlja0F0dHJpYnV0aW9u
L3NlbmQtYXR0cmlidXRpb24tY29udmVyc2lvbi1yZXF1ZXN0Lmh0bWw/c3RlcFR3byIgYWRjYW1w
YWlnbmlkPSIzIiBhZGRlc3RpbmF0aW9uPSJodHRwOi8vbG9jYWxob3N0OjgwMDAiPkxpbms8L2E+
PGJyPgorPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KKzxzY3JpcHQ+CisgICAgY29uc3QgY3VycmVu
dFRpbWVNaWxsaXMgPSAobmV3IERhdGUoKSkuZ2V0VGltZSgpOworICAgIGNvbnN0IGhpZ2hFbnRy
b3B5Qml0cyA9IGN1cnJlbnRUaW1lTWlsbGlzIC0gKE1hdGguZmxvb3IoY3VycmVudFRpbWVNaWxs
aXMgLyAxMDAwMDAwKSAqIDEwMDAwMDApOworICAgIGNvbnN0IG5vbmNlID0gaGlnaEVudHJvcHlC
aXRzICsgIiIgKyBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMDApOworCisgICAgcHJlcGFy
ZVRlc3QoKTsKKworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVu
bmVyLnNldEFkQ2xpY2tBdHRyaWJ1dGlvbk92ZXJyaWRlVGltZXJGb3JUZXN0aW5nKHRydWUpOwor
ICAgICAgICB0ZXN0UnVubmVyLnNldEFkQ2xpY2tBdHRyaWJ1dGlvbkNvbnZlcnNpb25VUkxGb3JU
ZXN0aW5nKCJodHRwOi8vMTI3LjAuMC4xOjgwMDAvYWRDbGlja0F0dHJpYnV0aW9uL3Jlc291cmNl
cy9jb252ZXJzaW9uUmVwb3J0LnBocD9ub25jZT0iICsgbm9uY2UpOworICAgIH0KKworICAgIGZ1
bmN0aW9uIGFjdGl2YXRlRWxlbWVudChlbGVtZW50SUQpIHsKKyAgICAgICAgdmFyIGVsZW1lbnQg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SUQpOworICAgICAgICB2YXIgY2VudGVy
WCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOworICAgICAg
ICB2YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQg
LyAyOworICAgICAgICBVSUhlbHBlci5hY3RpdmF0ZUF0KGNlbnRlclgsIGNlbnRlclkpLnRoZW4o
CisgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAg
ZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJv
dXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBQcm9taXNlIHJlamVjdGVkLiI7CisgICAgICAgICAg
ICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgKTsKKyAg
ICB9CisKKyAgICBmdW5jdGlvbiBhcHBlbmRJZnJhbWUodXJsLCBvbmxvYWRDYWxsYmFjaykgewor
ICAgICAgICBsZXQgaWZyYW1lRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFt
ZSIpOworICAgICAgICBpZnJhbWVFbGVtZW50LnNyYyA9IHVybDsKKyAgICAgICAgaWYgKG9ubG9h
ZENhbGxiYWNrKQorICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5vbmxvYWQgPSBvbmxvYWRDYWxs
YmFjazsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWVFbGVtZW50KTsK
KyAgICB9CisKKyAgICBmdW5jdGlvbiBhcHBlbmRDb252ZXJzaW9uRGF0YUlmcmFtZUFuZEZpbmlz
aCgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQWRDbGlja0F0dHJpYnV0aW9uKCk7CisgICAg
ICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRh
cmdldExpbmsiKSk7CisgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInBpeGVsIikpOworCisgICAgICAgIGFwcGVuZElmcmFtZSgiaHR0cDov
LzEyNy4wLjAuMTo4MDAwL2Nvb2tpZXMvcmVzb3VyY2VzL2VjaG8tY29va2llcy5waHAiKTsKKyAg
ICAgICAgYXBwZW5kSWZyYW1lKCJodHRwOi8vMTI3LjAuMC4xOjgwMDAvYWRDbGlja0F0dHJpYnV0
aW9uL3Jlc291cmNlcy9nZXRDb252ZXJzaW9uRGF0YS5waHA/dGltZW91dF9tcz0yMDAwJm5vbmNl
PSIgKyBub25jZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBhcHBlbmRJZnJhbWUoImh0dHA6
Ly8xMjcuMC4wLjE6ODAwMC9jb29raWVzL3Jlc291cmNlcy9lY2hvLWNvb2tpZXMucGhwIiwgZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsKKyAgICAgICAg
ICAgIH0pOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgewor
ICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cu
bG9jYXRpb24uc2VhcmNoID09PSAiP3N0ZXBUd28iKSB7CisgICAgICAgICAgICAgICAgbGV0IGlt
YWdlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpOworICAgICAgICAgICAg
ICAgIGltYWdlRWxlbWVudC5zcmMgPSAiaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9hZENsaWNrQXR0
cmlidXRpb24vcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uLnBocD9jb252ZXJzaW9uRGF0
YT0xMiZub25jZT0iICsgbm9uY2U7CisgICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50LmlkID0g
InBpeGVsIjsKKyAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQub25lcnJvciA9IGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICAgICAgICBhcHBlbmRDb252ZXJzaW9uRGF0YUlmcmFtZUFuZEZp
bmlzaCgpOworICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9k
eS5hcHBlbmRDaGlsZChpbWFnZUVsZW1lbnQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgICAgICBkb2N1bWVudC5jb29raWUgPSAiY29va2llU2V0QXNGaXJzdFBhcnR5PTE7IHBh
dGg9LyI7CisgICAgICAgICAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJ0YXJnZXRMaW5rIik7Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgTm8gdGVzdFJ1bm5lci4iOwor
ICAgICAgICB9CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9zdG9yZS1hZC1jbGlj
ay1hdHRyaWJ1dGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xp
Y2tBdHRyaWJ1dGlvbi9zdG9yZS1hZC1jbGljay1hdHRyaWJ1dGlvbi1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uY2ZkMzFhOTdiZjFjZmFjZjY1NTJiZjVmMjI0ZTIxMzE0MGUwMWE5NAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3N0
b3JlLWFkLWNsaWNrLWF0dHJpYnV0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK1Rl
c3RzIHN0b3JhZ2Ugb2YgYWQgY2xpY2sgYXR0cmlidXRpb24uCisKKworVW5jb252ZXJ0ZWQgQWQg
Q2xpY2sgQXR0cmlidXRpb25zOgorV2ViQ29yZTo6QWRDbGlja0F0dHJpYnV0aW9uIDEKK1NvdXJj
ZTogMTI3LjAuMC4xCitEZXN0aW5hdGlvbjogbG9jYWxob3N0CitDYW1wYWlnbiBJRDogMworTm8g
Y29udmVyc2lvbiBkYXRhLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENs
aWNrQXR0cmlidXRpb24vc3RvcmUtYWQtY2xpY2stYXR0cmlidXRpb24uaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3N0b3JlLWFkLWNsaWNrLWF0dHJpYnV0
aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uM2RmNzZiMDRmNTliZmJjYmI0ZjgwMDk5YjZmMjhiNzFjYzBl
NjAzNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0
dHJpYnV0aW9uL3N0b3JlLWFkLWNsaWNrLWF0dHJpYnV0aW9uLmh0bWwKQEAgLTAsMCArMSw0NSBA
QAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVW
aWV3cG9ydD10cnVlIF0gLS0+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBj
aGFyc2V0PSJVVEYtOCI+CisgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRo
PWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCB1c2VyLXNjYWxhYmxlPW5vIj4KKyAgICA8
c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cisg
ICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5IG9ubG9hZD0ic2V0VGltZW91dChydW5UZXN0LCAwKSI+Cis8ZGl2IGlkPSJkZXNjcmlwdGlv
biI+VGVzdHMgc3RvcmFnZSBvZiBhZCBjbGljayBhdHRyaWJ1dGlvbi48L2Rpdj4KKzxhIGlkPSJ0
YXJnZXRMaW5rIiBocmVmPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvYWRDbGlja0F0dHJpYnV0aW9u
L3N0b3JlLWFkLWNsaWNrLWF0dHJpYnV0aW9uLmh0bWw/c3RlcFR3byIgYWRjYW1wYWlnbmlkPSIz
IiBhZGRlc3RpbmF0aW9uPSJodHRwOi8vbG9jYWxob3N0OjgwMDAiPkxpbms8L2E+PGJyPgorPGRp
diBpZD0ib3V0cHV0Ij48L2Rpdj4KKzxzY3JpcHQ+CisgICAgcHJlcGFyZVRlc3QoKTsKKworICAg
IGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVudChlbGVtZW50SUQpIHsKKyAgICAgICAgdmFyIGVsZW1l
bnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SUQpOworICAgICAgICB2YXIgY2Vu
dGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOworICAg
ICAgICB2YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWln
aHQgLyAyOworICAgICAgICBVSUhlbHBlci5hY3RpdmF0ZUF0KGNlbnRlclgsIGNlbnRlclkpLnRo
ZW4oCisgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICB9LAorICAgICAgICAg
ICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBQcm9taXNlIHJlamVjdGVkLiI7CisgICAgICAg
ICAgICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgKTsK
KyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAi
P3N0ZXBUd28iKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQWRDbGlja0F0dHJp
YnV0aW9uKCk7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0TGluayIpKTsKKyAgICAgICAgICAgICAgICB0ZWFy
RG93bkFuZEZpbmlzaCgpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBh
Y3RpdmF0ZUVsZW1lbnQoInRhcmdldExpbmsiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5l
clRleHQgPSAiRkFJTCBObyB0ZXN0UnVubmVyLiI7CisgICAgICAgIH0KKyAgICB9Cis8L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
YWRDbGlja0F0dHJpYnV0aW9uL3N0b3JlLWRpc2FibGVkLWluLWVwaGVtZXJhbC1zZXNzaW9uLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3N0
b3JlLWRpc2FibGVkLWluLWVwaGVtZXJhbC1zZXNzaW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wZTMzYjc1NzBiODJiZjQxNzYzZGFkYzFkNTNkZTU2ZGUyYzIwMDUwCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vc3RvcmUtZGlz
YWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAor
VGVzdHMgdGhhdCBzdG9yYWdlIG9mIGFkIGNsaWNrIGF0dHJpYnV0aW9uIGlzIGRpc2FibGVkIGlu
IGVwaGVtZXJhbCBzZXNzaW9ucy4KKworCisKK05vIHN0b3JlZCBBZCBDbGljayBBdHRyaWJ1dGlv
biBkYXRhLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmli
dXRpb24vc3RvcmUtZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24uaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3N0b3JlLWRpc2FibGVkLWluLWVwaGVt
ZXJhbC1zZXNzaW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmZjMjc0MWFiMTFiYzFjN2E5NjBlNDllYTI3
MzZlNGU2NDg2NDZkZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
YWRDbGlja0F0dHJpYnV0aW9uL3N0b3JlLWRpc2FibGVkLWluLWVwaGVtZXJhbC1zZXNzaW9uLmh0
bWwKQEAgLTAsMCArMSw0NiBAQAorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJs
ZVZpZXdwb3J0PXRydWUgdXNlRXBoZW1lcmFsU2Vzc2lvbj10cnVlIF0gLS0+Cis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04
Ij4KKyAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRo
LCBpbml0aWFsLXNjYWxlPTEsIHVzZXItc2NhbGFibGU9bm8iPgorICAgIDxzY3JpcHQgc3JjPSIv
anMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJz
ZXRUaW1lb3V0KHJ1blRlc3QsIDApIj4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0cyB0aGF0
IHN0b3JhZ2Ugb2YgYWQgY2xpY2sgYXR0cmlidXRpb24gaXMgZGlzYWJsZWQgaW4gZXBoZW1lcmFs
IHNlc3Npb25zLjwvZGl2PgorPGEgaWQ9InRhcmdldExpbmsiIGhyZWY9Imh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMC9hZENsaWNrQXR0cmlidXRpb24vc3RvcmUtZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNl
c3Npb24uaHRtbD9zdGVwVHdvIiBhZGNhbXBhaWduaWQ9IjMiIGFkZGVzdGluYXRpb249Imh0dHA6
Ly9sb2NhbGhvc3Q6ODAwMCI+TGluazwvYT48YnI+Cis8ZGl2IGlkPSJvdXRwdXQiPjwvZGl2Pgor
PHNjcmlwdD4KKyAgICBwcmVwYXJlVGVzdCgpOworCisgICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVt
ZW50KGVsZW1lbnRJRCkgeworICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKGVsZW1lbnRJRCk7CisgICAgICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRM
ZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7CisgICAgICAgIHZhciBjZW50ZXJZID0gZWxl
bWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7CisgICAgICAgIFVJSGVs
cGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKKyAgICAgICAgICAgIGZ1bmN0
aW9uICgpIHsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAg
ICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9
ICJGQUlMIFByb21pc2UgcmVqZWN0ZWQuIjsKKyAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZp
bmlzaCgpOworICAgICAgICAgICAgfQorICAgICAgICApOworICAgIH0KKworICAgIGZ1bmN0aW9u
IHJ1blRlc3QoKSB7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAg
ICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/c3RlcFR3byIpIHsKKyAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLmR1bXBBZENsaWNrQXR0cmlidXRpb24oKTsKKyAgICAgICAgICAg
ICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0
YXJnZXRMaW5rIikpOworICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7CisgICAg
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGFjdGl2YXRlRWxlbWVudCgidGFyZ2V0
TGluayIpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIE5vIHRlc3RS
dW5uZXIuIjsKKyAgICAgICAgfQorICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb250ZW50ZXh0ZW5zaW9ucy9ibG9j
ay1hZC1jbGljay1hdHRyaWJ1dGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2NvbnRlbnRleHRlbnNpb25zL2Jsb2NrLWFkLWNsaWNrLWF0dHJpYnV0aW9uLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yNzA3NGY3OTk1YjFiODlkNWU4N2QwNDYxM2I2ZWIwNDVhZDU1Yjhm
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb250ZW50ZXh0ZW5z
aW9ucy9ibG9jay1hZC1jbGljay1hdHRyaWJ1dGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
NyBAQAorQ09OU09MRSBNRVNTQUdFOiBCbG9ja2VkIGJ5IGNvbnRlbnQgZXh0ZW5zaW9uCitDT05T
T0xFIE1FU1NBR0U6IENhbm5vdCBsb2FkIGltYWdlIGh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvYWRD
bGlja0F0dHJpYnV0aW9uL3Jlc291cmNlcy9yZWRpcmVjdFRvQ29udmVyc2lvbi5waHA/Y29udmVy
c2lvbkRhdGE9MTIgZHVlIHRvIGFjY2VzcyBjb250cm9sIGNoZWNrcy4KK1Rlc3RzIHRoYXQgYWQg
Y2xpY2sgYXR0cmlidXRpb24gcmVkaXJlY3RzIHRvIHdlbGwta25vd24gbG9jYXRpb24gZG9uJ3Qg
dHJpZ2dlciBhIGNvbnZlcnNpb24gaWYgdGhleSBhcmUgYmxvY2tlZCBieSBjb250ZW50IGJsb2Nr
ZXJzLgorCisKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMS0tPicKKy0tLS0tLS0tCitD
b252ZXJzaW9uIG5vdCByZWNlaXZlZCAtIHRpbWVkIG91dC4KKworVW5jb252ZXJ0ZWQgQWQgQ2xp
Y2sgQXR0cmlidXRpb25zOgorV2ViQ29yZTo6QWRDbGlja0F0dHJpYnV0aW9uIDEKK1NvdXJjZTog
MTI3LjAuMC4xCitEZXN0aW5hdGlvbjogbG9jYWxob3N0CitDYW1wYWlnbiBJRDogMworTm8gY29u
dmVyc2lvbiBkYXRhLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb250ZW50
ZXh0ZW5zaW9ucy9ibG9jay1hZC1jbGljay1hdHRyaWJ1dGlvbi5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9jb250ZW50ZXh0ZW5zaW9ucy9ibG9jay1hZC1jbGljay1hdHRyaWJ1dGlvbi5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjQxNGNjZTg2MDU0YjYzMDhmYmIyMzI2NTY2ZWZkMGM5ZTYxYTYwYWQK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NvbnRlbnRleHRlbnNp
b25zL2Jsb2NrLWFkLWNsaWNrLWF0dHJpYnV0aW9uLmh0bWwKQEAgLTAsMCArMSw3MiBAQAorPCFE
T0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9y
dD10cnVlIF0gLS0+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0
PSJVVEYtOCI+CisgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmlj
ZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCB1c2VyLXNjYWxhYmxlPW5vIj4KKyAgICA8c2NyaXB0
IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBzcmM9Ii4uL2FkQ2xpY2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQocnVuVGVzdCwgMCkiPgorPGRp
diBpZD0iZGVzY3JpcHRpb24iPlRlc3RzIHRoYXQgYWQgY2xpY2sgYXR0cmlidXRpb24gcmVkaXJl
Y3RzIHRvIHdlbGwta25vd24gbG9jYXRpb24gZG9uJ3QgdHJpZ2dlciBhIGNvbnZlcnNpb24gaWYg
dGhleSBhcmUgYmxvY2tlZCBieSBjb250ZW50IGJsb2NrZXJzLjwvZGl2PgorPGEgaWQ9InRhcmdl
dExpbmsiIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9jb250ZW50ZXh0ZW5zaW9ucy9ibG9j
ay1hZC1jbGljay1hdHRyaWJ1dGlvbi5odG1sP3N0ZXBUd28iIGFkY2FtcGFpZ25pZD0iMyIgYWRk
ZXN0aW5hdGlvbj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwIj5MaW5rPC9hPjxicj4KKzxkaXYgaWQ9
Im91dHB1dCI+PC9kaXY+Cis8c2NyaXB0PgorICAgIHByZXBhcmVUZXN0KCk7CisKKyAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRBZENsaWNrQXR0cmli
dXRpb25PdmVycmlkZVRpbWVyRm9yVGVzdGluZyh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5z
ZXRBZENsaWNrQXR0cmlidXRpb25Db252ZXJzaW9uVVJMRm9yVGVzdGluZygiaHR0cDovLzEyNy4w
LjAuMTo4MDAwL2FkQ2xpY2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMvY29udmVyc2lvblJlcG9ydC5w
aHAiKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxlbWVudElEKSB7
CisgICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElE
KTsKKyAgICAgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9m
ZnNldFdpZHRoIC8gMjsKKyAgICAgICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCAr
IGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAgICAgVUlIZWxwZXIuYWN0aXZhdGVBdChj
ZW50ZXJYLCBjZW50ZXJZKS50aGVuKAorICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAg
ICAgICAgfSwKKyAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgUHJvbWlzZSBy
ZWplY3RlZC4iOworICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7CisgICAgICAg
ICAgICB9CisgICAgICAgICk7CisgICAgfQorCisgICAgZnVuY3Rpb24gYXBwZW5kSWZyYW1lKHVy
bCwgb25sb2FkQ2FsbGJhY2spIHsKKyAgICAgICAgbGV0IGlmcmFtZUVsZW1lbnQgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgaWZyYW1lRWxlbWVudC5zcmMgPSB1
cmw7CisgICAgICAgIGlmIChvbmxvYWRDYWxsYmFjaykKKyAgICAgICAgICAgIGlmcmFtZUVsZW1l
bnQub25sb2FkID0gb25sb2FkQ2FsbGJhY2s7CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5k
Q2hpbGQoaWZyYW1lRWxlbWVudCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gYXBwZW5kQ29udmVy
c2lvbkRhdGFJZnJhbWVBbmRGaW5pc2goKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFkQ2xp
Y2tBdHRyaWJ1dGlvbigpOworICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXRMaW5rIikpOworICAgICAgICBkb2N1bWVudC5ib2R5
LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwaXhlbCIpKTsKKworICAgICAg
ICBhcHBlbmRJZnJhbWUoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9hZENsaWNrQXR0cmlidXRpb24v
cmVzb3VyY2VzL2dldENvbnZlcnNpb25EYXRhLnBocD90aW1lb3V0X21zPTEwMDAiLCBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7CisgICAgICAgIH0pOworICAg
IH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/c3Rl
cFR3byIpIHsKKyAgICAgICAgICAgICAgICBsZXQgaW1hZ2VFbGVtZW50ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgiaW1nIik7CisgICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50LnNyYyA9ICJo
dHRwczovLzEyNy4wLjAuMTo4NDQzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9yZXNvdXJjZXMvcmVkaXJl
Y3RUb0NvbnZlcnNpb24ucGhwP2NvbnZlcnNpb25EYXRhPTEyIjsKKyAgICAgICAgICAgICAgICBp
bWFnZUVsZW1lbnQuaWQgPSAicGl4ZWwiOworICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5v
bmVycm9yID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGFwcGVuZENvbnZlcnNp
b25EYXRhSWZyYW1lQW5kRmluaXNoKCk7CisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAg
ICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltYWdlRWxlbWVudCk7CisgICAgICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGFjdGl2YXRlRWxlbWVudCgidGFyZ2V0TGluayIp
OworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIE5vIHRlc3RSdW5uZXIu
IjsKKyAgICAgICAgfQorICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb250ZW50ZXh0ZW5zaW9ucy9ibG9jay1hZC1j
bGljay1hdHRyaWJ1dGlvbi5odG1sLmpzb24gYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NvbnRl
bnRleHRlbnNpb25zL2Jsb2NrLWFkLWNsaWNrLWF0dHJpYnV0aW9uLmh0bWwuanNvbgpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41ZTM5NGVmMTE4MGJjOGZiYTY4NzZlMTU2MzE0NGU4NGE2NDk0ZDE0Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb250ZW50ZXh0ZW5zaW9ucy9ibG9jay1h
ZC1jbGljay1hdHRyaWJ1dGlvbi5odG1sLmpzb24KQEAgLTAsMCArMSwxMCBAQAorWworICB7Cisg
ICAgInRyaWdnZXIiOiB7CisgICAgICAidXJsLWZpbHRlciI6ICIvLndlbGwta25vd24vYWQtY2xp
Y2stYXR0cmlidXRpb24vIgorICAgIH0sCisgICAgImFjdGlvbiI6IHsKKyAgICAgICJ0eXBlIjog
ImJsb2NrIgorICAgIH0KKyAgfQorXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9jb250ZW50ZXh0ZW5zaW9ucy9ibG9jay1wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29udGVudGV4dGVuc2lvbnMvYmxvY2st
cHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGIxZmFhYmU5YjI5YzVmNTJhMWM2ZjUxMTM5ZmVlMjUxMmZjMDc5ODMuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9jb250ZW50ZXh0ZW5zaW9ucy9ibG9jay1wcml2YXRlLWNsaWNrLW1lYXN1cmVt
ZW50LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLUNPTlNPTEUg
TUVTU0FHRTogQmxvY2tlZCBieSBjb250ZW50IGV4dGVuc2lvbgotQ09OU09MRSBNRVNTQUdFOiBD
YW5ub3QgbG9hZCBpbWFnZSBodHRwczovLzEyNy4wLjAuMTo4NDQzL3ByaXZhdGVDbGlja01lYXN1
cmVtZW50L3Jlc291cmNlcy9yZWRpcmVjdFRvQ29udmVyc2lvbi5waHA/Y29udmVyc2lvbkRhdGE9
MTIgZHVlIHRvIGFjY2VzcyBjb250cm9sIGNoZWNrcy4KLVRlc3RzIHRoYXQgcHJpdmF0ZSBjbGlj
ayBtZWFzdXJlbWVudCByZWRpcmVjdHMgdG8gd2VsbC1rbm93biBsb2NhdGlvbiBkb24ndCB0cmln
Z2VyIGEgY29udmVyc2lvbiBpZiB0aGV5IGFyZSBibG9ja2VkIGJ5IGNvbnRlbnQgYmxvY2tlcnMu
Ci0KLQotCi0tLS0tLS0tLQotRnJhbWU6ICc8IS0tZnJhbWUxLS0+JwotLS0tLS0tLS0KLUNvbnZl
cnNpb24gbm90IHJlY2VpdmVkIC0gdGltZWQgb3V0LgotCi1VbmNvbnZlcnRlZCBQcml2YXRlIENs
aWNrIE1lYXN1cmVtZW50czoKLVdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50IDEKLVNv
dXJjZTogMTI3LjAuMC4xCi1EZXN0aW5hdGlvbjogbG9jYWxob3N0Ci1DYW1wYWlnbiBJRDogMwot
Tm8gY29udmVyc2lvbiBkYXRhLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9j
b250ZW50ZXh0ZW5zaW9ucy9ibG9jay1wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50Lmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NvbnRlbnRleHRlbnNpb25zL2Jsb2NrLXByaXZhdGUtY2xp
Y2stbWVhc3VyZW1lbnQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTE5MTA3
ZjUyMmE0YTdmZWMzYWRhMzE5YjkyODQ5Y2UyMjgyZGUxYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NvbnRlbnRl
eHRlbnNpb25zL2Jsb2NrLXByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDcyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSBdIC0tPgotPGh0bWwgbGFuZz0iZW4iPgot
PGhlYWQ+Ci0gICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgotICAgIDxtZXRhIG5hbWU9InZpZXdw
b3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSwgdXNlci1z
Y2FsYWJsZT1ubyI+Ci0gICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxw
ZXIuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIuLi9wcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC9yZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9
InNldFRpbWVvdXQocnVuVGVzdCwgMCkiPgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPlRlc3RzIHRo
YXQgcHJpdmF0ZSBjbGljayBtZWFzdXJlbWVudCByZWRpcmVjdHMgdG8gd2VsbC1rbm93biBsb2Nh
dGlvbiBkb24ndCB0cmlnZ2VyIGEgY29udmVyc2lvbiBpZiB0aGV5IGFyZSBibG9ja2VkIGJ5IGNv
bnRlbnQgYmxvY2tlcnMuPC9kaXY+Ci08YSBpZD0idGFyZ2V0TGluayIgaHJlZj0iaHR0cDovL2xv
Y2FsaG9zdDo4MDAwL2NvbnRlbnRleHRlbnNpb25zL2Jsb2NrLXByaXZhdGUtY2xpY2stbWVhc3Vy
ZW1lbnQuaHRtbD9zdGVwVHdvIiBhZGNhbXBhaWduaWQ9IjMiIGFkZGVzdGluYXRpb249Imh0dHA6
Ly9sb2NhbGhvc3Q6ODAwMCI+TGluazwvYT48YnI+Ci08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2Pgot
PHNjcmlwdD4KLSAgICBwcmVwYXJlVGVzdCgpOwotCi0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7Ci0gICAgICAgIHRlc3RSdW5uZXIuc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlk
ZVRpbWVyRm9yVGVzdGluZyh0cnVlKTsKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKCJodHRwOi8vMTI3LjAuMC4xOjgw
MDAvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL2NvbnZlcnNpb25SZXBvcnQucGhw
Iik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJRCkgewot
ICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJRCk7
Ci0gICAgICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZz
ZXRXaWR0aCAvIDI7Ci0gICAgICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBl
bGVtZW50Lm9mZnNldEhlaWdodCAvIDI7Ci0gICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2Vu
dGVyWCwgY2VudGVyWSkudGhlbigKLSAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKLSAgICAgICAg
ICAgIH0sCi0gICAgICAgICAgICBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIFByb21pc2UgcmVq
ZWN0ZWQuIjsKLSAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOwotICAgICAgICAg
ICAgfQotICAgICAgICApOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGFwcGVuZElmcmFtZSh1cmws
IG9ubG9hZENhbGxiYWNrKSB7Ci0gICAgICAgIGxldCBpZnJhbWVFbGVtZW50ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiaWZyYW1lIik7Ci0gICAgICAgIGlmcmFtZUVsZW1lbnQuc3JjID0gdXJs
OwotICAgICAgICBpZiAob25sb2FkQ2FsbGJhY2spCi0gICAgICAgICAgICBpZnJhbWVFbGVtZW50
Lm9ubG9hZCA9IG9ubG9hZENhbGxiYWNrOwotICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENo
aWxkKGlmcmFtZUVsZW1lbnQpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGFwcGVuZENvbnZlcnNp
b25EYXRhSWZyYW1lQW5kRmluaXNoKCkgewotICAgICAgICB0ZXN0UnVubmVyLmR1bXBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCgpOwotICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXRMaW5rIikpOwotICAgICAgICBkb2N1bWVudC5i
b2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwaXhlbCIpKTsKLQotICAg
ICAgICBhcHBlbmRJZnJhbWUoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9wcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9yZXNvdXJjZXMvZ2V0Q29udmVyc2lvbkRhdGEucGhwP3RpbWVvdXRfbXM9MTAwMCIs
IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsKLSAgICAgICAg
fSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgICAgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaCA9
PT0gIj9zdGVwVHdvIikgewotICAgICAgICAgICAgICAgIGxldCBpbWFnZUVsZW1lbnQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTsKLSAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQu
c3JjID0gImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVz
b3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uLnBocD9jb252ZXJzaW9uRGF0YT0xMiI7Ci0gICAg
ICAgICAgICAgICAgaW1hZ2VFbGVtZW50LmlkID0gInBpeGVsIjsKLSAgICAgICAgICAgICAgICBp
bWFnZUVsZW1lbnQub25lcnJvciA9IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgICAgICBh
cHBlbmRDb252ZXJzaW9uRGF0YUlmcmFtZUFuZEZpbmlzaCgpOwotICAgICAgICAgICAgICAgIH07
Ci0gICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbWFnZUVsZW1lbnQp
OwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQo
InRhcmdldExpbmsiKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBO
byB0ZXN0UnVubmVyLiI7Ci0gICAgICAgIH0KLSAgICB9Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29udGVudGV4dGVuc2lv
bnMvYmxvY2stcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC5odG1sLmpzb24gYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2NvbnRlbnRleHRlbnNpb25zL2Jsb2NrLXByaXZhdGUtY2xpY2stbWVhc3Vy
ZW1lbnQuaHRtbC5qc29uCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4OGY1MWRlN2Fh
MTE4NWYzM2ZlYzYwNWFiODUxOTBlOWFiNWFhMTE2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29udGVudGV4dGVu
c2lvbnMvYmxvY2stcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC5odG1sLmpzb24KKysrIC9kZXYv
bnVsbApAQCAtMSwxMCArMCwwIEBACi1bCi0gIHsKLSAgICAidHJpZ2dlciI6IHsKLSAgICAgICJ1
cmwtZmlsdGVyIjogIi8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LyIKLSAg
ICB9LAotICAgICJhY3Rpb24iOiB7Ci0gICAgICAidHlwZSI6ICJibG9jayIKLSAgICB9Ci0gIH0K
LV0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvYW5jaG9yLXRhZy1hdHRyaWJ1dGVzLXJlZmxlY3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hbmNob3ItdGFnLWF0dHJp
YnV0ZXMtcmVmbGVjdC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDYzZDMwYmQ2ZDdkY2E5ZjdhODNhNzU2ZGNiZTQ2YTFhZGM2ZTcwZWIuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9w
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hbmNob3ItdGFnLWF0dHJpYnV0ZXMtcmVmbGVjdC1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi1UZXN0IGZvciB0aGUgbmV3
IHByaXZhdGUgY2xpY2sgbWVhc3VyZW1lbnQgYXR0cmlidXRlcyBvbiBhbmNob3IgdGFncy4KLQot
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1MgYW5jaG9yVGFnLmFkY2FtcGFpZ25p
ZCBpcyAiNDAiCi1QQVNTIGFuY2hvclRhZy5hZGRlc3RpbmF0aW9uIGlzICJkZXN0aW5hdGlvbi5l
eGFtcGxlIgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRF
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvYW5jaG9yLXRhZy1hdHRyaWJ1dGVzLXJlZmxlY3QuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYW5jaG9yLXRhZy1hdHRyaWJ1dGVzLXJl
ZmxlY3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjIxNjlmZDZjM2U5MWZk
MGZlYjgyZjk1ZGQ4YWM2NDI5YjBlNWQ2OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1
cmVtZW50L2FuY2hvci10YWctYXR0cmlidXRlcy1yZWZsZWN0Lmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSwxNyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIg
WyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVuYWJsZWQ9dHJ1ZSBdIC0tPgotPGh0bWwgbGFuZz0i
ZW4iPgotPGhlYWQ+Ci0gICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgotICAgIDxzY3JpcHQgc3Jj
PSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9k
eT4KLTxhIGlkPSJ0ZXN0VGFnIiBocmVmPSJodHRwOi8vbG9jYWxob3N0OjgwMDAiIGFkY2FtcGFp
Z25pZD0iNDAiIGFkZGVzdGluYXRpb249ImRlc3RpbmF0aW9uLmV4YW1wbGUiPjwvYT4KLTxzY3Jp
cHQ+Ci0gICAgZGVzY3JpcHRpb24oIlRlc3QgZm9yIHRoZSBuZXcgcHJpdmF0ZSBjbGljayBtZWFz
dXJlbWVudCBhdHRyaWJ1dGVzIG9uIGFuY2hvciB0YWdzLiIpOwotCi0gICAgY29uc3QgYW5jaG9y
VGFnID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3RUYWciKTsKLSAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoImFuY2hvclRhZy5hZGNhbXBhaWduaWQiLCAiNDAiKTsKLSAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoImFuY2hvclRhZy5hZGRlc3RpbmF0aW9uIiwgImRlc3RpbmF0aW9uLmV4
YW1wbGUiKTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hbmNob3ItdGFnLWF0dHJp
YnV0ZXMtdmFsaWRhdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3By
aXZhdGVDbGlja01lYXN1cmVtZW50L2FuY2hvci10YWctYXR0cmlidXRlcy12YWxpZGF0aW9uLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODBlOWQxNDZlNTRkYmIz
MjU3ZGE2NGJkMjc5MzBjZTJmZjAxYmMwYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1
cmVtZW50L2FuY2hvci10YWctYXR0cmlidXRlcy12YWxpZGF0aW9uLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogYWRjYW1wYWlnbmlk
IG11c3QgaGF2ZSBhIG5vbi1uZWdhdGl2ZSB2YWx1ZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gNjMg
Zm9yIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnQuCi1DT05TT0xFIE1FU1NBR0U6IGFkY2FtcGFp
Z25pZCBtdXN0IGhhdmUgYSBub24tbmVnYXRpdmUgdmFsdWUgbGVzcyB0aGFuIG9yIGVxdWFsIHRv
IDYzIGZvciBQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50LgotQ09OU09MRSBNRVNTQUdFOiBhZGNh
bXBhaWduaWQgY2FuIG5vdCBiZSBjb252ZXJ0ZWQgdG8gYSBub24tbmVnYXRpdmUgaW50ZWdlciB3
aGljaCBpcyByZXF1aXJlZCBmb3IgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudC4KLUNPTlNPTEUg
TUVTU0FHRTogYWRjYW1wYWlnbmlkIGNhbiBub3QgYmUgY29udmVydGVkIHRvIGEgbm9uLW5lZ2F0
aXZlIGludGVnZXIgd2hpY2ggaXMgcmVxdWlyZWQgZm9yIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1l
bnQuCi1DT05TT0xFIE1FU1NBR0U6IGFkY2FtcGFpZ25pZCBjYW4gbm90IGJlIGNvbnZlcnRlZCB0
byBhIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyIHdoaWNoIGlzIHJlcXVpcmVkIGZvciBQcml2YXRlIENs
aWNrIE1lYXN1cmVtZW50LgotQ09OU09MRSBNRVNTQUdFOiBhZGRlc3RpbmF0aW9uIGNvdWxkIG5v
dCBiZSBjb252ZXJ0ZWQgdG8gYSB2YWxpZCBIVFRQLWZhbWlseSBVUkwuCi1DT05TT0xFIE1FU1NB
R0U6IGFkZGVzdGluYXRpb24gY291bGQgbm90IGJlIGNvbnZlcnRlZCB0byBhIHZhbGlkIEhUVFAt
ZmFtaWx5IFVSTC4KLUNPTlNPTEUgTUVTU0FHRTogYWRkZXN0aW5hdGlvbiBjb3VsZCBub3QgYmUg
Y29udmVydGVkIHRvIGEgdmFsaWQgSFRUUC1mYW1pbHkgVVJMLgotQ09OU09MRSBNRVNTQUdFOiBC
b3RoIGFkY2FtcGFpZ25pZCBhbmQgYWRkZXN0aW5hdGlvbiBuZWVkIHRvIGJlIHNldCBmb3IgUHJp
dmF0ZSBDbGljayBNZWFzdXJlbWVudCB0byB3b3JrLgotQ09OU09MRSBNRVNTQUdFOiBCb3RoIGFk
Y2FtcGFpZ25pZCBhbmQgYWRkZXN0aW5hdGlvbiBuZWVkIHRvIGJlIHNldCBmb3IgUHJpdmF0ZSBD
bGljayBNZWFzdXJlbWVudCB0byB3b3JrLgotQ09OU09MRSBNRVNTQUdFOiBhZGRlc3RpbmF0aW9u
IGNhbiBub3QgYmUgdGhlIHNhbWUgc2l0ZSBhcyB0aGUgY3VycmVudCB3ZWJzaXRlLgotVGVzdCBm
b3IgdmFsaWRpdHkgb2YgcHJpdmF0ZSBjbGljayBtZWFzdXJlbWVudCBhdHRyaWJ1dGVzIG9uIGFu
Y2hvciB0YWdzLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYW5jaG9yLXRhZy1hdHRy
aWJ1dGVzLXZhbGlkYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvYW5jaG9yLXRhZy1hdHRyaWJ1dGVzLXZhbGlkYXRpb24uaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWMzYTZmOGIzZTM0MDJhNjBhZTViYjQ0NzRmMWI2
OTE5YWEwZGIzNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2FuY2hvci10
YWctYXR0cmlidXRlcy12YWxpZGF0aW9uLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw4NSArMCww
IEBACi08IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJs
ZVZpZXdwb3J0PXRydWUgXSAtLT4KLTxodG1sIGxhbmc9ImVuIj4KLTxoZWFkPgotICAgIDxtZXRh
IGNoYXJzZXQ9IlVURi04Ij4KLSAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lk
dGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHVzZXItc2NhbGFibGU9bm8iPgotICAg
IDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci0g
ICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0
PgotICAgIDxzdHlsZT4KLSAgICAgICAgLndpZGUtbGluayB7Ci0gICAgICAgICAgICB3aWR0aDog
MTUwcHg7Ci0gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Ci0gICAgICAgIH0KLSAg
ICA8L3N0eWxlPgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5BbGxUZXN0cygpIj4KLTxkaXYg
aWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+PGJyPgotPGRp
diBpZD0iY29uc29sZSI+PC9kaXY+Ci08c2NyaXB0PgotICAgIGRlc2NyaXB0aW9uKCJUZXN0IGZv
ciB2YWxpZGl0eSBvZiBwcml2YXRlIGNsaWNrIG1lYXN1cmVtZW50IGF0dHJpYnV0ZXMgb24gYW5j
aG9yIHRhZ3MuIik7Ci0gICAganNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLSAgICBmdW5jdGlvbiBj
cmVhdGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFuY2hvckVsZW1lbnQoZWxlbWVudElELCBhZENh
bXBhaWduSUQsIGFkRGVzdGluYXRpb24pIHsKLSAgICAgICAgbGV0IGFuY2hvckVsZW1lbnQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7Ci0gICAgICAgIGFuY2hvckVsZW1lbnQuaWQgPSBl
bGVtZW50SUQ7Ci0gICAgICAgIGFuY2hvckVsZW1lbnQuY2xhc3NMaXN0LmFkZCgid2lkZS1saW5r
Iik7Ci0gICAgICAgIGFuY2hvckVsZW1lbnQuYWRjYW1wYWlnbmlkID0gYWRDYW1wYWlnbklEOwot
ICAgICAgICBhbmNob3JFbGVtZW50LmFkZGVzdGluYXRpb24gPSBhZERlc3RpbmF0aW9uOwotICAg
ICAgICBhbmNob3JFbGVtZW50LmhyZWYgPSAiIyI7Ci0gICAgICAgIGFuY2hvckVsZW1lbnQuaW5u
ZXJUZXh0ID0gIkxpbmsiICsgY3VycmVudFRlc3Q7Ci0gICAgICAgIHJldHVybiBhbmNob3JFbGVt
ZW50OwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVudChlbGVtZW50SUQsIGNh
bGxiYWNrKSB7Ci0gICAgICAgIFVJSGVscGVyLmFjdGl2YXRlRWxlbWVudChkb2N1bWVudC5nZXRF
bGVtZW50QnlJZChlbGVtZW50SUQpKS50aGVuKAotICAgICAgICAgICAgZnVuY3Rpb24gKCkgewot
ICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7Ci0gICAgICAgICAgICB9LAotICAgICAgICAgICAg
ZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlByb21pc2UgcmVqZWN0
ZWQuIik7Ci0gICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICk7Ci0gICAgfQotCi0gICAgbGV0IGN1cnJlbnRUZXN0ID0gMDsKLSAgICBmdW5jdGlv
biBydW5PbmVUZXN0KGFkQ2FtcGFpZ25JRCwgYWREZXN0aW5hdGlvbiwgY2FsbGJhY2spIHsKLSAg
ICAgICAgY29uc3QgY3VycmVudEVsZW1lbnRJRCA9ICJ0ZXN0IiArIGN1cnJlbnRUZXN0Kys7Ci0g
ICAgICAgIGNvbnN0IGFuY2hvckVsZW1lbnQgPSBjcmVhdGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dEFuY2hvckVsZW1lbnQoY3VycmVudEVsZW1lbnRJRCwgYWRDYW1wYWlnbklELCBhZERlc3RpbmF0
aW9uKTsKLSAgICAgICAgb3V0cHV0LmFwcGVuZENoaWxkKGFuY2hvckVsZW1lbnQpOwotICAgICAg
ICBhY3RpdmF0ZUVsZW1lbnQoY3VycmVudEVsZW1lbnRJRCwgY2FsbGJhY2spOwotICAgIH0KLQot
ICAgIGNvbnN0IHZhbGlkQWRDYW1wYWlnbklEID0gIjAzIjsKLSAgICBjb25zdCB2YWxpZEFkRGVz
dGluYXRpb24gPSAiaHR0cDovL3dlYmtpdC5vcmciOwotICAgIGNvbnN0IHNhbWVTaXRlID0gZG9j
dW1lbnQubG9jYXRpb24ub3JpZ2luOwotICAgIGNvbnN0IHRlc3RDYXNlcyA9IFsKLSAgICAgICAg
WyB2YWxpZEFkQ2FtcGFpZ25JRCwgdmFsaWRBZERlc3RpbmF0aW9uIF0sCi0gICAgICAgIFsgIjEw
MCIsIHZhbGlkQWREZXN0aW5hdGlvbiBdLCAgICAgICAgICAgLy8gVG9vIG1hbnkgY2hhcmFjdGVy
cy4KLSAgICAgICAgWyAiMSIsIHZhbGlkQWREZXN0aW5hdGlvbiBdLCAgICAgICAgICAgICAvLyBU
b28gZmV3IGNoYXJhY3RlcnMuCi0gICAgICAgIFsgIjk4IiwgdmFsaWRBZERlc3RpbmF0aW9uIF0s
ICAgICAgICAgICAgLy8gVG9vIGhpZ2ggdmFsdWUuCi0gICAgICAgIFsgIi0xIiwgdmFsaWRBZERl
c3RpbmF0aW9uIF0sICAgICAgICAgICAgLy8gTmVnYXRpdmUgdmFsdWUuCi0gICAgICAgIFsgImFi
IiwgdmFsaWRBZERlc3RpbmF0aW9uIF0sICAgICAgICAgICAgLy8gTm9uLWRpZ2l0cy4KLSAgICAg
ICAgWyAi76O/MSIsIHZhbGlkQWREZXN0aW5hdGlvbiBdLCAgICAgICAgICAgIC8vIE5vbi1BU0NJ
SS4KLSAgICAgICAgWyAiIDEiLCB2YWxpZEFkRGVzdGluYXRpb24gXSwgICAgICAgICAgICAvLyBM
ZWFkaW5nIHNwYWNlLgotICAgICAgICBbICIxICIsIHZhbGlkQWREZXN0aW5hdGlvbiBdLCAgICAg
ICAgICAgIC8vIFRyYWlsaW5nIHNwYWNlLgotICAgICAgICBbIHZhbGlkQWRDYW1wYWlnbklELCAi
d2Via2l0Lm9yZyIgXSwgICAgIC8vIE1pc3NpbmcgcHJvdG9jb2wuCi0gICAgICAgIFsgdmFsaWRB
ZENhbXBhaWduSUQsICI6Ly93ZWJraXQub3JnIiBdLCAgLy8gUGFydGlhbGx5IG1pc3NpbmcgcHJv
dG9jb2wuCi0gICAgICAgIFsgdmFsaWRBZENhbXBhaWduSUQsICLvo7/vo7/vo78iIF0sICAgICAg
ICAgICAvLyBOb24tQVNDSUkgY2hhcmFjdGVycyBhcyBkZXN0aW5hdGlvbi4KLSAgICAgICAgWyAi
IiwgdmFsaWRBZERlc3RpbmF0aW9uIF0sICAgICAgICAgICAgICAvLyBFbXB0eSBjYW1wYWlnbiBJ
RC4KLSAgICAgICAgWyB2YWxpZEFkQ2FtcGFpZ25JRCwgIiIgXSwgICAgICAgICAgICAgICAvLyBF
bXB0eSBkZXN0aW5hdGlvbi4KLSAgICAgICAgWyB2YWxpZEFkQ2FtcGFpZ25JRCwgc2FtZVNpdGUg
XSAgICAgICAgICAvLyBTYW1lLXNpdGUgZGVzdGluYXRpb24uCi0gICAgXTsKLQotICAgIGZ1bmN0
aW9uIHJ1bkFsbFRlc3RzKCkgewotICAgICAgICBpZiAoY3VycmVudFRlc3QgPCB0ZXN0Q2FzZXMu
bGVuZ3RoKQotICAgICAgICAgICAgcnVuT25lVGVzdCh0ZXN0Q2FzZXNbY3VycmVudFRlc3RdWzBd
LCB0ZXN0Q2FzZXNbY3VycmVudFRlc3RdWzFdLCBydW5BbGxUZXN0cyk7Ci0gICAgICAgIGVsc2Ug
ewotICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChvdXRwdXQpOwotICAgICAg
ICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgICAgIH0KLSAgICB9Ci08L3NjcmlwdD4KLTwvYm9k
eT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWNyb3NzLXNpdGUt
aW1hZ2UtcmVkaXJlY3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtY3Jvc3Mt
c2l0ZS1pbWFnZS1yZWRpcmVjdC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGE3ZDg2N2ZjNjIwNjg4NDVkOWVkMmY5ZDg4YTkzMjUzYjIyNTA1YTYuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91
Z2gtY3Jvc3Mtc2l0ZS1pbWFnZS1yZWRpcmVjdC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSw5ICswLDAgQEAKLVRlc3RzIHRoYXQgdHJpZ2dlcmluZyBvZiBwcml2YXRlIGNsaWNrIG1l
YXN1cmVtZW50IGNvbnZlcnNpb25zIHRocm91Z2ggY3Jvc3Mtc2l0ZSByZWRpcmVjdHMgZG8gbm90
IHdvcmsuCi0KLQotVW5jb252ZXJ0ZWQgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudHM6Ci1XZWJD
b3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCAxCi1Tb3VyY2U6IDEyNy4wLjAuMQotRGVzdGlu
YXRpb246IGxvY2FsaG9zdAotQ2FtcGFpZ24gSUQ6IDMKLU5vIGNvbnZlcnNpb24gZGF0YS4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
YXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWNyb3NzLXNpdGUtaW1hZ2UtcmVkaXJlY3Qu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0
cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWNyb3NzLXNpdGUtaW1hZ2UtcmVkaXJlY3QuaHRt
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTc3MWJkNjA2ZTM2MDY4MjIzMTIyOTAy
NGU0MzQ5MDBjYzgyYTIyNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0
dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1jcm9zcy1zaXRlLWltYWdlLXJlZGlyZWN0Lmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1MiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4gPCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRFbmFibGVkPXRydWUgXSAtLT4KLTxodG1sIGxhbmc9ImVuIj4KLTxoZWFkPgot
ICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KLSAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29u
dGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHVzZXItc2NhbGFibGU9
bm8iPgotICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48
L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0Pgot
PC9oZWFkPgotPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KHJ1blRlc3QsIDApIj4KLTxkaXYgaWQ9
ImRlc2NyaXB0aW9uIj5UZXN0cyB0aGF0IHRyaWdnZXJpbmcgb2YgcHJpdmF0ZSBjbGljayBtZWFz
dXJlbWVudCBjb252ZXJzaW9ucyB0aHJvdWdoIGNyb3NzLXNpdGUgcmVkaXJlY3RzIGRvIG5vdCB3
b3JrLjwvZGl2PgotPGEgaWQ9InRhcmdldExpbmsiIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAw
MC9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gt
Y3Jvc3Mtc2l0ZS1pbWFnZS1yZWRpcmVjdC5odG1sP3N0ZXBUd28iIGFkY2FtcGFpZ25pZD0iMyIg
YWRkZXN0aW5hdGlvbj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwIj5MaW5rPC9hPjxicj4KLTxkaXYg
aWQ9Im91dHB1dCI+PC9kaXY+Ci08c2NyaXB0PgotICAgIHByZXBhcmVUZXN0KCk7Ci0KLSAgICBm
dW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxlbWVudElEKSB7Ci0gICAgICAgIHZhciBlbGVtZW50
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElEKTsKLSAgICAgICAgdmFyIGNlbnRl
clggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKLSAgICAg
ICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0
IC8gMjsKLSAgICAgICAgVUlIZWxwZXIuYWN0aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZKS50aGVu
KAotICAgICAgICAgICAgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgfSwKLSAgICAgICAgICAg
IGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
b3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgUHJvbWlzZSByZWplY3RlZC4iOwotICAgICAgICAg
ICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICk7Ci0g
ICAgfQotCi0gICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgICAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7Ci0gICAgICAgICAgICBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0gIj9z
dGVwVHdvIikgewotICAgICAgICAgICAgICAgIGxldCBpbWFnZUVsZW1lbnQgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJpbWciKTsKLSAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQuc3JjID0g
Imh0dHBzOi8vbG9jYWxob3N0Ojg0NDMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2Vz
L3JlZGlyZWN0VG9Db252ZXJzaW9uT25JUEFkZHJlc3MucGhwP2NvbnZlcnNpb25EYXRhPTEyIjsK
LSAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQuaWQgPSAicGl4ZWwiOwotICAgICAgICAgICAg
ICAgIGltYWdlRWxlbWVudC5vbmVycm9yID0gZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLmR1bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpOwotICAgICAgICAg
ICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJ0YXJnZXRMaW5rIikpOwotICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJl
bW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwaXhlbCIpKTsKLSAgICAgICAgICAg
ICAgICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsKLSAgICAgICAgICAgICAgICB9OwotICAgICAg
ICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW1hZ2VFbGVtZW50KTsKLSAgICAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJ0YXJnZXRM
aW5rIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgTm8gdGVzdFJ1
bm5lci4iOwotICAgICAgICB9Ci0gICAgfQotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50
L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC1pbi1uZXctd2lu
ZG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LWlu
LW5ldy13aW5kb3ctZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBl
NDFkMmJmZjVkZDM1YjU5ZmE1M2EyNjBlNjRkZWI4Y2I0NWJhOTc1Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdl
LXJlZGlyZWN0LWluLW5ldy13aW5kb3ctZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
MTIgKzAsMCBAQAotVGVzdHMgdHJpZ2dlcmluZyBvZiBwcml2YXRlIGNsaWNrIG1lYXN1cmVtZW50
IGNvbnZlcnNpb25zIGluIGEgbmV3IHdpbmRvdy4KLQotCi1Db252ZXJ0ZWQgUHJpdmF0ZSBDbGlj
ayBNZWFzdXJlbWVudHM6Ci1XZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCAxCi1Tb3Vy
Y2U6IDEyNy4wLjAuMQotRGVzdGluYXRpb246IGxvY2FsaG9zdAotQ2FtcGFpZ24gSUQ6IDMKLUNv
bnZlcnNpb24gZGF0YTogMTIKLUNvbnZlcnNpb24gcHJpb3JpdHk6IDMKLUNvbnZlcnNpb24gZWFy
bGllc3QgdGltZSB0byBzZW5kOiBXaXRoaW4gMjQtNDggaG91cnMKLUNvbnZlcnNpb24gcmVxdWVz
dCBzZW50OiBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVk
aXJlY3QtaW4tbmV3LXdpbmRvdy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVk
aXJlY3QtaW4tbmV3LXdpbmRvdy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBl
NzIyMzAyNmZlNmJjYWRjMmYyYTVmYjVmZDgyNjExYjFhM2U2YzllLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdl
LXJlZGlyZWN0LWluLW5ldy13aW5kb3cuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDU5ICswLDAg
QEAKLTwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxl
Vmlld3BvcnQ9dHJ1ZSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVuYWJsZWQ9dHJ1ZSBdIC0tPgot
PGh0bWwgbGFuZz0iZW4iPgotPGhlYWQ+Ci0gICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgotICAg
IDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRp
YWwtc2NhbGU9MSwgdXNlci1zY2FsYWJsZT1ubyI+Ci0gICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0
LXJlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InNldFRpbWVv
dXQocnVuVGVzdCwgMCkiPgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPlRlc3RzIHRyaWdnZXJpbmcg
b2YgcHJpdmF0ZSBjbGljayBtZWFzdXJlbWVudCBjb252ZXJzaW9ucyBpbiBhIG5ldyB3aW5kb3cu
PC9kaXY+Ci08YSB0YXJnZXQ9Il9ibGFuayIgcmVsPSJvcGVuZXIiIGlkPSJ0YXJnZXRMaW5rIiBo
cmVmPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3Vy
Y2VzL2NvbnZlcnRBbmRQb3N0TWVzc2FnZUJhY2suaHRtbCIgYWRjYW1wYWlnbmlkPSIzIiBhZGRl
c3RpbmF0aW9uPSJodHRwOi8vbG9jYWxob3N0OjgwMDAiPkxpbms8L2E+PGJyPgotPGRpdiBpZD0i
b3V0cHV0Ij48L2Rpdj4KLTxzY3JpcHQ+Ci0gICAgcHJlcGFyZVRlc3QoKTsKLQotICAgIGZ1bmN0
aW9uIGFjdGl2YXRlRWxlbWVudChlbGVtZW50SUQpIHsKLSAgICAgICAgdmFyIGVsZW1lbnQgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SUQpOwotICAgICAgICB2YXIgY2VudGVyWCA9
IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOwotICAgICAgICB2
YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAy
OwotICAgICAgICBVSUhlbHBlci5hY3RpdmF0ZUF0KGNlbnRlclgsIGNlbnRlclkpLnRoZW4oCi0g
ICAgICAgICAgICBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICB9LAotICAgICAgICAgICAgZnVu
Y3Rpb24gKCkgewotICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRw
dXQiKS5pbm5lclRleHQgPSAiRkFJTCBQcm9taXNlIHJlamVjdGVkLiI7Ci0gICAgICAgICAgICAg
ICAgdGVhckRvd25BbmRGaW5pc2goKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgKTsKLSAgICB9
Ci0KLSAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgewotICAgICAgICBpZiAoZXZl
bnQub3JpZ2luID09PSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIikgewotICAgICAgICAgICAgaWYg
KGV2ZW50LmRhdGEgPT09ICJEb25lIikgewotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVt
cFByaXZhdGVDbGlja01lYXN1cmVtZW50KCk7Ci0gICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9k
eS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0TGluayIpKTsKLSAg
ICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOwotICAgICAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCB1bmtub3duIG1lc3NhZ2U6ICIg
KyBldmVudC5kYXRhKTsKLSAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOwotICAg
ICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgdGVzdEZhaWxlZCgiUmVj
ZWl2ZWQgYSBtZXNzYWdlIGZyb20gYW4gdW5leHBlY3RlZCBvcmlnaW46ICIgKyBldmVudC5vcmln
aW4pOwotICAgICAgICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsKLSAgICAgICAgfQotICAgIH0K
LQotICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2Us
IGZhbHNlKTsKLQotICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgewotICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRDYW5PcGVuV2luZG93cygp
OwotICAgICAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJ0YXJnZXRMaW5rIik7Ci0gICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5u
ZXJUZXh0ID0gIkZBSUwgTm8gdGVzdFJ1bm5lci4iOwotICAgICAgICAgICAgdGVhckRvd25BbmRG
aW5pc2goKTsKLSAgICAgICAgfQotICAgIH0KLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVkaXJlY3Qtd2l0aC1wcmlv
cml0eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01l
YXN1cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13
aXRoLXByaW9yaXR5LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ODRiMjcyNGY0ZmI1NTllNTZjZDFkOWY0ZDFmZmM1OTVkMjRiNjRiMy4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3By
aXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFn
ZS1yZWRpcmVjdC13aXRoLXByaW9yaXR5LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDEyICswLDAgQEAKLVRlc3RzIHRyaWdnZXJpbmcgb2YgcHJpdmF0ZSBjbGljayBtZWFzdXJlbWVu
dCBjb252ZXJzaW9ucyB3aXRoIHByaW9yaXR5LgotCi0KLUNvbnZlcnRlZCBQcml2YXRlIENsaWNr
IE1lYXN1cmVtZW50czoKLVdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50IDEKLVNvdXJj
ZTogMTI3LjAuMC4xCi1EZXN0aW5hdGlvbjogbG9jYWxob3N0Ci1DYW1wYWlnbiBJRDogMwotQ29u
dmVyc2lvbiBkYXRhOiAxMgotQ29udmVyc2lvbiBwcmlvcml0eTogMwotQ29udmVyc2lvbiBlYXJs
aWVzdCB0aW1lIHRvIHNlbmQ6IFdpdGhpbiAyNC00OCBob3VycwotQ29udmVyc2lvbiByZXF1ZXN0
IHNlbnQ6IGZhbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVD
bGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRp
cmVjdC13aXRoLXByaW9yaXR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVD
bGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRp
cmVjdC13aXRoLXByaW9yaXR5Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU5
Zjk0NTEwZWNjODA0MGQ5OWNmMmY2ZDYyZjhkNGQ1M2VmOWI5ZjEuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2Ut
cmVkaXJlY3Qtd2l0aC1wcmlvcml0eS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTIgKzAsMCBA
QAotPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVW
aWV3cG9ydD10cnVlIFByaXZhdGVDbGlja01lYXN1cmVtZW50RW5hYmxlZD10cnVlIF0gLS0+Ci08
aHRtbCBsYW5nPSJlbiI+Ci08aGVhZD4KLSAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+Ci0gICAg
PG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlh
bC1zY2FsZT0xLCB1c2VyLXNjYWxhYmxlPW5vIj4KLSAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3Qt
cmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291
cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0ic2V0VGltZW91
dChydW5UZXN0LCAwKSI+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgdHJpZ2dlcmluZyBv
ZiBwcml2YXRlIGNsaWNrIG1lYXN1cmVtZW50IGNvbnZlcnNpb25zIHdpdGggcHJpb3JpdHkuPC9k
aXY+Ci08YSBpZD0idGFyZ2V0TGluayIgaHJlZj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3ByaXZh
dGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1y
ZWRpcmVjdC13aXRoLXByaW9yaXR5Lmh0bWw/c3RlcFR3byIgYWRjYW1wYWlnbmlkPSIzIiBhZGRl
c3RpbmF0aW9uPSJodHRwOi8vbG9jYWxob3N0OjgwMDAiPkxpbms8L2E+PGJyPgotPGRpdiBpZD0i
b3V0cHV0Ij48L2Rpdj4KLTxzY3JpcHQ+Ci0gICAgcHJlcGFyZVRlc3QoKTsKLQotICAgIGZ1bmN0
aW9uIGFjdGl2YXRlRWxlbWVudChlbGVtZW50SUQpIHsKLSAgICAgICAgdmFyIGVsZW1lbnQgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SUQpOwotICAgICAgICB2YXIgY2VudGVyWCA9
IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOwotICAgICAgICB2
YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAy
OwotICAgICAgICBVSUhlbHBlci5hY3RpdmF0ZUF0KGNlbnRlclgsIGNlbnRlclkpLnRoZW4oCi0g
ICAgICAgICAgICBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICB9LAotICAgICAgICAgICAgZnVu
Y3Rpb24gKCkgewotICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRw
dXQiKS5pbm5lclRleHQgPSAiRkFJTCBQcm9taXNlIHJlamVjdGVkLiI7Ci0gICAgICAgICAgICAg
ICAgdGVhckRvd25BbmRGaW5pc2goKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgKTsKLSAgICB9
Ci0KLSAgICBmdW5jdGlvbiBydW5UZXN0KCkgewotICAgICAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpIHsKLSAgICAgICAgICAgIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAiP3N0ZXBU
d28iKSB7Ci0gICAgICAgICAgICAgICAgbGV0IGltYWdlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImltZyIpOwotICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5zcmMgPSAiaHR0
cHM6Ly8xMjcuMC4wLjE6ODQ0My9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvcmVk
aXJlY3RUb0NvbnZlcnNpb24ucGhwP2NvbnZlcnNpb25EYXRhPTEyJnByaW9yaXR5PTAzIjsKLSAg
ICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQuaWQgPSAicGl4ZWwiOwotICAgICAgICAgICAgICAg
IGltYWdlRWxlbWVudC5vbmVycm9yID0gZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLmR1bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpOwotICAgICAgICAgICAg
ICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJ0YXJnZXRMaW5rIikpOwotICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92
ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwaXhlbCIpKTsKLSAgICAgICAgICAgICAg
ICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsKLSAgICAgICAgICAgICAgICB9OwotICAgICAgICAg
ICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW1hZ2VFbGVtZW50KTsKLSAgICAgICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJ0YXJnZXRMaW5r
Iik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgTm8gdGVzdFJ1bm5l
ci4iOwotICAgICAgICB9Ci0gICAgfQotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0
dHJpYnV0aW9uLWNvbnZlcnNpb24tdGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRob3V0LXByaW9y
aXR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LXdp
dGhvdXQtcHJpb3JpdHktZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA3MWY0NjJjZDBlYzMwYzZhMDM4MjQxNWUwMzRlMTY3NWYxZjAyM2IxLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWlt
YWdlLXJlZGlyZWN0LXdpdGhvdXQtcHJpb3JpdHktZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMTIgKzAsMCBAQAotVGVzdHMgdHJpZ2dlcmluZyBvZiBwcml2YXRlIGNsaWNrIG1lYXN1
cmVtZW50IGNvbnZlcnNpb25zIHdpdGhvdXQgcHJpb3JpdHkuCi0KLQotQ29udmVydGVkIFByaXZh
dGUgQ2xpY2sgTWVhc3VyZW1lbnRzOgotV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQg
MQotU291cmNlOiAxMjcuMC4wLjEKLURlc3RpbmF0aW9uOiBsb2NhbGhvc3QKLUNhbXBhaWduIElE
OiAzCi1Db252ZXJzaW9uIGRhdGE6IDEyCi1Db252ZXJzaW9uIHByaW9yaXR5OiAwCi1Db252ZXJz
aW9uIGVhcmxpZXN0IHRpbWUgdG8gc2VuZDogV2l0aGluIDI0LTQ4IGhvdXJzCi1Db252ZXJzaW9u
IHJlcXVlc3Qgc2VudDogZmFsc2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWlt
YWdlLXJlZGlyZWN0LXdpdGhvdXQtcHJpb3JpdHkuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdo
LWltYWdlLXJlZGlyZWN0LXdpdGhvdXQtcHJpb3JpdHkuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggYzIzMGI2OWQ3OTRjNmUxYTViY2U2NGE5NjQ0ZGY2OWJlM2UzZWRhYS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2F0dHJpYnV0aW9uLWNvbnZlcnNpb24t
dGhyb3VnaC1pbWFnZS1yZWRpcmVjdC13aXRob3V0LXByaW9yaXR5Lmh0bWwKKysrIC9kZXYvbnVs
bApAQCAtMSw1MiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgXSAtLT4KLTxodG1sIGxhbmc9ImVuIj4KLTxo
ZWFkPgotICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KLSAgICA8bWV0YSBuYW1lPSJ2aWV3cG9y
dCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHVzZXItc2Nh
bGFibGU9bm8iPgotICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVy
LmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2Ny
aXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KHJ1blRlc3QsIDApIj4KLTxk
aXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0cyB0cmlnZ2VyaW5nIG9mIHByaXZhdGUgY2xpY2sgbWVh
c3VyZW1lbnQgY29udmVyc2lvbnMgd2l0aG91dCBwcmlvcml0eS48L2Rpdj4KLTxhIGlkPSJ0YXJn
ZXRMaW5rIiBocmVmPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LXdpdGhvdXQt
cHJpb3JpdHkuaHRtbD9zdGVwVHdvIiBhZGNhbXBhaWduaWQ9IjMiIGFkZGVzdGluYXRpb249Imh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMCI+TGluazwvYT48YnI+Ci08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2
PgotPHNjcmlwdD4KLSAgICBwcmVwYXJlVGVzdCgpOwotCi0gICAgZnVuY3Rpb24gYWN0aXZhdGVF
bGVtZW50KGVsZW1lbnRJRCkgewotICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKGVsZW1lbnRJRCk7Ci0gICAgICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZz
ZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7Ci0gICAgICAgIHZhciBjZW50ZXJZID0g
ZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7Ci0gICAgICAgIFVJ
SGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKLSAgICAgICAgICAgIGZ1
bmN0aW9uICgpIHsKLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICBmdW5jdGlvbiAoKSB7Ci0g
ICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4
dCA9ICJGQUlMIFByb21pc2UgcmVqZWN0ZWQuIjsKLSAgICAgICAgICAgICAgICB0ZWFyRG93bkFu
ZEZpbmlzaCgpOwotICAgICAgICAgICAgfQotICAgICAgICApOwotICAgIH0KLQotICAgIGZ1bmN0
aW9uIHJ1blRlc3QoKSB7Ci0gICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAg
ICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/c3RlcFR3byIpIHsKLSAgICAg
ICAgICAgICAgICBsZXQgaW1hZ2VFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1n
Iik7Ci0gICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50LnNyYyA9ICJodHRwczovLzEyNy4wLjAu
MTo4NDQzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9yZWRpcmVjdFRvQ29udmVy
c2lvbi5waHA/Y29udmVyc2lvbkRhdGE9MTIiOwotICAgICAgICAgICAgICAgIGltYWdlRWxlbWVu
dC5pZCA9ICJwaXhlbCI7Ci0gICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50Lm9uZXJyb3IgPSBm
dW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQoKTsKLSAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1v
dmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0TGluayIpKTsKLSAgICAgICAg
ICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgicGl4ZWwiKSk7Ci0gICAgICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7
Ci0gICAgICAgICAgICAgICAgfTsKLSAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKGltYWdlRWxlbWVudCk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
ICAgIGFjdGl2YXRlRWxlbWVudCgidGFyZ2V0TGluayIpOwotICAgICAgICAgICAgfQotICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIp
LmlubmVyVGV4dCA9ICJGQUlMIE5vIHRlc3RSdW5uZXIuIjsKLSAgICAgICAgfQotICAgIH0KLTwv
c2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jbGVhci10aHJvdWdoLXdlYnNpdGUtZGF0YS1y
ZW1vdmFsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQvY2xlYXItdGhyb3VnaC13ZWJzaXRlLWRhdGEtcmVtb3ZhbC1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZjYjVkMzZiNjM0YmEwZjViNWI1NjY3
MzFkMDMzMDJkZTNjOTA3ZjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9j
bGVhci10aHJvdWdoLXdlYnNpdGUtZGF0YS1yZW1vdmFsLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDUgKzAsMCBAQAotVGVzdHMgdGhhdCBib3RoIHVuY29udmVydGVkIGFuZCBjb252
ZXJ0ZWQgYXR0cmlidXRpb25zIGFyZSBjbGVhcmVkIG9uIHdlYnNpdGUgZGF0YSByZW1vdmFsLgot
Ci0KLQotTm8gc3RvcmVkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnQgZGF0YS4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY2xlYXIt
dGhyb3VnaC13ZWJzaXRlLWRhdGEtcmVtb3ZhbC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jbGVhci10aHJvdWdoLXdlYnNpdGUtZGF0YS1yZW1v
dmFsLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFlNzRhZWJjM2YyMWM2MDg1
MTdlNjQzZDcwN2ExODk3YmY3NTc2YWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC9jbGVhci10aHJvdWdoLXdlYnNpdGUtZGF0YS1yZW1vdmFsLmh0bWwKKysrIC9kZXYvbnVs
bApAQCAtMSw4MyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmFi
bGVkPXRydWUgXSAtLT4KLTxodG1sIGxhbmc9ImVuIj4KLTxoZWFkPgotICAgIDxtZXRhIGNoYXJz
ZXQ9IlVURi04Ij4KLSAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2
aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHVzZXItc2NhbGFibGU9bm8iPgotICAgIDxzY3Jp
cHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KLSAgICA8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkg
b25sb2FkPSJzZXRUaW1lb3V0KHJ1blRlc3QsIDApIj4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5U
ZXN0cyB0aGF0IGJvdGggdW5jb252ZXJ0ZWQgYW5kIGNvbnZlcnRlZCBhdHRyaWJ1dGlvbnMgYXJl
IGNsZWFyZWQgb24gd2Vic2l0ZSBkYXRhIHJlbW92YWwuPC9kaXY+Ci08YSBpZD0idGFyZ2V0TGlu
ayI+TGluazwvYT48YnI+Ci08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPHNjcmlwdD4KLSAgICBj
b25zdCBwYXRoID0gIi9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jbGVhci10aHJvdWdoLXdlYnNp
dGUtZGF0YS1yZW1vdmFsLmh0bWwiOwotICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBbCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIGhyZWY6ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiICsgcGF0aCAr
ICI/c3RlcFR3byIsCi0gICAgICAgICAgICBhZGNhbXBhaWduaWQ6ICIzIiwKLSAgICAgICAgICAg
IGFkZGVzdGluYXRpb246ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiCi0gICAgICAgIH0sCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIGhyZWY6ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiICsgcGF0aCAr
ICI/c3RlcFRocmVlIiwKLSAgICAgICAgICAgIGFkY2FtcGFpZ25pZDogIjQiLAotICAgICAgICAg
ICAgYWRkZXN0aW5hdGlvbjogImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIKLSAgICAgICAgfQotICAg
IF07Ci0KLSAgICBwcmVwYXJlVGVzdCgpOwotCi0gICAgZnVuY3Rpb24gY29uZmlndXJlTGluayhp
bmRleCkgewotICAgICAgICBsZXQgbGlua0VsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgidGFyZ2V0TGluayIpOwotICAgICAgICBsaW5rRWxlbWVudC5zZXRBdHRyaWJ1dGUoImhyZWYi
LCBjb25maWd1cmF0aW9uW2luZGV4XS5ocmVmKTsKLSAgICAgICAgbGlua0VsZW1lbnQuc2V0QXR0
cmlidXRlKCJhZGNhbXBhaWduaWQiLCBjb25maWd1cmF0aW9uW2luZGV4XS5hZGNhbXBhaWduaWQp
OwotICAgICAgICBsaW5rRWxlbWVudC5zZXRBdHRyaWJ1dGUoImFkZGVzdGluYXRpb24iLCBjb25m
aWd1cmF0aW9uW2luZGV4XS5hZGRlc3RpbmF0aW9uKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBh
Y3RpdmF0ZUVsZW1lbnQoZWxlbWVudElEKSB7Ci0gICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElEKTsKLSAgICAgICAgdmFyIGNlbnRlclggPSBlbGVt
ZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKLSAgICAgICAgdmFyIGNl
bnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKLSAg
ICAgICAgVUlIZWxwZXIuYWN0aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZKS50aGVuKAotICAgICAg
ICAgICAgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIGZ1bmN0aW9u
ICgpIHsKLSAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iiku
aW5uZXJUZXh0ID0gIkZBSUwgUHJvbWlzZSByZWplY3RlZC4iOwotICAgICAgICAgICAgICAgIHRl
YXJEb3duQW5kRmluaXNoKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICk7Ci0gICAgfQotCi0g
ICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
Ci0gICAgICAgICAgICBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0gIiIpIHsKLSAgICAg
ICAgICAgICAgICAvLyBGaXJzdCBhZCBjbGljayAxMjcuMC4wLjEg4oCTPiBsb2NhbGhvc3QuCi0g
ICAgICAgICAgICAgICAgY29uZmlndXJlTGluaygwKTsKLSAgICAgICAgICAgICAgICBhY3RpdmF0
ZUVsZW1lbnQoInRhcmdldExpbmsiKTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAod2luZG93Lmxv
Y2F0aW9uLnNlYXJjaCA9PT0gIj9zdGVwVHdvIikgewotICAgICAgICAgICAgICAgIC8vIENvbnZl
cnQgdGhlIGZpcnN0IGFkIGNsaWNrIHdpdGggcHJpb3JpdHkgNCwgdGhlbiBkbyBhIHJldmVyc2Ug
YWQgY2xpY2suCi0gICAgICAgICAgICAgICAgbGV0IGltYWdlRWxlbWVudCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImltZyIpOwotICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5zcmMgPSAi
aHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMv
cmVkaXJlY3RUb0NvbnZlcnNpb24ucGhwP2NvbnZlcnNpb25EYXRhPTEyJnByaW9yaXR5PTA0IjsK
LSAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQuaWQgPSAicGl4ZWwiOwotICAgICAgICAgICAg
ICAgIGltYWdlRWxlbWVudC5vbmVycm9yID0gZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgICAg
ICAgICAvLyBTZWNvbmQgYWQgY2xpY2sgbG9jYWxob3N0IOKAkz4gMTI3LjAuMC4xLgotICAgICAg
ICAgICAgICAgICAgICBjb25maWd1cmVMaW5rKDEpOwotICAgICAgICAgICAgICAgICAgICBhY3Rp
dmF0ZUVsZW1lbnQoInRhcmdldExpbmsiKTsKLSAgICAgICAgICAgICAgICB9OwotICAgICAgICAg
ICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW1hZ2VFbGVtZW50KTsKLSAgICAgICAg
ICAgIH0gZWxzZSBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0gIj9zdGVwVGhyZWUiKSB7
Ci0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5jbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50
c1Rocm91Z2hXZWJzaXRlRGF0YVJlbW92YWwoKTsKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LmR1bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpOwotICAgICAgICAgICAgICAgIGRvY3VtZW50
LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKSk7
Ci0gICAgICAgICAgICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsKLSAgICAgICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlu
bmVyVGV4dCA9ICJGQUlMIFVua25vd24gd2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PSAiICsgd2lu
ZG93LmxvY2F0aW9uLnNlYXJjaCArICIuIjsKLSAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZp
bmlzaCgpOwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIE5vIHRlc3RS
dW5uZXIuIjsKLSAgICAgICAgfQotICAgIH0KLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9jb252ZXJzaW9uLWRpc2FibGVkLWluLWVwaGVtZXJhbC1zZXNzaW9uLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY29udmVyc2lv
bi1kaXNhYmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lvbi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDFmMWFhMDQyYjEwMjczOTA0NjI3N2YxZDhiY2IwYzc5OWJkNmI1
OTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jb252ZXJzaW9uLWRpc2Fi
bGVkLWluLWVwaGVtZXJhbC1zZXNzaW9uLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDE1ICswLDAgQEAKLVRlc3RzIHRoYXQgc3RvcmVkIGF0dHJpYnV0aW9ucyBjYW5ub3QgYmUgY29u
dmVydGVkIGluIGFuIGVwaGVtZXJhbCBzZXNzaW9uLgotCi0KLQotLS0tLS0tLS0KLUZyYW1lOiAn
PCEtLWZyYW1lMS0tPicKLS0tLS0tLS0tCi1Db252ZXJzaW9uIG5vdCByZWNlaXZlZCAtIHRpbWVk
IG91dC4KLQotVW5jb252ZXJ0ZWQgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudHM6Ci1XZWJDb3Jl
OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCAxCi1Tb3VyY2U6IDEyNy4wLjAuMQotRGVzdGluYXRp
b246IGxvY2FsaG9zdAotQ2FtcGFpZ24gSUQ6IDMKLU5vIGNvbnZlcnNpb24gZGF0YS4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY29u
dmVyc2lvbi1kaXNhYmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lvbi5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jb252ZXJzaW9uLWRpc2FibGVkLWlu
LWVwaGVtZXJhbC1zZXNzaW9uLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNj
MDc4NDY2MmM1MDVjNmIxYjY5MTgwNTU5MDg4YjhjZjNjOTYxOTMuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9jb252ZXJzaW9uLWRpc2FibGVkLWluLWVwaGVtZXJhbC1zZXNz
aW9uLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw4MCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4g
PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgXSAtLT4K
LTxodG1sIGxhbmc9ImVuIj4KLTxoZWFkPgotICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KLSAg
ICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0
aWFsLXNjYWxlPTEsIHVzZXItc2NhbGFibGU9bm8iPgotICAgIDxzY3JpcHQgc3JjPSIvanMtdGVz
dC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJzZXRUaW1l
b3V0KHJ1blRlc3QsIDApIj4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0cyB0aGF0IHN0b3Jl
ZCBhdHRyaWJ1dGlvbnMgY2Fubm90IGJlIGNvbnZlcnRlZCBpbiBhbiBlcGhlbWVyYWwgc2Vzc2lv
bi48L2Rpdj4KLTxhIGlkPSJ0YXJnZXRMaW5rIiBocmVmPSJodHRwOi8vbG9jYWxob3N0OjgwMDAv
cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY29udmVyc2lvbi1kaXNhYmxlZC1pbi1lcGhlbWVyYWwt
c2Vzc2lvbi5odG1sP3N0ZXBUd28iIGFkY2FtcGFpZ25pZD0iMyIgYWRkZXN0aW5hdGlvbj0iaHR0
cDovL2xvY2FsaG9zdDo4MDAwIj5MaW5rPC9hPjxicj4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+
Ci08c2NyaXB0PgotICAgIGNvbnN0IGN1cnJlbnRUaW1lTWlsbGlzID0gKG5ldyBEYXRlKCkpLmdl
dFRpbWUoKTsKLSAgICBjb25zdCBoaWdoRW50cm9weUJpdHMgPSBjdXJyZW50VGltZU1pbGxpcyAt
IChNYXRoLmZsb29yKGN1cnJlbnRUaW1lTWlsbGlzIC8gMTAwMDAwMCkgKiAxMDAwMDAwKTsKLSAg
ICBjb25zdCBub25jZSA9IGhpZ2hFbnRyb3B5Qml0cyArICIiICsgTWF0aC5mbG9vcihNYXRoLnJh
bmRvbSgpICogMTAwKTsKLQotICAgIHByZXBhcmVUZXN0KCk7Ci0KLSAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpCi0gICAgICAgIHRlc3RSdW5uZXIuc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRD
b252ZXJzaW9uVVJMRm9yVGVzdGluZygiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3ByaXZhdGVDbGlj
a01lYXN1cmVtZW50L3Jlc291cmNlcy9jb252ZXJzaW9uUmVwb3J0LnBocD9ub25jZT0iICsgbm9u
Y2UpOwotCi0gICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJRCkgewotICAgICAg
ICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJRCk7Ci0gICAg
ICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0
aCAvIDI7Ci0gICAgICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50
Lm9mZnNldEhlaWdodCAvIDI7Ci0gICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwg
Y2VudGVyWSkudGhlbigKLSAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIH0s
Ci0gICAgICAgICAgICBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIFByb21pc2UgcmVqZWN0ZWQu
IjsKLSAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOwotICAgICAgICAgICAgfQot
ICAgICAgICApOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGFwcGVuZElmcmFtZSh1cmwsIG9ubG9h
ZENhbGxiYWNrKSB7Ci0gICAgICAgIGxldCBpZnJhbWVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiaWZyYW1lIik7Ci0gICAgICAgIGlmcmFtZUVsZW1lbnQuc3JjID0gdXJsOwotICAg
ICAgICBpZiAob25sb2FkQ2FsbGJhY2spCi0gICAgICAgICAgICBpZnJhbWVFbGVtZW50Lm9ubG9h
ZCA9IG9ubG9hZENhbGxiYWNrOwotICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlm
cmFtZUVsZW1lbnQpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGFwcGVuZENvbnZlcnNpb25EYXRh
SWZyYW1lQW5kRmluaXNoKCkgewotICAgICAgICB0ZXN0UnVubmVyLmR1bXBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCgpOwotICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXRMaW5rIikpOwotCi0gICAgICAgIGFwcGVuZElmcmFtZSgi
aHR0cDovLzEyNy4wLjAuMTo4MDAwL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9n
ZXRDb252ZXJzaW9uRGF0YS5waHA/dGltZW91dF9tcz0xMDAwJm5vbmNlPSIgKyBub25jZSwgZnVu
Y3Rpb24oKSB7Ci0gICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOwotICAgICAgICB9KTsK
LSAgICB9Ci0KLSAgICBmdW5jdGlvbiBydW5UZXN0KCkgewotICAgICAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsKLSAgICAgICAgICAgIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAi
P3N0ZXBUd28iKSB7Ci0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTaG91bGRTd2FwVG9F
cGhlbWVyYWxTZXNzaW9uT25OZXh0TmF2aWdhdGlvbih0cnVlKTsKLSAgICAgICAgICAgICAgICB3
aW5kb3cubG9jYXRpb24gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3ByaXZhdGVDbGlja01lYXN1
cmVtZW50L2NvbnZlcnNpb24tZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24uaHRtbD9zdGVw
VGhyZWUiOwotICAgICAgICAgICAgfSBlbHNlIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09
PSAiP3N0ZXBUaHJlZSIpIHsKLSAgICAgICAgICAgICAgICBsZXQgaW1hZ2VFbGVtZW50ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7Ci0gICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50
LnNyYyA9ICJodHRwczovLzEyNy4wLjAuMTo4NDQzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jl
c291cmNlcy9yZWRpcmVjdFRvQ29udmVyc2lvbi5waHA/Y29udmVyc2lvbkRhdGE9MTImbm9uY2U9
IiArIG5vbmNlOwotICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5pZCA9ICJwaXhlbCI7Ci0g
ICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50Lm9uZXJyb3IgPSBmdW5jdGlvbigpIHsKLSAgICAg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTaG91bGRTd2FwVG9EZWZhdWx0U2Vzc2lvbk9u
TmV4dE5hdmlnYXRpb24odHJ1ZSk7Ci0gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlv
biA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY29udmVy
c2lvbi1kaXNhYmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lvbi5odG1sP3N0ZXBGb3VyIjsKLSAgICAg
ICAgICAgICAgICB9OwotICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
aW1hZ2VFbGVtZW50KTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAod2luZG93LmxvY2F0aW9uLnNl
YXJjaCA9PT0gIj9zdGVwRm91ciIpIHsKLSAgICAgICAgICAgICAgICBhcHBlbmRDb252ZXJzaW9u
RGF0YUlmcmFtZUFuZEZpbmlzaCgpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg
ICAgICBkb2N1bWVudC5jb29raWUgPSAiY29va2llU2V0QXNGaXJzdFBhcnR5PTE7IHBhdGg9LyI7
Ci0gICAgICAgICAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJ0YXJnZXRMaW5rIik7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgTm8gdGVzdFJ1bm5lci4iOwotICAgICAg
ICB9Ci0gICAgfQotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2V4cGlyZWQtYXR0cmli
dXRpb25zLXJlbW92ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9leHBpcmVkLWF0dHJpYnV0aW9ucy1yZW1vdmVkLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGIzZTJiOGQxMmZjMmFlYWZiZTkw
MjQ5MjI1MzhlNzhiZDI1ODdkZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50
L2V4cGlyZWQtYXR0cmlidXRpb25zLXJlbW92ZWQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsNSArMCwwIEBACi1UZXN0cyBleHBpcmF0aW9uIG9mIHByaXZhdGUgY2xpY2sgbWVhc3Vy
ZW1lbnQuCi0KLQotCi1ObyBzdG9yZWQgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudCBkYXRhLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9leHBpcmVkLWF0dHJpYnV0aW9ucy1yZW1vdmVkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L2V4cGlyZWQtYXR0cmlidXRpb25zLXJlbW92ZWQu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTdmMzAyNGMwMWEzNzFkNzRhMjc4
MDIzNmMxOTVlNzBjMjYzNDhjZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50
L2V4cGlyZWQtYXR0cmlidXRpb25zLXJlbW92ZWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUz
ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZs
ZXhpYmxlVmlld3BvcnQ9dHJ1ZSBdIC0tPgotPGh0bWwgbGFuZz0iZW4iPgotPGhlYWQ+Ci0gICAg
PG1ldGEgY2hhcnNldD0iVVRGLTgiPgotICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50
PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSwgdXNlci1zY2FsYWJsZT1ubyI+
Ci0gICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2Ny
aXB0PgotICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Ci08L2hl
YWQ+Ci08Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQocnVuVGVzdCwgMCkiPgotPGRpdiBpZD0iZGVz
Y3JpcHRpb24iPlRlc3RzIGV4cGlyYXRpb24gb2YgcHJpdmF0ZSBjbGljayBtZWFzdXJlbWVudC48
L2Rpdj4KLTxhIGlkPSJ0YXJnZXRMaW5rIiBocmVmPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvZXhwaXJlZC1hdHRyaWJ1dGlvbnMtcmVtb3ZlZC5odG1sP3N0
ZXBUd28iIGFkY2FtcGFpZ25pZD0iMyIgYWRkZXN0aW5hdGlvbj0iaHR0cDovL2xvY2FsaG9zdDo4
MDAwIj5MaW5rPC9hPjxicj4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08c2NyaXB0PgotICAg
IHByZXBhcmVUZXN0KCk7Ci0KLSAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxlbWVudElE
KSB7Ci0gICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVu
dElEKTsKLSAgICAgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50
Lm9mZnNldFdpZHRoIC8gMjsKLSAgICAgICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRv
cCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKLSAgICAgICAgVUlIZWxwZXIuYWN0aXZhdGVB
dChjZW50ZXJYLCBjZW50ZXJZKS50aGVuKAotICAgICAgICAgICAgZnVuY3Rpb24gKCkgewotICAg
ICAgICAgICAgfSwKLSAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgUHJvbWlz
ZSByZWplY3RlZC4iOwotICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgICk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsK
LSAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICBpZiAod2luZG93
LmxvY2F0aW9uLnNlYXJjaCA9PT0gIj9zdGVwVHdvIikgewotICAgICAgICAgICAgICAgIHRlc3RS
dW5uZXIubWFya1ByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoKTsK
LSAgICAgICAgICAgICAgICBsZXQgaW1hZ2VFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiaW1nIik7Ci0gICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50LnNyYyA9ICJodHRwczovLzEy
Ny4wLjAuMTo4NDQzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9yZWRpcmVjdFRv
Q29udmVyc2lvbi5waHA/Y29udmVyc2lvbkRhdGE9MTIiOwotICAgICAgICAgICAgICAgIGltYWdl
RWxlbWVudC5pZCA9ICJwaXhlbCI7Ci0gICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50Lm9uZXJy
b3IgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKLSAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9k
eS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0TGluayIpKTsKLSAg
ICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgicGl4ZWwiKSk7Ci0gICAgICAgICAgICAgICAgICAgIHRlYXJEb3duQW5kRmlu
aXNoKCk7Ci0gICAgICAgICAgICAgICAgfTsKLSAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5
LmFwcGVuZENoaWxkKGltYWdlRWxlbWVudCk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgICAgIGFjdGl2YXRlRWxlbWVudCgidGFyZ2V0TGluayIpOwotICAgICAgICAgICAgfQot
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91
dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIE5vIHRlc3RSdW5uZXIuIjsKLSAgICAgICAgfQotICAg
IH0KLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvY29udmVyc2lvbkZp
bGVQYXRoLnBocCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvcmVzb3VyY2VzL2NvbnZlcnNpb25GaWxlUGF0aC5waHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDdjZTk0NzI2NjUxNTdmZWViMzdjZjllNWVkNTFkYzNjYjVkNjdhYmQuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvY29udmVyc2lvbkZpbGVQ
YXRoLnBocAorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotPD9waHAKLXJlcXVpcmVfb25j
ZSAnLi4vLi4vcmVzb3VyY2VzL3BvcnRhYmlsaXR5TGF5ZXIucGhwJzsKLQotaWYgKGlzc2V0KCRf
R0VUWyJub25jZSJdKSkKLSAgICAkY29udmVyc2lvbkZpbGVOYW1lID0gIi9wcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudENvbnZlcnNpb24iIC4gJF9HRVRbIm5vbmNlIl0gLiAiLnR4dCI7Ci1lbHNlCi0g
ICAgJGNvbnZlcnNpb25GaWxlTmFtZSA9ICIvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJz
aW9uLnR4dCI7Ci0kY29udmVyc2lvbkZpbGVQYXRoID0gc3lzX2dldF90ZW1wX2RpcigpIC4gJGNv
bnZlcnNpb25GaWxlTmFtZTsKLT8+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9jb252ZXJzaW9uUmVwb3J0LnBocCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2Vz
L2NvbnZlcnNpb25SZXBvcnQucGhwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNWMy
MDI2OWM3ODQ5MDZmZmY3NDc0NDhiMzg4MWY0MDYzN2FiYzAxLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL2NvbnZlcnNpb25SZXBvcnQucGhwCisrKyAvZGV2
L251bGwKQEAgLTEsMzcgKzAsMCBAQAotPD9waHAKLXJlcXVpcmVfb25jZSAnY29udmVyc2lvbkZp
bGVQYXRoLnBocCc7Ci0KLSRjb252ZXJzaW9uRmlsZSA9IGZvcGVuKCRjb252ZXJzaW9uRmlsZVBh
dGggLiAiLnRtcCIsICd3Jyk7Ci0kaHR0cEhlYWRlcnMgPSAkX1NFUlZFUjsKLSRjb29raWVzRm91
bmQgPSBmYWxzZTsKLWZvcmVhY2ggKCRodHRwSGVhZGVycyBhcyAkbmFtZSA9PiAkdmFsdWUpIHsK
LSAgICBpZiAoJG5hbWUgPT09ICJIVFRQX0hPU1QiKSB7Ci0gICAgICAgIGZ3cml0ZSgkY29udmVy
c2lvbkZpbGUsICIkbmFtZTogJHZhbHVlXG4iKTsKLSAgICB9IGVsc2UgaWYgKCRuYW1lID09PSAi
UkVRVUVTVF9VUkkiKSB7Ci0gICAgICAgICRwb3NpdGlvbk9mTm9uY2UgPSBzdHJwb3MoJHZhbHVl
LCAiP25vbmNlPSIpOwotICAgICAgICBpZiAoJHBvc2l0aW9uT2ZOb25jZSA9PT0gZmFsc2UpCi0g
ICAgICAgICAgICAkb3V0cHV0VVJMID0gJHZhbHVlOwotICAgICAgICBlbHNlCi0gICAgICAgICAg
ICAkb3V0cHV0VVJMID0gc3Vic3RyKCR2YWx1ZSwgMCwgJHBvc2l0aW9uT2ZOb25jZSk7Ci0gICAg
ICAgIGZ3cml0ZSgkY29udmVyc2lvbkZpbGUsICIkbmFtZTogJG91dHB1dFVSTFxuIik7Ci0gICAg
fSBlbHNlIGlmICgkbmFtZSA9PT0gIkhUVFBfQ09PS0lFIikgewotICAgICAgICBmd3JpdGUoJGNv
bnZlcnNpb25GaWxlLCAiQ29va2llcyBpbiBjb252ZXJzaW9uIHJlcXVlc3Q6ICR2YWx1ZVxuIik7
Ci0gICAgICAgICRjb29raWVzRm91bmQgPSB0cnVlOwotICAgIH0gZWxzZSBpZiAoJG5hbWUgPT09
ICJDT05URU5UX1RZUEUiKSB7Ci0gICAgICAgIGZ3cml0ZSgkY29udmVyc2lvbkZpbGUsICJDb250
ZW50IHR5cGU6ICR2YWx1ZVxuIik7Ci0gICAgfQotfQotaWYgKCEkY29va2llc0ZvdW5kKSB7Ci0g
ICAgZndyaXRlKCRjb252ZXJzaW9uRmlsZSwgIk5vIGNvb2tpZXMgaW4gY29udmVyc2lvbiByZXF1
ZXN0LlxuIik7Ci19Ci0KLSRyZXF1ZXN0Qm9keSA9IGZpbGVfZ2V0X2NvbnRlbnRzKCdwaHA6Ly9p
bnB1dCcpOwotZndyaXRlKCRjb252ZXJzaW9uRmlsZSwgIlJlcXVlc3QgYm9keTpcbiRyZXF1ZXN0
Qm9keVxuIik7Ci0KLWZjbG9zZSgkY29udmVyc2lvbkZpbGUpOwotcmVuYW1lKCRjb252ZXJzaW9u
RmlsZVBhdGggLiAiLnRtcCIsICRjb252ZXJzaW9uRmlsZVBhdGgpOwotCi1oZWFkZXIoIkhUVFAv
MS4xIDIwMCBPSyIpOwotc2V0Y29va2llKCJjb29raWVTZXRJbkNvbnZlcnNpb25SZXBvcnQiLCAi
MSIsIDAsICIvIik7Ci0KLT8+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3By
aXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9jb252ZXJ0QW5kUG9zdE1lc3NhZ2VCYWNr
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jl
c291cmNlcy9jb252ZXJ0QW5kUG9zdE1lc3NhZ2VCYWNrLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDZlODE5M2ZhMTA2OTQ0NTkwZGY2ODJiYTY0YjMzYWY1ODk3NTBiOTguLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvY29udmVydEFuZFBv
c3RNZXNzYWdlQmFjay5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjcgKzAsMCBAQAotPCFET0NU
WVBFIGh0bWw+Ci08aHRtbCBsYW5nPSJlbiI+Ci08aGVhZD4KLSAgICA8bWV0YSBjaGFyc2V0PSJV
VEYtOCI+Ci0gICAgPHNjcmlwdD4KLSAgICAgICAgZnVuY3Rpb24gZmlyZUNvbnZlcnNpb25QaXhl
bCgpIHsKLSAgICAgICAgICAgIGxldCBpbWFnZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJpbWciKTsKLSAgICAgICAgICAgIGltYWdlRWxlbWVudC5zcmMgPSAiaHR0cHM6Ly8xMjcu
MC4wLjE6ODQ0My9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvcmVkaXJlY3RUb0Nv
bnZlcnNpb24ucGhwP2NvbnZlcnNpb25EYXRhPTEyJnByaW9yaXR5PTAzIjsKLSAgICAgICAgICAg
IGltYWdlRWxlbWVudC5pZCA9ICJwaXhlbCI7Ci0gICAgICAgICAgICBpbWFnZUVsZW1lbnQub25l
cnJvciA9IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3Zl
Q2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBpeGVsIikpOwotICAgICAgICAgICAgICAg
IHBvc3RNZXNzYWdlQmFjaygpOwotICAgICAgICAgICAgfTsKLSAgICAgICAgICAgIGRvY3VtZW50
LmJvZHkuYXBwZW5kQ2hpbGQoaW1hZ2VFbGVtZW50KTsKLSAgICAgICAgfQotCi0gICAgICAgIGZ1
bmN0aW9uIHBvc3RNZXNzYWdlQmFjaygpIHsKLSAgICAgICAgICAgIGlmICh3aW5kb3cub3BlbmVy
KSB7Ci0gICAgICAgICAgICAgICAgd2luZG93Lm9wZW5lci5wb3N0TWVzc2FnZSgiRG9uZSIsICJo
dHRwOi8vMTI3LjAuMC4xOjgwMDAiKTsKLSAgICAgICAgICAgICAgICB3aW5kb3cuY2xvc2UoKTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIDwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkg
b25sb2FkPSJzZXRUaW1lb3V0KGZpcmVDb252ZXJzaW9uUGl4ZWwsIDApIj4KLTwvYm9keT4KLTwv
aHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9nZXRDb252ZXJz
aW9uRGF0YS5waHAgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L3Jlc291cmNlcy9nZXRDb252ZXJzaW9uRGF0YS5waHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDU1ZTIyMDcxNWFmZDY3ZTBiOGVhODk1Njc5MmY0OTBhNGJlMDNhY2EuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvZ2V0Q29udmVyc2lvbkRh
dGEucGhwCisrKyAvZGV2L251bGwKQEAgLTEsNTQgKzAsMCBAQAotPD9waHAKLXJlcXVpcmVfb25j
ZSAnY29udmVyc2lvbkZpbGVQYXRoLnBocCc7Ci0KLSRub1RpbWVvdXQgPSBUcnVlOwotJHRpbWVv
dXRNc2VjcyA9IDA7Ci1pZiAoaXNzZXQoJF9HRVRbJ3RpbWVvdXRfbXMnXSkpIHsKLSAgICAkbm9U
aW1lb3V0ID0gRmFsc2U7Ci0gICAgJHRpbWVvdXRNc2VjcyA9IChpbnQpICRfR0VUWyd0aW1lb3V0
X21zJ107Ci19Ci0KLSRjb252ZXJzaW9uRmlsZUZvdW5kID0gRmFsc2U7Ci13aGlsZSAoJG5vVGlt
ZW91dCB8fCAkdGltZW91dE1zZWNzID4gMCkgewotICAgIGlmIChmaWxlX2V4aXN0cygkY29udmVy
c2lvbkZpbGVQYXRoKSkgewotICAgICAgICAkY29udmVyc2lvbkZpbGVGb3VuZCA9IFRydWU7Ci0g
ICAgICAgIGJyZWFrOwotICAgIH0KLSAgICAkc2xlZXBNc2VjcyA9IDEwOwotICAgIHVzbGVlcCgk
c2xlZXBNc2VjcyAqIDEwMDApOwotICAgIGlmICghJG5vVGltZW91dCkgewotICAgICAgICAkdGlt
ZW91dE1zZWNzIC09ICRzbGVlcE1zZWNzOwotICAgIH0KLSAgICAvLyBmaWxlX2V4aXN0cygpIGNh
Y2hlcyByZXN1bHRzLCB3ZSB3YW50IHRvIGludmFsaWRhdGUgdGhlIGNhY2hlLgotICAgIGNsZWFy
c3RhdGNhY2hlKCk7Ci19Ci0KLQotZWNobyAiPGh0bWw+PGJvZHk+XG4iOwotCi1pZiAoJGNvbnZl
cnNpb25GaWxlRm91bmQpIHsKLSAgICBlY2hvICJDb252ZXJzaW9uIHJlY2VpdmVkLiI7Ci0gICAg
JGNvbnZlcnNpb25GaWxlID0gZm9wZW4oJGNvbnZlcnNpb25GaWxlUGF0aCwgJ3InKTsKLSAgICB3
aGlsZSAoJGxpbmUgPSBmZ2V0cygkY29udmVyc2lvbkZpbGUpKSB7Ci0gICAgICAgIGVjaG8gIjxi
cj4iOwotICAgICAgICBlY2hvIHRyaW0oJGxpbmUpOwotICAgIH0KLSAgICBlY2hvICI8YnI+IjsK
LSAgICBmY2xvc2UoJGNvbnZlcnNpb25GaWxlKTsKLSAgICB1bmxpbmsoJGNvbnZlcnNpb25GaWxl
UGF0aCk7Ci19IGVsc2UgewotICAgIGVjaG8gIkNvbnZlcnNpb24gbm90IHJlY2VpdmVkIC0gdGlt
ZWQgb3V0Ljxicj4iOwotfQotCi1pZiAoaXNzZXQoJF9HRVRbJ2VuZFRlc3QnXSkpIHsKLSAgICBl
Y2hvICI8c2NyaXB0PiI7Ci0gICAgZWNobyAiaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7IjsKLSAg
ICBlY2hvICIgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7IjsKLSAgICBlY2hvICIgICAgdGVz
dFJ1bm5lci5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5n
KGZhbHNlKTsiOwotICAgIGVjaG8gIiAgICB0ZXN0UnVubmVyLnNldFByaXZhdGVDbGlja01lYXN1
cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcoJycpOyI7Ci0gICAgZWNobyAifSI7Ci0gICAg
ZWNobyAiPC9zY3JpcHQ+IjsKLX0KLQotZWNobyAiPC9ib2R5PjwvaHRtbD4iOwotPz4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVz
b3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uLnBocCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uLnBo
cApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjhhMzY2NzAzZWQ5MzIxYmRlMjUzZDJh
MGY1YWU1Nzk5NmRmMDBmZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jl
c291cmNlcy9yZWRpcmVjdFRvQ29udmVyc2lvbi5waHAKKysrIC9kZXYvbnVsbApAQCAtMSw5ICsw
LDAgQEAKLTw/cGhwCi1oZWFkZXIoIkhUVFAvMS4xIDMwMiBGb3VuZCIpOwotaGVhZGVyKCJDYWNo
ZS1Db250cm9sOiBuby1jYWNoZSwgbm8tc3RvcmUsIG11c3QtcmV2YWxpZGF0ZSIpOwotaWYgKGlz
c2V0KCRfR0VUWyJjb252ZXJzaW9uRGF0YSJdKSAmJiBpc3NldCgkX0dFVFsicHJpb3JpdHkiXSkp
IHsKLSAgaGVhZGVyKCJMb2NhdGlvbjogLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3Vy
ZW1lbnQvIiAuICRfR0VUWyJjb252ZXJzaW9uRGF0YSJdIC4gIi8iIC4gJF9HRVRbInByaW9yaXR5
Il0pOwotfSBlbHNlIGlmIChpc3NldCgkX0dFVFsiY29udmVyc2lvbkRhdGEiXSkpIHsKLSAgaGVh
ZGVyKCJMb2NhdGlvbjogLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvIiAu
ICRfR0VUWyJjb252ZXJzaW9uRGF0YSJdKTsKLX0KLT8+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9yZWRpcmVjdFRv
Q29udmVyc2lvbk9uSVBBZGRyZXNzLnBocCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uT25JUEFkZHJl
c3MucGhwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ODRhZWE4ZDQyNzk0OGMxOWFm
ZGFmNjFkMmViY2UxYmUzYjZiZjdmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uT25JUEFkZHJlc3MucGhwCisrKyAvZGV2
L251bGwKQEAgLTEsOCArMCwwIEBACi08P3BocAotaGVhZGVyKCJIVFRQLzEuMCAzMDIgRm91bmQi
KTsKLWlmIChpc3NldCgkX0dFVFsiY29udmVyc2lvbkRhdGEiXSkgJiYgaXNzZXQoJF9HRVRbInBy
aW9yaXR5Il0pKSB7Ci0gIGhlYWRlcigiTG9jYXRpb246IGh0dHBzOi8vMTI3LjAuMC4xOjgwMDAv
LndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC8iIC4gJF9HRVRbImNvbnZlcnNp
b25EYXRhIl0gLiAiLyIgLiAkX0dFVFsicHJpb3JpdHkiXSk7Ci19IGVsc2UgaWYgKGlzc2V0KCRf
R0VUWyJjb252ZXJzaW9uRGF0YSJdKSkgewotICBoZWFkZXIoIkxvY2F0aW9uOiBodHRwczovLzEy
Ny4wLjAuMTo4MDAwLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvIiAuICRf
R0VUWyJjb252ZXJzaW9uRGF0YSJdKTsKLX0KLT8+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy91dGlsLmpzIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvdXRp
bC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTdiMzM2YTk5OTdmN2VhOWYyZGJh
ZWU4Y2NhNjYxYzk0YWRkMjE3Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50
L3Jlc291cmNlcy91dGlsLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotZnVuY3Rp
b24gcHJlcGFyZVRlc3QoKSB7Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAg
IHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAgICAgICB0ZXN0UnVubmVyLmR1bXBDaGls
ZEZyYW1lc0FzVGV4dCgpOwotICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICAg
ICAgdGVzdFJ1bm5lci5zZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZSh0cnVlKTsKLSAgICB9Ci19
Ci0KLWZ1bmN0aW9uIHRlYXJEb3duQW5kRmluaXNoKCkgewotICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikgewotICAgICAgICB0ZXN0UnVubmVyLnNldEFsbG93c0FueVNTTENlcnRpZmljYXRlKGZh
bHNlKTsKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJy
aWRlVGltZXJGb3JUZXN0aW5nKGZhbHNlKTsKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb25VUkxGb3JUZXN0aW5nKCIiKTsKLSAgICAgICAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtYXR0cmlidXRpb24tY29u
dmVydGVkLXdpdGgtaGlnaGVyLXByaW9yaXR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWF0dHJpYnV0aW9uLWNvbnZl
cnRlZC13aXRoLWhpZ2hlci1wcmlvcml0eS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGU5MGQyNmY2YWZkYmQzZWNkYzIxM2JmZTIzYTM2M2RkMTc0N2JjYTMuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtYXR0cmlidXRpb24tY29u
dmVydGVkLXdpdGgtaGlnaGVyLXByaW9yaXR5LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDEyICswLDAgQEAKLVRlc3RzIHRoYXQgYSBzZWNvbmQgYXR0cmlidXRpb24gY29udmVyc2lv
biB3aXRoIGhpZ2hlciBwcmlvcml0eSByZXBsYWNlcyBhbiBvbGRlciB3aXRoIGxvd2VyIHByaW9y
aXR5LgotCi0KLUNvbnZlcnRlZCBQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50czoKLVdlYkNvcmU6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50IDEKLVNvdXJjZTogMTI3LjAuMC4xCi1EZXN0aW5hdGlv
bjogbG9jYWxob3N0Ci1DYW1wYWlnbiBJRDogNAotQ29udmVyc2lvbiBkYXRhOiAxMgotQ29udmVy
c2lvbiBwcmlvcml0eTogNAotQ29udmVyc2lvbiBlYXJsaWVzdCB0aW1lIHRvIHNlbmQ6IFdpdGhp
biAyNC00OCBob3VycwotQ29udmVyc2lvbiByZXF1ZXN0IHNlbnQ6IGZhbHNlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29uZC1h
dHRyaWJ1dGlvbi1jb252ZXJ0ZWQtd2l0aC1oaWdoZXItcHJpb3JpdHkuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWF0dHJpYnV0aW9u
LWNvbnZlcnRlZC13aXRoLWhpZ2hlci1wcmlvcml0eS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBiMTY5YWJhMDI1ODZmY2Y1N2VhOGQ5MDY5Mjg0NGYwOWJkZjA1NTYzLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWF0dHJpYnV0aW9uLWNvbnZl
cnRlZC13aXRoLWhpZ2hlci1wcmlvcml0eS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsOTIgKzAs
MCBAQAotPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGli
bGVWaWV3cG9ydD10cnVlIF0gLS0+Ci08aHRtbCBsYW5nPSJlbiI+Ci08aGVhZD4KLSAgICA8bWV0
YSBjaGFyc2V0PSJVVEYtOCI+Ci0gICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9Indp
ZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCB1c2VyLXNjYWxhYmxlPW5vIj4KLSAg
ICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+
Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4K
LTxib2R5IG9ubG9hZD0ic2V0VGltZW91dChydW5UZXN0LCAwKSI+Ci08ZGl2IGlkPSJkZXNjcmlw
dGlvbiI+VGVzdHMgdGhhdCBhIHNlY29uZCBhdHRyaWJ1dGlvbiBjb252ZXJzaW9uIHdpdGggaGln
aGVyIHByaW9yaXR5IHJlcGxhY2VzIGFuIG9sZGVyIHdpdGggbG93ZXIgcHJpb3JpdHkuPC9kaXY+
Ci08YSBpZD0idGFyZ2V0TGluayI+TGluazwvYT48YnI+Ci08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2
PgotPHNjcmlwdD4KLSAgICBjb25zdCBwYXRoID0gIi9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9z
ZWNvbmQtYXR0cmlidXRpb24tY29udmVydGVkLXdpdGgtaGlnaGVyLXByaW9yaXR5Lmh0bWwiOwot
ICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBbCi0gICAgICAgIHsKLSAgICAgICAgICAgIGhyZWY6
ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiICsgcGF0aCArICI/c3RlcFR3byIsCi0gICAgICAgICAg
ICBhZGNhbXBhaWduaWQ6ICIzIiwKLSAgICAgICAgICAgIGFkZGVzdGluYXRpb246ICJodHRwOi8v
bG9jYWxob3N0OjgwMDAiCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgIGhyZWY6
ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiICsgcGF0aCArICI/c3RlcEZvdXIiLAotICAgICAgICAg
ICAgYWRjYW1wYWlnbmlkOiAiNCIsCi0gICAgICAgICAgICBhZGRlc3RpbmF0aW9uOiAiaHR0cDov
L2xvY2FsaG9zdDo4MDAwIgotICAgICAgICB9Ci0gICAgXTsKLQotICAgIHByZXBhcmVUZXN0KCk7
Ci0KLSAgICBmdW5jdGlvbiBjb25maWd1cmVMaW5rKGluZGV4KSB7Ci0gICAgICAgIGxldCBsaW5r
RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXRMaW5rIik7Ci0gICAgICAg
IGxpbmtFbGVtZW50LnNldEF0dHJpYnV0ZSgiaHJlZiIsIGNvbmZpZ3VyYXRpb25baW5kZXhdLmhy
ZWYpOwotICAgICAgICBsaW5rRWxlbWVudC5zZXRBdHRyaWJ1dGUoImFkY2FtcGFpZ25pZCIsIGNv
bmZpZ3VyYXRpb25baW5kZXhdLmFkY2FtcGFpZ25pZCk7Ci0gICAgICAgIGxpbmtFbGVtZW50LnNl
dEF0dHJpYnV0ZSgiYWRkZXN0aW5hdGlvbiIsIGNvbmZpZ3VyYXRpb25baW5kZXhdLmFkZGVzdGlu
YXRpb24pOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVudChlbGVtZW50SUQp
IHsKLSAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50
SUQpOwotICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1lbnQu
b2Zmc2V0V2lkdGggLyAyOwotICAgICAgICB2YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0VG9w
ICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOwotICAgICAgICBVSUhlbHBlci5hY3RpdmF0ZUF0
KGNlbnRlclgsIGNlbnRlclkpLnRoZW4oCi0gICAgICAgICAgICBmdW5jdGlvbiAoKSB7Ci0gICAg
ICAgICAgICB9LAotICAgICAgICAgICAgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBQcm9taXNl
IHJlamVjdGVkLiI7Ci0gICAgICAgICAgICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBydW5UZXN0KCkgewot
ICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgICAgIGlmICh3aW5kb3cu
bG9jYXRpb24uc2VhcmNoID09PSAiIikgewotICAgICAgICAgICAgICAgIC8vIEZpcnN0IGFkIGNs
aWNrIDEyNy4wLjAuMSDigJM+IGxvY2FsaG9zdC4KLSAgICAgICAgICAgICAgICBjb25maWd1cmVM
aW5rKDApOwotICAgICAgICAgICAgICAgIGFjdGl2YXRlRWxlbWVudCgidGFyZ2V0TGluayIpOwot
ICAgICAgICAgICAgfSBlbHNlIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAiP3N0ZXBU
d28iKSB7Ci0gICAgICAgICAgICAgICAgLy8gQ29udmVydCB0aGUgZmlyc3QgYWQgY2xpY2sgd2l0
aCBwcmlvcml0eSAzIGFuZCBuYXZpZ2F0ZSBiYWNrIHRvIDEyNy4wLjAuMS4KLSAgICAgICAgICAg
ICAgICBsZXQgaW1hZ2VFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7Ci0g
ICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50LnNyYyA9ICJodHRwczovLzEyNy4wLjAuMTo4NDQz
L3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9yZWRpcmVjdFRvQ29udmVyc2lvbi5w
aHA/Y29udmVyc2lvbkRhdGE9MTImcHJpb3JpdHk9MDMiOwotICAgICAgICAgICAgICAgIGltYWdl
RWxlbWVudC5pZCA9ICJwaXhlbCI7Ci0gICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50Lm9uZXJy
b3IgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9u
LmhyZWYgPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiArIHBhdGggKyAiP3N0ZXBUaHJlZSI7Ci0g
ICAgICAgICAgICAgICAgfTsKLSAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENo
aWxkKGltYWdlRWxlbWVudCk7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKHdpbmRvdy5sb2NhdGlv
bi5zZWFyY2ggPT09ICI/c3RlcFRocmVlIikgewotICAgICAgICAgICAgICAgIC8vIFNlY29uZCBh
ZCBjbGljayAxMjcuMC4wLjEg4oCTPiBsb2NhbGhvc3QuCi0gICAgICAgICAgICAgICAgY29uZmln
dXJlTGluaygxKTsKLSAgICAgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoInRhcmdldExpbmsi
KTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0gIj9z
dGVwRm91ciIpIHsKLSAgICAgICAgICAgICAgICAvLyBDb252ZXJ0IHRoZSBzZWNvbmQgYWQgY2xp
Y2sgd2l0aCBwcmlvcml0eSA0IGFuZCBmaW5pc2guCi0gICAgICAgICAgICAgICAgbGV0IGltYWdl
RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpOwotICAgICAgICAgICAgICAg
IGltYWdlRWxlbWVudC5zcmMgPSAiaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9wcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC9yZXNvdXJjZXMvcmVkaXJlY3RUb0NvbnZlcnNpb24ucGhwP2NvbnZlcnNpb25E
YXRhPTEyJnByaW9yaXR5PTA0IjsKLSAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQuaWQgPSAi
cGl4ZWwiOwotICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5vbmVycm9yID0gZnVuY3Rpb24o
ZSkgewotICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCgpOwotICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxk
KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXRMaW5rIikpOwotICAgICAgICAgICAgICAg
ICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJw
aXhlbCIpKTsKLSAgICAgICAgICAgICAgICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsKLSAgICAg
ICAgICAgICAgICB9OwotICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
aW1hZ2VFbGVtZW50KTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIFVua25vd24g
d2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PSAiICsgd2luZG93LmxvY2F0aW9uLnNlYXJjaCArICIu
IjsKLSAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOwotICAgICAgICAgICAgfQot
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91
dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIE5vIHRlc3RSdW5uZXIuIjsKLSAgICAgICAgfQotICAg
IH0KLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtYXR0cmlidXRpb24tY29u
dmVydGVkLXdpdGgtbG93ZXItcHJpb3JpdHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtYXR0cmlidXRpb24tY29udmVy
dGVkLXdpdGgtbG93ZXItcHJpb3JpdHktZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBjMzdmMzE4ZmM3NjlhZjFlNmMxOTU3NWQ1MDg0YzAyNTc1MmVjNmRlLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWF0dHJpYnV0aW9uLWNvbnZl
cnRlZC13aXRoLWxvd2VyLXByaW9yaXR5LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDEyICswLDAgQEAKLVRlc3RzIHRoYXQgYSBzZWNvbmQgYXR0cmlidXRpb24gY29udmVyc2lvbiB3
aXRoIGxvd2VyIHByaW9yaXR5IGRvZXMgbm90IHJlcGxhY2UgYW4gb2xkZXIgd2l0aCBoaWdoZXIg
cHJpb3JpdHkuCi0KLQotQ29udmVydGVkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRzOgotV2Vi
Q29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgMQotU291cmNlOiAxMjcuMC4wLjEKLURlc3Rp
bmF0aW9uOiBsb2NhbGhvc3QKLUNhbXBhaWduIElEOiAzCi1Db252ZXJzaW9uIGRhdGE6IDEyCi1D
b252ZXJzaW9uIHByaW9yaXR5OiA0Ci1Db252ZXJzaW9uIGVhcmxpZXN0IHRpbWUgdG8gc2VuZDog
V2l0aGluIDI0LTQ4IGhvdXJzCi1Db252ZXJzaW9uIHJlcXVlc3Qgc2VudDogZmFsc2UKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vj
b25kLWF0dHJpYnV0aW9uLWNvbnZlcnRlZC13aXRoLWxvd2VyLXByaW9yaXR5Lmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29uZC1hdHRyaWJ1
dGlvbi1jb252ZXJ0ZWQtd2l0aC1sb3dlci1wcmlvcml0eS5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA2OTI1ZmFiMjE4NmM0ODc2MTBkMTNjYmYwNjYzZTliODY0NTY5YjU1Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWF0dHJpYnV0aW9uLWNv
bnZlcnRlZC13aXRoLWxvd2VyLXByaW9yaXR5Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw5MiAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4
aWJsZVZpZXdwb3J0PXRydWUgXSAtLT4KLTxodG1sIGxhbmc9ImVuIj4KLTxoZWFkPgotICAgIDxt
ZXRhIGNoYXJzZXQ9IlVURi04Ij4KLSAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0i
d2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHVzZXItc2NhbGFibGU9bm8iPgot
ICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3Njcmlw
dD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgotPC9oZWFk
PgotPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KHJ1blRlc3QsIDApIj4KLTxkaXYgaWQ9ImRlc2Ny
aXB0aW9uIj5UZXN0cyB0aGF0IGEgc2Vjb25kIGF0dHJpYnV0aW9uIGNvbnZlcnNpb24gd2l0aCBs
b3dlciBwcmlvcml0eSBkb2VzIG5vdCByZXBsYWNlIGFuIG9sZGVyIHdpdGggaGlnaGVyIHByaW9y
aXR5LjwvZGl2PgotPGEgaWQ9InRhcmdldExpbmsiPkxpbms8L2E+PGJyPgotPGRpdiBpZD0ib3V0
cHV0Ij48L2Rpdj4KLTxzY3JpcHQ+Ci0gICAgY29uc3QgcGF0aCA9ICIvcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvc2Vjb25kLWF0dHJpYnV0aW9uLWNvbnZlcnRlZC13aXRoLWxvd2VyLXByaW9yaXR5
Lmh0bWwiOwotICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBbCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIGhyZWY6ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiICsgcGF0aCArICI/c3RlcFR3byIsCi0g
ICAgICAgICAgICBhZGNhbXBhaWduaWQ6ICIzIiwKLSAgICAgICAgICAgIGFkZGVzdGluYXRpb246
ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIGhyZWY6ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiICsgcGF0aCArICI/c3RlcEZvdXIiLAot
ICAgICAgICAgICAgYWRjYW1wYWlnbmlkOiAiNCIsCi0gICAgICAgICAgICBhZGRlc3RpbmF0aW9u
OiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIgotICAgICAgICB9Ci0gICAgXTsKLQotICAgIHByZXBh
cmVUZXN0KCk7Ci0KLSAgICBmdW5jdGlvbiBjb25maWd1cmVMaW5rKGluZGV4KSB7Ci0gICAgICAg
IGxldCBsaW5rRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXRMaW5rIik7
Ci0gICAgICAgIGxpbmtFbGVtZW50LnNldEF0dHJpYnV0ZSgiaHJlZiIsIGNvbmZpZ3VyYXRpb25b
aW5kZXhdLmhyZWYpOwotICAgICAgICBsaW5rRWxlbWVudC5zZXRBdHRyaWJ1dGUoImFkY2FtcGFp
Z25pZCIsIGNvbmZpZ3VyYXRpb25baW5kZXhdLmFkY2FtcGFpZ25pZCk7Ci0gICAgICAgIGxpbmtF
bGVtZW50LnNldEF0dHJpYnV0ZSgiYWRkZXN0aW5hdGlvbiIsIGNvbmZpZ3VyYXRpb25baW5kZXhd
LmFkZGVzdGluYXRpb24pOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVudChl
bGVtZW50SUQpIHsKLSAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZChlbGVtZW50SUQpOwotICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVmdCAr
IGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOwotICAgICAgICB2YXIgY2VudGVyWSA9IGVsZW1lbnQu
b2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOwotICAgICAgICBVSUhlbHBlci5h
Y3RpdmF0ZUF0KGNlbnRlclgsIGNlbnRlclkpLnRoZW4oCi0gICAgICAgICAgICBmdW5jdGlvbiAo
KSB7Ci0gICAgICAgICAgICB9LAotICAgICAgICAgICAgZnVuY3Rpb24gKCkgewotICAgICAgICAg
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJ
TCBQcm9taXNlIHJlamVjdGVkLiI7Ci0gICAgICAgICAgICAgICAgdGVhckRvd25BbmRGaW5pc2go
KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBydW5U
ZXN0KCkgewotICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgICAgIGlm
ICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAiIikgewotICAgICAgICAgICAgICAgIC8vIEZp
cnN0IGFkIGNsaWNrIDEyNy4wLjAuMSDigJM+IGxvY2FsaG9zdC4KLSAgICAgICAgICAgICAgICBj
b25maWd1cmVMaW5rKDApOwotICAgICAgICAgICAgICAgIGFjdGl2YXRlRWxlbWVudCgidGFyZ2V0
TGluayIpOwotICAgICAgICAgICAgfSBlbHNlIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09
PSAiP3N0ZXBUd28iKSB7Ci0gICAgICAgICAgICAgICAgLy8gQ29udmVydCB0aGUgZmlyc3QgYWQg
Y2xpY2sgd2l0aCBwcmlvcml0eSA0IGFuZCBuYXZpZ2F0ZSBiYWNrIHRvIDEyNy4wLjAuMS4KLSAg
ICAgICAgICAgICAgICBsZXQgaW1hZ2VFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
aW1nIik7Ci0gICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50LnNyYyA9ICJodHRwczovLzEyNy4w
LjAuMTo4NDQzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9yZWRpcmVjdFRvQ29u
dmVyc2lvbi5waHA/Y29udmVyc2lvbkRhdGE9MTImcHJpb3JpdHk9MDQiOwotICAgICAgICAgICAg
ICAgIGltYWdlRWxlbWVudC5pZCA9ICJwaXhlbCI7Ci0gICAgICAgICAgICAgICAgaW1hZ2VFbGVt
ZW50Lm9uZXJyb3IgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50
LmxvY2F0aW9uLmhyZWYgPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiArIHBhdGggKyAiP3N0ZXBU
aHJlZSI7Ci0gICAgICAgICAgICAgICAgfTsKLSAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5
LmFwcGVuZENoaWxkKGltYWdlRWxlbWVudCk7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKHdpbmRv
dy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/c3RlcFRocmVlIikgewotICAgICAgICAgICAgICAgIC8v
IFNlY29uZCBhZCBjbGljayAxMjcuMC4wLjEg4oCTPiBsb2NhbGhvc3QuCi0gICAgICAgICAgICAg
ICAgY29uZmlndXJlTGluaygxKTsKLSAgICAgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoInRh
cmdldExpbmsiKTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJj
aCA9PT0gIj9zdGVwRm91ciIpIHsKLSAgICAgICAgICAgICAgICAvLyBDb252ZXJ0IHRoZSBzZWNv
bmQgYWQgY2xpY2sgd2l0aCBwcmlvcml0eSAzIGFuZCBmaW5pc2guCi0gICAgICAgICAgICAgICAg
bGV0IGltYWdlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpOwotICAgICAg
ICAgICAgICAgIGltYWdlRWxlbWVudC5zcmMgPSAiaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9wcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvcmVkaXJlY3RUb0NvbnZlcnNpb24ucGhwP2Nv
bnZlcnNpb25EYXRhPTEyJnByaW9yaXR5PTAzIjsKLSAgICAgICAgICAgICAgICBpbWFnZUVsZW1l
bnQuaWQgPSAicGl4ZWwiOwotICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5vbmVycm9yID0g
ZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCgpOwotICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJl
bW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXRMaW5rIikpOwotICAgICAg
ICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJwaXhlbCIpKTsKLSAgICAgICAgICAgICAgICAgICAgdGVhckRvd25BbmRGaW5pc2go
KTsKLSAgICAgICAgICAgICAgICB9OwotICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBw
ZW5kQ2hpbGQoaW1hZ2VFbGVtZW50KTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlM
IFVua25vd24gd2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PSAiICsgd2luZG93LmxvY2F0aW9uLnNl
YXJjaCArICIuIjsKLSAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOwotICAgICAg
ICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIE5vIHRlc3RSdW5uZXIuIjsKLSAgICAg
ICAgfQotICAgIH0KLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtY29udmVy
c2lvbi13aXRoLWhpZ2hlci1wcmlvcml0eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29uZC1jb252ZXJzaW9uLXdpdGgtaGln
aGVyLXByaW9yaXR5LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDBhNGZmZWVkNmRmYTgyZTk4MDNmNmY2ZDEyN2E5NjQ5OGYzYjgwZS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3By
aXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29uZC1jb252ZXJzaW9uLXdpdGgtaGlnaGVyLXByaW9y
aXR5LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLVRlc3RzIHRo
YXQgdGhlIGF0dHJpYnV0aW9uIGlzIHVwZGF0ZWQgaWYgaXQgZ2V0cyBhIHNlY29uZCBjb252ZXJz
aW9uIHdpdGggaGlnaGVyIHByaW9yaXR5LgotCi0KLUNvbnZlcnRlZCBQcml2YXRlIENsaWNrIE1l
YXN1cmVtZW50czoKLVdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50IDEKLVNvdXJjZTog
MTI3LjAuMC4xCi1EZXN0aW5hdGlvbjogbG9jYWxob3N0Ci1DYW1wYWlnbiBJRDogMwotQ29udmVy
c2lvbiBkYXRhOiAxMgotQ29udmVyc2lvbiBwcmlvcml0eTogNAotQ29udmVyc2lvbiBlYXJsaWVz
dCB0aW1lIHRvIHNlbmQ6IFdpdGhpbiAyNC00OCBob3VycwotQ29udmVyc2lvbiByZXF1ZXN0IHNl
bnQ6IGZhbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlj
a01lYXN1cmVtZW50L3NlY29uZC1jb252ZXJzaW9uLXdpdGgtaGlnaGVyLXByaW9yaXR5Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlY29uZC1j
b252ZXJzaW9uLXdpdGgtaGlnaGVyLXByaW9yaXR5Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDRhOGIzOGE5NDA2YmNhOWE3ZWJmMzQxYjI1YjExOTI0NjI4NDMwNDcuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtY29udmVyc2lvbi13aXRoLWhp
Z2hlci1wcmlvcml0eS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsODUgKzAsMCBAQAotPCFET0NU
WVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10
cnVlIF0gLS0+Ci08aHRtbCBsYW5nPSJlbiI+Ci08aGVhZD4KLSAgICA8bWV0YSBjaGFyc2V0PSJV
VEYtOCI+Ci0gICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13
aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCB1c2VyLXNjYWxhYmxlPW5vIj4KLSAgICA8c2NyaXB0IHNy
Yz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlw
dCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9h
ZD0ic2V0VGltZW91dChydW5UZXN0LCAwKSI+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMg
dGhhdCB0aGUgYXR0cmlidXRpb24gaXMgdXBkYXRlZCBpZiBpdCBnZXRzIGEgc2Vjb25kIGNvbnZl
cnNpb24gd2l0aCBoaWdoZXIgcHJpb3JpdHkuPC9kaXY+Ci08YSBpZD0idGFyZ2V0TGluayI+TGlu
azwvYT48YnI+Ci08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPHNjcmlwdD4KLSAgICBjb25zdCBw
YXRoID0gIi9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtY29udmVyc2lvbi13aXRoLWhp
Z2hlci1wcmlvcml0eS5odG1sIjsKLSAgICBjb25zdCBjb25maWd1cmF0aW9uID0gWwotICAgICAg
ICB7Ci0gICAgICAgICAgICBocmVmOiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIiArIHBhdGggKyAi
P3N0ZXBUd28iLAotICAgICAgICAgICAgYWRjYW1wYWlnbmlkOiAiMyIsCi0gICAgICAgICAgICBh
ZGRlc3RpbmF0aW9uOiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIgotICAgICAgICB9Ci0gICAgXTsK
LQotICAgIHByZXBhcmVUZXN0KCk7Ci0KLSAgICBmdW5jdGlvbiBjb25maWd1cmVMaW5rKGluZGV4
KSB7Ci0gICAgICAgIGxldCBsaW5rRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0
YXJnZXRMaW5rIik7Ci0gICAgICAgIGxpbmtFbGVtZW50LnNldEF0dHJpYnV0ZSgiaHJlZiIsIGNv
bmZpZ3VyYXRpb25baW5kZXhdLmhyZWYpOwotICAgICAgICBsaW5rRWxlbWVudC5zZXRBdHRyaWJ1
dGUoImFkY2FtcGFpZ25pZCIsIGNvbmZpZ3VyYXRpb25baW5kZXhdLmFkY2FtcGFpZ25pZCk7Ci0g
ICAgICAgIGxpbmtFbGVtZW50LnNldEF0dHJpYnV0ZSgiYWRkZXN0aW5hdGlvbiIsIGNvbmZpZ3Vy
YXRpb25baW5kZXhdLmFkZGVzdGluYXRpb24pOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGFjdGl2
YXRlRWxlbWVudChlbGVtZW50SUQpIHsKLSAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZChlbGVtZW50SUQpOwotICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQu
b2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOwotICAgICAgICB2YXIgY2VudGVy
WSA9IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOwotICAgICAg
ICBVSUhlbHBlci5hY3RpdmF0ZUF0KGNlbnRlclgsIGNlbnRlclkpLnRoZW4oCi0gICAgICAgICAg
ICBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICB9LAotICAgICAgICAgICAgZnVuY3Rpb24gKCkg
ewotICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5l
clRleHQgPSAiRkFJTCBQcm9taXNlIHJlamVjdGVkLiI7Ci0gICAgICAgICAgICAgICAgdGVhckRv
d25BbmRGaW5pc2goKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgKTsKLSAgICB9Ci0KLSAgICBm
dW5jdGlvbiBjb252ZXJ0KHByaW9yaXR5LCBjYWxsYmFjaykgewotICAgICAgICBsZXQgcGl4ZWxF
bGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBpeGVsIik7Ci0gICAgICAgIGlmIChw
aXhlbEVsZW1lbnQpCi0gICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHBpeGVs
RWxlbWVudCk7Ci0KLSAgICAgICAgbGV0IGltYWdlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImltZyIpOwotICAgICAgICBpbWFnZUVsZW1lbnQuc3JjID0gImh0dHBzOi8vMTI3LjAu
MC4xOjg0NDMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252
ZXJzaW9uLnBocD9jb252ZXJzaW9uRGF0YT0xMiZwcmlvcml0eT0iICsgcHJpb3JpdHk7Ci0gICAg
ICAgIGltYWdlRWxlbWVudC5pZCA9ICJwaXhlbCI7Ci0gICAgICAgIGltYWdlRWxlbWVudC5vbmVy
cm9yID0gY2FsbGJhY2s7Ci0gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW1hZ2VF
bGVtZW50KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBydW5UZXN0KCkgewotICAgICAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgICAgIGlmICh3aW5kb3cubG9jYXRpb24uc2Vh
cmNoID09PSAiIikgewotICAgICAgICAgICAgICAgIC8vIEFkIGNsaWNrIDEyNy4wLjAuMSDigJM+
IGxvY2FsaG9zdC4KLSAgICAgICAgICAgICAgICBjb25maWd1cmVMaW5rKDApOwotICAgICAgICAg
ICAgICAgIGFjdGl2YXRlRWxlbWVudCgidGFyZ2V0TGluayIpOwotICAgICAgICAgICAgfSBlbHNl
IGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAiP3N0ZXBUd28iKSB7Ci0gICAgICAgICAg
ICAgICAgLy8gQ29udmVydCB0aGUgYWQgY2xpY2sgd2l0aCBwcmlvcml0eSAzLgotICAgICAgICAg
ICAgICAgIGNvbnZlcnQoIjAzIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8v
IENvbnZlcnQgdGhlIGFkIGNsaWNrIHdpdGggcHJpb3JpdHkgNC4KLSAgICAgICAgICAgICAgICAg
ICAgY29udmVydCgiMDQiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuZHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50KCk7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJ0YXJnZXRMaW5rIikpOwotICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5y
ZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGl4ZWwiKSk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOwotICAgICAgICAgICAgICAgICAgICB9
KTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlM
IFVua25vd24gd2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PSAiICsgd2luZG93LmxvY2F0aW9uLnNl
YXJjaCArICIuIjsKLSAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOwotICAgICAg
ICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIE5vIHRlc3RSdW5uZXIuIjsKLSAgICAg
ICAgfQotICAgIH0KLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtY29udmVy
c2lvbi13aXRoLWxvd2VyLXByaW9yaXR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWNvbnZlcnNpb24td2l0aC1sb3dl
ci1wcmlvcml0eS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIz
ZjVkY2Q4OTRjMDQ4MzU3YzkxODNmZjYwMDQxNjUzMmRiODJiNGEuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtY29udmVyc2lvbi13aXRoLWxvd2VyLXByaW9yaXR5
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLVRlc3RzIHRoYXQg
dGhlIGF0dHJpYnV0aW9uIGlzIG5vdCB1cGRhdGVkIGlmIGl0IGdldHMgYSBzZWNvbmQgY29udmVy
c2lvbiB3aXRoIGxvd2VyIHByaW9yaXR5LgotCi0KLUNvbnZlcnRlZCBQcml2YXRlIENsaWNrIE1l
YXN1cmVtZW50czoKLVdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50IDEKLVNvdXJjZTog
MTI3LjAuMC4xCi1EZXN0aW5hdGlvbjogbG9jYWxob3N0Ci1DYW1wYWlnbiBJRDogMwotQ29udmVy
c2lvbiBkYXRhOiAxMgotQ29udmVyc2lvbiBwcmlvcml0eTogNAotQ29udmVyc2lvbiBlYXJsaWVz
dCB0aW1lIHRvIHNlbmQ6IFdpdGhpbiAyNC00OCBob3VycwotQ29udmVyc2lvbiByZXF1ZXN0IHNl
bnQ6IGZhbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlj
a01lYXN1cmVtZW50L3NlY29uZC1jb252ZXJzaW9uLXdpdGgtbG93ZXItcHJpb3JpdHkuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWNv
bnZlcnNpb24td2l0aC1sb3dlci1wcmlvcml0eS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBmMzk2MmM4YjQyNGQ0Mjk0YjhiYzE3ZjQ5YWJkY2I5MzIxMTcwOTI2Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vjb25kLWNvbnZlcnNpb24td2l0aC1sb3dl
ci1wcmlvcml0eS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsODUgKzAsMCBAQAotPCFET0NUWVBF
IGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVl
IF0gLS0+Ci08aHRtbCBsYW5nPSJlbiI+Ci08aGVhZD4KLSAgICA8bWV0YSBjaGFyc2V0PSJVVEYt
OCI+Ci0gICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0
aCwgaW5pdGlhbC1zY2FsZT0xLCB1c2VyLXNjYWxhYmxlPW5vIj4KLSAgICA8c2NyaXB0IHNyYz0i
L2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBz
cmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0i
c2V0VGltZW91dChydW5UZXN0LCAwKSI+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdHMgdGhh
dCB0aGUgYXR0cmlidXRpb24gaXMgbm90IHVwZGF0ZWQgaWYgaXQgZ2V0cyBhIHNlY29uZCBjb252
ZXJzaW9uIHdpdGggbG93ZXIgcHJpb3JpdHkuPC9kaXY+Ci08YSBpZD0idGFyZ2V0TGluayI+TGlu
azwvYT48YnI+Ci08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPHNjcmlwdD4KLSAgICBjb25zdCBw
YXRoID0gIi9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZWNvbmQtY29udmVyc2lvbi13aXRoLWxv
d2VyLXByaW9yaXR5Lmh0bWwiOwotICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBbCi0gICAgICAg
IHsKLSAgICAgICAgICAgIGhyZWY6ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiICsgcGF0aCArICI/
c3RlcFR3byIsCi0gICAgICAgICAgICBhZGNhbXBhaWduaWQ6ICIzIiwKLSAgICAgICAgICAgIGFk
ZGVzdGluYXRpb246ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiCi0gICAgICAgIH0KLSAgICBdOwot
Ci0gICAgcHJlcGFyZVRlc3QoKTsKLQotICAgIGZ1bmN0aW9uIGNvbmZpZ3VyZUxpbmsoaW5kZXgp
IHsKLSAgICAgICAgbGV0IGxpbmtFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRh
cmdldExpbmsiKTsKLSAgICAgICAgbGlua0VsZW1lbnQuc2V0QXR0cmlidXRlKCJocmVmIiwgY29u
ZmlndXJhdGlvbltpbmRleF0uaHJlZik7Ci0gICAgICAgIGxpbmtFbGVtZW50LnNldEF0dHJpYnV0
ZSgiYWRjYW1wYWlnbmlkIiwgY29uZmlndXJhdGlvbltpbmRleF0uYWRjYW1wYWlnbmlkKTsKLSAg
ICAgICAgbGlua0VsZW1lbnQuc2V0QXR0cmlidXRlKCJhZGRlc3RpbmF0aW9uIiwgY29uZmlndXJh
dGlvbltpbmRleF0uYWRkZXN0aW5hdGlvbik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gYWN0aXZh
dGVFbGVtZW50KGVsZW1lbnRJRCkgewotICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKGVsZW1lbnRJRCk7Ci0gICAgICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5v
ZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7Ci0gICAgICAgIHZhciBjZW50ZXJZ
ID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7Ci0gICAgICAg
IFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKLSAgICAgICAgICAg
IGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICBmdW5jdGlvbiAoKSB7
Ci0gICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVy
VGV4dCA9ICJGQUlMIFByb21pc2UgcmVqZWN0ZWQuIjsKLSAgICAgICAgICAgICAgICB0ZWFyRG93
bkFuZEZpbmlzaCgpOwotICAgICAgICAgICAgfQotICAgICAgICApOwotICAgIH0KLQotICAgIGZ1
bmN0aW9uIGNvbnZlcnQocHJpb3JpdHksIGNhbGxiYWNrKSB7Ci0gICAgICAgIGxldCBwaXhlbEVs
ZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGl4ZWwiKTsKLSAgICAgICAgaWYgKHBp
eGVsRWxlbWVudCkKLSAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQocGl4ZWxF
bGVtZW50KTsKLQotICAgICAgICBsZXQgaW1hZ2VFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiaW1nIik7Ci0gICAgICAgIGltYWdlRWxlbWVudC5zcmMgPSAiaHR0cHM6Ly8xMjcuMC4w
LjE6ODQ0My9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvcmVkaXJlY3RUb0NvbnZl
cnNpb24ucGhwP2NvbnZlcnNpb25EYXRhPTEyJnByaW9yaXR5PSIgKyBwcmlvcml0eTsKLSAgICAg
ICAgaW1hZ2VFbGVtZW50LmlkID0gInBpeGVsIjsKLSAgICAgICAgaW1hZ2VFbGVtZW50Lm9uZXJy
b3IgPSBjYWxsYmFjazsKLSAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbWFnZUVs
ZW1lbnQpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFy
Y2ggPT09ICIiKSB7Ci0gICAgICAgICAgICAgICAgLy8gQWQgY2xpY2sgMTI3LjAuMC4xIOKAkz4g
bG9jYWxob3N0LgotICAgICAgICAgICAgICAgIGNvbmZpZ3VyZUxpbmsoMCk7Ci0gICAgICAgICAg
ICAgICAgYWN0aXZhdGVFbGVtZW50KCJ0YXJnZXRMaW5rIik7Ci0gICAgICAgICAgICB9IGVsc2Ug
aWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/c3RlcFR3byIpIHsKLSAgICAgICAgICAg
ICAgICAvLyBDb252ZXJ0IHRoZSBhZCBjbGljayB3aXRoIHByaW9yaXR5IDQuCi0gICAgICAgICAg
ICAgICAgY29udmVydCgiMDQiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICAgICAgLy8g
Q29udmVydCB0aGUgYWQgY2xpY2sgd2l0aCBwcmlvcml0eSAzLgotICAgICAgICAgICAgICAgICAg
ICBjb252ZXJ0KCIwMyIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5kdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InRhcmdldExpbmsiKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJl
bW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwaXhlbCIpKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIHRlYXJEb3duQW5kRmluaXNoKCk7Ci0gICAgICAgICAgICAgICAgICAgIH0p
OwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwg
VW5rbm93biB3aW5kb3cubG9jYXRpb24uc2VhcmNoID09ICIgKyB3aW5kb3cubG9jYXRpb24uc2Vh
cmNoICsgIi4iOwotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotICAg
ICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIE5vIHRlc3RSdW5uZXIuIjsKLSAg
ICAgICAgfQotICAgIH0KLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZW5kLWF0dHJp
YnV0aW9uLWNvbnZlcnNpb24tcmVxdWVzdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlbmQtYXR0cmlidXRpb24tY29udmVyc2lv
bi1yZXF1ZXN0LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWNl
MjA3Njg1MmZmZDhmYTczZGVjOGFmN2I4YTFkMjBiMTE3M2ExYi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZh
dGVDbGlja01lYXN1cmVtZW50L3NlbmQtYXR0cmlidXRpb24tY29udmVyc2lvbi1yZXF1ZXN0LWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDI3ICswLDAgQEAKLVRlc3RzIHNlbmRpbmcg
b2YgcHJpdmF0ZSBjbGljayBtZWFzdXJlbWVudCByZXF1ZXN0cyBhZnRlciBhIGNvbnZlcnNpb24u
IEFsc28gdGVzdHMgdGhhdCBjb29raWVzIGFyZSBub3Qgc2VudCBpbiB0aG9zZSByZXF1ZXN0cyBh
bmQgY29va2llcyBhcmUgbm90IGFjY2VwdGVkIGluIHRoZSByZXNwb25zZXMuCi0KLQotCi0tLS0t
LS0tLQotRnJhbWU6ICc8IS0tZnJhbWUxLS0+JwotLS0tLS0tLS0KLUNvb2tpZXMgYXJlOiBjb29r
aWVTZXRBc0ZpcnN0UGFydHkgPSAxCi0KLS0tLS0tLS0tCi1GcmFtZTogJzwhLS1mcmFtZTItLT4n
Ci0tLS0tLS0tLQotQ29udmVyc2lvbiByZWNlaXZlZC4KLUhUVFBfSE9TVDogMTI3LjAuMC4xOjgw
MDAKLUNvbnRlbnQgdHlwZTogYXBwbGljYXRpb24vanNvbgotUkVRVUVTVF9VUkk6IC9wcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvY29udmVyc2lvblJlcG9ydC5waHAKLU5vIGNvb2tp
ZXMgaW4gY29udmVyc2lvbiByZXF1ZXN0LgotUmVxdWVzdCBib2R5OgoteyJjb250ZW50LXR5cGUi
OiJjbGljayIsImNvbnRlbnQtc2l0ZSI6IjEyNy4wLjAuMSIsImNvbnRlbnQtaWQiOjMsImNvbnZl
cnNpb24tc2l0ZSI6ImxvY2FsaG9zdCIsImNvbnZlcnNpb24tZGF0YSI6MTIsInJlcG9ydC12ZXJz
aW9uIjoxfQotCi0KLS0tLS0tLS0tCi1GcmFtZTogJzwhLS1mcmFtZTMtLT4nCi0tLS0tLS0tLQot
Q29va2llcyBhcmU6IGNvb2tpZVNldEFzRmlyc3RQYXJ0eSA9IDEKLQotTm8gc3RvcmVkIFByaXZh
dGUgQ2xpY2sgTWVhc3VyZW1lbnQgZGF0YS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2VuZC1hdHRyaWJ1dGlvbi1jb252ZXJzaW9u
LXJlcXVlc3QuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvc2VuZC1hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXJlcXVlc3QuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMmQ2NWQwN2M3ZTBkOTNiODM4MGJlZWFjNGU3MzcyOTdjMDIy
NjBkNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3NlbmQtYXR0cmlidXRp
b24tY29udmVyc2lvbi1yZXF1ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw4MCArMCwwIEBA
Ci08IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZp
ZXdwb3J0PXRydWUgXSAtLT4KLTxodG1sIGxhbmc9ImVuIj4KLTxoZWFkPgotICAgIDxtZXRhIGNo
YXJzZXQ9IlVURi04Ij4KLSAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9
ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHVzZXItc2NhbGFibGU9bm8iPgotICAgIDxz
Y3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KLSAg
ICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJv
ZHkgb25sb2FkPSJzZXRUaW1lb3V0KHJ1blRlc3QsIDApIj4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9u
Ij5UZXN0cyBzZW5kaW5nIG9mIHByaXZhdGUgY2xpY2sgbWVhc3VyZW1lbnQgcmVxdWVzdHMgYWZ0
ZXIgYSBjb252ZXJzaW9uLiBBbHNvIHRlc3RzIHRoYXQgY29va2llcyBhcmUgbm90IHNlbnQgaW4g
dGhvc2UgcmVxdWVzdHMgYW5kIGNvb2tpZXMgYXJlIG5vdCBhY2NlcHRlZCBpbiB0aGUgcmVzcG9u
c2VzLjwvZGl2PgotPGEgaWQ9InRhcmdldExpbmsiIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAw
MC9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zZW5kLWF0dHJpYnV0aW9uLWNvbnZlcnNpb24tcmVx
dWVzdC5odG1sP3N0ZXBUd28iIGFkY2FtcGFpZ25pZD0iMyIgYWRkZXN0aW5hdGlvbj0iaHR0cDov
L2xvY2FsaG9zdDo4MDAwIj5MaW5rPC9hPjxicj4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08
c2NyaXB0PgotICAgIGNvbnN0IGN1cnJlbnRUaW1lTWlsbGlzID0gKG5ldyBEYXRlKCkpLmdldFRp
bWUoKTsKLSAgICBjb25zdCBoaWdoRW50cm9weUJpdHMgPSBjdXJyZW50VGltZU1pbGxpcyAtIChN
YXRoLmZsb29yKGN1cnJlbnRUaW1lTWlsbGlzIC8gMTAwMDAwMCkgKiAxMDAwMDAwKTsKLSAgICBj
b25zdCBub25jZSA9IGhpZ2hFbnRyb3B5Qml0cyArICIiICsgTWF0aC5mbG9vcihNYXRoLnJhbmRv
bSgpICogMTAwKTsKLQotICAgIHByZXBhcmVUZXN0KCk7Ci0KLSAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92
ZXJyaWRlVGltZXJGb3JUZXN0aW5nKHRydWUpOwotICAgICAgICB0ZXN0UnVubmVyLnNldFByaXZh
dGVDbGlja01lYXN1cmVtZW50Q29udmVyc2lvblVSTEZvclRlc3RpbmcoImh0dHA6Ly8xMjcuMC4w
LjE6ODAwMC9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvY29udmVyc2lvblJlcG9y
dC5waHA/bm9uY2U9IiArIG5vbmNlKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBhY3RpdmF0ZUVs
ZW1lbnQoZWxlbWVudElEKSB7Ci0gICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoZWxlbWVudElEKTsKLSAgICAgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNl
dExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKLSAgICAgICAgdmFyIGNlbnRlclkgPSBl
bGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKLSAgICAgICAgVUlI
ZWxwZXIuYWN0aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZKS50aGVuKAotICAgICAgICAgICAgZnVu
Y3Rpb24gKCkgewotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKLSAg
ICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0
ID0gIkZBSUwgUHJvbWlzZSByZWplY3RlZC4iOwotICAgICAgICAgICAgICAgIHRlYXJEb3duQW5k
RmluaXNoKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICk7Ci0gICAgfQotCi0gICAgZnVuY3Rp
b24gYXBwZW5kSWZyYW1lKHVybCwgb25sb2FkQ2FsbGJhY2spIHsKLSAgICAgICAgbGV0IGlmcmFt
ZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKLSAgICAgICAgaWZy
YW1lRWxlbWVudC5zcmMgPSB1cmw7Ci0gICAgICAgIGlmIChvbmxvYWRDYWxsYmFjaykKLSAgICAg
ICAgICAgIGlmcmFtZUVsZW1lbnQub25sb2FkID0gb25sb2FkQ2FsbGJhY2s7Ci0gICAgICAgIGRv
Y3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lRWxlbWVudCk7Ci0gICAgfQotCi0gICAgZnVu
Y3Rpb24gYXBwZW5kQ29udmVyc2lvbkRhdGFJZnJhbWVBbmRGaW5pc2goKSB7Ci0gICAgICAgIHRl
c3RSdW5uZXIuZHVtcFByaXZhdGVDbGlja01lYXN1cmVtZW50KCk7Ci0gICAgICAgIGRvY3VtZW50
LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKSk7
Ci0gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInBpeGVsIikpOwotCi0gICAgICAgIGFwcGVuZElmcmFtZSgiaHR0cDovLzEyNy4wLjAuMTo4
MDAwL2Nvb2tpZXMvcmVzb3VyY2VzL2VjaG8tY29va2llcy5waHAiKTsKLSAgICAgICAgYXBwZW5k
SWZyYW1lKCJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVz
b3VyY2VzL2dldENvbnZlcnNpb25EYXRhLnBocD90aW1lb3V0X21zPTIwMDAmbm9uY2U9IiArIG5v
bmNlLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGFwcGVuZElmcmFtZSgiaHR0cDovLzEyNy4w
LjAuMTo4MDAwL2Nvb2tpZXMvcmVzb3VyY2VzL2VjaG8tY29va2llcy5waHAiLCBmdW5jdGlvbigp
IHsKLSAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOwotICAgICAgICAgICAgfSk7
Ci0gICAgICAgIH0pOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICAgICAgaWYgKHdpbmRvdy5sb2NhdGlv
bi5zZWFyY2ggPT09ICI/c3RlcFR3byIpIHsKLSAgICAgICAgICAgICAgICBsZXQgaW1hZ2VFbGVt
ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7Ci0gICAgICAgICAgICAgICAgaW1h
Z2VFbGVtZW50LnNyYyA9ICJodHRwczovLzEyNy4wLjAuMTo4NDQzL3ByaXZhdGVDbGlja01lYXN1
cmVtZW50L3Jlc291cmNlcy9yZWRpcmVjdFRvQ29udmVyc2lvbi5waHA/Y29udmVyc2lvbkRhdGE9
MTImbm9uY2U9IiArIG5vbmNlOwotICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5pZCA9ICJw
aXhlbCI7Ci0gICAgICAgICAgICAgICAgaW1hZ2VFbGVtZW50Lm9uZXJyb3IgPSBmdW5jdGlvbigp
IHsKLSAgICAgICAgICAgICAgICAgICAgYXBwZW5kQ29udmVyc2lvbkRhdGFJZnJhbWVBbmRGaW5p
c2goKTsKLSAgICAgICAgICAgICAgICB9OwotICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHku
YXBwZW5kQ2hpbGQoaW1hZ2VFbGVtZW50KTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICAgICAgZG9jdW1lbnQuY29va2llID0gImNvb2tpZVNldEFzRmlyc3RQYXJ0eT0xOyBwYXRo
PS8iOwotICAgICAgICAgICAgICAgIGFjdGl2YXRlRWxlbWVudCgidGFyZ2V0TGluayIpOwotICAg
ICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIE5vIHRlc3RSdW5uZXIuIjsKLSAg
ICAgICAgfQotICAgIH0KLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zdG9yZS1kaXNh
YmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3N0b3JlLWRpc2FibGVkLWluLWVwaGVtZXJh
bC1zZXNzaW9uLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTJh
OWJlODgwMzNiMTQ1ZDFhOTU1NGEzZWFhNWRmY2FiMzQ4NzUxYi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZh
dGVDbGlja01lYXN1cmVtZW50L3N0b3JlLWRpc2FibGVkLWluLWVwaGVtZXJhbC1zZXNzaW9uLWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotVGVzdHMgdGhhdCBzdG9y
YWdlIG9mIHByaXZhdGUgY2xpY2sgbWVhc3VyZW1lbnQgaXMgZGlzYWJsZWQgaW4gZXBoZW1lcmFs
IHNlc3Npb25zLgotCi0KLQotTm8gc3RvcmVkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnQgZGF0
YS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvc3RvcmUtZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24uaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc3RvcmUtZGlzYWJsZWQtaW4t
ZXBoZW1lcmFsLXNlc3Npb24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDNl
ODJkNWM5OGYzMDJiNDEzY2ExODE4NzI0NWVmMGYwYjY0NWNmYS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZh
dGVDbGlja01lYXN1cmVtZW50L3N0b3JlLWRpc2FibGVkLWluLWVwaGVtZXJhbC1zZXNzaW9uLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0NiArMCwwIEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5l
ciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSB1c2VFcGhlbWVyYWxTZXNzaW9uPXRydWUgXSAt
LT4KLTwhRE9DVFlQRSBodG1sPgotPGh0bWwgbGFuZz0iZW4iPgotPGhlYWQ+Ci0gICAgPG1ldGEg
Y2hhcnNldD0iVVRGLTgiPgotICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0
aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSwgdXNlci1zY2FsYWJsZT1ubyI+Ci0gICAg
PHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0Pgot
ICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08
Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQocnVuVGVzdCwgMCkiPgotPGRpdiBpZD0iZGVzY3JpcHRp
b24iPlRlc3RzIHRoYXQgc3RvcmFnZSBvZiBwcml2YXRlIGNsaWNrIG1lYXN1cmVtZW50IGlzIGRp
c2FibGVkIGluIGVwaGVtZXJhbCBzZXNzaW9ucy48L2Rpdj4KLTxhIGlkPSJ0YXJnZXRMaW5rIiBo
cmVmPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc3RvcmUt
ZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24uaHRtbD9zdGVwVHdvIiBhZGNhbXBhaWduaWQ9
IjMiIGFkZGVzdGluYXRpb249Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI+TGluazwvYT48YnI+Ci08
ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPHNjcmlwdD4KLSAgICBwcmVwYXJlVGVzdCgpOwotCi0g
ICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJRCkgewotICAgICAgICB2YXIgZWxl
bWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJRCk7Ci0gICAgICAgIHZhciBj
ZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7Ci0g
ICAgICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhl
aWdodCAvIDI7Ci0gICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSku
dGhlbigKLSAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIH0sCi0gICAgICAg
ICAgICBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIFByb21pc2UgcmVqZWN0ZWQuIjsKLSAgICAg
ICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOwotICAgICAgICAgICAgfQotICAgICAgICAp
OwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgewotICAgICAgICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09
ICI/c3RlcFR3byIpIHsKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCgpOwotICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hp
bGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKSk7Ci0gICAgICAgICAgICAg
ICAgdGVhckRvd25BbmRGaW5pc2goKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICAgICAgYWN0aXZhdGVFbGVtZW50KCJ0YXJnZXRMaW5rIik7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0
IikuaW5uZXJUZXh0ID0gIkZBSUwgTm8gdGVzdFJ1bm5lci4iOwotICAgICAgICB9Ci0gICAgfQot
PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3N0b3JlLXByaXZhdGUtY2xpY2stbWVhc3Vy
ZW1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC9zdG9yZS1wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50LWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzM4YjEwZWU1ZGU4MDY3NTFmYjdjMDRmMzVk
YmFlZDAzYTk3MzExNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3N0b3Jl
LXByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsOSArMCwwIEBACi1UZXN0cyBzdG9yYWdlIG9mIHByaXZhdGUgY2xpY2sgbWVhc3VyZW1lbnQu
Ci0KLQotVW5jb252ZXJ0ZWQgUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudHM6Ci1XZWJDb3JlOjpQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudCAxCi1Tb3VyY2U6IDEyNy4wLjAuMQotRGVzdGluYXRpb246
IGxvY2FsaG9zdAotQ2FtcGFpZ24gSUQ6IDMKLU5vIGNvbnZlcnNpb24gZGF0YS4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc3RvcmUt
cHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9w
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9zdG9yZS1wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50Lmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBlYWU2ZTkzYTg3MWRhY2UzNTlkMGVm
OTM1MGNlODhkYzFiNjBmZjUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9z
dG9yZS1wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0
NSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VG
bGV4aWJsZVZpZXdwb3J0PXRydWUgXSAtLT4KLTxodG1sIGxhbmc9ImVuIj4KLTxoZWFkPgotICAg
IDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KLSAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVu
dD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHVzZXItc2NhbGFibGU9bm8i
PgotICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3Nj
cmlwdD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgotPC9o
ZWFkPgotPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KHJ1blRlc3QsIDApIj4KLTxkaXYgaWQ9ImRl
c2NyaXB0aW9uIj5UZXN0cyBzdG9yYWdlIG9mIHByaXZhdGUgY2xpY2sgbWVhc3VyZW1lbnQuPC9k
aXY+Ci08YSBpZD0idGFyZ2V0TGluayIgaHJlZj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3ByaXZh
dGVDbGlja01lYXN1cmVtZW50L3N0b3JlLXByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQuaHRtbD9z
dGVwVHdvIiBhZGNhbXBhaWduaWQ9IjMiIGFkZGVzdGluYXRpb249Imh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMCI+TGluazwvYT48YnI+Ci08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPHNjcmlwdD4KLSAg
ICBwcmVwYXJlVGVzdCgpOwotCi0gICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJ
RCkgewotICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1l
bnRJRCk7Ci0gICAgICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVu
dC5vZmZzZXRXaWR0aCAvIDI7Ci0gICAgICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRU
b3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7Ci0gICAgICAgIFVJSGVscGVyLmFjdGl2YXRl
QXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKLSAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKLSAg
ICAgICAgICAgIH0sCi0gICAgICAgICAgICBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIFByb21p
c2UgcmVqZWN0ZWQuIjsKLSAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOwotICAg
ICAgICAgICAgfQotICAgICAgICApOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7
Ci0gICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICAgICAgaWYgKHdpbmRv
dy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/c3RlcFR3byIpIHsKLSAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLmR1bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpOwotICAgICAgICAgICAgICAgIGRv
Y3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldExp
bmsiKSk7Ci0gICAgICAgICAgICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsKLSAgICAgICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJ0YXJnZXRMaW5rIik7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgib3V0cHV0IikuaW5uZXJUZXh0ID0gIkZBSUwgTm8gdGVzdFJ1bm5lci4i
OwotICAgICAgICB9Ci0gICAgfQotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcGFnZS9vdmVycmlkZVNldHRpbmctQWRDbGlja0F0
dHJpYnV0aW9uRGVidWdNb2RlRW5hYmxlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvcGFnZS9vdmVycmlkZVNldHRpbmctQWRDbGlja0F0dHJpYnV0aW9uRGVidWdNb2RlRW5h
YmxlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWYxNTQ0OTBlNTBjOTNlOWM4YTQ1N2JiMDUz
NmVhZGM0ZjNlODVkNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9w
YWdlL292ZXJyaWRlU2V0dGluZy1BZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGVFbmFibGVkLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK0NPTlNPTEUgTUVTU0FHRTogW0FkIENsaWNrIEF0
dHJpYnV0aW9uXSBUdXJuZWQgRGVidWcgTW9kZSBvbi4KK1Rlc3RzIGZvciB0aGUgUGFnZS5vdmVy
cmlkZVNldHRpbmcgY29tbWFuZC4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IFBhZ2Uub3Zl
cnJpZGVTZXR0aW5nCistLSBSdW5uaW5nIHRlc3QgY2FzZTogUGFnZS5vdmVycmlkZVNldHRpbmcu
QWRDbGlja0F0dHJpYnV0aW9uRGVidWdNb2RlRW5hYmxlZAorRW5hYmxpbmcgYWQgY2xpY2sgYXR0
cmlidXRpb24gZGVidWcgbW9kZS4uLgorUEFTUzogU2hvdWxkIGJyb2FkY2FzdCBhdCBsZWFzdCBv
bmUgY29uc29sZSBtZXNzYWdlLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
cGFnZS9vdmVycmlkZVNldHRpbmctQWRDbGlja0F0dHJpYnV0aW9uRGVidWdNb2RlRW5hYmxlZC5o
dG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3BhZ2Uvb3ZlcnJpZGVTZXR0aW5nLUFkQ2xpY2tB
dHRyaWJ1dGlvbkRlYnVnTW9kZUVuYWJsZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYWRmMTFkN2MxYzE1
ZjQ4YWE0MzA1ZTEwNDRmNzc1NjQ5NmVlZDgyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3BhZ2Uvb3ZlcnJpZGVTZXR0aW5nLUFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVn
TW9kZUVuYWJsZWQuaHRtbApAQCAtMCwwICsxLDM4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3Vy
Y2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0
KCkKK3sKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIlBh
Z2Uub3ZlcnJpZGVTZXR0aW5nIik7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAg
IG5hbWU6ICJQYWdlLm92ZXJyaWRlU2V0dGluZy5BZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGVF
bmFibGVkIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJUZXN0IHRoYXQgY2hhbmdpbmcgd2hldGhl
ciBhZCBjbGljayBhdHRyaWJ1dGlvbiBkZWJ1ZyBtb2RlIGlzIGVuYWJsZWQgaGFzIGFuIGVmZmVj
dC4iLAorICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgbGV0IGxp
c3RlbmVyID0gV0kuY29uc29sZU1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5Db25zb2xlTWFu
YWdlci5FdmVudC5NZXNzYWdlQWRkZWQsIChldmVudCkgPT4geworICAgICAgICAgICAgICAgIGxl
dCB7bWVzc2FnZX0gPSBldmVudC5kYXRhOworICAgICAgICAgICAgICAgIGlmIChtZXNzYWdlLnNv
dXJjZSAhPT0gV0kuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVNvdXJjZS5BZENsaWNrQXR0cmlidXRp
b24pCisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QucGFzcygiU2hvdWxkIGJyb2FkY2FzdCBhdCBsZWFzdCBvbmUgY29uc29sZSBtZXNz
YWdlLiIpOworCisgICAgICAgICAgICAgICAgV0kuY29uc29sZU1hbmFnZXIucmVtb3ZlRXZlbnRM
aXN0ZW5lcihXSS5Db25zb2xlTWFuYWdlci5FdmVudC5NZXNzYWdlQWRkZWQsIGxpc3RlbmVyKTsK
KyAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICB9KTsKKworICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5sb2coIkVuYWJsaW5nIGFkIGNsaWNrIGF0dHJpYnV0aW9uIGRlYnVn
IG1vZGUuLi4iKTsKKyAgICAgICAgICAgIFBhZ2VBZ2VudC5vdmVycmlkZVNldHRpbmcoSW5zcGVj
dG9yQmFja2VuZC5FbnVtLlBhZ2UuU2V0dGluZy5BZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGVF
bmFibGVkLCB0cnVlKS5jYXRjaChyZWplY3QpOworICAgICAgICB9LAorICAgIH0pOworCisgICAg
c3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9CisKKzwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorICAgIDxwPlRlc3RzIGZvciB0aGUgUGFnZS5vdmVy
cmlkZVNldHRpbmcgY29tbWFuZC48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvcGFnZS9vdmVycmlkZVNldHRpbmctUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnREZWJ1Z01vZGVFbmFibGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9wYWdlL292ZXJyaWRlU2V0dGluZy1Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9k
ZUVuYWJsZWQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NWQ4
ZTU1Mjc0Yjg4OTAyMDYyYTZkYzJjZTAyMGFhZGM1OWUyYWMyLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wYWdlL292
ZXJyaWRlU2V0dGluZy1Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZUVuYWJsZWQtZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6
IFtQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBUdXJuZWQgRGVidWcgTW9kZSBvbi4KLVRlc3Rz
IGZvciB0aGUgUGFnZS5vdmVycmlkZVNldHRpbmcgY29tbWFuZC4KLQotCi09PSBSdW5uaW5nIHRl
c3Qgc3VpdGU6IFBhZ2Uub3ZlcnJpZGVTZXR0aW5nCi0tLSBSdW5uaW5nIHRlc3QgY2FzZTogUGFn
ZS5vdmVycmlkZVNldHRpbmcuUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGVFbmFibGVk
Ci1FbmFibGluZyBwcml2YXRlIGNsaWNrIG1lYXN1cmVtZW50IGRlYnVnIG1vZGUuLi4KLVBBU1M6
IFNob3VsZCBicm9hZGNhc3QgYXQgbGVhc3Qgb25lIGNvbnNvbGUgbWVzc2FnZS4KLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3BhZ2Uvb3ZlcnJpZGVTZXR0aW5nLVByaXZhdGVD
bGlja01lYXN1cmVtZW50RGVidWdNb2RlRW5hYmxlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3BhZ2Uvb3ZlcnJpZGVTZXR0aW5nLVByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2Rl
RW5hYmxlZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxN2IyNWNjODMwMTg1
YWYzMTU0NDAyZjk1MDZmMmY1ZGNlYTE5M2IxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wYWdlL292ZXJyaWRlU2V0
dGluZy1Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZUVuYWJsZWQuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDM4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVj
dG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0aW9uIHRlc3QoKQotewotICAg
IGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiUGFnZS5vdmVycmlk
ZVNldHRpbmciKTsKLQotICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKLSAgICAgICAgbmFtZTogIlBh
Z2Uub3ZlcnJpZGVTZXR0aW5nLlByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlRW5hYmxl
ZCIsCi0gICAgICAgIGRlc2NyaXB0aW9uOiAiVGVzdCB0aGF0IGNoYW5naW5nIHdoZXRoZXIgcHJp
dmF0ZSBjbGljayBtZWFzdXJlbWVudCBkZWJ1ZyBtb2RlIGlzIGVuYWJsZWQgaGFzIGFuIGVmZmVj
dC4iLAotICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAgbGV0IGxp
c3RlbmVyID0gV0kuY29uc29sZU1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5Db25zb2xlTWFu
YWdlci5FdmVudC5NZXNzYWdlQWRkZWQsIChldmVudCkgPT4gewotICAgICAgICAgICAgICAgIGxl
dCB7bWVzc2FnZX0gPSBldmVudC5kYXRhOwotICAgICAgICAgICAgICAgIGlmIChtZXNzYWdlLnNv
dXJjZSAhPT0gV0kuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVNvdXJjZS5Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5wYXNzKCJTaG91bGQgYnJvYWRjYXN0IGF0IGxlYXN0IG9uZSBjb25zb2xl
IG1lc3NhZ2UuIik7Ci0KLSAgICAgICAgICAgICAgICBXSS5jb25zb2xlTWFuYWdlci5yZW1vdmVF
dmVudExpc3RlbmVyKFdJLkNvbnNvbGVNYW5hZ2VyLkV2ZW50Lk1lc3NhZ2VBZGRlZCwgbGlzdGVu
ZXIpOwotICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKLSAgICAgICAgICAgIH0pOwotCi0gICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRW5hYmxpbmcgcHJpdmF0ZSBjbGljayBtZWFzdXJl
bWVudCBkZWJ1ZyBtb2RlLi4uIik7Ci0gICAgICAgICAgICBQYWdlQWdlbnQub3ZlcnJpZGVTZXR0
aW5nKEluc3BlY3RvckJhY2tlbmQuRW51bS5QYWdlLlNldHRpbmcuUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnREZWJ1Z01vZGVFbmFibGVkLCB0cnVlKS5jYXRjaChyZWplY3QpOwotICAgICAgICB9LAot
ICAgIH0pOwotCi0gICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Ci19Ci0KLTwvc2Ny
aXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotICAgIDxwPlRlc3RzIGZv
ciB0aGUgUGFnZS5vdmVycmlkZVNldHRpbmcgY29tbWFuZC48L3A+Ci08L2JvZHk+Ci08L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlv
bnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXgg
ZjNjZDYzZmZmMDQ4MzkzODFjZTkwOGY1ZmYxM2FjMzQwYzY3NTJlYy4uNmFjM2U3MGJiYzViMThm
NTQxOWU3MDgyOTU3YTg5NjJmNGYxMWZhNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy13azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTA4MCw2ICsxMDgwLDkgQEAgd2Via2l0Lm9yZy9i
LzY4Mjc4IGh0dHAvdGVzdHMvaGlzdG9yeS9iYWNrLXdpdGgtZnJhZ21lbnQtY2hhbmdlLnBocCBb
IFBhc3MgRmFpbHUKICMgPHJkYXI6Ly9wcm9ibGVtLzM3MzMwMzc3PiBBU2FuIHRlc3RzIGV4aXRp
bmcgZWFybHkgZHVlIHRvIHRpbWVvdXRzCiBbIFJlbGVhc2UgXSBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9kZXJpdmVfYml0c19rZXlzIFsgU2tpcCBdCiAKKyMg
PHJkYXI6Ly9wcm9ibGVtLzYwMDYzMDAyPiBSRUdSRVNTSU9OOiAocjI1Nzc1OCkgaHR0cC90ZXN0
cy9hZENsaWNrQXR0cmlidXRpb24vY29udmVyc2lvbi1kaXNhYmxlZC1pbi1lcGhlbWVyYWwtc2Vz
c2lvbi5odG1sIGlzIGNyYXNoaW5nCitodHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9jb252
ZXJzaW9uLWRpc2FibGVkLWluLWVwaGVtZXJhbC1zZXNzaW9uLmh0bWwgWyBQYXNzIENyYXNoIF0K
KwogIyA8cmRhcjovL3Byb2JsZW0vNjAxMDU5Mjc+IFsgTWFjIHdrMiBSZWxlYXNlIF0gd2ViZ3B1
L3dobHNsL21ha2UtYXJyYXktcmVmZXJlbmNlLmh0bWwgaXMgZmxha3kgZmFpbGluZwogWyBSZWxl
YXNlIF0gd2ViZ3B1L3dobHNsL21ha2UtYXJyYXktcmVmZXJlbmNlLmh0bWwgWyBQYXNzIEZhaWx1
cmUgXQogCkBAIC0xMTI4LDggKzExMzEsOCBAQCB3ZWJydGMvc2ltdWxjYXN0LWgyNjQuaHRtbCBb
IFBhc3MgVGltZW91dCBdCiAjIDxyZGFyOi8vcHJvYmxlbS82MzI3NTIxMz4gUkVHUkVTU0lPTjog
aHR0cC90ZXN0cy9JbmRleGVkREIvc3RvcmFnZS1saW1pdC0xLmh0dHBzLmh0bWwgaXMgYSBmbGFr
eSBmYWlsdXJlCiBbIEJpZ1N1cisgUmVsZWFzZSBdIGh0dHAvdGVzdHMvSW5kZXhlZERCL3N0b3Jh
Z2UtbGltaXQtMS5odHRwcy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIAotIyA8cmRhcjovL3Byb2Js
ZW0vNjMzNTc0ODE+IGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2VuZC1hdHRy
aWJ1dGlvbi1jb252ZXJzaW9uLXJlcXVlc3QuaHRtbCBpcyBhIHN1cGVyIGZsYWt5IGZhaWx1cmUK
LVsgQmlnU3VyKyBEZWJ1ZyBdIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvc2Vu
ZC1hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXJlcXVlc3QuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCisj
IDxyZGFyOi8vcHJvYmxlbS82MzM1NzQ4MT4gaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24v
c2VuZC1hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXJlcXVlc3QuaHRtbCBpcyBhIHN1cGVyIGZsYWt5
IGZhaWx1cmUKK1sgQmlnU3VyKyBEZWJ1ZyBdIGh0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9u
L3NlbmQtYXR0cmlidXRpb24tY29udmVyc2lvbi1yZXF1ZXN0Lmh0bWwgWyBQYXNzIEZhaWx1cmUg
XQogCiAjIDxyZGFyOi8vcHJvYmxlbS82MzU1NDI0OT4gWzIwQTI3OV0gRFEgYm90cyBhcmUgc2Vl
aW5nIGh0dHAvdGVzdHMvY2FjaGUvZGlzay1jYWNoZS9kaXNrLWNhY2hlLXZhbGlkYXRpb24tYmFj
ay1uYXZpZ2F0aW9uLXBvbGljeS5odG1sIGFuZCBodHRwL3Rlc3RzL2NhY2hlL2Rpc2stY2FjaGUv
ZGlzay1jYWNoZS12YWxpZGF0aW9uLW5vLWJvZHkuaHRtbCBhcmUgdGltaW5nIG91dAogd2Via2l0
Lm9yZy9iLzE3OTc5NiBodHRwL3Rlc3RzL2NhY2hlL2Rpc2stY2FjaGUvZGlzay1jYWNoZS12YWxp
ZGF0aW9uLWJhY2stbmF2aWdhdGlvbi1wb2xpY3kuaHRtbCBbIFBhc3MgRmFpbHVyZSBUaW1lb3V0
IF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25z
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMTQ5YWY3
OGUxNWUwYTEyMGY3NzI3NGUyNTFkOWIzOTg0Y2Y4NzU3NS4uOGQ3ZDQ5MGViMzI4NGMzMDlkY2Nk
MmEwZTE4NmQ5ODA0MzYyN2U5NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2sy
L1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBl
Y3RhdGlvbnMKQEAgLTc0Niw3ICs3NDYsNyBAQCBzdG9yYWdlL2luZGV4ZWRkYi9JREJPYmplY3Qt
bGVhay5odG1sIFsgUGFzcyBdCiAKIGZhc3QvZm9ybXMvY2FsbC10ZXh0LWRpZC1jaGFuZ2UtaW4t
dGV4dC1maWVsZC13aGVuLXR5cGluZy5odG1sIFsgUGFzcyBdCiAKLWh0dHAvdGVzdHMvcHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQgWyBQYXNzIF0KK2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9u
IFsgUGFzcyBdCiAKICMgVXNlciBpbnRlcmFjdGlvbiBpcyBhIFdlYktpdDIgY29uY2VwdC4KIGlu
c3BlY3Rvci9kZWJ1Z2dlci9ldmFsdWF0ZU9uQ2FsbEZyYW1lLWVtdWxhdGVVc2VyR2VzdHVyZS11
c2VySXNJbnRlcmFjdGluZy5odG1sIFsgUGFzcyBdCkBAIC03NTYsOCArNzU2LDggQEAgaW5zcGVj
dG9yL3J1bnRpbWUvY2FsbEZ1bmN0aW9uT24tZW11bGF0ZVVzZXJHZXN0dXJlLXVzZXJJc0ludGVy
YWN0aW5nLmh0bWwgWyBQYXMKICMgVGFyZ2V0IGRvbWFpbiBpcyBvbmx5IHByZXNlbnQgaW4gV2Vi
S2l0Mi4KIGh0dHAvdGVzdHMvaW5zcGVjdG9yL3RhcmdldCBbIFBhc3MgXQogCi0jIElUUCBhbmQg
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgYXJlIFdLMiBvbmx5LgotaW5zcGVjdG9yL3BhZ2Uvb3Zl
cnJpZGVTZXR0aW5nLVByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlRW5hYmxlZC5odG1s
IFsgUGFzcyBdCisjIElUUCBhbmQgQWRDbGlja0F0dHJpYnV0aW9uIGFyZSBXSzIgb25seS4KK2lu
c3BlY3Rvci9wYWdlL292ZXJyaWRlU2V0dGluZy1BZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGVF
bmFibGVkLmh0bWwgWyBQYXNzIF0KIGluc3BlY3Rvci9wYWdlL292ZXJyaWRlU2V0dGluZy1JVFBE
ZWJ1Z01vZGVFbmFibGVkLmh0bWwgWyBQYXNzIF0KIAogIyBIaWdobGlnaHRpbmcgbWFya2VkIHRl
eHQgcmFuZ2VzIGZyb20gbGF5b3V0IHRlc3RzIGlzIG9ubHkgc3VwcG9ydGVkIGluIFdlYktpdDIu
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL3dwZS9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDVjMDAwOTgx
ZWUzYTQyMDJmYzQzOWFlZmFmMWMwZWFkYTBhNjRjYTMuLjYzOWVkMjEyM2MwYzlmZjVjZTAwMmIw
ZjNhMDBlNmRiMTIzNGRiNTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dwZS9U
ZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dwZS9UZXN0RXhwZWN0
YXRpb25zCkBAIC0yNDgsNyArMjQ4LDcgQEAgd2Via2l0Lm9yZy9iLzIxNTUwMiBmYXN0L2ZsZXhi
b3gvaW1hZ2UtcGVyY2VudC1tYXgtaGVpZ2h0Lmh0bWwgWyBGYWlsdXJlIFBhc3MgSW0KIHdlYmtp
dC5vcmcvYi8yMTg2ODkgaW1wb3J0ZWQvYmxpbmsvZmFzdC9mb3Jtcy90ZXh0YXJlYS1wbGFjZWhv
bGRlci12aXNpYmlsaXR5LTMuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogCiAjIExpbmsgdGFy
Z2V0Ci13ZWJraXQub3JnL2IvMjE4NTUzIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvYXR0cmlidXRpb24tY29udmVyc2lvbi10aHJvdWdoLWltYWdlLXJlZGlyZWN0LWluLW5ldy13
aW5kb3cuaHRtbCBbIFRpbWVvdXQgXQord2Via2l0Lm9yZy9iLzIxODU1MyBodHRwL3Rlc3RzL2Fk
Q2xpY2tBdHRyaWJ1dGlvbi9hdHRyaWJ1dGlvbi1jb252ZXJzaW9uLXRocm91Z2gtaW1hZ2UtcmVk
aXJlY3QtaW4tbmV3LXdpbmRvdy5odG1sIFsgVGltZW91dCBdCiB3ZWJraXQub3JnL2IvMjEyMDgz
IGxvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5hbC11cmxzL3VzZXIt
Z2VzdHVyZS10YXJnZXQtYmxhbmstd2l0aC1mbGFnLWZyb20tc3ViZnJhbWUuaHRtbAogd2Via2l0
Lm9yZy9iLzIxMjA4MyBsb2FkZXIvbmF2aWdhdGlvbi1wb2xpY3kvc2hvdWxkLW9wZW4tZXh0ZXJu
YWwtdXJscy91c2VyLWdlc3R1cmUtdGFyZ2V0LWJsYW5rLXdpdGgtZmxhZy5odG1sCiB3ZWJraXQu
b3JnL2IvMjEyMDgzIGxvYWRlci9uYXZpZ2F0aW9uLXBvbGljeS9zaG91bGQtb3Blbi1leHRlcm5h
bC11cmxzL3VzZXItZ2VzdHVyZS10YXJnZXQtYmxhbmstd2l0aG91dC1mbGFnLWZyb20tc3ViZnJh
bWUuaHRtbAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>