<?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>184903</bug_id>
          
          <creation_ts>2018-04-23 17:33:15 -0700</creation_ts>
          <short_desc>REGRESSION(r230921): Builds still broken (Requested by ryanhaddad on #webkit).</short_desc>
          <delta_ts>2018-04-23 17:45:38 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>159464</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>dbates</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1417031</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-04-23 17:33:15 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/230921 broke the build:
Builds still broken (Requested by ryanhaddad on #webkit).

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>1417033</commentid>
    <comment_count>1</comment_count>
      <attachid>338622</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-04-23 17:33:40 -0700</bug_when>
    <thetext>Created attachment 338622
ROLLOUT of r230921

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 rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout 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>1417036</commentid>
    <comment_count>2</comment_count>
      <attachid>338622</attachid>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2018-04-23 17:37:47 -0700</bug_when>
    <thetext>Comment on attachment 338622
ROLLOUT of r230921

Clearing flags on attachment: 338622

Committed r230935: &lt;https://trac.webkit.org/changeset/230935&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1417037</commentid>
    <comment_count>3</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2018-04-23 17:37:48 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1417040</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-04-23 17:45:38 -0700</bug_when>
    <thetext>&lt;rdar://problem/39668152&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>338622</attachid>
            <date>2018-04-23 17:33:40 -0700</date>
            <delta_ts>2018-04-23 17:37:47 -0700</delta_ts>
            <desc>ROLLOUT of r230921</desc>
            <filename>bug-184903-20180423203340.patch</filename>
            <type>text/plain</type>
            <size>237507</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwOTM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzRkZjI1MjUyYmI3NTMx
M2ZjMjU4ZjBhZTI3NjBmMTM0MDVlZjZkYy4uODNlNDliOTBkZTIyYTgzZDEzMjQ1MzlkMjE5NWYy
YzZkYzA5NDBkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE4LTA0LTIzICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByMjMwOTIxLCByMjMwOTIzLCByMjMwOTI0LCByMjMwOTMyLAorICAgICAg
ICBhbmQgcjIzMDkzNC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE4NDkwMworCisgICAgICAgIEJ1aWxkcyBzdGlsbCBicm9rZW4gKFJlcXVlc3RlZCBi
eSByeWFuaGFkZGFkIG9uICN3ZWJraXQpLgorCisgICAgICAgIFJldmVydGVkIGNoYW5nZXNldHM6
CisKKyAgICAgICAgIkltcGxlbWVudCBTYW1lLVNpdGUgY29va2llcyIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTQ2NAorICAgICAgICBodHRwczov
L3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjMwOTIxCisKKyAgICAgICAgIkF0dGVtcHQgdG8g
Zml4IHRoZSBidWlsZCBhZnRlciByMjMwOTIxIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5NDY0CisgICAgICAgIGh0dHBzOi8vdHJhYy53ZWJraXQu
b3JnL2NoYW5nZXNldC8yMzA5MjMKKworICAgICAgICAiQXR0ZW1wdCB0byBmaXggdGhlIE1hYyBh
bmQgaU9TIGJ1aWxkIGFmdGVyIHIyMzA5MjEiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNTk0NjQKKyAgICAgICAgaHR0cHM6Ly90cmFjLndlYmtpdC5v
cmcvY2hhbmdlc2V0LzIzMDkyNAorCisgICAgICAgICJBbm90aGVyIGF0dGVtcHQgdG8gZml4IHRo
ZSBXaW5kb3dzIGJ1aWxkIGZvbGxvd2luZyByMjMwOTIxIgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5NDY0CisgICAgICAgIGh0dHBzOi8vdHJhYy53
ZWJraXQub3JnL2NoYW5nZXNldC8yMzA5MzIKKworICAgICAgICAiQXR0ZW1wdCB0byBmaXggdGhl
IEFwcGxlIEludGVybmFsIGJ1aWxkIGZvbGxvd2luZyByMjMwOTIxIgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5NDY0CisgICAgICAgIGh0dHBzOi8v
dHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yMzA5MzQKKwogMjAxOC0wNC0yMyAgQW50dGkgS29p
dmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjIyMDExMik6
IHJlQ0FQVENIQSBpbWFnZXMgcmVuZGVyIG9mZiBzY3JlZW4gb24gVHdpdGNoLnR2IGFwcCBMb2cg
SW4gb3IgU2lnbiBVcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggOWVkODhiZjk3YWJjMzY1NzJkMTBj
YmMzNWYyNzY1ODA2MGY5ZWMxYy4uYTUzYzQ2NjY5OGI2YzY4NjhhM2ViYjY2NjczZGQ1MDBhYWEz
NzRmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTgtMDQtMjMgIENv
bW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgorCisgICAgICAgIFVucmV2aWV3
ZWQsIHJvbGxpbmcgb3V0IHIyMzA5MjEsIHIyMzA5MjMsIHIyMzA5MjQsIHIyMzA5MzIsCisgICAg
ICAgIGFuZCByMjMwOTM0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTg0OTAzCisKKyAgICAgICAgQnVpbGRzIHN0aWxsIGJyb2tlbiAoUmVxdWVzdGVk
IGJ5IHJ5YW5oYWRkYWQgb24gI3dlYmtpdCkuCisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hhbmdlc2V0
czoKKworICAgICAgICAiSW1wbGVtZW50IFNhbWUtU2l0ZSBjb29raWVzIgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5NDY0CisgICAgICAgIGh0dHBz
Oi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yMzA5MjEKKworICAgICAgICAiQXR0ZW1wdCB0
byBmaXggdGhlIGJ1aWxkIGFmdGVyIHIyMzA5MjEiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTk0NjQKKyAgICAgICAgaHR0cHM6Ly90cmFjLndlYmtp
dC5vcmcvY2hhbmdlc2V0LzIzMDkyMworCisgICAgICAgICJBdHRlbXB0IHRvIGZpeCB0aGUgTWFj
IGFuZCBpT1MgYnVpbGQgYWZ0ZXIgcjIzMDkyMSIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTQ2NAorICAgICAgICBodHRwczovL3RyYWMud2Via2l0
Lm9yZy9jaGFuZ2VzZXQvMjMwOTI0CisKKyAgICAgICAgIkFub3RoZXIgYXR0ZW1wdCB0byBmaXgg
dGhlIFdpbmRvd3MgYnVpbGQgZm9sbG93aW5nIHIyMzA5MjEiCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTk0NjQKKyAgICAgICAgaHR0cHM6Ly90cmFj
LndlYmtpdC5vcmcvY2hhbmdlc2V0LzIzMDkzMgorCisgICAgICAgICJBdHRlbXB0IHRvIGZpeCB0
aGUgQXBwbGUgSW50ZXJuYWwgYnVpbGQgZm9sbG93aW5nIHIyMzA5MjEiCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTk0NjQKKyAgICAgICAgaHR0cHM6
Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzIzMDkzNAorCiAyMDE4LTA0LTIzICBaYWxhbiBC
dWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xheW91dEZvcm1hdHRpbmdDb250
ZXh0XSBJbml0aWFsIGNvbW1pdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYjY4MDk3NGM5NDczZWZiOGQ5NDQ4YTRj
ODBlNjFkOWM0YjJmZGI1OS4uMTkzNTcxYzc4MTNhMjg5NmJhMGU3OGE1YWU0NzAwMmQzZjAyNGQz
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxOC0wNC0yMyAgQ29tbWl0IFF1ZXVlICA8
Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBv
dXQgcjIzMDkyMSwgcjIzMDkyMywgcjIzMDkyNCwgcjIzMDkzMiwKKyAgICAgICAgYW5kIHIyMzA5
MzQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQ5
MDMKKworICAgICAgICBCdWlsZHMgc3RpbGwgYnJva2VuIChSZXF1ZXN0ZWQgYnkgcnlhbmhhZGRh
ZCBvbiAjd2Via2l0KS4KKworICAgICAgICBSZXZlcnRlZCBjaGFuZ2VzZXRzOgorCisgICAgICAg
ICJJbXBsZW1lbnQgU2FtZS1TaXRlIGNvb2tpZXMiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTk0NjQKKyAgICAgICAgaHR0cHM6Ly90cmFjLndlYmtp
dC5vcmcvY2hhbmdlc2V0LzIzMDkyMQorCisgICAgICAgICJBdHRlbXB0IHRvIGZpeCB0aGUgYnVp
bGQgYWZ0ZXIgcjIzMDkyMSIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE1OTQ2NAorICAgICAgICBodHRwczovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2Vz
ZXQvMjMwOTIzCisKKyAgICAgICAgIkF0dGVtcHQgdG8gZml4IHRoZSBNYWMgYW5kIGlPUyBidWls
ZCBhZnRlciByMjMwOTIxIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTU5NDY0CisgICAgICAgIGh0dHBzOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNl
dC8yMzA5MjQKKworICAgICAgICAiQW5vdGhlciBhdHRlbXB0IHRvIGZpeCB0aGUgV2luZG93cyBi
dWlsZCBmb2xsb3dpbmcgcjIzMDkyMSIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE1OTQ2NAorICAgICAgICBodHRwczovL3RyYWMud2Via2l0Lm9yZy9j
aGFuZ2VzZXQvMjMwOTMyCisKKyAgICAgICAgIkF0dGVtcHQgdG8gZml4IHRoZSBBcHBsZSBJbnRl
cm5hbCBidWlsZCBmb2xsb3dpbmcgcjIzMDkyMSIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTQ2NAorICAgICAgICBodHRwczovL3RyYWMud2Via2l0
Lm9yZy9jaGFuZ2VzZXQvMjMwOTM0CisKIDIwMTgtMDQtMjMgIERhbmllbCBCYXRlcyAgPGRhYmF0
ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIEF0dGVtcHQgdG8gZml4IHRoZSBBcHBsZSBJbnRlcm5h
bCBidWlsZCBmb2xsb3dpbmcgcjIzMDkyMQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4
IGMwNzBjMTk2Njc1MjhiMjA3Y2JjNGQzZmVjZTUzNjJkYThjN2Q2MTEuLmYzMDg5NWFiYWY2NzAw
MjA3NDJkNGVmYzAzOTAxOGRhMjc3ZTc2YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwzMyBAQAorMjAxOC0wNC0yMyAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVl
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIzMDkyMSwg
cjIzMDkyMywgcjIzMDkyNCwgcjIzMDkzMiwKKyAgICAgICAgYW5kIHIyMzA5MzQuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQ5MDMKKworICAgICAg
ICBCdWlsZHMgc3RpbGwgYnJva2VuIChSZXF1ZXN0ZWQgYnkgcnlhbmhhZGRhZCBvbiAjd2Via2l0
KS4KKworICAgICAgICBSZXZlcnRlZCBjaGFuZ2VzZXRzOgorCisgICAgICAgICJJbXBsZW1lbnQg
U2FtZS1TaXRlIGNvb2tpZXMiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNTk0NjQKKyAgICAgICAgaHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdl
c2V0LzIzMDkyMQorCisgICAgICAgICJBdHRlbXB0IHRvIGZpeCB0aGUgYnVpbGQgYWZ0ZXIgcjIz
MDkyMSIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1
OTQ2NAorICAgICAgICBodHRwczovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjMwOTIzCisK
KyAgICAgICAgIkF0dGVtcHQgdG8gZml4IHRoZSBNYWMgYW5kIGlPUyBidWlsZCBhZnRlciByMjMw
OTIxIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5
NDY0CisgICAgICAgIGh0dHBzOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yMzA5MjQKKwor
ICAgICAgICAiQW5vdGhlciBhdHRlbXB0IHRvIGZpeCB0aGUgV2luZG93cyBidWlsZCBmb2xsb3dp
bmcgcjIzMDkyMSIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE1OTQ2NAorICAgICAgICBodHRwczovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjMw
OTMyCisKKyAgICAgICAgIkF0dGVtcHQgdG8gZml4IHRoZSBBcHBsZSBJbnRlcm5hbCBidWlsZCBm
b2xsb3dpbmcgcjIzMDkyMSIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE1OTQ2NAorICAgICAgICBodHRwczovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2Vz
ZXQvMjMwOTM0CisKIDIwMTgtMDQtMjMgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4K
IAogICAgICAgICBbTGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRdIEluaXRpYWwgY29tbWl0LgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vQ2hhbmdlTG9nCmluZGV4IDcwMTMyYTEyY2RiNDNiY2MxNzZiMWRlMGQzOTkz
MTdkNDAyMTZkYTUuLmRkZTgwMDhkYzE4N2YzMDI0OTk1YjJhNGJjN2Q5Y2QwY2E5ZWZjNGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxOC0wNC0yMyAg
Q29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5yZXZp
ZXdlZCwgcm9sbGluZyBvdXQgcjIzMDkyMSwgcjIzMDkyMywgcjIzMDkyNCwgcjIzMDkzMiwKKyAg
ICAgICAgYW5kIHIyMzA5MzQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xODQ5MDMKKworICAgICAgICBCdWlsZHMgc3RpbGwgYnJva2VuIChSZXF1ZXN0
ZWQgYnkgcnlhbmhhZGRhZCBvbiAjd2Via2l0KS4KKworICAgICAgICBSZXZlcnRlZCBjaGFuZ2Vz
ZXRzOgorCisgICAgICAgICJJbXBsZW1lbnQgU2FtZS1TaXRlIGNvb2tpZXMiCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTk0NjQKKyAgICAgICAgaHR0
cHM6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzIzMDkyMQorCisgICAgICAgICJBdHRlbXB0
IHRvIGZpeCB0aGUgYnVpbGQgYWZ0ZXIgcjIzMDkyMSIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTQ2NAorICAgICAgICBodHRwczovL3RyYWMud2Vi
a2l0Lm9yZy9jaGFuZ2VzZXQvMjMwOTIzCisKKyAgICAgICAgIkF0dGVtcHQgdG8gZml4IHRoZSBN
YWMgYW5kIGlPUyBidWlsZCBhZnRlciByMjMwOTIxIgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5NDY0CisgICAgICAgIGh0dHBzOi8vdHJhYy53ZWJr
aXQub3JnL2NoYW5nZXNldC8yMzA5MjQKKworICAgICAgICAiQW5vdGhlciBhdHRlbXB0IHRvIGZp
eCB0aGUgV2luZG93cyBidWlsZCBmb2xsb3dpbmcgcjIzMDkyMSIKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTQ2NAorICAgICAgICBodHRwczovL3Ry
YWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjMwOTMyCisKKyAgICAgICAgIkF0dGVtcHQgdG8gZml4
IHRoZSBBcHBsZSBJbnRlcm5hbCBidWlsZCBmb2xsb3dpbmcgcjIzMDkyMSIKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTQ2NAorICAgICAgICBodHRw
czovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjMwOTM0CisKIDIwMTgtMDQtMjMgIERhbmll
bCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIEltcGxlbWVudCBTYW1lLVNp
dGUgY29va2llcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2YvQ0ZO
ZXR3b3JrU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9DRk5ldHdvcmtTUEku
aAppbmRleCAwYjY4NGM4NDEwYTE5ZGM4YTk2YjQ2YWRiMThjYWI4YmExYjRiYTZjLi45ZWYxY2Fh
NjFhY2FjZjllZjJkZjM4NjEyNmNlOTliMjg5MTg1MGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaApAQCAtMzQsNiArMzQsNyBAQAogI2RlZmluZSBV
U0VfQ0ZORVRXT1JLX0lHTk9SRV9IU1RTIDEKICNlbmRpZgogCisKICNpZiBQTEFURk9STShXSU4p
IHx8IFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAKICNpbmNsdWRlIDxDRk5ldHdvcmsvQ0ZIVFRQ
Q29va2llc1ByaXYuaD4KQEAgLTEyMyw2ICsxMjQsMTYgQEAgdHlwZWRlZiB2b2lkICheQ0ZDYWNo
ZWRVUkxSZXNwb25zZUNhbGxCYWNrQmxvY2spKENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYpOwogLSAo
TlNEYXRlICopX2xhc3RNb2RpZmllZERhdGU7CiBAZW5kCiAKK0BpbnRlcmZhY2UgTlNVUkxTZXNz
aW9uVGFzayAoVGltaW5nRGF0YSkKKy0gKE5TRGljdGlvbmFyeSAqKV90aW1pbmdEYXRhOworQGVu
ZAorCisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDEzMDApIHx8IChQTEFURk9STShJT1MpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDExMDAwMCkKK0BpbnRlcmZhY2UgTlNVUkxTZXNzaW9uVGFzayAoUmVzb3Vy
Y2VIaW50cykKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBhc3NpZ24pIEJPT0wgX3ByZWNvbm5lY3Q7
CitAZW5kCisjZW5kaWYKKwogQGludGVyZmFjZSBOU0hUVFBDb29raWUgKCkKIC0gKENGSFRUUENv
b2tpZVJlZilfQ0ZIVFRQQ29va2llOwogKyAoQ0ZBcnJheVJlZiBfX251bGxhYmxlKV9uczJjZkNv
b2tpZXM6KE5TQXJyYXkgKiBfX251bGxhYmxlKW5zQ29va2llcyBDRl9SRVRVUk5TX1JFVEFJTkVE
OwpAQCAtMTU5LDIxICsxNzAsMTMgQEAgdHlwZWRlZiB2b2lkICheQ0ZDYWNoZWRVUkxSZXNwb25z
ZUNhbGxCYWNrQmxvY2spKENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYpOwogQGVuZAogCiBAaW50ZXJm
YWNlIE5TSFRUUENvb2tpZVN0b3JhZ2UgKCkKLS0gKGlkKV9pbml0V2l0aElkZW50aWZpZXI6KE5T
U3RyaW5nICopaWRlbnRpZmllciBwcml2YXRlOihib29sKWlzUHJpdmF0ZTsKIC0gKHZvaWQpX2dl
dENvb2tpZXNGb3JVUkw6KE5TVVJMICopdXJsIG1haW5Eb2N1bWVudFVSTDooTlNVUkwgKiltYWlu
RG9jdW1lbnRVUkwgcGFydGl0aW9uOihOU1N0cmluZyAqKXBhcnRpdGlvbiBjb21wbGV0aW9uSGFu
ZGxlcjoodm9pZCAoXikoTlNBcnJheSAqKSljb21wbGV0aW9uSGFuZGxlcjsKLS0gKHZvaWQpX2dl
dENvb2tpZXNGb3JVUkw6KE5TVVJMICopdXJsIG1haW5Eb2N1bWVudFVSTDooTlNVUkwgKiltYWlu
RG9jdW1lbnRVUkwgcGFydGl0aW9uOihOU1N0cmluZyAqKXBhcnRpdGlvbiBwb2xpY3lQcm9wZXJ0
aWVzOihOU0RpY3Rpb25hcnkqKXByb3BzIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU0Fy
cmF5ICopKWNvbXBsZXRpb25IYW5kbGVyOwotLSAodm9pZClfc2V0Q29va2llczooTlNBcnJheSAq
KWNvb2tpZXMgZm9yVVJMOihOU1VSTCAqKVVSTCBtYWluRG9jdW1lbnRVUkw6KE5TVVJMICopbWFp
bkRvY3VtZW50VVJMIHBvbGljeVByb3BlcnRpZXM6KE5TRGljdGlvbmFyeSopIHByb3BzOworLSAo
aWQpX2luaXRXaXRoSWRlbnRpZmllcjooTlNTdHJpbmcgKilpZGVudGlmaWVyIHByaXZhdGU6KGJv
b2wpaXNQcml2YXRlOwogQGVuZAogCiBAaW50ZXJmYWNlIE5TVVJMU2Vzc2lvblRhc2sgKCkKLS0g
KE5TRGljdGlvbmFyeSAqKV90aW1pbmdEYXRhOwogQHByb3BlcnR5IChyZWFkd3JpdGUsIGNvcHkp
IE5TU3RyaW5nICpfcGF0aFRvRG93bmxvYWRUYXNrRmlsZTsKIEBwcm9wZXJ0eSAoY29weSkgTlNT
dHJpbmcgKl9zdG9yYWdlUGFydGl0aW9uSWRlbnRpZmllcjsKLUBwcm9wZXJ0eSAobnVsbGFibGUs
IHJlYWR3cml0ZSwgcmV0YWluKSBOU1VSTCAqX3NpdGVGb3JDb29raWVzOwotQHByb3BlcnR5IChy
ZWFkd3JpdGUpIEJPT0wgX2lzVG9wTGV2ZWxOYXZpZ2F0aW9uOwotI2lmIChQTEFURk9STShNQUMp
ICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMzAwKSB8fCAoUExBVEZP
Uk0oSU9TKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMTAwMDApCi1A
cHJvcGVydHkgKG5vbmF0b21pYywgYXNzaWduKSBCT09MIF9wcmVjb25uZWN0OwotI2VuZGlmCiBA
ZW5kCiAKICNlbmRpZiAvLyBkZWZpbmVkKF9fT0JKQ19fKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA0N2Zl
MDhhNjBlMmNmOGFhYzM3YTNjMGRkMDc5Y2I4ODAzOGU1NmNhLi4zMGZmM2I2NzJjNTJmODc1ZmY4
NTUwNzNmMDU2MTdlZDY3Y2MyZDA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMTc2MSw3ICsxNzYxLDYg
QEAgcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAKIHBsYXRmb3JtL25ldHdvcmsv
UmVzb3VyY2VIYW5kbGVDbGllbnQuY3BwCiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVz
dEJhc2UuY3BwCiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmNwcAotcGxh
dGZvcm0vbmV0d29yay9TYW1lU2l0ZUluZm8uY3BwCiBwbGF0Zm9ybS9uZXR3b3JrL1NvY2tldFN0
cmVhbUhhbmRsZS5jcHAKIHBsYXRmb3JtL25ldHdvcmsvU29ja2V0U3RyZWFtSGFuZGxlSW1wbC5j
cHAKIHBsYXRmb3JtL25ldHdvcmsvU3luY2hyb25vdXNMb2FkZXJDbGllbnQuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMDk5
MmVkODYyMDVhM2M1ZTdmNmIxMjMwN2I2NjIxYmIxZjlhMTM0NC4uMzBmNjQ2ZWM3ODg2MDA5ZDA4
MGI3ZmNlODcyZjkwYzM3YzBiYzY2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDA4NSw3ICs0MDg1LDYgQEAKIAkJQ0U3OTlG
QTQxQzZBNTAzQTAwOTdCNTE4IC8qIENvbnRlbnRTZWN1cml0eVBvbGljeURpcmVjdGl2ZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0U3OTlGQTIxQzZB
NTAzQTAwOTdCNTE4IC8qIENvbnRlbnRTZWN1cml0eVBvbGljeURpcmVjdGl2ZS5oICovOyB9Owog
CQlDRTc5OUZBODFDNkE1MDU3MDA5N0I1MTggLyogQ29udGVudFNlY3VyaXR5UG9saWN5TWVkaWFM
aXN0RGlyZWN0aXZlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDRTc5OUZBNjFDNkE1MDU3MDA5N0I1MTggLyogQ29udGVudFNlY3VyaXR5UG9saWN5TWVk
aWFMaXN0RGlyZWN0aXZlLmggKi87IH07CiAJCUNFNzk5RkFDMUM2QTUwNjYwMDk3QjUxOCAvKiBD
b250ZW50U2VjdXJpdHlQb2xpY3lTb3VyY2VMaXN0RGlyZWN0aXZlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRTc5OUZBQTFDNkE1MDY2MDA5N0I1MTgg
LyogQ29udGVudFNlY3VyaXR5UG9saWN5U291cmNlTGlzdERpcmVjdGl2ZS5oICovOyB9OwotCQlD
RTdBNkMyODIwODUzN0UyMDBGQTJCNDYgLyogU2FtZVNpdGVJbmZvLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRTdBNkMyNjIwODUzN0UyMDBGQTJCNDYg
LyogU2FtZVNpdGVJbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJQ0U3QjJEQjMxNTg2QUJBRDAwOThCM0ZBIC8qIEFsdGVybmF0aXZlVGV4dFVJ
Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0U3QjJEQUYxNTg2QUJBRDAwOThCM0ZBIC8qIEFsdGVybmF0aXZlVGV4dFVJQ29udHJvbGxl
ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNF
N0IyREI1MTU4NkFCQUQwMDk4QjNGQSAvKiBUZXh0QWx0ZXJuYXRpdmVXaXRoUmFuZ2UuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENFN0IyREIxMTU4NkFC
QUQwMDk4QjNGQSAvKiBUZXh0QWx0ZXJuYXRpdmVXaXRoUmFuZ2UuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDRTdFMTc4MzFDODNBNDkxMDBBRDA2
QUYgLyogQ29udGVudFNlY3VyaXR5UG9saWN5SGFzaC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0U3RTE3ODIxQzgzQTQ5MTAwQUQwNkFGIC8qIENvbnRl
bnRTZWN1cml0eVBvbGljeUhhc2guaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwpAQCAtMTM0MzEsOCArMTM0MzAsNiBAQAogCQlDRTc5OUZBNjFDNkE1MDU3
MDA5N0I1MTggLyogQ29udGVudFNlY3VyaXR5UG9saWN5TWVkaWFMaXN0RGlyZWN0aXZlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IENvbnRlbnRTZWN1cml0eVBvbGljeU1lZGlh
TGlzdERpcmVjdGl2ZS5oOyBwYXRoID0gY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeU1lZGlhTGlz
dERpcmVjdGl2ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRTc5OUZBOTFDNkE1
MDY2MDA5N0I1MTggLyogQ29udGVudFNlY3VyaXR5UG9saWN5U291cmNlTGlzdERpcmVjdGl2ZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBDb250ZW50U2VjdXJpdHlQ
b2xpY3lTb3VyY2VMaXN0RGlyZWN0aXZlLmNwcDsgcGF0aCA9IGNzcC9Db250ZW50U2VjdXJpdHlQ
b2xpY3lTb3VyY2VMaXN0RGlyZWN0aXZlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQ0U3OTlGQUExQzZBNTA2NjAwOTdCNTE4IC8qIENvbnRlbnRTZWN1cml0eVBvbGljeVNvdXJj
ZUxpc3REaXJlY3RpdmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQ29udGVu
dFNlY3VyaXR5UG9saWN5U291cmNlTGlzdERpcmVjdGl2ZS5oOyBwYXRoID0gY3NwL0NvbnRlbnRT
ZWN1cml0eVBvbGljeVNvdXJjZUxpc3REaXJlY3RpdmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJQ0U3QTZDMjYyMDg1MzdFMjAwRkEyQjQ2IC8qIFNhbWVTaXRlSW5mby5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTYW1lU2l0ZUluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
Q0U3QTZDMjcyMDg1MzdFMjAwRkEyQjQ2IC8qIFNhbWVTaXRlSW5mby5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBTYW1lU2l0ZUluZm8uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
RTdCMkRBRjE1ODZBQkFEMDA5OEIzRkEgLyogQWx0ZXJuYXRpdmVUZXh0VUlDb250cm9sbGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFsdGVybmF0aXZlVGV4dFVJQ29udHJv
bGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRTdCMkRCMDE1ODZBQkFEMDA5
OEIzRkEgLyogQWx0ZXJuYXRpdmVUZXh0VUlDb250cm9sbGVyLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gQWx0ZXJuYXRpdmVUZXh0VUlDb250cm9sbGVyLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRTdCMkRCMTE1ODZBQkFEMDA5OEIzRkEgLyog
VGV4dEFsdGVybmF0aXZlV2l0aFJhbmdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFRleHRBbHRlcm5hdGl2ZVdpdGhSYW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTg5NzUsOCArMTg5NzIsNiBAQAogCQkJCTUxNEM3NjY4MENFOTIzQTEwMDdFRjNDRCAv
KiBSZXNvdXJjZVJlcXVlc3RCYXNlLmggKi8sCiAJCQkJNTE0Qzc2NjkwQ0U5MjNBMTAwN0VGM0NE
IC8qIFJlc291cmNlUmVzcG9uc2VCYXNlLmNwcCAqLywKIAkJCQk1MTRDNzY2QTBDRTkyM0ExMDA3
RUYzQ0QgLyogUmVzb3VyY2VSZXNwb25zZUJhc2UuaCAqLywKLQkJCQlDRTdBNkMyNzIwODUzN0Uy
MDBGQTJCNDYgLyogU2FtZVNpdGVJbmZvLmNwcCAqLywKLQkJCQlDRTdBNkMyNjIwODUzN0UyMDBG
QTJCNDYgLyogU2FtZVNpdGVJbmZvLmggKi8sCiAJCQkJNTEwRDRBMkUxMDMxNjVFRTAwNDlFQTU0
IC8qIFNvY2tldFN0cmVhbUVycm9yLmggKi8sCiAJCQkJNTEwRDRBMzAxMDMxNjVFRTAwNDlFQTU0
IC8qIFNvY2tldFN0cmVhbUhhbmRsZS5jcHAgKi8sCiAJCQkJNTEwRDRBMzExMDMxNjVFRTAwNDlF
QTU0IC8qIFNvY2tldFN0cmVhbUhhbmRsZS5oICovLApAQCAtMjk5MDcsNyArMjk5MDIsNiBAQAog
CQkJCTFBNTY5RDI1MEQ3RTJCODIwMDdDMzk4MyAvKiBydW50aW1lX3Jvb3QuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTI5M0VBRTFGMTM1NkIyRkUwMDY3QUNGOSAvKiBSdW50aW1lQXBwbGljYXRpb25D
aGVja3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDNTIyMjlFMUUxREFFNDcwMDJDQjhGNyAvKiBS
dW50aW1lRW5hYmxlZEZlYXR1cmVzLmggaW4gSGVhZGVycyAqLywKLQkJCQlDRTdBNkMyODIwODUz
N0UyMDBGQTJCNDYgLyogU2FtZVNpdGVJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREQ3MDg5
NzE4MzU5RjZGMDAyQjNEQzYgLyogU2FtcGxlTWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQk0OUU5
MTFDQjBFRjg2RDQ3MDA5RDBDQUYgLyogU2NhbGVUcmFuc2Zvcm1PcGVyYXRpb24uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTVERkU4RjU3MEQxNjQ3N0MwMDc2RTkzNyAvKiBTY2hlZHVsZWRBY3Rpb24u
aCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMWQ1ODU3MmRiZDhj
MzZkODAzOWViMTgzZDRjZWJkZjdmMzFlMzFkNi4uODZmODNlNzI2NDIzYWM0NTQzNWQzMmJlZjA0
OTRlOTk0OWUwNTQ5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC01NDk0LDYgKzU0OTQs
MjAgQEAgRXhjZXB0aW9uT3I8UmVmPFhQYXRoUmVzdWx0Pj4gRG9jdW1lbnQ6OmV2YWx1YXRlKGNv
bnN0IFN0cmluZyYgZXhwcmVzc2lvbiwgTm9kZSoKICAgICByZXR1cm4gbV94cGF0aEV2YWx1YXRv
ci0+ZXZhbHVhdGUoZXhwcmVzc2lvbiwgY29udGV4dE5vZGUsIFdURk1vdmUocmVzb2x2ZXIpLCB0
eXBlLCByZXN1bHQpOwogfQogCitzdGF0aWMgYm9vbCBzaG91bGRJbmhlcml0U2VjdXJpdHlPcmln
aW5Gcm9tT3duZXIoY29uc3QgVVJMJiB1cmwpCit7CisgICAgLy8gUGFyYXBocmFzZWQgZnJvbSA8
aHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvYnJvd3NlcnMuaHRtbCNvcmln
aW4+ICg4IEp1bHkgMjAxNikKKyAgICAvLworICAgIC8vIElmIGEgRG9jdW1lbnQgaGFzIHRoZSBh
ZGRyZXNzICJhYm91dDpibGFuayIKKyAgICAvLyAgICAgIFRoZSBvcmlnaW4gb2YgdGhlIGRvY3Vt
ZW50IGlzIHRoZSBvcmlnaW4gaXQgd2FzIGFzc2lnbmVkIHdoZW4gaXRzIGJyb3dzaW5nIGNvbnRl
eHQgd2FzIGNyZWF0ZWQuCisgICAgLy8gSWYgYSBEb2N1bWVudCBoYXMgdGhlIGFkZHJlc3MgImFi
b3V0OnNyY2RvYyIKKyAgICAvLyAgICAgIFRoZSBvcmlnaW4gb2YgdGhlIGRvY3VtZW50IGlzIHRo
ZSBvcmlnaW4gb2YgaXRzIHBhcmVudCBkb2N1bWVudC4KKyAgICAvLworICAgIC8vIE5vdGU6IFdl
IGdlbmVyYWxpemUgdGhpcyB0byBpbnZhbGlkIFVSTHMgYmVjYXVzZSB3ZSB0cmVhdCBzdWNoIFVS
THMgYXMgYWJvdXQ6YmxhbmsuCisgICAgLy8KKyAgICByZXR1cm4gdXJsLmlzRW1wdHkoKSB8fCBl
cXVhbElnbm9yaW5nQVNDSUlDYXNlKHVybC5zdHJpbmcoKSwgYmxhbmtVUkwoKSkgfHwgZXF1YWxM
ZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UodXJsLnN0cmluZygpLCAiYWJvdXQ6c3JjZG9jIik7Cit9
CisKIHZvaWQgRG9jdW1lbnQ6OmluaXRTZWN1cml0eUNvbnRleHQoKQogewogICAgIGlmIChoYXZl
SW5pdGlhbGl6ZWRTZWN1cml0eU9yaWdpbigpKSB7CkBAIC01NTcwLDcgKzU1ODQsNyBAQCB2b2lk
IERvY3VtZW50Ojppbml0U2VjdXJpdHlDb250ZXh0KCkKICAgICBpZiAocGFyZW50RG9jdW1lbnQp
CiAgICAgICAgIHNldFN0cmljdE1peGVkQ29udGVudE1vZGUocGFyZW50RG9jdW1lbnQtPmlzU3Ry
aWN0TWl4ZWRDb250ZW50TW9kZSgpKTsKIAotICAgIGlmICghU2VjdXJpdHlQb2xpY3k6OnNob3Vs
ZEluaGVyaXRTZWN1cml0eU9yaWdpbkZyb21Pd25lcihtX3VybCkpCisgICAgaWYgKCFzaG91bGRJ
bmhlcml0U2VjdXJpdHlPcmlnaW5Gcm9tT3duZXIobV91cmwpKQogICAgICAgICByZXR1cm47CiAK
ICAgICAvLyBJZiB3ZSBkbyBub3Qgb2J0YWluIGEgbWVhbmluZ2Z1bCBvcmlnaW4gZnJvbSB0aGUg
VVJMLCB0aGVuIHdlIHRyeSB0bwpAQCAtNTYxNCw3ICs1NjI4LDcgQEAgdm9pZCBEb2N1bWVudDo6
aW5pdFNlY3VyaXR5Q29udGV4dCgpCiBib29sIERvY3VtZW50OjpzaG91bGRJbmhlcml0Q29udGVu
dFNlY3VyaXR5UG9saWN5RnJvbU93bmVyKCkgY29uc3QKIHsKICAgICBBU1NFUlQobV9mcmFtZSk7
Ci0gICAgaWYgKFNlY3VyaXR5UG9saWN5OjpzaG91bGRJbmhlcml0U2VjdXJpdHlPcmlnaW5Gcm9t
T3duZXIobV91cmwpKQorICAgIGlmIChzaG91bGRJbmhlcml0U2VjdXJpdHlPcmlnaW5Gcm9tT3du
ZXIobV91cmwpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBpZiAoIWlzUGx1Z2luRG9jdW1l
bnQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA0YjYy
NDg2NzAwYTNkNGVhMGZiM2JmZjU4NDliNmQyZWEwY2IyODlhLi5hNGZiMDJmOWUxYmNiZDQwMGIw
Y2M4NjUyYWJkNDA0ZjAxYzQ1OTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtOTE4LDE0ICs5
MTgsNiBAQCBwdWJsaWM6CiAgICAgLy8KICAgICBjb25zdCBVUkwmIGZpcnN0UGFydHlGb3JDb29r
aWVzKCkgY29uc3QgeyByZXR1cm4gbV9maXJzdFBhcnR5Rm9yQ29va2llczsgfQogICAgIHZvaWQg
c2V0Rmlyc3RQYXJ0eUZvckNvb2tpZXMoY29uc3QgVVJMJiB1cmwpIHsgbV9maXJzdFBhcnR5Rm9y
Q29va2llcyA9IHVybDsgfQotCi0gICAgLy8gVGhlIGZ1bGwgVVJMIGNvcnJlc3BvbmRpbmcgdG8g
dGhlICJzaXRlIGZvciBjb29raWVzIiBpbiB0aGUgU2FtZS1TaXRlIENvb2tpZXMgc3BlYy4sCi0g
ICAgLy8gPGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC1pZXRmLWh0dHBiaXMtY29v
a2llLXNhbWUtc2l0ZS0wMD4uIEl0IGlzIGVpdGhlcgotICAgIC8vIHRoZSBVUkwgb2YgdGhlIHRv
cC1sZXZlbCBkb2N1bWVudCBvciB0aGUgbnVsbCBVUkwgZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhl
IHJlZ2lzdHJhYmxlCi0gICAgLy8gZG9tYWluIG9mIHRoaXMgZG9jdW1lbnQncyBVUkwgbWF0Y2hl
cyB0aGUgcmVnaXN0cmFibGUgZG9tYWluIG9mIGl0cyBwYXJlbnQncy9vcGVuZXIncwotICAgIC8v
IFVSTC4gRm9yIHRoZSB0b3AtbGV2ZWwgZG9jdW1lbnQsIGl0IGlzIHNldCB0byB0aGUgZG9jdW1l
bnQncyBVUkwuCi0gICAgY29uc3QgVVJMJiBmaXJzdFBhcnR5Rm9yU2FtZVNpdGVDb29raWVzKCkg
Y29uc3QgeyByZXR1cm4gbV9maXJzdFBhcnR5Rm9yU2FtZVNpdGVDb29raWVzOyB9Ci0gICAgdm9p
ZCBzZXRGaXJzdFBhcnR5Rm9yU2FtZVNpdGVDb29raWVzKGNvbnN0IFVSTCYgdXJsKSB7IG1fZmly
c3RQYXJ0eUZvclNhbWVTaXRlQ29va2llcyA9IHVybDsgfQogICAgIAogICAgIC8vIFRoZSBmb2xs
b3dpbmcgaW1wbGVtZW50cyB0aGUgcnVsZSBmcm9tIEhUTUwgNCBmb3Igd2hhdCB2YWxpZCBuYW1l
cyBhcmUuCiAgICAgLy8gVG8gZ2V0IHRoaXMgcmlnaHQgZm9yIGFsbCB0aGUgWE1MIGNhc2VzLCB3
ZSBwcm9iYWJseSBoYXZlIHRvIGltcHJvdmUgdGhpcyBvciBtb3ZlIGl0CkBAIC0xNTU5LDcgKzE1
NTEsNiBAQCBwcml2YXRlOgogICAgIFVSTCBtX2Jhc2VFbGVtZW50VVJMOyAvLyBUaGUgVVJMIHNl
dCBieSB0aGUgPGJhc2U+IGVsZW1lbnQuCiAgICAgVVJMIG1fY29va2llVVJMOyAvLyBUaGUgVVJM
IHRvIHVzZSBmb3IgY29va2llIGFjY2Vzcy4KICAgICBVUkwgbV9maXJzdFBhcnR5Rm9yQ29va2ll
czsgLy8gVGhlIHBvbGljeSBVUkwgZm9yIHRoaXJkLXBhcnR5IGNvb2tpZSBibG9ja2luZy4KLSAg
ICBVUkwgbV9maXJzdFBhcnR5Rm9yU2FtZVNpdGVDb29raWVzOyAvLyBUaGUgcG9saWN5IFVSTCBm
b3IgU2FtZS1TaXRlIGNvb2tpZXMuCiAKICAgICAvLyBEb2N1bWVudC5kb2N1bWVudFVSSToKICAg
ICAvLyBBbHRob3VnaCBVUkwtbGlrZSwgRG9jdW1lbnQuZG9jdW1lbnRVUkkgY2FuIGFjdHVhbGx5
IGJlIHNldCB0byBhbnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Db29raWVK
YXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nvb2tpZUphci5jcHAKaW5kZXggNDliNzk4
ZDdkMmNlYWJkOWE4ZGFmZWRkODUzNDhhMjRhYmE4MmMzZS4uYTI0ZmQ2OTVhNGFiYWMwZDhjNTZh
MTMwODlmN2JmMDlhYmI2MWQzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nv
b2tpZUphci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nvb2tpZUphci5jcHAKQEAg
LTI5LDcgKzI5LDYgQEAKICNpbmNsdWRlICJDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eS5o
IgogI2luY2x1ZGUgIkNvb2tpZXNTdHJhdGVneS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0j
aW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUg
IkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKQEAgLTM3LDcg
KzM2LDYgQEAKICNpbmNsdWRlICJOZXR3b3JraW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlBsYXRm
b3JtQ29va2llSmFyLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJhdGVnaWVzLmgiCi0jaW5jbHVk
ZSAiU2FtZVNpdGVJbmZvLmgiCiAjaW5jbHVkZSA8d3RmL1N5c3RlbVRyYWNpbmcuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewpAQCAtNjMsMTMgKzYxLDYgQEAgc3RhdGljIEluY2x1ZGVTZWN1cmVD
b29raWVzIHNob3VsZEluY2x1ZGVTZWN1cmVDb29raWVzKGNvbnN0IERvY3VtZW50JiBkb2N1bWVu
dCwKICAgICByZXR1cm4gKHVybC5wcm90b2NvbElzKCJodHRwcyIpICYmICFkb2N1bWVudC5mb3Vu
ZE1peGVkQ29udGVudCgpLmNvbnRhaW5zKFNlY3VyaXR5Q29udGV4dDo6TWl4ZWRDb250ZW50VHlw
ZTo6QWN0aXZlKSkgPyBJbmNsdWRlU2VjdXJlQ29va2llczo6WWVzIDogSW5jbHVkZVNlY3VyZUNv
b2tpZXM6Ok5vOwogfQogCi1zdGF0aWMgaW5saW5lIFNhbWVTaXRlSW5mbyBzYW1lU2l0ZUluZm8o
Y29uc3QgRG9jdW1lbnQmIGRvY3VtZW50KQotewotICAgIGlmIChhdXRvKiBsb2FkZXIgPSBkb2N1
bWVudC5sb2FkZXIoKSkKLSAgICAgICAgcmV0dXJuIFNhbWVTaXRlSW5mbzo6Y3JlYXRlKGxvYWRl
ci0+cmVxdWVzdCgpKTsKLSAgICByZXR1cm4geyB9OwotfQotCiBTdHJpbmcgY29va2llcyhEb2N1
bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgdXJsKQogewogICAgIFRyYWNlU2NvcGUgc2NvcGUo
RmV0Y2hDb29raWVzU3RhcnQsIEZldGNoQ29va2llc0VuZCk7CkBAIC03OSw5ICs3MCw5IEBAIFN0
cmluZyBjb29raWVzKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgVVJMJiB1cmwpCiAgICAgc3Rk
OjpwYWlyPFN0cmluZywgYm9vbD4gcmVzdWx0OwogICAgIGF1dG8gZnJhbWUgPSBkb2N1bWVudC5m
cmFtZSgpOwogICAgIGlmIChmcmFtZSkKLSAgICAgICAgcmVzdWx0ID0gcGxhdGZvcm1TdHJhdGVn
aWVzKCktPmNvb2tpZXNTdHJhdGVneSgpLT5jb29raWVzRm9yRE9NKHN0b3JhZ2VTZXNzaW9uKGRv
Y3VtZW50KSwgZG9jdW1lbnQuZmlyc3RQYXJ0eUZvckNvb2tpZXMoKSwgc2FtZVNpdGVJbmZvKGRv
Y3VtZW50KSwgdXJsLCBmcmFtZS0+bG9hZGVyKCkuY2xpZW50KCkuZnJhbWVJRCgpLCBmcmFtZS0+
bG9hZGVyKCkuY2xpZW50KCkucGFnZUlEKCksIGluY2x1ZGVTZWN1cmVDb29raWVzKTsKKyAgICAg
ICAgcmVzdWx0ID0gcGxhdGZvcm1TdHJhdGVnaWVzKCktPmNvb2tpZXNTdHJhdGVneSgpLT5jb29r
aWVzRm9yRE9NKHN0b3JhZ2VTZXNzaW9uKGRvY3VtZW50KSwgZG9jdW1lbnQuZmlyc3RQYXJ0eUZv
ckNvb2tpZXMoKSwgdXJsLCBmcmFtZS0+bG9hZGVyKCkuY2xpZW50KCkuZnJhbWVJRCgpLCBmcmFt
ZS0+bG9hZGVyKCkuY2xpZW50KCkucGFnZUlEKCksIGluY2x1ZGVTZWN1cmVDb29raWVzKTsKICAg
ICBlbHNlCi0gICAgICAgIHJlc3VsdCA9IHBsYXRmb3JtU3RyYXRlZ2llcygpLT5jb29raWVzU3Ry
YXRlZ3koKS0+Y29va2llc0ZvckRPTShzdG9yYWdlU2Vzc2lvbihkb2N1bWVudCksIGRvY3VtZW50
LmZpcnN0UGFydHlGb3JDb29raWVzKCksIHNhbWVTaXRlSW5mbyhkb2N1bWVudCksIHVybCwgc3Rk
OjpudWxsb3B0LCBzdGQ6Om51bGxvcHQsIGluY2x1ZGVTZWN1cmVDb29raWVzKTsKKyAgICAgICAg
cmVzdWx0ID0gcGxhdGZvcm1TdHJhdGVnaWVzKCktPmNvb2tpZXNTdHJhdGVneSgpLT5jb29raWVz
Rm9yRE9NKHN0b3JhZ2VTZXNzaW9uKGRvY3VtZW50KSwgZG9jdW1lbnQuZmlyc3RQYXJ0eUZvckNv
b2tpZXMoKSwgdXJsLCBzdGQ6Om51bGxvcHQsIHN0ZDo6bnVsbG9wdCwgaW5jbHVkZVNlY3VyZUNv
b2tpZXMpOwogCiAgICAgaWYgKHJlc3VsdC5zZWNvbmQpCiAgICAgICAgIGRvY3VtZW50LnNldFNl
Y3VyZUNvb2tpZXNBY2Nlc3NlZCgpOwpAQCAtOTYsNyArODcsNiBAQCBDb29raWVSZXF1ZXN0SGVh
ZGVyRmllbGRQcm94eSBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eShjb25zdCBEb2N1bWVu
dCYgZG9jdQogICAgIENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5IHByb3h5OwogICAgIHBy
b3h5LnNlc3Npb25JRCA9IHN0b3JhZ2VTZXNzaW9uKGRvY3VtZW50KS5zZXNzaW9uSUQoKTsKICAg
ICBwcm94eS5maXJzdFBhcnR5ID0gZG9jdW1lbnQuZmlyc3RQYXJ0eUZvckNvb2tpZXMoKTsKLSAg
ICBwcm94eS5zYW1lU2l0ZUluZm8gPSBzYW1lU2l0ZUluZm8oZG9jdW1lbnQpOwogICAgIHByb3h5
LnVybCA9IHVybDsKICAgICBwcm94eS5pbmNsdWRlU2VjdXJlQ29va2llcyA9IHNob3VsZEluY2x1
ZGVTZWN1cmVDb29raWVzKGRvY3VtZW50LCB1cmwpOwogICAgIGlmIChhdXRvKiBmcmFtZSA9IGRv
Y3VtZW50LmZyYW1lKCkpIHsKQEAgLTExMCw5ICsxMDAsOSBAQCB2b2lkIHNldENvb2tpZXMoRG9j
dW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBjb29raWVTdHJp
bmcpCiB7CiAgICAgYXV0byBmcmFtZSA9IGRvY3VtZW50LmZyYW1lKCk7CiAgICAgaWYgKGZyYW1l
KQotICAgICAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+Y29va2llc1N0cmF0ZWd5KCktPnNldENv
b2tpZXNGcm9tRE9NKHN0b3JhZ2VTZXNzaW9uKGRvY3VtZW50KSwgZG9jdW1lbnQuZmlyc3RQYXJ0
eUZvckNvb2tpZXMoKSwgc2FtZVNpdGVJbmZvKGRvY3VtZW50KSwgdXJsLCBmcmFtZS0+bG9hZGVy
KCkuY2xpZW50KCkuZnJhbWVJRCgpLCBmcmFtZS0+bG9hZGVyKCkuY2xpZW50KCkucGFnZUlEKCks
IGNvb2tpZVN0cmluZyk7CisgICAgICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5jb29raWVzU3Ry
YXRlZ3koKS0+c2V0Q29va2llc0Zyb21ET00oc3RvcmFnZVNlc3Npb24oZG9jdW1lbnQpLCBkb2N1
bWVudC5maXJzdFBhcnR5Rm9yQ29va2llcygpLCB1cmwsIGZyYW1lLT5sb2FkZXIoKS5jbGllbnQo
KS5mcmFtZUlEKCksIGZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKS5wYWdlSUQoKSwgY29va2llU3Ry
aW5nKTsKICAgICBlbHNlCi0gICAgICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5jb29raWVzU3Ry
YXRlZ3koKS0+c2V0Q29va2llc0Zyb21ET00oc3RvcmFnZVNlc3Npb24oZG9jdW1lbnQpLCBkb2N1
bWVudC5maXJzdFBhcnR5Rm9yQ29va2llcygpLCBzYW1lU2l0ZUluZm8oZG9jdW1lbnQpLCB1cmws
IHN0ZDo6bnVsbG9wdCwgc3RkOjpudWxsb3B0LCBjb29raWVTdHJpbmcpOworICAgICAgICBwbGF0
Zm9ybVN0cmF0ZWdpZXMoKS0+Y29va2llc1N0cmF0ZWd5KCktPnNldENvb2tpZXNGcm9tRE9NKHN0
b3JhZ2VTZXNzaW9uKGRvY3VtZW50KSwgZG9jdW1lbnQuZmlyc3RQYXJ0eUZvckNvb2tpZXMoKSwg
dXJsLCBzdGQ6Om51bGxvcHQsIHN0ZDo6bnVsbG9wdCwgY29va2llU3RyaW5nKTsKIH0KIAogYm9v
bCBjb29raWVzRW5hYmxlZChjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQpCkBAIC0xMjcsOSArMTE3
LDkgQEAgU3RyaW5nIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKERvY3VtZW50JiBkb2N1
bWVudCwgY29uc3QgVVJMJiB1cmwpCiAgICAgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gcmVzdWx0
OwogICAgIGF1dG8gZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpOwogICAgIGlmIChmcmFtZSkKLSAg
ICAgICAgcmVzdWx0ID0gcGxhdGZvcm1TdHJhdGVnaWVzKCktPmNvb2tpZXNTdHJhdGVneSgpLT5j
b29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShzdG9yYWdlU2Vzc2lvbihkb2N1bWVudCksIGRv
Y3VtZW50LmZpcnN0UGFydHlGb3JDb29raWVzKCksIHNhbWVTaXRlSW5mbyhkb2N1bWVudCksIHVy
bCwgZnJhbWUtPmxvYWRlcigpLmNsaWVudCgpLmZyYW1lSUQoKSwgZnJhbWUtPmxvYWRlcigpLmNs
aWVudCgpLnBhZ2VJRCgpLCBpbmNsdWRlU2VjdXJlQ29va2llcyk7CisgICAgICAgIHJlc3VsdCA9
IHBsYXRmb3JtU3RyYXRlZ2llcygpLT5jb29raWVzU3RyYXRlZ3koKS0+Y29va2llUmVxdWVzdEhl
YWRlckZpZWxkVmFsdWUoc3RvcmFnZVNlc3Npb24oZG9jdW1lbnQpLCBkb2N1bWVudC5maXJzdFBh
cnR5Rm9yQ29va2llcygpLCB1cmwsIGZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKS5mcmFtZUlEKCks
IGZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKS5wYWdlSUQoKSwgaW5jbHVkZVNlY3VyZUNvb2tpZXMp
OwogICAgIGVsc2UKLSAgICAgICAgcmVzdWx0ID0gcGxhdGZvcm1TdHJhdGVnaWVzKCktPmNvb2tp
ZXNTdHJhdGVneSgpLT5jb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShzdG9yYWdlU2Vzc2lv
bihkb2N1bWVudCksIGRvY3VtZW50LmZpcnN0UGFydHlGb3JDb29raWVzKCksIHNhbWVTaXRlSW5m
byhkb2N1bWVudCksIHVybCwgc3RkOjpudWxsb3B0LCBzdGQ6Om51bGxvcHQsIGluY2x1ZGVTZWN1
cmVDb29raWVzKTsKKyAgICAgICAgcmVzdWx0ID0gcGxhdGZvcm1TdHJhdGVnaWVzKCktPmNvb2tp
ZXNTdHJhdGVneSgpLT5jb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShzdG9yYWdlU2Vzc2lv
bihkb2N1bWVudCksIGRvY3VtZW50LmZpcnN0UGFydHlGb3JDb29raWVzKCksIHVybCwgc3RkOjpu
dWxsb3B0LCBzdGQ6Om51bGxvcHQsIGluY2x1ZGVTZWN1cmVDb29raWVzKTsKIAogICAgIGlmIChy
ZXN1bHQuc2Vjb25kKQogICAgICAgICBkb2N1bWVudC5zZXRTZWN1cmVDb29raWVzQWNjZXNzZWQo
KTsKQEAgLTE0MSw5ICsxMzEsOSBAQCBib29sIGdldFJhd0Nvb2tpZXMoY29uc3QgRG9jdW1lbnQm
IGRvY3VtZW50LCBjb25zdCBVUkwmIHVybCwgVmVjdG9yPENvb2tpZT4mIGNvbwogewogICAgIGF1
dG8gZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpOwogICAgIGlmIChmcmFtZSkKLSAgICAgICAgcmV0
dXJuIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5jb29raWVzU3RyYXRlZ3koKS0+Z2V0UmF3Q29va2ll
cyhzdG9yYWdlU2Vzc2lvbihkb2N1bWVudCksIGRvY3VtZW50LmZpcnN0UGFydHlGb3JDb29raWVz
KCksIHNhbWVTaXRlSW5mbyhkb2N1bWVudCksIHVybCwgZnJhbWUtPmxvYWRlcigpLmNsaWVudCgp
LmZyYW1lSUQoKSwgZnJhbWUtPmxvYWRlcigpLmNsaWVudCgpLnBhZ2VJRCgpLCBjb29raWVzKTsK
KyAgICAgICAgcmV0dXJuIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5jb29raWVzU3RyYXRlZ3koKS0+
Z2V0UmF3Q29va2llcyhzdG9yYWdlU2Vzc2lvbihkb2N1bWVudCksIGRvY3VtZW50LmZpcnN0UGFy
dHlGb3JDb29raWVzKCksIHVybCwgZnJhbWUtPmxvYWRlcigpLmNsaWVudCgpLmZyYW1lSUQoKSwg
ZnJhbWUtPmxvYWRlcigpLmNsaWVudCgpLnBhZ2VJRCgpLCBjb29raWVzKTsKIAotICAgIHJldHVy
biBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+Y29va2llc1N0cmF0ZWd5KCktPmdldFJhd0Nvb2tpZXMo
c3RvcmFnZVNlc3Npb24oZG9jdW1lbnQpLCBkb2N1bWVudC5maXJzdFBhcnR5Rm9yQ29va2llcygp
LCBzYW1lU2l0ZUluZm8oZG9jdW1lbnQpLCB1cmwsIHN0ZDo6bnVsbG9wdCwgc3RkOjpudWxsb3B0
LCBjb29raWVzKTsKKyAgICByZXR1cm4gcGxhdGZvcm1TdHJhdGVnaWVzKCktPmNvb2tpZXNTdHJh
dGVneSgpLT5nZXRSYXdDb29raWVzKHN0b3JhZ2VTZXNzaW9uKGRvY3VtZW50KSwgZG9jdW1lbnQu
Zmlyc3RQYXJ0eUZvckNvb2tpZXMoKSwgdXJsLCBzdGQ6Om51bGxvcHQsIHN0ZDo6bnVsbG9wdCwg
Y29va2llcyk7CiB9CiAKIHZvaWQgZGVsZXRlQ29va2llKGNvbnN0IERvY3VtZW50JiBkb2N1bWVu
dCwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgY29va2llTmFtZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IDM0MGQwOTJhNGJlYjIyYTk3NjIxNWVm
YzViM2QwYTc2MGJiNjE5MTYuLmZiYzc0MzQxOTY0MzdkMzRmYjcyMGRjYTA1ZTcxODRmZWJkZjBh
ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcApAQCAtNjA0LDgg
KzYwNCw2IEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6OndpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJl
cXVlc3QmJiBuZXdSZXF1ZXN0LCBjb25zdCBSZXNvdXJjCiAgICAgaWYgKG1fZnJhbWUtPmlzTWFp
bkZyYW1lKCkpCiAgICAgICAgIG5ld1JlcXVlc3Quc2V0Rmlyc3RQYXJ0eUZvckNvb2tpZXMobmV3
UmVxdWVzdC51cmwoKSk7CiAKLSAgICBGcmFtZUxvYWRlcjo6YWRkU2FtZVNpdGVJbmZvVG9SZXF1
ZXN0SWZOZWVkZWQobmV3UmVxdWVzdCwgbV9mcmFtZS0+ZG9jdW1lbnQoKSk7Ci0KICAgICBpZiAo
IWRpZFJlY2VpdmVSZWRpcmVjdFJlc3BvbnNlKQogICAgICAgICBmcmFtZUxvYWRlcigpLT5jbGll
bnQoKS5kaXNwYXRjaFdpbGxDaGFuZ2VEb2N1bWVudCgpOwogCkBAIC0xNjg3LDggKzE2ODUsNiBA
QCB2b2lkIERvY3VtZW50TG9hZGVyOjpzdGFydExvYWRpbmdNYWluUmVzb3VyY2UoU2hvdWxkQ29u
dGludWUgc2hvdWxkQ29udGludWUpCiAgICAgLy8gSWYgbm90LCBpdCB3b3VsZCBiZSBncmVhdCB0
byByZW1vdmUgdGhpcyBsaW5lIG9mIGNvZGUuCiAgICAgLy8gTm90ZSB0aGF0IGN1cnJlbnRseSwg
c29tZSByZXF1ZXN0cyBtYXkgaGF2ZSBpbmNvcnJlY3QgZXh0cmEgZmllbGRzIGV2ZW4gaWYgdGhp
cyBmdW5jdGlvbiBoYXMgYmVlbiBjYWxsZWQsCiAgICAgLy8gYmVjYXVzZSB3ZSBwYXNzIGEgd3Jv
bmcgbG9hZFR5cGUgKHNlZSBGSVhNRSBpbiBhZGRFeHRyYUZpZWxkc1RvTWFpblJlc291cmNlUmVx
dWVzdCgpKS4KLSAgICAvLyBJZiB3ZSByZW1vdmUgdGhpcyBsaW5lIG9mIGNvZGUgdGhlbiBSZXNv
dXJjZVJlcXVlc3RCYXNlIGRvZXMgbm90IG5lZWQgdG8gdHJhY2sgd2hldGhlciBpc1NhbWVTaXRl
Ci0gICAgLy8gaXMgdW5zcGVjaWZpZWQuCiAgICAgZnJhbWVMb2FkZXIoKS0+YWRkRXh0cmFGaWVs
ZHNUb01haW5SZXNvdXJjZVJlcXVlc3QobV9yZXF1ZXN0KTsKIAogICAgIEFTU0VSVCh0aW1pbmco
KS5zdGFydFRpbWUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCA5
N2NmMGI2OGUxMTRmMTdhNTZmMDQxYWE3YWIwODRmMzUwMDJmMGQ1Li44YTA3MTUyMmZmYmEwZTQ0
NDRhNWVlM2UwNGZlYmE5YTRiMjllY2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ci5jcHAKQEAgLTEwNTUsMTIgKzEwNTUsNiBAQCB2b2lkIEZyYW1lTG9hZGVyOjpzZXRGaXJzdFBh
cnR5Rm9yQ29va2llcyhjb25zdCBVUkwmIHVybCkKIHsKICAgICBmb3IgKEZyYW1lKiBmcmFtZSA9
ICZtX2ZyYW1lOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dCgmbV9m
cmFtZSkpCiAgICAgICAgIGZyYW1lLT5kb2N1bWVudCgpLT5zZXRGaXJzdFBhcnR5Rm9yQ29va2ll
cyh1cmwpOwotCi0gICAgU3RyaW5nIHJlZ2lzdHJhYmxlRG9tYWluID0gUmVzb3VyY2VSZXF1ZXN0
OjpwYXJ0aXRpb25OYW1lKHVybC5ob3N0KCkpOwotICAgIGZvciAoRnJhbWUqIGZyYW1lID0gJm1f
ZnJhbWU7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCkudHJhdmVyc2VOZXh0KCZtX2ZyYW1l
KSkgewotICAgICAgICBpZiAoU2VjdXJpdHlQb2xpY3k6OnNob3VsZEluaGVyaXRTZWN1cml0eU9y
aWdpbkZyb21Pd25lcihmcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCkpIHx8IHJlZ2lzdHJhYmxlRG9t
YWluc0FyZUVxdWFsKGZyYW1lLT5kb2N1bWVudCgpLT51cmwoKSwgcmVnaXN0cmFibGVEb21haW4p
KQotICAgICAgICAgICAgZnJhbWUtPmRvY3VtZW50KCktPnNldEZpcnN0UGFydHlGb3JTYW1lU2l0
ZUNvb2tpZXModXJsKTsKLSAgICB9CiB9CiAKIC8vIFRoaXMgZG9lcyB0aGUgc2FtZSBraW5kIG9m
IHdvcmsgdGhhdCBkaWRPcGVuVVJMIGRvZXMsIGV4Y2VwdCBpdCByZWxpZXMgb24gdGhlIGZhY3QK
QEAgLTE0MDQsNyArMTM5OCw2IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWQoRnJhbWVMb2FkUmVx
dWVzdCYmIHJlcXVlc3QpCiAgICAgICAgIHJlcXVlc3Quc2V0U3Vic3RpdHV0ZURhdGEoZGVmYXVs
dFN1YnN0aXR1dGVEYXRhRm9yVVJMKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkudXJsKCkpKTsK
IAogICAgIFJlZjxEb2N1bWVudExvYWRlcj4gbG9hZGVyID0gbV9jbGllbnQuY3JlYXRlRG9jdW1l
bnRMb2FkZXIocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgcmVxdWVzdC5zdWJzdGl0dXRlRGF0
YSgpKTsKLSAgICBhZGRTYW1lU2l0ZUluZm9Ub1JlcXVlc3RJZk5lZWRlZChsb2FkZXItPnJlcXVl
c3QoKSk7CiAgICAgYXBwbHlTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5VG9OZXdEb2N1bWVu
dExvYWRlcihtX2ZyYW1lLCBsb2FkZXIsIHJlcXVlc3QpOwogCiAgICAgU2V0Rm9yU2NvcGU8Ym9v
bD4gY3VycmVudExvYWRTaG91bGRDaGVja05hdmlnYXRpb25Qb2xpY3lHdWFyZChtX2N1cnJlbnRM
b2FkU2hvdWxkQ2hlY2tOYXZpZ2F0aW9uUG9saWN5LCByZXF1ZXN0LnNob3VsZENoZWNrTmF2aWdh
dGlvblBvbGljeSgpKTsKQEAgLTE2ODEsOCArMTY3NCw2IEBAIHZvaWQgRnJhbWVMb2FkZXI6OnJl
bG9hZChPcHRpb25TZXQ8UmVsb2FkT3B0aW9uPiBvcHRpb25zKQogICAgIC8vIEZJWE1FOiBXZSBk
b24ndCBoYXZlIGEgbWVjaGFuaXNtIHRvIHJldmFsaWRhdGUgdGhlIG1haW4gcmVzb3VyY2Ugd2l0
aG91dCByZWxvYWRpbmcgYXQgdGhlIG1vbWVudC4KICAgICByZXF1ZXN0LnNldENhY2hlUG9saWN5
KFJlbG9hZElnbm9yaW5nQ2FjaGVEYXRhKTsKIAotICAgIGFkZFNhbWVTaXRlSW5mb1RvUmVxdWVz
dElmTmVlZGVkKHJlcXVlc3QpOwotCiAgICAgLy8gSWYgd2UncmUgYWJvdXQgdG8gcmUtcG9zdCwg
c2V0IHVwIGFjdGlvbiBzbyB0aGUgYXBwbGljYXRpb24gY2FuIHdhcm4gdGhlIHVzZXIuCiAgICAg
aWYgKHJlcXVlc3QuaHR0cE1ldGhvZCgpID09ICJQT1NUIikKICAgICAgICAgbG9hZGVyLT5zZXRU
cmlnZ2VyaW5nQWN0aW9uKHsgKm1fZnJhbWUuZG9jdW1lbnQoKSwgcmVxdWVzdCwgSW5pdGlhdGVk
QnlNYWluRnJhbWU6OlVua25vd24sIE5hdmlnYXRpb25UeXBlOjpGb3JtUmVzdWJtaXR0ZWQgfSk7
CkBAIC0yNDQ5LDE1ICsyNDQwLDEyIEBAIHZvaWQgRnJhbWVMb2FkZXI6OnNldE9yaWdpbmFsVVJM
Rm9yRG93bmxvYWRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKICAgICAvLyBGSVhN
RTogUmVuYW1lIGZpcnN0UGFydHlGb3JDb29raWVzIGJhY2sgdG8gbWFpbkRvY3VtZW50VVJMLiBJ
dCB3YXMgYSBtaXN0YWtlIHRvIHRoaW5rIHRoYXQgaXQgd2FzIG9ubHkgdXNlZCBmb3IgY29va2ll
cy4KICAgICAvLyBUaGUgb3JpZ2luYWxVUkwgaXMgZGVmaW5lZCBhcyB0aGUgVVJMIG9mIHRoZSBw
YWdlIHdoZXJlIHRoZSBkb3dubG9hZCB3YXMgaW5pdGlhdGVkLgogICAgIFVSTCBvcmlnaW5hbFVS
TDsKLSAgICBhdXRvKiBpbml0aWF0b3IgPSBtX2ZyYW1lLmRvY3VtZW50KCk7Ci0gICAgaWYgKGlu
aXRpYXRvcikgewotICAgICAgICBvcmlnaW5hbFVSTCA9IGluaXRpYXRvci0+Zmlyc3RQYXJ0eUZv
ckNvb2tpZXMoKTsKKyAgICBpZiAobV9mcmFtZS5kb2N1bWVudCgpKSB7CisgICAgICAgIG9yaWdp
bmFsVVJMID0gbV9mcmFtZS5kb2N1bWVudCgpLT5maXJzdFBhcnR5Rm9yQ29va2llcygpOwogICAg
ICAgICAvLyBJZiB0aGVyZSBpcyBubyBtYWluIGRvY3VtZW50IFVSTCwgaXQgbWVhbnMgdGhhdCB0
aGlzIGRvY3VtZW50IGlzIG5ld2x5IG9wZW5lZCBhbmQganVzdCBmb3IgZG93bmxvYWQgcHVycG9z
ZS4KICAgICAgICAgLy8gSW4gdGhpcyBjYXNlLCB3ZSBuZWVkIHRvIHNldCB0aGUgb3JpZ2luYWxV
UkwgdG8gdGhpcyBkb2N1bWVudCdzIG9wZW5lcidzIG1haW4gZG9jdW1lbnQgVVJMLgotICAgICAg
ICBpZiAob3JpZ2luYWxVUkwuaXNFbXB0eSgpICYmIG9wZW5lcigpICYmIG9wZW5lcigpLT5kb2N1
bWVudCgpKSB7CisgICAgICAgIGlmIChvcmlnaW5hbFVSTC5pc0VtcHR5KCkgJiYgb3BlbmVyKCkg
JiYgb3BlbmVyKCktPmRvY3VtZW50KCkpCiAgICAgICAgICAgICBvcmlnaW5hbFVSTCA9IG9wZW5l
cigpLT5kb2N1bWVudCgpLT5maXJzdFBhcnR5Rm9yQ29va2llcygpOwotICAgICAgICAgICAgaW5p
dGlhdG9yID0gb3BlbmVyKCktPmRvY3VtZW50KCk7Ci0gICAgICAgIH0KICAgICB9CiAgICAgLy8g
SWYgdGhlIG9yaWdpbmFsVVJMIGlzIHRoZSBzYW1lIGFzIHRoZSByZXF1ZXN0ZWQgVVJMLCB3ZSBh
cmUgcHJvY2Vzc2luZyBhIGRvd25sb2FkCiAgICAgLy8gaW5pdGlhdGVkIGRpcmVjdGx5IHdpdGhv
dXQgYSBwYWdlIGFuZCBkbyBub3QgbmVlZCB0byBzcGVjaWZ5IHRoZSBvcmlnaW5hbFVSTC4KQEAg
LTI0NjUsNyArMjQ1Myw2IEBAIHZvaWQgRnJhbWVMb2FkZXI6OnNldE9yaWdpbmFsVVJMRm9yRG93
bmxvYWRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKICAgICAgICAgcmVxdWVzdC5z
ZXRGaXJzdFBhcnR5Rm9yQ29va2llcyhVUkwoKSk7CiAgICAgZWxzZQogICAgICAgICByZXF1ZXN0
LnNldEZpcnN0UGFydHlGb3JDb29raWVzKG9yaWdpbmFsVVJMKTsKLSAgICBhZGRTYW1lU2l0ZUlu
Zm9Ub1JlcXVlc3RJZk5lZWRlZChyZXF1ZXN0LCBpbml0aWF0b3IpOwogfQogCiB2b2lkIEZyYW1l
TG9hZGVyOjpkaWRSZWFjaExheW91dE1pbGVzdG9uZShMYXlvdXRNaWxlc3RvbmVzIG1pbGVzdG9u
ZXMpCkBAIC0yNjk2LDIwICsyNjgzLDYgQEAgdm9pZCBGcmFtZUxvYWRlcjo6YWRkRXh0cmFGaWVs
ZHNUb1JlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBGcmFtZUxvYWRUeXAKICAgICAg
ICAgICAgIHJlcXVlc3Quc2V0Rmlyc3RQYXJ0eUZvckNvb2tpZXMoZG9jdW1lbnQtPmZpcnN0UGFy
dHlGb3JDb29raWVzKCkpOwogICAgIH0KIAotICAgIGlmIChyZXF1ZXN0LmlzU2FtZVNpdGVVbnNw
ZWNpZmllZCgpKSB7Ci0gICAgICAgIGF1dG8qIGluaXRpYXRvciA9IG1fZnJhbWUuZG9jdW1lbnQo
KTsKLSAgICAgICAgaWYgKGlzTWFpblJlc291cmNlKSB7Ci0gICAgICAgICAgICBhdXRvKiBvd25l
ckZyYW1lID0gbV9mcmFtZS50cmVlKCkucGFyZW50KCk7Ci0gICAgICAgICAgICBpZiAoIW93bmVy
RnJhbWUpCi0gICAgICAgICAgICAgICAgb3duZXJGcmFtZSA9IG1fb3BlbmVyOwotICAgICAgICAg
ICAgaWYgKG93bmVyRnJhbWUpCi0gICAgICAgICAgICAgICAgaW5pdGlhdG9yID0gb3duZXJGcmFt
ZS0+ZG9jdW1lbnQoKTsKLSAgICAgICAgICAgIEFTU0VSVChvd25lckZyYW1lIHx8IG1fZnJhbWUu
aXNNYWluRnJhbWUoKSk7Ci0gICAgICAgIH0KLSAgICAgICAgYWRkU2FtZVNpdGVJbmZvVG9SZXF1
ZXN0SWZOZWVkZWQocmVxdWVzdCwgaW5pdGlhdG9yKTsKLSAgICAgICAgcmVxdWVzdC5zZXRJc1Rv
cFNpdGUoaXNNYWluUmVzb3VyY2UgJiYgbV9mcmFtZS5pc01haW5GcmFtZSgpKTsKLSAgICB9Ci0K
ICAgICBQYWdlKiBwYWdlID0gZnJhbWUoKS5wYWdlKCk7CiAgICAgYm9vbCBoYXNTcGVjaWZpY0Nh
Y2hlUG9saWN5ID0gcmVxdWVzdC5jYWNoZVBvbGljeSgpICE9IFVzZVByb3RvY29sQ2FjaGVQb2xp
Y3k7CiAKQEAgLTI3NzcsMjQgKzI3NTAsNiBAQCB2b2lkIEZyYW1lTG9hZGVyOjphZGRIVFRQT3Jp
Z2luSWZOZWVkZWQoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmCiAgICAg
cmVxdWVzdC5zZXRIVFRQT3JpZ2luKG9yaWdpbik7CiB9CiAKLS8vIEltcGxlbWVudHMgdGhlICIn
U2FtZS1zaXRlJyBhbmQgJ2Nyb3NzLXNpdGUnIFJlcXVlc3RzIiBhbGdvcml0aG0gZnJvbSA8aHR0
cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LWlldGYtaHR0cGJpcy1jb29raWUtc2FtZS1z
aXRlLTAwI3NlY3Rpb24tMi4xPi4KLS8vIFRoZSBhbGdvcml0aG0gaXMgYW1tZW5kZWQgdG8gdHJl
YXQgVVJMcyB0aGF0IGluaGVyaXQgdGhlaXIgc2VjdXJpdHkgb3JpZ2luIGZyb20gdGhlaXIgb3du
ZXIgKGUuZy4gYWJvdXQ6YmxhbmspCi0vLyBhcyBzYW1lLXNpdGUuIFRoaXMgbWF0Y2hlcyB0aGUg
YmVoYXZpb3Igb2YgQ2hyb21lIGFuZCBGaXJlZm94Lgotdm9pZCBGcmFtZUxvYWRlcjo6YWRkU2Ft
ZVNpdGVJbmZvVG9SZXF1ZXN0SWZOZWVkZWQoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25z
dCBEb2N1bWVudCogaW5pdGlhdG9yKQotewotICAgIGlmICghcmVxdWVzdC5pc1NhbWVTaXRlVW5z
cGVjaWZpZWQoKSkKLSAgICAgICAgcmV0dXJuOwotICAgIGlmICghaW5pdGlhdG9yKSB7Ci0gICAg
ICAgIHJlcXVlc3Quc2V0SXNTYW1lU2l0ZSh0cnVlKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
LSAgICBpZiAoU2VjdXJpdHlQb2xpY3k6OnNob3VsZEluaGVyaXRTZWN1cml0eU9yaWdpbkZyb21P
d25lcihyZXF1ZXN0LnVybCgpKSkgewotICAgICAgICByZXF1ZXN0LnNldElzU2FtZVNpdGUodHJ1
ZSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgcmVxdWVzdC5zZXRJc1NhbWVTaXRlKHJl
Z2lzdHJhYmxlRG9tYWluc0FyZUVxdWFsKGluaXRpYXRvci0+Zmlyc3RQYXJ0eUZvclNhbWVTaXRl
Q29va2llcygpLCByZXF1ZXN0LnVybCgpKSk7Ci19Ci0KIHZvaWQgRnJhbWVMb2FkZXI6OmFkZEhU
VFBVcGdyYWRlSW5zZWN1cmVSZXF1ZXN0c0lmTmVlZGVkKFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCkKIHsKICAgICBpZiAocmVxdWVzdC51cmwoKS5wcm90b2NvbElzKCJodHRwcyIpKSB7CkBAIC0z
ODUwLDcgKzM4MDUsNiBAQCBSZWZQdHI8RnJhbWU+IGNyZWF0ZVdpbmRvdyhGcmFtZSYgb3BlbmVy
RnJhbWUsIEZyYW1lJiBsb29rdXBGcmFtZSwgRnJhbWVMb2FkUmVxdQogICAgICAgICByZXF1ZXN0
LnJlc291cmNlUmVxdWVzdCgpLnNldEhUVFBSZWZlcnJlcihyZWZlcnJlcik7CiAgICAgRnJhbWVM
b2FkZXI6OmFkZEhUVFBPcmlnaW5JZk5lZWRlZChyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCBv
cGVuZXJGcmFtZS5sb2FkZXIoKS5vdXRnb2luZ09yaWdpbigpKTsKICAgICBGcmFtZUxvYWRlcjo6
YWRkSFRUUFVwZ3JhZGVJbnNlY3VyZVJlcXVlc3RzSWZOZWVkZWQocmVxdWVzdC5yZXNvdXJjZVJl
cXVlc3QoKSk7Ci0gICAgRnJhbWVMb2FkZXI6OmFkZFNhbWVTaXRlSW5mb1RvUmVxdWVzdElmTmVl
ZGVkKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCksIG9wZW5lckZyYW1lLmRvY3VtZW50KCkpOwog
CiAgICAgUGFnZSogb2xkUGFnZSA9IG9wZW5lckZyYW1lLnBhZ2UoKTsKICAgICBpZiAoIW9sZFBh
Z2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCmluZGV4IGM3Y2Q0Y2FkMTg5ZmQ4ODU2
M2NlZDVmNTRmNjk0ODkyMGE1NWZmN2QuLjUzZmFhNDkzZGVjNTgxYmNkMWQxNzQ3NDQ2ZmZjY2Fk
YTk0MGM1YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCkBAIC0yMTQsNyArMjE0
LDYgQEAgcHVibGljOgogICAgIAogICAgIHN0YXRpYyB2b2lkIGFkZEhUVFBPcmlnaW5JZk5lZWRl
ZChSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIG9yaWdpbik7CiAgICAgc3RhdGljIHZv
aWQgYWRkSFRUUFVwZ3JhZGVJbnNlY3VyZVJlcXVlc3RzSWZOZWVkZWQoUmVzb3VyY2VSZXF1ZXN0
Jik7Ci0gICAgc3RhdGljIHZvaWQgYWRkU2FtZVNpdGVJbmZvVG9SZXF1ZXN0SWZOZWVkZWQoUmVz
b3VyY2VSZXF1ZXN0JiwgY29uc3QgRG9jdW1lbnQqIGluaXRpYXRvciA9IG51bGxwdHIpOwogCiAg
ICAgRnJhbWVMb2FkZXJDbGllbnQmIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50OyB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDIzMGQ2Zjlj
ZTljZWI3MTE0YzM1ODk4Y2NmMjkyMWM5MmNmYzExYjUuLjgwNzgwOWI2NjY2ZGMyNWY2MjA1ZjQ3
MzdiYzI4M2Y1ODk4MDQ5MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNv
dXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVy
LmNwcApAQCAtMTM2LDE3ICsxMzYsMTYgQEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6aW5pdChSZXNv
dXJjZVJlcXVlc3QmJiBjbGllbnRSZXF1ZXN0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2kKICAgICAg
ICAgcmVsZWFzZVJlc291cmNlcygpOwogICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIo
ZmFsc2UpOwogICAgIH0KLQorICAgIAorICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yNjM5MQogICAgIC8vIFRoZSB2YXJpb3VzIHBsdWctaW4gaW1wbGVtZW50
YXRpb25zIGNhbGwgZGlyZWN0bHkgdG8gUmVzb3VyY2VMb2FkZXI6OmxvYWQoKSBpbnN0ZWFkIG9m
IHBpcGluZyByZXF1ZXN0cwogICAgIC8vIHRocm91Z2ggRnJhbWVMb2FkZXIuIEFzIGEgcmVzdWx0
LCB0aGV5IG1pc3MgdGhlIEZyYW1lTG9hZGVyOjphZGRFeHRyYUZpZWxkc1RvUmVxdWVzdCgpIHN0
ZXAgd2hpY2ggc2V0cwotICAgIC8vIHVwIHRoZSAxc3QgcGFydHkgZm9yIGNvb2tpZXMgVVJMIGFu
ZCBTYW1lLVNpdGUgaW5mby4gVW50aWwgcGx1Zy1pbiBpbXBsZW1lbnRhdGlvbnMgY2FuIGJlIHJl
aWduZWQgaW4KLSAgICAvLyB0byBwaXBlIHRocm91Z2ggdGhhdCBtZXRob2QsIHdlIG5lZWQgdG8g
bWFrZSBzdXJlIHRoZXJlIGlzIGFsd2F5cyBib3RoIGEgMXN0IHBhcnR5IGZvciBjb29raWVzIHNl
dCBhbmQKLSAgICAvLyBTYW1lLVNpdGUgaW5mby4gU2VlIDxodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjYzOTE+LgorICAgIC8vIHVwIHRoZSAxc3QgcGFydHkgZm9yIGNv
b2tpZXMgVVJMLiBVbnRpbCBwbHVnLWluIGltcGxlbWVudGF0aW9ucyBjYW4gYmUgcmVpZ25lZCBp
biB0byBwaXBlIHRocm91Z2ggdGhhdAorICAgIC8vIG1ldGhvZCwgd2UgbmVlZCB0byBtYWtlIHN1
cmUgdGhlcmUgaXMgYWx3YXlzIGEgMXN0IHBhcnR5IGZvciBjb29raWVzIHNldC4KICAgICBpZiAo
Y2xpZW50UmVxdWVzdC5maXJzdFBhcnR5Rm9yQ29va2llcygpLmlzTnVsbCgpKSB7CiAgICAgICAg
IGlmIChEb2N1bWVudCogZG9jdW1lbnQgPSBtX2ZyYW1lLT5kb2N1bWVudCgpKQogICAgICAgICAg
ICAgY2xpZW50UmVxdWVzdC5zZXRGaXJzdFBhcnR5Rm9yQ29va2llcyhkb2N1bWVudC0+Zmlyc3RQ
YXJ0eUZvckNvb2tpZXMoKSk7CiAgICAgfQotICAgIEZyYW1lTG9hZGVyOjphZGRTYW1lU2l0ZUlu
Zm9Ub1JlcXVlc3RJZk5lZWRlZChjbGllbnRSZXF1ZXN0LCBtX2ZyYW1lLT5kb2N1bWVudCgpKTsK
IAogICAgIHdpbGxTZW5kUmVxdWVzdEludGVybmFsKFdURk1vdmUoY2xpZW50UmVxdWVzdCksIFJl
c291cmNlUmVzcG9uc2UoKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwg
Y29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oUmVzb3VyY2VS
ZXF1ZXN0JiYgcmVxdWVzdCkgbXV0YWJsZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApp
bmRleCBjNzA5YTJkODZkY2M2NDA2MDA2M2MwMDRhOTczYjBkOWVkODcwM2Q2Li5iMDIzYTRlMmVm
Mjg0MzAzN2JlNWQwOGJmMmE0ZmUzODMxZDVmZDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cu
Y3BwCkBAIC0yMjkwLDcgKzIyOTAsNiBAQCBSZWZQdHI8RnJhbWU+IERPTVdpbmRvdzo6Y3JlYXRl
V2luZG93KGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBBdG9taWNTdHJpbgogCiAgICAg
aWYgKGNyZWF0ZWQpIHsKICAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlc291cmNlUmVxdWVzdCB7
IGNvbXBsZXRlZFVSTCwgcmVmZXJyZXIsIFVzZVByb3RvY29sQ2FjaGVQb2xpY3kgfTsKLSAgICAg
ICAgRnJhbWVMb2FkZXI6OmFkZFNhbWVTaXRlSW5mb1RvUmVxdWVzdElmTmVlZGVkKHJlc291cmNl
UmVxdWVzdCwgb3BlbmVyRnJhbWUuZG9jdW1lbnQoKSk7CiAgICAgICAgIEZyYW1lTG9hZFJlcXVl
c3QgZnJhbWVMb2FkUmVxdWVzdCB7ICphY3RpdmVXaW5kb3cuZG9jdW1lbnQoKSwgYWN0aXZlV2lu
ZG93LmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIHJlc291cmNlUmVxdWVzdCwgQVNDSUlM
aXRlcmFsKCJfc2VsZiIpLCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5v
LCBNYXliZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5l
d0ZyYW1lT3BlbmVyUG9saWN5OjpBbGxvdywgYWN0aXZlRG9jdW1lbnQtPnNob3VsZE9wZW5FeHRl
cm5hbFVSTHNQb2xpY3lUb1Byb3BhZ2F0ZSgpLCBpbml0aWF0ZWRCeU1haW5GcmFtZSB9OwogICAg
ICAgICBpZiAob3BlbmVyRnJhbWUuZG9jdW1lbnQoKSAmJiAhcHJvdG9jb2xIb3N0QW5kUG9ydEFy
ZUVxdWFsKG9wZW5lckZyYW1lLmRvY3VtZW50KCktPnVybCgpLCBmcmFtZUxvYWRSZXF1ZXN0LnJl
c291cmNlUmVxdWVzdCgpLnVybCgpKSkKICAgICAgICAgICAgIGZyYW1lTG9hZFJlcXVlc3Quc2V0
SXNDcm9zc09yaWdpbldpbmRvd09wZW5OYXZpZ2F0aW9uKHRydWUpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eVBvbGljeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1NlY3VyaXR5UG9saWN5LmNwcAppbmRleCBmZTYxMjgzOTc2MzBhYzgxYmVkYzgzZTcwZjA1ODJh
YjRlZTVlMjk1Li4wOTFmZGI0MjkxZTE3NzJjOThlY2ZkOGVmYTA4ZGNhZWI2MDE4NjIzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5UG9saWN5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5UG9saWN5LmNwcApAQCAtMTM2LDIwICsxMzYsNiBAQCBT
dHJpbmcgU2VjdXJpdHlQb2xpY3k6OmdlbmVyYXRlUmVmZXJyZXJIZWFkZXIoUmVmZXJyZXJQb2xp
Y3kgcmVmZXJyZXJQb2xpY3ksIGNvbgogICAgIHJldHVybiBzaG91bGRIaWRlUmVmZXJyZXIodXJs
LCByZWZlcnJlcikgPyBTdHJpbmcoKSA6IHJlZmVycmVyOwogfQogCi1ib29sIFNlY3VyaXR5UG9s
aWN5OjpzaG91bGRJbmhlcml0U2VjdXJpdHlPcmlnaW5Gcm9tT3duZXIoY29uc3QgVVJMJiB1cmwp
Ci17Ci0gICAgLy8gUGFyYXBocmFzZWQgZnJvbSA8aHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9y
Zy9tdWx0aXBhZ2UvYnJvd3NlcnMuaHRtbCNvcmlnaW4+ICg4IEp1bHkgMjAxNikKLSAgICAvLwot
ICAgIC8vIElmIGEgRG9jdW1lbnQgaGFzIHRoZSBhZGRyZXNzICJhYm91dDpibGFuayIKLSAgICAv
LyAgICAgIFRoZSBvcmlnaW4gb2YgdGhlIGRvY3VtZW50IGlzIHRoZSBvcmlnaW4gaXQgd2FzIGFz
c2lnbmVkIHdoZW4gaXRzIGJyb3dzaW5nIGNvbnRleHQgd2FzIGNyZWF0ZWQuCi0gICAgLy8gSWYg
YSBEb2N1bWVudCBoYXMgdGhlIGFkZHJlc3MgImFib3V0OnNyY2RvYyIKLSAgICAvLyAgICAgIFRo
ZSBvcmlnaW4gb2YgdGhlIGRvY3VtZW50IGlzIHRoZSBvcmlnaW4gb2YgaXRzIHBhcmVudCBkb2N1
bWVudC4KLSAgICAvLwotICAgIC8vIE5vdGU6IFdlIGdlbmVyYWxpemUgdGhpcyB0byBpbnZhbGlk
IFVSTHMgYmVjYXVzZSB3ZSB0cmVhdCBzdWNoIFVSTHMgYXMgYWJvdXQ6YmxhbmsuCi0gICAgLy8K
LSAgICByZXR1cm4gdXJsLmlzRW1wdHkoKSB8fCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKHVybC5z
dHJpbmcoKSwgYmxhbmtVUkwoKSkgfHwgZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UodXJs
LnN0cmluZygpLCAiYWJvdXQ6c3JjZG9jIik7Ci19Ci0KIHZvaWQgU2VjdXJpdHlQb2xpY3k6OnNl
dExvY2FsTG9hZFBvbGljeShMb2NhbExvYWRQb2xpY3kgcG9saWN5KQogewogICAgIGxvY2FsTG9h
ZFBvbGljeSA9IHBvbGljeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJp
dHlQb2xpY3kuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlQb2xpY3kuaAppbmRleCBj
ZDM3Y2EzYWQyZGZkYmQ3ZTY3MjM1MWZhNTQzZWVmNDllODJiNGY0Li5jZDE5MTZjZThkODA2NTJj
ZDM1MTcxNWRiZmExZWMxOGNhY2I4NzlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1NlY3VyaXR5UG9saWN5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eVBvbGlj
eS5oCkBAIC01MSw4ICs1MSw2IEBAIHB1YmxpYzoKICAgICAvLyByZWZlcnJlciBoZWFkZXIgc2hv
dWxkIGJlIG9taXR0ZWQuCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFN0cmluZyBnZW5lcmF0
ZVJlZmVycmVySGVhZGVyKFJlZmVycmVyUG9saWN5LCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcm
IHJlZmVycmVyKTsKIAotICAgIHN0YXRpYyBib29sIHNob3VsZEluaGVyaXRTZWN1cml0eU9yaWdp
bkZyb21Pd25lcihjb25zdCBVUkwmKTsKLQogICAgIGVudW0gTG9jYWxMb2FkUG9saWN5IHsKICAg
ICAgICAgQWxsb3dMb2NhbExvYWRzRm9yQWxsLCAvLyBObyByZXN0cmljdGlvbiBvbiBsb2NhbCBs
b2Fkcy4KICAgICAgICAgQWxsb3dMb2NhbExvYWRzRm9yTG9jYWxBbmRTdWJzdGl0dXRlRGF0YSwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nvb2tpZXNTdHJhdGVneS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29va2llc1N0cmF0ZWd5LmgKaW5kZXggYjQzOTc4Njg3
ODEwOTVkMGMwOWE5OTZkMjQwNGEyZjRlOWQ5OTlkYi4uM2YzZmEzMDVkODM2ZTUxMjg2M2I5MTQ4
MjNkODkxYTU3OThlZWQ5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29v
a2llc1N0cmF0ZWd5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29va2llc1N0cmF0
ZWd5LmgKQEAgLTM2LDE4ICszNiwxNyBAQCBjbGFzcyBOZXR3b3JrU3RvcmFnZVNlc3Npb247CiBj
bGFzcyBVUkw7CiAKIHN0cnVjdCBDb29raWU7Ci1zdHJ1Y3QgU2FtZVNpdGVJbmZvOwogCiBlbnVt
IGNsYXNzIEluY2x1ZGVTZWN1cmVDb29raWVzIHsgTm8sIFllcyB9OwogCiBjbGFzcyBDb29raWVz
U3RyYXRlZ3kgewogcHVibGljOgotICAgIHZpcnR1YWwgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4g
Y29va2llc0ZvckRPTShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBVUkwmIGZp
cnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIHN0ZDo6b3B0aW9uYWw8
dWludDY0X3Q+IGZyYW1lSUQsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCwgSW5jbHVk
ZVNlY3VyZUNvb2tpZXMpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29va2llc0Zyb21ET00o
Y29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25z
dCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFt
ZUlELCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQsIGNvbnN0IFN0cmluZyYgY29va2ll
U3RyaW5nKSA9IDA7CisgICAgdmlydHVhbCBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVz
Rm9yRE9NKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0
eSwgY29uc3QgVVJMJiwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgc3RkOjpvcHRp
b25hbDx1aW50NjRfdD4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcykgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBzZXRDb29raWVzRnJvbURPTShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24m
LCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFVSTCYsIHN0ZDo6b3B0aW9uYWw8dWludDY0
X3Q+IGZyYW1lSUQsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCwgY29uc3QgU3RyaW5n
JiBjb29raWVTdHJpbmcpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgY29va2llc0VuYWJsZWQoY29u
c3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJikgPSAwOwotICAgIHZpcnR1YWwgc3RkOjpwYWlyPFN0
cmluZywgYm9vbD4gY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgTmV0d29ya1N0
b3JhZ2VTZXNzaW9uJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8m
LCBjb25zdCBVUkwmLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBzdGQ6Om9wdGlv
bmFsPHVpbnQ2NF90PiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzKSA9IDA7Ci0gICAgdmly
dHVhbCBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1
ZShQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUlu
Zm8mLCBjb25zdCBVUkwmLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBzdGQ6Om9w
dGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzKSA9IDA7Ci0gICAg
dmlydHVhbCBib29sIGdldFJhd0Nvb2tpZXMoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwg
Y29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBz
dGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBw
YWdlSUQsIFZlY3RvcjxDb29raWU+JikgPSAwOworICAgIHZpcnR1YWwgc3RkOjpwYWlyPFN0cmlu
ZywgYm9vbD4gY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmLCBzdGQ6Om9wdGlv
bmFsPHVpbnQ2NF90PiBmcmFtZUlELCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQsIElu
Y2x1ZGVTZWN1cmVDb29raWVzKSA9IDA7CisgICAgdmlydHVhbCBzdGQ6OnBhaXI8U3RyaW5nLCBi
b29sPiBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShQQUw6OlNlc3Npb25JRCwgY29uc3Qg
VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFt
ZUlELCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVz
KSA9IDA7CisgICAgdmlydHVhbCBib29sIGdldFJhd0Nvb2tpZXMoY29uc3QgTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmLCBzdGQ6Om9wdGlv
bmFsPHVpbnQ2NF90PiBmcmFtZUlELCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQsIFZl
Y3RvcjxDb29raWU+JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVDb29raWUoY29uc3Qg
TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBjb29raWVO
YW1lKSA9IDA7CiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvQ2FjaGVWYWxpZGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvQ2FjaGVWYWxpZGF0aW9uLmNwcAppbmRleCBkOTE0NzZjZTYyZGY2YjFiNzM2NTVk
NDgwM2VlMzU1ZGYxMzVlODQ2Li4xMjEzYzMxOTRkNDI0NTZkMDkzYTliOTY4Y2Y5OTA4N2Y4ZTM1
NjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0NhY2hlVmFs
aWRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9DYWNoZVZh
bGlkYXRpb24uY3BwCkBAIC0zMyw3ICszMyw2IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJhdGVn
aWVzLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VS
ZXNwb25zZS5oIgotI2luY2x1ZGUgIlNhbWVTaXRlSW5mby5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1N0cmluZ1ZpZXcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzM4LDkgKzMzNyw5IEBA
IHN0YXRpYyBTdHJpbmcgaGVhZGVyVmFsdWVGb3JWYXJ5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgY29uc3QgU3RyaW5nJiBoCiAgICAgICAgIGF1dG8qIGNvb2tpZVN0cmF0ZWd5ID0g
cGxhdGZvcm1TdHJhdGVnaWVzKCkgPyBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+Y29va2llc1N0cmF0
ZWd5KCkgOiBudWxscHRyOwogICAgICAgICBpZiAoIWNvb2tpZVN0cmF0ZWd5KSB7CiAgICAgICAg
ICAgICBBU1NFUlQoc2Vzc2lvbklEID09IFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklE
KCkpOwotICAgICAgICAgICAgcmV0dXJuIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKE5l
dHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCksIHJlcXVlc3QuZmly
c3RQYXJ0eUZvckNvb2tpZXMoKSwgU2FtZVNpdGVJbmZvOjpjcmVhdGUocmVxdWVzdCksIHJlcXVl
c3QudXJsKCksIHN0ZDo6bnVsbG9wdCwgc3RkOjpudWxsb3B0LCBpbmNsdWRlU2VjdXJlQ29va2ll
cykuZmlyc3Q7CisgICAgICAgICAgICByZXR1cm4gY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFs
dWUoTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWZhdWx0U3RvcmFnZVNlc3Npb24oKSwgcmVxdWVz
dC5maXJzdFBhcnR5Rm9yQ29va2llcygpLCByZXF1ZXN0LnVybCgpLCBzdGQ6Om51bGxvcHQsIHN0
ZDo6bnVsbG9wdCwgaW5jbHVkZVNlY3VyZUNvb2tpZXMpLmZpcnN0OwogICAgICAgICB9Ci0gICAg
ICAgIHJldHVybiBjb29raWVTdHJhdGVneS0+Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUo
c2Vzc2lvbklELCByZXF1ZXN0LmZpcnN0UGFydHlGb3JDb29raWVzKCksIFNhbWVTaXRlSW5mbzo6
Y3JlYXRlKHJlcXVlc3QpLCByZXF1ZXN0LnVybCgpLCBzdGQ6Om51bGxvcHQsIHN0ZDo6bnVsbG9w
dCwgaW5jbHVkZVNlY3VyZUNvb2tpZXMpLmZpcnN0OworICAgICAgICByZXR1cm4gY29va2llU3Ry
YXRlZ3ktPmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKHNlc3Npb25JRCwgcmVxdWVzdC5m
aXJzdFBhcnR5Rm9yQ29va2llcygpLCByZXF1ZXN0LnVybCgpLCBzdGQ6Om51bGxvcHQsIHN0ZDo6
bnVsbG9wdCwgaW5jbHVkZVNlY3VyZUNvb2tpZXMpLmZpcnN0OwogICAgIH0KICAgICByZXR1cm4g
cmVxdWVzdC5odHRwSGVhZGVyRmllbGQoaGVhZGVyTmFtZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Nvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Nvb2tpZVJlcXVlc3RIZWFkZXJG
aWVsZFByb3h5LmgKaW5kZXggMjQ5YTAwMzYxYmVmYWMzYzhhYjMzOWFkODc3ZTg3MWY0YmZlNTkz
Mi4uYTQ1OTNkZTExOWU1Nzc3YTI0OWM2NjExNWU0ZWNhN2UyMDI4ODE1MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Db29raWVSZXF1ZXN0SGVhZGVyRmllbGRQ
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ29va2llUmVxdWVz
dEhlYWRlckZpZWxkUHJveHkuaApAQCAtMjYsNyArMjYsNiBAQAogI3ByYWdtYSBvbmNlCiAKICNp
bmNsdWRlICJDb29raWVzU3RyYXRlZ3kuaCIKLSNpbmNsdWRlICJTYW1lU2l0ZUluZm8uaCIKICNp
bmNsdWRlICJVUkwuaCIKICNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CiAKQEAgLTM1LDcgKzM0
LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogc3RydWN0IENvb2tpZVJlcXVlc3RIZWFkZXJGaWVs
ZFByb3h5IHsKICAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQ7CiAgICAgVVJMIGZpcnN0UGFy
dHk7Ci0gICAgU2FtZVNpdGVJbmZvIHNhbWVTaXRlSW5mbzsKICAgICBVUkwgdXJsOwogICAgIHN0
ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQ7CiAgICAgc3RkOjpvcHRpb25hbDx1aW50NjRf
dD4gcGFnZUlEOwpAQCAtNTAsNyArNDgsNiBAQCB2b2lkIENvb2tpZVJlcXVlc3RIZWFkZXJGaWVs
ZFByb3h5OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKICAgICBlbmNvZGVyIDw8
IHNlc3Npb25JRDsKICAgICBlbmNvZGVyIDw8IGZpcnN0UGFydHk7Ci0gICAgZW5jb2RlciA8PCBz
YW1lU2l0ZUluZm87CiAgICAgZW5jb2RlciA8PCB1cmw7CiAgICAgZW5jb2RlciA8PCBmcmFtZUlE
OwogICAgIGVuY29kZXIgPDwgcGFnZUlEOwpAQCAtNjUsOCArNjIsNiBAQCBzdGQ6Om9wdGlvbmFs
PENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5PiBDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQ
cm94eTo6ZGVjbwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUocmVzdWx0LmZpcnN0UGFydHkpKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnNhbWVTaXRlSW5mbykpCi0gICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQudXJs
KSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHJlc3VsdC5mcmFtZUlEKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvUGxhdGZvcm1Db29raWVKYXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUGxhdGZvcm1Db29raWVKYXIuaAppbmRleCA3ODk0M2Q5Y2Y4MTgxZjYzODA0NjNlZTg3YmYx
OTMxNzQ0NzY1YzNjLi45NDQxYzJiMGRiZWYwNWMxODMyMTkzZWQzZjcyMzY0ZThhYmYyNzQ3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1BsYXRmb3JtQ29va2ll
SmFyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9QbGF0Zm9ybUNvb2tp
ZUphci5oCkBAIC0zNywxOCArMzcsMTcgQEAgY2xhc3MgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOwog
CiBzdHJ1Y3QgQ29va2llOwogc3RydWN0IENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5Owot
c3RydWN0IFNhbWVTaXRlSW5mbzsKIAogZW51bSBjbGFzcyBJbmNsdWRlU2VjdXJlQ29va2llczsK
IAogLy8gRklYTUU6IFRoZXNlIHNob3VsZCBwcm9iYWJseSBiZSBOZXR3b3JrU3RvcmFnZVNlc3Np
b24gbWVtYmVyIGZ1bmN0aW9ucy4KIAotV0VCQ09SRV9FWFBPUlQgc3RkOjpwYWlyPFN0cmluZywg
Ym9vbD4gY29va2llc0ZvckRPTShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBV
UkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIHN0ZDo6b3B0
aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCwg
SW5jbHVkZVNlY3VyZUNvb2tpZXMpOwotV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDb29raWVzRnJv
bURPTShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBVUkwmIGZpcnN0UGFydHks
IGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+
IGZyYW1lSUQsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCwgY29uc3QgU3RyaW5nJik7
CitXRUJDT1JFX0VYUE9SVCBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVzRm9yRE9NKGNv
bnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3Qg
VVJMJiwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgc3RkOjpvcHRpb25hbDx1aW50
NjRfdD4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyk7CitXRUJDT1JFX0VYUE9SVCB2b2lk
IHNldENvb2tpZXNGcm9tRE9NKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVS
TCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJ
RCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gcGFnZUlELCBjb25zdCBTdHJpbmcmKTsKIFdFQkNP
UkVfRVhQT1JUIGJvb2wgY29va2llc0VuYWJsZWQoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9u
Jik7Ci1XRUJDT1JFX0VYUE9SVCBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVSZXF1ZXN0
SGVhZGVyRmllbGRWYWx1ZShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBVUkwm
IGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIHN0ZDo6b3B0aW9u
YWw8dWludDY0X3Q+IGZyYW1lSUQsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCwgSW5j
bHVkZVNlY3VyZUNvb2tpZXMpOworV0VCQ09SRV9FWFBPUlQgc3RkOjpwYWlyPFN0cmluZywgYm9v
bD4gY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNz
aW9uJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmLCBzdGQ6Om9wdGlvbmFsPHVp
bnQ2NF90PiBmcmFtZUlELCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQsIEluY2x1ZGVT
ZWN1cmVDb29raWVzKTsKIFdFQkNPUkVfRVhQT1JUIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IGNv
b2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYs
IGNvbnN0IENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5Jik7Ci1XRUJDT1JFX0VYUE9SVCBi
b29sIGdldFJhd0Nvb2tpZXMoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgVVJM
JiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBzdGQ6Om9wdGlv
bmFsPHVpbnQ2NF90PiBmcmFtZUlELCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQsIFZl
Y3RvcjxDb29raWU+Jik7CitXRUJDT1JFX0VYUE9SVCBib29sIGdldFJhd0Nvb2tpZXMoY29uc3Qg
TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwm
LCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90
PiBwYWdlSUQsIFZlY3RvcjxDb29raWU+Jik7CiBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0ZUNv
b2tpZShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBVUkwmLCBjb25zdCBTdHJp
bmcmKTsKIFdFQkNPUkVfRVhQT1JUIHZvaWQgZ2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoY29uc3Qg
TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgSGFzaFNldDxTdHJpbmc+JiBob3N0bmFtZXMpOwogV0VC
Q09SRV9FWFBPUlQgdm9pZCBkZWxldGVDb29raWVzRm9ySG9zdG5hbWVzKGNvbnN0IE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBjb29raWVIb3N0TmFtZXMpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVl
c3RCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1
ZXN0QmFzZS5jcHAKaW5kZXggMmI2NTBjYmI0ZWVmMWVlZmM0YTRkOWJmMTY1ZTUyYmQ3MmMxZjZh
OS4uMmY2MGM2NWY5ZDBiMDEyN2VhOWZjZjI3YzE2MTA1OTBlMzFhNTY4NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2Uu
Y3BwCkBAIC02NiwxMSArNjYsNiBAQCB2b2lkIFJlc291cmNlUmVxdWVzdEJhc2U6OnNldEFzSXNv
bGF0ZWRDb3B5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgb3RoZXIpCiAgICAgc2V0SW5pdGlhdG9y
SWRlbnRpZmllcihvdGhlci5pbml0aWF0b3JJZGVudGlmaWVyKCkuaXNvbGF0ZWRDb3B5KCkpOwog
ICAgIHNldENhY2hlUGFydGl0aW9uKG90aGVyLmNhY2hlUGFydGl0aW9uKCkuaXNvbGF0ZWRDb3B5
KCkpOwogCi0gICAgaWYgKCFvdGhlci5pc1NhbWVTaXRlVW5zcGVjaWZpZWQoKSkgewotICAgICAg
ICBzZXRJc1NhbWVTaXRlKG90aGVyLmlzU2FtZVNpdGUoKSk7Ci0gICAgICAgIHNldElzVG9wU2l0
ZShvdGhlci5pc1RvcFNpdGUoKSk7Ci0gICAgfQotCiAgICAgdXBkYXRlUmVzb3VyY2VSZXF1ZXN0
KCk7CiAgICAgbV9odHRwSGVhZGVyRmllbGRzID0gb3RoZXIuaHR0cEhlYWRlckZpZWxkcygpLmlz
b2xhdGVkQ29weSgpOwogCkBAIC0yMjgsNDUgKzIyMyw2IEBAIHZvaWQgUmVzb3VyY2VSZXF1ZXN0
QmFzZTo6c2V0Rmlyc3RQYXJ0eUZvckNvb2tpZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5Rm9yQ29v
a2llCiAgICAgbV9wbGF0Zm9ybVJlcXVlc3RVcGRhdGVkID0gZmFsc2U7CiB9CiAKLWJvb2wgUmVz
b3VyY2VSZXF1ZXN0QmFzZTo6aXNTYW1lU2l0ZSgpIGNvbnN0Ci17Ci0gICAgdXBkYXRlUmVzb3Vy
Y2VSZXF1ZXN0KCk7Ci0KLSAgICByZXR1cm4gbV9zYW1lU2l0ZURpc3Bvc2l0aW9uID09IFNhbWVT
aXRlRGlzcG9zaXRpb246OlNhbWVTaXRlOwotfQotCi12b2lkIFJlc291cmNlUmVxdWVzdEJhc2U6
OnNldElzU2FtZVNpdGUoYm9vbCBpc1NhbWVTaXRlKQotewotICAgIHVwZGF0ZVJlc291cmNlUmVx
dWVzdCgpOwotCi0gICAgU2FtZVNpdGVEaXNwb3NpdGlvbiBuZXdEaXNwb3NpdGlvbiA9IGlzU2Ft
ZVNpdGUgPyBTYW1lU2l0ZURpc3Bvc2l0aW9uOjpTYW1lU2l0ZSA6IFNhbWVTaXRlRGlzcG9zaXRp
b246OkNyb3NzU2l0ZTsKLSAgICBpZiAobV9zYW1lU2l0ZURpc3Bvc2l0aW9uID09IG5ld0Rpc3Bv
c2l0aW9uKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX3NhbWVTaXRlRGlzcG9zaXRpb24gPSBu
ZXdEaXNwb3NpdGlvbjsKLQotICAgIG1fcGxhdGZvcm1SZXF1ZXN0VXBkYXRlZCA9IGZhbHNlOwot
fQotCi1ib29sIFJlc291cmNlUmVxdWVzdEJhc2U6OmlzVG9wU2l0ZSgpIGNvbnN0Ci17Ci0gICAg
dXBkYXRlUmVzb3VyY2VSZXF1ZXN0KCk7Ci0KLSAgICByZXR1cm4gbV9pc1RvcFNpdGU7Ci19Ci0K
LXZvaWQgUmVzb3VyY2VSZXF1ZXN0QmFzZTo6c2V0SXNUb3BTaXRlKGJvb2wgaXNUb3BTaXRlKQot
ewotICAgIHVwZGF0ZVJlc291cmNlUmVxdWVzdCgpOwotCi0gICAgaWYgKG1faXNUb3BTaXRlID09
IGlzVG9wU2l0ZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9pc1RvcFNpdGUgPSBpc1RvcFNp
dGU7Ci0KLSAgICBtX3BsYXRmb3JtUmVxdWVzdFVwZGF0ZWQgPSBmYWxzZTsKLX0KLQogY29uc3Qg
U3RyaW5nJiBSZXNvdXJjZVJlcXVlc3RCYXNlOjpodHRwTWV0aG9kKCkgY29uc3QKIHsKICAgICB1
cGRhdGVSZXNvdXJjZVJlcXVlc3QoKTsgCkBAIC01ODksMTIgKzU0NSw2IEBAIGJvb2wgZXF1YWxJ
Z25vcmluZ0hlYWRlckZpZWxkcyhjb25zdCBSZXNvdXJjZVJlcXVlc3RCYXNlJiBhLCBjb25zdCBS
ZXNvdXJjZVJlcXVlCiAgICAgCiAgICAgaWYgKGEuZmlyc3RQYXJ0eUZvckNvb2tpZXMoKSAhPSBi
LmZpcnN0UGFydHlGb3JDb29raWVzKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlm
IChhLmlzU2FtZVNpdGUoKSAhPSBiLmlzU2FtZVNpdGUoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotCi0gICAgaWYgKGEuaXNUb3BTaXRlKCkgIT0gYi5pc1RvcFNpdGUoKSkKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIAogICAgIGlmIChhLmh0dHBNZXRob2QoKSAhPSBiLmh0dHBNZXRob2Qo
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuaAppbmRleCA4ZjMyMThiNmUyODA4YjU4
NGM5OWZmZjdmYThlMjc3Mjg4MGEyMDBjLi41ZThhYWJjNTE5Y2MzZmY4ZWI0NzZlY2VlZWY5NWU0
NWFlZTMyNTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jl
c291cmNlUmVxdWVzdEJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L1Jlc291cmNlUmVxdWVzdEJhc2UuaApAQCAtNzcsMTggKzc3LDcgQEAgcHVibGljOgogICAgIAog
ICAgIFdFQkNPUkVfRVhQT1JUIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eUZvckNvb2tpZXMoKSBjb25z
dDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEZpcnN0UGFydHlGb3JDb29raWVzKGNvbnN0
IFVSTCYpOwotCi0gICAgLy8gU2FtZS1TaXRlIGNvb2tpZXM7IHNlZSA8aHR0cHM6Ly90b29scy5p
ZXRmLm9yZy9odG1sL2RyYWZ0LWlldGYtaHR0cGJpcy1jb29raWUtc2FtZS1zaXRlLTAwI3NlY3Rp
b24tMi4xPgotICAgIC8vIGFuZCA8aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LWll
dGYtaHR0cGJpcy1jb29raWUtc2FtZS1zaXRlLTAwI3NlY3Rpb24tNS4yPi4KLSAgICAvLyBGSVhN
RTogRm9yIHNvbWUgcmVhc29uIHRoZSBtYWluIHJlc291cmNlIHJlcXVlc3QgbWF5IGJlIHVwZGF0
ZWQgbW9yZSB0aGFuIG9uY2UuIFdlIHN0YXJ0IG9mZiBhcyBVbnNwZWNpZmllZAotICAgIC8vIHRv
IGRldGVjdCBpZiB3ZSBuZWVkIHRvIGNvbXB1dGUgdGhlIHNhbWUtc2l0ZSBhbmQgdG9wLXNpdGUg
c3RhdGUgb3Igbm90LiBTZWUgRklYTUUgaW4gRG9jdW1lbnRMb2FkZXI6OnN0YXJ0TG9hZGluZ01h
aW5SZXNvdXJjZSgpLgotICAgIGVudW0gY2xhc3MgU2FtZVNpdGVEaXNwb3NpdGlvbiB7IFVuc3Bl
Y2lmaWVkLCBTYW1lU2l0ZSwgQ3Jvc3NTaXRlIH07Ci0gICAgYm9vbCBpc1NhbWVTaXRlVW5zcGVj
aWZpZWQoKSBjb25zdCB7IHJldHVybiBtX3NhbWVTaXRlRGlzcG9zaXRpb24gPT0gU2FtZVNpdGVE
aXNwb3NpdGlvbjo6VW5zcGVjaWZpZWQ7IH0KLSAgICBXRUJDT1JFX0VYUE9SVCBib29sIGlzU2Ft
ZVNpdGUoKSBjb25zdDsgLy8gV2hldGhlciB0aGlzIHJlcXVlc3QncyByZWdpc3RyYWJsZSBkb21h
aW4gbWF0Y2hlcyB0aGUgcmVxdWVzdCdzIGluaXRpYXRvcidzICJzaXRlIGZvciBjb29raWVzIi4K
LSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldElzU2FtZVNpdGUoYm9vbCk7Ci0gICAgV0VCQ09S
RV9FWFBPUlQgYm9vbCBpc1RvcFNpdGUoKSBjb25zdDsgLy8gV2hldGhlciB0aGlzIHJlcXVlc3Qg
aXMgZm9yIGEgdG9wLWxldmVsIG5hdmlnYXRpb24uCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBz
ZXRJc1RvcFNpdGUoYm9vbCk7Ci0KKyAgICAKICAgICBXRUJDT1JFX0VYUE9SVCBjb25zdCBTdHJp
bmcmIGh0dHBNZXRob2QoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEhUVFBN
ZXRob2QoY29uc3QgU3RyaW5nJiBodHRwTWV0aG9kKTsKICAgICAKQEAgLTIyNCw4ICsyMTMsNiBA
QCBwcm90ZWN0ZWQ6CiAgICAgbXV0YWJsZSBib29sIG1fcmVzb3VyY2VSZXF1ZXN0Qm9keVVwZGF0
ZWQgeyBmYWxzZSB9OwogICAgIG11dGFibGUgYm9vbCBtX3BsYXRmb3JtUmVxdWVzdEJvZHlVcGRh
dGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1faGlkZGVuRnJvbUluc3BlY3RvciB7IGZhbHNlIH07
Ci0gICAgU2FtZVNpdGVEaXNwb3NpdGlvbiBtX3NhbWVTaXRlRGlzcG9zaXRpb24geyBTYW1lU2l0
ZURpc3Bvc2l0aW9uOjpVbnNwZWNpZmllZCB9OwotICAgIGJvb2wgbV9pc1RvcFNpdGUgeyBmYWxz
ZSB9OwogICAgIFJlc291cmNlTG9hZFByaW9yaXR5IG1fcHJpb3JpdHkgeyBSZXNvdXJjZUxvYWRQ
cmlvcml0eTo6TG93IH07CiAgICAgUmVxdWVzdGVyIG1fcmVxdWVzdGVyIHsgUmVxdWVzdGVyOjpV
bnNwZWNpZmllZCB9OwogICAgIFN0cmluZyBtX2luaXRpYXRvcklkZW50aWZpZXI7CkBAIC0yMzks
MTYgKzIyNiw2IEBAIHByaXZhdGU6CiAKIGJvb2wgZXF1YWxJZ25vcmluZ0hlYWRlckZpZWxkcyhj
b25zdCBSZXNvdXJjZVJlcXVlc3RCYXNlJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0QmFzZSYpOwog
Ci0vLyBGSVhNRTogRmluZCBhIGJldHRlciBwbGFjZSBmb3IgdGhlc2UgZnVuY3Rpb25zLgotaW5s
aW5lIGJvb2wgcmVnaXN0cmFibGVEb21haW5zQXJlRXF1YWwoY29uc3QgVVJMJiBhLCBjb25zdCBV
UkwmIGIpCi17Ci0gICAgcmV0dXJuIFJlc291cmNlUmVxdWVzdEJhc2U6OnBhcnRpdGlvbk5hbWUo
YS5ob3N0KCkpID09IFJlc291cmNlUmVxdWVzdEJhc2U6OnBhcnRpdGlvbk5hbWUoYi5ob3N0KCkp
OwotfQotaW5saW5lIGJvb2wgcmVnaXN0cmFibGVEb21haW5zQXJlRXF1YWwoY29uc3QgVVJMJiBh
LCBjb25zdCBTdHJpbmcmIHJlZ2lzdHJhYmxlRG9tYWluKQotewotICAgIHJldHVybiBSZXNvdXJj
ZVJlcXVlc3RCYXNlOjpwYXJ0aXRpb25OYW1lKGEuaG9zdCgpKSA9PSByZWdpc3RyYWJsZURvbWFp
bjsKLX0KLQogaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIGEs
IGNvbnN0IFJlc291cmNlUmVxdWVzdCYgYikgeyByZXR1cm4gUmVzb3VyY2VSZXF1ZXN0QmFzZTo6
ZXF1YWwoYSwgYik7IH0KIGlubGluZSBib29sIG9wZXJhdG9yIT0oUmVzb3VyY2VSZXF1ZXN0JiBh
LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIGIpIHsgcmV0dXJuICEoYSA9PSBiKTsgfQogCkBAIC0y
NjgsOCArMjQ1LDYgQEAgQUxXQVlTX0lOTElORSB2b2lkIFJlc291cmNlUmVxdWVzdEJhc2U6OmVu
Y29kZUJhc2UoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IG1fcmVzcG9u
c2VDb250ZW50RGlzcG9zaXRpb25FbmNvZGluZ0ZhbGxiYWNrQXJyYXk7CiAgICAgZW5jb2Rlci5l
bmNvZGVFbnVtKG1fY2FjaGVQb2xpY3kpOwogICAgIGVuY29kZXIgPDwgbV9hbGxvd0Nvb2tpZXM7
Ci0gICAgZW5jb2Rlci5lbmNvZGVFbnVtKG1fc2FtZVNpdGVEaXNwb3NpdGlvbik7Ci0gICAgZW5j
b2RlciA8PCBtX2lzVG9wU2l0ZTsKICAgICBlbmNvZGVyLmVuY29kZUVudW0obV9wcmlvcml0eSk7
CiAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKG1fcmVxdWVzdGVyKTsKIH0KQEAgLTMwNywxNiArMjgy
LDYgQEAgQUxXQVlTX0lOTElORSBib29sIFJlc291cmNlUmVxdWVzdEJhc2U6OmRlY29kZUJhc2Uo
RGVjb2RlciYgZGVjb2RlcikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIG1fYWxsb3dDb29r
aWVzID0gYWxsb3dDb29raWVzOwogCi0gICAgU2FtZVNpdGVEaXNwb3NpdGlvbiBzYW1lU2l0ZURp
c3Bvc2l0aW9uOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKHNhbWVTaXRlRGlzcG9zaXRp
b24pKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgbV9zYW1lU2l0ZURpc3Bvc2l0aW9uID0g
c2FtZVNpdGVEaXNwb3NpdGlvbjsKLQotICAgIGJvb2wgaXNUb3BTaXRlOwotICAgIGlmICghZGVj
b2Rlci5kZWNvZGUoaXNUb3BTaXRlKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIG1faXNU
b3BTaXRlID0gaXNUb3BTaXRlOwotCiAgICAgUmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3JpdHk7
CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0ocHJpb3JpdHkpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1NhbWVT
aXRlSW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1NhbWVTaXRlSW5m
by5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDllZGI1NmFiZDE5NjMzNTBjNWU4
YWUyY2Y2ZTU5YWJmNjg3YjQ4OWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9TYW1lU2l0ZUluZm8u
Y3BwCisrKyAvZGV2L251bGwKQEAgLTEsMzggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRl
ICJjb25maWcuaCIKLSNpbmNsdWRlICJTYW1lU2l0ZUluZm8uaCIKLQotI2luY2x1ZGUgIlJlc291
cmNlUmVxdWVzdC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVNhbWVTaXRlSW5mbyBTYW1l
U2l0ZUluZm86OmNyZWF0ZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAg
cmV0dXJuIHsgcmVxdWVzdC5pc1NhbWVTaXRlKCksIHJlcXVlc3QuaXNUb3BTaXRlKCkgfTsKLX0K
LQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9TYW1lU2l0ZUluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvU2FtZVNpdGVJbmZvLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZlYTc1
OWM3YjU4M2U0MWM0ZTkxNjQ0NGZiNTVmMGNlYzlhM2Q4ZjguLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9TYW1lU2l0ZUluZm8uaAorKysgL2Rldi9udWxsCkBAIC0xLDU5ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgot
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
LSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jcHJhZ21hIG9uY2UKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBSZXNvdXJj
ZVJlcXVlc3Q7Ci0KLXN0cnVjdCBTYW1lU2l0ZUluZm8gewotICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyBTYW1lU2l0ZUluZm8gY3JlYXRlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOwotCi0gICAg
Ym9vbCBpc1NhbWVTaXRlIHsgZmFsc2UgfTsKLSAgICBib29sIGlzVG9wU2l0ZSB7IGZhbHNlIH07
Ci0KLSAgICB0ZW1wbGF0ZSA8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNv
bnN0OwotICAgIHRlbXBsYXRlIDxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgYm9vbCBkZWNvZGUoRGVj
b2RlciYsIFNhbWVTaXRlSW5mbyYpOwotfTsKLQotdGVtcGxhdGUgPGNsYXNzIEVuY29kZXI+Ci12
b2lkIFNhbWVTaXRlSW5mbzo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Ci17Ci0gICAg
ZW5jb2RlciA8PCBpc1NhbWVTaXRlOwotICAgIGVuY29kZXIgPDwgaXNUb3BTaXRlOwotfQotCi10
ZW1wbGF0ZSA8Y2xhc3MgRGVjb2Rlcj4KLWJvb2wgU2FtZVNpdGVJbmZvOjpkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlciwgU2FtZVNpdGVJbmZvJiBpbmZvKQotewotICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUoaW5mby5pc1NhbWVTaXRlKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVj
b2Rlci5kZWNvZGUoaW5mby5pc1RvcFNpdGUpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
cmV0dXJuIHRydWU7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvQ29va2llSmFyQ0ZOZXQuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Db29raWVKYXJDRk5ldC5jcHAKaW5kZXgg
MDBiZjBiZDMxYTQ0ODdlZmY2Y2VjZTY2ZDVkYjNlMmY3YmRjNTNmZS4uYjkxYzc4YjlhZmVhNjUz
ZGUwY2M3OTM4ZDA0NWU0OTc1ZTEzODliZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jZi9Db29raWVKYXJDRk5ldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jZi9Db29raWVKYXJDRk5ldC5jcHAKQEAgLTE2OCw3ICsxNjgsNyBA
QCBzdGF0aWMgQ0ZBcnJheVJlZiBjcmVhdGVDb29raWVzKENGRGljdGlvbmFyeVJlZiBoZWFkZXJG
aWVsZHMsIENGVVJMUmVmIHVybCkKICAgICByZXR1cm4gcGFyc2VkQ29va2llczsKIH0KIAotdm9p
ZCBzZXRDb29raWVzRnJvbURPTShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24s
IGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiB1
cmwsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHN0ZDo6b3B0aW9uYWw8dWludDY0
X3Q+IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgc2V0Q29va2llc0Zyb21ET00o
Y29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFy
dHksIGNvbnN0IFVSTCYgdXJsLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBzdGQ6
Om9wdGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQsIGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7CiAgICAg
VU5VU0VEX1BBUkFNKGZyYW1lSUQpOwogICAgIFVOVVNFRF9QQVJBTShwYWdlSUQpOwpAQCAtMjA0
LDcgKzIwNCw3IEBAIHN0YXRpYyBib29sIGNvbnRhaW5zU2VjdXJlQ29va2llcyhDRkFycmF5UmVm
IGNvb2tpZXMpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1zdGQ6OnBhaXI8U3RyaW5nLCBib29s
PiBjb29raWVzRm9yRE9NKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29u
c3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmIHVybCwg
c3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4g
cGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykKK3N0ZDo6
cGFpcjxTdHJpbmcsIGJvb2w+IGNvb2tpZXNGb3JET00oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNz
aW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFVSTCYgdXJsLCBzdGQ6
Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBwYWdl
SUQsIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKQogewogICAgIFVO
VVNFRF9QQVJBTShmcmFtZUlEKTsKICAgICBVTlVTRURfUEFSQU0ocGFnZUlEKTsKQEAgLTIxOSw3
ICsyMTksNyBAQCBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVzRm9yRE9NKGNvbnN0IE5l
dHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29ucwogICAgIHJldHVybiB7IGNvb2tpZVN0
cmluZywgZGlkQWNjZXNzU2VjdXJlQ29va2llcyB9OwogfQogCi1zdGQ6OnBhaXI8U3RyaW5nLCBi
b29sPiBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBOZXR3b3JrU3RvcmFnZVNl
c3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZv
JiwgY29uc3QgVVJMJiB1cmwsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHN0ZDo6
b3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNl
Y3VyZUNvb2tpZXMpCitzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVSZXF1ZXN0SGVhZGVy
RmllbGRWYWx1ZShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVS
TCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiB1cmwsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZy
YW1lSUQsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tp
ZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGZyYW1lSUQpOwog
ICAgIFVOVVNFRF9QQVJBTShwYWdlSUQpOwpAQCAtMjM0LDcgKzIzNCw3IEBAIHN0ZDo6cGFpcjxT
dHJpbmcsIGJvb2w+IGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IE5ldHdvcmtT
dG9yYWdlU2Vzc2lvCiAKIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IGNvb2tpZVJlcXVlc3RIZWFk
ZXJGaWVsZFZhbHVlKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3Qg
Q29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkmIGhlYWRlckZpZWxkUHJveHkpCiB7Ci0gICAg
cmV0dXJuIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKHNlc3Npb24sIGhlYWRlckZpZWxk
UHJveHkuZmlyc3RQYXJ0eSwgaGVhZGVyRmllbGRQcm94eS5zYW1lU2l0ZUluZm8sIGhlYWRlckZp
ZWxkUHJveHkudXJsLCBoZWFkZXJGaWVsZFByb3h5LmZyYW1lSUQsIGhlYWRlckZpZWxkUHJveHku
cGFnZUlELCBoZWFkZXJGaWVsZFByb3h5LmluY2x1ZGVTZWN1cmVDb29raWVzKTsKKyAgICByZXR1
cm4gY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoc2Vzc2lvbiwgaGVhZGVyRmllbGRQcm94
eS5maXJzdFBhcnR5LCBoZWFkZXJGaWVsZFByb3h5LnVybCwgaGVhZGVyRmllbGRQcm94eS5mcmFt
ZUlELCBoZWFkZXJGaWVsZFByb3h5LnBhZ2VJRCwgaGVhZGVyRmllbGRQcm94eS5pbmNsdWRlU2Vj
dXJlQ29va2llcyk7CiB9CiAKIGJvb2wgY29va2llc0VuYWJsZWQoY29uc3QgTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uJiBzZXNzaW9uKQpAQCAtMjQzLDcgKzI0Myw3IEBAIGJvb2wgY29va2llc0VuYWJs
ZWQoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uKQogICAgIHJldHVybiBwb2xp
Y3kgPT0gQ0ZIVFRQQ29va2llU3RvcmFnZUFjY2VwdFBvbGljeU9ubHlGcm9tTWFpbkRvY3VtZW50
RG9tYWluIHx8IHBvbGljeSA9PSBDRkhUVFBDb29raWVTdG9yYWdlQWNjZXB0UG9saWN5RXhjbHVz
aXZlbHlGcm9tTWFpbkRvY3VtZW50RG9tYWluIHx8IHBvbGljeSA9PSBDRkhUVFBDb29raWVTdG9y
YWdlQWNjZXB0UG9saWN5QWx3YXlzOwogfQogCi1ib29sIGdldFJhd0Nvb2tpZXMoY29uc3QgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0
IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBm
cmFtZUlELCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQsIFZlY3RvcjxDb29raWU+JiBy
YXdDb29raWVzKQorYm9vbCBnZXRSYXdDb29raWVzKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lv
biYgc2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVybCwgc3RkOjpv
cHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gcGFnZUlE
LCBWZWN0b3I8Q29va2llPiYgcmF3Q29va2llcykKIHsKICAgICBVTlVTRURfUEFSQU0oZnJhbWVJ
RCk7CiAgICAgVU5VU0VEX1BBUkFNKHBhZ2VJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdENGTmV0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0Q0ZOZXQuY3BwCmluZGV4
IGJhZWE2NzY5ZDJmNTg4YTFjZDI5NDcwNWI0YTA2Njg2ODZhNzBhYzIuLjE1NjE4ZmJhZmFkZjlh
NWZlN2I2N2U0M2UxZDUyYzVhZjQ3ZGFjNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0Q0ZOZXQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0Q0ZOZXQuY3BwCkBAIC0y
OSw3ICsyOSw2IEBACiAjaW5jbHVkZSAiSFRUUEhlYWRlck5hbWVzLmgiCiAjaW5jbHVkZSAiUmVz
b3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSA8cGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaD4KLSNp
bmNsdWRlIDx3dGYvY2YvVHlwZUNhc3RzQ0YuaD4KIAogI2lmIEVOQUJMRShQVUJMSUNfU1VGRklY
X0xJU1QpCiAjaW5jbHVkZSAiUHVibGljU3VmZml4LmgiCkBAIC01MCw4ICs0OSw2IEBACiAjaW5j
bHVkZSA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlL1dlYktpdFN5c3RlbUludGVyZmFjZS5oPgogI2Vu
ZGlmCiAKLVdURl9ERUNMQVJFX0NGX1RZUEVfVFJBSVQoQ0ZVUkwpOwotCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIC8vIEZJWE1FOiBNYWtlIHRoaXMgYSBOZXR3b3JraW5nQ29udGV4dCBwcm9wZXJ0
eS4KQEAgLTE0NCwxOSArMTQxLDYgQEAgc3RhdGljIGlubGluZSBDRlVSTFJlcXVlc3RDYWNoZVBv
bGljeSB0b1BsYXRmb3JtUmVxdWVzdENhY2hlUG9saWN5KFJlc291cmNlUmVxdWUKICAgICByZXR1
cm4ga0NGVVJMUmVxdWVzdENhY2hlUG9saWN5UmVsb2FkSWdub3JpbmdDYWNoZTsKIH0KIAotc3Rh
dGljIENGVVJMUmVmIHNpdGVGb3JDb29raWVzKFJlc291cmNlUmVxdWVzdDo6U2FtZVNpdGVEaXNw
b3NpdGlvbiBkaXNwb3NpdGlvbiwgQ0ZVUkxSZWYgdXJsKQotewotICAgIHN3aXRjaCAoZGlzcG9z
aXRpb24pIHsKLSAgICBjYXNlIFJlc291cmNlUmVxdWVzdDo6U2FtZVNpdGVEaXNwb3NpdGlvbjo6
VW5zcGVjaWZpZWQ6Ci0gICAgICAgIHJldHVybiB7IH07Ci0gICAgY2FzZSBSZXNvdXJjZVJlcXVl
c3Q6OlNhbWVTaXRlRGlzcG9zaXRpb246OlNhbWVTaXRlOgotICAgICAgICByZXR1cm4gdXJsOwot
ICAgIGNhc2UgUmVzb3VyY2VSZXF1ZXN0OjpTYW1lU2l0ZURpc3Bvc2l0aW9uOjpDcm9zc1NpdGU6
Ci0gICAgICAgIHN0YXRpYyBDRlVSTFJlZiBlbXB0eVVSTCA9IENGVVJMQ3JlYXRlV2l0aFN0cmlu
ZyhudWxscHRyLCBDRlNUUigiIiksIG51bGxwdHIpOwotICAgICAgICByZXR1cm4gZW1wdHlVUkw7
Ci0gICAgfQotfQotCiB2b2lkIFJlc291cmNlUmVxdWVzdDo6ZG9VcGRhdGVQbGF0Zm9ybVJlcXVl
c3QoKQogewogICAgIENGTXV0YWJsZVVSTFJlcXVlc3RSZWYgY2ZSZXF1ZXN0OwpAQCAtMTg1LDEx
ICsxNjksNiBAQCB2b2lkIFJlc291cmNlUmVxdWVzdDo6ZG9VcGRhdGVQbGF0Zm9ybVJlcXVlc3Qo
KQogCiAgICAgQ0ZVUkxSZXF1ZXN0U2V0U2hvdWxkSGFuZGxlSFRUUENvb2tpZXMoY2ZSZXF1ZXN0
LCBhbGxvd0Nvb2tpZXMoKSk7CiAKLSAgICBfQ0ZVUkxSZXF1ZXN0U2V0UHJvdG9jb2xQcm9wZXJ0
eShjZlJlcXVlc3QsIENGU1RSKCJfa0NGSFRUUENvb2tpZVBvbGljeVByb3BlcnR5U2l0ZUZvckNv
b2tpZXMiKSwgc2l0ZUZvckNvb2tpZXMobV9zYW1lU2l0ZURpc3Bvc2l0aW9uLCB1cmwuZ2V0KCkp
KTsKLSAgICBpbnQgaXNUb3BTaXRlID0gbV9pc1RvcFNpdGU7Ci0gICAgUmV0YWluUHRyPENGTnVt
YmVyUmVmPiBpc1RvcFNpdGVDRiA9IGFkb3B0Q0YoQ0ZOdW1iZXJDcmVhdGUobnVsbHB0ciwga0NG
TnVtYmVySW50VHlwZSwgJmlzVG9wU2l0ZSkpOwotICAgIF9DRlVSTFJlcXVlc3RTZXRQcm90b2Nv
bFByb3BlcnR5KGNmUmVxdWVzdCwgQ0ZTVFIoIl9rQ0ZIVFRQQ29va2llUG9saWN5UHJvcGVydHlp
c1RvcFNpdGUiKSwgaXNUb3BTaXRlQ0YuZ2V0KCkpOwotCiAgICAgdW5zaWduZWQgZmFsbGJhY2tD
b3VudCA9IG1fcmVzcG9uc2VDb250ZW50RGlzcG9zaXRpb25FbmNvZGluZ0ZhbGxiYWNrQXJyYXku
c2l6ZSgpOwogICAgIFJldGFpblB0cjxDRk11dGFibGVBcnJheVJlZj4gZW5jb2RpbmdGYWxsYmFj
a3MgPSBhZG9wdENGKENGQXJyYXlDcmVhdGVNdXRhYmxlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGZh
bGxiYWNrQ291bnQsIDApKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpICE9IGZhbGxiYWNr
Q291bnQ7ICsraSkgewpAQCAtMjY3LDE3ICsyNDYsNiBAQCB2b2lkIFJlc291cmNlUmVxdWVzdDo6
ZG9VcGRhdGVSZXNvdXJjZVJlcXVlc3QoKQogICAgIGlmIChyZXNvdXJjZVByaW9yaXRpZXNFbmFi
bGVkKCkpCiAgICAgICAgIG1fcHJpb3JpdHkgPSB0b1Jlc291cmNlTG9hZFByaW9yaXR5KENGVVJM
UmVxdWVzdEdldFJlcXVlc3RQcmlvcml0eShtX2NmUmVxdWVzdC5nZXQoKSkpOwogCi0gICAgUmV0
YWluUHRyPENGVVJMUmVmPiBzaXRlRm9yQ29va2llcyA9IGFkb3B0Q0YoY2hlY2tlZF9jZl9jYXN0
PENGVVJMUmVmPihfQ0ZVUkxSZXF1ZXN0Q29weVByb3RvY29sUHJvcGVydHlGb3JLZXkobV9jZlJl
cXVlc3QuZ2V0KCksIENGU1RSKCJfa0NGSFRUUENvb2tpZVBvbGljeVByb3BlcnR5U2l0ZUZvckNv
b2tpZXMiKSkpKTsKLSAgICBtX3NhbWVTaXRlRGlzcG9zaXRpb24gPSAhc2l0ZUZvckNvb2tpZXMg
PyBTYW1lU2l0ZURpc3Bvc2l0aW9uOjpVbnNwZWNpZmllZCA6IChyZWdpc3RyYWJsZURvbWFpbnNB
cmVFcXVhbChzaXRlRm9yQ29va2llcy5nZXQoKSwgbV91cmwpID8gU2FtZVNpdGVEaXNwb3NpdGlv
bjo6U2FtZVNpdGUgOiBTYW1lU2l0ZURpc3Bvc2l0aW9uOjpDcm9zc1NpdGUpOwotICAgIFJldGFp
blB0cjxDRk51bWJlclJlZj4gaXNUb3BTaXRlQ0YgPSBhZG9wdENGKGNoZWNrZWRfY2ZfY2FzdDxD
Rk51bWJlcj4oX0NGVVJMUmVxdWVzdENvcHlQcm90b2NvbFByb3BlcnR5Rm9yS2V5KG1fY2ZSZXF1
ZXN0LmdldCgpLCBDRlNUUigiX2tDRkhUVFBDb29raWVQb2xpY3lQcm9wZXJ0eWlzVG9wU2l0ZSIp
KSkpOwotICAgIGlmICghaXNUb3BTaXRlQ0YpCi0gICAgICAgIG1faXNUb3BTaXRlID0gZmFsc2U7
Ci0gICAgZWxzZSB7Ci0gICAgICAgIGludCBpc1RvcFNpdGUgPSAwOwotICAgICAgICBDRk51bWJl
ckdldFZhbHVlKGlzVG9wU2l0ZUNGLmdldCgpLCBrQ0ZOdW1iZXJJbnRUeXBlLCAmaXNUb3BTaXRl
KTsKLSAgICAgICAgbV9pc1RvcFNpdGUgPSBpc1RvcFNpdGU7Ci0gICAgfQotCiAgICAgbV9odHRw
SGVhZGVyRmllbGRzLmNsZWFyKCk7CiAgICAgaWYgKENGRGljdGlvbmFyeVJlZiBoZWFkZXJzID0g
Q0ZVUkxSZXF1ZXN0Q29weUFsbEhUVFBIZWFkZXJGaWVsZHMobV9jZlJlcXVlc3QuZ2V0KCkpKSB7
CiAgICAgICAgIENGSW5kZXggaGVhZGVyQ291bnQgPSBDRkRpY3Rpb25hcnlHZXRDb3VudChoZWFk
ZXJzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2Ev
UmVzb3VyY2VSZXF1ZXN0Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2NvY29hL1Jlc291cmNlUmVxdWVzdENvY29hLm1tCmluZGV4IDNkNTJjZmE1NWIyOTY0YzY1ZjJl
N2Q5OTQ2MTY1ZjgyZWVjOGUzNWMuLjBlMDk1YTM3MjlhNmYyYzFkNzA4ZWRjODhmNjUzZTFlZDEw
OGNjODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2Ev
UmVzb3VyY2VSZXF1ZXN0Q29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jb2NvYS9SZXNvdXJjZVJlcXVlc3RDb2NvYS5tbQpAQCAtODcsMTAgKzg3LDYgQEAgdm9p
ZCBSZXNvdXJjZVJlcXVlc3Q6OmRvVXBkYXRlUmVzb3VyY2VSZXF1ZXN0KCkKICAgICBtX3RpbWVv
dXRJbnRlcnZhbCA9IFttX25zUmVxdWVzdC5nZXQoKSB0aW1lb3V0SW50ZXJ2YWxdOwogICAgIG1f
Zmlyc3RQYXJ0eUZvckNvb2tpZXMgPSBbbV9uc1JlcXVlc3QuZ2V0KCkgbWFpbkRvY3VtZW50VVJM
XTsKIAotICAgIFVSTCBzaXRlRm9yQ29va2llcyB7IFttX25zUmVxdWVzdC5nZXQoKSBfcHJvcGVy
dHlGb3JLZXk6QCJfa0NGSFRUUENvb2tpZVBvbGljeVByb3BlcnR5U2l0ZUZvckNvb2tpZXMiXSB9
OwotICAgIG1fc2FtZVNpdGVEaXNwb3NpdGlvbiA9IHNpdGVGb3JDb29raWVzLmlzTnVsbCgpID8g
U2FtZVNpdGVEaXNwb3NpdGlvbjo6VW5zcGVjaWZpZWQgOiAocmVnaXN0cmFibGVEb21haW5zQXJl
RXF1YWwoc2l0ZUZvckNvb2tpZXMsIG1fdXJsKSA/IFNhbWVTaXRlRGlzcG9zaXRpb246OlNhbWVT
aXRlIDogU2FtZVNpdGVEaXNwb3NpdGlvbjo6Q3Jvc3NTaXRlKTsKLSAgICBtX2lzVG9wU2l0ZSA9
IHN0YXRpY19jYXN0PE5TTnVtYmVyKj4oW21fbnNSZXF1ZXN0LmdldCgpIF9wcm9wZXJ0eUZvcktl
eTpAIl9rQ0ZIVFRQQ29va2llUG9saWN5UHJvcGVydHlJc1RvcExldmVsTmF2aWdhdGlvbiJdKS5i
b29sVmFsdWU7Ci0KICAgICBpZiAoTlNTdHJpbmcqIG1ldGhvZCA9IFttX25zUmVxdWVzdC5nZXQo
KSBIVFRQTWV0aG9kXSkKICAgICAgICAgbV9odHRwTWV0aG9kID0gbWV0aG9kOwogICAgIG1fYWxs
b3dDb29raWVzID0gW21fbnNSZXF1ZXN0LmdldCgpIEhUVFBTaG91bGRIYW5kbGVDb29raWVzXTsK
QEAgLTEzMywxOCArMTI5LDYgQEAgdm9pZCBSZXNvdXJjZVJlcXVlc3Q6OmRvVXBkYXRlUmVzb3Vy
Y2VIVFRQQm9keSgpCiAgICAgfQogfQogCi1zdGF0aWMgTlNVUkwgKnNpdGVGb3JDb29raWVzKFJl
c291cmNlUmVxdWVzdDo6U2FtZVNpdGVEaXNwb3NpdGlvbiBkaXNwb3NpdGlvbiwgTlNVUkwgKnVy
bCkKLXsKLSAgICBzd2l0Y2ggKGRpc3Bvc2l0aW9uKSB7Ci0gICAgY2FzZSBSZXNvdXJjZVJlcXVl
c3Q6OlNhbWVTaXRlRGlzcG9zaXRpb246OlVuc3BlY2lmaWVkOgotICAgICAgICByZXR1cm4geyB9
OwotICAgIGNhc2UgUmVzb3VyY2VSZXF1ZXN0OjpTYW1lU2l0ZURpc3Bvc2l0aW9uOjpTYW1lU2l0
ZToKLSAgICAgICAgcmV0dXJuIHVybDsKLSAgICBjYXNlIFJlc291cmNlUmVxdWVzdDo6U2FtZVNp
dGVEaXNwb3NpdGlvbjo6Q3Jvc3NTaXRlOgotICAgICAgICByZXR1cm4gW05TVVJMIFVSTFdpdGhT
dHJpbmc6QCIiXTsKLSAgICB9Ci19Ci0KIHZvaWQgUmVzb3VyY2VSZXF1ZXN0Ojpkb1VwZGF0ZVBs
YXRmb3JtUmVxdWVzdCgpCiB7CiAgICAgaWYgKGlzTnVsbCgpKSB7CkBAIC0xNzgsOSArMTYyLDYg
QEAgdm9pZCBSZXNvdXJjZVJlcXVlc3Q6OmRvVXBkYXRlUGxhdGZvcm1SZXF1ZXN0KCkKICAgICAg
ICAgW25zUmVxdWVzdCBzZXRIVFRQTWV0aG9kOmh0dHBNZXRob2QoKV07CiAgICAgW25zUmVxdWVz
dCBzZXRIVFRQU2hvdWxkSGFuZGxlQ29va2llczphbGxvd0Nvb2tpZXMoKV07CiAKLSAgICBbbnNS
ZXF1ZXN0IF9zZXRQcm9wZXJ0eTpzaXRlRm9yQ29va2llcyhtX3NhbWVTaXRlRGlzcG9zaXRpb24s
IG5zUmVxdWVzdC5VUkwpIGZvcktleTpAIl9rQ0ZIVFRQQ29va2llUG9saWN5UHJvcGVydHlTaXRl
Rm9yQ29va2llcyJdOwotICAgIFtuc1JlcXVlc3QgX3NldFByb3BlcnR5OltOU051bWJlciBudW1i
ZXJXaXRoQm9vbDptX2lzVG9wU2l0ZV0gZm9yS2V5OkAiX2tDRkhUVFBDb29raWVQb2xpY3lQcm9w
ZXJ0eUlzVG9wTGV2ZWxOYXZpZ2F0aW9uIl07Ci0KICAgICAvLyBDYW5ub3QganVzdCB1c2Ugc2V0
QWxsSFRUUEhlYWRlckZpZWxkcyBoZXJlLCBiZWNhdXNlIGl0IGRvZXMgbm90IHJlbW92ZSBoZWFk
ZXJzLgogICAgIGZvciAoTlNTdHJpbmcgKm9sZEhlYWRlck5hbWUgaW4gW25zUmVxdWVzdCBhbGxI
VFRQSGVhZGVyRmllbGRzXSkKICAgICAgICAgW25zUmVxdWVzdCBzZXRWYWx1ZTpuaWwgZm9ySFRU
UEhlYWRlckZpZWxkOm9sZEhlYWRlck5hbWVdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckN1cmwuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckN1cmwuY3BwCmluZGV4IDViNGEyNDUyNzU4
MjRjMDgwZDk4MmQ5NjA5MDVlNDQ0ZGU2MTkwOTYuLmY4M2NlMWIzZWMyOWJmMjYxMmQzNzU5YTkw
M2MyYWY0NWNlMDI0ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY3VybC9Db29raWVKYXJDdXJsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvQ29va2llSmFyQ3VybC5jcHAKQEAgLTMwLDI0ICszMCwyNCBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLXN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IGNvb2tpZXNGb3JET00o
Y29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFy
dHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgc3Rk
OjpvcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gcGFn
ZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykKK3N0ZDo6cGFp
cjxTdHJpbmcsIGJvb2w+IGNvb2tpZXNGb3JET00oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9u
JiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFVSTCYgdXJsLCBzdGQ6Om9w
dGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQs
IEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKQogewotICAgIHJldHVy
biBzZXNzaW9uLmNvb2tpZVN0b3JhZ2UoKS5jb29raWVzRm9yRE9NKHNlc3Npb24sIGZpcnN0UGFy
dHksIHNhbWVTaXRlSW5mbywgdXJsLCBmcmFtZUlELCBwYWdlSUQsIGluY2x1ZGVTZWN1cmVDb29r
aWVzKTsKKyAgICByZXR1cm4gc2Vzc2lvbi5jb29raWVTdG9yYWdlKCkuY29va2llc0ZvckRPTShz
ZXNzaW9uLCBmaXJzdFBhcnR5LCB1cmwsIGZyYW1lSUQsIHBhZ2VJRCwgaW5jbHVkZVNlY3VyZUNv
b2tpZXMpOwogfQogCi12b2lkIHNldENvb2tpZXNGcm9tRE9NKGNvbnN0IE5ldHdvcmtTdG9yYWdl
U2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUlu
Zm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+
IGZyYW1lSUQsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiB2
YWx1ZSkKK3ZvaWQgc2V0Q29va2llc0Zyb21ET00oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9u
JiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFVSTCYgdXJsLCBzdGQ6Om9w
dGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQs
IGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7Ci0gICAgc2Vzc2lvbi5jb29raWVTdG9yYWdlKCkuc2V0
Q29va2llc0Zyb21ET00oc2Vzc2lvbiwgZmlyc3RQYXJ0eSwgc2FtZVNpdGVJbmZvLCB1cmwsIGZy
YW1lSUQsIHBhZ2VJRCwgdmFsdWUpOworICAgIHNlc3Npb24uY29va2llU3RvcmFnZSgpLnNldENv
b2tpZXNGcm9tRE9NKHNlc3Npb24sIGZpcnN0UGFydHksIHVybCwgZnJhbWVJRCwgcGFnZUlELCB2
YWx1ZSk7CiB9CiAKLXN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IGNvb2tpZVJlcXVlc3RIZWFkZXJG
aWVsZFZhbHVlKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJM
JiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJM
JiB1cmwsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHN0ZDo6b3B0aW9uYWw8dWlu
dDY0X3Q+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMp
CitzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShj
b25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0
eSwgY29uc3QgVVJMJiB1cmwsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHN0ZDo6
b3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNl
Y3VyZUNvb2tpZXMpCiB7Ci0gICAgcmV0dXJuIHNlc3Npb24uY29va2llU3RvcmFnZSgpLmNvb2tp
ZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKHNlc3Npb24sIGZpcnN0UGFydHksIHNhbWVTaXRlSW5m
bywgdXJsLCBmcmFtZUlELCBwYWdlSUQsIGluY2x1ZGVTZWN1cmVDb29raWVzKTsKKyAgICByZXR1
cm4gc2Vzc2lvbi5jb29raWVTdG9yYWdlKCkuY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUo
c2Vzc2lvbiwgZmlyc3RQYXJ0eSwgdXJsLCBmcmFtZUlELCBwYWdlSUQsIGluY2x1ZGVTZWN1cmVD
b29raWVzKTsKIH0KIAogc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llUmVxdWVzdEhlYWRl
ckZpZWxkVmFsdWUoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBD
b29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eSYgaGVhZGVyRmllbGRQcm94eSkKIHsKLSAgICBy
ZXR1cm4gc2Vzc2lvbi5jb29raWVTdG9yYWdlKCkuY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFs
dWUoc2Vzc2lvbiwgaGVhZGVyRmllbGRQcm94eS5maXJzdFBhcnR5LCBoZWFkZXJGaWVsZFByb3h5
LnNhbWVTaXRlSW5mbywgaGVhZGVyRmllbGRQcm94eS51cmwsIGhlYWRlckZpZWxkUHJveHkuZnJh
bWVJRCwgaGVhZGVyRmllbGRQcm94eS5wYWdlSUQsIGhlYWRlckZpZWxkUHJveHkuaW5jbHVkZVNl
Y3VyZUNvb2tpZXMpOworICAgIHJldHVybiBzZXNzaW9uLmNvb2tpZVN0b3JhZ2UoKS5jb29raWVS
ZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShzZXNzaW9uLCBoZWFkZXJGaWVsZFByb3h5LmZpcnN0UGFy
dHksIGhlYWRlckZpZWxkUHJveHkudXJsLCBoZWFkZXJGaWVsZFByb3h5LmZyYW1lSUQsIGhlYWRl
ckZpZWxkUHJveHkucGFnZUlELCBoZWFkZXJGaWVsZFByb3h5LmluY2x1ZGVTZWN1cmVDb29raWVz
KTsKIH0KIAogYm9vbCBjb29raWVzRW5hYmxlZChjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24m
IHNlc3Npb24pCkBAIC01NSw5ICs1NSw5IEBAIGJvb2wgY29va2llc0VuYWJsZWQoY29uc3QgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uKQogICAgIHJldHVybiBzZXNzaW9uLmNvb2tpZVN0
b3JhZ2UoKS5jb29raWVzRW5hYmxlZChzZXNzaW9uKTsKIH0KIAotYm9vbCBnZXRSYXdDb29raWVz
KGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBh
cnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIHN0
ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHBh
Z2VJRCwgVmVjdG9yPENvb2tpZT4mIHJhd0Nvb2tpZXMpCitib29sIGdldFJhd0Nvb2tpZXMoY29u
c3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHks
IGNvbnN0IFVSTCYgdXJsLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBzdGQ6Om9w
dGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQsIFZlY3RvcjxDb29raWU+JiByYXdDb29raWVzKQogewot
ICAgIHJldHVybiBzZXNzaW9uLmNvb2tpZVN0b3JhZ2UoKS5nZXRSYXdDb29raWVzKHNlc3Npb24s
IGZpcnN0UGFydHksIHNhbWVTaXRlSW5mbywgdXJsLCBmcmFtZUlELCBwYWdlSUQsIHJhd0Nvb2tp
ZXMpOworICAgIHJldHVybiBzZXNzaW9uLmNvb2tpZVN0b3JhZ2UoKS5nZXRSYXdDb29raWVzKHNl
c3Npb24sIGZpcnN0UGFydHksIHVybCwgZnJhbWVJRCwgcGFnZUlELCByYXdDb29raWVzKTsKIH0K
IAogdm9pZCBkZWxldGVDb29raWUoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9u
LCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBjb29raWUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFyQ3VybC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckN1cmwuaAppbmRleCAyYWE4
ZGZkYTFiNzBlMTA5Y2ZlYjhhNGJlZjNiNDFmNDY2NmU2OGVlLi43YjViMDc5OGNjZmViNTdiMDVh
MWEyMGQ2OWY0ZmVkODQ2MDdhNTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2N1cmwvQ29va2llSmFyQ3VybC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY3VybC9Db29raWVKYXJDdXJsLmgKQEAgLTIyLDE1ICsyMiwyMCBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKK3N0cnVjdCBDb29raWU7CitzdHJ1Y3QgQ29va2llUmVxdWVz
dEhlYWRlckZpZWxkUHJveHk7CitjbGFzcyBOZXR3b3JrU3RvcmFnZVNlc3Npb247CitjbGFzcyBV
Ukw7CisKIGNsYXNzIENvb2tpZUphckN1cmwgewogcHVibGljOgotICAgIHZpcnR1YWwgc3RkOjpw
YWlyPFN0cmluZywgYm9vbD4gY29va2llc0ZvckRPTShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Np
b24mLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVS
TCYsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHN0ZDo6b3B0aW9uYWw8dWludDY0
X3Q+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFs
IHZvaWQgc2V0Q29va2llc0Zyb21ET00oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29u
c3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBzdGQ6
Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBwYWdl
SUQsIGNvbnN0IFN0cmluZyYpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHN0ZDo6cGFpcjxTdHJp
bmcsIGJvb2w+IGNvb2tpZXNGb3JET00oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29u
c3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBm
cmFtZUlELCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29r
aWVzKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldENvb2tpZXNGcm9tRE9NKGNvbnN0
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJM
Jiwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgc3RkOjpvcHRpb25hbDx1aW50NjRf
dD4gcGFnZUlELCBjb25zdCBTdHJpbmcmKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNl
dENvb2tpZXNGcm9tSFRUUFJlc3BvbnNlKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNv
bnN0IFVSTCYsIGNvbnN0IFN0cmluZyYpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgY29v
a2llc0VuYWJsZWQoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJikgY29uc3QgPSAwOwotICAg
IHZpcnR1YWwgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llUmVxdWVzdEhlYWRlckZpZWxk
VmFsdWUoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5
LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90
PiBmcmFtZUlELCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVD
b29raWVzKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBj
b29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24m
LCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFVSTCYsIHN0ZDo6b3B0aW9uYWw8dWludDY0
X3Q+IGZyYW1lSUQsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCwgSW5jbHVkZVNlY3Vy
ZUNvb2tpZXMpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+
IGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lv
biYsIGNvbnN0IENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5JikgY29uc3QgPSAwOwotICAg
IHZpcnR1YWwgYm9vbCBnZXRSYXdDb29raWVzKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYs
IGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwg
c3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4g
cGFnZUlELCBWZWN0b3I8Q29va2llPiYpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0
UmF3Q29va2llcyhjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBVUkwmIGZpcnN0
UGFydHksIGNvbnN0IFVSTCYsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHN0ZDo6
b3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCwgVmVjdG9yPENvb2tpZT4mKSBjb25zdCA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIGRlbGV0ZUNvb2tpZShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24m
LCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IGdldEhvc3RuYW1lc1dpdGhDb29raWVzKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIEhh
c2hTZXQ8U3RyaW5nPiYgaG9zdG5hbWVzKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRl
bGV0ZUNvb2tpZXNGb3JIb3N0bmFtZXMoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29u
c3QgVmVjdG9yPFN0cmluZz4mIGNvb2tpZUhvc3ROYW1lcykgY29uc3QgPSAwOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckN1cmxEYXRh
YmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFy
Q3VybERhdGFiYXNlLmNwcAppbmRleCA2NzJiMjUxNWFmMjE2NmJiODQwMWJhNmZmZDk4YWY5NzY3
ODAwMTk2Li42YTg0NzY4ZGZlNmU5ZWZhNDk5OTFhYWFlMGM2ZGYwYTY0NTQzOGM1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFyQ3VybERh
dGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29v
a2llSmFyQ3VybERhdGFiYXNlLmNwcApAQCAtNjAsNyArNjAsNyBAQCBzdGF0aWMgU3RyaW5nIGNv
b2tpZXNGb3JTZXNzaW9uKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29u
c3QgVVJMJgogICAgIHJldHVybiBjb29raWVzLnRvU3RyaW5nKCk7CiB9CiAKLXZvaWQgQ29va2ll
SmFyQ3VybERhdGFiYXNlOjpzZXRDb29raWVzRnJvbURPTShjb25zdCBOZXR3b3JrU3RvcmFnZVNl
c3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZv
JiwgY29uc3QgVVJMJiB1cmwsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHN0ZDo6
b3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiB2YWx1ZSkgY29uc3QKK3Zv
aWQgQ29va2llSmFyQ3VybERhdGFiYXNlOjpzZXRDb29raWVzRnJvbURPTShjb25zdCBOZXR3b3Jr
U3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJM
JiB1cmwsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHN0ZDo6b3B0aW9uYWw8dWlu
dDY0X3Q+IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiB2YWx1ZSkgY29uc3QKIHsKICAgICBVTlVTRURf
UEFSQU0oZnJhbWVJRCk7CiAgICAgVU5VU0VEX1BBUkFNKHBhZ2VJRCk7CkBAIC03Niw3ICs3Niw3
IEBAIHZvaWQgQ29va2llSmFyQ3VybERhdGFiYXNlOjpzZXRDb29raWVzRnJvbUhUVFBSZXNwb25z
ZShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3NpCiAgICAgY29va2llSmFyREIuc2V0Q29va2llKHVy
bC5zdHJpbmcoKSwgdmFsdWUsIGZhbHNlKTsKIH0KIAotc3RkOjpwYWlyPFN0cmluZywgYm9vbD4g
Q29va2llSmFyQ3VybERhdGFiYXNlOjpjb29raWVzRm9yRE9NKGNvbnN0IE5ldHdvcmtTdG9yYWdl
U2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUlu
Zm8mLCBjb25zdCBVUkwmIHVybCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgc3Rk
OjpvcHRpb25hbDx1aW50NjRfdD4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3QK
K3N0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IENvb2tpZUphckN1cmxEYXRhYmFzZTo6Y29va2llc0Zv
ckRPTShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgZmly
c3RQYXJ0eSwgY29uc3QgVVJMJiB1cmwsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQs
IHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNv
bnN0CiB7CiAgICAgVU5VU0VEX1BBUkFNKGZyYW1lSUQpOwogICAgIFVOVVNFRF9QQVJBTShwYWdl
SUQpOwpAQCAtODUsNyArODUsNyBAQCBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBDb29raWVKYXJD
dXJsRGF0YWJhc2U6OmNvb2tpZXNGb3JET00oY29uc3QgTmV0d29ya1N0b3JhZwogICAgIHJldHVy
biB7IGNvb2tpZXNGb3JTZXNzaW9uKHNlc3Npb24sIGZpcnN0UGFydHksIHVybCwgZmFsc2UpLCBm
YWxzZSB9OwogfQogCi1zdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBDb29raWVKYXJDdXJsRGF0YWJh
c2U6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vz
c2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8m
LCBjb25zdCBVUkwmIHVybCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgc3RkOjpv
cHRpb25hbDx1aW50NjRfdD4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3QKK3N0
ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IENvb2tpZUphckN1cmxEYXRhYmFzZTo6Y29va2llUmVxdWVz
dEhlYWRlckZpZWxkVmFsdWUoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBj
b25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFVSTCYgdXJsLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2
NF90PiBmcmFtZUlELCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQsIEluY2x1ZGVTZWN1
cmVDb29raWVzKSBjb25zdAogewogICAgIFVOVVNFRF9QQVJBTShmcmFtZUlEKTsKICAgICBVTlVT
RURfUEFSQU0ocGFnZUlEKTsKQEAgLTk2LDcgKzk2LDcgQEAgc3RkOjpwYWlyPFN0cmluZywgYm9v
bD4gQ29va2llSmFyQ3VybERhdGFiYXNlOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShj
b24KIAogc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gQ29va2llSmFyQ3VybERhdGFiYXNlOjpjb29r
aWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNl
c3Npb24sIGNvbnN0IENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5JiBoZWFkZXJGaWVsZFBy
b3h5KSBjb25zdAogewotICAgIHJldHVybiBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShz
ZXNzaW9uLCBoZWFkZXJGaWVsZFByb3h5LmZpcnN0UGFydHksIGhlYWRlckZpZWxkUHJveHkuc2Ft
ZVNpdGVJbmZvLCBoZWFkZXJGaWVsZFByb3h5LnVybCwgaGVhZGVyRmllbGRQcm94eS5mcmFtZUlE
LCBoZWFkZXJGaWVsZFByb3h5LnBhZ2VJRCwgaGVhZGVyRmllbGRQcm94eS5pbmNsdWRlU2VjdXJl
Q29va2llcyk7CisgICAgcmV0dXJuIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKHNlc3Np
b24sIGhlYWRlckZpZWxkUHJveHkuZmlyc3RQYXJ0eSwgaGVhZGVyRmllbGRQcm94eS51cmwsIGhl
YWRlckZpZWxkUHJveHkuZnJhbWVJRCwgaGVhZGVyRmllbGRQcm94eS5wYWdlSUQsIGhlYWRlckZp
ZWxkUHJveHkuaW5jbHVkZVNlY3VyZUNvb2tpZXMpOyAgICAKIH0KIAogYm9vbCBDb29raWVKYXJD
dXJsRGF0YWJhc2U6OmNvb2tpZXNFbmFibGVkKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYg
c2Vzc2lvbikgY29uc3QKQEAgLTEwNCw3ICsxMDQsNyBAQCBib29sIENvb2tpZUphckN1cmxEYXRh
YmFzZTo6Y29va2llc0VuYWJsZWQoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9u
KQogICAgIHJldHVybiBzZXNzaW9uLmNvb2tpZURhdGFiYXNlKCkuaXNFbmFibGVkKCk7CiB9CiAK
LWJvb2wgQ29va2llSmFyQ3VybERhdGFiYXNlOjpnZXRSYXdDb29raWVzKGNvbnN0IE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1l
U2l0ZUluZm8mLCBjb25zdCBVUkwmLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBz
dGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQsIFZlY3RvcjxDb29raWU+JiByYXdDb29raWVz
KSBjb25zdAorYm9vbCBDb29raWVKYXJDdXJsRGF0YWJhc2U6OmdldFJhd0Nvb2tpZXMoY29uc3Qg
TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNv
bnN0IFVSTCYsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHN0ZDo6b3B0aW9uYWw8
dWludDY0X3Q+IHBhZ2VJRCwgVmVjdG9yPENvb2tpZT4mIHJhd0Nvb2tpZXMpIGNvbnN0CiB7CiAg
ICAgVU5VU0VEX1BBUkFNKGZyYW1lSUQpOwogICAgIFVOVVNFRF9QQVJBTShwYWdlSUQpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckN1
cmxEYXRhYmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tp
ZUphckN1cmxEYXRhYmFzZS5oCmluZGV4IGZkYTE1NTcyOTA5NzdlMjk3OGZmMzczYTM1OTcxMDBi
ZjA2ZWQ4MjIuLmE5N2Y5Yjc0MDdkMmJmZWY2NzQ1OWY1MDJkMTE2MDhjYWQ4ZTIyMjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Db29raWVKYXJDdXJs
RGF0YWJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29v
a2llSmFyQ3VybERhdGFiYXNlLmgKQEAgLTI5LDEzICsyOSwxMyBAQAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBDb29raWVKYXJDdXJsRGF0YWJhc2UgOiBwdWJsaWMgQ29va2llSmFyQ3Vy
bCB7Ci0gICAgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llc0ZvckRPTShjb25zdCBOZXR3
b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRl
SW5mbyYsIGNvbnN0IFVSTCYsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHN0ZDo6
b3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0IG92
ZXJyaWRlOwotICAgIHZvaWQgc2V0Q29va2llc0Zyb21ET00oY29uc3QgTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25z
dCBVUkwmLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBzdGQ6Om9wdGlvbmFsPHVp
bnQ2NF90PiBwYWdlSUQsIGNvbnN0IFN0cmluZyYpIGNvbnN0IG92ZXJyaWRlOworICAgIHN0ZDo6
cGFpcjxTdHJpbmcsIGJvb2w+IGNvb2tpZXNGb3JET00oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNz
aW9uJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmLCBzdGQ6Om9wdGlvbmFsPHVp
bnQ2NF90PiBmcmFtZUlELCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQsIEluY2x1ZGVT
ZWN1cmVDb29raWVzKSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lkIHNldENvb2tpZXNGcm9tRE9N
KGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29u
c3QgVVJMJiwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgc3RkOjpvcHRpb25hbDx1
aW50NjRfdD4gcGFnZUlELCBjb25zdCBTdHJpbmcmKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lk
IHNldENvb2tpZXNGcm9tSFRUUFJlc3BvbnNlKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYs
IGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgY29v
a2llc0VuYWJsZWQoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJikgY29uc3Qgb3ZlcnJpZGU7
Ci0gICAgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFs
dWUoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBj
b25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBm
cmFtZUlELCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29r
aWVzKSBjb25zdCBvdmVycmlkZTsKKyAgICBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVS
ZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25z
dCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFVSTCYsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZy
YW1lSUQsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tp
ZXMpIGNvbnN0IG92ZXJyaWRlOwogICAgIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IGNvb2tpZVJl
cXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0
IENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5JikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgYm9v
bCBnZXRSYXdDb29raWVzKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVSTCYg
Zmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgc3RkOjpvcHRpb25h
bDx1aW50NjRfdD4gZnJhbWVJRCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gcGFnZUlELCBWZWN0
b3I8Q29va2llPiYpIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wgZ2V0UmF3Q29va2llcyhjb25z
dCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFVS
TCYsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHN0ZDo6b3B0aW9uYWw8dWludDY0
X3Q+IHBhZ2VJRCwgVmVjdG9yPENvb2tpZT4mKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIGRl
bGV0ZUNvb2tpZShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBVUkwmLCBjb25z
dCBTdHJpbmcmKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIGdldEhvc3RuYW1lc1dpdGhDb29r
aWVzKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIEhhc2hTZXQ8U3RyaW5nPiYgaG9zdG5h
bWVzKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIGRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZXMo
Y29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGNvb2tp
ZUhvc3ROYW1lcykgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwCmluZGV4IGNj
NGQzY2MxZDAyYWJiMzg4YTFiYjEwM2NlY2Q1OTI5YTM0NzFkNWQuLjY4NjIyZWFkZjJkOTNhYzI0
YjBiODdlYmIwOTdjYzMwYzM5YmNiZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwCkBAIC00Myw3
ICs0Myw2IEBACiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtTdG9yYWdl
U2Vzc2lvbi5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlSW50ZXJuYWwuaCIKLSNpbmNsdWRl
ICJTYW1lU2l0ZUluZm8uaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlICJT
eW5jaHJvbm91c0xvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIlRleHRFbmNvZGluZy5oIgpAQCAt
MTQ2LDcgKzE0NSw3IEBAIFJlZjxDdXJsUmVxdWVzdD4gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZUN1
cmxSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVxCiAgICAgICAgIGF1dG8mIHN0
b3JhZ2VTZXNzaW9uID0gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWZhdWx0U3RvcmFnZVNlc3Np
b24oKTsKICAgICAgICAgYXV0byYgY29va2llSmFyID0gc3RvcmFnZVNlc3Npb24uY29va2llU3Rv
cmFnZSgpOwogICAgICAgICBhdXRvIGluY2x1ZGVTZWN1cmVDb29raWVzID0gcmVxdWVzdC51cmwo
KS5wcm90b2NvbElzKCJodHRwcyIpID8gSW5jbHVkZVNlY3VyZUNvb2tpZXM6OlllcyA6IEluY2x1
ZGVTZWN1cmVDb29raWVzOjpObzsKLSAgICAgICAgU3RyaW5nIGNvb2tpZUhlYWRlckZpZWxkID0g
Y29va2llSmFyLmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKHN0b3JhZ2VTZXNzaW9uLCBy
ZXF1ZXN0LmZpcnN0UGFydHlGb3JDb29raWVzKCksIFNhbWVTaXRlSW5mbzo6Y3JlYXRlKHJlcXVl
c3QpLCByZXF1ZXN0LnVybCgpLCBzdGQ6Om51bGxvcHQsIHN0ZDo6bnVsbG9wdCwgaW5jbHVkZVNl
Y3VyZUNvb2tpZXMpLmZpcnN0OworICAgICAgICBTdHJpbmcgY29va2llSGVhZGVyRmllbGQgPSBj
b29raWVKYXIuY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoc3RvcmFnZVNlc3Npb24sIHJl
cXVlc3QuZmlyc3RQYXJ0eUZvckNvb2tpZXMoKSwgcmVxdWVzdC51cmwoKSwgc3RkOjpudWxsb3B0
LCBzdGQ6Om51bGxvcHQsIGluY2x1ZGVTZWN1cmVDb29raWVzKS5maXJzdDsKICAgICAgICAgaWYg
KCFjb29raWVIZWFkZXJGaWVsZC5pc0VtcHR5KCkpCiAgICAgICAgICAgICByZXF1ZXN0LmFkZEhU
VFBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6Q29va2llLCBjb29raWVIZWFkZXJGaWVsZCk7
CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMv
Q29va2llSmFyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvQ29v
a2llSmFyTWFjLm1tCmluZGV4IDliNjBmYzBiZTlmZDk2OGZhNTM3ODY5YjI4Njg0NWVmZTFmYTY4
YmMuLmJkZDA2MTIzYjk5NDExZjU1YWYzZGIxNDFjYzJjMjdiNDBiNGFiMzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL0Nvb2tpZUphck1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9Db29raWVKYXJNYWMubW0KQEAg
LTM0LDcgKzM0LDYgQEAKIAogI2ltcG9ydCAiQ29va2llLmgiCiAjaW1wb3J0ICJDb29raWVTdG9y
YWdlLmgiCi0jaW1wb3J0ICJTYW1lU2l0ZUluZm8uaCIKICNpbXBvcnQgIlVSTC5oIgogI2ltcG9y
dCA8d3RmL09wdGlvbmFsLmg+CiAjaW1wb3J0IDx3dGYvUHJvY2Vzc1ByaXZpbGVnZS5oPgpAQCAt
NjcsNzAgKzY2LDIxIEBAIHN0YXRpYyB2b2lkIGRlbGV0ZUhUVFBDb29raWUoQ0ZIVFRQQ29va2ll
U3RvcmFnZVJlZiBjb29raWVTdG9yYWdlLCBOU0hUVFBDb29raWUKICAgICBDRkhUVFBDb29raWVT
dG9yYWdlRGVsZXRlQ29va2llKGNvb2tpZVN0b3JhZ2UsIFtjb29raWUgX0dldEludGVybmFsQ0ZI
VFRQQ29va2llXSk7CiB9CiAKLXN0YXRpYyBOU0FycmF5ICpjb29raWVzRm9yVVJMKE5TSFRUUENv
b2tpZVN0b3JhZ2UgKnN0b3JhZ2UsIE5TVVJMICp1cmwsIE5TVVJMICptYWluRG9jdW1lbnRVUkws
IGNvbnN0IHN0ZDo6b3B0aW9uYWw8U2FtZVNpdGVJbmZvPiYgc2FtZVNpdGVJbmZvLCBOU1N0cmlu
ZyAqcGFydGl0aW9uID0gbnVsbHB0cikKLXsKLSAgICAvLyBUaGUgX2dldENvb2tpZXNGb3JVUkw6
IG1ldGhvZCBjYWxscyB0aGUgY29tcGxldGlvbkhhbmRsZXIgc3luY2hyb25vdXNseS4gV2UgdXNl
IHN0ZDo6b3B0aW9uYWw8PiB0byBlbnN1cmUgdGhpcyBpbnZhcmlhbnQuCi0gICAgc3RkOjpvcHRp
b25hbDxSZXRhaW5QdHI8TlNBcnJheSAqPj4gY29va2llc1B0cjsKLSAgICBhdXRvIGNvbXBsZXRp
b25IYW5kbGVyID0gWyZjb29raWVzUHRyXSAoTlNBcnJheSAqY29va2llcykgeyBjb29raWVzUHRy
ID0gcmV0YWluUHRyKGNvb2tpZXMpOyB9OwotICAgIE5TRGljdGlvbmFyeSAqcG9saWN5UHJvcGVy
dGllczsKLSAgICBpZiAoIXNhbWVTaXRlSW5mbykKLSAgICAgICAgcG9saWN5UHJvcGVydGllcyA9
IG51bGxwdHI7Ci0gICAgZWxzZSB7Ci0gICAgICAgIHN0YXRpYyBOU1VSTCAqZW1wdHlVUkwgPSBb
W05TVVJMIGFsbG9jXSBpbml0V2l0aFN0cmluZzpAIiJdOwotICAgICAgICBwb2xpY3lQcm9wZXJ0
aWVzID0gQHsKLSAgICAgICAgICAgIEAiX2tDRkhUVFBDb29raWVQb2xpY3lQcm9wZXJ0eVNpdGVG
b3JDb29raWVzIjogc2FtZVNpdGVJbmZvLT5pc1NhbWVTaXRlID8gdXJsIDogZW1wdHlVUkwsCi0g
ICAgICAgICAgICBAIl9rQ0ZIVFRQQ29va2llUG9saWN5UHJvcGVydHlJc1RvcExldmVsTmF2aWdh
dGlvbiI6IFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpzYW1lU2l0ZUluZm8tPmlzVG9wU2l0ZV0s
Ci0gICAgICAgIH07Ci0gICAgfQotICAgIGlmIChbc3RvcmFnZSByZXNwb25kc1RvU2VsZWN0b3I6
QHNlbGVjdG9yKF9nZXRDb29raWVzRm9yVVJMOm1haW5Eb2N1bWVudFVSTDpwYXJ0aXRpb246cG9s
aWN5UHJvcGVydGllczpjb21wbGV0aW9uSGFuZGxlcjopXSkKLSAgICAgICAgW3N0b3JhZ2UgX2dl
dENvb2tpZXNGb3JVUkw6dXJsIG1haW5Eb2N1bWVudFVSTDptYWluRG9jdW1lbnRVUkwgcGFydGl0
aW9uOnBhcnRpdGlvbiBwb2xpY3lQcm9wZXJ0aWVzOnBvbGljeVByb3BlcnRpZXMgY29tcGxldGlv
bkhhbmRsZXI6Y29tcGxldGlvbkhhbmRsZXJdOwotICAgIGVsc2UKLSAgICAgICAgW3N0b3JhZ2Ug
X2dldENvb2tpZXNGb3JVUkw6dXJsIG1haW5Eb2N1bWVudFVSTDptYWluRG9jdW1lbnRVUkwgcGFy
dGl0aW9uOnBhcnRpdGlvbiBjb21wbGV0aW9uSGFuZGxlcjpjb21wbGV0aW9uSGFuZGxlcl07Ci0g
ICAgVU5VU0VEX1BBUkFNKHNhbWVTaXRlSW5mbyk7Ci0gICAgQVNTRVJUKCEhY29va2llc1B0cik7
Ci0gICAgcmV0dXJuIGNvb2tpZXNQdHItPmF1dG9yZWxlYXNlKCk7Ci19Ci0KLXN0YXRpYyB2b2lk
IHNldEhUVFBDb29raWVzRm9yVVJMKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYgY29va2llU3RvcmFn
ZSwgTlNBcnJheSAqY29va2llcywgTlNVUkwgKnVybCwgTlNVUkwgKm1haW5Eb2N1bWVudFVSTCwg
Y29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8pCi17Ci0gICAgQVNTRVJUKGhhc1Byb2Nl
c3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZpbGVnZTo6Q2FuQWNjZXNzUmF3Q29va2llcykpOwotICAg
IC8vIEZJWE1FOiBXZSBzaG91bGQgbm90IGFsbG9jYXRlIHRoZSBlbXB0eSBVUkwuIEluc3RlYWQg
dXNlIENGU1RSKCkgYW5kIGNvbnZlcnQgdG8gTlNTdHJpbmcuIEV2ZW4gYmV0dGVyIGRlZmluZSB0
aGlzIGNvbnN0YW50Ci0gICAgLy8gc29tZXdoZXJlIGl0IGNhbiBiZSBzaGFyZWQuCi0gICAgc3Rh
dGljIE5TVVJMICplbXB0eVVSTCA9IFtbTlNVUkwgYWxsb2NdIGluaXRXaXRoU3RyaW5nOkAiIl07
Ci0gICAgTlNEaWN0aW9uYXJ5ICpwb2xpY3lQcm9wZXJ0aWVzID0gQHsKLSAgICAgICAgQCJfa0NG
SFRUUENvb2tpZVBvbGljeVByb3BlcnR5U2l0ZUZvckNvb2tpZXMiOiBzYW1lU2l0ZUluZm8uaXNT
YW1lU2l0ZSA/IHVybCA6IGVtcHR5VVJMLAotICAgICAgICBAIl9rQ0ZIVFRQQ29va2llUG9saWN5
UHJvcGVydHlJc1RvcExldmVsTmF2aWdhdGlvbiI6IFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpz
YW1lU2l0ZUluZm8uaXNUb3BTaXRlXSwKLSAgICB9OwotICAgIGlmICghY29va2llU3RvcmFnZSkg
ewotICAgICAgICBpZiAoW05TSFRUUENvb2tpZVN0b3JhZ2UgaW5zdGFuY2VzUmVzcG9uZFRvU2Vs
ZWN0b3I6QHNlbGVjdG9yKF9zZXRDb29raWVzOmZvclVSTDptYWluRG9jdW1lbnRVUkw6cG9saWN5
UHJvcGVydGllczopXSkKLSAgICAgICAgICAgIFtbTlNIVFRQQ29va2llU3RvcmFnZSBzaGFyZWRI
VFRQQ29va2llU3RvcmFnZV0gX3NldENvb2tpZXM6Y29va2llcyBmb3JVUkw6dXJsIG1haW5Eb2N1
bWVudFVSTDptYWluRG9jdW1lbnRVUkwgcG9saWN5UHJvcGVydGllczpwb2xpY3lQcm9wZXJ0aWVz
XTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgW1tOU0hUVFBDb29raWVTdG9yYWdlIHNoYXJl
ZEhUVFBDb29raWVTdG9yYWdlXSBzZXRDb29raWVzOmNvb2tpZXMgZm9yVVJMOnVybCBtYWluRG9j
dW1lbnRVUkw6bWFpbkRvY3VtZW50VVJMXTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBp
ZiAoW05TSFRUUENvb2tpZVN0b3JhZ2UgaW5zdGFuY2VzUmVzcG9uZFRvU2VsZWN0b3I6QHNlbGVj
dG9yKF9zZXRDb29raWVzOmZvclVSTDptYWluRG9jdW1lbnRVUkw6cG9saWN5UHJvcGVydGllczop
XSkgewotICAgICAgICAvLyBGSVhNRTogU3RvcCBjcmVhdGluZyBhIG5ldyBOU0hUVFBDb29raWVT
dG9yYWdlIG9iamVjdCBlYWNoIHRpbWUgd2Ugd2FudCB0byBxdWVyeSB0aGUgY29va2llIGphci4K
LSAgICAgICAgLy8gTmV0d29ya1N0b3JhZ2VTZXNzaW9uIGNvdWxkIGluc3RlYWQga2VlcCBhIE5T
SFRUUENvb2tpZVN0b3JhZ2Ugb2JqZWN0IGZvciB1cy4KLSAgICAgICAgUmV0YWluUHRyPE5TSFRU
UENvb2tpZVN0b3JhZ2U+IG5zQ29va2llU3RvcmFnZSA9IGFkb3B0TlMoW1tOU0hUVFBDb29raWVT
dG9yYWdlIGFsbG9jXSBfaW5pdFdpdGhDRkhUVFBDb29raWVTdG9yYWdlOmNvb2tpZVN0b3JhZ2Vd
KTsKLSAgICAgICAgW25zQ29va2llU3RvcmFnZSBfc2V0Q29va2llczpjb29raWVzIGZvclVSTDp1
cmwgbWFpbkRvY3VtZW50VVJMOm1haW5Eb2N1bWVudFVSTCBwb2xpY3lQcm9wZXJ0aWVzOnBvbGlj
eVByb3BlcnRpZXNdOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGF1dG8gY2ZDb29raWVzID0gYWRv
cHRDRihbTlNIVFRQQ29va2llIF9uczJjZkNvb2tpZXM6Y29va2llc10pOwotICAgICAgICBDRkhU
VFBDb29raWVTdG9yYWdlU2V0Q29va2llcyhjb29raWVTdG9yYWdlLCBjZkNvb2tpZXMuZ2V0KCks
IFt1cmwgX2NmdXJsXSwgW21haW5Eb2N1bWVudFVSTCBfY2Z1cmxdKTsKLSAgICB9Ci19Ci0KLXN0
YXRpYyBOU0FycmF5ICpodHRwQ29va2llc0ZvclVSTChDRkhUVFBDb29raWVTdG9yYWdlUmVmIGNv
b2tpZVN0b3JhZ2UsIE5TVVJMICpmaXJzdFBhcnR5LCBjb25zdCBzdGQ6Om9wdGlvbmFsPFNhbWVT
aXRlSW5mbz4mIHNhbWVTaXRlSW5mbywgTlNVUkwgKnVybCkKK3N0YXRpYyBOU0FycmF5ICpodHRw
Q29va2llc0ZvclVSTChDRkhUVFBDb29raWVTdG9yYWdlUmVmIGNvb2tpZVN0b3JhZ2UsIE5TVVJM
ICpmaXJzdFBhcnR5LCBOU1VSTCAqdXJsKQogewogICAgIEFTU0VSVChoYXNQcm9jZXNzUHJpdmls
ZWdlKFByb2Nlc3NQcml2aWxlZ2U6OkNhbkFjY2Vzc1Jhd0Nvb2tpZXMpKTsKICAgICBpZiAoIWNv
b2tpZVN0b3JhZ2UpCiAgICAgICAgIGNvb2tpZVN0b3JhZ2UgPSBfQ0ZIVFRQQ29va2llU3RvcmFn
ZUdldERlZmF1bHQoa0NGQWxsb2NhdG9yRGVmYXVsdCk7CiAKLSAgICAvLyBGSVhNRTogU3RvcCBj
cmVhdGluZyBhIG5ldyBOU0hUVFBDb29raWVTdG9yYWdlIG9iamVjdCBlYWNoIHRpbWUgd2Ugd2Fu
dCB0byBxdWVyeSB0aGUgY29va2llIGphci4KLSAgICAvLyBOZXR3b3JrU3RvcmFnZVNlc3Npb24g
Y291bGQgaW5zdGVhZCBrZWVwIGEgTlNIVFRQQ29va2llU3RvcmFnZSBvYmplY3QgZm9yIHVzLgot
ICAgIFJldGFpblB0cjxOU0hUVFBDb29raWVTdG9yYWdlPiBuc0Nvb2tpZVN0b3JhZ2UgPSBhZG9w
dE5TKFtbTlNIVFRQQ29va2llU3RvcmFnZSBhbGxvY10gX2luaXRXaXRoQ0ZIVFRQQ29va2llU3Rv
cmFnZTpjb29raWVTdG9yYWdlXSk7Ci0gICAgcmV0dXJuIGNvb2tpZXNGb3JVUkwobnNDb29raWVT
dG9yYWdlLmdldCgpLCB1cmwsIGZpcnN0UGFydHksIHNhbWVTaXRlSW5mbyk7CisgICAgYm9vbCBz
ZWN1cmUgPSAhW1t1cmwgc2NoZW1lXSBjYXNlSW5zZW5zaXRpdmVDb21wYXJlOkAiaHR0cHMiXTsK
KyAgICAKKyAgICBhdXRvIGNvb2tpZXMgPSBhZG9wdENGKF9DRkhUVFBDb29raWVTdG9yYWdlQ29w
eUNvb2tpZXNGb3JVUkxXaXRoTWFpbkRvY3VtZW50VVJMKGNvb2tpZVN0b3JhZ2UsIHN0YXRpY19j
YXN0PENGVVJMUmVmPih1cmwpLCBzdGF0aWNfY2FzdDxDRlVSTFJlZj4oZmlyc3RQYXJ0eSksIHNl
Y3VyZSkpOworICAgIE5TQXJyYXkgKm5zQ29va2llcyA9IFtOU0hUVFBDb29raWUgX2NmMm5zQ29v
a2llczpjb29raWVzLmdldCgpXTsKKworICAgIHJldHVybiBuc0Nvb2tpZXM7CiB9CiAKKyAgICAK
IHN0YXRpYyBSZXRhaW5QdHI8TlNBcnJheT4gZmlsdGVyQ29va2llcyhOU0FycmF5ICp1bmZpbHRl
cmVkQ29va2llcykKIHsKICAgICBBU1NFUlQoaGFzUHJvY2Vzc1ByaXZpbGVnZShQcm9jZXNzUHJp
dmlsZWdlOjpDYW5BY2Nlc3NSYXdDb29raWVzKSk7CkBAIC0xODAsNyArMTMwLDcgQEAgc3RhdGlj
IGJvb2wgY29va2llc0FyZUJsb2NrZWRGb3JVUkwoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9u
JiBzZXNzaW9uLCBjb25zdAogICAgIHJldHVybiBzZXNzaW9uLnNob3VsZEJsb2NrQ29va2llcyhm
aXJzdFBhcnR5LCB1cmwpOwogfQogCi1zdGF0aWMgTlNBcnJheSAqY29va2llc0luUGFydGl0aW9u
Rm9yVVJMKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJMJiBm
aXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1
cmwsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHN0ZDo6b3B0aW9uYWw8dWludDY0
X3Q+IHBhZ2VJRCkKK3N0YXRpYyBOU0FycmF5ICpjb29raWVzSW5QYXJ0aXRpb25Gb3JVUkwoY29u
c3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHks
IGNvbnN0IFVSTCYgdXJsLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBzdGQ6Om9w
dGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQpCiB7CiAgICAgQVNTRVJUKGhhc1Byb2Nlc3NQcml2aWxl
Z2UoUHJvY2Vzc1ByaXZpbGVnZTo6Q2FuQWNjZXNzUmF3Q29va2llcykpOwogICAgIFN0cmluZyBw
YXJ0aXRpb24gPSBzZXNzaW9uLmNvb2tpZVN0b3JhZ2VQYXJ0aXRpb24oZmlyc3RQYXJ0eSwgdXJs
LCBmcmFtZUlELCBwYWdlSUQpOwpAQCAtMTk0LDM0ICsxNDQsNDIgQEAgc3RhdGljIE5TQXJyYXkg
KmNvb2tpZXNJblBhcnRpdGlvbkZvclVSTChjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNl
c3Npb24sIGMKICAgICAgICAgY29va2llU3RvcmFnZSA9IGFkb3B0TlMoW1tOU0hUVFBDb29raWVT
dG9yYWdlIGFsbG9jXSBfaW5pdFdpdGhDRkhUVFBDb29raWVTdG9yYWdlOnN0b3JhZ2UuZ2V0KCld
KTsKICAgICBlbHNlCiAgICAgICAgIGNvb2tpZVN0b3JhZ2UgPSBbTlNIVFRQQ29va2llU3RvcmFn
ZSBzaGFyZWRIVFRQQ29va2llU3RvcmFnZV07Ci0gICAgcmV0dXJuIGNvb2tpZXNGb3JVUkwoY29v
a2llU3RvcmFnZS5nZXQoKSwgdXJsLCBmaXJzdFBhcnR5LCBzYW1lU2l0ZUluZm8sIHBhcnRpdGlv
bik7CisKKyAgICAvLyBUaGUgX2dldENvb2tpZXNGb3JVUkw6IG1ldGhvZCBjYWxscyB0aGUgY29t
cGxldGlvbkhhbmRsZXIgc3luY2hyb25vdXNseS4KKyAgICBzdGQ6Om9wdGlvbmFsPFJldGFpblB0
cjxOU0FycmF5ICo+PiBjb29raWVzUHRyOworICAgIFtjb29raWVTdG9yYWdlIF9nZXRDb29raWVz
Rm9yVVJMOnVybCBtYWluRG9jdW1lbnRVUkw6Zmlyc3RQYXJ0eSBwYXJ0aXRpb246cGFydGl0aW9u
IGNvbXBsZXRpb25IYW5kbGVyOlsmY29va2llc1B0cl0oTlNBcnJheSAqY29va2llcykgeworICAg
ICAgICBjb29raWVzUHRyID0gcmV0YWluUHRyKGNvb2tpZXMpOworICAgIH1dOworICAgIEFTU0VS
VCghIWNvb2tpZXNQdHIpOworCisgICAgcmV0dXJuIGNvb2tpZXNQdHItPmF1dG9yZWxlYXNlKCk7
CiB9CiAKICNlbmRpZiAvLyBIQVZFKENGTkVUV09SS19TVE9SQUdFX1BBUlRJVElPTklORykKICAg
ICAKLXN0YXRpYyBOU0FycmF5ICpjb29raWVzRm9yVVJMKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vz
c2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8m
IHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZy
YW1lSUQsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCkKK3N0YXRpYyBOU0FycmF5ICpj
b29raWVzRm9yVVJMKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3Qg
VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVybCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4g
ZnJhbWVJRCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gcGFnZUlEKQogewogI2lmIEhBVkUoQ0ZO
RVRXT1JLX1NUT1JBR0VfUEFSVElUSU9OSU5HKQogICAgIGlmIChjb29raWVzQXJlQmxvY2tlZEZv
clVSTChzZXNzaW9uLCBmaXJzdFBhcnR5LCB1cmwpKQogICAgICAgICByZXR1cm4gbmlsOwogICAg
IAotICAgIGlmIChOU0FycmF5ICpjb29raWVzID0gY29va2llc0luUGFydGl0aW9uRm9yVVJMKHNl
c3Npb24sIGZpcnN0UGFydHksIHNhbWVTaXRlSW5mbywgdXJsLCBmcmFtZUlELCBwYWdlSUQpKQor
ICAgIGlmIChOU0FycmF5ICpjb29raWVzID0gY29va2llc0luUGFydGl0aW9uRm9yVVJMKHNlc3Np
b24sIGZpcnN0UGFydHksIHVybCwgZnJhbWVJRCwgcGFnZUlEKSkKICAgICAgICAgcmV0dXJuIGNv
b2tpZXM7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShmcmFtZUlEKTsKICAgICBVTlVTRURfUEFS
QU0ocGFnZUlEKTsKICNlbmRpZgotICAgIHJldHVybiBodHRwQ29va2llc0ZvclVSTChzZXNzaW9u
LmNvb2tpZVN0b3JhZ2UoKS5nZXQoKSwgZmlyc3RQYXJ0eSwgc2FtZVNpdGVJbmZvLCB1cmwpOwor
ICAgIHJldHVybiBodHRwQ29va2llc0ZvclVSTChzZXNzaW9uLmNvb2tpZVN0b3JhZ2UoKS5nZXQo
KSwgZmlyc3RQYXJ0eSwgdXJsKTsKIH0KIAogZW51bSBJbmNsdWRlSFRUUE9ubHlPck5vdCB7IERv
Tm90SW5jbHVkZUhUVFBPbmx5LCBJbmNsdWRlSFRUUE9ubHkgfTsKLXN0YXRpYyBzdGQ6OnBhaXI8
U3RyaW5nLCBib29sPiBjb29raWVzRm9yU2Vzc2lvbihjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Np
b24mIHNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBz
YW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFt
ZUlELCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQsIEluY2x1ZGVIVFRQT25seU9yTm90
IGluY2x1ZGVIVFRQT25seSwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tp
ZXMpCitzdGF0aWMgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llc0ZvclNlc3Npb24oY29u
c3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHks
IGNvbnN0IFVSTCYgdXJsLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBzdGQ6Om9w
dGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQsIEluY2x1ZGVIVFRQT25seU9yTm90IGluY2x1ZGVIVFRQ
T25seSwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpCiB7CiAgICAg
QVNTRVJUKGhhc1Byb2Nlc3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZpbGVnZTo6Q2FuQWNjZXNzUmF3
Q29va2llcykpOwogCiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogCi0gICAgTlNB
cnJheSAqY29va2llcyA9IGNvb2tpZXNGb3JVUkwoc2Vzc2lvbiwgZmlyc3RQYXJ0eSwgc2FtZVNp
dGVJbmZvLCB1cmwsIGZyYW1lSUQsIHBhZ2VJRCk7CisgICAgTlNBcnJheSAqY29va2llcyA9IGNv
b2tpZXNGb3JVUkwoc2Vzc2lvbiwgZmlyc3RQYXJ0eSwgdXJsLCBmcmFtZUlELCBwYWdlSUQpOwog
ICAgIGlmICghW2Nvb2tpZXMgY291bnRdKQogICAgICAgICByZXR1cm4geyBTdHJpbmcoKSwgZmFs
c2UgfTsgLy8gUmV0dXJuIGEgbnVsbCBzdHJpbmcsIG5vdCBhbiBlbXB0eSBvbmUgdGhhdCBTdHJp
bmdCdWlsZGVyIHdvdWxkIGNyZWF0ZSBiZWxvdy4KIApAQCAtMjUzLDYgKzIxMSwxOSBAQCBzdGF0
aWMgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llc0ZvclNlc3Npb24oY29uc3QgTmV0d29y
a1N0b3JhZ2VTZXNzaW9uJiBzZQogICAgIHJldHVybiB7IFN0cmluZygpLCBmYWxzZSB9OwogfQog
CitzdGF0aWMgdm9pZCBzZXRIVFRQQ29va2llc0ZvclVSTChDRkhUVFBDb29raWVTdG9yYWdlUmVm
IGNvb2tpZVN0b3JhZ2UsIE5TQXJyYXkgKmNvb2tpZXMsIE5TVVJMICp1cmwsIE5TVVJMICptYWlu
RG9jdW1lbnRVUkwpCit7CisgICAgQVNTRVJUKGhhc1Byb2Nlc3NQcml2aWxlZ2UoUHJvY2Vzc1By
aXZpbGVnZTo6Q2FuQWNjZXNzUmF3Q29va2llcykpOworCisgICAgaWYgKCFjb29raWVTdG9yYWdl
KSB7CisgICAgICAgIFtbTlNIVFRQQ29va2llU3RvcmFnZSBzaGFyZWRIVFRQQ29va2llU3RvcmFn
ZV0gc2V0Q29va2llczpjb29raWVzIGZvclVSTDp1cmwgbWFpbkRvY3VtZW50VVJMOm1haW5Eb2N1
bWVudFVSTF07CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIGNmQ29va2llcyA9
IGFkb3B0Q0YoW05TSFRUUENvb2tpZSBfbnMyY2ZDb29raWVzOmNvb2tpZXNdKTsKKyAgICBDRkhU
VFBDb29raWVTdG9yYWdlU2V0Q29va2llcyhjb29raWVTdG9yYWdlLCBjZkNvb2tpZXMuZ2V0KCks
IFt1cmwgX2NmdXJsXSwgW21haW5Eb2N1bWVudFVSTCBfY2Z1cmxdKTsKK30KKwogc3RhdGljIHZv
aWQgZGVsZXRlQWxsSFRUUENvb2tpZXMoQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiBjb29raWVTdG9y
YWdlKQogewogICAgIEFTU0VSVChoYXNQcm9jZXNzUHJpdmlsZWdlKFByb2Nlc3NQcml2aWxlZ2U6
OkNhbkFjY2Vzc1Jhd0Nvb2tpZXMpKTsKQEAgLTI3MSwyMiArMjQyLDIyIEBAIHN0YXRpYyB2b2lk
IGRlbGV0ZUFsbEhUVFBDb29raWVzKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYgY29va2llU3RvcmFn
ZSkKICAgICBDRkhUVFBDb29raWVTdG9yYWdlRGVsZXRlQWxsQ29va2llcyhjb29raWVTdG9yYWdl
KTsKIH0KIAotc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llc0ZvckRPTShjb25zdCBOZXR3
b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3Qg
U2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBzdGQ6Om9wdGlvbmFs
PHVpbnQ2NF90PiBmcmFtZUlELCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQsIEluY2x1
ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKQorc3RkOjpwYWlyPFN0cmluZywg
Ym9vbD4gY29va2llc0ZvckRPTShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24s
IGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiB1cmwsIHN0ZDo6b3B0aW9uYWw8dWlu
dDY0X3Q+IGZyYW1lSUQsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCwgSW5jbHVkZVNl
Y3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpCiB7Ci0gICAgcmV0dXJuIGNvb2tpZXNG
b3JTZXNzaW9uKHNlc3Npb24sIGZpcnN0UGFydHksIHNhbWVTaXRlSW5mbywgdXJsLCBmcmFtZUlE
LCBwYWdlSUQsIERvTm90SW5jbHVkZUhUVFBPbmx5LCBpbmNsdWRlU2VjdXJlQ29va2llcyk7Cisg
ICAgcmV0dXJuIGNvb2tpZXNGb3JTZXNzaW9uKHNlc3Npb24sIGZpcnN0UGFydHksIHVybCwgZnJh
bWVJRCwgcGFnZUlELCBEb05vdEluY2x1ZGVIVFRQT25seSwgaW5jbHVkZVNlY3VyZUNvb2tpZXMp
OwogfQogCi1zdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRW
YWx1ZShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgZmly
c3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJs
LCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90
PiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKQorc3Rk
OjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3Qg
TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNv
bnN0IFVSTCYgdXJsLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBzdGQ6Om9wdGlv
bmFsPHVpbnQ2NF90PiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVD
b29raWVzKQogewotICAgIHJldHVybiBjb29raWVzRm9yU2Vzc2lvbihzZXNzaW9uLCBmaXJzdFBh
cnR5LCBzYW1lU2l0ZUluZm8sIHVybCwgZnJhbWVJRCwgcGFnZUlELCBJbmNsdWRlSFRUUE9ubHks
IGluY2x1ZGVTZWN1cmVDb29raWVzKTsKKyAgICByZXR1cm4gY29va2llc0ZvclNlc3Npb24oc2Vz
c2lvbiwgZmlyc3RQYXJ0eSwgdXJsLCBmcmFtZUlELCBwYWdlSUQsIEluY2x1ZGVIVFRQT25seSwg
aW5jbHVkZVNlY3VyZUNvb2tpZXMpOwogfQogCiBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29r
aWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNl
c3Npb24sIGNvbnN0IENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5JiBoZWFkZXJGaWVsZFBy
b3h5KQogewotICAgIHJldHVybiBjb29raWVzRm9yU2Vzc2lvbihzZXNzaW9uLCBoZWFkZXJGaWVs
ZFByb3h5LmZpcnN0UGFydHksIGhlYWRlckZpZWxkUHJveHkuc2FtZVNpdGVJbmZvLCBoZWFkZXJG
aWVsZFByb3h5LnVybCwgaGVhZGVyRmllbGRQcm94eS5mcmFtZUlELCBoZWFkZXJGaWVsZFByb3h5
LnBhZ2VJRCwgSW5jbHVkZUhUVFBPbmx5LCBoZWFkZXJGaWVsZFByb3h5LmluY2x1ZGVTZWN1cmVD
b29raWVzKTsKKyAgICByZXR1cm4gY29va2llc0ZvclNlc3Npb24oc2Vzc2lvbiwgaGVhZGVyRmll
bGRQcm94eS5maXJzdFBhcnR5LCBoZWFkZXJGaWVsZFByb3h5LnVybCwgaGVhZGVyRmllbGRQcm94
eS5mcmFtZUlELCBoZWFkZXJGaWVsZFByb3h5LnBhZ2VJRCwgSW5jbHVkZUhUVFBPbmx5LCBoZWFk
ZXJGaWVsZFByb3h5LmluY2x1ZGVTZWN1cmVDb29raWVzKTsKIH0KIAotdm9pZCBzZXRDb29raWVz
RnJvbURPTShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYg
Zmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYg
dXJsLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBzdGQ6Om9wdGlvbmFsPHVpbnQ2
NF90PiBwYWdlSUQsIGNvbnN0IFN0cmluZyYgY29va2llU3RyKQordm9pZCBzZXRDb29raWVzRnJv
bURPTShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgZmly
c3RQYXJ0eSwgY29uc3QgVVJMJiB1cmwsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQs
IHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiBjb29raWVTdHIp
CiB7CiAgICAgQVNTRVJUKGhhc1Byb2Nlc3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZpbGVnZTo6Q2Fu
QWNjZXNzUmF3Q29va2llcykpOwogCkBAIC0zMjUsNyArMjk2LDcgQEAgdm9pZCBzZXRDb29raWVz
RnJvbURPTShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYg
Zmlyc3RQYXIKICAgICBVTlVTRURfUEFSQU0ocGFnZUlEKTsKICNlbmRpZgogCi0gICAgc2V0SFRU
UENvb2tpZXNGb3JVUkwoc2Vzc2lvbi5jb29raWVTdG9yYWdlKCkuZ2V0KCksIGZpbHRlcmVkQ29v
a2llcy5nZXQoKSwgY29va2llVVJMLCBmaXJzdFBhcnR5LCBzYW1lU2l0ZUluZm8pOworICAgIHNl
dEhUVFBDb29raWVzRm9yVVJMKHNlc3Npb24uY29va2llU3RvcmFnZSgpLmdldCgpLCBmaWx0ZXJl
ZENvb2tpZXMuZ2V0KCksIGNvb2tpZVVSTCwgZmlyc3RQYXJ0eSk7CiAKICAgICBFTkRfQkxPQ0tf
T0JKQ19FWENFUFRJT05TOwogfQpAQCAtMzUxLDEyICszMjIsMTIgQEAgYm9vbCBjb29raWVzRW5h
YmxlZChjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24pCiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCi1ib29sIGdldFJhd0Nvb2tpZXMoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9u
JiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2Ft
ZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJ
RCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gcGFnZUlELCBWZWN0b3I8Q29va2llPiYgcmF3Q29v
a2llcykKK2Jvb2wgZ2V0UmF3Q29va2llcyhjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNl
c3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiB1cmwsIHN0ZDo6b3B0aW9u
YWw8dWludDY0X3Q+IGZyYW1lSUQsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCwgVmVj
dG9yPENvb2tpZT4mIHJhd0Nvb2tpZXMpCiB7CiAgICAgcmF3Q29va2llcy5jbGVhcigpOwogICAg
IEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIAotICAgIE5TQXJyYXkgKmNvb2tpZXMgPSBj
b29raWVzRm9yVVJMKHNlc3Npb24sIGZpcnN0UGFydHksIHNhbWVTaXRlSW5mbywgdXJsLCBmcmFt
ZUlELCBwYWdlSUQpOworICAgIE5TQXJyYXkgKmNvb2tpZXMgPSBjb29raWVzRm9yVVJMKHNlc3Np
b24sIGZpcnN0UGFydHksIHVybCwgZnJhbWVJRCwgcGFnZUlEKTsKICAgICBOU1VJbnRlZ2VyIGNv
dW50ID0gW2Nvb2tpZXMgY291bnRdOwogICAgIHJhd0Nvb2tpZXMucmVzZXJ2ZUNhcGFjaXR5KGNv
dW50KTsKICAgICBmb3IgKE5TVUludGVnZXIgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CkBAIC0z
NzUsNyArMzQ2LDcgQEAgdm9pZCBkZWxldGVDb29raWUoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNz
aW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3QKICAgICBCRUdJTl9CTE9DS19P
QkpDX0VYQ0VQVElPTlM7CiAKICAgICBSZXRhaW5QdHI8Q0ZIVFRQQ29va2llU3RvcmFnZVJlZj4g
Y29va2llU3RvcmFnZSA9IHNlc3Npb24uY29va2llU3RvcmFnZSgpOwotICAgIE5TQXJyYXkgKmNv
b2tpZXMgPSBodHRwQ29va2llc0ZvclVSTChjb29raWVTdG9yYWdlLmdldCgpLCBuaWwsIHN0ZDo6
bnVsbG9wdCwgdXJsKTsKKyAgICBOU0FycmF5ICpjb29raWVzID0gaHR0cENvb2tpZXNGb3JVUkwo
Y29va2llU3RvcmFnZS5nZXQoKSwgbmlsLCB1cmwpOwogCiAgICAgTlNTdHJpbmcgKmNvb2tpZU5h
bWVTdHJpbmcgPSBjb29raWVOYW1lOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llSmFyU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llSmFyU291cC5jcHAKaW5kZXggZGVhZGZhNGZmZWYxMGVk
YzMzNWU1YjJmNjc2OGExYmI2NjNkNDRmYi4uZmEwZDQ4MWViYWNmOTc4OGIzNDUwNzQyZGY1YTYx
NzVlYThkODVkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9z
b3VwL0Nvb2tpZUphclNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvc291cC9Db29raWVKYXJTb3VwLmNwcApAQCAtNTEsNyArNTEsNyBAQCBzdGF0aWMgaW5saW5l
IGJvb2wgaHR0cE9ubHlDb29raWVFeGlzdHMoY29uc3QgR1NMaXN0KiBjb29raWVzLCBjb25zdCBn
Y2hhciogbmFtZQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBzZXRDb29raWVzRnJvbURP
TShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQ
YXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiB1cmwsIHN0ZDo6b3B0aW9uYWw8
dWludDY0X3Q+IGZyYW1lSUQsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCwgY29uc3Qg
U3RyaW5nJiB2YWx1ZSkKK3ZvaWQgc2V0Q29va2llc0Zyb21ET00oY29uc3QgTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFVSTCYgdXJs
LCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90
PiBwYWdlSUQsIGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGZyYW1l
SUQpOwogICAgIFVOVVNFRF9QQVJBTShwYWdlSUQpOwpAQCAtMTE5LDE3ICsxMTksMTUgQEAgc3Rh
dGljIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IGNvb2tpZXNGb3JTZXNzaW9uKGNvbnN0IE5ldHdv
cmtTdG9yYWdlU2Vzc2lvbiYgc2UKICAgICByZXR1cm4geyBTdHJpbmc6OmZyb21VVEY4KGNvb2tp
ZUhlYWRlci5nZXQoKSksIGRpZEFjY2Vzc1NlY3VyZUNvb2tpZXMgfTsKIH0KIAotc3RkOjpwYWly
PFN0cmluZywgYm9vbD4gY29va2llc0ZvckRPTShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24m
IHNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29u
c3QgVVJMJiB1cmwsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHN0ZDo6b3B0aW9u
YWw8dWludDY0X3Q+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNv
b2tpZXMpCitzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVzRm9yRE9NKGNvbnN0IE5ldHdv
cmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJMJiwgY29uc3QgVVJMJiB1cmwsIHN0
ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHBh
Z2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpCiB7Ci0gICAg
VU5VU0VEX1BBUkFNKGZpcnN0UGFydHkpOwogICAgIFVOVVNFRF9QQVJBTShmcmFtZUlEKTsKICAg
ICBVTlVTRURfUEFSQU0ocGFnZUlEKTsKICAgICByZXR1cm4gY29va2llc0ZvclNlc3Npb24oc2Vz
c2lvbiwgdXJsLCBmYWxzZSwgaW5jbHVkZVNlY3VyZUNvb2tpZXMpOwogfQogCi1zdGQ6OnBhaXI8
U3RyaW5nLCBib29sPiBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBOZXR3b3Jr
U3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2Ft
ZVNpdGVJbmZvJiwgY29uc3QgVVJMJiB1cmwsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1l
SUQsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMg
aW5jbHVkZVNlY3VyZUNvb2tpZXMpCitzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVSZXF1
ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24s
IGNvbnN0IFVSTCYgLypmaXJzdFBhcnR5Ki8sIGNvbnN0IFVSTCYgdXJsLCBzdGQ6Om9wdGlvbmFs
PHVpbnQ2NF90PiBmcmFtZUlELCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQsIEluY2x1
ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKQogewotICAgIFVOVVNFRF9QQVJB
TShmaXJzdFBhcnR5KTsKICAgICBVTlVTRURfUEFSQU0oZnJhbWVJRCk7CiAgICAgVU5VU0VEX1BB
UkFNKHBhZ2VJRCk7CiAgICAgLy8gU2VjdXJlIGNvb2tpZXMgd2lsbCBzdGlsbCBvbmx5IGJlIGlu
Y2x1ZGVkIGlmIHVybCdzIHByb3RvY29sIGlzIGh0dHBzLgpAQCAtMTM4LDcgKzEzNiw3IEBAIHN0
ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvCiAKIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IGNvb2tpZVJl
cXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lv
biwgY29uc3QgQ29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkmIGhlYWRlckZpZWxkUHJveHkp
CiB7Ci0gICAgcmV0dXJuIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKHNlc3Npb24sIGhl
YWRlckZpZWxkUHJveHkuZmlyc3RQYXJ0eSwgaGVhZGVyRmllbGRQcm94eS5zYW1lU2l0ZUluZm8s
IGhlYWRlckZpZWxkUHJveHkudXJsLCBoZWFkZXJGaWVsZFByb3h5LmZyYW1lSUQsIGhlYWRlckZp
ZWxkUHJveHkucGFnZUlELCBoZWFkZXJGaWVsZFByb3h5LmluY2x1ZGVTZWN1cmVDb29raWVzKTsK
KyAgICByZXR1cm4gY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoc2Vzc2lvbiwgaGVhZGVy
RmllbGRQcm94eS5maXJzdFBhcnR5LCBoZWFkZXJGaWVsZFByb3h5LnVybCwgaGVhZGVyRmllbGRQ
cm94eS5mcmFtZUlELCBoZWFkZXJGaWVsZFByb3h5LnBhZ2VJRCwgaGVhZGVyRmllbGRQcm94eS5p
bmNsdWRlU2VjdXJlQ29va2llcyk7CiB9CiAKIGJvb2wgY29va2llc0VuYWJsZWQoY29uc3QgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uKQpAQCAtMTQ3LDkgKzE0NSw4IEBAIGJvb2wgY29v
a2llc0VuYWJsZWQoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uKQogICAgIHJl
dHVybiBwb2xpY3kgPT0gU09VUF9DT09LSUVfSkFSX0FDQ0VQVF9BTFdBWVMgfHwgcG9saWN5ID09
IFNPVVBfQ09PS0lFX0pBUl9BQ0NFUFRfTk9fVEhJUkRfUEFSVFk7CiB9CiAKLWJvb2wgZ2V0UmF3
Q29va2llcyhjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYg
Zmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiB1cmwsIHN0ZDo6b3B0
aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCwg
VmVjdG9yPENvb2tpZT4mIHJhd0Nvb2tpZXMpCitib29sIGdldFJhd0Nvb2tpZXMoY29uc3QgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIC8qZmlyc3RQYXJ0eSovLCBj
b25zdCBVUkwmIHVybCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgc3RkOjpvcHRp
b25hbDx1aW50NjRfdD4gcGFnZUlELCBWZWN0b3I8Q29va2llPiYgcmF3Q29va2llcykKIHsKLSAg
ICBVTlVTRURfUEFSQU0oZmlyc3RQYXJ0eSk7CiAgICAgVU5VU0VEX1BBUkFNKGZyYW1lSUQpOwog
ICAgIFVOVVNFRF9QQVJBTShwYWdlSUQpOwogICAgIHJhd0Nvb2tpZXMuY2xlYXIoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3Jr
ZXJUaHJlYWRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4
dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwCmluZGV4IDg5NDY3ZjNlZmM4YTE3NTkzN2Ni
ZDYyMzM3N2M2NGM5ZDE0MTg0ZDUuLjY2ODY1NzA3N2U5ZWY5ZDM1YTExYTM4ODgzNjFmY2UyYzhj
Mjc4ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0
L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcApAQCAtNjYsOCAr
NjYsNyBAQCBzdGF0aWMgaW5saW5lIFVuaXF1ZVJlZjxQYWdlPiBjcmVhdGVQYWdlRm9yU2Vydmlj
ZVdvcmtlcihQYWdlQ29uZmlndXJhdGlvbiYmIGNvbgogICAgIGF1dG8gb3JpZ2luID0gZGF0YS5y
ZWdpc3RyYXRpb24ua2V5LnRvcE9yaWdpbigpLnNlY3VyaXR5T3JpZ2luKCk7CiAgICAgb3JpZ2lu
LT5zZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3koc3RvcmFnZUJsb2NraW5nUG9saWN5KTsKIAotICAg
IGRvY3VtZW50LT5zZXRGaXJzdFBhcnR5Rm9yU2FtZVNpdGVDb29raWVzKHRvcE9yaWdpblVSTChv
cmlnaW4pKTsKLSAgICBkb2N1bWVudC0+c2V0Rmlyc3RQYXJ0eUZvckNvb2tpZXMoZGF0YS5zY3Jp
cHRVUkwpOworICAgIGRvY3VtZW50LT5zZXRGaXJzdFBhcnR5Rm9yQ29va2llcyh0b3BPcmlnaW5V
Ukwob3JpZ2luKSk7CiAgICAgZG9jdW1lbnQtPnNldERvbWFpbkZvckNhY2hlUGFydGl0aW9uKG9y
aWdpbi0+ZG9tYWluRm9yQ2FjaGVQYXJ0aXRpb24oKSk7CiAgICAgbWFpbkZyYW1lLnNldERvY3Vt
ZW50KFdURk1vdmUoZG9jdW1lbnQpKTsKICAgICByZXR1cm4gcGFnZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9Y
U0xUUHJvY2Vzc29yLmNwcAppbmRleCBjMGU2ODkwYzNhYzRkODZjOTRkZTkyNDU5MjZjOTFkMGJh
NDBlNDg4Li5hOTBiOTY1MDA0YzQ4ZmI0OTA0ZWI3ZmMyYmUxYmM2MzNhNzIwNmE1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3Nvci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUveG1sL1hTTFRQcm9jZXNzb3IuY3BwCkBAIC05MSw3ICs5MSw2IEBAIFJlZjxEb2N1bWVu
dD4gWFNMVFByb2Nlc3Nvcjo6Y3JlYXRlRG9jdW1lbnRGcm9tU291cmNlKGNvbnN0IFN0cmluZyYg
c291cmNlU3RyaW5nCiAgICAgICAgICAgICByZXN1bHQtPnNldFNlY3VyaXR5T3JpZ2luUG9saWN5
KG9sZERvY3VtZW50LT5zZWN1cml0eU9yaWdpblBvbGljeSgpKTsKICAgICAgICAgICAgIHJlc3Vs
dC0+c2V0Q29va2llVVJMKG9sZERvY3VtZW50LT5jb29raWVVUkwoKSk7CiAgICAgICAgICAgICBy
ZXN1bHQtPnNldEZpcnN0UGFydHlGb3JDb29raWVzKG9sZERvY3VtZW50LT5maXJzdFBhcnR5Rm9y
Q29va2llcygpKTsKLSAgICAgICAgICAgIHJlc3VsdC0+c2V0Rmlyc3RQYXJ0eUZvclNhbWVTaXRl
Q29va2llcyhvbGREb2N1bWVudC0+Zmlyc3RQYXJ0eUZvclNhbWVTaXRlQ29va2llcygpKTsKICAg
ICAgICAgICAgIHJlc3VsdC0+c2V0U3RyaWN0TWl4ZWRDb250ZW50TW9kZShvbGREb2N1bWVudC0+
aXNTdHJpY3RNaXhlZENvbnRlbnRNb2RlKCkpOwogICAgICAgICAgICAgcmVzdWx0LT5jb250ZW50
U2VjdXJpdHlQb2xpY3koKS0+Y29weVN0YXRlRnJvbShvbGREb2N1bWVudC0+Y29udGVudFNlY3Vy
aXR5UG9saWN5KCkpOwogICAgICAgICAgICAgcmVzdWx0LT5jb250ZW50U2VjdXJpdHlQb2xpY3ko
KS0+Y29weVVwZ3JhZGVJbnNlY3VyZVJlcXVlc3RTdGF0ZUZyb20oKm9sZERvY3VtZW50LT5jb250
ZW50U2VjdXJpdHlQb2xpY3koKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IDE3
OWMyNGYxZGQzM2E5MTNkMjE2Nzg3NmYxMDJmNjgxYzU4OTNmZjAuLmEzMmY3MjhkMzdiOTU0ZjMx
M2MwOTA3ZmJhZDhiMGJiZmZiMjAwN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBA
IC01NSw3ICs1NSw2IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUNvb2tpZUphci5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkZXJPcHRpb25zLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1NhbWVTaXRlSW5mby5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlQb2xpY3kuaD4KICNpbmNsdWRlIDxwYWwvU2Vz
c2lvbklELmg+CiAKQEAgLTM1OCwyMyArMzU3LDIzIEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OmNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChQQUw6OlNlc3Np
CiAgICAgbG9hZGVyLT5jb252ZXJ0VG9Eb3dubG9hZChkb3dubG9hZElELCByZXF1ZXN0LCByZXNw
b25zZSk7CiB9CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZXNG
b3JET00oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNv
bnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgc3RkOjpvcHRp
b25hbDx1aW50NjRfdD4gZnJhbWVJRCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gcGFnZUlELCBJ
bmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcywgU3RyaW5nJiBjb29raWVT
dHJpbmcsIGJvb2wmIHNlY3VyZUNvb2tpZXNBY2Nlc3NlZCkKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OmNvb2tpZXNGb3JET00oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBj
b25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFVSTCYgdXJsLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2
NF90PiBmcmFtZUlELCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQsIEluY2x1ZGVTZWN1
cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzLCBTdHJpbmcmIGNvb2tpZVN0cmluZywgYm9v
bCYgc2VjdXJlQ29va2llc0FjY2Vzc2VkKQogewogICAgIGF1dG8mIG5ldHdvcmtTdG9yYWdlU2Vz
c2lvbiA9IHN0b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCk7Ci0gICAgc3RkOjp0aWUoY29va2llU3Ry
aW5nLCBzZWN1cmVDb29raWVzQWNjZXNzZWQpID0gV2ViQ29yZTo6Y29va2llc0ZvckRPTShuZXR3
b3JrU3RvcmFnZVNlc3Npb24sIGZpcnN0UGFydHksIHNhbWVTaXRlSW5mbywgdXJsLCBmcmFtZUlE
LCBwYWdlSUQsIGluY2x1ZGVTZWN1cmVDb29raWVzKTsKKyAgICBzdGQ6OnRpZShjb29raWVTdHJp
bmcsIHNlY3VyZUNvb2tpZXNBY2Nlc3NlZCkgPSBXZWJDb3JlOjpjb29raWVzRm9yRE9NKG5ldHdv
cmtTdG9yYWdlU2Vzc2lvbiwgZmlyc3RQYXJ0eSwgdXJsLCBmcmFtZUlELCBwYWdlSUQsIGluY2x1
ZGVTZWN1cmVDb29raWVzKTsKICNpZiBIQVZFKENGTkVUV09SS19TVE9SQUdFX1BBUlRJVElPTklO
RykgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgaWYgKE5ldHdvcmtQcm9jZXNzOjpzaW5n
bGV0b24oKS5zaG91bGRMb2dDb29raWVJbmZvcm1hdGlvbigpKQotICAgICAgICBOZXR3b3JrUmVz
b3VyY2VMb2FkZXI6OmxvZ0Nvb2tpZUluZm9ybWF0aW9uKCJOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6Y29va2llc0ZvckRPTSIsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qgdm9pZCo+KHRo
aXMpLCBuZXR3b3JrU3RvcmFnZVNlc3Npb24sIGZpcnN0UGFydHksIHNhbWVTaXRlSW5mbywgdXJs
LCBlbXB0eVN0cmluZygpLCBmcmFtZUlELCBwYWdlSUQsIHN0ZDo6bnVsbG9wdCk7CisgICAgICAg
IE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6bG9nQ29va2llSW5mb3JtYXRpb24oIk5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29raWVzRm9yRE9NIiwgcmVpbnRlcnByZXRfY2FzdDxjb25z
dCB2b2lkKj4odGhpcyksIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiwgZmlyc3RQYXJ0eSwgdXJsLCBl
bXB0eVN0cmluZygpLCBmcmFtZUlELCBwYWdlSUQsIHN0ZDo6bnVsbG9wdCk7CiAjZW5kaWYKIH0K
IAotdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c2V0Q29va2llc0Zyb21ET00o
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNh
bWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgc3RkOjpvcHRpb25hbDx1
aW50NjRfdD4gZnJhbWVJRCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gcGFnZUlELCBjb25zdCBT
dHJpbmcmIGNvb2tpZVN0cmluZykKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OnNldENvb2tpZXNGcm9tRE9NKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBm
aXJzdFBhcnR5LCBjb25zdCBVUkwmIHVybCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJ
RCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gcGFnZUlELCBjb25zdCBTdHJpbmcmIGNvb2tpZVN0
cmluZykKIHsKICAgICBhdXRvJiBuZXR3b3JrU3RvcmFnZVNlc3Npb24gPSBzdG9yYWdlU2Vzc2lv
bihzZXNzaW9uSUQpOwotICAgIFdlYkNvcmU6OnNldENvb2tpZXNGcm9tRE9NKG5ldHdvcmtTdG9y
YWdlU2Vzc2lvbiwgZmlyc3RQYXJ0eSwgc2FtZVNpdGVJbmZvLCB1cmwsIGZyYW1lSUQsIHBhZ2VJ
RCwgY29va2llU3RyaW5nKTsKKyAgICBXZWJDb3JlOjpzZXRDb29raWVzRnJvbURPTShuZXR3b3Jr
U3RvcmFnZVNlc3Npb24sIGZpcnN0UGFydHksIHVybCwgZnJhbWVJRCwgcGFnZUlELCBjb29raWVT
dHJpbmcpOwogI2lmIEhBVkUoQ0ZORVRXT1JLX1NUT1JBR0VfUEFSVElUSU9OSU5HKSAmJiAhUkVM
RUFTRV9MT0dfRElTQUJMRUQKICAgICBpZiAoTmV0d29ya1Byb2Nlc3M6OnNpbmdsZXRvbigpLnNo
b3VsZExvZ0Nvb2tpZUluZm9ybWF0aW9uKCkpCi0gICAgICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRl
cjo6bG9nQ29va2llSW5mb3JtYXRpb24oIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpz
ZXRDb29raWVzRnJvbURPTSIsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qgdm9pZCo+KHRoaXMpLCBu
ZXR3b3JrU3RvcmFnZVNlc3Npb24sIGZpcnN0UGFydHksIHNhbWVTaXRlSW5mbywgdXJsLCBlbXB0
eVN0cmluZygpLCBmcmFtZUlELCBwYWdlSUQsIHN0ZDo6bnVsbG9wdCk7CisgICAgICAgIE5ldHdv
cmtSZXNvdXJjZUxvYWRlcjo6bG9nQ29va2llSW5mb3JtYXRpb24oIk5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpzZXRDb29raWVzRnJvbURPTSIsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
dm9pZCo+KHRoaXMpLCBuZXR3b3JrU3RvcmFnZVNlc3Npb24sIGZpcnN0UGFydHksIHVybCwgZW1w
dHlTdHJpbmcoKSwgZnJhbWVJRCwgcGFnZUlELCBzdGQ6Om51bGxvcHQpOwogI2VuZGlmCiB9CiAK
QEAgLTM4MywxNCArMzgyLDE0IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OmNvb2tpZXNFbmFibGVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vCiAgICAgcmVzdWx0
ID0gV2ViQ29yZTo6Y29va2llc0VuYWJsZWQoc3RvcmFnZVNlc3Npb24oc2Vzc2lvbklEKSk7CiB9
CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZVJlcXVlc3RIZWFk
ZXJGaWVsZFZhbHVlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBh
cnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIHN0
ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHBh
Z2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMsIFN0cmluZyYg
Y29va2llU3RyaW5nLCBib29sJiBzZWN1cmVDb29raWVzQWNjZXNzZWQpCit2b2lkIE5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiB1
cmwsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHN0ZDo6b3B0aW9uYWw8dWludDY0
X3Q+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMsIFN0
cmluZyYgY29va2llU3RyaW5nLCBib29sJiBzZWN1cmVDb29raWVzQWNjZXNzZWQpCiB7Ci0gICAg
c3RkOjp0aWUoY29va2llU3RyaW5nLCBzZWN1cmVDb29raWVzQWNjZXNzZWQpID0gV2ViQ29yZTo6
Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoc3RvcmFnZVNlc3Npb24oc2Vzc2lvbklEKSwg
Zmlyc3RQYXJ0eSwgc2FtZVNpdGVJbmZvLCB1cmwsIGZyYW1lSUQsIHBhZ2VJRCwgaW5jbHVkZVNl
Y3VyZUNvb2tpZXMpOworICAgIHN0ZDo6dGllKGNvb2tpZVN0cmluZywgc2VjdXJlQ29va2llc0Fj
Y2Vzc2VkKSA9IFdlYkNvcmU6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKHN0b3JhZ2VT
ZXNzaW9uKHNlc3Npb25JRCksIGZpcnN0UGFydHksIHVybCwgZnJhbWVJRCwgcGFnZUlELCBpbmNs
dWRlU2VjdXJlQ29va2llcyk7CiB9CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OmdldFJhd0Nvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZp
cnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVy
bCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgc3RkOjpvcHRpb25hbDx1aW50NjRf
dD4gcGFnZUlELCBWZWN0b3I8Q29va2llPiYgcmVzdWx0KQordm9pZCBOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6Z2V0UmF3Q29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNv
bnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiB1cmwsIHN0ZDo6b3B0aW9uYWw8dWludDY0
X3Q+IGZyYW1lSUQsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCwgVmVjdG9yPENvb2tp
ZT4mIHJlc3VsdCkKIHsKLSAgICBXZWJDb3JlOjpnZXRSYXdDb29raWVzKHN0b3JhZ2VTZXNzaW9u
KHNlc3Npb25JRCksIGZpcnN0UGFydHksIHNhbWVTaXRlSW5mbywgdXJsLCBmcmFtZUlELCBwYWdl
SUQsIHJlc3VsdCk7CisgICAgV2ViQ29yZTo6Z2V0UmF3Q29va2llcyhzdG9yYWdlU2Vzc2lvbihz
ZXNzaW9uSUQpLCBmaXJzdFBhcnR5LCB1cmwsIGZyYW1lSUQsIHBhZ2VJRCwgcmVzdWx0KTsKIH0K
IAogdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGVsZXRlQ29va2llKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgY29va2ll
TmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCA0Y2VhMmM2ZDRmYTk4OGNiM2M4ZTRk
NGJjNDZmNjNiNzU0ZjAyZWYxLi5mNTI2YjI3NmJhOTlkYzdmNjI0YjY5YjBkODFkOTUyZmViYTI5
NGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC00MCw3ICs0MCw2IEBAIGNsYXNzIEJs
b2JEYXRhRmlsZVJlZmVyZW5jZTsKIGNsYXNzIEhUVFBIZWFkZXJNYXA7CiBjbGFzcyBSZXNvdXJj
ZUVycm9yOwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0Owotc3RydWN0IFNhbWVTaXRlSW5mbzsKIAog
ZW51bSBjbGFzcyBJbmNsdWRlU2VjdXJlQ29va2llczsKIH0KQEAgLTEzOCwxMSArMTM3LDExIEBA
IHByaXZhdGU6CiAgICAgdm9pZCBzdGFydERvd25sb2FkKFBBTDo6U2Vzc2lvbklELCBEb3dubG9h
ZElELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIHN1Z2dl
c3RlZE5hbWUgPSB7IH0pOwogICAgIHZvaWQgY29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25s
b2FkKFBBTDo6U2Vzc2lvbklELCB1aW50NjRfdCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwg
RG93bmxvYWRJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSYpOwogCi0gICAgdm9pZCBjb29raWVzRm9yRE9NKFBBTDo6U2Vz
c2lvbklELCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNh
bWVTaXRlSW5mbyYsIGNvbnN0IFdlYkNvcmU6OlVSTCYsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+
IGZyYW1lSUQsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCwgV2ViQ29yZTo6SW5jbHVk
ZVNlY3VyZUNvb2tpZXMsIFN0cmluZyYgY29va2llU3RyaW5nLCBib29sJiBzZWN1cmVDb29raWVz
QWNjZXNzZWQpOwotICAgIHZvaWQgc2V0Q29va2llc0Zyb21ET00oUEFMOjpTZXNzaW9uSUQsIGNv
bnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZv
JiwgY29uc3QgV2ViQ29yZTo6VVJMJiwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwg
c3RkOjpvcHRpb25hbDx1aW50NjRfdD4gcGFnZUlELCBjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lk
IGNvb2tpZXNGb3JET00oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQ
YXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJiwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJ
RCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gcGFnZUlELCBXZWJDb3JlOjpJbmNsdWRlU2VjdXJl
Q29va2llcywgU3RyaW5nJiBjb29raWVTdHJpbmcsIGJvb2wmIHNlY3VyZUNvb2tpZXNBY2Nlc3Nl
ZCk7CisgICAgdm9pZCBzZXRDb29raWVzRnJvbURPTShQQUw6OlNlc3Npb25JRCwgY29uc3QgV2Vi
Q29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmLCBzdGQ6Om9wdGlvbmFs
PHVpbnQ2NF90PiBmcmFtZUlELCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQsIGNvbnN0
IFN0cmluZyYpOwogICAgIHZvaWQgY29va2llc0VuYWJsZWQoUEFMOjpTZXNzaW9uSUQsIGJvb2wm
IHJlc3VsdCk7Ci0gICAgdm9pZCBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShQQUw6OlNl
c3Npb25JRCwgY29uc3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpT
YW1lU2l0ZUluZm8mLCBjb25zdCBXZWJDb3JlOjpVUkwmLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90
PiBmcmFtZUlELCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQsIFdlYkNvcmU6OkluY2x1
ZGVTZWN1cmVDb29raWVzLCBTdHJpbmcmIGNvb2tpZVN0cmluZywgYm9vbCYgc2VjdXJlQ29va2ll
c0FjY2Vzc2VkKTsKLSAgICB2b2lkIGdldFJhd0Nvb2tpZXMoUEFMOjpTZXNzaW9uSUQsIGNvbnN0
IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvJiwg
Y29uc3QgV2ViQ29yZTo6VVJMJiwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgc3Rk
OjpvcHRpb25hbDx1aW50NjRfdD4gcGFnZUlELCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYpOwor
ICAgIHZvaWQgY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoUEFMOjpTZXNzaW9uSUQsIGNv
bnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJiwgc3RkOjpv
cHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gcGFnZUlE
LCBXZWJDb3JlOjpJbmNsdWRlU2VjdXJlQ29va2llcywgU3RyaW5nJiBjb29raWVTdHJpbmcsIGJv
b2wmIHNlY3VyZUNvb2tpZXNBY2Nlc3NlZCk7CisgICAgdm9pZCBnZXRSYXdDb29raWVzKFBBTDo6
U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6
OlVSTCYsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHN0ZDo6b3B0aW9uYWw8dWlu
dDY0X3Q+IHBhZ2VJRCwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mKTsKICAgICB2b2lkIGRlbGV0
ZUNvb2tpZShQQUw6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgU3RyaW5n
JiBjb29raWVOYW1lKTsKIAogICAgIHZvaWQgcmVnaXN0ZXJGaWxlQmxvYlVSTChjb25zdCBXZWJD
b3JlOjpVUkwmLCBjb25zdCBTdHJpbmcmIHBhdGgsIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYm
LCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLm1lc3NhZ2VzLmluCmluZGV4IDlhNWE0ZjIxNTYwZGE2N2U4YTdmMGJlNjFlNTViNmM3ZDE3
MTZjNDcuLmQ2NTI0OTA2ZGJjMmJhZGYzN2JlZDRiZTI3MjgzMGQ0NzVkY2Y2MjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMzMsMTEgKzMzLDExIEBA
IG1lc3NhZ2VzIC0+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVy
IHsKICAgICBTdGFydERvd25sb2FkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViS2l0OjpE
b3dubG9hZElEIGRvd25sb2FkSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBT
dHJpbmcgc3VnZ2VzdGVkTmFtZSkKICAgICBDb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxv
YWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBtYWluUmVzb3VyY2VMb2FkSWRl
bnRpZmllciwgV2ViS2l0OjpEb3dubG9hZElEIGRvd25sb2FkSUQsIFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCByZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKQogCi0g
ICAgQ29va2llc0ZvckRPTShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlVSTCBm
aXJzdFBhcnR5LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvIHNhbWVTaXRlSW5mbywgV2Vi
Q29yZTo6VVJMIHVybCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgc3RkOjpvcHRp
b25hbDx1aW50NjRfdD4gcGFnZUlELCBlbnVtIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVz
IGluY2x1ZGVTZWN1cmVDb29raWVzKSAtPiAoU3RyaW5nIGNvb2tpZVN0cmluZywgYm9vbCBkaWRB
Y2Nlc3NTZWN1cmVDb29raWVzKQotICAgIFNldENvb2tpZXNGcm9tRE9NKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgV2ViQ29yZTo6VVJMIGZpcnN0UGFydHksIHN0cnVjdCBXZWJDb3JlOjpTYW1l
U2l0ZUluZm8gc2FtZVNpdGVJbmZvLCBXZWJDb3JlOjpVUkwgdXJsLCBzdGQ6Om9wdGlvbmFsPHVp
bnQ2NF90PiBmcmFtZUlELCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQsIFN0cmluZyBj
b29raWVTdHJpbmcpCisgICAgQ29va2llc0ZvckRPTShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IFdlYkNvcmU6OlVSTCBmaXJzdFBhcnR5LCBXZWJDb3JlOjpVUkwgdXJsLCBzdGQ6Om9wdGlvbmFs
PHVpbnQ2NF90PiBmcmFtZUlELCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQsIGVudW0g
V2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpIC0+IChT
dHJpbmcgY29va2llU3RyaW5nLCBib29sIGRpZEFjY2Vzc1NlY3VyZUNvb2tpZXMpCisgICAgU2V0
Q29va2llc0Zyb21ET00oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpVUkwgZmly
c3RQYXJ0eSwgV2ViQ29yZTo6VVJMIHVybCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJ
RCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gcGFnZUlELCBTdHJpbmcgY29va2llU3RyaW5nKQog
ICAgIENvb2tpZXNFbmFibGVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKGJvb2wgZW5h
YmxlZCkKLSAgICBDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIFdlYkNvcmU6OlVSTCBmaXJzdFBhcnR5LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNp
dGVJbmZvIHNhbWVTaXRlSW5mbywgV2ViQ29yZTo6VVJMIHVybCwgc3RkOjpvcHRpb25hbDx1aW50
NjRfdD4gZnJhbWVJRCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gcGFnZUlELCBlbnVtIFdlYkNv
cmU6OkluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSAtPiAoU3RyaW5n
IGNvb2tpZVN0cmluZywgYm9vbCBkaWRBY2Nlc3NTZWN1cmVDb29raWVzKQotICAgIEdldFJhd0Nv
b2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpVUkwgZmlyc3RQYXJ0eSwg
c3RydWN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyBzYW1lU2l0ZUluZm8sIFdlYkNvcmU6OlVSTCB1
cmwsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHN0ZDo6b3B0aW9uYWw8dWludDY0
X3Q+IHBhZ2VJRCkgLT4gKFZlY3RvcjxXZWJDb3JlOjpDb29raWU+IGNvb2tpZXMpCisgICAgQ29v
a2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJD
b3JlOjpVUkwgZmlyc3RQYXJ0eSwgV2ViQ29yZTo6VVJMIHVybCwgc3RkOjpvcHRpb25hbDx1aW50
NjRfdD4gZnJhbWVJRCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gcGFnZUlELCBlbnVtIFdlYkNv
cmU6OkluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSAtPiAoU3RyaW5n
IGNvb2tpZVN0cmluZywgYm9vbCBkaWRBY2Nlc3NTZWN1cmVDb29raWVzKQorICAgIEdldFJhd0Nv
b2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpVUkwgZmlyc3RQYXJ0eSwg
V2ViQ29yZTo6VVJMIHVybCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgc3RkOjpv
cHRpb25hbDx1aW50NjRfdD4gcGFnZUlEKSAtPiAoVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gY29v
a2llcykKICAgICBEZWxldGVDb29raWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3Jl
OjpVUkwgdXJsLCBTdHJpbmcgY29va2llTmFtZSkKIAogICAgIFJlZ2lzdGVyRmlsZUJsb2JVUkwo
V2ViQ29yZTo6VVJMIHVybCwgU3RyaW5nIHBhdGgsIFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6
SGFuZGxlIGV4dGVuc2lvbkhhbmRsZSwgU3RyaW5nIGNvbnRlbnRUeXBlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCmlu
ZGV4IDZmZDY3MGY3NWNmZjczNmY2MTRkYmZjMWU4ZmYwMmQzNDViYjJlZDEuLmIzNzAwMzY0MWQx
NDJiNmQwMjY3ZjYwODRlMWU4N2Y4Y2MxMzc1MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTQ2LDcgKzQ2
LDYgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0hUVFBIZWFkZXJOYW1lcy5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvTmV0d29ya0xvYWRNZXRyaWNzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Qcm90ZWN0aW9u
U3BhY2UuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1NhbWVTaXRlSW5mby5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvU2hhcmVkQnVmZmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TeW5jaHJvbm91c0xvYWRl
ckNsaWVudC5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CkBAIC04NzEsMTAgKzg3MCwxMCBA
QCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6bG9nQ29va2llSW5mb3JtYXRpb24oKSBjb25z
dAogICAgIGF1dG8gbmV0d29ya1N0b3JhZ2VTZXNzaW9uID0gV2ViQ29yZTo6TmV0d29ya1N0b3Jh
Z2VTZXNzaW9uOjpzdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQoKSk7CiAgICAgQVNTRVJUKG5ldHdv
cmtTdG9yYWdlU2Vzc2lvbik7CiAKLSAgICBsb2dDb29raWVJbmZvcm1hdGlvbigiTmV0d29ya1Jl
c291cmNlTG9hZGVyIiwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB2b2lkKj4odGhpcyksICpuZXR3
b3JrU3RvcmFnZVNlc3Npb24sIG9yaWdpbmFsUmVxdWVzdCgpLmZpcnN0UGFydHlGb3JDb29raWVz
KCksIFNhbWVTaXRlSW5mbzo6Y3JlYXRlKG9yaWdpbmFsUmVxdWVzdCgpKSwgb3JpZ2luYWxSZXF1
ZXN0KCkudXJsKCksIG9yaWdpbmFsUmVxdWVzdCgpLmh0dHBSZWZlcnJlcigpLCBmcmFtZUlEKCks
IHBhZ2VJRCgpLCBpZGVudGlmaWVyKCkpOworICAgIGxvZ0Nvb2tpZUluZm9ybWF0aW9uKCJOZXR3
b3JrUmVzb3VyY2VMb2FkZXIiLCByZWludGVycHJldF9jYXN0PGNvbnN0IHZvaWQqPih0aGlzKSwg
Km5ldHdvcmtTdG9yYWdlU2Vzc2lvbiwgb3JpZ2luYWxSZXF1ZXN0KCkuZmlyc3RQYXJ0eUZvckNv
b2tpZXMoKSwgb3JpZ2luYWxSZXF1ZXN0KCkudXJsKCksIG9yaWdpbmFsUmVxdWVzdCgpLmh0dHBS
ZWZlcnJlcigpLCBmcmFtZUlEKCksIHBhZ2VJRCgpLCBpZGVudGlmaWVyKCkpOwogfQogCi1zdGF0
aWMgdm9pZCBsb2dCbG9ja2VkQ29va2llSW5mb3JtYXRpb24oY29uc3QgU3RyaW5nJiBsYWJlbCwg
Y29uc3Qgdm9pZCogbG9nZ2VkT2JqZWN0LCBjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNl
c3Npb24mIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiwgY29uc3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBh
cnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgV2ViQ29yZTo6VVJM
JiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZy
YW1lSUQsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCwgc3RkOjpvcHRpb25hbDx1aW50
NjRfdD4gaWRlbnRpZmllcikKK3N0YXRpYyB2b2lkIGxvZ0Jsb2NrZWRDb29raWVJbmZvcm1hdGlv
bihjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCB2b2lkKiBsb2dnZWRPYmplY3QsIGNvbnN0IFdl
YkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgbmV0d29ya1N0b3JhZ2VTZXNzaW9uLCBjb25z
dCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYgdXJsLCBjb25z
dCBTdHJpbmcmIHJlZmVycmVyLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBzdGQ6
Om9wdGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGlkZW50
aWZpZXIpCiB7CiAgICAgQVNTRVJUKE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c2hvdWxkTG9nQ29v
a2llSW5mb3JtYXRpb24oKSk7CiAKQEAgLTg5MywyMCArODkyLDE4IEBAIHN0YXRpYyB2b2lkIGxv
Z0Jsb2NrZWRDb29raWVJbmZvcm1hdGlvbihjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCB2b2lk
KiBsb2dnZWRPCiAgICAgTE9DQUxfTE9HKFIiKCAgInBhcnRpdGlvbiI6ICIle3B1YmxpY31zIiwp
IiwgIkJMT0NLRUQiKTsKICAgICBMT0NBTF9MT0coUiIoICAiaGFzU3RvcmFnZUFjY2VzcyI6ICV7
cHVibGljfXMsKSIsICJmYWxzZSIpOwogICAgIExPQ0FMX0xPRyhSIiggICJyZWZlcmVyIjogIiV7
cHVibGljfXMiLCkiLCBlc2NhcGVkUmVmZXJyZXIudXRmOCgpLmRhdGEoKSk7Ci0gICAgTE9DQUxf
TE9HKFIiKCAgImlzU2FtZVNpdGUiOiAiJXtwdWJsaWN9cyIsKSIsIHNhbWVTaXRlSW5mby5pc1Nh
bWVTaXRlID8gInRydWUiIDogImZhbHNlIik7Ci0gICAgTE9DQUxfTE9HKFIiKCAgImlzVG9wU2l0
ZSI6ICIle3B1YmxpY31zIiwpIiwgc2FtZVNpdGVJbmZvLmlzVG9wU2l0ZSA/ICJ0cnVlIiA6ICJm
YWxzZSIpOwogICAgIExPQ0FMX0xPRyhSIiggICJjb29raWVzIjogW10pIik7CiAgICAgTE9DQUxf
TE9HKFIiKCAgIn0pIik7CiAjdW5kZWYgTE9DQUxfTE9HCiAjdW5kZWYgTE9DQUxfTE9HX0lGX0FM
TE9XRUQKIH0KIAotc3RhdGljIHZvaWQgbG9nQ29va2llSW5mb3JtYXRpb25JbnRlcm5hbChjb25z
dCBTdHJpbmcmIGxhYmVsLCBjb25zdCB2b2lkKiBsb2dnZWRPYmplY3QsIGNvbnN0IFdlYkNvcmU6
Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgbmV0d29ya1N0b3JhZ2VTZXNzaW9uLCBjb25zdCBXZWJD
b3JlOjpVUkwmIHBhcnRpdGlvbiwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvJiBzYW1lU2l0
ZUluZm8sIGNvbnN0IFdlYkNvcmU6OlVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBz
dGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBw
YWdlSUQsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGlkZW50aWZpZXIpCitzdGF0aWMgdm9pZCBs
b2dDb29raWVJbmZvcm1hdGlvbkludGVybmFsKGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IHZv
aWQqIGxvZ2dlZE9iamVjdCwgY29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBu
ZXR3b3JrU3RvcmFnZVNlc3Npb24sIGNvbnN0IFdlYkNvcmU6OlVSTCYgcGFydGl0aW9uLCBjb25z
dCBXZWJDb3JlOjpVUkwmIHVybCwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgc3RkOjpvcHRpb25h
bDx1aW50NjRfdD4gZnJhbWVJRCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gcGFnZUlELCBzdGQ6
Om9wdGlvbmFsPHVpbnQ2NF90PiBpZGVudGlmaWVyKQogewogICAgIEFTU0VSVChOZXR3b3JrUmVz
b3VyY2VMb2FkZXI6OnNob3VsZExvZ0Nvb2tpZUluZm9ybWF0aW9uKCkpOwogCiAgICAgVmVjdG9y
PFdlYkNvcmU6OkNvb2tpZT4gY29va2llczsKLSAgICBpZiAoIVdlYkNvcmU6OmdldFJhd0Nvb2tp
ZXMobmV0d29ya1N0b3JhZ2VTZXNzaW9uLCBwYXJ0aXRpb24sIHNhbWVTaXRlSW5mbywgdXJsLCBm
cmFtZUlELCBwYWdlSUQsIGNvb2tpZXMpKQorICAgIGlmICghV2ViQ29yZTo6Z2V0UmF3Q29va2ll
cyhuZXR3b3JrU3RvcmFnZVNlc3Npb24sIHBhcnRpdGlvbiwgdXJsLCBmcmFtZUlELCBwYWdlSUQs
IGNvb2tpZXMpKQogICAgICAgICByZXR1cm47CiAKICAgICBhdXRvIGVzY2FwZWRVUkwgPSBlc2Nh
cGVGb3JKU09OKHVybC5zdHJpbmcoKSk7CkBAIC05MjUsOCArOTIyLDYgQEAgc3RhdGljIHZvaWQg
bG9nQ29va2llSW5mb3JtYXRpb25JbnRlcm5hbChjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCB2
b2lkKiBsb2dnZWQKICAgICBMT0NBTF9MT0coUiIoICAicGFydGl0aW9uIjogIiV7cHVibGljfXMi
LCkiLCBlc2NhcGVkUGFydGl0aW9uLnV0ZjgoKS5kYXRhKCkpOwogICAgIExPQ0FMX0xPRyhSIigg
ICJoYXNTdG9yYWdlQWNjZXNzIjogJXtwdWJsaWN9cywpIiwgaGFzU3RvcmFnZUFjY2VzcyA/ICJ0
cnVlIiA6ICJmYWxzZSIpOwogICAgIExPQ0FMX0xPRyhSIiggICJyZWZlcmVyIjogIiV7cHVibGlj
fXMiLCkiLCBlc2NhcGVkUmVmZXJyZXIudXRmOCgpLmRhdGEoKSk7Ci0gICAgTE9DQUxfTE9HKFIi
KCAgImlzU2FtZVNpdGUiOiAiJXtwdWJsaWN9cyIsKSIsIHNhbWVTaXRlSW5mby5pc1NhbWVTaXRl
ID8gInRydWUiIDogImZhbHNlIik7Ci0gICAgTE9DQUxfTE9HKFIiKCAgImlzVG9wU2l0ZSI6ICIl
e3B1YmxpY31zIiwpIiwgc2FtZVNpdGVJbmZvLmlzVG9wU2l0ZSA/ICJ0cnVlIiA6ICJmYWxzZSIp
OwogICAgIExPQ0FMX0xPRyhSIiggICJjb29raWVzIjogWykiKTsKIAogICAgIGF1dG8gc2l6ZSA9
IGNvb2tpZXMuc2l6ZSgpOwpAQCAtOTQyLDcgKzkzNyw2IEBAIHN0YXRpYyB2b2lkIGxvZ0Nvb2tp
ZUluZm9ybWF0aW9uSW50ZXJuYWwoY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3Qgdm9pZCogbG9n
Z2VkCiAgICAgICAgIGF1dG8gZXNjYXBlZFBhdGggPSBlc2NhcGVGb3JKU09OKGNvb2tpZS5wYXRo
KTsKICAgICAgICAgYXV0byBlc2NhcGVkQ29tbWVudCA9IGVzY2FwZUZvckpTT04oY29va2llLmNv
bW1lbnQpOwogICAgICAgICBhdXRvIGVzY2FwZWRDb21tZW50VVJMID0gZXNjYXBlRm9ySlNPTihj
b29raWUuY29tbWVudFVSTC5zdHJpbmcoKSk7Ci0gICAgICAgIC8vIEZJWE1FOiBMb2cgU2FtZS1T
aXRlIHBvbGljeSBmb3IgZWFjaCBjb29raWUuIFNlZSA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE4NDg5ND4uCiAKICAgICAgICAgTE9DQUxfTE9HKFIiKCAgeyAibmFt
ZSI6ICIle3B1YmxpY31zIiwpIiwgZXNjYXBlZE5hbWUudXRmOCgpLmRhdGEoKSk7CiAgICAgICAg
IExPQ0FMX0xPRyhSIiggICAgInZhbHVlIjogIiV7cHVibGljfXMiLCkiLCBlc2NhcGVkVmFsdWUu
dXRmOCgpLmRhdGEoKSk7CkBAIC05NjIsMTUgKzk1NiwxNSBAQCBzdGF0aWMgdm9pZCBsb2dDb29r
aWVJbmZvcm1hdGlvbkludGVybmFsKGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IHZvaWQqIGxv
Z2dlZAogI3VuZGVmIExPQ0FMX0xPR19JRl9BTExPV0VECiB9CiAKLXZvaWQgTmV0d29ya1Jlc291
cmNlTG9hZGVyOjpsb2dDb29raWVJbmZvcm1hdGlvbihjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25z
dCB2b2lkKiBsb2dnZWRPYmplY3QsIGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgbmV0d29y
a1N0b3JhZ2VTZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5m
byYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwg
c3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4g
cGFnZUlELCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBpZGVudGlmaWVyKQordm9pZCBOZXR3b3Jr
UmVzb3VyY2VMb2FkZXI6OmxvZ0Nvb2tpZUluZm9ybWF0aW9uKGNvbnN0IFN0cmluZyYgbGFiZWws
IGNvbnN0IHZvaWQqIGxvZ2dlZE9iamVjdCwgY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBu
ZXR3b3JrU3RvcmFnZVNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiB1
cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1l
SUQsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCwgc3RkOjpvcHRpb25hbDx1aW50NjRf
dD4gaWRlbnRpZmllcikKIHsKICAgICBBU1NFUlQoc2hvdWxkTG9nQ29va2llSW5mb3JtYXRpb24o
KSk7CiAKICAgICBpZiAobmV0d29ya1N0b3JhZ2VTZXNzaW9uLnNob3VsZEJsb2NrQ29va2llcyhm
aXJzdFBhcnR5LCB1cmwpKQotICAgICAgICBsb2dCbG9ja2VkQ29va2llSW5mb3JtYXRpb24obGFi
ZWwsIGxvZ2dlZE9iamVjdCwgbmV0d29ya1N0b3JhZ2VTZXNzaW9uLCBmaXJzdFBhcnR5LCBzYW1l
U2l0ZUluZm8sIHVybCwgcmVmZXJyZXIsIGZyYW1lSUQsIHBhZ2VJRCwgaWRlbnRpZmllcik7Cisg
ICAgICAgIGxvZ0Jsb2NrZWRDb29raWVJbmZvcm1hdGlvbihsYWJlbCwgbG9nZ2VkT2JqZWN0LCBu
ZXR3b3JrU3RvcmFnZVNlc3Npb24sIGZpcnN0UGFydHksIHVybCwgcmVmZXJyZXIsIGZyYW1lSUQs
IHBhZ2VJRCwgaWRlbnRpZmllcik7CiAgICAgZWxzZSB7CiAgICAgICAgIGF1dG8gcGFydGl0aW9u
ID0gVVJMKFBhcnNlZFVSTFN0cmluZywgbmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNvb2tpZVN0b3Jh
Z2VQYXJ0aXRpb24oZmlyc3RQYXJ0eSwgdXJsLCBmcmFtZUlELCBwYWdlSUQpKTsKLSAgICAgICAg
bG9nQ29va2llSW5mb3JtYXRpb25JbnRlcm5hbChsYWJlbCwgbG9nZ2VkT2JqZWN0LCBuZXR3b3Jr
U3RvcmFnZVNlc3Npb24sIHBhcnRpdGlvbiwgc2FtZVNpdGVJbmZvLCB1cmwsIHJlZmVycmVyLCBm
cmFtZUlELCBwYWdlSUQsIGlkZW50aWZpZXIpOworICAgICAgICBsb2dDb29raWVJbmZvcm1hdGlv
bkludGVybmFsKGxhYmVsLCBsb2dnZWRPYmplY3QsIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiwgcGFy
dGl0aW9uLCB1cmwsIHJlZmVycmVyLCBmcmFtZUlELCBwYWdlSUQsIGlkZW50aWZpZXIpOwogICAg
IH0KIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Jlc291cmNlTG9hZGVyLmgKaW5kZXggODc2OTcwOGMwYTIwMGRkMjYxYmYxNmZmOTI2Njll
OGEyMzY0NTQ4YS4uZDY5OTgyZDZmOGUwZWRlYjYwN2EyYmY0ZTIwMDZkYWYwY2UwNDg3NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2Fk
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxv
YWRlci5oCkBAIC0xMDksNyArMTA5LDcgQEAgcHVibGljOgogCiAjaWYgSEFWRShDRk5FVFdPUktf
U1RPUkFHRV9QQVJUSVRJT05JTkcpICYmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIHN0YXRp
YyBib29sIHNob3VsZExvZ0Nvb2tpZUluZm9ybWF0aW9uKCk7Ci0gICAgc3RhdGljIHZvaWQgbG9n
Q29va2llSW5mb3JtYXRpb24oY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3Qgdm9pZCogbG9nZ2Vk
T2JqZWN0LCBjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJD
b3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYsIGNvbnN0
IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIHN0ZDo6b3B0aW9uYWw8dWlu
dDY0X3Q+IGZyYW1lSUQsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCwgc3RkOjpvcHRp
b25hbDx1aW50NjRfdD4gaWRlbnRpZmllcik7CisgICAgc3RhdGljIHZvaWQgbG9nQ29va2llSW5m
b3JtYXRpb24oY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3Qgdm9pZCogbG9nZ2VkT2JqZWN0LCBj
b25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJDb3JlOjpVUkwm
IGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIs
IHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+
IHBhZ2VJRCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gaWRlbnRpZmllcik7CiAjZW5kaWYKIAog
cHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUv
TmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZE1hbmFnZXIuY3Bw
CmluZGV4IDc3NzdmMjA2NThkMTMyM2Q5ZmFlZmQ3MDY5NTJkM2ZjMjRlM2Q3NDMuLmM1M2Y3ZDI5
YzA5YjExZTI1N2JkYmFmNDFlNDQxZGJjZTlkODczNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkTWFuYWdl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2Fj
aGVTcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyLmNwcApAQCAtOTAsOCArOTAsNiBAQCBzdGF0aWMgaW5s
aW5lIFJlc291cmNlUmVxdWVzdCBjb25zdHJ1Y3RSZXZhbGlkYXRpb25SZXF1ZXN0KGNvbnN0IEtl
eSYga2V5LCBjb25zdAogICAgIFJlc291cmNlUmVxdWVzdCByZXZhbGlkYXRpb25SZXF1ZXN0KGtl
eS5pZGVudGlmaWVyKCkpOwogICAgIHJldmFsaWRhdGlvblJlcXVlc3Quc2V0SFRUUEhlYWRlckZp
ZWxkcyhzdWJSZXNvdXJjZUluZm8ucmVxdWVzdEhlYWRlcnMoKSk7CiAgICAgcmV2YWxpZGF0aW9u
UmVxdWVzdC5zZXRGaXJzdFBhcnR5Rm9yQ29va2llcyhzdWJSZXNvdXJjZUluZm8uZmlyc3RQYXJ0
eUZvckNvb2tpZXMoKSk7Ci0gICAgcmV2YWxpZGF0aW9uUmVxdWVzdC5zZXRJc1NhbWVTaXRlKHN1
YlJlc291cmNlSW5mby5pc1NhbWVTaXRlKCkpOwotICAgIHJldmFsaWRhdGlvblJlcXVlc3Quc2V0
SXNUb3BTaXRlKHN1YlJlc291cmNlSW5mby5pc1RvcFNpdGUoKSk7CiAgICAgaWYgKCFrZXkucGFy
dGl0aW9uKCkuaXNFbXB0eSgpKQogICAgICAgICByZXZhbGlkYXRpb25SZXF1ZXN0LnNldENhY2hl
UGFydGl0aW9uKGtleS5wYXJ0aXRpb24oKSk7CiAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRShrZXku
cmFuZ2UoKS5pc0VtcHR5KCksICJyYW5nZSBpcyBub3Qgc3VwcG9ydGVkIik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN1YnJlc291
cmNlc0VudHJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29y
a0NhY2hlU3VicmVzb3VyY2VzRW50cnkuY3BwCmluZGV4IDdiODg5MjI5OTUzOWRiMzRjNWIzOTE0
ZDNiMjE0Y2U4YjgxNDNiOTguLmZjNTNlZjBlNGNkMzBmNGEzMzA3ZTg0ZjM4YjY4Y2Q4ZjI2YWNi
ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29y
a0NhY2hlU3VicmVzb3VyY2VzRW50cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3VicmVzb3VyY2VzRW50cnkuY3BwCkBAIC00NSw3ICs0
NSw2IEBAIHZvaWQgU3VicmVzb3VyY2VJbmZvOjplbmNvZGUoV1RGOjpQZXJzaXN0ZW5jZTo6RW5j
b2RlciYgZW5jb2RlcikgY29uc3QKICAgICBpZiAobV9pc1RyYW5zaWVudCkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgZW5jb2RlciA8PCBtX2lzU2FtZVNpdGU7CiAgICAgZW5jb2RlciA8PCBtX2Zp
cnN0UGFydHlGb3JDb29raWVzOwogICAgIGVuY29kZXIgPDwgbV9yZXF1ZXN0SGVhZGVyczsKICAg
ICBlbmNvZGVyLmVuY29kZUVudW0obV9wcmlvcml0eSk7CkBAIC02NSwxMCArNjQsNyBAQCBib29s
IFN1YnJlc291cmNlSW5mbzo6ZGVjb2RlKFdURjo6UGVyc2lzdGVuY2U6OkRlY29kZXImIGRlY29k
ZXIsIFN1YnJlc291cmNlSW5mbwogICAgIAogICAgIGlmIChpbmZvLm1faXNUcmFuc2llbnQpCiAg
ICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLm1faXNT
YW1lU2l0ZSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQorICAgIAogICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUoaW5mby5tX2ZpcnN0UGFydHlGb3JDb29raWVzKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCkBAIC0xMTksNyArMTE1LDYgQEAgU3VicmVzb3VyY2VJbmZvOjpTdWJyZXNvdXJjZUlu
Zm8oY29uc3QgS2V5JiBrZXksIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYKICAgICAs
IG1fbGFzdFNlZW4oV2FsbFRpbWU6Om5vdygpKQogICAgICwgbV9maXJzdFNlZW4ocHJldmlvdXNJ
bmZvID8gcHJldmlvdXNJbmZvLT5maXJzdFNlZW4oKSA6IG1fbGFzdFNlZW4pCiAgICAgLCBtX2lz
VHJhbnNpZW50KCFwcmV2aW91c0luZm8pCi0gICAgLCBtX2lzU2FtZVNpdGUocmVxdWVzdC5pc1Nh
bWVTaXRlKCkpCiAgICAgLCBtX2ZpcnN0UGFydHlGb3JDb29raWVzKHJlcXVlc3QuZmlyc3RQYXJ0
eUZvckNvb2tpZXMoKSkKICAgICAsIG1fcmVxdWVzdEhlYWRlcnMocmVxdWVzdC5odHRwSGVhZGVy
RmllbGRzKCkpCiAgICAgLCBtX3ByaW9yaXR5KHJlcXVlc3QucHJpb3JpdHkoKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3VicmVz
b3VyY2VzRW50cnkuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29y
a0NhY2hlU3VicmVzb3VyY2VzRW50cnkuaAppbmRleCBlZjI1MmExYzdiOWM2YmQ1NjgwOTczMGMy
ZDA0OTMzNTMxZjA0YzliLi4wYjkxNTZlZjlmNDNmNTQ2MDY2NWUxNGY1N2MwZmM3NjlmMzQzYmVi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtD
YWNoZVN1YnJlc291cmNlc0VudHJ5LmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jYWNoZS9OZXR3b3JrQ2FjaGVTdWJyZXNvdXJjZXNFbnRyeS5oCkBAIC01MywxMCArNTMsNyBA
QCBwdWJsaWM6CiAgICAgY29uc3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBhcnR5Rm9yQ29va2llcygp
IGNvbnN0IHsgQVNTRVJUKCFtX2lzVHJhbnNpZW50KTsgcmV0dXJuIG1fZmlyc3RQYXJ0eUZvckNv
b2tpZXM7IH0KICAgICBjb25zdCBXZWJDb3JlOjpIVFRQSGVhZGVyTWFwJiByZXF1ZXN0SGVhZGVy
cygpIGNvbnN0IHsgQVNTRVJUKCFtX2lzVHJhbnNpZW50KTsgcmV0dXJuIG1fcmVxdWVzdEhlYWRl
cnM7IH0KICAgICBXZWJDb3JlOjpSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSgpIGNvbnN0
IHsgQVNTRVJUKCFtX2lzVHJhbnNpZW50KTsgcmV0dXJuIG1fcHJpb3JpdHk7IH0KLQotICAgIGJv
b2wgaXNTYW1lU2l0ZSgpIGNvbnN0IHsgQVNTRVJUKCFtX2lzVHJhbnNpZW50KTsgcmV0dXJuIG1f
aXNTYW1lU2l0ZTsgfQotICAgIGJvb2wgaXNUb3BTaXRlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KLQorICAgIAogICAgIHZvaWQgc2V0Tm9uVHJhbnNpZW50KCkgeyBtX2lzVHJhbnNpZW50ID0g
ZmFsc2U7IH0KIAogcHJpdmF0ZToKQEAgLTY0LDcgKzYxLDYgQEAgcHJpdmF0ZToKICAgICBXYWxs
VGltZSBtX2xhc3RTZWVuOwogICAgIFdhbGxUaW1lIG1fZmlyc3RTZWVuOwogICAgIGJvb2wgbV9p
c1RyYW5zaWVudCB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2lzU2FtZVNpdGUgeyBmYWxzZSB9Owog
ICAgIFdlYkNvcmU6OlVSTCBtX2ZpcnN0UGFydHlGb3JDb29raWVzOwogICAgIFdlYkNvcmU6OkhU
VFBIZWFkZXJNYXAgbV9yZXF1ZXN0SGVhZGVyczsKICAgICBXZWJDb3JlOjpSZXNvdXJjZUxvYWRQ
cmlvcml0eSBtX3ByaW9yaXR5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0KaW5kZXggZGVjMTNkMzBlNmY0
Mjg2NDliY2VhNjFkZmZmNjEyOWYxZTkxYTNiNy4uNWY2NTJiODFlMDJhYmRhMjk4M2JmNmVkNzA1
MTJjNjgxMTcyOGU5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
b2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCkBAIC00OCwxMSArNDgsNiBAQAog
I2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL05ldHdvcmtEYXRhVGFza0NvY29hQWRkaXRpb25zLm1t
PgogI2VuZGlmCiAKLUBpbnRlcmZhY2UgTlNVUkxTZXNzaW9uVGFzayAoU3RhZ2luZykKLUBwcm9w
ZXJ0eSAobnVsbGFibGUsIHJlYWR3cml0ZSwgcmV0YWluKSBOU1VSTCAqX3NpdGVGb3JDb29raWVz
OwotQHByb3BlcnR5IChyZWFkd3JpdGUpIEJPT0wgX2lzVG9wTGV2ZWxOYXZpZ2F0aW9uOwotQGVu
ZAotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogI2lmIFVTRShDUkVERU5USUFMX1NUT1JBR0VfV0lU
SF9ORVRXT1JLX1NFU1NJT04pCkBAIC0xNTUsMjAgKzE1MCw3IEBAIHZvaWQgTmV0d29ya0RhdGFU
YXNrQ29jb2E6OmFwcGx5Q29va2llUGFydGl0aW9uaW5nUG9saWN5KGNvbnN0IFN0cmluZyYgcmVx
dWlyZWRTCiAKIGJvb2wgTmV0d29ya0RhdGFUYXNrQ29jb2E6OmlzVGhpcmRQYXJ0eVJlcXVlc3Qo
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewotICAgIHJldHVybiAh
V2ViQ29yZTo6cmVnaXN0cmFibGVEb21haW5zQXJlRXF1YWwocmVxdWVzdC51cmwoKSwgcmVxdWVz
dC5maXJzdFBhcnR5Rm9yQ29va2llcygpKTsKLX0KLQotc3RhdGljIHZvaWQgdXBkYXRlVGFza1dp
dGhGaXJzdFBhcnR5Rm9yU2FtZVNpdGVDb29raWVzKE5TVVJMU2Vzc2lvbkRhdGFUYXNrKiB0YXNr
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgaWYgKHJl
cXVlc3QuaXNTYW1lU2l0ZVVuc3BlY2lmaWVkKCkpCi0gICAgICAgIHJldHVybjsKLSAgICBzdGF0
aWMgTlNVUkwgKmVtcHR5VVJMID0gW1tOU1VSTCBhbGxvY10gaW5pdFdpdGhTdHJpbmc6QCIiXTsK
LSAgICBpZiAoQGF2YWlsYWJsZShtYWNPUyAxMC4xNCwgaU9TIDEyLCAqKSkgewotICAgICAgICBp
ZiAoW3Rhc2sgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihzZXRfc2l0ZUZvckNvb2tpZXM6
KV0pCi0gICAgICAgICAgICB0YXNrLl9zaXRlRm9yQ29va2llcyA9IHJlcXVlc3QuaXNTYW1lU2l0
ZSgpID8gdGFzay5jdXJyZW50UmVxdWVzdC5VUkwgOiBlbXB0eVVSTDsKLSAgICAgICAgaWYgKFt0
YXNrIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Ioc2V0X2lzVG9wTGV2ZWxOYXZpZ2F0aW9u
OildKQotICAgICAgICAgICAgdGFzay5faXNUb3BMZXZlbE5hdmlnYXRpb24gPSByZXF1ZXN0Lmlz
VG9wU2l0ZSgpOwotICAgIH0KKyAgICByZXR1cm4gcmVxdWVzdC5wYXJ0aXRpb25OYW1lKHJlcXVl
c3QudXJsKCkuaG9zdCgpKSAhPSByZXF1ZXN0LnBhcnRpdGlvbk5hbWUocmVxdWVzdC5maXJzdFBh
cnR5Rm9yQ29va2llcygpLmhvc3QoKSk7CiB9CiAKIE5ldHdvcmtEYXRhVGFza0NvY29hOjpOZXR3
b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUYXNr
Q2xpZW50JiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdFdp
dGhDcmVkZW50aWFscywgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgcGFnZUlELCBXZWJDb3Jl
OjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29y
ZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRTbmlmZiwgV2ViQ29yZTo6Q29u
dGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYsIGJv
b2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgUHJlY29ubmVjdE9u
bHkgc2hvdWxkUHJlY29ubmVjdE9ubHkpCkBAIC0yNjEsOCArMjQzLDYgQEAgTmV0d29ya0RhdGFU
YXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBO
ZXR3b3JrRGF0YVQKIAogICAgIGlmIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OnJlc291cmNl
UHJpb3JpdGllc0VuYWJsZWQoKSkKICAgICAgICAgbV90YXNrLmdldCgpLnByaW9yaXR5ID0gdG9O
U1VSTFNlc3Npb25UYXNrUHJpb3JpdHkocmVxdWVzdC5wcmlvcml0eSgpKTsKLQotICAgIHVwZGF0
ZVRhc2tXaXRoRmlyc3RQYXJ0eUZvclNhbWVTaXRlQ29va2llcyhtX3Rhc2suZ2V0KCksIHJlcXVl
c3QpOwogfQogCiBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6fk5ldHdvcmtEYXRhVGFza0NvY29hKCkK
QEAgLTM4NSw4ICszNjUsNiBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza0NvY29hOjp3aWxsUGVyZm9y
bUhUVFBSZWRpcmVjdGlvbihXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJgogICAgIH0KICNlbmRp
ZgogCi0gICAgdXBkYXRlVGFza1dpdGhGaXJzdFBhcnR5Rm9yU2FtZVNpdGVDb29raWVzKG1fdGFz
ay5nZXQoKSwgcmVxdWVzdCk7Ci0KICAgICBpZiAobV9jbGllbnQpCiAgICAgICAgIG1fY2xpZW50
LT53aWxsUGVyZm9ybUhUVFBSZWRpcmVjdGlvbihXVEZNb3ZlKHJlZGlyZWN0UmVzcG9uc2UpLCBX
VEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiAgICAgZWxzZSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggY2VmM2Zi
NjkxMjliOGRiZTJjYWJhOGE0YmNiNWY1NmE4ZWQxYWQ3Mi4uMjFkY2MzZjZmMDAxMjZkODAwOTcy
MWI5Y2E1NzFlMmMwYTZmODIyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmNwcApAQCAtMTE4NywxNSArMTE4NywxMCBAQCBEb3dubG9hZFByb3h5KiBXZWJQcm9j
ZXNzUG9vbDo6ZG93bmxvYWQoV2ViUGFnZVByb3h5KiBpbml0aWF0aW5nUGFnZSwgY29uc3QgUmVz
bwogICAgICAgICBSZXNvdXJjZVJlcXVlc3QgdXBkYXRlZFJlcXVlc3QocmVxdWVzdCk7CiAgICAg
ICAgIC8vIFJlcXVlc3QncyBmaXJzdFBhcnR5Rm9yQ29va2llcyB3aWxsIGJlIHVzZWQgYXMgT3Jp
Z2luYWwgVVJMIG9mIHRoZSBkb3dubG9hZCByZXF1ZXN0LgogICAgICAgICAvLyBXZSBzZXQgdGhl
IHZhbHVlIHRvIHRvcCBsZXZlbCBkb2N1bWVudCdzIFVSTC4KLSAgICAgICAgaWYgKGluaXRpYXRp
bmdQYWdlKSB7Ci0gICAgICAgICAgICBVUkwgaW5pdGlhdGluZ1BhZ2VVUkwgPSBVUkwgeyBVUkwg
eyB9LCBpbml0aWF0aW5nUGFnZS0+cGFnZUxvYWRTdGF0ZSgpLnVybCgpIH07Ci0gICAgICAgICAg
ICB1cGRhdGVkUmVxdWVzdC5zZXRGaXJzdFBhcnR5Rm9yQ29va2llcyhpbml0aWF0aW5nUGFnZVVS
TCk7Ci0gICAgICAgICAgICB1cGRhdGVkUmVxdWVzdC5zZXRJc1NhbWVTaXRlKHJlZ2lzdHJhYmxl
RG9tYWluc0FyZUVxdWFsKGluaXRpYXRpbmdQYWdlVVJMLCByZXF1ZXN0LnVybCgpKSk7Ci0gICAg
ICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChpbml0aWF0aW5nUGFnZSkKKyAgICAgICAgICAgIHVw
ZGF0ZWRSZXF1ZXN0LnNldEZpcnN0UGFydHlGb3JDb29raWVzKFVSTChVUkwoKSwgaW5pdGlhdGlu
Z1BhZ2UtPnBhZ2VMb2FkU3RhdGUoKS51cmwoKSkpOworICAgICAgICBlbHNlCiAgICAgICAgICAg
ICB1cGRhdGVkUmVxdWVzdC5zZXRGaXJzdFBhcnR5Rm9yQ29va2llcyhVUkwoKSk7Ci0gICAgICAg
ICAgICB1cGRhdGVkUmVxdWVzdC5zZXRJc1NhbWVTaXRlKGZhbHNlKTsKLSAgICAgICAgfQotICAg
ICAgICB1cGRhdGVkUmVxdWVzdC5zZXRJc1RvcFNpdGUoZmFsc2UpOwogICAgICAgICBuZXR3b3Jr
UHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RG93bmxvYWRSZXF1ZXN0
KHNlc3Npb25JRCwgZG93bmxvYWRQcm94eS0+ZG93bmxvYWRJRCgpLCB1cGRhdGVkUmVxdWVzdCwg
c3VnZ2VzdGVkRmlsZW5hbWUpLCAwKTsKICAgICAgICAgcmV0dXJuIGRvd25sb2FkUHJveHk7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAppbmRleCA5N2EzMjcwYzc1YjIy
OGZiYWMxNTQ4NTIyMDljNWY1MzdhYzMxYTc0Li5kMjg3MzIwZDYwMTFlOTY1NTFiZWI3ZTFkOTZl
NzFkOTEwNzRlNzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcApAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxOCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU4
LDcgKzU4LDYgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtUGFzdGVib2FyZC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUHJvZ3Jlc3NUcmFja2VyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNv
dXJjZUVycm9yLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TYW1lU2l0ZUluZm8uaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1N0b3JhZ2VOYW1lc3BhY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N1YmZyYW1l
TG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9VUkwuaD4KQEAgLTEwOSwxOSArMTA4LDE5IEBA
IEJsb2JSZWdpc3RyeSogV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVCbG9iUmVnaXN0cnko
KQogCiAvLyBDb29raWVzU3RyYXRlZ3kKIAotc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gV2ViUGxh
dGZvcm1TdHJhdGVnaWVzOjpjb29raWVzRm9yRE9NKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lv
biYgc2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNh
bWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1l
SUQsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMg
aW5jbHVkZVNlY3VyZUNvb2tpZXMpCitzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBXZWJQbGF0Zm9y
bVN0cmF0ZWdpZXM6OmNvb2tpZXNGb3JET00oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBz
ZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFVSTCYgdXJsLCBzdGQ6Om9wdGlv
bmFsPHVpbnQ2NF90PiBmcmFtZUlELCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQsIElu
Y2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKQogewogICAgIFN0cmluZyBj
b29raWVTdHJpbmc7CiAgICAgYm9vbCBzZWN1cmVDb29raWVzQWNjZXNzZWQgPSBmYWxzZTsKLSAg
ICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kU3luYyhNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OkNvb2tpZXNGb3JET00oc2Vzc2lvbi5zZXNzaW9uSUQoKSwgZmlyc3RQYXJ0
eSwgc2FtZVNpdGVJbmZvLCB1cmwsIGZyYW1lSUQsIHBhZ2VJRCwgaW5jbHVkZVNlY3VyZUNvb2tp
ZXMpLCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNvb2tpZXNGb3JE
T006OlJlcGx5KGNvb2tpZVN0cmluZywgc2VjdXJlQ29va2llc0FjY2Vzc2VkKSwgMCkpCisgICAg
aWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24oKS5jb25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpDb29raWVzRm9yRE9NKHNlc3Npb24uc2Vzc2lvbklEKCksIGZpcnN0UGFydHks
IHVybCwgZnJhbWVJRCwgcGFnZUlELCBpbmNsdWRlU2VjdXJlQ29va2llcyksIE1lc3NhZ2VzOjpO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q29va2llc0ZvckRPTTo6UmVwbHkoY29va2ll
U3RyaW5nLCBzZWN1cmVDb29raWVzQWNjZXNzZWQpLCAwKSkKICAgICAgICAgcmV0dXJuIHsgU3Ry
aW5nKCksIGZhbHNlIH07CiAKICAgICByZXR1cm4geyBjb29raWVTdHJpbmcsIHNlY3VyZUNvb2tp
ZXNBY2Nlc3NlZCB9OwogfQogCi12b2lkIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6c2V0Q29va2ll
c0Zyb21ET00oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwm
IGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBj
b25zdCBVUkwmIHVybCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgc3RkOjpvcHRp
b25hbDx1aW50NjRfdD4gcGFnZUlELCBjb25zdCBTdHJpbmcmIGNvb2tpZVN0cmluZykKK3ZvaWQg
V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpzZXRDb29raWVzRnJvbURPTShjb25zdCBOZXR3b3JrU3Rv
cmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiB1
cmwsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHN0ZDo6b3B0aW9uYWw8dWludDY0
X3Q+IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiBjb29raWVTdHJpbmcpCiB7Ci0gICAgV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlv
bigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpTZXRDb29r
aWVzRnJvbURPTShzZXNzaW9uLnNlc3Npb25JRCgpLCBmaXJzdFBhcnR5LCBzYW1lU2l0ZUluZm8s
IHVybCwgZnJhbWVJRCwgcGFnZUlELCBjb29raWVTdHJpbmcpLCAwKTsKKyAgICBXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9u
KCkuc2VuZChNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlNldENvb2tp
ZXNGcm9tRE9NKHNlc3Npb24uc2Vzc2lvbklEKCksIGZpcnN0UGFydHksIHVybCwgZnJhbWVJRCwg
cGFnZUlELCBjb29raWVTdHJpbmcpLCAwKTsKIH0KIAogYm9vbCBXZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXM6OmNvb2tpZXNFbmFibGVkKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbikK
QEAgLTEzMiwyMyArMTMxLDIzIEBAIGJvb2wgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb29raWVz
RW5hYmxlZChjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24pCiAgICAgcmV0dXJu
IHJlc3VsdDsKIH0KIAotc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gV2ViUGxhdGZvcm1TdHJhdGVn
aWVzOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBOZXR3b3JrU3RvcmFnZVNl
c3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZv
JiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBm
cmFtZUlELCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29r
aWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKQorc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gV2ViUGxh
dGZvcm1TdHJhdGVnaWVzOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBOZXR3
b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3Qg
VVJMJiB1cmwsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHN0ZDo6b3B0aW9uYWw8
dWludDY0X3Q+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tp
ZXMpCiB7Ci0gICAgcmV0dXJuIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKHNlc3Npb24u
c2Vzc2lvbklEKCksIGZpcnN0UGFydHksIHNhbWVTaXRlSW5mbywgdXJsLCBmcmFtZUlELCBwYWdl
SUQsIGluY2x1ZGVTZWN1cmVDb29raWVzKTsKKyAgICByZXR1cm4gY29va2llUmVxdWVzdEhlYWRl
ckZpZWxkVmFsdWUoc2Vzc2lvbi5zZXNzaW9uSUQoKSwgZmlyc3RQYXJ0eSwgdXJsLCBmcmFtZUlE
LCBwYWdlSUQsIGluY2x1ZGVTZWN1cmVDb29raWVzKTsKIH0KIAotc3RkOjpwYWlyPFN0cmluZywg
Ym9vbD4gV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1
ZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3Qg
U2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBzdGQ6Om9wdGlvbmFs
PHVpbnQ2NF90PiBmcmFtZUlELCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQsIEluY2x1
ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKQorc3RkOjpwYWlyPFN0cmluZywg
Ym9vbD4gV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1
ZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3Qg
VVJMJiB1cmwsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHN0ZDo6b3B0aW9uYWw8
dWludDY0X3Q+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tp
ZXMpCiB7CiAgICAgU3RyaW5nIGNvb2tpZVN0cmluZzsKICAgICBib29sIHNlY3VyZUNvb2tpZXNB
Y2Nlc3NlZCA9IGZhbHNlOwotICAgIGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJl
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2Vz
OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q29va2llUmVxdWVzdEhlYWRlckZpZWxk
VmFsdWUoc2Vzc2lvbklELCBmaXJzdFBhcnR5LCBzYW1lU2l0ZUluZm8sIHVybCwgZnJhbWVJRCwg
cGFnZUlELCBpbmNsdWRlU2VjdXJlQ29va2llcyksIE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6Q29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWU6OlJlcGx5KGNvb2tp
ZVN0cmluZywgc2VjdXJlQ29va2llc0FjY2Vzc2VkKSwgMCwgU2Vjb25kczo6aW5maW5pdHkoKSwg
SVBDOjpTZW5kU3luY09wdGlvbjo6RG9Ob3RQcm9jZXNzSW5jb21pbmdNZXNzYWdlc1doZW5XYWl0
aW5nRm9yU3luY1JlcGx5KSkKKyAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3Vy
ZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kU3luYyhNZXNzYWdl
czo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNvb2tpZVJlcXVlc3RIZWFkZXJGaWVs
ZFZhbHVlKHNlc3Npb25JRCwgZmlyc3RQYXJ0eSwgdXJsLCBmcmFtZUlELCBwYWdlSUQsIGluY2x1
ZGVTZWN1cmVDb29raWVzKSwgTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZTo6UmVwbHkoY29va2llU3RyaW5nLCBzZWN1
cmVDb29raWVzQWNjZXNzZWQpLCAwLCBTZWNvbmRzOjppbmZpbml0eSgpLCBJUEM6OlNlbmRTeW5j
T3B0aW9uOjpEb05vdFByb2Nlc3NJbmNvbWluZ01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVw
bHkpKQogICAgICAgICByZXR1cm4geyBTdHJpbmcoKSwgZmFsc2UgfTsKICAgICByZXR1cm4geyBj
b29raWVTdHJpbmcsIHNlY3VyZUNvb2tpZXNBY2Nlc3NlZCB9OwogfQogCi1ib29sIFdlYlBsYXRm
b3JtU3RyYXRlZ2llczo6Z2V0UmF3Q29va2llcyhjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24m
IHNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1l
U2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlE
LCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQsIFZlY3RvcjxDb29raWU+JiByYXdDb29r
aWVzKQorYm9vbCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmdldFJhd0Nvb2tpZXMoY29uc3QgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0
IFVSTCYgdXJsLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBzdGQ6Om9wdGlvbmFs
PHVpbnQ2NF90PiBwYWdlSUQsIFZlY3RvcjxDb29raWU+JiByYXdDb29raWVzKQogewotICAgIGlm
ICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
KCkuY29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6R2V0UmF3Q29va2llcyhzZXNzaW9uLnNlc3Npb25JRCgpLCBmaXJzdFBhcnR5LCBz
YW1lU2l0ZUluZm8sIHVybCwgZnJhbWVJRCwgcGFnZUlEKSwgTWVzc2FnZXM6Ok5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpHZXRSYXdDb29raWVzOjpSZXBseShyYXdDb29raWVzKSwgMCkp
CisgICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpHZXRSYXdDb29raWVzKHNlc3Npb24uc2Vzc2lvbklEKCksIGZpcnN0
UGFydHksIHVybCwgZnJhbWVJRCwgcGFnZUlEKSwgTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpHZXRSYXdDb29raWVzOjpSZXBseShyYXdDb29raWVzKSwgMCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0
cmF0ZWdpZXMuaAppbmRleCA2NTllNzYzNzMwZmQ1NGEwYmU2OTM2OWU0ZGUyMDAyNmRlOTI3M2E3
Li4xOTY0YThmOWZjYjk1M2JkODA0NDgyNWI2N2MyODQwNGZiMjFjMDFkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVn
aWVzLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBs
YXRmb3JtU3RyYXRlZ2llcy5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMC0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDcsMTIgKzQ3LDEyIEBAIHByaXZhdGU6CiAgICAgV2Vi
Q29yZTo6QmxvYlJlZ2lzdHJ5KiBjcmVhdGVCbG9iUmVnaXN0cnkoKSBvdmVycmlkZTsKIAogICAg
IC8vIFdlYkNvcmU6OkNvb2tpZXNTdHJhdGVneQotICAgIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+
IGNvb2tpZXNGb3JET00oY29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29u
c3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8m
LCBjb25zdCBXZWJDb3JlOjpVUkwmLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBz
dGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQsIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVDb29r
aWVzKSBvdmVycmlkZTsKLSAgICB2b2lkIHNldENvb2tpZXNGcm9tRE9NKGNvbnN0IFdlYkNvcmU6
Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwg
Y29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvJiwgY29uc3QgV2ViQ29yZTo6VVJMJiwgc3RkOjpv
cHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gcGFnZUlE
LCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKKyAgICBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBj
b29raWVzRm9yRE9NKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0
IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJiwgc3RkOjpvcHRp
b25hbDx1aW50NjRfdD4gZnJhbWVJRCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gcGFnZUlELCBX
ZWJDb3JlOjpJbmNsdWRlU2VjdXJlQ29va2llcykgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRDb29r
aWVzRnJvbURPTShjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBX
ZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYsIHN0ZDo6b3B0aW9u
YWw8dWludDY0X3Q+IGZyYW1lSUQsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCwgY29u
c3QgU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgYm9vbCBjb29raWVzRW5hYmxlZChjb25zdCBXZWJD
b3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mKSBvdmVycmlkZTsKLSAgICBzdGQ6OnBhaXI8U3Ry
aW5nLCBib29sPiBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBXZWJDb3JlOjpO
ZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNv
bnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYsIGNvbnN0IFdlYkNvcmU6OlVSTCYsIHN0ZDo6b3B0
aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCwg
V2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMpIG92ZXJyaWRlOwotICAgIHN0ZDo6cGFpcjxT
dHJpbmcsIGJvb2w+IGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKFBBTDo6U2Vzc2lvbklE
LCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRl
SW5mbyYsIGNvbnN0IFdlYkNvcmU6OlVSTCYsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1l
SUQsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCwgV2ViQ29yZTo6SW5jbHVkZVNlY3Vy
ZUNvb2tpZXMpIG92ZXJyaWRlOwotICAgIGJvb2wgZ2V0UmF3Q29va2llcyhjb25zdCBXZWJDb3Jl
OjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHks
IGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYsIGNvbnN0IFdlYkNvcmU6OlVSTCYsIHN0ZDo6
b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJ
RCwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mKSBvdmVycmlkZTsKKyAgICBzdGQ6OnBhaXI8U3Ry
aW5nLCBib29sPiBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBXZWJDb3JlOjpO
ZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNv
bnN0IFdlYkNvcmU6OlVSTCYsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHN0ZDo6
b3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCwgV2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMp
IG92ZXJyaWRlOworICAgIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IGNvb2tpZVJlcXVlc3RIZWFk
ZXJGaWVsZFZhbHVlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFy
dHksIGNvbnN0IFdlYkNvcmU6OlVSTCYsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQs
IHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCwgV2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNv
b2tpZXMpIG92ZXJyaWRlOworICAgIGJvb2wgZ2V0UmF3Q29va2llcyhjb25zdCBXZWJDb3JlOjpO
ZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNv
bnN0IFdlYkNvcmU6OlVSTCYsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHN0ZDo6
b3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mKSBvdmVy
cmlkZTsKICAgICB2b2lkIGRlbGV0ZUNvb2tpZShjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFn
ZVNlc3Npb24mLCBjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsK
IAogICAgIC8vIFdlYkNvcmU6OlBhc3RlYm9hcmRTdHJhdGVneQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0
ZWdpZXMuaAppbmRleCA3MjBmZTY1MzBhMDM4OGIwYmFmMGEzNDE2OWQ3MWZhYTkxZDQ5ODdjLi44
NDJjY2RjMGE4ZjgzZTgxMjdjNjZmZmYyYmJhZGQ4NzlmMjIxZTEwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMu
aAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9y
bVN0cmF0ZWdpZXMuaApAQCAtNDgsMTIgKzQ4LDEyIEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6
QmxvYlJlZ2lzdHJ5KiBjcmVhdGVCbG9iUmVnaXN0cnkoKSBvdmVycmlkZTsKIAogICAgIC8vIFdl
YkNvcmU6OkNvb2tpZXNTdHJhdGVneQotICAgIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IGNvb2tp
ZXNGb3JET00oY29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgV2Vi
Q29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBjb25z
dCBXZWJDb3JlOjpVUkwmLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBzdGQ6Om9w
dGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQsIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVzKSBv
dmVycmlkZTsKLSAgICB2b2lkIHNldENvb2tpZXNGcm9tRE9NKGNvbnN0IFdlYkNvcmU6Ok5ldHdv
cmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3Qg
V2ViQ29yZTo6U2FtZVNpdGVJbmZvJiwgY29uc3QgV2ViQ29yZTo6VVJMJiwgc3RkOjpvcHRpb25h
bDx1aW50NjRfdD4gZnJhbWVJRCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gcGFnZUlELCBjb25z
dCBTdHJpbmcmKSBvdmVycmlkZTsKKyAgICBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVz
Rm9yRE9NKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFdlYkNv
cmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJiwgc3RkOjpvcHRpb25hbDx1
aW50NjRfdD4gZnJhbWVJRCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gcGFnZUlELCBXZWJDb3Jl
OjpJbmNsdWRlU2VjdXJlQ29va2llcykgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRDb29raWVzRnJv
bURPTShjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJDb3Jl
OjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYsIHN0ZDo6b3B0aW9uYWw8dWlu
dDY0X3Q+IGZyYW1lSUQsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCwgY29uc3QgU3Ry
aW5nJikgb3ZlcnJpZGU7CiAgICAgYm9vbCBjb29raWVzRW5hYmxlZChjb25zdCBXZWJDb3JlOjpO
ZXR3b3JrU3RvcmFnZVNlc3Npb24mKSBvdmVycmlkZTsKLSAgICBzdGQ6OnBhaXI8U3RyaW5nLCBi
b29sPiBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBXZWJDb3JlOjpOZXR3b3Jr
U3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdl
YkNvcmU6OlNhbWVTaXRlSW5mbyYsIGNvbnN0IFdlYkNvcmU6OlVSTCYsIHN0ZDo6b3B0aW9uYWw8
dWludDY0X3Q+IGZyYW1lSUQsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCwgV2ViQ29y
ZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMpIG92ZXJyaWRlOwotICAgIHN0ZDo6cGFpcjxTdHJpbmcs
IGJvb2w+IGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKFBBTDo6U2Vzc2lvbklELCBjb25z
dCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYs
IGNvbnN0IFdlYkNvcmU6OlVSTCYsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHN0
ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCwgV2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNvb2tp
ZXMpIG92ZXJyaWRlOwotICAgIGJvb2wgZ2V0UmF3Q29va2llcyhjb25zdCBXZWJDb3JlOjpOZXR3
b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0
IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYsIGNvbnN0IFdlYkNvcmU6OlVSTCYsIHN0ZDo6b3B0aW9u
YWw8dWludDY0X3Q+IGZyYW1lSUQsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCwgVmVj
dG9yPFdlYkNvcmU6OkNvb2tpZT4mKSBvdmVycmlkZTsKKyAgICBzdGQ6OnBhaXI8U3RyaW5nLCBi
b29sPiBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBXZWJDb3JlOjpOZXR3b3Jr
U3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdl
YkNvcmU6OlVSTCYsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHN0ZDo6b3B0aW9u
YWw8dWludDY0X3Q+IHBhZ2VJRCwgV2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMpIG92ZXJy
aWRlOworICAgIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVs
ZFZhbHVlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNv
bnN0IFdlYkNvcmU6OlVSTCYsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHN0ZDo6
b3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCwgV2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMp
IG92ZXJyaWRlOworICAgIGJvb2wgZ2V0UmF3Q29va2llcyhjb25zdCBXZWJDb3JlOjpOZXR3b3Jr
U3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdl
YkNvcmU6OlVSTCYsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHN0ZDo6b3B0aW9u
YWw8dWludDY0X3Q+IHBhZ2VJRCwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mKSBvdmVycmlkZTsK
ICAgICB2b2lkIGRlbGV0ZUNvb2tpZShjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Np
b24mLCBjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKIAogICAg
IC8vIFdlYkNvcmU6OlBhc3RlYm9hcmRTdHJhdGVneQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVz
Lm1tCmluZGV4IGViZmNiNmZkMzcwOGMwMWFjN2QzZDYxZTgyN2MzMWNiYTkxYmVmMjEuLjIyN2U0
ODgyOWYzY2RmZTlkYmQxYzNmOThiZGE1Zjg2ODRjZTRiOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0
cmF0ZWdpZXMubW0KQEAgLTczLDE0ICs3MywxNCBAQCBCbG9iUmVnaXN0cnkqIFdlYlBsYXRmb3Jt
U3RyYXRlZ2llczo6Y3JlYXRlQmxvYlJlZ2lzdHJ5KCkKICAgICByZXR1cm4gbmV3IFdlYkNvcmU6
OkJsb2JSZWdpc3RyeUltcGw7CiB9CiAKLXN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IFdlYlBsYXRm
b3JtU3RyYXRlZ2llczo6Y29va2llc0ZvckRPTShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24m
IHNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1l
U2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlE
LCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzIGlu
Y2x1ZGVTZWN1cmVDb29raWVzKQorc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gV2ViUGxhdGZvcm1T
dHJhdGVnaWVzOjpjb29raWVzRm9yRE9NKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vz
c2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVybCwgc3RkOjpvcHRpb25h
bDx1aW50NjRfdD4gZnJhbWVJRCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gcGFnZUlELCBJbmNs
dWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykKIHsKLSAgICByZXR1cm4gV2Vi
Q29yZTo6Y29va2llc0ZvckRPTShzZXNzaW9uLCBmaXJzdFBhcnR5LCBzYW1lU2l0ZUluZm8sIHVy
bCwgZnJhbWVJRCwgcGFnZUlELCBpbmNsdWRlU2VjdXJlQ29va2llcyk7CisgICAgcmV0dXJuIFdl
YkNvcmU6OmNvb2tpZXNGb3JET00oc2Vzc2lvbiwgZmlyc3RQYXJ0eSwgdXJsLCBmcmFtZUlELCBw
YWdlSUQsIGluY2x1ZGVTZWN1cmVDb29raWVzKTsKIH0KIAotdm9pZCBXZWJQbGF0Zm9ybVN0cmF0
ZWdpZXM6OnNldENvb2tpZXNGcm9tRE9NKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vz
c2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRl
SW5mbywgY29uc3QgVVJMJiB1cmwsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHN0
ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiBjb29raWVTdHJpbmcp
Cit2b2lkIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6c2V0Q29va2llc0Zyb21ET00oY29uc3QgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0
IFVSTCYgdXJsLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBzdGQ6Om9wdGlvbmFs
PHVpbnQ2NF90PiBwYWdlSUQsIGNvbnN0IFN0cmluZyYgY29va2llU3RyaW5nKQogewotICAgIFdl
YkNvcmU6OnNldENvb2tpZXNGcm9tRE9NKHNlc3Npb24sIGZpcnN0UGFydHksIHNhbWVTaXRlSW5m
bywgdXJsLCBmcmFtZUlELCBwYWdlSUQsIGNvb2tpZVN0cmluZyk7CisgICAgV2ViQ29yZTo6c2V0
Q29va2llc0Zyb21ET00oc2Vzc2lvbiwgZmlyc3RQYXJ0eSwgdXJsLCBmcmFtZUlELCBwYWdlSUQs
IGNvb2tpZVN0cmluZyk7CiB9CiAKIGJvb2wgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb29raWVz
RW5hYmxlZChjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24pCkBAIC04OCwyMCAr
ODgsMjAgQEAgYm9vbCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvb2tpZXNFbmFibGVkKGNvbnN0
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbikKICAgICByZXR1cm4gV2ViQ29yZTo6Y29v
a2llc0VuYWJsZWQoc2Vzc2lvbik7CiB9CiAKLXN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IFdlYlBs
YXRmb3JtU3RyYXRlZ2llczo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0
IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgc3RkOjpvcHRpb25h
bDx1aW50NjRfdD4gZnJhbWVJRCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gcGFnZUlELCBJbmNs
dWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykKK3N0ZDo6cGFpcjxTdHJpbmcs
IGJvb2w+IFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFs
dWUoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0
UGFydHksIGNvbnN0IFVSTCYgdXJsLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBz
dGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1
ZGVTZWN1cmVDb29raWVzKQogewotICAgIHJldHVybiBXZWJDb3JlOjpjb29raWVSZXF1ZXN0SGVh
ZGVyRmllbGRWYWx1ZShzZXNzaW9uLCBmaXJzdFBhcnR5LCBzYW1lU2l0ZUluZm8sIHVybCwgZnJh
bWVJRCwgcGFnZUlELCBpbmNsdWRlU2VjdXJlQ29va2llcyk7CisgICAgcmV0dXJuIFdlYkNvcmU6
OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKHNlc3Npb24sIGZpcnN0UGFydHksIHVybCwg
ZnJhbWVJRCwgcGFnZUlELCBpbmNsdWRlU2VjdXJlQ29va2llcyk7CiB9CiAKLXN0ZDo6cGFpcjxT
dHJpbmcsIGJvb2w+IFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29va2llUmVxdWVzdEhlYWRlckZp
ZWxkVmFsdWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHks
IGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgc3RkOjpv
cHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gcGFnZUlE
LCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykKK3N0ZDo6cGFpcjxT
dHJpbmcsIGJvb2w+IFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29va2llUmVxdWVzdEhlYWRlckZp
ZWxkVmFsdWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHks
IGNvbnN0IFVSTCYgdXJsLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBzdGQ6Om9w
dGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1
cmVDb29raWVzKQogewogICAgIGF1dG8mIHNlc3Npb24gPSBzZXNzaW9uSUQuaXNFcGhlbWVyYWwo
KSA/IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Np
b24oKSA6IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCk7Ci0g
ICAgcmV0dXJuIFdlYkNvcmU6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKHNlc3Npb24s
IGZpcnN0UGFydHksIHNhbWVTaXRlSW5mbywgdXJsLCBmcmFtZUlELCBwYWdlSUQsIGluY2x1ZGVT
ZWN1cmVDb29raWVzKTsKKyAgICByZXR1cm4gV2ViQ29yZTo6Y29va2llUmVxdWVzdEhlYWRlckZp
ZWxkVmFsdWUoc2Vzc2lvbiwgZmlyc3RQYXJ0eSwgdXJsLCBmcmFtZUlELCBwYWdlSUQsIGluY2x1
ZGVTZWN1cmVDb29raWVzKTsKIH0KIAotYm9vbCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmdldFJh
d0Nvb2tpZXMoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwm
IGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwm
IHVybCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgc3RkOjpvcHRpb25hbDx1aW50
NjRfdD4gcGFnZUlELCBWZWN0b3I8Q29va2llPiYgcmF3Q29va2llcykKK2Jvb2wgV2ViUGxhdGZv
cm1TdHJhdGVnaWVzOjpnZXRSYXdDb29raWVzKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYg
c2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVybCwgc3RkOjpvcHRp
b25hbDx1aW50NjRfdD4gZnJhbWVJRCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gcGFnZUlELCBW
ZWN0b3I8Q29va2llPiYgcmF3Q29va2llcykKIHsKLSAgICByZXR1cm4gV2ViQ29yZTo6Z2V0UmF3
Q29va2llcyhzZXNzaW9uLCBmaXJzdFBhcnR5LCBzYW1lU2l0ZUluZm8sIHVybCwgZnJhbWVJRCwg
cGFnZUlELCByYXdDb29raWVzKTsKKyAgICByZXR1cm4gV2ViQ29yZTo6Z2V0UmF3Q29va2llcyhz
ZXNzaW9uLCBmaXJzdFBhcnR5LCB1cmwsIGZyYW1lSUQsIHBhZ2VJRCwgcmF3Q29va2llcyk7CiB9
CiAKIHZvaWQgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpkZWxldGVDb29raWUoY29uc3QgTmV0d29y
a1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBj
b29raWVOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKaW5kZXggZGUyNjI2ODQz
ODhkYmFlYjNiMzk2NjAwMDY4ZjkyZWEzYTMwMDg3Ni4uNGY3MDM0ZjkxZGU0ODFiNWRjYjRlMTZj
ZDJjNjFhNmQ5ZTdjNjFiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
Q29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCkBAIC03
MCwxNCArNzAsMTQgQEAgQmxvYlJlZ2lzdHJ5KiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0
ZUJsb2JSZWdpc3RyeSgpCiAgICAgcmV0dXJuIG5ldyBCbG9iUmVnaXN0cnlJbXBsOwogfQogCi1z
dGQ6OnBhaXI8U3RyaW5nLCBib29sPiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvb2tpZXNGb3JE
T00oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0
UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwg
c3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4g
cGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykKK3N0ZDo6
cGFpcjxTdHJpbmcsIGJvb2w+IFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29va2llc0ZvckRPTShj
b25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFdlYkNv
cmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJiB1cmwsIHN0ZDo6b3B0aW9u
YWw8dWludDY0X3Q+IGZyYW1lSUQsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCwgV2Vi
Q29yZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpCiB7Ci0gICAg
cmV0dXJuIFdlYkNvcmU6OmNvb2tpZXNGb3JET00oc2Vzc2lvbiwgZmlyc3RQYXJ0eSwgc2FtZVNp
dGVJbmZvLCB1cmwsIGZyYW1lSUQsIHBhZ2VJRCwgaW5jbHVkZVNlY3VyZUNvb2tpZXMpOworICAg
IHJldHVybiBXZWJDb3JlOjpjb29raWVzRm9yRE9NKHNlc3Npb24sIGZpcnN0UGFydHksIHVybCwg
ZnJhbWVJRCwgcGFnZUlELCBpbmNsdWRlU2VjdXJlQ29va2llcyk7CiB9CiAKLXZvaWQgV2ViUGxh
dGZvcm1TdHJhdGVnaWVzOjpzZXRDb29raWVzRnJvbURPTShjb25zdCBOZXR3b3JrU3RvcmFnZVNl
c3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZv
JiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBm
cmFtZUlELCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQsIGNvbnN0IFN0cmluZyYgY29v
a2llU3RyaW5nKQordm9pZCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnNldENvb2tpZXNGcm9tRE9N
KGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBh
cnR5LCBjb25zdCBVUkwmIHVybCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgc3Rk
OjpvcHRpb25hbDx1aW50NjRfdD4gcGFnZUlELCBjb25zdCBTdHJpbmcmIGNvb2tpZVN0cmluZykK
IHsKLSAgICBXZWJDb3JlOjpzZXRDb29raWVzRnJvbURPTShzZXNzaW9uLCBmaXJzdFBhcnR5LCBz
YW1lU2l0ZUluZm8sIHVybCwgZnJhbWVJRCwgcGFnZUlELCBjb29raWVTdHJpbmcpOworICAgIFdl
YkNvcmU6OnNldENvb2tpZXNGcm9tRE9NKHNlc3Npb24sIGZpcnN0UGFydHksIHVybCwgZnJhbWVJ
RCwgcGFnZUlELCBjb29raWVTdHJpbmcpOwogfQogCiBib29sIFdlYlBsYXRmb3JtU3RyYXRlZ2ll
czo6Y29va2llc0VuYWJsZWQoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uKQpA
QCAtODUsMjAgKzg1LDIwIEBAIGJvb2wgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb29raWVzRW5h
YmxlZChjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24pCiAgICAgcmV0dXJuIFdl
YkNvcmU6OmNvb2tpZXNFbmFibGVkKHNlc3Npb24pOwogfQogCi1zdGQ6OnBhaXI8U3RyaW5nLCBi
b29sPiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVl
KGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBh
cnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIHN0
ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHBh
Z2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpCitzdGQ6OnBh
aXI8U3RyaW5nLCBib29sPiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvb2tpZVJlcXVlc3RIZWFk
ZXJGaWVsZFZhbHVlKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3Qg
VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVybCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4g
ZnJhbWVJRCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gcGFnZUlELCBXZWJDb3JlOjpJbmNsdWRl
U2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykKIHsKLSAgICByZXR1cm4gV2ViQ29y
ZTo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoc2Vzc2lvbiwgZmlyc3RQYXJ0eSwgc2Ft
ZVNpdGVJbmZvLCB1cmwsIGZyYW1lSUQsIHBhZ2VJRCwgaW5jbHVkZVNlY3VyZUNvb2tpZXMpOwor
ICAgIHJldHVybiBXZWJDb3JlOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShzZXNzaW9u
LCBmaXJzdFBhcnR5LCB1cmwsIGZyYW1lSUQsIHBhZ2VJRCwgaW5jbHVkZVNlY3VyZUNvb2tpZXMp
OwogfQogCi1zdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNv
b2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29u
c3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29u
c3QgVVJMJiB1cmwsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHN0ZDo6b3B0aW9u
YWw8dWludDY0X3Q+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNv
b2tpZXMpCitzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNv
b2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29u
c3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVybCwgc3RkOjpvcHRpb25hbDx1aW50NjRf
dD4gZnJhbWVJRCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gcGFnZUlELCBXZWJDb3JlOjpJbmNs
dWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykKIHsKICAgICBhdXRvJiBzZXNz
aW9uID0gc2Vzc2lvbklELmlzRXBoZW1lcmFsKCkgPyBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCkgOiBOZXR3b3JrU3RvcmFnZVNlc3Npb246
OmRlZmF1bHRTdG9yYWdlU2Vzc2lvbigpOwotICAgIHJldHVybiBXZWJDb3JlOjpjb29raWVSZXF1
ZXN0SGVhZGVyRmllbGRWYWx1ZShzZXNzaW9uLCBmaXJzdFBhcnR5LCBzYW1lU2l0ZUluZm8sIHVy
bCwgZnJhbWVJRCwgcGFnZUlELCBpbmNsdWRlU2VjdXJlQ29va2llcyk7CisgICAgcmV0dXJuIFdl
YkNvcmU6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKHNlc3Npb24sIGZpcnN0UGFydHks
IHVybCwgZnJhbWVJRCwgcGFnZUlELCBpbmNsdWRlU2VjdXJlQ29va2llcyk7CiB9CiAKLWJvb2wg
V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpnZXRSYXdDb29raWVzKGNvbnN0IE5ldHdvcmtTdG9yYWdl
U2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUlu
Zm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+
IGZyYW1lSUQsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCwgVmVjdG9yPENvb2tpZT4m
IHJhd0Nvb2tpZXMpCitib29sIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Z2V0UmF3Q29va2llcyhj
b25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0
eSwgY29uc3QgVVJMJiB1cmwsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHN0ZDo6
b3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCwgVmVjdG9yPENvb2tpZT4mIHJhd0Nvb2tpZXMpCiB7
Ci0gICAgcmV0dXJuIFdlYkNvcmU6OmdldFJhd0Nvb2tpZXMoc2Vzc2lvbiwgZmlyc3RQYXJ0eSwg
c2FtZVNpdGVJbmZvLCB1cmwsIGZyYW1lSUQsIHBhZ2VJRCwgcmF3Q29va2llcyk7CisgICAgcmV0
dXJuIFdlYkNvcmU6OmdldFJhd0Nvb2tpZXMoc2Vzc2lvbiwgZmlyc3RQYXJ0eSwgdXJsLCBmcmFt
ZUlELCBwYWdlSUQsIHJhd0Nvb2tpZXMpOwogfQogCiB2b2lkIFdlYlBsYXRmb3JtU3RyYXRlZ2ll
czo6ZGVsZXRlQ29va2llKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29u
c3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgY29va2llTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5o
IGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJh
dGVnaWVzLmgKaW5kZXggMGM0ZmIwNDI0ZDAxZWExMTVkMjdlY2U3MmUxOTAzODc2ZTVjMWU1OS4u
YWYwZTkxNzk3Njk1M2YxMTY3MmViOWY2Nzk3ZWI4ZTczNGMyMzZjOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVz
LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZv
cm1TdHJhdGVnaWVzLmgKQEAgLTQ1LDExICs0NSwxMSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwg
V2ViQ29yZTo6QmxvYlJlZ2lzdHJ5KiBjcmVhdGVCbG9iUmVnaXN0cnkoKTsKIAogICAgIC8vIFdl
YkNvcmU6OkNvb2tpZXNTdHJhdGVneQotICAgIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IGNvb2tp
ZXNGb3JET00oY29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgV2Vi
Q29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBjb25z
dCBXZWJDb3JlOjpVUkwmLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBzdGQ6Om9w
dGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQsIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVzKSBv
dmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29va2llc0Zyb21ET00oY29uc3QgV2ViQ29y
ZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBhcnR5
LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBjb25zdCBXZWJDb3JlOjpVUkwmLCBzdGQ6
Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBwYWdl
SUQsIGNvbnN0IFN0cmluZyYpOworICAgIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IGNvb2tpZXNG
b3JET00oY29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgV2ViQ29y
ZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmLCBzdGQ6Om9wdGlvbmFsPHVp
bnQ2NF90PiBmcmFtZUlELCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQsIFdlYkNvcmU6
OkluY2x1ZGVTZWN1cmVDb29raWVzKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29v
a2llc0Zyb21ET00oY29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3Qg
V2ViQ29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmLCBzdGQ6Om9wdGlv
bmFsPHVpbnQ2NF90PiBmcmFtZUlELCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQsIGNv
bnN0IFN0cmluZyYpOwogICAgIHZpcnR1YWwgYm9vbCBjb29raWVzRW5hYmxlZChjb25zdCBXZWJD
b3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mKTsKLSAgICBzdGQ6OnBhaXI8U3RyaW5nLCBib29s
PiBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3Rv
cmFnZVNlc3Npb24mLCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNv
cmU6OlNhbWVTaXRlSW5mbyYsIGNvbnN0IFdlYkNvcmU6OlVSTCYsIHN0ZDo6b3B0aW9uYWw8dWlu
dDY0X3Q+IGZyYW1lSUQsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCwgV2ViQ29yZTo6
SW5jbHVkZVNlY3VyZUNvb2tpZXMpIG92ZXJyaWRlOwotICAgIHN0ZDo6cGFpcjxTdHJpbmcsIGJv
b2w+IGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBX
ZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYsIGNv
bnN0IFdlYkNvcmU6OlVSTCYsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHN0ZDo6
b3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCwgV2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMp
IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgYm9vbCBnZXRSYXdDb29raWVzKGNvbnN0IFdlYkNvcmU6
Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwg
Y29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvJiwgY29uc3QgV2ViQ29yZTo6VVJMJiwgc3RkOjpv
cHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gcGFnZUlE
LCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYpOworICAgIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+
IGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9y
YWdlU2Vzc2lvbiYsIGNvbnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29y
ZTo6VVJMJiwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgc3RkOjpvcHRpb25hbDx1
aW50NjRfdD4gcGFnZUlELCBXZWJDb3JlOjpJbmNsdWRlU2VjdXJlQ29va2llcykgb3ZlcnJpZGU7
CisgICAgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFs
dWUoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3Qg
V2ViQ29yZTo6VVJMJiwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgc3RkOjpvcHRp
b25hbDx1aW50NjRfdD4gcGFnZUlELCBXZWJDb3JlOjpJbmNsdWRlU2VjdXJlQ29va2llcykgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBib29sIGdldFJhd0Nvb2tpZXMoY29uc3QgV2ViQ29yZTo6TmV0
d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25z
dCBXZWJDb3JlOjpVUkwmLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBzdGQ6Om9w
dGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQsIFZlY3RvcjxXZWJDb3JlOjpDb29raWU+Jik7CiAgICAg
dmlydHVhbCB2b2lkIGRlbGV0ZUNvb2tpZShjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNl
c3Npb24mLCBjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBTdHJpbmcmKTsKIH07CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
YWMxOGY1ZWRkYzJkN2RlNzM5ZjQ4YjEzNzQ2MzNiNmQzMmMzOTg3NC4uZTgwMzJkYjBhZGU3MWZm
OGFkNDk2MWNlYjZmYzk4NmQzMjBjNWE0ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE4LTA0
LTIzICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBV
bnJldmlld2VkLCByb2xsaW5nIG91dCByMjMwOTIxLCByMjMwOTIzLCByMjMwOTI0LCByMjMwOTMy
LAorICAgICAgICBhbmQgcjIzMDkzNC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE4NDkwMworCisgICAgICAgIEJ1aWxkcyBzdGlsbCBicm9rZW4gKFJl
cXVlc3RlZCBieSByeWFuaGFkZGFkIG9uICN3ZWJraXQpLgorCisgICAgICAgIFJldmVydGVkIGNo
YW5nZXNldHM6CisKKyAgICAgICAgIkltcGxlbWVudCBTYW1lLVNpdGUgY29va2llcyIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTQ2NAorICAgICAg
ICBodHRwczovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjMwOTIxCisKKyAgICAgICAgIkF0
dGVtcHQgdG8gZml4IHRoZSBidWlsZCBhZnRlciByMjMwOTIxIgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5NDY0CisgICAgICAgIGh0dHBzOi8vdHJh
Yy53ZWJraXQub3JnL2NoYW5nZXNldC8yMzA5MjMKKworICAgICAgICAiQXR0ZW1wdCB0byBmaXgg
dGhlIE1hYyBhbmQgaU9TIGJ1aWxkIGFmdGVyIHIyMzA5MjEiCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTk0NjQKKyAgICAgICAgaHR0cHM6Ly90cmFj
LndlYmtpdC5vcmcvY2hhbmdlc2V0LzIzMDkyNAorCisgICAgICAgICJBbm90aGVyIGF0dGVtcHQg
dG8gZml4IHRoZSBXaW5kb3dzIGJ1aWxkIGZvbGxvd2luZyByMjMwOTIxIgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5NDY0CisgICAgICAgIGh0dHBz
Oi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yMzA5MzIKKworICAgICAgICAiQXR0ZW1wdCB0
byBmaXggdGhlIEFwcGxlIEludGVybmFsIGJ1aWxkIGZvbGxvd2luZyByMjMwOTIxIgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5NDY0CisgICAgICAg
IGh0dHBzOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yMzA5MzQKKwogMjAxOC0wNC0yMyAg
QW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAo
cjIyMDExMik6IHJlQ0FQVENIQSBpbWFnZXMgcmVuZGVyIG9mZiBzY3JlZW4gb24gVHdpdGNoLnR2
IGFwcCBMb2cgSW4gb3IgU2lnbiBVcApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVj
dGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZDE3ZTk2NDZhY2Qx
MmU3MmI1NzZkOGUwYTg1NjI3NDU3ODFiYjdkMy4uZmM5MjNkZDdhNjdkZjE1ZTE2MjBiYWIyYjJi
NWU2MTFiOTc0YzBkNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwor
KysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC00NCw3ICs0NCw2IEBAIGZhc3Qv
Y3NzL3ZhcmlhYmxlcy9lbnYvaW9zIFsgU2tpcCBdCiBodHRwL3Rlc3RzL2V2ZW50cy90b3VjaC9p
b3MgWyBTa2lwIF0KIGh0dHAvdGVzdHMvcHJlbG9hZC92aWV3cG9ydCBbIFNraXAgXQogaHR0cC90
ZXN0cy9nemlwLWNvbnRlbnQtZW5jb2RpbmcgWyBTa2lwIF0KLWh0dHAvdGVzdHMvY29va2llcy9z
YW1lLXNpdGUgWyBTa2lwIF0KIAogIyB3aW5kb3cuc2hvd01vZGFsRGlhbG9nIGlzIG9ubHkgdGVz
dGVkIGluIER1bXBSZW5kZXJUcmVlIG9uIE1hYy4KIGVkaXRpbmcvZXhlY0NvbW1hbmQvc2hvdy1t
b2RhbC1kaWFsb2ctZHVyaW5nLWV4ZWNDb21tYW5kLmh0bWwgWyBTa2lwIF0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29va2llcy9yZXNvdXJjZXMvY29va2llLXV0aWxpdGll
cy5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29va2llcy9yZXNvdXJjZXMvY29va2llLXV0
aWxpdGllcy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTFiNWFiNjk1ZWNiNjI1
MDVjNWMyZWRiNWZjYjI1ODAzMmVlMzkwNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMvcmVzb3VyY2Vz
L2Nvb2tpZS11dGlsaXRpZXMuanMKKysrIC9kZXYvbnVsbApAQCAtMSwyMzAgKzAsMCBAQAotaWYg
KHNlbGYudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLQotdmFy
IGdfY2hpbGRXaW5kb3c7Ci12YXIgZ19jYWNoZWRDb29raWVzOwotdmFyIGdfYmFzZVVSTFdoZW5G
ZXRjaGluZ0Nvb2tpZXMgPSAiIjsKLXZhciBnX2Jhc2VEb2N1bWVudFdoZW5GZXRjaGluZ0RPTUNv
b2tpZXM7Ci0KLWZ1bmN0aW9uIGNyZWF0ZUNvb2tpZShuYW1lLCB2YWx1ZSwgYWRkaXRpb25hbFBy
b3BlcnRpZXMpCi17Ci0gICAgbGV0IGNvb2tpZSA9IGAke25hbWV9PSR7dmFsdWV9YDsKLSAgICBm
b3IgKGxldCBwcm9wZXJ0eU5hbWUgaW4gYWRkaXRpb25hbFByb3BlcnRpZXMpIHsKLSAgICAgICAg
Y29va2llICs9IGA7ICR7cHJvcGVydHlOYW1lfWA7Ci0gICAgICAgIGxldCBwcm9wZXJ0eVZhbHVl
ID0gYWRkaXRpb25hbFByb3BlcnRpZXNbcHJvcGVydHlOYW1lXTsKLSAgICAgICAgaWYgKHByb3Bl
cnR5VmFsdWUgIT0gdW5kZWZpbmVkKQotICAgICAgICAgICAgY29va2llICs9ICI9IiArIHByb3Bl
cnR5VmFsdWU7Ci0gICAgfQotICAgIHJldHVybiBjb29raWU7Ci19Ci0KLWZ1bmN0aW9uIHNldEJh
c2VEb2N1bWVudFdoZW5GZXRjaGluZ0RPTUNvb2tpZXMoYURvY3VtZW50KQotewotICAgIGdfYmFz
ZURvY3VtZW50V2hlbkZldGNoaW5nRE9NQ29va2llcyA9IGFEb2N1bWVudDsKLX0KLQotZnVuY3Rp
b24gc2V0RE9NQ29va2llKG5hbWUsIHZhbHVlLCBhZGRpdGlvbmFsUHJvcGVydGllcz17fSkKLXsK
LSAgICBnX2Jhc2VEb2N1bWVudFdoZW5GZXRjaGluZ0RPTUNvb2tpZXMuY29va2llID0gY3JlYXRl
Q29va2llKG5hbWUsIHZhbHVlLCBhZGRpdGlvbmFsUHJvcGVydGllcyk7Ci19Ci0KLWZ1bmN0aW9u
IGdldERPTUNvb2tpZXMoKQotewotICAgIGlmICghZ19iYXNlRG9jdW1lbnRXaGVuRmV0Y2hpbmdE
T01Db29raWVzKQotICAgICAgICBnX2Jhc2VEb2N1bWVudFdoZW5GZXRjaGluZ0RPTUNvb2tpZXMg
PSBkb2N1bWVudDsKLSAgICBsZXQgY29va2llcyA9IGdfYmFzZURvY3VtZW50V2hlbkZldGNoaW5n
RE9NQ29va2llcy5jb29raWUuc3BsaXQoIjsgIik7Ci0gICAgbGV0IHJlc3VsdCA9IHt9OwotICAg
IGZvciAobGV0IGtleUFuZFZhbHVlUGFpciBvZiBjb29raWVzKSB7Ci0gICAgICAgIGxldCBba2V5
LCB2YWx1ZV0gPSBrZXlBbmRWYWx1ZVBhaXIuc3BsaXQoIj0iKTsKLSAgICAgICAgcmVzdWx0W2tl
eV0gPSB2YWx1ZTsKLSAgICB9Ci0gICByZXR1cm4gcmVzdWx0OwotfQotCi1hc3luYyBmdW5jdGlv
biBzZXRDb29raWUobmFtZSwgdmFsdWUsIGFkZGl0aW9uYWxQcm9wZXJ0aWVzPXt9KQotewotICAg
IGludmFsaWRhdGVDYWNoZWRDb29raWVzKCk7Ci0KLSAgICBsZXQgY29va2llID0gY3JlYXRlQ29v
a2llKG5hbWUsIHZhbHVlLCBhZGRpdGlvbmFsUHJvcGVydGllcyk7Ci0gICAgbGV0IHByb21pc2Ug
PSBuZXcgUHJvbWlzZSgocmVzb2x2ZWQsIHJlamVjdGVkKSA9PiB7Ci0gICAgICAgIGxldCB4aHIg
PSBuZXcgWE1MSHR0cFJlcXVlc3Q7Ci0gICAgICAgIHhoci5vcGVuKCJHRVQiLCAiL2Nvb2tpZXMv
cmVzb3VyY2VzL3NldENvb2tpZXMuY2dpIik7Ci0gICAgICAgIHhoci5zZXRSZXF1ZXN0SGVhZGVy
KCJTRVQtQ09PS0lFIiwgY29va2llKTsKLSAgICAgICAgeGhyLm9ubG9hZCA9ICgpID0+IHJlc29s
dmVkKHhoci5yZXNwb25zZVRleHQpOwotICAgICAgICB4aHIub25lcnJvciA9IHJlamVjdGVkOwot
ICAgICAgICB4aHIuc2VuZChudWxsKTsKLSAgICB9KTsKLSAgICByZXR1cm4gcHJvbWlzZTsKLX0K
LQotZnVuY3Rpb24gZGlzYWJsZVNldEFsd2F5c0FjY2VwdENvb2tpZXMoKSB7Ci0gICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLnNldEFsd2F5c0FjY2VwdENvb2tp
ZXMoZmFsc2UpOwotfQotCi1hc3luYyBmdW5jdGlvbiByZXNldENvb2tpZXModXJscykKLXsKLSAg
ICBsZXQgdGVzdGluZ1VSTHMgPSBbCi0gICAgICAgICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiLAot
ICAgICAgICAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIiwKLSAgICBdOwotCi0gICAgdXJscyA9IHVy
bHMgfHwgdGVzdGluZ1VSTHM7Ci0gICAgY29uc29sZS5hc3NlcnQodXJscy5sZW5ndGgpOwotCi0g
ICAgZnVuY3Rpb24gc2V0VXAoKSB7Ci0gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2
ZSkgPT4gewotICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRDYW5PcGVuV2luZG93cyh0cnVlKTsKLSAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldEFsd2F5c0FjY2VwdENvb2tpZXModHJ1ZSk7Ci0gICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRQb3B1cEJsb2NraW5nRW5hYmxlZChmYWxzZSk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICByZXNvbHZlKCk7Ci0gICAgICAgIH0pOwotICAgIH0KLQotICAgIGZ1
bmN0aW9uIGNsZWFuVXAoKSB7Ci0gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkg
PT4gewotICAgICAgICAgICAgZGlzYWJsZVNldEFsd2F5c0FjY2VwdENvb2tpZXMoKTsKLSAgICAg
ICAgICAgIGdfY2hpbGRXaW5kb3cuY2xvc2UoKTsKLSAgICAgICAgICAgIGdfY2hpbGRXaW5kb3cg
PSBudWxsOwotICAgICAgICAgICAgcmVzb2x2ZSgpOwotICAgICAgICB9KTsKLSAgICB9Ci0KLSAg
ICBsZXQgcHJvbWlzZSA9IHNldFVwKCk7Ci0gICAgZm9yIChsZXQgdXJsIG9mIHVybHMpIHsKLSAg
ICAgICAgcHJvbWlzZSA9IHByb21pc2UudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICByZXR1cm4g
bmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gewotICAgICAgICAgICAgICAgIC8vIEZJ
WE1FOiBGb3Igc29tZSByZWFzb24gd2UgZ2V0IGEgU2VjdXJpdHlFcnJvciB3aGVuIHBhc3Npbmcg
Y2hpbGRXaW5kb3cgdG8gcmVzb2x2ZSgpIGluIFNhZmFyaSBWZXJzaW9uIDExLjAuMyAoMTM2MDQu
NS42KQotICAgICAgICAgICAgICAgIC8vIGFuZCBub3QgaW4gQ2hyb21lIENhbmFyeSA2Ny4wLjMz
OTAuMCAod2h5PykuIEFzIGEgd29ya2Fyb3VuZCwgc3RvcmUgdGhlIGNoaWxkIHdpbmRvdyByZWZl
cmVuY2UgaW4gYSBnbG9iYWwgdmFyaWFibGUuCi0gICAgICAgICAgICAgICAgd2luZG93LmFkZEV2
ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCAobWVzc2FnZUV2ZW50KSA9PiByZXNvbHZlKG1lc3NhZ2VF
dmVudCksIHtjYXB0dXJlOiB0cnVlLCBvbmNlOiB0cnVlfSk7Ci0gICAgICAgICAgICAgICAgZ19j
aGlsZFdpbmRvdyA9IHdpbmRvdy5vcGVuKHVybCArICIvY29va2llcy9yZXNvdXJjZXMvY29va2ll
LXV0aWxpdHkucGhwP3F1ZXJ5ZnVuY3Rpb249ZGVsZXRlQ29va2llc0FuZFBvc3RNZXNzYWdlIiwg
InJlc2V0Iik7Ci0gICAgICAgICAgICAgICAgaWYgKCFnX2NoaWxkV2luZG93KQotICAgICAgICAg
ICAgICAgICAgICByZWplY3QobnVsbCk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0g
ICAgfQotICAgIHJldHVybiBwcm9taXNlLnRoZW4oY2xlYW5VcCk7Ci19Ci0KLWFzeW5jIGZ1bmN0
aW9uIHJlc2V0Q29va2llc0ZvckN1cnJlbnRPcmlnaW4oKQotewotICAgIGludmFsaWRhdGVDYWNo
ZWRDb29raWVzKCk7Ci0KLSAgICBsZXQgcHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlZCwg
cmVqZWN0ZWQpID0+IHsKLSAgICAgICAgbGV0IHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdDsKLSAg
ICAgICAgeGhyLm9wZW4oIkdFVCIsICIvY29va2llcy9yZXNvdXJjZXMvY29va2llLXV0aWxpdHku
cGhwP3F1ZXJ5ZnVuY3Rpb249ZGVsZXRlQ29va2llcyIpOwotICAgICAgICB4aHIub25sb2FkID0g
KHByb2dyZXNzRXZlbnQpID0+IHsKLSAgICAgICAgICAgIGRpc2FibGVTZXRBbHdheXNBY2NlcHRD
b29raWVzKCk7Ci0gICAgICAgICAgICByZXNvbHZlZChwcm9ncmVzc0V2ZW50KTsKLSAgICAgICAg
fTsKLSAgICAgICAgeGhyLm9uZXJyb3IgPSAocHJvZ3Jlc3NFdmVudCkgPT4gewotICAgICAgICAg
ICAgZGlzYWJsZVNldEFsd2F5c0FjY2VwdENvb2tpZXMoKTsKLSAgICAgICAgICAgIHJlamVjdGVk
KHByb2dyZXNzRXZlbnQpOwotICAgICAgICB9OwotCi0gICAgICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0QWx3YXlzQWNjZXB0Q29va2llcyh0cnVl
KTsKLQotICAgICAgICB4aHIuc2VuZChudWxsKTsKLSAgICB9KTsKLSAgICByZXR1cm4gcHJvbWlz
ZTsKLX0KLQotZnVuY3Rpb24gc2V0QmFzZVVSTFdoZW5GZXRjaGluZ0Nvb2tpZXMoYmFzZVVSTFdo
ZW5GZXRjaGluZ0Nvb2tpZXMpCi17Ci0gICAgZ19iYXNlVVJMV2hlbkZldGNoaW5nQ29va2llcyA9
IGJhc2VVUkxXaGVuRmV0Y2hpbmdDb29raWVzOwotfQotCi1mdW5jdGlvbiBpbnZhbGlkYXRlQ2Fj
aGVkQ29va2llcygpCi17Ci0gICAgZ19jYWNoZWRDb29raWVzID0gbnVsbDsKLX0KLQotZnVuY3Rp
b24gX3NldENhY2hlZENvb2tpZXNKU09OKGNvb2tpZXMpCi17Ci0gICAgZ19jYWNoZWRDb29raWVz
ID0gSlNPTi5wYXJzZShjb29raWVzKTsKLX0KLQotYXN5bmMgZnVuY3Rpb24gZ2V0Q29va2llcygp
Ci17Ci0gICAgaWYgKGdfY2FjaGVkQ29va2llcykKLSAgICAgICAgcmV0dXJuIGdfY2FjaGVkQ29v
a2llczsKLQotICAgIGxldCBwcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmVkLCByZWplY3Rl
ZCkgPT4gewotICAgICAgICBsZXQgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0OwotICAgICAgICB4
aHIub3BlbigiR0VUIiwgYCR7Z19iYXNlVVJMV2hlbkZldGNoaW5nQ29va2llc30vY29va2llcy9y
ZXNvdXJjZXMvZWNoby1qc29uLnBocGApOwotICAgICAgICB4aHIub25sb2FkID0gKCkgPT4gcmVz
b2x2ZWQoeGhyLnJlc3BvbnNlVGV4dCA/IEpTT04ucGFyc2UoeGhyLnJlc3BvbnNlVGV4dCkgOiB7
fSk7Ci0gICAgICAgIHhoci5vbmVycm9yID0gKCkgPT4gcmVqZWN0ZWQoe30pOwotICAgICAgICB4
aHIuc2VuZChudWxsKTsKLSAgICB9KTsKLSAgICBnX2NhY2hlZENvb2tpZXMgPSBhd2FpdCBwcm9t
aXNlOwotICAgIHJldHVybiBnX2NhY2hlZENvb2tpZXM7Ci19Ci0KLWFzeW5jIGZ1bmN0aW9uIHNo
b3VsZE5vdEhhdmVDb29raWUobmFtZSkKLXsKLSAgICBsZXQgY29va2llcyA9IGF3YWl0IGdldENv
b2tpZXMoKTsKLSAgICBsZXQgdmFsdWUgPSBjb29raWVzW25hbWVdOwotICAgIGlmICh2YWx1ZSA9
PSB1bmRlZmluZWQpCi0gICAgICAgIHRlc3RQYXNzZWQoYERvIG5vdCBoYXZlIGNvb2tpZSAiJHtu
YW1lfSIuYCk7Ci0gICAgZWxzZQotICAgICAgICB0ZXN0RmFpbGVkKGBTaG91bGQgbm90IGhhdmUg
Y29va2llICIke25hbWV9Ii4gQnV0IGRvIHdpdGggdmFsdWUgJHt2YWx1ZX0uYCk7Ci19Ci0KLWFz
eW5jIGZ1bmN0aW9uIHNob3VsZEhhdmVDb29raWUobmFtZSkKLXsKLSAgICBsZXQgY29va2llcyA9
IGF3YWl0IGdldENvb2tpZXMoKTsKLSAgICBsZXQgdmFsdWUgPSBjb29raWVzW25hbWVdOwotICAg
IGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpCi0gICAgICAgIHRlc3RGYWlsZWQoYFNob3VsZCBoYXZl
IGNvb2tpZSAiJHtuYW1lfSIuIEJ1dCBkbyBub3QuYCk7Ci0gICAgZWxzZQotICAgICAgICB0ZXN0
UGFzc2VkKGBIYXMgY29va2llICIke25hbWV9Ii5gKTsKLX0KLQotYXN5bmMgZnVuY3Rpb24gc2hv
dWxkSGF2ZUNvb2tpZVdpdGhWYWx1ZShuYW1lLCBleHBlY3RlZFZhbHVlKQotewotICAgIGNvbnNv
bGUuYXNzZXJ0KGV4cGVjdGVkVmFsdWUgIT09IHVuZGVmaW5lZCk7Ci0gICAgbGV0IGNvb2tpZXMg
PSBhd2FpdCBnZXRDb29raWVzKCk7Ci0gICAgbGV0IHZhbHVlID0gY29va2llc1tuYW1lXTsKLSAg
ICBpZiAodmFsdWUgPT0gdW5kZWZpbmVkKQotICAgICAgICB0ZXN0RmFpbGVkKGBTaG91bGQgaGF2
ZSBjb29raWUgIiR7bmFtZX0iLiBCdXQgZG8gbm90LmApOwotICAgIGVsc2UgaWYgKHZhbHVlID09
PSBleHBlY3RlZFZhbHVlKQotICAgICAgICB0ZXN0UGFzc2VkKGBIYXMgY29va2llICIke25hbWV9
IiB3aXRoIHZhbHVlICR7dmFsdWV9LmApOwotICAgIGVsc2UKLSAgICAgICAgdGVzdEZhaWxlZChg
Q29va2llICIke25hbWV9IiBzaG91bGQgaGF2ZSB2YWx1ZSAke2V4cGVjdGVkVmFsdWV9LiBXYXMg
JHt2YWx1ZX0uYCk7Ci19Ci0KLWZ1bmN0aW9uIHNob3VsZE5vdEhhdmVET01Db29raWUobmFtZSkK
LXsKLSAgICBsZXQgY29va2llcyA9IGdldERPTUNvb2tpZXMoKTsKLSAgICBsZXQgdmFsdWUgPSBj
b29raWVzW25hbWVdOwotICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpCi0gICAgICAgIHRlc3RQ
YXNzZWQoYERvIG5vdCBoYXZlIERPTSBjb29raWUgIiR7bmFtZX0iLmApOwotICAgIGVsc2UKLSAg
ICAgICAgdGVzdEZhaWxlZChgU2hvdWxkIG5vdCBoYXZlIERPTSBjb29raWUgIiR7bmFtZX0iLiBC
dXQgZG8gd2l0aCB2YWx1ZSAke3ZhbHVlfS5gKTsKLX0KLQotZnVuY3Rpb24gc2hvdWxkSGF2ZURP
TUNvb2tpZShuYW1lKQotewotICAgIGxldCBjb29raWVzID0gZ2V0RE9NQ29va2llcygpOwotICAg
IGxldCB2YWx1ZSA9IGNvb2tpZXNbbmFtZV07Ci0gICAgaWYgKHZhbHVlID09IHVuZGVmaW5lZCkK
LSAgICAgICAgdGVzdEZhaWxlZChgU2hvdWxkIGhhdmUgRE9NIGNvb2tpZSAiJHtuYW1lfSIuIEJ1
dCBkbyBub3QuYCk7Ci0gICAgZWxzZQotICAgICAgICB0ZXN0UGFzc2VkKGBIYXMgRE9NIGNvb2tp
ZSAiJHtuYW1lfSIuYCk7Ci19Ci0KLWZ1bmN0aW9uIHNob3VsZEhhdmVET01Db29raWVXaXRoVmFs
dWUobmFtZSwgZXhwZWN0ZWRWYWx1ZSkKLXsKLSAgICBjb25zb2xlLmFzc2VydChleHBlY3RlZFZh
bHVlICE9PSB1bmRlZmluZWQpOwotICAgIGxldCBjb29raWVzID0gZ2V0RE9NQ29va2llcygpOwot
ICAgIGxldCB2YWx1ZSA9IGNvb2tpZXNbbmFtZV07Ci0gICAgaWYgKHZhbHVlID09IHVuZGVmaW5l
ZCkKLSAgICAgICAgdGVzdEZhaWxlZChgU2hvdWxkIGhhdmUgRE9NIGNvb2tpZSAiJHtuYW1lfSIu
IEJ1dCBkbyBub3QuYCk7Ci0gICAgZWxzZSBpZiAodmFsdWUgPT09IGV4cGVjdGVkVmFsdWUpCi0g
ICAgICAgIHRlc3RQYXNzZWQoYEhhcyBET00gY29va2llICIke25hbWV9IiB3aXRoIHZhbHVlICR7
dmFsdWV9LmApOwotICAgIGVsc2UKLSAgICAgICAgdGVzdEZhaWxlZChgRE9NIGNvb2tpZSAiJHtu
YW1lfSIgc2hvdWxkIGhhdmUgdmFsdWUgJHtleHBlY3RlZFZhbHVlfS4gV2FzICR7dmFsdWV9LmAp
OwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb29raWVzL3Jlc291cmNl
cy9jb29raWUtdXRpbGl0eS5waHAgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMvcmVz
b3VyY2VzL2Nvb2tpZS11dGlsaXR5LnBocAppbmRleCA5ZjZlMDA1ZmUyYjQyYTEzY2NjMzY3MmQ4
NTkwMjJmZGY1ZDk5MTBmLi5hMzNlN2FjNzc3Njc4ZjExOThhYjVmYTkwY2ExMGNjYmI5MzEyOGYz
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMvcmVzb3VyY2VzL2Nv
b2tpZS11dGlsaXR5LnBocAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMvcmVz
b3VyY2VzL2Nvb2tpZS11dGlsaXR5LnBocApAQCAtNiwxMyArNiw2IEBAIGZ1bmN0aW9uIGRlbGV0
ZUNvb2tpZSgkdmFsdWUsICRuYW1lKQogICAgIHNldGNvb2tpZSgkbmFtZSwgImRlbGV0ZWQiLCB0
aW1lKCkgLSA4NjQwMCwgJy8nKTsKIH0KIAotaWYgKCRxdWVyeWZ1bmN0aW9uID09ICJkZWxldGVD
b29raWVzQW5kUG9zdE1lc3NhZ2UiKSB7Ci0gICAgYXJyYXlfd2FsaygkX0NPT0tJRSwgZGVsZXRl
Q29va2llKTsKLSAgICBlY2hvICI8c2NyaXB0PndpbmRvdy5vcGVuZXIucG9zdE1lc3NhZ2UoJ2Rv
bmUnLCAnKicpOzwvc2NyaXB0PlxuIjsKLSAgICByZXR1cm47Ci19Ci0KLQogaWYgKCRxdWVyeWZ1
bmN0aW9uID09ICJkZWxldGVDb29raWVzIikgewogICAgIGFycmF5X3dhbGsoJF9DT09LSUUsIGRl
bGV0ZUNvb2tpZSk7CiAgICAgZWNobyAiRGVsZXRlZCBhbGwgY29va2llcyI7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMvcmVzb3VyY2VzL2VjaG8tanNvbi5waHAg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMvcmVzb3VyY2VzL2VjaG8tanNvbi5waHAK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVlZTZhZjY0ODhjOTcwNjY1ODQxMGFmYTc4
OWMwNmI3MGViNGQyOGYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb29raWVzL3Jlc291cmNlcy9lY2hvLWpzb24u
cGhwCisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi08P3BocAotaGVhZGVyKCJDb250ZW50
LVR5cGU6IGFwcGxpY2F0aW9uL2pzb24iKTsKLWhlYWRlcigiQWNjZXNzLUNvbnRyb2wtQWxsb3ct
Q3JlZGVudGlhbHM6IHRydWUiKTsKLWhlYWRlcigiQWNjZXNzLUNvbnRyb2wtQWxsb3ctRXh0ZXJu
YWw6IHRydWUiKTsKLWhlYWRlcigiQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luOiAke19TRVJW
RVJbJ0hUVFBfT1JJR0lOJ119Iik7Ci0KLWVjaG8ganNvbl9lbmNvZGUoJF9DT09LSUUpOwotPz4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29va2llcy9yZXNvdXJjZXMvcG9z
dC1jb29raWVzLW9ubWVzc2FnZS5waHAgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMv
cmVzb3VyY2VzL3Bvc3QtY29va2llcy1vbm1lc3NhZ2UucGhwCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMjhkNTFhOTgzNzIyM2YwMGZmODQzNzZlODljYmI5Nzc2YWEyMjA2Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvY29va2llcy9yZXNvdXJjZXMvcG9zdC1jb29raWVzLW9ubWVzc2FnZS5waHAKKysr
IC9kZXYvbnVsbApAQCAtMSwxNCArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxzY3JpcHQ+Ci0K
LXZhciBmcm9tX2h0dHAgPSA8P3BocAotZWNobyBqc29uX2VuY29kZSgkX0NPT0tJRSk7Ci0/PjsK
LQotd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBlID0+IHsKLSAgICBlLnNvdXJj
ZS5wb3N0TWVzc2FnZSh7Ci0gICAgICAgICdodHRwJzogZnJvbV9odHRwLAotICAgICAgICAnZG9j
dW1lbnQnOiBkb2N1bWVudC5jb29raWUKLSAgICB9LCAiKiIpOwotfSk7Ci08L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29va2llcy9yZXNvdXJjZXMvcG9zdC1j
b29raWVzLXRvLW9wZW5lci5waHAgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMvcmVz
b3VyY2VzL3Bvc3QtY29va2llcy10by1vcGVuZXIucGhwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAzOWM4NTI0ZTgxM2U0M2YyZWY3OWIyM2RmZWNhNTYyMjk0NTY1OTg1Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvY29va2llcy9yZXNvdXJjZXMvcG9zdC1jb29raWVzLXRvLW9wZW5lci5waHAKKysrIC9k
ZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxzY3JpcHQ+Ci12YXIg
ZnJvbV9odHRwID0gPD9waHAKLWVjaG8ganNvbl9lbmNvZGUoJF9DT09LSUUpOwotPz47Ci0KLXdp
bmRvdy5vcGVuZXIucG9zdE1lc3NhZ2UoewotICAgICdodHRwJzogZnJvbV9odHRwLAotICAgICdk
b2N1bWVudCc6IGRvY3VtZW50LmNvb2tpZQotfSwgIioiKTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb29raWVzL3Jlc291cmNlcy90ZXN0aGFybmVzcy1o
ZWxwZXJzLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb29raWVzL3Jlc291cmNlcy90ZXN0
aGFybmVzcy1oZWxwZXJzLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MDNiMmYz
MTA1ODhjMzc5NDJjODllN2YxNzFkNTc0ZDRmODlhOGE2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29va2llcy9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MtaGVscGVycy5qcworKysgL2Rldi9udWxsCkBAIC0xLDIyICsw
LDAgQEAKLXZhciBPUklHSU5BTF9IT1NUICA9ICJleGFtcGxlLnRlc3QiOwotdmFyIFRFU1RfUk9P
VCA9ICJub3QtZXhhbXBsZS50ZXN0IjsKLXZhciBURVNUX0hPU1QgPSAiY29va2llcy4iICsgVEVT
VF9ST09UOwotdmFyIFRFU1RfU1VCICA9ICJzdWJkb21haW4uIiArIFRFU1RfSE9TVDsKLQotdmFy
IFNUUklDVF9ET00gPSAic3RyaWN0X2Zyb21fZG9tIjsKLXZhciBJTVBMSUNJVF9TVFJJQ1RfRE9N
ID0gImltcGxpY2l0X3N0cmljdF9mcm9tX2RvbSI7Ci12YXIgU1RSSUNUX0JFQ0FVU0VfSU5WQUxJ
RF9TQU1FU0lURV9WQUxVRSA9ICJzdHJpY3RfYmVjYXVzZV9pbnZhbGlkX1NhbWVTaXRlX3ZhbHVl
IjsKLXZhciBMQVhfRE9NID0gImxheF9mcm9tX2RvbSI7Ci12YXIgTk9STUFMX0RPTSA9ICJub3Jt
YWxfZnJvbV9kb20iOwotCi0vLyBDbGVhciB0aGUgdGhyZWUgd2VsbC1rbm93biBjb29raWVzLgot
ZnVuY3Rpb24gY2xlYXJLbm93bkNvb2tpZXMoKSB7Ci0gICAgdmFyIGNvb2tpZXMgPSBbIFNUUklD
VF9ET00sIExBWF9ET00sIE5PUk1BTF9ET00sIElNUExJQ0lUX1NUUklDVF9ET00sIFNUUklDVF9C
RUNBVVNFX0lOVkFMSURfU0FNRVNJVEVfVkFMVUUgXTsKLSAgICBjb29raWVzLmZvckVhY2goYyA9
PiB7IGRvY3VtZW50LmNvb2tpZSA9IGMgKyAiPTA7IGV4cGlyZXM9VGh1LCAwMSBKYW4gMTk3MCAw
MDowMDowMSBHTVQ7IHBhdGg9LyI7IH0pOwotfQotCi1mdW5jdGlvbiBub3JtYWxpemVDb29raWUo
Y29va2llKQotewotICAgIHJldHVybiBjb29raWUuc3BsaXQoLztccyovKS5zb3J0KCkuam9pbigi
OyAiKTsKLX0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb29raWVzL3Nh
bWUtc2l0ZS9mZXRjaC1hZnRlci1uYXZpZ2F0aW5nLWlmcmFtZS1pbi1jcm9zcy1vcmlnaW4tcGFn
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMvc2FtZS1zaXRl
L2ZldGNoLWFmdGVyLW5hdmlnYXRpbmctaWZyYW1lLWluLWNyb3NzLW9yaWdpbi1wYWdlLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTdmMmE3NjY1OGMyMGNkYjg1
NmU5YzgzZmQyNWJiOGVlM2E1YzRhOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMvc2FtZS1zaXRlL2Zl
dGNoLWFmdGVyLW5hdmlnYXRpbmctaWZyYW1lLWluLWNyb3NzLW9yaWdpbi1wYWdlLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAKLQotCi0tLS0tLS0tLQotRnJhbWU6
ICc8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMC0tPi0tPicKLS0tLS0tLS0tCi1UZXN0cyB0aGF0
IFNhbWUtU2l0ZSBjb29raWVzIGZvciAxMjcuMC4wLjEgYXJlIG5vdCBzZW50IHdpdGggYSBmcmFt
ZSBuYXZpZ2F0aW9uIGZvciBhIGZyYW1lIGVtYmVkZGVkIGluIGEgcGFnZSB3aXRoIGEgZGlmZmVy
ZW50IG9yaWdpbi4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLUNvb2tpZXMgc2Vu
dCB3aXRoIEhUVFAgcmVxdWVzdDoKLVBBU1MgRG8gbm90IGhhdmUgY29va2llICJzdHJpY3QiLgot
UEFTUyBEbyBub3QgaGF2ZSBjb29raWUgImltcGxpY2l0LXN0cmljdCIuCi1QQVNTIERvIG5vdCBo
YXZlIGNvb2tpZSAic3RyaWN0LWJlY2F1c2UtaW52YWxpZC1TYW1lU2l0ZS12YWx1ZSIuCi1QQVNT
IERvIG5vdCBoYXZlIGNvb2tpZSAibGF4Ii4KLQotQ29va2llcyB2aXNpYmxlIGluIERPTToKLVBB
U1MgRG8gbm90IGhhdmUgRE9NIGNvb2tpZSAic3RyaWN0Ii4KLVBBU1MgRG8gbm90IGhhdmUgRE9N
IGNvb2tpZSAiaW1wbGljaXQtc3RyaWN0Ii4KLVBBU1MgRG8gbm90IGhhdmUgRE9NIGNvb2tpZSAi
c3RyaWN0LWJlY2F1c2UtaW52YWxpZC1TYW1lU2l0ZS12YWx1ZSIuCi1QQVNTIERvIG5vdCBoYXZl
IERPTSBjb29raWUgImxheCIuCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRF
U1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb29raWVz
L3NhbWUtc2l0ZS9mZXRjaC1hZnRlci1uYXZpZ2F0aW5nLWlmcmFtZS1pbi1jcm9zcy1vcmlnaW4t
cGFnZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb29raWVzL3NhbWUtc2l0ZS9mZXRj
aC1hZnRlci1uYXZpZ2F0aW5nLWlmcmFtZS1pbi1jcm9zcy1vcmlnaW4tcGFnZS5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYjJlNTIwMjFjZmYxZjU3MzIyMzgzYzkwMTVmZGQ0
ZmRjM2Y0MTY5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29va2llcy9zYW1lLXNpdGUvZmV0Y2gtYWZ0ZXItbmF2
aWdhdGluZy1pZnJhbWUtaW4tY3Jvc3Mtb3JpZ2luLXBhZ2UuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDE5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQg
c3JjPSIuLi9yZXNvdXJjZXMvY29va2llLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Ci08Ym9keT4K
LTxzY3JpcHQ+Ci1hc3luYyBmdW5jdGlvbiBydW5UZXN0KCkKLXsKLSAgICBhd2FpdCByZXNldENv
b2tpZXMoKTsKLSAgICBhd2FpdCBzZXRDb29raWUoInN0cmljdCIsICI2IiwgeyJTYW1lU2l0ZSI6
ICJTdHJpY3QiLCAiTWF4LUFnZSI6IDEwMCwgInBhdGgiOiAiLyJ9KTsKLSAgICBhd2FpdCBzZXRD
b29raWUoImltcGxpY2l0LXN0cmljdCIsICI2IiwgeyJTYW1lU2l0ZSI6IG51bGwsICJNYXgtQWdl
IjogMTAwLCAicGF0aCI6ICIvIn0pOwotICAgIGF3YWl0IHNldENvb2tpZSgic3RyaWN0LWJlY2F1
c2UtaW52YWxpZC1TYW1lU2l0ZS12YWx1ZSIsICI2IiwgeyJTYW1lU2l0ZSI6ICJpbnZhbGlkIiwg
Ik1heC1BZ2UiOiAxMDAsICJwYXRoIjogIi8ifSk7Ci0gICAgYXdhaXQgc2V0Q29va2llKCJsYXgi
LCAiNiIsIHsiU2FtZVNpdGUiOiAiTGF4IiwgIk1heC1BZ2UiOiAxMDAsICJwYXRoIjogIi8ifSk7
Ci0gICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL2Nvb2tp
ZXMvc2FtZS1zaXRlL3Jlc291cmNlcy9lY2hvLWlmcmFtZS1zcmMucGhwP3NyYz1odHRwJTNBLy8x
MjcuMC4wLjElM0E4MDAwL2Nvb2tpZXMvc2FtZS1zaXRlL3Jlc291cmNlcy9jbGljay1oeXBlcmxp
bmsucGhwJTNGaHJlZiUzRGZldGNoLWFmdGVyLW5hdmlnYXRpbmctaWZyYW1lLWluLWNyb3NzLW9y
aWdpbi1wYWdlLnBocCI7Ci19Ci1ydW5UZXN0KCk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29va2llcy9zYW1lLXNpdGUv
ZmV0Y2gtYWZ0ZXItdG9wLWxldmVsLW5hdmlnYXRpb24tZnJvbS1jcm9zcy1vcmlnaW4tcGFnZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMvc2FtZS1zaXRlL2Zl
dGNoLWFmdGVyLXRvcC1sZXZlbC1uYXZpZ2F0aW9uLWZyb20tY3Jvc3Mtb3JpZ2luLXBhZ2UtZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZThhMmUzYmMzYzYzZjcz
ZmM0NTA2OWM2NWMzMDJkNjJhNGY4Mjg1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29va2llcy9zYW1lLXNpdGUv
ZmV0Y2gtYWZ0ZXItdG9wLWxldmVsLW5hdmlnYXRpb24tZnJvbS1jcm9zcy1vcmlnaW4tcGFnZS1l
eHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi1UZXN0cyB0aGF0IGEg
U2FtZVNpdGUgTGF4IGNvb2tpZSBmb3IgMTI3LjAuMC4xIGlzIHNlbnQgd2l0aCBhIHRvcC1sZXZl
bCBuYXZpZ2F0aW9uIGluaXRpYXRlZCBmcm9tIGEgcGFnZSB3aXRoIGEgZGlmZmVyZW50IG9yaWdp
bi4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLUNvb2tpZXMgc2VudCB3aXRoIEhU
VFAgcmVxdWVzdDoKLVBBU1MgRG8gbm90IGhhdmUgY29va2llICJzdHJpY3QiLgotUEFTUyBEbyBu
b3QgaGF2ZSBjb29raWUgImltcGxpY2l0LXN0cmljdCIuCi1QQVNTIERvIG5vdCBoYXZlIGNvb2tp
ZSAic3RyaWN0LWJlY2F1c2UtaW52YWxpZC1TYW1lU2l0ZS12YWx1ZSIuCi1QQVNTIEhhcyBjb29r
aWUgImxheCIgd2l0aCB2YWx1ZSA1LgotCi1Db29raWVzIHZpc2libGUgaW4gRE9NOgotUEFTUyBE
byBub3QgaGF2ZSBET00gY29va2llICJzdHJpY3QiLgotUEFTUyBEbyBub3QgaGF2ZSBET00gY29v
a2llICJpbXBsaWNpdC1zdHJpY3QiLgotUEFTUyBEbyBub3QgaGF2ZSBET00gY29va2llICJzdHJp
Y3QtYmVjYXVzZS1pbnZhbGlkLVNhbWVTaXRlLXZhbHVlIi4KLVBBU1MgSGFzIERPTSBjb29raWUg
ImxheCIgd2l0aCB2YWx1ZSA1LgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1U
RVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29va2ll
cy9zYW1lLXNpdGUvZmV0Y2gtYWZ0ZXItdG9wLWxldmVsLW5hdmlnYXRpb24tZnJvbS1jcm9zcy1v
cmlnaW4tcGFnZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb29raWVzL3NhbWUtc2l0
ZS9mZXRjaC1hZnRlci10b3AtbGV2ZWwtbmF2aWdhdGlvbi1mcm9tLWNyb3NzLW9yaWdpbi1wYWdl
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgzM2E1NmI0ZWRlNDk5OTc3NjUx
ODA0Y2UwY2JlZmE1YzlkNTI4YTkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb29raWVzL3NhbWUtc2l0ZS9mZXRj
aC1hZnRlci10b3AtbGV2ZWwtbmF2aWdhdGlvbi1mcm9tLWNyb3NzLW9yaWdpbi1wYWdlLmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgot
PGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2Nvb2tpZS11dGlsaXRpZXMuanMiPjwv
c2NyaXB0PgotPGJvZHk+Ci08c2NyaXB0PgotYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpCi17Ci0g
ICAgYXdhaXQgcmVzZXRDb29raWVzKCk7Ci0gICAgYXdhaXQgc2V0Q29va2llKCJzdHJpY3QiLCAi
NSIsIHsiU2FtZVNpdGUiOiAiU3RyaWN0IiwgIk1heC1BZ2UiOiAxMDAsICJwYXRoIjogIi8ifSk7
Ci0gICAgYXdhaXQgc2V0Q29va2llKCJpbXBsaWNpdC1zdHJpY3QiLCAiNSIsIHsiU2FtZVNpdGUi
OiBudWxsLCAiTWF4LUFnZSI6IDEwMCwgInBhdGgiOiAiLyJ9KTsKLSAgICBhd2FpdCBzZXRDb29r
aWUoInN0cmljdC1iZWNhdXNlLWludmFsaWQtU2FtZVNpdGUtdmFsdWUiLCAiNSIsIHsiU2FtZVNp
dGUiOiAiaW52YWxpZCIsICJNYXgtQWdlIjogMTAwLCAicGF0aCI6ICIvIn0pOwotICAgIGF3YWl0
IHNldENvb2tpZSgibGF4IiwgIjUiLCB7IlNhbWVTaXRlIjogIkxheCIsICJNYXgtQWdlIjogMTAw
LCAicGF0aCI6ICIvIn0pOwotICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gImh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMC9jb29raWVzL3NhbWUtc2l0ZS9yZXNvdXJjZXMvY2xpY2staHlwZXJsaW5rLnBo
cD9ocmVmPWh0dHAlM0EvLzEyNy4wLjAuMSUzQTgwMDAvY29va2llcy9zYW1lLXNpdGUvcmVzb3Vy
Y2VzL2ZldGNoLWFmdGVyLXRvcC1sZXZlbC1uYXZpZ2F0aW9uLWZyb20tY3Jvc3Mtb3JpZ2luLXBh
Z2UucGhwIjsKLX0KLXJ1blRlc3QoKTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb29raWVzL3NhbWUtc2l0ZS9mZXRjaC1h
ZnRlci10b3AtbGV2ZWwtbmF2aWdhdGlvbi1pbml0aWF0ZWQtZnJvbS1pZnJhbWUtaW4tY3Jvc3Mt
b3JpZ2luLXBhZ2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb29raWVz
L3NhbWUtc2l0ZS9mZXRjaC1hZnRlci10b3AtbGV2ZWwtbmF2aWdhdGlvbi1pbml0aWF0ZWQtZnJv
bS1pZnJhbWUtaW4tY3Jvc3Mtb3JpZ2luLXBhZ2UtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBmYTJjZjRmZGU4ODNkZjJkNTIxMzA0OGUwODM3ZDc4MWZhMzgyMTdi
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvY29va2llcy9zYW1lLXNpdGUvZmV0Y2gtYWZ0ZXItdG9wLWxldmVsLW5h
dmlnYXRpb24taW5pdGlhdGVkLWZyb20taWZyYW1lLWluLWNyb3NzLW9yaWdpbi1wYWdlLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLVRlc3RzIHRoYXQgYSBTYW1l
U2l0ZSBMYXggY29va2llIGZvciAxMjcuMC4wLjEgaXMgc2VudCB3aXRoIGEgdG9wLWxldmVsIG5h
dmlnYXRpb24gaW5pdGlhdGVkIGZyb20gYSBmcmFtZSBlbWJlZGRlZCBpbiBhIHBhZ2Ugd2l0aCBh
IGRpZmZlcmVudCBvcmlnaW4uCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1Db29r
aWVzIHNlbnQgd2l0aCBIVFRQIHJlcXVlc3Q6Ci1QQVNTIERvIG5vdCBoYXZlIGNvb2tpZSAic3Ry
aWN0Ii4KLVBBU1MgRG8gbm90IGhhdmUgY29va2llICJpbXBsaWNpdC1zdHJpY3QiLgotUEFTUyBE
byBub3QgaGF2ZSBjb29raWUgInN0cmljdC1iZWNhdXNlLWludmFsaWQtU2FtZVNpdGUtdmFsdWUi
LgotUEFTUyBIYXMgY29va2llICJsYXgiIHdpdGggdmFsdWUgNC4KLQotQ29va2llcyB2aXNpYmxl
IGluIERPTToKLVBBU1MgRG8gbm90IGhhdmUgRE9NIGNvb2tpZSAic3RyaWN0Ii4KLVBBU1MgRG8g
bm90IGhhdmUgRE9NIGNvb2tpZSAiaW1wbGljaXQtc3RyaWN0Ii4KLVBBU1MgRG8gbm90IGhhdmUg
RE9NIGNvb2tpZSAic3RyaWN0LWJlY2F1c2UtaW52YWxpZC1TYW1lU2l0ZS12YWx1ZSIuCi1QQVNT
IEhhcyBET00gY29va2llICJsYXgiIHdpdGggdmFsdWUgNC4KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2Nvb2tpZXMvc2FtZS1zaXRlL2ZldGNoLWFmdGVyLXRvcC1sZXZlbC1uYXZpZ2F0
aW9uLWluaXRpYXRlZC1mcm9tLWlmcmFtZS1pbi1jcm9zcy1vcmlnaW4tcGFnZS5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9jb29raWVzL3NhbWUtc2l0ZS9mZXRjaC1hZnRlci10b3AtbGV2
ZWwtbmF2aWdhdGlvbi1pbml0aWF0ZWQtZnJvbS1pZnJhbWUtaW4tY3Jvc3Mtb3JpZ2luLXBhZ2Uu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjYxNDNiODQ4NGQ2NjBjZTE5ZWJk
YWVlNTdkMWU2YTg4MWQ4MWE0Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMvc2FtZS1zaXRlL2ZldGNo
LWFmdGVyLXRvcC1sZXZlbC1uYXZpZ2F0aW9uLWluaXRpYXRlZC1mcm9tLWlmcmFtZS1pbi1jcm9z
cy1vcmlnaW4tcGFnZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotPCFET0NU
WVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9jb29r
aWUtdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KLTxib2R5PgotPHNjcmlwdD4KLWFzeW5jIGZ1bmN0
aW9uIHJ1blRlc3QoKQotewotICAgIGF3YWl0IHJlc2V0Q29va2llcygpOwotICAgIGF3YWl0IHNl
dENvb2tpZSgic3RyaWN0IiwgIjQiLCB7IlNhbWVTaXRlIjogIlN0cmljdCIsICJNYXgtQWdlIjog
MTAwLCAicGF0aCI6ICIvIn0pOwotICAgIGF3YWl0IHNldENvb2tpZSgiaW1wbGljaXQtc3RyaWN0
IiwgIjQiLCB7IlNhbWVTaXRlIjogbnVsbCwgIk1heC1BZ2UiOiAxMDAsICJwYXRoIjogIi8ifSk7
Ci0gICAgYXdhaXQgc2V0Q29va2llKCJzdHJpY3QtYmVjYXVzZS1pbnZhbGlkLVNhbWVTaXRlLXZh
bHVlIiwgIjQiLCB7IlNhbWVTaXRlIjogImludmFsaWQiLCAiTWF4LUFnZSI6IDEwMCwgInBhdGgi
OiAiLyJ9KTsKLSAgICBhd2FpdCBzZXRDb29raWUoImxheCIsICI0IiwgeyJTYW1lU2l0ZSI6ICJM
YXgiLCAiTWF4LUFnZSI6IDEwMCwgInBhdGgiOiAiLyJ9KTsKLSAgICB3aW5kb3cubG9jYXRpb24u
aHJlZiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvY29va2llcy9zYW1lLXNpdGUvcmVzb3VyY2Vz
L2VjaG8taWZyYW1lLXNyYy5waHA/c3JjPWh0dHAlM0EvLzEyNy4wLjAuMSUzQTgwMDAvY29va2ll
cy9zYW1lLXNpdGUvcmVzb3VyY2VzL2NsaWNrLWh5cGVybGluay5waHAlM0ZocmVmJTNEZmV0Y2gt
YWZ0ZXItdG9wLWxldmVsLW5hdmlnYXRpb24taW5pdGlhdGVkLWZyb20taWZyYW1lLWluLWNyb3Nz
LW9yaWdpbi1wYWdlLnBocCUyNnRhcmdldCUzRF90b3AiOwotfQotcnVuVGVzdCgpOwotPC9zY3Jp
cHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2Nvb2tpZXMvc2FtZS1zaXRlL2ZldGNoLWNvb2tpZXMtc2V0LWluLWFib3V0LWJsYW5rLWlmcmFt
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMvc2FtZS1zaXRl
L2ZldGNoLWNvb2tpZXMtc2V0LWluLWFib3V0LWJsYW5rLWlmcmFtZS1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYzZTEwOGM1MjZmM2RhNzRkZTExZDA2MDMwZDc0
NmRkNWY4M2UyNWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb29raWVzL3NhbWUtc2l0ZS9mZXRjaC1jb29raWVz
LXNldC1pbi1hYm91dC1ibGFuay1pZnJhbWUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsMjAgKzAsMCBAQAotVGVzdHMgdGhhdCBTYW1lLVNpdGUgY29va2llcyBmb3IgMTI3LjAuMC4x
IGNhbiBiZSBzZXQgaW4gYW4gYWJvdXQ6YmxhbmsgaWZyYW1lIGFuZCByZXRyaWV2ZWQgYnkgdGhl
IHRvcC1tb3N0IGZyYW1lLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotQ29va2ll
cyBzZW50IHdpdGggSFRUUCByZXF1ZXN0OgotUEFTUyBIYXMgY29va2llICJzdHJpY3QiIHdpdGgg
dmFsdWUgMTQuCi1QQVNTIEhhcyBjb29raWUgImltcGxpY2l0LXN0cmljdCIgd2l0aCB2YWx1ZSAx
NC4KLVBBU1MgSGFzIGNvb2tpZSAic3RyaWN0LWJlY2F1c2UtaW52YWxpZC1TYW1lU2l0ZS12YWx1
ZSIgd2l0aCB2YWx1ZSAxNC4KLVBBU1MgSGFzIGNvb2tpZSAibGF4IiB3aXRoIHZhbHVlIDE0Lgot
Ci1Db29raWVzIHZpc2libGUgaW4gRE9NOgotUEFTUyBIYXMgRE9NIGNvb2tpZSAic3RyaWN0IiB3
aXRoIHZhbHVlIDE0LgotUEFTUyBIYXMgRE9NIGNvb2tpZSAiaW1wbGljaXQtc3RyaWN0IiB3aXRo
IHZhbHVlIDE0LgotUEFTUyBIYXMgRE9NIGNvb2tpZSAic3RyaWN0LWJlY2F1c2UtaW52YWxpZC1T
YW1lU2l0ZS12YWx1ZSIgd2l0aCB2YWx1ZSAxNC4KLVBBU1MgSGFzIERPTSBjb29raWUgImxheCIg
d2l0aCB2YWx1ZSAxNC4KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBD
T01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMvc2Ft
ZS1zaXRlL2ZldGNoLWNvb2tpZXMtc2V0LWluLWFib3V0LWJsYW5rLWlmcmFtZS5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9jb29raWVzL3NhbWUtc2l0ZS9mZXRjaC1jb29raWVzLXNldC1p
bi1hYm91dC1ibGFuay1pZnJhbWUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NGVjZGM2ZjI2MzJhMGExM2NmYjE1NmI5YTQ4ZDlkY2UyNjQwNmJiNi4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nv
b2tpZXMvc2FtZS1zaXRlL2ZldGNoLWNvb2tpZXMtc2V0LWluLWFib3V0LWJsYW5rLWlmcmFtZS5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRt
bD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvY29va2llLXV0aWxpdGllcy5qcyI+
PC9zY3JpcHQ+Ci08Ym9keT4KLTxzY3JpcHQ+Ci13aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7
Ci0KLWRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IFNhbWUtU2l0ZSBjb29raWVzIGZvciAxMjcuMC4w
LjEgY2FuIGJlIHNldCBpbiBhbiBhYm91dDpibGFuayBpZnJhbWUgYW5kIHJldHJpZXZlZCBieSB0
aGUgdG9wLW1vc3QgZnJhbWUuIik7Ci0KLWFzeW5jIGZ1bmN0aW9uIHJ1blRlc3QoKQotewotICAg
IGxldCBhcHBlbmRJZnJhbWVBbmRXYWl0VW50aWxMb2FkZWRQcm9taXNlID0gbmV3IFByb21pc2Uo
KHJlc29sdmVkKSA9PiB7Ci0gICAgICAgIGxldCBpZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJpZnJhbWUiKTsKLSAgICAgICAgaWZyYW1lLm9ubG9hZCA9IChlKSA9PiByZXNvbHZlZChp
ZnJhbWUpOwotICAgICAgICBpZnJhbWUuc3JjID0gImFib3V0OmJsYW5rIjsKLSAgICAgICAgZG9j
dW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWUpOwotICAgIH0pOwotICAgIGxldCBpZnJhbWUg
PSBhd2FpdCBhcHBlbmRJZnJhbWVBbmRXYWl0VW50aWxMb2FkZWRQcm9taXNlOwotCi0gICAgbGV0
IGRpZExvYWRTY3JpcHRJbklGcmFtZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7Ci0gICAg
ICAgIGxldCBzY3JpcHQgPSBpZnJhbWUuY29udGVudERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNj
cmlwdCIpOwotICAgICAgICBzY3JpcHQub25sb2FkID0gcmVzb2x2ZTsKLSAgICAgICAgc2NyaXB0
LnNyYyA9ICIuLi9yZXNvdXJjZXMvY29va2llLXV0aWxpdGllcy5qcyI7Ci0gICAgICAgIGlmcmFt
ZS5jb250ZW50RG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzY3JpcHQpOwotICAgIH0pOwotICAg
IGF3YWl0IGRpZExvYWRTY3JpcHRJbklGcmFtZTsKLQotICAgIC8vIFNldCBjb29raWVzIGluIGFi
b3V0OmJsYW5rIGlmcmFtZS4KLSAgICBsZXQgaWZyYW1lQ29udGVudFdpbmRvdyA9IGlmcmFtZS5j
b250ZW50V2luZG93OwotICAgIGF3YWl0IGlmcmFtZUNvbnRlbnRXaW5kb3cucmVzZXRDb29raWVz
KCk7Ci0gICAgYXdhaXQgaWZyYW1lQ29udGVudFdpbmRvdy5zZXRDb29raWUoInN0cmljdCIsICIx
NCIsIHsiU2FtZVNpdGUiOiAiU3RyaWN0IiwgIk1heC1BZ2UiOiAxMDAsICJwYXRoIjogIi8ifSk7
Ci0gICAgYXdhaXQgaWZyYW1lQ29udGVudFdpbmRvdy5zZXRDb29raWUoImltcGxpY2l0LXN0cmlj
dCIsICIxNCIsIHsiU2FtZVNpdGUiOiBudWxsLCAiTWF4LUFnZSI6IDEwMCwgInBhdGgiOiAiLyJ9
KTsKLSAgICBhd2FpdCBpZnJhbWVDb250ZW50V2luZG93LnNldENvb2tpZSgic3RyaWN0LWJlY2F1
c2UtaW52YWxpZC1TYW1lU2l0ZS12YWx1ZSIsICIxNCIsIHsiU2FtZVNpdGUiOiAiaW52YWxpZCIs
ICJNYXgtQWdlIjogMTAwLCAicGF0aCI6ICIvIn0pOwotICAgIGF3YWl0IGlmcmFtZUNvbnRlbnRX
aW5kb3cuc2V0Q29va2llKCJsYXgiLCAiMTQiLCB7IlNhbWVTaXRlIjogIkxheCIsICJNYXgtQWdl
IjogMTAwLCAicGF0aCI6ICIvIn0pOwotCi0gICAgLy8gRmV0Y2ggY29va2llcyBpbiB0b3AtbW9z
dCBmcmFtZS4KLSAgICBkZWJ1ZygiQ29va2llcyBzZW50IHdpdGggSFRUUCByZXF1ZXN0OiIpOwot
ICAgIGF3YWl0IHNob3VsZEhhdmVDb29raWVXaXRoVmFsdWUoInN0cmljdCIsICIxNCIpOwotICAg
IGF3YWl0IHNob3VsZEhhdmVDb29raWVXaXRoVmFsdWUoImltcGxpY2l0LXN0cmljdCIsICIxNCIp
OwotICAgIGF3YWl0IHNob3VsZEhhdmVDb29raWVXaXRoVmFsdWUoInN0cmljdC1iZWNhdXNlLWlu
dmFsaWQtU2FtZVNpdGUtdmFsdWUiLCAiMTQiKTsKLSAgICBhd2FpdCBzaG91bGRIYXZlQ29va2ll
V2l0aFZhbHVlKCJsYXgiLCAiMTQiKTsKLQotICAgIGRlYnVnKCI8YnI+Q29va2llcyB2aXNpYmxl
IGluIERPTToiKTsKLSAgICBzaG91bGRIYXZlRE9NQ29va2llV2l0aFZhbHVlKCJzdHJpY3QiLCAi
MTQiKTsKLSAgICBzaG91bGRIYXZlRE9NQ29va2llV2l0aFZhbHVlKCJpbXBsaWNpdC1zdHJpY3Qi
LCAiMTQiKTsKLSAgICBzaG91bGRIYXZlRE9NQ29va2llV2l0aFZhbHVlKCJzdHJpY3QtYmVjYXVz
ZS1pbnZhbGlkLVNhbWVTaXRlLXZhbHVlIiwgIjE0Iik7Ci0gICAgc2hvdWxkSGF2ZURPTUNvb2tp
ZVdpdGhWYWx1ZSgibGF4IiwgIjE0Iik7Ci0KLSAgICBhd2FpdCBpZnJhbWVDb250ZW50V2luZG93
LnJlc2V0Q29va2llcygpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfQotcnVuVGVzdCgpOwotPC9z
Y3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2Nvb2tpZXMvc2FtZS1zaXRlL2ZldGNoLWluLWFib3V0LWJsYW5rLXBhZ2UtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb29raWVzL3NhbWUtc2l0ZS9mZXRjaC1pbi1h
Ym91dC1ibGFuay1wYWdlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMzM3ZTc2MDBiODE5OWMwM2Q0NmQ1MDg2MmQ2N2E4MjBiMWJjYjljYS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2Nvb2tpZXMvc2FtZS1zaXRlL2ZldGNoLWluLWFib3V0LWJsYW5rLXBhZ2UtZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotVGVzdHMgdGhhdCBTYW1lLVNpdGUgRE9N
IGNvb2tpZXMgZm9yIDEyNy4wLjAuMSBhcmUgdmlzaWJsZSBmcm9tIGFib3V0OmJsYW5rIGlmcmFt
ZS4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLUNvb2tpZXMgdmlzaWJsZSBpbiBE
T006Ci1QQVNTIEhhcyBET00gY29va2llICJzdHJpY3QiIHdpdGggdmFsdWUgMTMuCi1QQVNTIEhh
cyBET00gY29va2llICJpbXBsaWNpdC1zdHJpY3QiIHdpdGggdmFsdWUgMTMuCi1QQVNTIEhhcyBE
T00gY29va2llICJzdHJpY3QtYmVjYXVzZS1pbnZhbGlkLVNhbWVTaXRlLXZhbHVlIiB3aXRoIHZh
bHVlIDEzLgotUEFTUyBIYXMgRE9NIGNvb2tpZSAibGF4IiB3aXRoIHZhbHVlIDEzLgotUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29va2llcy9zYW1lLXNpdGUvZmV0Y2gtaW4tYWJvdXQt
YmxhbmstcGFnZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb29raWVzL3NhbWUtc2l0
ZS9mZXRjaC1pbi1hYm91dC1ibGFuay1wYWdlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGUyMGY2Y2M1OGQwOWIyOGUzNTViODYwYTQ5Y2I1YjU3MmJiYmZkOGMuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9jb29raWVzL3NhbWUtc2l0ZS9mZXRjaC1pbi1hYm91dC1ibGFuay1wYWdlLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSw0MiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhl
YWQ+Ci08c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9jb29raWUtdXRpbGl0aWVzLmpzIj48L3Njcmlw
dD4KLTxib2R5PgotPHNjcmlwdD4KLXdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotZGVz
Y3JpcHRpb24oIlRlc3RzIHRoYXQgU2FtZS1TaXRlIERPTSBjb29raWVzIGZvciAxMjcuMC4wLjEg
YXJlIHZpc2libGUgZnJvbSBhYm91dDpibGFuayBpZnJhbWUuIik7Ci0KLWFzeW5jIGZ1bmN0aW9u
IHJ1blRlc3QoKQotewotICAgIGF3YWl0IHJlc2V0Q29va2llcygpOwotICAgIGF3YWl0IHNldENv
b2tpZSgic3RyaWN0IiwgIjEzIiwgeyJTYW1lU2l0ZSI6ICJTdHJpY3QiLCAiTWF4LUFnZSI6IDEw
MCwgInBhdGgiOiAiLyJ9KTsKLSAgICBhd2FpdCBzZXRDb29raWUoImltcGxpY2l0LXN0cmljdCIs
ICIxMyIsIHsiU2FtZVNpdGUiOiBudWxsLCAiTWF4LUFnZSI6IDEwMCwgInBhdGgiOiAiLyJ9KTsK
LSAgICBhd2FpdCBzZXRDb29raWUoInN0cmljdC1iZWNhdXNlLWludmFsaWQtU2FtZVNpdGUtdmFs
dWUiLCAiMTMiLCB7IlNhbWVTaXRlIjogImludmFsaWQiLCAiTWF4LUFnZSI6IDEwMCwgInBhdGgi
OiAiLyJ9KTsKLSAgICBhd2FpdCBzZXRDb29raWUoImxheCIsICIxMyIsIHsiU2FtZVNpdGUiOiAi
TGF4IiwgIk1heC1BZ2UiOiAxMDAsICJwYXRoIjogIi8ifSk7Ci0KLSAgICBsZXQgYXBwZW5kSWZy
YW1lQW5kV2FpdFVudGlsTG9hZGVkUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlZCkgPT4g
ewotICAgICAgICBsZXQgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7
Ci0gICAgICAgIGlmcmFtZS5vbmxvYWQgPSAoZSkgPT4gcmVzb2x2ZWQoaWZyYW1lKTsKLSAgICAg
ICAgaWZyYW1lLnNyYyA9ICJhYm91dDpibGFuayI7Ci0gICAgICAgIGRvY3VtZW50LmJvZHkuYXBw
ZW5kQ2hpbGQoaWZyYW1lKTsKLSAgICB9KTsKLSAgICBsZXQgaWZyYW1lID0gYXdhaXQgYXBwZW5k
SWZyYW1lQW5kV2FpdFVudGlsTG9hZGVkUHJvbWlzZTsKLQotICAgIHNldEJhc2VEb2N1bWVudFdo
ZW5GZXRjaGluZ0RPTUNvb2tpZXMoaWZyYW1lLmNvbnRlbnREb2N1bWVudCk7Ci0KLSAgICBkZWJ1
ZygiQ29va2llcyB2aXNpYmxlIGluIERPTToiKTsKLSAgICBzaG91bGRIYXZlRE9NQ29va2llV2l0
aFZhbHVlKCJzdHJpY3QiLCAiMTMiKTsKLSAgICBzaG91bGRIYXZlRE9NQ29va2llV2l0aFZhbHVl
KCJpbXBsaWNpdC1zdHJpY3QiLCAiMTMiKTsKLSAgICBzaG91bGRIYXZlRE9NQ29va2llV2l0aFZh
bHVlKCJzdHJpY3QtYmVjYXVzZS1pbnZhbGlkLVNhbWVTaXRlLXZhbHVlIiwgIjEzIik7Ci0gICAg
c2hvdWxkSGF2ZURPTUNvb2tpZVdpdGhWYWx1ZSgibGF4IiwgIjEzIik7Ci0KLSAgICBhd2FpdCBy
ZXNldENvb2tpZXMoKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0KLXJ1blRlc3QoKTsKLTwvc2Ny
aXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9jb29raWVzL3NhbWUtc2l0ZS9mZXRjaC1pbi1jcm9zcy1vcmlnaW4taWZyYW1lLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29va2llcy9zYW1lLXNpdGUvZmV0Y2gtaW4t
Y3Jvc3Mtb3JpZ2luLWlmcmFtZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDkyNmMzMGRhYzIzOGJkOGE3MGUxMmU2M2ZkM2QxZTgyZjE3ZjI3OGMuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9jb29raWVzL3NhbWUtc2l0ZS9mZXRjaC1pbi1jcm9zcy1vcmlnaW4taWZyYW1lLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAKLQotCi0tLS0tLS0tLQotRnJh
bWU6ICc8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMC0tPi0tPicKLS0tLS0tLS0tCi1UZXN0cyB0
aGF0IFNhbWUtU2l0ZSBjb29raWVzIGZvciAxMjcuMC4wLjEgYXJlIG5vdCBzZW50IHdpdGggYSBy
ZXF1ZXN0IGluaXRpYXRlZCBmcm9tIGEgaWZyYW1lIHdpdGggYSBkaWZmZXJlbnQgb3JpZ2luLgot
Ci1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotQ29va2llcyBzZW50IHdpdGggSFRUUCBy
ZXF1ZXN0OgotUEFTUyBEbyBub3QgaGF2ZSBjb29raWUgInN0cmljdCIuCi1QQVNTIERvIG5vdCBo
YXZlIGNvb2tpZSAiaW1wbGljaXQtc3RyaWN0Ii4KLVBBU1MgRG8gbm90IGhhdmUgY29va2llICJz
dHJpY3QtYmVjYXVzZS1pbnZhbGlkLVNhbWVTaXRlLXZhbHVlIi4KLVBBU1MgRG8gbm90IGhhdmUg
Y29va2llICJsYXgiLgotCi1Db29raWVzIHZpc2libGUgaW4gRE9NOgotUEFTUyBEbyBub3QgaGF2
ZSBET00gY29va2llICJzdHJpY3QiLgotUEFTUyBEbyBub3QgaGF2ZSBET00gY29va2llICJpbXBs
aWNpdC1zdHJpY3QiLgotUEFTUyBEbyBub3QgaGF2ZSBET00gY29va2llICJzdHJpY3QtYmVjYXVz
ZS1pbnZhbGlkLVNhbWVTaXRlLXZhbHVlIi4KLVBBU1MgRG8gbm90IGhhdmUgRE9NIGNvb2tpZSAi
bGF4Ii4KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMvc2FtZS1zaXRlL2Zl
dGNoLWluLWNyb3NzLW9yaWdpbi1pZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
Y29va2llcy9zYW1lLXNpdGUvZmV0Y2gtaW4tY3Jvc3Mtb3JpZ2luLWlmcmFtZS5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZGM5YWE2YjlkNzM5ZjBkOWFmZDVmMjcyYzE1ZDM1
ZTBjMjFiNmI3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29va2llcy9zYW1lLXNpdGUvZmV0Y2gtaW4tY3Jvc3Mt
b3JpZ2luLWlmcmFtZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotPCFET0NU
WVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9jb29r
aWUtdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KLTxib2R5PgotPHNjcmlwdD4KLWFzeW5jIGZ1bmN0
aW9uIHJ1blRlc3QoKQotewotICAgIGF3YWl0IHJlc2V0Q29va2llcygpOwotICAgIGF3YWl0IHNl
dENvb2tpZSgic3RyaWN0IiwgIjMiLCB7IlNhbWVTaXRlIjogIlN0cmljdCIsICJNYXgtQWdlIjog
MTAwLCAicGF0aCI6ICIvIn0pOwotICAgIGF3YWl0IHNldENvb2tpZSgiaW1wbGljaXQtc3RyaWN0
IiwgIjMiLCB7IlNhbWVTaXRlIjogbnVsbCwgIk1heC1BZ2UiOiAxMDAsICJwYXRoIjogIi8ifSk7
Ci0gICAgYXdhaXQgc2V0Q29va2llKCJzdHJpY3QtYmVjYXVzZS1pbnZhbGlkLVNhbWVTaXRlLXZh
bHVlIiwgIjMiLCB7IlNhbWVTaXRlIjogImludmFsaWQiLCAiTWF4LUFnZSI6IDEwMCwgInBhdGgi
OiAiLyJ9KTsKLSAgICBhd2FpdCBzZXRDb29raWUoImxheCIsICIzIiwgeyJTYW1lU2l0ZSI6ICJM
YXgiLCAiTWF4LUFnZSI6IDEwMCwgInBhdGgiOiAiLyJ9KTsKLSAgICB3aW5kb3cubG9jYXRpb24u
aHJlZiA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvY29va2llcy9zYW1lLXNpdGUvcmVzb3VyY2Vz
L2VjaG8taWZyYW1lLXNyYy5waHA/c3JjPWh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9jb29raWVzL3Nh
bWUtc2l0ZS9yZXNvdXJjZXMvZmV0Y2gtaW4tY3Jvc3Mtb3JpZ2luLWlmcmFtZS5odG1sIjsKLX0K
LXJ1blRlc3QoKTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9jb29raWVzL3NhbWUtc2l0ZS9mZXRjaC1pbi1jcm9zcy1vcmln
aW4tcGFnZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMvc2Ft
ZS1zaXRlL2ZldGNoLWluLWNyb3NzLW9yaWdpbi1wYWdlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZjA3NTUwNmRiN2QyYWQxMDk0YWQzMzQ3N2I1Y2QyNmMwZWEy
OGU3NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMvc2FtZS1zaXRlL2ZldGNoLWluLWNyb3NzLW9yaWdp
bi1wYWdlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLVRlc3Rz
IHRoYXQgU2FtZS1TaXRlIGNvb2tpZXMgZm9yIDEyNy4wLjAuMSBhcmUgbm90IHNlbnQgd2l0aCBh
IHJlcXVlc3QgaW5pdGlhdGVkIGZyb20gYSBwYWdlIHdpdGggYSBkaWZmZXJlbnQgb3JpZ2luLgot
Ci1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotQ29va2llcyBzZW50IHdpdGggSFRUUCBy
ZXF1ZXN0OgotUEFTUyBEbyBub3QgaGF2ZSBjb29raWUgInN0cmljdCIuCi1QQVNTIERvIG5vdCBo
YXZlIGNvb2tpZSAiaW1wbGljaXQtc3RyaWN0Ii4KLVBBU1MgRG8gbm90IGhhdmUgY29va2llICJz
dHJpY3QtYmVjYXVzZS1pbnZhbGlkLVNhbWVTaXRlLXZhbHVlIi4KLVBBU1MgRG8gbm90IGhhdmUg
Y29va2llICJsYXgiLgotCi1Db29raWVzIHZpc2libGUgaW4gRE9NOgotUEFTUyBEbyBub3QgaGF2
ZSBET00gY29va2llICJzdHJpY3QiLgotUEFTUyBEbyBub3QgaGF2ZSBET00gY29va2llICJpbXBs
aWNpdC1zdHJpY3QiLgotUEFTUyBEbyBub3QgaGF2ZSBET00gY29va2llICJzdHJpY3QtYmVjYXVz
ZS1pbnZhbGlkLVNhbWVTaXRlLXZhbHVlIi4KLVBBU1MgRG8gbm90IGhhdmUgRE9NIGNvb2tpZSAi
bGF4Ii4KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMvc2FtZS1zaXRlL2Zl
dGNoLWluLWNyb3NzLW9yaWdpbi1wYWdlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nv
b2tpZXMvc2FtZS1zaXRlL2ZldGNoLWluLWNyb3NzLW9yaWdpbi1wYWdlLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBkNjExZTVlZWJlM2I1YTVmMGM3MDM3ZDRkYjllNDNiYzU1
MjJjNjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9jb29raWVzL3NhbWUtc2l0ZS9mZXRjaC1pbi1jcm9zcy1vcmln
aW4tcGFnZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDUgKzAsMCBAQAotPCFET0NUWVBFIGh0
bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10
ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvY29va2llLXV0aWxp
dGllcy5qcyI+PC9zY3JpcHQ+Ci08Ym9keT4KLTxzY3JpcHQ+Ci13aW5kb3cuanNUZXN0SXNBc3lu
YyA9IHRydWU7Ci0KLWRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IFNhbWUtU2l0ZSBjb29raWVzIGZv
ciAxMjcuMC4wLjEgYXJlIG5vdCBzZW50IHdpdGggYSByZXF1ZXN0IGluaXRpYXRlZCBmcm9tIGEg
cGFnZSB3aXRoIGEgZGlmZmVyZW50IG9yaWdpbi4iKTsKLQotYXN5bmMgZnVuY3Rpb24gcnVuVGVz
dCgpCi17Ci0gICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3RuYW1lID09PSAiMTI3LjAuMC4x
IikgewotICAgICAgICBhd2FpdCByZXNldENvb2tpZXMoKTsKLSAgICAgICAgYXdhaXQgc2V0Q29v
a2llKCJzdHJpY3QiLCAiMSIsIHsiU2FtZVNpdGUiOiAiU3RyaWN0IiwgIk1heC1BZ2UiOiAxMDAs
ICJwYXRoIjogIi8ifSk7Ci0gICAgICAgIGF3YWl0IHNldENvb2tpZSgiaW1wbGljaXQtc3RyaWN0
IiwgIjEiLCB7IlNhbWVTaXRlIjogbnVsbCwgIk1heC1BZ2UiOiAxMDAsICJwYXRoIjogIi8ifSk7
Ci0gICAgICAgIGF3YWl0IHNldENvb2tpZSgic3RyaWN0LWJlY2F1c2UtaW52YWxpZC1TYW1lU2l0
ZS12YWx1ZSIsICIxIiwgeyJTYW1lU2l0ZSI6ICJpbnZhbGlkIiwgIk1heC1BZ2UiOiAxMDAsICJw
YXRoIjogIi8ifSk7Ci0gICAgICAgIGF3YWl0IHNldENvb2tpZSgibGF4IiwgIjEiLCB7IlNhbWVT
aXRlIjogIkxheCIsICJNYXgtQWdlIjogMTAwLCAicGF0aCI6ICIvIn0pOwotICAgICAgICB3aW5k
b3cubG9jYXRpb24uaG9zdG5hbWUgPSAibG9jYWxob3N0IjsKLSAgICB9IGVsc2UgewotICAgICAg
ICAvLyBsb2NhbGhvc3QKLSAgICAgICAgc2V0QmFzZVVSTFdoZW5GZXRjaGluZ0Nvb2tpZXMoImh0
dHA6Ly8xMjcuMC4wLjE6ODAwMCIpOwotCi0gICAgICAgIGRlYnVnKCJDb29raWVzIHNlbnQgd2l0
aCBIVFRQIHJlcXVlc3Q6Iik7Ci0gICAgICAgIGF3YWl0IHNob3VsZE5vdEhhdmVDb29raWUoInN0
cmljdCIpOwotICAgICAgICBhd2FpdCBzaG91bGROb3RIYXZlQ29va2llKCJpbXBsaWNpdC1zdHJp
Y3QiKTsKLSAgICAgICAgYXdhaXQgc2hvdWxkTm90SGF2ZUNvb2tpZSgic3RyaWN0LWJlY2F1c2Ut
aW52YWxpZC1TYW1lU2l0ZS12YWx1ZSIpOwotICAgICAgICBhd2FpdCBzaG91bGROb3RIYXZlQ29v
a2llKCJsYXgiKTsKLQotICAgICAgICBkZWJ1ZygiPGJyPkNvb2tpZXMgdmlzaWJsZSBpbiBET006
Iik7Ci0gICAgICAgIHNob3VsZE5vdEhhdmVET01Db29raWUoInN0cmljdCIpOwotICAgICAgICBz
aG91bGROb3RIYXZlRE9NQ29va2llKCJpbXBsaWNpdC1zdHJpY3QiKTsKLSAgICAgICAgc2hvdWxk
Tm90SGF2ZURPTUNvb2tpZSgic3RyaWN0LWJlY2F1c2UtaW52YWxpZC1TYW1lU2l0ZS12YWx1ZSIp
OwotICAgICAgICBzaG91bGROb3RIYXZlRE9NQ29va2llKCJsYXgiKTsKLQotICAgICAgICBhd2Fp
dCByZXNldENvb2tpZXMoKTsKLSAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgfQotfQotCi1y
dW5UZXN0KCk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvY29va2llcy9zYW1lLXNpdGUvZmV0Y2gtaW4tY3Jvc3Mtb3JpZ2lu
LXNlcnZpY2Utd29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29v
a2llcy9zYW1lLXNpdGUvZmV0Y2gtaW4tY3Jvc3Mtb3JpZ2luLXNlcnZpY2Utd29ya2VyLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmVlN2MyMTBhMTc3MjRkMzhi
MmVjYmRlZTcxYjEyMWIzZThkZmU5ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMvc2FtZS1zaXRlL2Zl
dGNoLWluLWNyb3NzLW9yaWdpbi1zZXJ2aWNlLXdvcmtlci1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSwyNSArMCwwIEBACi0KLQotLS0tLS0tLS0KLUZyYW1lOiAnPCEtLWZyYW1lUGF0
aCAvLzwhLS1mcmFtZTAtLT4tLT4nCi0tLS0tLS0tLQotVGVzdHMgdGhhdCBTYW1lLVNpdGUgY29v
a2llcyBmb3IgMTI3LjAuMC4xIGFyZSBub3Qgc2VudCB3aXRoIGEgcmVxdWVzdCBpbml0aWF0ZWQg
ZnJvbSBhbiBpZnJhbWUtIGFuZCBwcm9jZXNzZWQgYnkgYSBzZXJ2aWNlIHdvcmtlci0gd2l0aCBh
IGRpZmZlcmVudCBvcmlnaW4uCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1Db29r
aWVzIHNlbnQgd2l0aCBIVFRQIHJlcXVlc3Q6Ci1QQVNTIERvIG5vdCBoYXZlIGNvb2tpZSAic3Ry
aWN0Ii4KLVBBU1MgRG8gbm90IGhhdmUgY29va2llICJpbXBsaWNpdC1zdHJpY3QiLgotUEFTUyBE
byBub3QgaGF2ZSBjb29raWUgInN0cmljdC1iZWNhdXNlLWludmFsaWQtU2FtZVNpdGUtdmFsdWUi
LgotUEFTUyBEbyBub3QgaGF2ZSBjb29raWUgImxheCIuCi0KLUNvb2tpZXMgdmlzaWJsZSBpbiBE
T006Ci1QQVNTIERvIG5vdCBoYXZlIERPTSBjb29raWUgInN0cmljdCIuCi1QQVNTIERvIG5vdCBo
YXZlIERPTSBjb29raWUgImltcGxpY2l0LXN0cmljdCIuCi1QQVNTIERvIG5vdCBoYXZlIERPTSBj
b29raWUgInN0cmljdC1iZWNhdXNlLWludmFsaWQtU2FtZVNpdGUtdmFsdWUiLgotUEFTUyBEbyBu
b3QgaGF2ZSBET00gY29va2llICJsYXgiLgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
Y29va2llcy9zYW1lLXNpdGUvZmV0Y2gtaW4tY3Jvc3Mtb3JpZ2luLXNlcnZpY2Utd29ya2VyLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMvc2FtZS1zaXRlL2ZldGNoLWluLWNy
b3NzLW9yaWdpbi1zZXJ2aWNlLXdvcmtlci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBjZmM1Nzk2NmYyYTFjODk2NWEwZDk5ZjZmNzRiNGM3YTEyMDUxOTU0Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvY29va2llcy9zYW1lLXNpdGUvZmV0Y2gtaW4tY3Jvc3Mtb3JpZ2luLXNlcnZpY2Utd29ya2Vy
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxo
dG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvc3ct
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9jb29raWUt
dXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KLTxib2R5PgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVz
dFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOwotCi1hc3lu
YyBmdW5jdGlvbiBydW5UZXN0KCkKLXsKLSAgICBpZiAoIW5hdmlnYXRvci5zZXJ2aWNlV29ya2Vy
KSB7Ci0gICAgICAgIGRvY3VtZW50LndyaXRlbG4oIlRoaXMgdGVzdCByZXF1aXJlcyBTZXJ2aWNl
IFdvcmtlcnMuIik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAod2luZG93Lmxv
Y2F0aW9uLmhvc3RuYW1lID09PSAiMTI3LjAuMC4xIikgewotICAgICAgICBhd2FpdCByZXNldENv
b2tpZXMoKTsKLSAgICAgICAgYXdhaXQgc2V0Q29va2llKCJzdHJpY3QiLCAiMTAiLCB7IlNhbWVT
aXRlIjogIlN0cmljdCIsICJNYXgtQWdlIjogMTAwLCAicGF0aCI6ICIvIn0pOwotICAgICAgICBh
d2FpdCBzZXRDb29raWUoImltcGxpY2l0LXN0cmljdCIsICIxMCIsIHsiU2FtZVNpdGUiOiBudWxs
LCAiTWF4LUFnZSI6IDEwMCwgInBhdGgiOiAiLyJ9KTsKLSAgICAgICAgYXdhaXQgc2V0Q29va2ll
KCJzdHJpY3QtYmVjYXVzZS1pbnZhbGlkLVNhbWVTaXRlLXZhbHVlIiwgIjEwIiwgeyJTYW1lU2l0
ZSI6ICJpbnZhbGlkIiwgIk1heC1BZ2UiOiAxMDAsICJwYXRoIjogIi8ifSk7Ci0gICAgICAgIGF3
YWl0IHNldENvb2tpZSgibGF4IiwgIjEwIiwgeyJTYW1lU2l0ZSI6ICJMYXgiLCAiTWF4LUFnZSI6
IDEwMCwgInBhdGgiOiAiLyJ9KTsKLSAgICAgICAgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lID0g
ImxvY2FsaG9zdCI7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLy8gbG9jYWxob3N0Ci0gICAgICAg
IGF3YWl0IGludGVyY2VwdGVkRnJhbWUoInJlc291cmNlcy9wYXNzdGhyb3VnaC1zZXJ2aWNlLXdv
cmtlci5qcyIsICJyZXNvdXJjZXMvZmV0Y2gtaW4tY3Jvc3Mtb3JpZ2luLXNlcnZpY2Utd29ya2Vy
Lmh0bWwiKTsKLSAgICB9Ci19Ci1ydW5UZXN0KCk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29va2llcy9zYW1lLXNpdGUv
ZmV0Y2gtaW4tY3Jvc3Mtb3JpZ2luLXdvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2Nvb2tpZXMvc2FtZS1zaXRlL2ZldGNoLWluLWNyb3NzLW9yaWdpbi13b3JrZXIt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyY2RlMDBiZTEzNGJh
ZTA1MTAyYjFjNjFhZDNmMTZhOThiY2IzNjQzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29va2llcy9zYW1lLXNp
dGUvZmV0Y2gtaW4tY3Jvc3Mtb3JpZ2luLXdvcmtlci1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSwxNCArMCwwIEBACi1UZXN0cyB0aGF0IFNhbWUtU2l0ZSBjb29raWVzIGZvciAxMjcu
MC4wLjEgYXJlIG5vdCBzZW50IHdpdGggYSBXZWIgV29ya2VyIGluaXRpYXRlZCBjcm9zcy1vcmln
aW4gWEhSLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotU3RhcnRpbmcgd29ya2Vy
OiByZXNvdXJjZXMvZmV0Y2gtaW4tY3Jvc3Mtb3JpZ2luLXdvcmtlci5qcwotUEFTUyBbV29ya2Vy
XSBEbyBub3QgaGF2ZSBjb29raWUgInN0cmljdCIuCi1QQVNTIFtXb3JrZXJdIERvIG5vdCBoYXZl
IGNvb2tpZSAiaW1wbGljaXQtc3RyaWN0Ii4KLVBBU1MgW1dvcmtlcl0gRG8gbm90IGhhdmUgY29v
a2llICJzdHJpY3QtYmVjYXVzZS1pbnZhbGlkLVNhbWVTaXRlLXZhbHVlIi4KLVBBU1MgW1dvcmtl
cl0gRG8gbm90IGhhdmUgY29va2llICJsYXgiLgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvY29va2llcy9zYW1lLXNpdGUvZmV0Y2gtaW4tY3Jvc3Mtb3JpZ2luLXdvcmtlci5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb29raWVzL3NhbWUtc2l0ZS9mZXRjaC1pbi1jcm9zcy1v
cmlnaW4td29ya2VyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE3YzMyYjAx
NGQ3MWQ2ZmZlNzNhZDg5M2M3MDJiOTRhOGQzYjBkYzAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb29raWVzL3Nh
bWUtc2l0ZS9mZXRjaC1pbi1jcm9zcy1vcmlnaW4td29ya2VyLmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSwzMyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0
IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy9jb29raWUtdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KLTxib2R5Pgot
PHNjcmlwdD4KLXdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotZGVzY3JpcHRpb24oIlRl
c3RzIHRoYXQgU2FtZS1TaXRlIGNvb2tpZXMgZm9yIDEyNy4wLjAuMSBhcmUgbm90IHNlbnQgd2l0
aCBhIFdlYiBXb3JrZXIgaW5pdGlhdGVkIGNyb3NzLW9yaWdpbiBYSFIuIik7Ci0KLS8vIFN3aXp6
bGUgZmluaXNoSlNUZXN0KCkgc28gdGhhdCB3ZSByZXNldCBjb29raWVzIGJlZm9yZSBjYWxsaW5n
IGZpbmlzaEpTVGVzdCgpLgotdmFyIHNhdmVkRmluaXNoSlNUZXN0ID0gZmluaXNoSlNUZXN0Owot
d2luZG93LmZpbmlzaEpTVGVzdCA9ICgpID0+IHJlc2V0Q29va2llcygpLnRoZW4oc2F2ZWRGaW5p
c2hKU1Rlc3QpOwotCi1hc3luYyBmdW5jdGlvbiBydW5UZXN0KCkKLXsKLSAgICBpZiAod2luZG93
LmxvY2F0aW9uLmhvc3RuYW1lID09PSAiMTI3LjAuMC4xIikgewotICAgICAgICBhd2FpdCByZXNl
dENvb2tpZXMoKTsKLSAgICAgICAgYXdhaXQgc2V0Q29va2llKCJzdHJpY3QiLCAiMTMiLCB7IlNh
bWVTaXRlIjogIlN0cmljdCIsICJNYXgtQWdlIjogMTAwLCAicGF0aCI6ICIvIn0pOwotICAgICAg
ICBhd2FpdCBzZXRDb29raWUoImltcGxpY2l0LXN0cmljdCIsICIxMyIsIHsiU2FtZVNpdGUiOiBu
dWxsLCAiTWF4LUFnZSI6IDEwMCwgInBhdGgiOiAiLyJ9KTsKLSAgICAgICAgYXdhaXQgc2V0Q29v
a2llKCJzdHJpY3QtYmVjYXVzZS1pbnZhbGlkLVNhbWVTaXRlLXZhbHVlIiwgIjEzIiwgeyJTYW1l
U2l0ZSI6ICJpbnZhbGlkIiwgIk1heC1BZ2UiOiAxMDAsICJwYXRoIjogIi8ifSk7Ci0gICAgICAg
IGF3YWl0IHNldENvb2tpZSgibGF4IiwgIjEzIiwgeyJTYW1lU2l0ZSI6ICJMYXgiLCAiTWF4LUFn
ZSI6IDEwMCwgInBhdGgiOiAiLyJ9KTsKLSAgICAgICAgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1l
ID0gImxvY2FsaG9zdCI7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLy8gbG9jYWxob3N0Ci0gICAg
ICAgIHN0YXJ0V29ya2VyKCJyZXNvdXJjZXMvZmV0Y2gtaW4tY3Jvc3Mtb3JpZ2luLXdvcmtlci5q
cyIpOwotICAgIH0KLX0KLXJ1blRlc3QoKTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb29raWVzL3NhbWUtc2l0ZS9mZXRj
aC1pbi1zYW1lLW9yaWdpbi1wYWdlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvY29va2llcy9zYW1lLXNpdGUvZmV0Y2gtaW4tc2FtZS1vcmlnaW4tcGFnZS1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc2M2U4YTE0YWZkYmM4ZjliODQzYWM3
MGM3OWM2MjJiMzA4OWI1ZjkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb29raWVzL3NhbWUtc2l0ZS9mZXRjaC1p
bi1zYW1lLW9yaWdpbi1wYWdlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIwICsw
LDAgQEAKLVRlc3RzIHRoYXQgU2FtZS1TaXRlIGNvb2tpZXMgZm9yIDEyNy4wLjAuMSBhcmUgc2Vu
dCB3aXRoIGEgcmVxdWVzdCBpbml0aWF0ZWQgc2FtZSBvcmlnaW4uCi0KLU9uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KLQotCi1Db29raWVzIHNlbnQgd2l0aCBIVFRQIHJlcXVlc3Q6Ci1QQVNTIEhh
cyBjb29raWUgInN0cmljdCIgd2l0aCB2YWx1ZSAyLgotUEFTUyBIYXMgY29va2llICJpbXBsaWNp
dC1zdHJpY3QiIHdpdGggdmFsdWUgMi4KLVBBU1MgSGFzIGNvb2tpZSAic3RyaWN0LWJlY2F1c2Ut
aW52YWxpZC1TYW1lU2l0ZS12YWx1ZSIgd2l0aCB2YWx1ZSAyLgotUEFTUyBIYXMgY29va2llICJs
YXgiIHdpdGggdmFsdWUgMi4KLQotQ29va2llcyB2aXNpYmxlIGluIERPTToKLVBBU1MgSGFzIERP
TSBjb29raWUgInN0cmljdCIgd2l0aCB2YWx1ZSAyLgotUEFTUyBIYXMgRE9NIGNvb2tpZSAiaW1w
bGljaXQtc3RyaWN0IiB3aXRoIHZhbHVlIDIuCi1QQVNTIEhhcyBET00gY29va2llICJzdHJpY3Qt
YmVjYXVzZS1pbnZhbGlkLVNhbWVTaXRlLXZhbHVlIiB3aXRoIHZhbHVlIDIuCi1QQVNTIEhhcyBE
T00gY29va2llICJsYXgiIHdpdGggdmFsdWUgMi4KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2Nvb2tpZXMvc2FtZS1zaXRlL2ZldGNoLWluLXNhbWUtb3JpZ2luLXBhZ2UuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvY29va2llcy9zYW1lLXNpdGUvZmV0Y2gtaW4tc2FtZS1vcmln
aW4tcGFnZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYzhlNmZhZjgyMDZk
M2E0YjhlZDI3M2QxZWFkZjNjMDc2MmYxYTMzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29va2llcy9zYW1lLXNp
dGUvZmV0Y2gtaW4tc2FtZS1vcmlnaW4tcGFnZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzgg
KzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii9q
cy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMvY29va2llLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Ci08Ym9keT4KLTxzY3JpcHQ+
Ci13aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLWRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0
IFNhbWUtU2l0ZSBjb29raWVzIGZvciAxMjcuMC4wLjEgYXJlIHNlbnQgd2l0aCBhIHJlcXVlc3Qg
aW5pdGlhdGVkIHNhbWUgb3JpZ2luLiIpOwotCi1hc3luYyBmdW5jdGlvbiBydW5UZXN0KCkKLXsK
LSAgICBhd2FpdCByZXNldENvb2tpZXMoKTsKLSAgICBhd2FpdCBzZXRDb29raWUoInN0cmljdCIs
ICIyIiwgeyJTYW1lU2l0ZSI6ICJTdHJpY3QiLCAiTWF4LUFnZSI6IDEwMCwgInBhdGgiOiAiLyJ9
KTsKLSAgICBhd2FpdCBzZXRDb29raWUoImltcGxpY2l0LXN0cmljdCIsICIyIiwgeyJTYW1lU2l0
ZSI6IG51bGwsICJNYXgtQWdlIjogMTAwLCAicGF0aCI6ICIvIn0pOwotICAgIGF3YWl0IHNldENv
b2tpZSgic3RyaWN0LWJlY2F1c2UtaW52YWxpZC1TYW1lU2l0ZS12YWx1ZSIsICIyIiwgeyJTYW1l
U2l0ZSI6ICJpbnZhbGlkIiwgIk1heC1BZ2UiOiAxMDAsICJwYXRoIjogIi8ifSk7Ci0gICAgYXdh
aXQgc2V0Q29va2llKCJsYXgiLCAiMiIsIHsiU2FtZVNpdGUiOiAiTGF4IiwgIk1heC1BZ2UiOiAx
MDAsICJwYXRoIjogIi8ifSk7Ci0KLSAgICBkZWJ1ZygiQ29va2llcyBzZW50IHdpdGggSFRUUCBy
ZXF1ZXN0OiIpOwotICAgIGF3YWl0IHNob3VsZEhhdmVDb29raWVXaXRoVmFsdWUoInN0cmljdCIs
ICIyIik7Ci0gICAgYXdhaXQgc2hvdWxkSGF2ZUNvb2tpZVdpdGhWYWx1ZSgiaW1wbGljaXQtc3Ry
aWN0IiwgIjIiKTsKLSAgICBhd2FpdCBzaG91bGRIYXZlQ29va2llV2l0aFZhbHVlKCJzdHJpY3Qt
YmVjYXVzZS1pbnZhbGlkLVNhbWVTaXRlLXZhbHVlIiwgIjIiKTsKLSAgICBhd2FpdCBzaG91bGRI
YXZlQ29va2llV2l0aFZhbHVlKCJsYXgiLCAiMiIpOwotCi0gICAgZGVidWcoIjxicj5Db29raWVz
IHZpc2libGUgaW4gRE9NOiIpOwotICAgIHNob3VsZEhhdmVET01Db29raWVXaXRoVmFsdWUoInN0
cmljdCIsICIyIik7Ci0gICAgc2hvdWxkSGF2ZURPTUNvb2tpZVdpdGhWYWx1ZSgiaW1wbGljaXQt
c3RyaWN0IiwgIjIiKTsKLSAgICBzaG91bGRIYXZlRE9NQ29va2llV2l0aFZhbHVlKCJzdHJpY3Qt
YmVjYXVzZS1pbnZhbGlkLVNhbWVTaXRlLXZhbHVlIiwgIjIiKTsKLSAgICBzaG91bGRIYXZlRE9N
Q29va2llV2l0aFZhbHVlKCJsYXgiLCAiMiIpOwotCi0gICAgYXdhaXQgcmVzZXRDb29raWVzKCk7
Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19Ci1ydW5UZXN0KCk7Ci08L3NjcmlwdD4KLTwvYm9keT4K
LTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29va2llcy9zYW1l
LXNpdGUvZmV0Y2gtaW4tc2FtZS1vcmlnaW4tc2VydmljZS13b3JrZXItZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb29raWVzL3NhbWUtc2l0ZS9mZXRjaC1pbi1zYW1lLW9y
aWdpbi1zZXJ2aWNlLXdvcmtlci1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDRmYjcwYjdhYTlkMzNkMTYzNzBjMjg4MTUyODBkNzdhZmEwMjY3N2UuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9jb29raWVzL3NhbWUtc2l0ZS9mZXRjaC1pbi1zYW1lLW9yaWdpbi1zZXJ2aWNlLXdvcmtl
ci1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi0KLQotLS0tLS0t
LS0KLUZyYW1lOiAnPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTAtLT4tLT4nCi0tLS0tLS0tLQot
VGVzdHMgdGhhdCBTYW1lLVNpdGUgY29va2llcyBmb3IgMTI3LjAuMC4xIGFyZSBzZW50IHdpdGgg
YSByZXF1ZXN0IGluaXRpYXRlZCBmcm9tIGFuIGlmcmFtZS0gYW5kIHByb2Nlc3NlZCBieSBhIHNl
cnZpY2Ugd29ya2VyLSB3aXRoIHRoZSBzYW1lIG9yaWdpbi4KLQotT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgotCi0KLUNvb2tpZXMgc2VudCB3aXRoIEhUVFAgcmVxdWVzdDoKLVBBU1MgSGFzIGNv
b2tpZSAic3RyaWN0IiB3aXRoIHZhbHVlIDExLgotUEFTUyBIYXMgY29va2llICJpbXBsaWNpdC1z
dHJpY3QiIHdpdGggdmFsdWUgMTEuCi1QQVNTIEhhcyBjb29raWUgInN0cmljdC1iZWNhdXNlLWlu
dmFsaWQtU2FtZVNpdGUtdmFsdWUiIHdpdGggdmFsdWUgMTEuCi1QQVNTIEhhcyBjb29raWUgImxh
eCIgd2l0aCB2YWx1ZSAxMS4KLQotQ29va2llcyB2aXNpYmxlIGluIERPTToKLVBBU1MgSGFzIERP
TSBjb29raWUgInN0cmljdCIgd2l0aCB2YWx1ZSAxMS4KLVBBU1MgSGFzIERPTSBjb29raWUgImlt
cGxpY2l0LXN0cmljdCIgd2l0aCB2YWx1ZSAxMS4KLVBBU1MgSGFzIERPTSBjb29raWUgInN0cmlj
dC1iZWNhdXNlLWludmFsaWQtU2FtZVNpdGUtdmFsdWUiIHdpdGggdmFsdWUgMTEuCi1QQVNTIEhh
cyBET00gY29va2llICJsYXgiIHdpdGggdmFsdWUgMTEuCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9jb29raWVzL3NhbWUtc2l0ZS9mZXRjaC1pbi1zYW1lLW9yaWdpbi1zZXJ2aWNlLXdv
cmtlci5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb29raWVzL3NhbWUtc2l0ZS9mZXRj
aC1pbi1zYW1lLW9yaWdpbi1zZXJ2aWNlLXdvcmtlci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBlNTdjZjdkMmUzMzI3ZTdmODYzYmRlYTVmMWUyMDgxYTkzODQ3NjM4Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvY29va2llcy9zYW1lLXNpdGUvZmV0Y2gtaW4tc2FtZS1vcmlnaW4tc2VydmljZS13
b3JrZXIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1s
PgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNl
cy9zdy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2Nv
b2tpZS11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgotPGJvZHk+Ci08c2NyaXB0PgotaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7Ci0K
LWFzeW5jIGZ1bmN0aW9uIHJ1blRlc3QoKQotewotICAgIGlmICghbmF2aWdhdG9yLnNlcnZpY2VX
b3JrZXIpIHsKLSAgICAgICAgZG9jdW1lbnQud3JpdGVsbigiVGhpcyB0ZXN0IHJlcXVpcmVzIFNl
cnZpY2UgV29ya2Vycy4iKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGF3YWl0IHJl
c2V0Q29va2llcygpOwotICAgIGF3YWl0IHNldENvb2tpZSgic3RyaWN0IiwgIjExIiwgeyJTYW1l
U2l0ZSI6ICJTdHJpY3QiLCAiTWF4LUFnZSI6IDEwMCwgInBhdGgiOiAiLyJ9KTsKLSAgICBhd2Fp
dCBzZXRDb29raWUoImltcGxpY2l0LXN0cmljdCIsICIxMSIsIHsiU2FtZVNpdGUiOiBudWxsLCAi
TWF4LUFnZSI6IDEwMCwgInBhdGgiOiAiLyJ9KTsKLSAgICBhd2FpdCBzZXRDb29raWUoInN0cmlj
dC1iZWNhdXNlLWludmFsaWQtU2FtZVNpdGUtdmFsdWUiLCAiMTEiLCB7IlNhbWVTaXRlIjogImlu
dmFsaWQiLCAiTWF4LUFnZSI6IDEwMCwgInBhdGgiOiAiLyJ9KTsKLSAgICBhd2FpdCBzZXRDb29r
aWUoImxheCIsICIxMSIsIHsiU2FtZVNpdGUiOiAiTGF4IiwgIk1heC1BZ2UiOiAxMDAsICJwYXRo
IjogIi8ifSk7Ci0gICAgYXdhaXQgaW50ZXJjZXB0ZWRGcmFtZSgicmVzb3VyY2VzL3Bhc3N0aHJv
dWdoLXNlcnZpY2Utd29ya2VyLmpzIiwgInJlc291cmNlcy9mZXRjaC1pbi1zYW1lLW9yaWdpbi1z
ZXJ2aWNlLXdvcmtlci5waHAiKTsKLX0KLXJ1blRlc3QoKTsKLTwvc2NyaXB0PgotPC9ib2R5Pgot
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb29raWVzL3NhbWUt
c2l0ZS9mZXRjaC1pbi1zYW1lLW9yaWdpbi1zcmNkb2MtaWZyYW1lLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvY29va2llcy9zYW1lLXNpdGUvZmV0Y2gtaW4tc2FtZS1vcmln
aW4tc3JjZG9jLWlmcmFtZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGExYmEyN2JjYTVlYThmYjYyMjZlMDI3ODc3MWE4YzFjMzg3Y2E3NGQuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9jb29raWVzL3NhbWUtc2l0ZS9mZXRjaC1pbi1zYW1lLW9yaWdpbi1zcmNkb2MtaWZyYW1lLWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAKLVRlc3RzIHRoYXQgU2Ft
ZS1TaXRlIGNvb2tpZXMgZm9yIDEyNy4wLjAuMSBjYW4gYmUgcmV0cmlldmVkIGZyb20gYSBzcmNk
b2MgaWZyYW1lLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUmV0cmlldmUgY29v
a2llcyBmcm9tIHNyY2RvYyBpZnJhbWU6Ci0KLUNvb2tpZXMgc2VudCB3aXRoIEhUVFAgcmVxdWVz
dDoKLVBBU1MgSGFzIGNvb2tpZSAic3RyaWN0IiB3aXRoIHZhbHVlIDguCi1QQVNTIEhhcyBjb29r
aWUgImltcGxpY2l0LXN0cmljdCIgd2l0aCB2YWx1ZSA4LgotUEFTUyBIYXMgY29va2llICJzdHJp
Y3QtYmVjYXVzZS1pbnZhbGlkLVNhbWVTaXRlLXZhbHVlIiB3aXRoIHZhbHVlIDguCi1QQVNTIEhh
cyBjb29raWUgImxheCIgd2l0aCB2YWx1ZSA4LgotCi1Db29raWVzIHZpc2libGUgaW4gRE9NOgot
UEFTUyBIYXMgRE9NIGNvb2tpZSAic3RyaWN0IiB3aXRoIHZhbHVlIDguCi1QQVNTIEhhcyBET00g
Y29va2llICJpbXBsaWNpdC1zdHJpY3QiIHdpdGggdmFsdWUgOC4KLVBBU1MgSGFzIERPTSBjb29r
aWUgInN0cmljdC1iZWNhdXNlLWludmFsaWQtU2FtZVNpdGUtdmFsdWUiIHdpdGggdmFsdWUgOC4K
LVBBU1MgSGFzIERPTSBjb29raWUgImxheCIgd2l0aCB2YWx1ZSA4LgotCi1SZXRyaWV2ZSBjb29r
aWVzIGZyb20gc3JjZG9jIGlmcmFtZSBpbnNpZGUgc3JjZG9jIGlmcmFtZToKLQotQ29va2llcyBz
ZW50IHdpdGggSFRUUCByZXF1ZXN0OgotUEFTUyBIYXMgY29va2llICJzdHJpY3QiIHdpdGggdmFs
dWUgOC4KLVBBU1MgSGFzIGNvb2tpZSAiaW1wbGljaXQtc3RyaWN0IiB3aXRoIHZhbHVlIDguCi1Q
QVNTIEhhcyBjb29raWUgInN0cmljdC1iZWNhdXNlLWludmFsaWQtU2FtZVNpdGUtdmFsdWUiIHdp
dGggdmFsdWUgOC4KLVBBU1MgSGFzIGNvb2tpZSAibGF4IiB3aXRoIHZhbHVlIDguCi0KLUNvb2tp
ZXMgdmlzaWJsZSBpbiBET006Ci1QQVNTIEhhcyBET00gY29va2llICJzdHJpY3QiIHdpdGggdmFs
dWUgOC4KLVBBU1MgSGFzIERPTSBjb29raWUgImltcGxpY2l0LXN0cmljdCIgd2l0aCB2YWx1ZSA4
LgotUEFTUyBIYXMgRE9NIGNvb2tpZSAic3RyaWN0LWJlY2F1c2UtaW52YWxpZC1TYW1lU2l0ZS12
YWx1ZSIgd2l0aCB2YWx1ZSA4LgotUEFTUyBIYXMgRE9NIGNvb2tpZSAibGF4IiB3aXRoIHZhbHVl
IDguCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb29raWVzL3NhbWUtc2l0ZS9mZXRj
aC1pbi1zYW1lLW9yaWdpbi1zcmNkb2MtaWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2Nvb2tpZXMvc2FtZS1zaXRlL2ZldGNoLWluLXNhbWUtb3JpZ2luLXNyY2RvYy1pZnJhbWUu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmY5Y2FmOWI3ZTFiNmRhN2Q0ZTQx
NzRhMTNmYmZjN2M4MTkxZDgyNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMvc2FtZS1zaXRlL2ZldGNo
LWluLXNhbWUtb3JpZ2luLXNyY2RvYy1pZnJhbWUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDgy
ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIv
anMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL2Nvb2tpZS11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgotPGJvZHk+Ci08c2NyaXB0
IGlkPSJzcmNkb2Mtc2NyaXB0IiB0eXBlPSJ0ZXh0L3BsYWluIj4KLWFzeW5jIGZ1bmN0aW9uIHJ1
blRlc3QoKQotewotICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRl
VGV4dE5vZGUod2luZG93Lm5hbWUpKTsgLy8gRm9yIGRlYnVnZ2luZwotCi0gICAgd2luZG93LnRv
cC5pbnZhbGlkYXRlQ2FjaGVkQ29va2llcygpOwotCi0gICAgd2luZG93LnRvcC5kZWJ1ZygiPGJy
PkNvb2tpZXMgc2VudCB3aXRoIEhUVFAgcmVxdWVzdDoiKTsKLSAgICBhd2FpdCB3aW5kb3cudG9w
LnNob3VsZEhhdmVDb29raWVXaXRoVmFsdWUoInN0cmljdCIsICI4Iik7Ci0gICAgYXdhaXQgd2lu
ZG93LnRvcC5zaG91bGRIYXZlQ29va2llV2l0aFZhbHVlKCJpbXBsaWNpdC1zdHJpY3QiLCAiOCIp
OwotICAgIGF3YWl0IHdpbmRvdy50b3Auc2hvdWxkSGF2ZUNvb2tpZVdpdGhWYWx1ZSgic3RyaWN0
LWJlY2F1c2UtaW52YWxpZC1TYW1lU2l0ZS12YWx1ZSIsICI4Iik7Ci0gICAgYXdhaXQgd2luZG93
LnRvcC5zaG91bGRIYXZlQ29va2llV2l0aFZhbHVlKCJsYXgiLCAiOCIpOwotCi0gICAgd2luZG93
LnRvcC5kZWJ1ZygiPGJyPkNvb2tpZXMgdmlzaWJsZSBpbiBET006Iik7Ci0gICAgd2luZG93LnRv
cC5zaG91bGRIYXZlRE9NQ29va2llV2l0aFZhbHVlKCJzdHJpY3QiLCAiOCIpOwotICAgIHdpbmRv
dy50b3Auc2hvdWxkSGF2ZURPTUNvb2tpZVdpdGhWYWx1ZSgiaW1wbGljaXQtc3RyaWN0IiwgIjgi
KTsKLSAgICB3aW5kb3cudG9wLnNob3VsZEhhdmVET01Db29raWVXaXRoVmFsdWUoInN0cmljdC1i
ZWNhdXNlLWludmFsaWQtU2FtZVNpdGUtdmFsdWUiLCAiOCIpOwotICAgIHdpbmRvdy50b3Auc2hv
dWxkSGF2ZURPTUNvb2tpZVdpdGhWYWx1ZSgibGF4IiwgIjgiKTsKLX0KLTwvc2NyaXB0PgotPHNj
cmlwdD4KLXdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotZGVzY3JpcHRpb24oIlRlc3Rz
IHRoYXQgU2FtZS1TaXRlIGNvb2tpZXMgZm9yIDEyNy4wLjAuMSBjYW4gYmUgcmV0cmlldmVkIGZy
b20gYSBzcmNkb2MgaWZyYW1lLiIpOwotCi1jb25zdCBTcmNkb2NTY3JpcHQgPSBgPHNjcmlwdD4k
e2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzcmNkb2Mtc2NyaXB0IikudGV4dH08L2AgKyAic2Ny
aXB0PiI7Ci0KLWZ1bmN0aW9uIGFwcGVuZFNyY2RvY0lmcmFtZVRvQm9keU9mRG9jdW1lbnQoZG9j
dW1lbnQsIG5hbWUsIGNvbnRlbnQsIGNhbGxiYWNrKQotewotICAgIGxldCBpZnJhbWUgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKLSAgICBpZnJhbWUubmFtZSA9IG5hbWU7Ci0g
ICAgaWZyYW1lLm9ubG9hZCA9ICgpID0+IGNhbGxiYWNrKGlmcmFtZSk7Ci0gICAgaWZyYW1lLnNy
Y2RvYyA9IGNvbnRlbnQ7Ci0gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWUpOwot
fQotCi1hc3luYyBmdW5jdGlvbiB0ZXN0UmV0cmlldmVDb29raWVzRnJvbVNyY2RvY0lmcmFtZSgp
Ci17Ci0gICAgbGV0IGFwcGVuZElGcmFtZUFuZFdhaXRVbnRpbExvYWRlZCA9IG5ldyBQcm9taXNl
KChyZXNvbHZlZCkgPT4gYXBwZW5kU3JjZG9jSWZyYW1lVG9Cb2R5T2ZEb2N1bWVudChkb2N1bWVu
dCwgIkEiLCBTcmNkb2NTY3JpcHQsIHJlc29sdmVkKSk7Ci0gICAgbGV0IGlmcmFtZSA9IGF3YWl0
IGFwcGVuZElGcmFtZUFuZFdhaXRVbnRpbExvYWRlZDsKLSAgICBhd2FpdCBpZnJhbWUuY29udGVu
dFdpbmRvdy5ydW5UZXN0KCk7Ci19Ci0KLWFzeW5jIGZ1bmN0aW9uIHRlc3RSZXRyaWV2ZUNvb2tp
ZXNGcm9tTmVzdGVkU3JjZG9jSWZyYW1lKCkKLXsKLSAgICBsZXQgYXBwZW5kSUZyYW1lQW5kV2Fp
dFVudGlsTG9hZGVkID0gbmV3IFByb21pc2UoKHJlc29sdmVkKSA9PiBhcHBlbmRTcmNkb2NJZnJh
bWVUb0JvZHlPZkRvY3VtZW50KGRvY3VtZW50LCAiQiIsICI8Ym9keT48L2JvZHk+IiwgcmVzb2x2
ZWQpKTsKLSAgICBsZXQgaWZyYW1lID0gYXdhaXQgYXBwZW5kSUZyYW1lQW5kV2FpdFVudGlsTG9h
ZGVkOwotICAgIGxldCBhcHBlbmRJbm5lcklGcmFtZUFuZFdhaXRVbnRpbExvYWRlZCA9IG5ldyBQ
cm9taXNlKChyZXNvbHZlZCkgPT4gYXBwZW5kU3JjZG9jSWZyYW1lVG9Cb2R5T2ZEb2N1bWVudChp
ZnJhbWUuY29udGVudERvY3VtZW50LCAiQl8xIiwgU3JjZG9jU2NyaXB0LCByZXNvbHZlZCkpOwot
ICAgIGxldCBpbm5lcklmcmFtZSA9IGF3YWl0IGFwcGVuZElubmVySUZyYW1lQW5kV2FpdFVudGls
TG9hZGVkOwotICAgIGF3YWl0IGlubmVySWZyYW1lLmNvbnRlbnRXaW5kb3cucnVuVGVzdCgpOwot
fQotCi1hc3luYyBmdW5jdGlvbiBydW5UZXN0KCkKLXsKLSAgICBhd2FpdCByZXNldENvb2tpZXMo
KTsKLSAgICBhd2FpdCBzZXRDb29raWUoInN0cmljdCIsICI4IiwgeyJTYW1lU2l0ZSI6ICJTdHJp
Y3QiLCAiTWF4LUFnZSI6IDEwMCwgInBhdGgiOiAiLyJ9KTsKLSAgICBhd2FpdCBzZXRDb29raWUo
ImltcGxpY2l0LXN0cmljdCIsICI4IiwgeyJTYW1lU2l0ZSI6IG51bGwsICJNYXgtQWdlIjogMTAw
LCAicGF0aCI6ICIvIn0pOwotICAgIGF3YWl0IHNldENvb2tpZSgic3RyaWN0LWJlY2F1c2UtaW52
YWxpZC1TYW1lU2l0ZS12YWx1ZSIsICI4IiwgeyJTYW1lU2l0ZSI6ICJpbnZhbGlkIiwgIk1heC1B
Z2UiOiAxMDAsICJwYXRoIjogIi8ifSk7Ci0gICAgYXdhaXQgc2V0Q29va2llKCJsYXgiLCAiOCIs
IHsiU2FtZVNpdGUiOiAiTGF4IiwgIk1heC1BZ2UiOiAxMDAsICJwYXRoIjogIi8ifSk7Ci0KLSAg
ICBkZWJ1ZygiUmV0cmlldmUgY29va2llcyBmcm9tIHNyY2RvYyBpZnJhbWU6Iik7Ci0gICAgYXdh
aXQgdGVzdFJldHJpZXZlQ29va2llc0Zyb21TcmNkb2NJZnJhbWUoKTsKLQotICAgIGRlYnVnKCI8
YnI+UmV0cmlldmUgY29va2llcyBmcm9tIHNyY2RvYyBpZnJhbWUgaW5zaWRlIHNyY2RvYyBpZnJh
bWU6IikKLSAgICBhd2FpdCB0ZXN0UmV0cmlldmVDb29raWVzRnJvbU5lc3RlZFNyY2RvY0lmcmFt
ZSgpOwotCi0gICAgZm9yKGxldCBpZnJhbWUgb2YgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgi
aWZyYW1lIikpCi0gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoaWZyYW1lKTsKLQot
ICAgIGF3YWl0IHJlc2V0Q29va2llcygpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfQotcnVuVGVz
dCgpOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2Nvb2tpZXMvc2FtZS1zaXRlL2ZldGNoLWluLXNhbWUtb3JpZ2luLXdvcmtl
ci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMvc2FtZS1zaXRl
L2ZldGNoLWluLXNhbWUtb3JpZ2luLXdvcmtlci1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGEyNGZiODc3NThkYzAxYzgyMzIzY2FhNjgyZmFkYTEyNzk2YzA4ZjQu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9jb29raWVzL3NhbWUtc2l0ZS9mZXRjaC1pbi1zYW1lLW9yaWdpbi13b3Jr
ZXItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotVGVzdHMgdGhh
dCBTYW1lLVNpdGUgY29va2llcyBmb3IgMTI3LjAuMC4xIGFyZSBzZW50IHdpdGggYSBXZWIgV29y
a2VyIGluaXRpYXRlZCBYSFIuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1TdGFy
dGluZyB3b3JrZXI6IHJlc291cmNlcy9mZXRjaC1pbi1zYW1lLW9yaWdpbi13b3JrZXIuanMKLVBB
U1MgW1dvcmtlcl0gSGFzIGNvb2tpZSAic3RyaWN0IiB3aXRoIHZhbHVlIDEyLgotUEFTUyBbV29y
a2VyXSBIYXMgY29va2llICJpbXBsaWNpdC1zdHJpY3QiIHdpdGggdmFsdWUgMTIuCi1QQVNTIFtX
b3JrZXJdIEhhcyBjb29raWUgInN0cmljdC1iZWNhdXNlLWludmFsaWQtU2FtZVNpdGUtdmFsdWUi
IHdpdGggdmFsdWUgMTIuCi1QQVNTIFtXb3JrZXJdIEhhcyBjb29raWUgImxheCIgd2l0aCB2YWx1
ZSAxMi4KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMvc2FtZS1zaXRlL2Zl
dGNoLWluLXNhbWUtb3JpZ2luLXdvcmtlci5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9j
b29raWVzL3NhbWUtc2l0ZS9mZXRjaC1pbi1zYW1lLW9yaWdpbi13b3JrZXIuaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTcwZDU1MTkzN2ZjYTNmNDZkOWE0ZmNmMjkzMDU2ZjU1
ZmY3ZGM0Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMvc2FtZS1zaXRlL2ZldGNoLWluLXNhbWUtb3Jp
Z2luLXdvcmtlci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjggKzAsMCBAQAotPCFET0NUWVBF
IGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9q
cy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvY29va2llLXV0
aWxpdGllcy5qcyI+PC9zY3JpcHQ+Ci08Ym9keT4KLTxzY3JpcHQ+Ci13aW5kb3cuanNUZXN0SXNB
c3luYyA9IHRydWU7Ci0KLWRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IFNhbWUtU2l0ZSBjb29raWVz
IGZvciAxMjcuMC4wLjEgYXJlIHNlbnQgd2l0aCBhIFdlYiBXb3JrZXIgaW5pdGlhdGVkIFhIUi4i
KTsKLQotLy8gU3dpenpsZSBmaW5pc2hKU1Rlc3QoKSBzbyB0aGF0IHdlIHJlc2V0IGNvb2tpZXMg
YmVmb3JlIGNhbGxpbmcgZmluaXNoSlNUZXN0KCkuCi12YXIgc2F2ZWRGaW5pc2hKU1Rlc3QgPSBm
aW5pc2hKU1Rlc3Q7Ci13aW5kb3cuZmluaXNoSlNUZXN0ID0gKCkgPT4gcmVzZXRDb29raWVzKCku
dGhlbihzYXZlZEZpbmlzaEpTVGVzdCk7Ci0KLWFzeW5jIGZ1bmN0aW9uIHJ1blRlc3QoKQotewot
ICAgIGF3YWl0IHJlc2V0Q29va2llcygpOwotICAgIGF3YWl0IHNldENvb2tpZSgic3RyaWN0Iiwg
IjEyIiwgeyJTYW1lU2l0ZSI6ICJTdHJpY3QiLCAiTWF4LUFnZSI6IDEwMCwgInBhdGgiOiAiLyJ9
KTsKLSAgICBhd2FpdCBzZXRDb29raWUoImltcGxpY2l0LXN0cmljdCIsICIxMiIsIHsiU2FtZVNp
dGUiOiBudWxsLCAiTWF4LUFnZSI6IDEwMCwgInBhdGgiOiAiLyJ9KTsKLSAgICBhd2FpdCBzZXRD
b29raWUoInN0cmljdC1iZWNhdXNlLWludmFsaWQtU2FtZVNpdGUtdmFsdWUiLCAiMTIiLCB7IlNh
bWVTaXRlIjogImludmFsaWQiLCAiTWF4LUFnZSI6IDEwMCwgInBhdGgiOiAiLyJ9KTsKLSAgICBh
d2FpdCBzZXRDb29raWUoImxheCIsICIxMiIsIHsiU2FtZVNpdGUiOiAiTGF4IiwgIk1heC1BZ2Ui
OiAxMDAsICJwYXRoIjogIi8ifSk7Ci0gICAgc3RhcnRXb3JrZXIoInJlc291cmNlcy9mZXRjaC1p
bi1zYW1lLW9yaWdpbi13b3JrZXIuanMiKTsKLX0KLXJ1blRlc3QoKTsKLTwvc2NyaXB0PgotPC9i
b2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb29raWVz
L3NhbWUtc2l0ZS9wb3B1cC1jcm9zcy1zaXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvY29va2llcy9zYW1lLXNpdGUvcG9wdXAtY3Jvc3Mtc2l0ZS1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRjOWZkYTdiN2EwNjFmMGNlZGMzMmE0MDMx
NWRlZmE4YTM5ZGY3YjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb29raWVzL3NhbWUtc2l0ZS9wb3B1cC1jcm9z
cy1zaXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNT
ICcxMjcuMC4wLjEnIGlzIG5vdCBzYW1lLXNpdGUgd2l0aCAnbG9jYWxob3N0Jywgc28gc3RyaWN0
IHNhbWVzaXRlIGNvb2tpZXMgYXJlIG5vdCBzZW50LiAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9jb29raWVzL3NhbWUtc2l0ZS9wb3B1cC1jcm9zcy1zaXRlLXBvc3QtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb29raWVzL3NhbWUtc2l0ZS9wb3B1
cC1jcm9zcy1zaXRlLXBvc3QtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwNWMxZGMxZDZhZTJkMjI4NmJjZDE5MTU2Mjg0YzY3YTY4MmMxOTkxLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvY29va2llcy9zYW1lLXNpdGUvcG9wdXAtY3Jvc3Mtc2l0ZS1wb3N0LWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTICcxMjcuMC4wLjEnIGlzIG5vdCBz
YW1lLXNpdGUgd2l0aCAnbG9jYWxob3N0Jywgc28gc2FtZXNpdGUgY29va2llcyBhcmUgbm90IHNl
bnQgdmlhIFBPU1QuIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tp
ZXMvc2FtZS1zaXRlL3BvcHVwLWNyb3NzLXNpdGUtcG9zdC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9jb29raWVzL3NhbWUtc2l0ZS9wb3B1cC1jcm9zcy1zaXRlLXBvc3QuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTdiZGRmMDQ4MWJjNGY5YTFjZmJlNzA0YTQ1NWI4
YmNmNGIxYmNmOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMvc2FtZS1zaXRlL3BvcHVwLWNyb3NzLXNp
dGUtcG9zdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotPCFET0NUWVBFIGh0
bWw+Ci08c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy1oZWxw
ZXJzLmpzIj48L3NjcmlwdD4KLTxib2R5PgotPHNjcmlwdD4KLWlmICh3aW5kb3cubG9jYXRpb24u
aG9zdG5hbWUgPT0gIjEyNy4wLjAuMSIpIHsKLSAgICBjbGVhcktub3duQ29va2llcygpOwotICAg
IGRvY3VtZW50LmNvb2tpZSA9IFNUUklDVF9ET00gKyAiPTE7IFNhbWVTaXRlPVN0cmljdDsgTWF4
LUFnZT0xMDA7IHBhdGg9LyI7Ci0gICAgZG9jdW1lbnQuY29va2llID0gSU1QTElDSVRfU1RSSUNU
X0RPTSArICI9MTsgU2FtZVNpdGU7IE1heC1BZ2U9MTAwOyBwYXRoPS8iOwotICAgIGRvY3VtZW50
LmNvb2tpZSA9IFNUUklDVF9CRUNBVVNFX0lOVkFMSURfU0FNRVNJVEVfVkFMVUUgKyAiPTE7IFNh
bWVTaXRlPWludmFsaWQ7IE1heC1BZ2U9MTAwOyBwYXRoPS8iOwotICAgIGRvY3VtZW50LmNvb2tp
ZSA9IExBWF9ET00gKyAiPTE7IFNhbWVTaXRlPUxheDsgTWF4LUFnZT0xMDA7IHBhdGg9LyI7Ci0g
ICAgZG9jdW1lbnQuY29va2llID0gTk9STUFMX0RPTSArICI9MTsgTWF4LUFnZT0xMDA7IHBhdGg9
LyI7Ci0gICAgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lID0gImxvY2FsaG9zdCI7Ci19IGVsc2Ug
ewotICAgIGFzeW5jX3Rlc3QodCA9PiB7Ci0gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVy
KCJtZXNzYWdlIiwgdC5zdGVwX2Z1bmNfZG9uZShlID0+IHsKLSAgICAgICAgICAgIGFzc2VydF9l
cXVhbHMoZS5kYXRhLmh0dHBbU1RSSUNUX0RPTV0sIHVuZGVmaW5lZCwgInN0cmljdCIpOwotICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLmRhdGEuaHR0cFtJTVBMSUNJVF9TVFJJQ1RfRE9NXSwg
dW5kZWZpbmVkLCAiaW1wbGljaXQtc3RyaWN0Iik7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxz
KGUuZGF0YS5odHRwW1NUUklDVF9CRUNBVVNFX0lOVkFMSURfU0FNRVNJVEVfVkFMVUVdLCB1bmRl
ZmluZWQsICJzdHJpY3QtYmVjYXVzZS1pbnZhbGlkLVNhbWVTaXRlLXZhbHVlIik7Ci0gICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKGUuZGF0YS5odHRwW0xBWF9ET01dLCB1bmRlZmluZWQsICJsYXgi
KTsKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS5kYXRhLmh0dHBbTk9STUFMX0RPTV0sICIx
IiwgIm5vcm1hbCIpOwotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhub3JtYWxpemVDb29raWUo
ZS5kYXRhLmRvY3VtZW50KSwgbm9ybWFsaXplQ29va2llKExBWF9ET00gKyAiPTE7ICIgKyBOT1JN
QUxfRE9NICsgIj0xIikpOwotICAgICAgICAgICAgZS5zb3VyY2UuY2xvc2UoKTsKLSAgICAgICAg
fSkpOwotCi0gICAgICAgIHZhciBmID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZm9ybScpOwot
ICAgICAgICBmLmFjdGlvbiA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvY29va2llcy9yZXNvdXJj
ZXMvcG9zdC1jb29raWVzLXRvLW9wZW5lci5waHAiOwotICAgICAgICBmLm1ldGhvZCA9ICJQT1NU
IjsKLSAgICAgICAgZi50YXJnZXQgPSAiX2JsYW5rIgotICAgICAgICB3aW5kb3cub25sb2FkID0g
dC5zdGVwX2Z1bmMoZi5zdWJtaXQuYmluZChmKSk7Ci0gICAgICAgIGRvY3VtZW50LmJvZHkuYXBw
ZW5kQ2hpbGQoZik7Ci0gICAgfSwgIicxMjcuMC4wLjEnIGlzIG5vdCBzYW1lLXNpdGUgd2l0aCAn
bG9jYWxob3N0Jywgc28gc2FtZXNpdGUgY29va2llcyBhcmUgbm90IHNlbnQgdmlhIFBPU1QuIik7
Ci19Ci08L3NjcmlwdD4KLTwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvY29va2llcy9zYW1lLXNpdGUvcG9wdXAtY3Jvc3Mtc2l0ZS5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9jb29raWVzL3NhbWUtc2l0ZS9wb3B1cC1jcm9zcy1zaXRlLmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUwOGZmMDJlNzRiMTNkOGVhYWE2YTY5MTE4ZjkyMzlj
ZDJmZjJiZWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb29raWVzL3NhbWUtc2l0ZS9wb3B1cC1jcm9zcy1zaXRl
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxz
Y3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLWhlbHBlcnMuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUgPT0gIjEy
Ny4wLjAuMSIpIHsKLSAgICBkb2N1bWVudC5jb29raWUgPSBTVFJJQ1RfRE9NICsgIj0xOyBTYW1l
U2l0ZT1TdHJpY3Q7IE1heC1BZ2U9MTAwOyBwYXRoPS8iOwotICAgIGRvY3VtZW50LmNvb2tpZSA9
IElNUExJQ0lUX1NUUklDVF9ET00gKyAiPTE7IFNhbWVTaXRlOyBNYXgtQWdlPTEwMDsgcGF0aD0v
IjsKLSAgICBkb2N1bWVudC5jb29raWUgPSBTVFJJQ1RfQkVDQVVTRV9JTlZBTElEX1NBTUVTSVRF
X1ZBTFVFICsgIj0xOyBTYW1lU2l0ZT1pbnZhbGlkOyBNYXgtQWdlPTEwMDsgcGF0aD0vIjsKLSAg
ICBkb2N1bWVudC5jb29raWUgPSBMQVhfRE9NICsgIj0xOyBTYW1lU2l0ZT1MYXg7IE1heC1BZ2U9
MTAwOyBwYXRoPS8iOwotICAgIGRvY3VtZW50LmNvb2tpZSA9IE5PUk1BTF9ET00gKyAiPTE7IE1h
eC1BZ2U9MTAwOyBwYXRoPS8iOwotICAgIHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSA9ICJsb2Nh
bGhvc3QiOwotfSBlbHNlIHsKLSAgICBhc3luY190ZXN0KHQgPT4gewotICAgICAgICB2YXIgaSA9
IHdpbmRvdy5vcGVuKCJodHRwOi8vMTI3LjAuMC4xOjgwMDAvY29va2llcy9yZXNvdXJjZXMvcG9z
dC1jb29raWVzLXRvLW9wZW5lci5waHAiKTsKLSAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoIm1lc3NhZ2UiLCB0LnN0ZXBfZnVuY19kb25lKGUgPT4gewotICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhlLmRhdGEuaHR0cFtTVFJJQ1RfRE9NXSwgdW5kZWZpbmVkLCAic3RyaWN0Iik7Ci0g
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUuZGF0YS5odHRwW0lNUExJQ0lUX1NUUklDVF9ET01d
LCB1bmRlZmluZWQsICJpbXBsaWNpdC1zdHJpY3QiKTsKLSAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMoZS5kYXRhLmh0dHBbU1RSSUNUX0JFQ0FVU0VfSU5WQUxJRF9TQU1FU0lURV9WQUxVRV0sIHVu
ZGVmaW5lZCwgInN0cmljdC1iZWNhdXNlLWludmFsaWQtU2FtZVNpdGUtdmFsdWUiKTsKLSAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoZS5kYXRhLmh0dHBbTEFYX0RPTV0sICIxIiwgImxheCIpOwot
ICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLmRhdGEuaHR0cFtOT1JNQUxfRE9NXSwgIjEiLCAi
bm9ybWFsIik7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG5vcm1hbGl6ZUNvb2tpZShlLmRh
dGEuZG9jdW1lbnQpLCBub3JtYWxpemVDb29raWUoTEFYX0RPTSArICI9MTsgIiArIE5PUk1BTF9E
T00gKyAiPTEiKSk7Ci0gICAgICAgIH0pKTsKLSAgICB9LCAiJzEyNy4wLjAuMScgaXMgbm90IHNh
bWUtc2l0ZSB3aXRoICdsb2NhbGhvc3QnLCBzbyBzdHJpY3Qgc2FtZXNpdGUgY29va2llcyBhcmUg
bm90IHNlbnQuIik7Ci19Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvY29va2llcy9zYW1lLXNpdGUvcG9wdXAtc2FtZS1zaXRlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvY29va2llcy9zYW1lLXNpdGUvcG9wdXAtc2FtZS1zaXRlLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzlhYTJiYTc2MjZhZDM1
ODFiZTgzZjFmZTNlZDc2YjIzZGE3N2NjZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMvc2FtZS1zaXRl
L3BvcHVwLXNhbWUtc2l0ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAg
QEAKLQotUEFTUyAnMTI3LjAuMC4xJyBpcyBzYW1lLXNpdGUgd2l0aCBpdHNlbGYsIHNvIHNhbWVz
aXRlIGNvb2tpZXMgYXJlIHNlbnQuIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2Nvb2tpZXMvc2FtZS1zaXRlL3BvcHVwLXNhbWUtc2l0ZS1wb3N0LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29va2llcy9zYW1lLXNpdGUvcG9wdXAtc2FtZS1zaXRl
LXBvc3QtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMTMxNTNm
MjA5NmMxNjRlZTY0NTNlMmI5OGMxZDg3ZGEwNDlkNTBjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29va2llcy9z
YW1lLXNpdGUvcG9wdXAtc2FtZS1zaXRlLXBvc3QtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMyArMCwwIEBACi0KLVBBU1MgJzEyNy4wLjAuMScgaXMgc2FtZS1zaXRlIHdpdGggaXRz
ZWxmLCBzbyBzYW1lc2l0ZSBjb29raWVzIGFyZSBzZW50IHZpYSBQT1NULiAKLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb29raWVzL3NhbWUtc2l0ZS9wb3B1cC1zYW1lLXNp
dGUtcG9zdC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb29raWVzL3NhbWUtc2l0ZS9w
b3B1cC1zYW1lLXNpdGUtcG9zdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MTA3ZjI5MTcyYmMyZjJmNzZjOWNkYmE3ZmUxOTQ5ZjI5NjI3N2YzLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29v
a2llcy9zYW1lLXNpdGUvcG9wdXAtc2FtZS1zaXRlLXBvc3QuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDMzICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL2pzLXRlc3Qt
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3MtaGVscGVycy5qcyI+PC9zY3JpcHQ+Ci08Ym9keT4KLTxz
Y3JpcHQ+Ci1hc3luY190ZXN0KHQgPT4gewotICAgIGNsZWFyS25vd25Db29raWVzKCk7Ci0gICAg
ZG9jdW1lbnQuY29va2llID0gU1RSSUNUX0RPTSArICI9MTsgU2FtZVNpdGU9U3RyaWN0OyBNYXgt
QWdlPTEwMDsgcGF0aD0vIjsKLSAgICBkb2N1bWVudC5jb29raWUgPSBJTVBMSUNJVF9TVFJJQ1Rf
RE9NICsgIj0xOyBTYW1lU2l0ZTsgTWF4LUFnZT0xMDA7IHBhdGg9LyI7Ci0gICAgZG9jdW1lbnQu
Y29va2llID0gU1RSSUNUX0JFQ0FVU0VfSU5WQUxJRF9TQU1FU0lURV9WQUxVRSArICI9MTsgU2Ft
ZVNpdGU9aW52YWxpZDsgTWF4LUFnZT0xMDA7IHBhdGg9LyI7Ci0gICAgZG9jdW1lbnQuY29va2ll
ID0gTEFYX0RPTSArICI9MTsgU2FtZVNpdGU9TGF4OyBNYXgtQWdlPTEwMDsgcGF0aD0vIjsKLSAg
ICBkb2N1bWVudC5jb29raWUgPSBOT1JNQUxfRE9NICsgIj0xOyBNYXgtQWdlPTEwMDsgcGF0aD0v
IjsKLQotICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgdC5zdGVwX2Z1bmNf
ZG9uZShlID0+IHsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhlLmRhdGEuaHR0cFtTVFJJQ1RfRE9N
XSwgIjEiLCAic3RyaWN0Iik7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoZS5kYXRhLmh0dHBbSU1Q
TElDSVRfU1RSSUNUX0RPTV0sICIxIiwgImltcGxpY2l0LXN0cmljdCIpOwotICAgICAgICBhc3Nl
cnRfZXF1YWxzKGUuZGF0YS5odHRwW1NUUklDVF9CRUNBVVNFX0lOVkFMSURfU0FNRVNJVEVfVkFM
VUVdLCAiMSIsICJzdHJpY3QtYmVjYXVzZS1pbnZhbGlkLVNhbWVTaXRlLXZhbHVlIik7Ci0gICAg
ICAgIGFzc2VydF9lcXVhbHMoZS5kYXRhLmh0dHBbTEFYX0RPTV0sICIxIiwgImxheCIpOwotICAg
ICAgICBhc3NlcnRfZXF1YWxzKGUuZGF0YS5odHRwW05PUk1BTF9ET01dLCAiMSIsICJub3JtYWwi
KTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhub3JtYWxpemVDb29raWUoZS5kYXRhLmRvY3VtZW50
KSwgbm9ybWFsaXplQ29va2llKFNUUklDVF9CRUNBVVNFX0lOVkFMSURfU0FNRVNJVEVfVkFMVUUg
KyAiPTE7ICIgKyBJTVBMSUNJVF9TVFJJQ1RfRE9NICsgIj0xOyAiICsgU1RSSUNUX0RPTSArICI9
MTsgIiArIExBWF9ET00gKyAiPTE7ICIgKyBOT1JNQUxfRE9NICsgIj0xIikpOwotICAgICAgICBl
LnNvdXJjZS5jbG9zZSgpOwotICAgIH0pKTsKLQotICAgIHZhciBmID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnZm9ybScpOwotICAgIGYuYWN0aW9uID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9j
b29raWVzL3Jlc291cmNlcy9wb3N0LWNvb2tpZXMtdG8tb3BlbmVyLnBocCI7Ci0gICAgZi5tZXRo
b2QgPSAiUE9TVCI7Ci0gICAgZi50YXJnZXQgPSAiX2JsYW5rIjsKLSAgICB3aW5kb3cub25sb2Fk
ID0gdC5zdGVwX2Z1bmMoZi5zdWJtaXQuYmluZChmKSk7Ci0gICAgZG9jdW1lbnQuYm9keS5hcHBl
bmRDaGlsZChmKTsKLX0sICInMTI3LjAuMC4xJyBpcyBzYW1lLXNpdGUgd2l0aCBpdHNlbGYsIHNv
IHNhbWVzaXRlIGNvb2tpZXMgYXJlIHNlbnQgdmlhIFBPU1QuIik7Ci08L3NjcmlwdD4KLTwvYm9k
eT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29va2llcy9zYW1lLXNpdGUv
cG9wdXAtc2FtZS1zaXRlLXZpYS1jcm9zcy1zaXRlLXJlZGlyZWN0LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvY29va2llcy9zYW1lLXNpdGUvcG9wdXAtc2FtZS1zaXRlLXZp
YS1jcm9zcy1zaXRlLXJlZGlyZWN0LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMzlhYTJiYTc2MjZhZDM1ODFiZTgzZjFmZTNlZDc2YjIzZGE3N2NjZi4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2Nvb2tpZXMvc2FtZS1zaXRlL3BvcHVwLXNhbWUtc2l0ZS12aWEtY3Jvc3Mtc2l0ZS1y
ZWRpcmVjdC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFT
UyAnMTI3LjAuMC4xJyBpcyBzYW1lLXNpdGUgd2l0aCBpdHNlbGYsIHNvIHNhbWVzaXRlIGNvb2tp
ZXMgYXJlIHNlbnQuIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tp
ZXMvc2FtZS1zaXRlL3BvcHVwLXNhbWUtc2l0ZS12aWEtY3Jvc3Mtc2l0ZS1yZWRpcmVjdC5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb29raWVzL3NhbWUtc2l0ZS9wb3B1cC1zYW1lLXNp
dGUtdmlhLWNyb3NzLXNpdGUtcmVkaXJlY3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYTFkNDZiMDhlYzVlYzc3ZDNkMjliZWYyMzc5MWQzYWVmZjdkOTgxMC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2Nvb2tpZXMvc2FtZS1zaXRlL3BvcHVwLXNhbWUtc2l0ZS12aWEtY3Jvc3Mtc2l0ZS1yZWRp
cmVjdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+
Ci08c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy1oZWxwZXJz
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1hc3luY190ZXN0KHQgPT4gewotICAgIGNsZWFyS25v
d25Db29raWVzKCk7Ci0gICAgZG9jdW1lbnQuY29va2llID0gU1RSSUNUX0RPTSArICI9MTsgU2Ft
ZVNpdGU9U3RyaWN0OyBNYXgtQWdlPTEwMDsgcGF0aD0vIjsKLSAgICBkb2N1bWVudC5jb29raWUg
PSBJTVBMSUNJVF9TVFJJQ1RfRE9NICsgIj0xOyBTYW1lU2l0ZTsgTWF4LUFnZT0xMDA7IHBhdGg9
LyI7Ci0gICAgZG9jdW1lbnQuY29va2llID0gU1RSSUNUX0JFQ0FVU0VfSU5WQUxJRF9TQU1FU0lU
RV9WQUxVRSArICI9MTsgU2FtZVNpdGU9aW52YWxpZDsgTWF4LUFnZT0xMDA7IHBhdGg9LyI7Ci0g
ICAgZG9jdW1lbnQuY29va2llID0gTEFYX0RPTSArICI9MTsgU2FtZVNpdGU9TGF4OyBNYXgtQWdl
PTEwMDsgcGF0aD0vIjsKLSAgICBkb2N1bWVudC5jb29raWUgPSBOT1JNQUxfRE9NICsgIj0xOyBN
YXgtQWdlPTEwMDsgcGF0aD0vIjsKLQotICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNz
YWdlIiwgdC5zdGVwX2Z1bmNfZG9uZShlID0+IHsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhlLmRh
dGEuaHR0cFtTVFJJQ1RfRE9NXSwgdW5kZWZpbmVkLCAic3RyaWN0Iik7Ci0gICAgICAgIGFzc2Vy
dF9lcXVhbHMoZS5kYXRhLmh0dHBbSU1QTElDSVRfU1RSSUNUX0RPTV0sIHVuZGVmaW5lZCwgImlt
cGxpY2l0LXN0cmljdCIpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKGUuZGF0YS5odHRwW1NUUklD
VF9CRUNBVVNFX0lOVkFMSURfU0FNRVNJVEVfVkFMVUVdLCB1bmRlZmluZWQsICJzdHJpY3QtYmVj
YXVzZS1pbnZhbGlkLVNhbWVTaXRlLXZhbHVlIik7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoZS5k
YXRhLmh0dHBbTEFYX0RPTV0sICIxIiwgImxheCIpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKGUu
ZGF0YS5odHRwW05PUk1BTF9ET01dLCAiMSIsICJub3JtYWwiKTsKLSAgICAgICAgYXNzZXJ0X2Vx
dWFscyhub3JtYWxpemVDb29raWUoZS5kYXRhLmRvY3VtZW50KSwgbm9ybWFsaXplQ29va2llKExB
WF9ET00gKyAiPTE7ICIgKyBOT1JNQUxfRE9NICsgIj0xIikpOwotICAgIH0pKTsKLQotICAgIHZh
ciBpID0gd2luZG93Lm9wZW4oImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZXMvcmVkaXJl
Y3QucGhwP3VybD1odHRwOi8vMTI3LjAuMC4xOjgwMDAvY29va2llcy9yZXNvdXJjZXMvcG9zdC1j
b29raWVzLXRvLW9wZW5lci5waHAiKTsKLX0sICInMTI3LjAuMC4xJyBpcyBzYW1lLXNpdGUgd2l0
aCBpdHNlbGYsIHNvIHNhbWVzaXRlIGNvb2tpZXMgYXJlIHNlbnQuIik7Ci08L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29va2llcy9zYW1lLXNpdGUvcG9wdXAt
c2FtZS1zaXRlLXZpYS1zYW1lLXNpdGUtcmVkaXJlY3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9jb29raWVzL3NhbWUtc2l0ZS9wb3B1cC1zYW1lLXNpdGUtdmlhLXNhbWUt
c2l0ZS1yZWRpcmVjdC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDM5YWEyYmE3NjI2YWQzNTgxYmU4M2YxZmUzZWQ3NmIyM2RhNzdjY2YuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9j
b29raWVzL3NhbWUtc2l0ZS9wb3B1cC1zYW1lLXNpdGUtdmlhLXNhbWUtc2l0ZS1yZWRpcmVjdC1l
eHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyAnMTI3LjAu
MC4xJyBpcyBzYW1lLXNpdGUgd2l0aCBpdHNlbGYsIHNvIHNhbWVzaXRlIGNvb2tpZXMgYXJlIHNl
bnQuIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMvc2FtZS1z
aXRlL3BvcHVwLXNhbWUtc2l0ZS12aWEtc2FtZS1zaXRlLXJlZGlyZWN0Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMvc2FtZS1zaXRlL3BvcHVwLXNhbWUtc2l0ZS12aWEtc2Ft
ZS1zaXRlLXJlZGlyZWN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIxNTI4
ZjRjNTI3MGU4YTU2ZmE2Y2ZhNzJiZDZjYmVjMmU3MjNlMDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb29raWVz
L3NhbWUtc2l0ZS9wb3B1cC1zYW1lLXNpdGUtdmlhLXNhbWUtc2l0ZS1yZWRpcmVjdC5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsMjUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08c2NyaXB0IHNy
Yz0iL2pzLXRlc3QtcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy1oZWxwZXJzLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQ+Ci1hc3luY190ZXN0KHQgPT4gewotICAgIGNsZWFyS25vd25Db29raWVzKCk7
Ci0gICAgZG9jdW1lbnQuY29va2llID0gU1RSSUNUX0RPTSArICI9MTsgU2FtZVNpdGU9U3RyaWN0
OyBNYXgtQWdlPTEwMDsgcGF0aD0vIjsKLSAgICBkb2N1bWVudC5jb29raWUgPSBJTVBMSUNJVF9T
VFJJQ1RfRE9NICsgIj0xOyBTYW1lU2l0ZTsgTWF4LUFnZT0xMDA7IHBhdGg9LyI7Ci0gICAgZG9j
dW1lbnQuY29va2llID0gU1RSSUNUX0JFQ0FVU0VfSU5WQUxJRF9TQU1FU0lURV9WQUxVRSArICI9
MTsgU2FtZVNpdGU9aW52YWxpZDsgTWF4LUFnZT0xMDA7IHBhdGg9LyI7Ci0gICAgZG9jdW1lbnQu
Y29va2llID0gTEFYX0RPTSArICI9MTsgU2FtZVNpdGU9TGF4OyBNYXgtQWdlPTEwMDsgcGF0aD0v
IjsKLSAgICBkb2N1bWVudC5jb29raWUgPSBOT1JNQUxfRE9NICsgIj0xOyBNYXgtQWdlPTEwMDsg
cGF0aD0vIjsKLQotICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgdC5zdGVw
X2Z1bmNfZG9uZShlID0+IHsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhlLmRhdGEuaHR0cFtTVFJJ
Q1RfRE9NXSwgIjEiLCAic3RyaWN0Iik7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoZS5kYXRhLmh0
dHBbSU1QTElDSVRfU1RSSUNUX0RPTV0sICIxIiwgImltcGxpY2l0LXN0cmljdCIpOwotICAgICAg
ICBhc3NlcnRfZXF1YWxzKGUuZGF0YS5odHRwW1NUUklDVF9CRUNBVVNFX0lOVkFMSURfU0FNRVNJ
VEVfVkFMVUVdLCAiMSIsICJzdHJpY3QtYmVjYXVzZS1pbnZhbGlkLVNhbWVTaXRlLXZhbHVlIik7
Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoZS5kYXRhLmh0dHBbTEFYX0RPTV0sICIxIiwgImxheCIp
OwotICAgICAgICBhc3NlcnRfZXF1YWxzKGUuZGF0YS5odHRwW05PUk1BTF9ET01dLCAiMSIsICJu
b3JtYWwiKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhub3JtYWxpemVDb29raWUoZS5kYXRhLmRv
Y3VtZW50KSwgbm9ybWFsaXplQ29va2llKFNUUklDVF9CRUNBVVNFX0lOVkFMSURfU0FNRVNJVEVf
VkFMVUUgKyAiPTE7ICIgKyBJTVBMSUNJVF9TVFJJQ1RfRE9NICsgIj0xOyAiICsgU1RSSUNUX0RP
TSArICI9MTsgIiArIExBWF9ET00gKyAiPTE7ICIgKyBOT1JNQUxfRE9NICsgIj0xIikpOwotICAg
IH0pKTsKLQotICAgIHZhciBpID0gd2luZG93Lm9wZW4oImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9y
ZXNvdXJjZXMvcmVkaXJlY3QucGhwP3VybD1odHRwOi8vMTI3LjAuMC4xOjgwMDAvY29va2llcy9y
ZXNvdXJjZXMvcG9zdC1jb29raWVzLXRvLW9wZW5lci5waHAiKTsKLX0sICInMTI3LjAuMC4xJyBp
cyBzYW1lLXNpdGUgd2l0aCBpdHNlbGYsIHNvIHNhbWVzaXRlIGNvb2tpZXMgYXJlIHNlbnQuIik7
Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29va2llcy9z
YW1lLXNpdGUvcG9wdXAtc2FtZS1zaXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nv
b2tpZXMvc2FtZS1zaXRlL3BvcHVwLXNhbWUtc2l0ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBmOTBhMjY4YzcyZTMzNDM4MjM3NWIzMjEwNmUwMGI5NmJmNGQ5Y2JlLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvY29va2llcy9zYW1lLXNpdGUvcG9wdXAtc2FtZS1zaXRlLmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSwyNSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQgc3JjPSIvanMt
dGVzdC1yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9q
cy10ZXN0LXJlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLWhlbHBlcnMuanMiPjwvc2NyaXB0PgotPHNj
cmlwdD4KLWFzeW5jX3Rlc3QodCA9PiB7Ci0gICAgY2xlYXJLbm93bkNvb2tpZXMoKTsKLSAgICBk
b2N1bWVudC5jb29raWUgPSBTVFJJQ1RfRE9NICsgIj0xOyBTYW1lU2l0ZT1TdHJpY3Q7IE1heC1B
Z2U9MTAwOyBwYXRoPS8iOwotICAgIGRvY3VtZW50LmNvb2tpZSA9IElNUExJQ0lUX1NUUklDVF9E
T00gKyAiPTE7IFNhbWVTaXRlOyBNYXgtQWdlPTEwMDsgcGF0aD0vIjsKLSAgICBkb2N1bWVudC5j
b29raWUgPSBTVFJJQ1RfQkVDQVVTRV9JTlZBTElEX1NBTUVTSVRFX1ZBTFVFICsgIj0xOyBTYW1l
U2l0ZT1pbnZhbGlkOyBNYXgtQWdlPTEwMDsgcGF0aD0vIjsKLSAgICBkb2N1bWVudC5jb29raWUg
PSBMQVhfRE9NICsgIj0xOyBTYW1lU2l0ZT1MYXg7IE1heC1BZ2U9MTAwOyBwYXRoPS8iOwotICAg
IGRvY3VtZW50LmNvb2tpZSA9IE5PUk1BTF9ET00gKyAiPTE7IE1heC1BZ2U9MTAwOyBwYXRoPS8i
OwotCi0gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCB0LnN0ZXBfZnVuY19k
b25lKGUgPT4gewotICAgICAgICBhc3NlcnRfZXF1YWxzKGUuZGF0YS5odHRwW1NUUklDVF9ET01d
LCAiMSIsICJzdHJpY3QiKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhlLmRhdGEuaHR0cFtJTVBM
SUNJVF9TVFJJQ1RfRE9NXSwgIjEiLCAiaW1wbGljaXQtc3RyaWN0Iik7Ci0gICAgICAgIGFzc2Vy
dF9lcXVhbHMoZS5kYXRhLmh0dHBbU1RSSUNUX0JFQ0FVU0VfSU5WQUxJRF9TQU1FU0lURV9WQUxV
RV0sICIxIiwgInN0cmljdC1iZWNhdXNlLWludmFsaWQtU2FtZVNpdGUtdmFsdWUiKTsKLSAgICAg
ICAgYXNzZXJ0X2VxdWFscyhlLmRhdGEuaHR0cFtMQVhfRE9NXSwgIjEiLCAibGF4Iik7Ci0gICAg
ICAgIGFzc2VydF9lcXVhbHMoZS5kYXRhLmh0dHBbTk9STUFMX0RPTV0sICIxIiwgIm5vcm1hbCIp
OwotICAgICAgICBhc3NlcnRfZXF1YWxzKG5vcm1hbGl6ZUNvb2tpZShlLmRhdGEuZG9jdW1lbnQp
LCBub3JtYWxpemVDb29raWUoU1RSSUNUX0JFQ0FVU0VfSU5WQUxJRF9TQU1FU0lURV9WQUxVRSAr
ICI9MTsgIiArIElNUExJQ0lUX1NUUklDVF9ET00gKyAiPTE7ICIgKyBTVFJJQ1RfRE9NICsgIj0x
OyAiICsgTEFYX0RPTSArICI9MTsgIiArIE5PUk1BTF9ET00gKyAiPTEiKSk7Ci0gICAgfSkpOwot
Ci0gICAgdmFyIGkgPSB3aW5kb3cub3BlbigiaHR0cDovLzEyNy4wLjAuMTo4MDAwL2Nvb2tpZXMv
cmVzb3VyY2VzL3Bvc3QtY29va2llcy10by1vcGVuZXIucGhwIik7Ci19LCAiJzEyNy4wLjAuMScg
aXMgc2FtZS1zaXRlIHdpdGggaXRzZWxmLCBzbyBzYW1lc2l0ZSBjb29raWVzIGFyZSBzZW50LiIp
OwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMv
c2FtZS1zaXRlL3Jlc291cmNlcy9jbGljay1oeXBlcmxpbmsucGhwIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9jb29raWVzL3NhbWUtc2l0ZS9yZXNvdXJjZXMvY2xpY2staHlwZXJsaW5rLnBocApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNThhYjg1MmYzNDM0YTE5MGE2OGViZmI2ZTE1
NzUwYzVlZTMxMDI3My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMvc2FtZS1zaXRlL3Jlc291cmNlcy9j
bGljay1oeXBlcmxpbmsucGhwCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotPCFET0NU
WVBFPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0g
ICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5
PgotPD9waHAKLSAgICAkdGFyZ2V0QXR0cmlidXRlID0gIiI7Ci0gICAgaWYgKCFlbXB0eSgkX0dF
VFsidGFyZ2V0Il0pKQotICAgICAgICAkdGFyZ2V0QXR0cmlidXRlID0gJ3RhcmdldD0iJyAuICRf
R0VUWyJ0YXJnZXQiXSAuICciJzsKLT8+Ci08YSBocmVmPSI8P3BocCBlY2hvICRfR0VUWydocmVm
J107ID8+IiA8P3BocCBlY2hvICR0YXJnZXRBdHRyaWJ1dGU7ID8+PkNsaWNrPC9hPgotPHNjcmlw
dD5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJhIikuY2xpY2soKTwvc2NyaXB0PgotPC9ib2R5Pgot
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb29raWVzL3NhbWUt
c2l0ZS9yZXNvdXJjZXMvZWNoby1pZnJhbWUtc3JjLnBocCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvY29va2llcy9zYW1lLXNpdGUvcmVzb3VyY2VzL2VjaG8taWZyYW1lLXNyYy5waHAKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIzN2JkNzhhZjg2OWQ0ZjBlY2RiMGVmMjE1M2NmMDMx
MTMxYWM2MjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb29raWVzL3NhbWUtc2l0ZS9yZXNvdXJjZXMvZWNoby1p
ZnJhbWUtc3JjLnBocAorKysgL2Rldi9udWxsCkBAIC0xLDE1ICswLDAgQEAKLTwhRE9DVFlQRSBo
dG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
LSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICB0ZXN0UnVubmVyLmR1bXBDaGlsZEZy
YW1lc0FzVGV4dCgpOwotICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotfQotPC9zY3Jp
cHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxpZnJhbWUgc3JjPSI8P3BocCBlY2hvICRfR0VUWydzcmMn
XTsgPz4iPjwvaWZyYW1lPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9jb29raWVzL3NhbWUtc2l0ZS9yZXNvdXJjZXMvZmV0Y2gtYWZ0ZXItbmF2
aWdhdGluZy1pZnJhbWUtaW4tY3Jvc3Mtb3JpZ2luLXBhZ2UucGhwIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9jb29raWVzL3NhbWUtc2l0ZS9yZXNvdXJjZXMvZmV0Y2gtYWZ0ZXItbmF2aWdhdGlu
Zy1pZnJhbWUtaW4tY3Jvc3Mtb3JpZ2luLXBhZ2UucGhwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA2MmNiYzM4ZTJiMTliNjA0OTkxYjk2YjZkNGJjNmExYzdmMDU1MDYwLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvY29va2llcy9zYW1lLXNpdGUvcmVzb3VyY2VzL2ZldGNoLWFmdGVyLW5hdmlnYXRpbmct
aWZyYW1lLWluLWNyb3NzLW9yaWdpbi1wYWdlLnBocAorKysgL2Rldi9udWxsCkBAIC0xLDM1ICsw
LDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIvanMt
dGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2Nvb2tpZS11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD5fc2V0Q2Fj
aGVkQ29va2llc0pTT04oJzw/cGhwIGVjaG8ganNvbl9lbmNvZGUoJF9DT09LSUUpOyA/PicpPC9z
Y3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQ+Ci13aW5kb3cuanNUZXN0SXNBc3luYyA9
IHRydWU7Ci0KLWRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IFNhbWUtU2l0ZSBjb29raWVzIGZvciAx
MjcuMC4wLjEgYXJlIG5vdCBzZW50IHdpdGggYSBmcmFtZSBuYXZpZ2F0aW9uIGZvciBhIGZyYW1l
IGVtYmVkZGVkIGluIGEgcGFnZSB3aXRoIGEgZGlmZmVyZW50IG9yaWdpbi4iKTsKLQotYXN5bmMg
ZnVuY3Rpb24gY2hlY2tSZXN1bHQoKQotewotICAgIGRlYnVnKCJDb29raWVzIHNlbnQgd2l0aCBI
VFRQIHJlcXVlc3Q6Iik7Ci0gICAgYXdhaXQgc2hvdWxkTm90SGF2ZUNvb2tpZSgic3RyaWN0Iik7
Ci0gICAgYXdhaXQgc2hvdWxkTm90SGF2ZUNvb2tpZSgiaW1wbGljaXQtc3RyaWN0Iik7Ci0gICAg
YXdhaXQgc2hvdWxkTm90SGF2ZUNvb2tpZSgic3RyaWN0LWJlY2F1c2UtaW52YWxpZC1TYW1lU2l0
ZS12YWx1ZSIpOwotICAgIGF3YWl0IHNob3VsZE5vdEhhdmVDb29raWUoImxheCIpOwotCi0gICAg
ZGVidWcoIjxicj5Db29raWVzIHZpc2libGUgaW4gRE9NOiIpOwotICAgIHNob3VsZE5vdEhhdmVE
T01Db29raWUoInN0cmljdCIpOwotICAgIHNob3VsZE5vdEhhdmVET01Db29raWUoImltcGxpY2l0
LXN0cmljdCIpOwotICAgIHNob3VsZE5vdEhhdmVET01Db29raWUoInN0cmljdC1iZWNhdXNlLWlu
dmFsaWQtU2FtZVNpdGUtdmFsdWUiKTsKLSAgICBzaG91bGROb3RIYXZlRE9NQ29va2llKCJsYXgi
KTsKLQotICAgIGF3YWl0IHJlc2V0Q29va2llcygpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfQot
Ci1jaGVja1Jlc3VsdCgpOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMvc2FtZS1zaXRlL3Jlc291cmNlcy9mZXRj
aC1hZnRlci10b3AtbGV2ZWwtbmF2aWdhdGlvbi1mcm9tLWNyb3NzLW9yaWdpbi1wYWdlLnBocCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29va2llcy9zYW1lLXNpdGUvcmVzb3VyY2VzL2ZldGNo
LWFmdGVyLXRvcC1sZXZlbC1uYXZpZ2F0aW9uLWZyb20tY3Jvc3Mtb3JpZ2luLXBhZ2UucGhwCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZjE5ZmIxMjM3MDYzZjY3MTIyY2VmNDA4Mzhh
MTBkODBkZTgyN2IzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29va2llcy9zYW1lLXNpdGUvcmVzb3VyY2VzL2Zl
dGNoLWFmdGVyLXRvcC1sZXZlbC1uYXZpZ2F0aW9uLWZyb20tY3Jvc3Mtb3JpZ2luLXBhZ2UucGhw
CisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4K
LTxoZWFkPgotPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvY29va2llLXV0aWxpdGllcy5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0Pl9zZXRDYWNoZWRDb29raWVzSlNPTignPD9waHAgZWNobyBqc29u
X2VuY29kZSgkX0NPT0tJRSk7ID8+Jyk8L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlw
dD4KLXdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotZGVzY3JpcHRpb24oIlRlc3RzIHRo
YXQgYSBTYW1lU2l0ZSBMYXggY29va2llIGZvciAxMjcuMC4wLjEgaXMgc2VudCB3aXRoIGEgdG9w
LWxldmVsIG5hdmlnYXRpb24gaW5pdGlhdGVkIGZyb20gYSBwYWdlIHdpdGggYSBkaWZmZXJlbnQg
b3JpZ2luLiIpOwotCi1hc3luYyBmdW5jdGlvbiBjaGVja1Jlc3VsdCgpCi17Ci0gICAgZGVidWco
IkNvb2tpZXMgc2VudCB3aXRoIEhUVFAgcmVxdWVzdDoiKTsKLSAgICBhd2FpdCBzaG91bGROb3RI
YXZlQ29va2llKCJzdHJpY3QiKTsKLSAgICBhd2FpdCBzaG91bGROb3RIYXZlQ29va2llKCJpbXBs
aWNpdC1zdHJpY3QiKTsKLSAgICBhd2FpdCBzaG91bGROb3RIYXZlQ29va2llKCJzdHJpY3QtYmVj
YXVzZS1pbnZhbGlkLVNhbWVTaXRlLXZhbHVlIik7Ci0gICAgYXdhaXQgc2hvdWxkSGF2ZUNvb2tp
ZVdpdGhWYWx1ZSgibGF4IiwgIjUiKTsKLQotICAgIGRlYnVnKCI8YnI+Q29va2llcyB2aXNpYmxl
IGluIERPTToiKTsKLSAgICBzaG91bGROb3RIYXZlRE9NQ29va2llKCJzdHJpY3QiKTsKLSAgICBz
aG91bGROb3RIYXZlRE9NQ29va2llKCJpbXBsaWNpdC1zdHJpY3QiKTsKLSAgICBzaG91bGROb3RI
YXZlRE9NQ29va2llKCJzdHJpY3QtYmVjYXVzZS1pbnZhbGlkLVNhbWVTaXRlLXZhbHVlIik7Ci0g
ICAgc2hvdWxkSGF2ZURPTUNvb2tpZVdpdGhWYWx1ZSgibGF4IiwgIjUiKTsKLQotICAgIGF3YWl0
IHJlc2V0Q29va2llcygpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfQotCi1jaGVja1Jlc3VsdCgp
OwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2Nvb2tpZXMvc2FtZS1zaXRlL3Jlc291cmNlcy9mZXRjaC1hZnRlci10b3AtbGV2
ZWwtbmF2aWdhdGlvbi1pbml0aWF0ZWQtZnJvbS1pZnJhbWUtaW4tY3Jvc3Mtb3JpZ2luLXBhZ2Uu
cGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb29raWVzL3NhbWUtc2l0ZS9yZXNvdXJjZXMv
ZmV0Y2gtYWZ0ZXItdG9wLWxldmVsLW5hdmlnYXRpb24taW5pdGlhdGVkLWZyb20taWZyYW1lLWlu
LWNyb3NzLW9yaWdpbi1wYWdlLnBocApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjc3
Yjc4YzQ3YzZmYjBkNDA5NmIxNWMyY2FkMDMyMmI2M2U5Y2NlNS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tp
ZXMvc2FtZS1zaXRlL3Jlc291cmNlcy9mZXRjaC1hZnRlci10b3AtbGV2ZWwtbmF2aWdhdGlvbi1p
bml0aWF0ZWQtZnJvbS1pZnJhbWUtaW4tY3Jvc3Mtb3JpZ2luLXBhZ2UucGhwCisrKyAvZGV2L251
bGwKQEAgLTEsMzUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNj
cmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvY29va2llLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0Pl9zZXRDYWNoZWRDb29raWVzSlNPTignPD9waHAgZWNobyBqc29uX2VuY29kZSgkX0NP
T0tJRSk7ID8+Jyk8L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdD4KLXdpbmRvdy5q
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgYSBTYW1lU2l0
ZSBMYXggY29va2llIGZvciAxMjcuMC4wLjEgaXMgc2VudCB3aXRoIGEgdG9wLWxldmVsIG5hdmln
YXRpb24gaW5pdGlhdGVkIGZyb20gYSBmcmFtZSBlbWJlZGRlZCBpbiBhIHBhZ2Ugd2l0aCBhIGRp
ZmZlcmVudCBvcmlnaW4uIik7Ci0KLWFzeW5jIGZ1bmN0aW9uIGNoZWNrUmVzdWx0KCkKLXsKLSAg
ICBkZWJ1ZygiQ29va2llcyBzZW50IHdpdGggSFRUUCByZXF1ZXN0OiIpOwotICAgIGF3YWl0IHNo
b3VsZE5vdEhhdmVDb29raWUoInN0cmljdCIpOwotICAgIGF3YWl0IHNob3VsZE5vdEhhdmVDb29r
aWUoImltcGxpY2l0LXN0cmljdCIpOwotICAgIGF3YWl0IHNob3VsZE5vdEhhdmVDb29raWUoInN0
cmljdC1iZWNhdXNlLWludmFsaWQtU2FtZVNpdGUtdmFsdWUiKTsKLSAgICBhd2FpdCBzaG91bGRI
YXZlQ29va2llV2l0aFZhbHVlKCJsYXgiLCAiNCIpOwotCi0gICAgZGVidWcoIjxicj5Db29raWVz
IHZpc2libGUgaW4gRE9NOiIpOwotICAgIHNob3VsZE5vdEhhdmVET01Db29raWUoInN0cmljdCIp
OwotICAgIHNob3VsZE5vdEhhdmVET01Db29raWUoImltcGxpY2l0LXN0cmljdCIpOwotICAgIHNo
b3VsZE5vdEhhdmVET01Db29raWUoInN0cmljdC1iZWNhdXNlLWludmFsaWQtU2FtZVNpdGUtdmFs
dWUiKTsKLSAgICBzaG91bGRIYXZlRE9NQ29va2llV2l0aFZhbHVlKCJsYXgiLCAiNCIpOwotCi0g
ICAgYXdhaXQgcmVzZXRDb29raWVzKCk7Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19Ci0KLWNoZWNr
UmVzdWx0KCk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvY29va2llcy9zYW1lLXNpdGUvcmVzb3VyY2VzL2ZldGNoLWluLWNy
b3NzLW9yaWdpbi1pZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29va2llcy9z
YW1lLXNpdGUvcmVzb3VyY2VzL2ZldGNoLWluLWNyb3NzLW9yaWdpbi1pZnJhbWUuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDU4YTczMzMzMTE0NmM2YjFiNGNmMmFhZDk5NWNk
ODFmMWQwZmJmNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMvc2FtZS1zaXRlL3Jlc291cmNlcy9mZXRj
aC1pbi1jcm9zcy1vcmlnaW4taWZyYW1lLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCww
IEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iL2pzLXRl
c3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9jb29raWUtdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5Pgot
PHNjcmlwdD4KLXdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotZGVzY3JpcHRpb24oIlRl
c3RzIHRoYXQgU2FtZS1TaXRlIGNvb2tpZXMgZm9yIDEyNy4wLjAuMSBhcmUgbm90IHNlbnQgd2l0
aCBhIHJlcXVlc3QgaW5pdGlhdGVkIGZyb20gYSBpZnJhbWUgd2l0aCBhIGRpZmZlcmVudCBvcmln
aW4uIik7Ci0KLWFzeW5jIGZ1bmN0aW9uIGNoZWNrUmVzdWx0KCkKLXsKLSAgICBzZXRCYXNlVVJM
V2hlbkZldGNoaW5nQ29va2llcygiaHR0cDovLzEyNy4wLjAuMTo4MDAwIik7Ci0KLSAgICBkZWJ1
ZygiQ29va2llcyBzZW50IHdpdGggSFRUUCByZXF1ZXN0OiIpOwotICAgIGF3YWl0IHNob3VsZE5v
dEhhdmVDb29raWUoInN0cmljdCIpOwotICAgIGF3YWl0IHNob3VsZE5vdEhhdmVDb29raWUoImlt
cGxpY2l0LXN0cmljdCIpOwotICAgIGF3YWl0IHNob3VsZE5vdEhhdmVDb29raWUoInN0cmljdC1i
ZWNhdXNlLWludmFsaWQtU2FtZVNpdGUtdmFsdWUiKTsKLSAgICBhd2FpdCBzaG91bGROb3RIYXZl
Q29va2llKCJsYXgiKTsKLQotICAgIGRlYnVnKCI8YnI+Q29va2llcyB2aXNpYmxlIGluIERPTToi
KTsKLSAgICBzaG91bGROb3RIYXZlRE9NQ29va2llKCJzdHJpY3QiKTsKLSAgICBzaG91bGROb3RI
YXZlRE9NQ29va2llKCJpbXBsaWNpdC1zdHJpY3QiKTsKLSAgICBzaG91bGROb3RIYXZlRE9NQ29v
a2llKCJzdHJpY3QtYmVjYXVzZS1pbnZhbGlkLVNhbWVTaXRlLXZhbHVlIik7Ci0gICAgc2hvdWxk
Tm90SGF2ZURPTUNvb2tpZSgibGF4Iik7Ci0KLSAgICBhd2FpdCByZXNldENvb2tpZXMoKTsKLSAg
ICBmaW5pc2hKU1Rlc3QoKTsKLX0KLQotY2hlY2tSZXN1bHQoKTsKLTwvc2NyaXB0PgotPC9ib2R5
PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb29raWVzL3Nh
bWUtc2l0ZS9yZXNvdXJjZXMvZmV0Y2gtaW4tY3Jvc3Mtb3JpZ2luLXNlcnZpY2Utd29ya2VyLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMvc2FtZS1zaXRlL3Jlc291cmNlcy9m
ZXRjaC1pbi1jcm9zcy1vcmlnaW4tc2VydmljZS13b3JrZXIuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZDU5NDFjN2RmYjAyZGEwOTRkMTQ5ZmYwNzc3NzgxNTUwZDY0OTYzNS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2Nvb2tpZXMvc2FtZS1zaXRlL3Jlc291cmNlcy9mZXRjaC1pbi1jcm9zcy1v
cmlnaW4tc2VydmljZS13b3JrZXIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAK
LTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIvanMtdGVzdC1y
ZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2Nvb2tpZS11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08c2Ny
aXB0Pgotd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi1kZXNjcmlwdGlvbigiVGVzdHMg
dGhhdCBTYW1lLVNpdGUgY29va2llcyBmb3IgMTI3LjAuMC4xIGFyZSBub3Qgc2VudCB3aXRoIGEg
cmVxdWVzdCBpbml0aWF0ZWQgZnJvbSBhbiBpZnJhbWUtIGFuZCBwcm9jZXNzZWQgYnkgYSBzZXJ2
aWNlIHdvcmtlci0gd2l0aCBhIGRpZmZlcmVudCBvcmlnaW4uIik7Ci0KLWFzeW5jIGZ1bmN0aW9u
IGNoZWNrUmVzdWx0KCkKLXsKLSAgICBzZXRCYXNlVVJMV2hlbkZldGNoaW5nQ29va2llcygiaHR0
cDovLzEyNy4wLjAuMTo4MDAwIik7Ci0KLSAgICBkZWJ1ZygiQ29va2llcyBzZW50IHdpdGggSFRU
UCByZXF1ZXN0OiIpOwotICAgIGF3YWl0IHNob3VsZE5vdEhhdmVDb29raWUoInN0cmljdCIpOwot
ICAgIGF3YWl0IHNob3VsZE5vdEhhdmVDb29raWUoImltcGxpY2l0LXN0cmljdCIpOwotICAgIGF3
YWl0IHNob3VsZE5vdEhhdmVDb29raWUoInN0cmljdC1iZWNhdXNlLWludmFsaWQtU2FtZVNpdGUt
dmFsdWUiKTsKLSAgICBhd2FpdCBzaG91bGROb3RIYXZlQ29va2llKCJsYXgiKTsKLQotICAgIGRl
YnVnKCI8YnI+Q29va2llcyB2aXNpYmxlIGluIERPTToiKTsKLSAgICBzaG91bGROb3RIYXZlRE9N
Q29va2llKCJzdHJpY3QiKTsKLSAgICBzaG91bGROb3RIYXZlRE9NQ29va2llKCJpbXBsaWNpdC1z
dHJpY3QiKTsKLSAgICBzaG91bGROb3RIYXZlRE9NQ29va2llKCJzdHJpY3QtYmVjYXVzZS1pbnZh
bGlkLVNhbWVTaXRlLXZhbHVlIik7Ci0gICAgc2hvdWxkTm90SGF2ZURPTUNvb2tpZSgibGF4Iik7
Ci0KLSAgICBhd2FpdCByZXNldENvb2tpZXMoKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0KLQot
Y2hlY2tSZXN1bHQoKTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb29raWVzL3NhbWUtc2l0ZS9yZXNvdXJjZXMvZmV0Y2gt
aW4tY3Jvc3Mtb3JpZ2luLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29va2ll
cy9zYW1lLXNpdGUvcmVzb3VyY2VzL2ZldGNoLWluLWNyb3NzLW9yaWdpbi13b3JrZXIuanMKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNmMTNkNzNhZDJlNmFiYThhYTc4Zjc1NTM3NmQw
ODdhMWRmYzY2MzIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb29raWVzL3NhbWUtc2l0ZS9yZXNvdXJjZXMvZmV0
Y2gtaW4tY3Jvc3Mtb3JpZ2luLXdvcmtlci5qcworKysgL2Rldi9udWxsCkBAIC0xLDE0ICswLDAg
QEAKLWltcG9ydFNjcmlwdHMoIi9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIik7Ci1pbXBv
cnRTY3JpcHRzKCIuLi8uLi9yZXNvdXJjZXMvY29va2llLXV0aWxpdGllcy5qcyIpOwotCi1hc3lu
YyBmdW5jdGlvbiBjaGVja1Jlc3VsdCgpCi17Ci0gICAgc2V0QmFzZVVSTFdoZW5GZXRjaGluZ0Nv
b2tpZXMoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIpOwotICAgIGF3YWl0IHNob3VsZE5vdEhhdmVD
b29raWUoInN0cmljdCIpOwotICAgIGF3YWl0IHNob3VsZE5vdEhhdmVDb29raWUoImltcGxpY2l0
LXN0cmljdCIpOwotICAgIGF3YWl0IHNob3VsZE5vdEhhdmVDb29raWUoInN0cmljdC1iZWNhdXNl
LWludmFsaWQtU2FtZVNpdGUtdmFsdWUiKTsKLSAgICBhd2FpdCBzaG91bGROb3RIYXZlQ29va2ll
KCJsYXgiKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0KLQotY2hlY2tSZXN1bHQoKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29va2llcy9zYW1lLXNpdGUvcmVzb3VyY2Vz
L2ZldGNoLWluLXNhbWUtb3JpZ2luLXNlcnZpY2Utd29ya2VyLnBocCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvY29va2llcy9zYW1lLXNpdGUvcmVzb3VyY2VzL2ZldGNoLWluLXNhbWUtb3JpZ2lu
LXNlcnZpY2Utd29ya2VyLnBocApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWVlOWE2
NWY2MTVlMDUxZDhkN2RhYWVlYzViMWIxODlmNzY3M2FmNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMv
c2FtZS1zaXRlL3Jlc291cmNlcy9mZXRjaC1pbi1zYW1lLW9yaWdpbi1zZXJ2aWNlLXdvcmtlci5w
aHAKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1s
PgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9jb29raWUtdXRpbGl0aWVzLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQ+X3NldENhY2hlZENvb2tpZXNKU09OKCc8P3BocCBlY2hvIGpz
b25fZW5jb2RlKCRfQ09PS0lFKTsgPz4nKTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08c2Ny
aXB0Pgotd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi1kZXNjcmlwdGlvbigiVGVzdHMg
dGhhdCBTYW1lLVNpdGUgY29va2llcyBmb3IgMTI3LjAuMC4xIGFyZSBzZW50IHdpdGggYSByZXF1
ZXN0IGluaXRpYXRlZCBmcm9tIGFuIGlmcmFtZS0gYW5kIHByb2Nlc3NlZCBieSBhIHNlcnZpY2Ug
d29ya2VyLSB3aXRoIHRoZSBzYW1lIG9yaWdpbi4iKTsKLQotYXN5bmMgZnVuY3Rpb24gY2hlY2tS
ZXN1bHQoKQotewotICAgIGRlYnVnKCJDb29raWVzIHNlbnQgd2l0aCBIVFRQIHJlcXVlc3Q6Iik7
Ci0gICAgYXdhaXQgc2hvdWxkSGF2ZUNvb2tpZVdpdGhWYWx1ZSgic3RyaWN0IiwgIjExIik7Ci0g
ICAgYXdhaXQgc2hvdWxkSGF2ZUNvb2tpZVdpdGhWYWx1ZSgiaW1wbGljaXQtc3RyaWN0IiwgIjEx
Iik7Ci0gICAgYXdhaXQgc2hvdWxkSGF2ZUNvb2tpZVdpdGhWYWx1ZSgic3RyaWN0LWJlY2F1c2Ut
aW52YWxpZC1TYW1lU2l0ZS12YWx1ZSIsICIxMSIpOwotICAgIGF3YWl0IHNob3VsZEhhdmVDb29r
aWVXaXRoVmFsdWUoImxheCIsICIxMSIpOwotCi0gICAgZGVidWcoIjxicj5Db29raWVzIHZpc2li
bGUgaW4gRE9NOiIpOwotICAgIHNob3VsZEhhdmVET01Db29raWVXaXRoVmFsdWUoInN0cmljdCIs
ICIxMSIpOwotICAgIHNob3VsZEhhdmVET01Db29raWVXaXRoVmFsdWUoImltcGxpY2l0LXN0cmlj
dCIsICIxMSIpOwotICAgIHNob3VsZEhhdmVET01Db29raWVXaXRoVmFsdWUoInN0cmljdC1iZWNh
dXNlLWludmFsaWQtU2FtZVNpdGUtdmFsdWUiLCAiMTEiKTsKLSAgICBzaG91bGRIYXZlRE9NQ29v
a2llV2l0aFZhbHVlKCJsYXgiLCAiMTEiKTsKLQotICAgIGF3YWl0IHJlc2V0Q29va2llcygpOwot
ICAgIGZpbmlzaEpTVGVzdCgpOwotfQotCi1jaGVja1Jlc3VsdCgpOwotPC9zY3JpcHQ+Ci08L2Jv
ZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMv
c2FtZS1zaXRlL3Jlc291cmNlcy9mZXRjaC1pbi1zYW1lLW9yaWdpbi13b3JrZXIuanMgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMvc2FtZS1zaXRlL3Jlc291cmNlcy9mZXRjaC1pbi1z
YW1lLW9yaWdpbi13b3JrZXIuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc5YTg2
MGE0NjA5YTk3MWU2NjlmNzdlOTk0NmY1ZmNiMGU0YWRiZjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb29raWVz
L3NhbWUtc2l0ZS9yZXNvdXJjZXMvZmV0Y2gtaW4tc2FtZS1vcmlnaW4td29ya2VyLmpzCisrKyAv
ZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAotaW1wb3J0U2NyaXB0cygiL2pzLXRlc3QtcmVzb3Vy
Y2VzL2pzLXRlc3QuanMiKTsKLWltcG9ydFNjcmlwdHMoIi4uLy4uL3Jlc291cmNlcy9jb29raWUt
dXRpbGl0aWVzLmpzIik7Ci0KLWFzeW5jIGZ1bmN0aW9uIGNoZWNrUmVzdWx0KCkKLXsKLSAgICBh
d2FpdCBzaG91bGRIYXZlQ29va2llV2l0aFZhbHVlKCJzdHJpY3QiLCAiMTIiKTsKLSAgICBhd2Fp
dCBzaG91bGRIYXZlQ29va2llV2l0aFZhbHVlKCJpbXBsaWNpdC1zdHJpY3QiLCAiMTIiKTsKLSAg
ICBhd2FpdCBzaG91bGRIYXZlQ29va2llV2l0aFZhbHVlKCJzdHJpY3QtYmVjYXVzZS1pbnZhbGlk
LVNhbWVTaXRlLXZhbHVlIiwgIjEyIik7Ci0gICAgYXdhaXQgc2hvdWxkSGF2ZUNvb2tpZVdpdGhW
YWx1ZSgibGF4IiwgIjEyIik7Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19Ci0KLWNoZWNrUmVzdWx0
KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMvc2FtZS1zaXRl
L3Jlc291cmNlcy9wYXNzdGhyb3VnaC1zZXJ2aWNlLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvY29va2llcy9zYW1lLXNpdGUvcmVzb3VyY2VzL3Bhc3N0aHJvdWdoLXNlcnZpY2Ut
d29ya2VyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDg0YzE4OTIyZDM1MDE4
MGJkMmI2OTlhMGEwODEzOGQ0MTA1NzVhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29va2llcy9zYW1lLXNpdGUv
cmVzb3VyY2VzL3Bhc3N0aHJvdWdoLXNlcnZpY2Utd29ya2VyLmpzCisrKyAvZGV2L251bGwKQEAg
LTEsMyArMCwwIEBACi1zZWxmLmFkZEV2ZW50TGlzdGVuZXIoImZldGNoIiwgKGV2ZW50KSA9PiB7
Ci0gICAgZXZlbnQucmVzcG9uZFdpdGgoZmV0Y2goZXZlbnQucmVxdWVzdC51cmwsIHsgY3JlZGVu
dGlhbHM6ICJpbmNsdWRlIiB9KSk7Ci19KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13
azEvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBjMGU2ZGE5MWFhMzZkMDA1ODYwYjhjZjJhOGNkN2Q3
ZTk5ZDQ0MjgwLi5hNmZhMThhODE3MTMyZjQ2NWZiMmZmMWQyYTExODNjNDc5YmQ1NTA3IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCkBAIC0xNDYs
OCArMTQ2LDYgQEAgaHR0cC93cHQvY2FjaGUtc3RvcmFnZSBbIFNraXAgXQogaHR0cC90ZXN0cy9j
YWNoZS1zdG9yYWdlIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3N0
cmVhbXMvcmVhZGFibGUtYnl0ZS1zdHJlYW1zL2RldGFjaGVkLWJ1ZmZlcnMuc2VydmljZXdvcmtl
ci5odHRwcy5odG1sIFsgU2tpcCBdCiBodHRwL3Rlc3RzL2FwcGNhY2hlL21haW4tcmVzb3VyY2Ut
cmVkaXJlY3Qtd2l0aC1zdy5odG1sIFsgU2tpcCBdCi1odHRwL3Rlc3RzL2Nvb2tpZXMvc2FtZS1z
aXRlL2ZldGNoLWluLWNyb3NzLW9yaWdpbi1zZXJ2aWNlLXdvcmtlci5odG1sIFsgU2tpcCBdCi1o
dHRwL3Rlc3RzL2Nvb2tpZXMvc2FtZS1zaXRlL2ZldGNoLWluLXNhbWUtb3JpZ2luLXNlcnZpY2Ut
d29ya2VyLmh0bWwgWyBTa2lwIF0KIAogIyBTa2lwIFdlYlJUQyBmb3Igbm93IGluIFdLMQogaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMgWyBTa2lwIF0K
</data>

          </attachment>
      

    </bug>

</bugzilla>