<?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>197887</bug_id>
          
          <creation_ts>2019-05-14 11:06:33 -0700</creation_ts>
          <short_desc>REGRESSION(r245281): Broke API Test TestWebKitAPI.Challenge.ClientCertificate (Requested by aakashjain on #webkit).</short_desc>
          <delta_ts>2019-05-14 11:13:13 -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>197800</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>achristensen</cc>
    
    <cc>ap</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1536142</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-05-14 11:06:33 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/245281 broke the build:
Broke API Test TestWebKitAPI.Challenge.ClientCertificate (Requested by aakashjain 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>1536144</commentid>
    <comment_count>1</comment_count>
      <attachid>369871</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-05-14 11:06:40 -0700</bug_when>
    <thetext>Created attachment 369871
ROLLOUT of r245281

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>1536145</commentid>
    <comment_count>2</comment_count>
      <attachid>369871</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-05-14 11:10:31 -0700</bug_when>
    <thetext>Comment on attachment 369871
ROLLOUT of r245281

Clearing flags on attachment: 369871

Committed r245290: &lt;https://trac.webkit.org/changeset/245290&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1536146</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-05-14 11:10:32 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1536148</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-05-14 11:13:13 -0700</bug_when>
    <thetext>&lt;rdar://problem/50774213&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>369871</attachid>
            <date>2019-05-14 11:06:40 -0700</date>
            <delta_ts>2019-05-14 11:10:31 -0700</delta_ts>
            <desc>ROLLOUT of r245281</desc>
            <filename>bug-197887-20190514110639.patch</filename>
            <type>text/plain</type>
            <size>43384</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1Mjg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDVjMGMwOWQxODAwNjUzMDRkZmViNTU3
NDJjMDlmZGRmNGJlYzljM2MuLjZiYzYwYWE3ZTRiZjc0YWEyNzU0NjFjNGFjMTg1Y2FhNGQ5ODI2
MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTktMDUtMTQgIENvbW1pdCBRdWV1ZSAgPGNvbW1p
dC1xdWV1ZUB3ZWJraXQub3JnPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIy
NDUyODEuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTc4ODcKKworICAgICAgICBCcm9rZSBBUEkgVGVzdCBUZXN0V2ViS2l0QVBJLkNoYWxsZW5nZS5D
bGllbnRDZXJ0aWZpY2F0ZQorICAgICAgICAoUmVxdWVzdGVkIGJ5IGFha2FzaGphaW4gb24gI3dl
YmtpdCkuCisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hhbmdlc2V0OgorCisgICAgICAgICJBZGQgYSB1
bml0IHRlc3QgZm9yIGNsaWVudCBjZXJ0aWZpY2F0ZSBhdXRoZW50aWNhdGlvbiIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NzgwMAorICAgICAgICBo
dHRwczovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjQ1MjgxCisKIDIwMTktMDUtMTQgIEFs
ZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQg
YSB1bml0IHRlc3QgZm9yIGNsaWVudCBjZXJ0aWZpY2F0ZSBhdXRoZW50aWNhdGlvbgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpp
bmRleCA2NTkyNGQwNWQ3MzZkY2M4ZmEzMTM3OTY4ZWMwZjljMjY0M2UwMmY5Li5kZTRlNWZjNjkx
MGJjNTA4MWRhNTYxOGZhMGM2NzU4ZDBlNDcyZGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBA
CisyMDE5LTA1LTE0ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKwor
ICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjQ1MjgxLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3ODg3CisKKyAgICAgICAgQnJva2Ug
QVBJIFRlc3QgVGVzdFdlYktpdEFQSS5DaGFsbGVuZ2UuQ2xpZW50Q2VydGlmaWNhdGUKKyAgICAg
ICAgKFJlcXVlc3RlZCBieSBhYWthc2hqYWluIG9uICN3ZWJraXQpLgorCisgICAgICAgIFJldmVy
dGVkIGNoYW5nZXNldDoKKworICAgICAgICAiQWRkIGEgdW5pdCB0ZXN0IGZvciBjbGllbnQgY2Vy
dGlmaWNhdGUgYXV0aGVudGljYXRpb24iCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xOTc4MDAKKyAgICAgICAgaHR0cHM6Ly90cmFjLndlYmtpdC5vcmcv
Y2hhbmdlc2V0LzI0NTI4MQorCiAyMDE5LTA1LTE0ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFw
cGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBDYW5ub3Qgc2Nyb2xsIHRvIGJlZ2lubmluZyBvZiBk
b2N1bWVudCBhZnRlciBzY3JvbGxpbmcgdG8gZW5kIG9mIGRvY3VtZW50IGFuZCB2aWNlIHZlcnNh
IHZpYSBrZXkgY29tbWFuZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3NwaS9jb2NvYS9T
ZWN1cml0eVNQSS5oIGIvU291cmNlL1dURi93dGYvc3BpL2NvY29hL1NlY3VyaXR5U1BJLmgKaW5k
ZXggOTM1N2QwYzhiZWY5MTc3YTc1YzVjZDY4ZTkwNTUyNGNiMmY3M2U4Yy4uOTZlMzBhN2M3ZDI5
NGY0NTVjMDNiMGRlMzdiZTBhNGQxMjEzNWU0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
c3BpL2NvY29hL1NlY3VyaXR5U1BJLmgKKysrIGIvU291cmNlL1dURi93dGYvc3BpL2NvY29hL1Nl
Y3VyaXR5U1BJLmgKQEAgLTI3LDEwICsyNyw3IEBACiAKICNpZiBVU0UoQVBQTEVfSU5URVJOQUxf
U0RLKQogCi0jaW5jbHVkZSA8U2VjdXJpdHkvU2VjQWNjZXNzQ29udHJvbFByaXYuaD4KICNpbmNs
dWRlIDxTZWN1cml0eS9TZWNDZXJ0aWZpY2F0ZVByaXYuaD4KLSNpbmNsdWRlIDxTZWN1cml0eS9T
ZWNJZGVudGl0eVByaXYuaD4KLSNpbmNsdWRlIDxTZWN1cml0eS9TZWNLZXlQcml2Lmg+CiAjaW5j
bHVkZSA8U2VjdXJpdHkvU2VjVGFzay5oPgogI2luY2x1ZGUgPFNlY3VyaXR5L1NlY1RydXN0UHJp
di5oPgogCkBAIC03MCwxMSArNjcsNyBAQCBXVEZfRVhURVJOX0NfQkVHSU4KIAogU2VjVGFza1Jl
ZiBTZWNUYXNrQ3JlYXRlV2l0aEF1ZGl0VG9rZW4oQ0ZBbGxvY2F0b3JSZWYsIGF1ZGl0X3Rva2Vu
X3QpOwogU2VjVGFza1JlZiBTZWNUYXNrQ3JlYXRlRnJvbVNlbGYoQ0ZBbGxvY2F0b3JSZWYpOwot
Q0ZUeXBlUmVmIFNlY1Rhc2tDb3B5VmFsdWVGb3JFbnRpdGxlbWVudChTZWNUYXNrUmVmLCBDRlN0
cmluZ1JlZiBlbnRpdGxlbWVudCwgQ0ZFcnJvclJlZiopOwotU2VjSWRlbnRpdHlSZWYgU2VjSWRl
bnRpdHlDcmVhdGUoQ0ZBbGxvY2F0b3JSZWYsIFNlY0NlcnRpZmljYXRlUmVmLCBTZWNLZXlSZWYp
OwotT1NTdGF0dXMgU2VjS2V5RmluZFdpdGhQZXJzaXN0ZW50UmVmKENGRGF0YVJlZiBwZXJzaXN0
ZW50UmVmLCBTZWNLZXlSZWYqIGxvb2tlZFVwRGF0YSk7Ci1TZWNBY2Nlc3NDb250cm9sUmVmIFNl
Y0FjY2Vzc0NvbnRyb2xDcmVhdGVGcm9tRGF0YShDRkFsbG9jYXRvclJlZiwgQ0ZEYXRhUmVmLCBD
RkVycm9yUmVmKik7Ci1DRkRhdGFSZWYgU2VjQWNjZXNzQ29udHJvbENvcHlEYXRhKFNlY0FjY2Vz
c0NvbnRyb2xSZWYpOworQ0ZUeXBlUmVmIFNlY1Rhc2tDb3B5VmFsdWVGb3JFbnRpdGxlbWVudChT
ZWNUYXNrUmVmLCBDRlN0cmluZ1JlZiBlbnRpdGxlbWVudCwgQ0ZFcnJvclJlZiAqKTsKIAogI2lm
IFBMQVRGT1JNKE1BQykKICNpbmNsdWRlIDxTZWN1cml0eS9TZWNBc24xVHlwZXMuaD4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2NmL0FyZ3VtZW50Q29kZXJzQ0YuY3BwIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvY2YvQXJndW1lbnRDb2RlcnNDRi5jcHAKaW5kZXggZDM1OTI1Yjkz
OTRkYTU4MTcxNzEzOThiODM0YWQ4MzdiMzI2NWE4OC4uZmRiOGU4ODU3NGQzYWQ1M2EyZWFmMzJk
OGFiYTBiMzNlMDk4ZTc0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvY2YvQXJn
dW1lbnRDb2RlcnNDRi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvY2YvQXJndW1lbnRD
b2RlcnNDRi5jcHAKQEAgLTQxLDYgKzQxLDI5IEBACiAjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5k
YXRpb24uaD4KICNlbmRpZgogCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyNpbmNsdWRl
IDxTZWN1cml0eS9TZWNJZGVudGl0eVByaXYuaD4KKyNlbmRpZgorCitleHRlcm4gIkMiIFNlY0lk
ZW50aXR5UmVmIFNlY0lkZW50aXR5Q3JlYXRlKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgU2Vj
Q2VydGlmaWNhdGVSZWYgY2VydGlmaWNhdGUsIFNlY0tleVJlZiBwcml2YXRlS2V5KTsKKworI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyNpbmNs
dWRlIDxTZWN1cml0eS9TZWNLZXlQcml2Lmg+CisjZW5kaWYKKworZXh0ZXJuICJDIiBPU1N0YXR1
cyBTZWNLZXlGaW5kV2l0aFBlcnNpc3RlbnRSZWYoQ0ZEYXRhUmVmIHBlcnNpc3RlbnRSZWYsIFNl
Y0tleVJlZiogbG9va2VkVXBEYXRhKTsKKyNlbmRpZgorCisjaWYgSEFWRShTRUNfQUNDRVNTX0NP
TlRST0wpCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyNpbmNsdWRlIDxTZWN1cml0eS9T
ZWNBY2Nlc3NDb250cm9sUHJpdi5oPgorI2VuZGlmCisKK2V4dGVybiAiQyIgU2VjQWNjZXNzQ29u
dHJvbFJlZiBTZWNBY2Nlc3NDb250cm9sQ3JlYXRlRnJvbURhdGEoQ0ZBbGxvY2F0b3JSZWYgYWxs
b2NhdG9yLCBDRkRhdGFSZWYgZGF0YSwgQ0ZFcnJvclJlZiAqZXJyb3IpOworZXh0ZXJuICJDIiBD
RkRhdGFSZWYgU2VjQWNjZXNzQ29udHJvbENvcHlEYXRhKFNlY0FjY2Vzc0NvbnRyb2xSZWYgYWNj
ZXNzX2NvbnRyb2wpOworI2VuZGlmCisKIG5hbWVzcGFjZSBJUEMgewogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxv
ZwppbmRleCBiZWEzYzRlZThjOTBjMjI3YmIzMDA1ZGE1ZTlhMjM0OGVhMTllNmUzLi5jNGYzNGUx
MDQ2NjA3ZWQxZmM2ZTdkMjVkNzJlNDRiNDhmYzI5M2U3IDEwMDY0NAotLS0gYS9Ub29scy9DaGFu
Z2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTktMDUtMTQg
IENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgorCisgICAgICAgIFVucmV2
aWV3ZWQsIHJvbGxpbmcgb3V0IHIyNDUyODEuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xOTc4ODcKKworICAgICAgICBCcm9rZSBBUEkgVGVzdCBUZXN0
V2ViS2l0QVBJLkNoYWxsZW5nZS5DbGllbnRDZXJ0aWZpY2F0ZQorICAgICAgICAoUmVxdWVzdGVk
IGJ5IGFha2FzaGphaW4gb24gI3dlYmtpdCkuCisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hhbmdlc2V0
OgorCisgICAgICAgICJBZGQgYSB1bml0IHRlc3QgZm9yIGNsaWVudCBjZXJ0aWZpY2F0ZSBhdXRo
ZW50aWNhdGlvbiIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5NzgwMAorICAgICAgICBodHRwczovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjQ1
MjgxCisKIDIwMTktMDUtMTQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAg
ICAgICAgIEFkZCBzdXBwb3J0IGZvciB3ZWJraXQtdGVzdC1ydW5uZXIgb3B0aW9ucyB0byBXUFQg
aW1wb3J0ZXIKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVENQU2VydmVyLmNwcCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVENQU2VydmVyLmNwcAppbmRleCAyYmE3YTYzNDE0NzIxZTg0
OWE0MjZkZGQxY2UyYTMxNjg4NjQ1OTE0Li4zMWIxNDcwMTI2Njg2MDZhMWU0MWVlMWQ1YTEwMmZh
MTA3NTMzZDcyIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1RDUFNlcnZlci5jcHAK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UQ1BTZXJ2ZXIuY3BwCkBAIC0zMCw3ICszMCw2IEBA
CiAjaW5jbHVkZSA8dGhyZWFkPgogI2luY2x1ZGUgPHVuaXN0ZC5oPgogI2luY2x1ZGUgPHd0Zi9P
cHRpb25hbC5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L0Jhc2U2NC5oPgogCiBleHRlcm4gIkMiIHsK
IApAQCAtMzksMTAgKzM4LDYgQEAgc3RydWN0IFg1MDk7CiBzdHJ1Y3QgU1NMX0NUWDsKIHN0cnVj
dCBFVlBfUEtFWTsKIHN0cnVjdCBTU0xfTUVUSE9EOwotc3RydWN0IFg1MDlfU1RPUkVfQ1RYIHsK
LSAgICB2b2lkKiB1bnVzZWQ7Ci0gICAgWDUwOSogY2VydDsKLX07CiBzdHJ1Y3QgcGVtX3Bhc3N3
b3JkX2NiOwogaW50IEJJT19mcmVlKEJJTyopOwogaW50IFNTTF9mcmVlKFNTTCopOwpAQCAtNjEs
MTUgKzU2LDYgQEAgaW50IFNTTF9DVFhfdXNlX1ByaXZhdGVLZXkoU1NMX0NUWCosIEVWUF9QS0VZ
Kik7CiBTU0wqIFNTTF9uZXcoU1NMX0NUWCopOwogaW50IFNTTF9hY2NlcHQoU1NMKik7CiBpbnQg
U1NMX3NldF9mZChTU0wqLCBpbnQpOwotdm9pZCBTU0xfQ1RYX3NldF92ZXJpZnkoU1NMX0NUWCos
IGludCwgaW50ICgqKShpbnQsIFg1MDlfU1RPUkVfQ1RYKikpOwotdm9pZCBTU0xfQ1RYX3NldF9j
ZXJ0X3ZlcmlmeV9jYWxsYmFjayhTU0xfQ1RYKiwgaW50ICgqKShYNTA5X1NUT1JFX0NUWCosIHZv
aWQqKSwgdm9pZCopOwotaW50IFNTTF9nZXRfZXJyb3IoY29uc3QgU1NMKiwgaW50KTsKLWludCBT
U0xfcmVhZChTU0wqLCB2b2lkKiwgaW50KTsKLWludCBTU0xfd3JpdGUoU1NMKiwgY29uc3Qgdm9p
ZCosIGludCk7Ci1pbnQgaTJkX1g1MDkoWDUwOSosIHVuc2lnbmVkIGNoYXIqKik7Ci12b2lkIE9Q
RU5TU0xfZnJlZSh2b2lkKik7Ci0jZGVmaW5lIFNTTF9WRVJJRllfUEVFUiAweDAxCi0jZGVmaW5l
IFNTTF9WRVJJRllfRkFJTF9JRl9OT19QRUVSX0NFUlQgMHgwMgogCiB9IC8vIGV4dGVybiAiQyIK
IApAQCAtMTA2LDEyICs5Miw2IEBAIHRlbXBsYXRlPD4gc3RydWN0IGRlbGV0ZXI8RVZQX1BLRVk+
IHsKICAgICAgICAgRVZQX1BLRVlfZnJlZShrZXkpOwogICAgIH0KIH07Ci10ZW1wbGF0ZTw+IHN0
cnVjdCBkZWxldGVyPHVpbnQ4X3RbXT4gewotICAgIHZvaWQgb3BlcmF0b3IoKSh1aW50OF90KiBi
dWZmZXIpCi0gICAgewotICAgICAgICBPUEVOU1NMX2ZyZWUoYnVmZmVyKTsKLSAgICB9Ci19Owog
CiBUQ1BTZXJ2ZXI6OlRDUFNlcnZlcihGdW5jdGlvbjx2b2lkKFNvY2tldCk+JiYgY29ubmVjdGlv
bkhhbmRsZXIsIHNpemVfdCBjb25uZWN0aW9ucykKICAgICA6IG1fY29ubmVjdGlvbkhhbmRsZXIo
V1RGTW92ZShjb25uZWN0aW9uSGFuZGxlcikpCkBAIC0xMjEsNyArMTAxLDcgQEAgVENQU2VydmVy
OjpUQ1BTZXJ2ZXIoRnVuY3Rpb248dm9pZChTb2NrZXQpPiYmIGNvbm5lY3Rpb25IYW5kbGVyLCBz
aXplX3QgY29ubmVjdGkKIAogVENQU2VydmVyOjpUQ1BTZXJ2ZXIoUHJvdG9jb2wgcHJvdG9jb2ws
IEZ1bmN0aW9uPHZvaWQoU1NMKik+JiYgc2VjdXJlQ29ubmVjdGlvbkhhbmRsZXIpCiB7Ci0gICAg
YXV0byBzdGFydFNlY3VyZUNvbm5lY3Rpb24gPSBbc2VjdXJlQ29ubmVjdGlvbkhhbmRsZXIgPSBX
VEZNb3ZlKHNlY3VyZUNvbm5lY3Rpb25IYW5kbGVyKSwgcHJvdG9jb2xdIChTb2NrZXQgc29ja2V0
KSB7CisgICAgYXV0byBzdGFydFNlY3VyZUNvbm5lY3Rpb24gPSBbc2VjdXJlQ29ubmVjdGlvbkhh
bmRsZXIgPSBXVEZNb3ZlKHNlY3VyZUNvbm5lY3Rpb25IYW5kbGVyKV0gKFNvY2tldCBzb2NrZXQp
IHsKICAgICAgICAgU1NMX2xpYnJhcnlfaW5pdCgpOwogCiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0
cjxTU0xfQ1RYLCBkZWxldGVyPFNTTF9DVFg+PiBjdHgoU1NMX0NUWF9uZXcoU1NMdjIzX3NlcnZl
cl9tZXRob2QoKSkpOwpAQCAtMTQ5LDIwICsxMjksNiBAQCBUQ1BTZXJ2ZXI6OlRDUFNlcnZlcihQ
cm90b2NvbCBwcm90b2NvbCwgRnVuY3Rpb248dm9pZChTU0wqKT4mJiBzZWN1cmVDb25uZWN0aW9u
SAogICAgICAgICBBU1NFUlQoY2VydFg1MDkpOwogICAgICAgICBTU0xfQ1RYX3VzZV9jZXJ0aWZp
Y2F0ZShjdHguZ2V0KCksIGNlcnRYNTA5LmdldCgpKTsKIAotICAgICAgICBpZiAocHJvdG9jb2wg
PT0gUHJvdG9jb2w6OkhUVFBTV2l0aENsaWVudENlcnRpZmljYXRlUmVxdWVzdCkgewotICAgICAg
ICAgICAgU1NMX0NUWF9zZXRfdmVyaWZ5KGN0eC5nZXQoKSwgU1NMX1ZFUklGWV9QRUVSIHwgU1NM
X1ZFUklGWV9GQUlMX0lGX05PX1BFRVJfQ0VSVCwgbnVsbHB0cik7Ci0gICAgICAgICAgICBTU0xf
Q1RYX3NldF9jZXJ0X3ZlcmlmeV9jYWxsYmFjayhjdHguZ2V0KCksIFtdIChYNTA5X1NUT1JFX0NU
WCogc3RvcmVfY3R4LCB2b2lkKikgLT4gaW50IHsKLSAgICAgICAgICAgICAgICB1aW50OF90KiBi
dWZmZXJQb2ludGVyID0gbnVsbHB0cjsKLSAgICAgICAgICAgICAgICBhdXRvIGxlbmd0aCA9IGky
ZF9YNTA5KHN0b3JlX2N0eC0+Y2VydCwgJmJ1ZmZlclBvaW50ZXIpOwotICAgICAgICAgICAgICAg
IHN0ZDo6dW5pcXVlX3B0cjx1aW50OF90W10sIGRlbGV0ZXI8dWludDhfdFtdPj4gYnVmZmVyKGJ1
ZmZlclBvaW50ZXIpOwotICAgICAgICAgICAgICAgIGF1dG8gZXhwZWN0ZWRDZXJ0ID0gdGVzdENl
cnRpZmljYXRlKCk7Ci0gICAgICAgICAgICAgICAgRVhQRUNUX0VRKHN0YXRpY19jYXN0PGludD4o
ZXhwZWN0ZWRDZXJ0LnNpemUoKSksIGxlbmd0aCk7Ci0gICAgICAgICAgICAgICAgZm9yIChpbnQg
aSA9IDA7IGkgPCBsZW5ndGg7ICsraSkKLSAgICAgICAgICAgICAgICAgICAgRVhQRUNUX0VRKGJ1
ZmZlci5nZXQoKVtpXSwgZXhwZWN0ZWRDZXJ0W2ldKTsKLSAgICAgICAgICAgICAgICByZXR1cm4g
MTsKLSAgICAgICAgICAgIH0sIG51bGxwdHIpOwotICAgICAgICB9Ci0KICAgICAgICAgLy8gVGhp
cyBpcyBhIHRlc3Qga2V5IGZyb20gQm9yaW5nU1NMLgogICAgICAgICBjaGFyIGtLZXlQRU1bXSA9
CiAgICAgICAgICItLS0tLUJFR0lOIFJTQSBQUklWQVRFIEtFWS0tLS0tXG4iCkBAIC0xOTgsNyAr
MTY0LDYgQEAgVENQU2VydmVyOjpUQ1BTZXJ2ZXIoUHJvdG9jb2wgcHJvdG9jb2wsIEZ1bmN0aW9u
PHZvaWQoU1NMKik+JiYgc2VjdXJlQ29ubmVjdGlvbkgKIAogICAgIHN3aXRjaCAocHJvdG9jb2wp
IHsKICAgICBjYXNlIFByb3RvY29sOjpIVFRQUzoKLSAgICBjYXNlIFByb3RvY29sOjpIVFRQU1dp
dGhDbGllbnRDZXJ0aWZpY2F0ZVJlcXVlc3Q6CiAgICAgICAgIG1fY29ubmVjdGlvbkhhbmRsZXIg
PSBXVEZNb3ZlKHN0YXJ0U2VjdXJlQ29ubmVjdGlvbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgUHJvdG9jb2w6OkhUVFBTUHJveHk6CkBAIC0yNzQsMTgyICsyMzksNCBAQCBhdXRvIFRDUFNl
cnZlcjo6c29ja2V0QmluZExpc3RlbihzaXplX3QgY29ubmVjdGlvbnMpIC0+IE9wdGlvbmFsPFNv
Y2tldD4KICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogfQogCi10ZW1wbGF0ZTw+IFZlY3Rvcjx1
aW50OF90PiBUQ1BTZXJ2ZXI6OnJlYWQoU29ja2V0IHNvY2tldCkKLXsKLSAgICB1aW50OF90IGJ1
ZmZlclsxMDAwXTsKLSAgICBhdXRvIGJ5dGVzUmVhZCA9IDo6cmVhZChzb2NrZXQsIGJ1ZmZlciwg
c2l6ZW9mKGJ1ZmZlcikpOwotICAgIEFTU0VSVF9VTlVTRUQoYnl0ZXNSZWFkLCBieXRlc1JlYWQg
PiAwKTsKLSAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8c2l6ZV90PihieXRlc1JlYWQpIDwgc2l6ZW9m
KGJ1ZmZlcikpOwotCi0gICAgVmVjdG9yPHVpbnQ4X3Q+IHZlY3RvcjsKLSAgICB2ZWN0b3IuYXBw
ZW5kKGJ1ZmZlciwgYnl0ZXNSZWFkKTsKLSAgICByZXR1cm4gdmVjdG9yOwotfQotCi10ZW1wbGF0
ZTw+IHZvaWQgVENQU2VydmVyOjp3cml0ZShTb2NrZXQgc29ja2V0LCBjb25zdCB2b2lkKiByZXNw
b25zZSwgc2l6ZV90IGxlbmd0aCkKLXsKLSAgICBhdXRvIGJ5dGVzV3JpdHRlbiA9IDo6d3JpdGUo
c29ja2V0LCByZXNwb25zZSwgbGVuZ3RoKTsKLSAgICBFWFBFQ1RfRVEoc3RhdGljX2Nhc3Q8c2l6
ZV90PihieXRlc1dyaXR0ZW4pLCBsZW5ndGgpOwotfQotCi10ZW1wbGF0ZTw+IFZlY3Rvcjx1aW50
OF90PiBUQ1BTZXJ2ZXI6OnJlYWQoU1NMKiBzc2wpCi17Ci0gICAgdWludDhfdCBidWZmZXJbMTAw
MF07Ci0gICAgYXV0byBieXRlc1JlYWQgPSBTU0xfcmVhZChzc2wsIGJ1ZmZlciwgc2l6ZW9mKGJ1
ZmZlcikpOwotICAgIEFTU0VSVF9VTlVTRUQoYnl0ZXNSZWFkLCBieXRlc1JlYWQgPiAwKTsKLSAg
ICBBU1NFUlQoc3RhdGljX2Nhc3Q8c2l6ZV90PihieXRlc1JlYWQpIDwgc2l6ZW9mKGJ1ZmZlcikp
OwotCi0gICAgVmVjdG9yPHVpbnQ4X3Q+IHZlY3RvcjsKLSAgICB2ZWN0b3IuYXBwZW5kKGJ1ZmZl
ciwgYnl0ZXNSZWFkKTsKLSAgICByZXR1cm4gdmVjdG9yOwotfQotCi10ZW1wbGF0ZTw+IHZvaWQg
VENQU2VydmVyOjp3cml0ZShTU0wqIHNzbCwgY29uc3Qgdm9pZCogcmVzcG9uc2UsIHNpemVfdCBs
ZW5ndGgpCi17Ci0gICAgYXV0byBieXRlc1dyaXR0ZW4gPSBTU0xfd3JpdGUoc3NsLCByZXNwb25z
ZSwgbGVuZ3RoKTsKLSAgICBFWFBFQ1RfRVEoc3RhdGljX2Nhc3Q8c2l6ZV90PihieXRlc1dyaXR0
ZW4pLCBsZW5ndGgpOwotfQotCi12b2lkIFRDUFNlcnZlcjo6cmVzcG9uZFdpdGhDaGFsbGVuZ2VU
aGVuT0soU29ja2V0IHNvY2tldCkKLXsKLSAgICByZWFkKHNvY2tldCk7Ci0gICAgCi0gICAgY29u
c3QgY2hhciogY2hhbGxlbmdlSGVhZGVyID0KLSAgICAiSFRUUC8xLjEgNDAxIFVuYXV0aG9yaXpl
ZFxyXG4iCi0gICAgIkRhdGU6IFNhdCwgMjMgTWFyIDIwMTkgMDY6Mjk6MDEgR01UXHJcbiIKLSAg
ICAiQ29udGVudC1MZW5ndGg6IDBcclxuIgotICAgICJXV1ctQXV0aGVudGljYXRlOiBCYXNpYyBy
ZWFsbT1cInRlc3RyZWFsbVwiXHJcblxyXG4iOwotICAgIHdyaXRlKHNvY2tldCwgY2hhbGxlbmdl
SGVhZGVyLCBzdHJsZW4oY2hhbGxlbmdlSGVhZGVyKSk7Ci0gICAgCi0gICAgcmVhZChzb2NrZXQp
OwotICAgIAotICAgIGNvbnN0IGNoYXIqIHJlc3BvbnNlSGVhZGVyID0KLSAgICAiSFRUUC8xLjEg
MjAwIE9LXHJcbiIKLSAgICAiQ29udGVudC1MZW5ndGg6IDEzXHJcblxyXG4iCi0gICAgIkhlbGxv
LCBXb3JsZCEiOwotICAgIHdyaXRlKHNvY2tldCwgcmVzcG9uc2VIZWFkZXIsIHN0cmxlbihyZXNw
b25zZUhlYWRlcikpOwotfQotCi12b2lkIFRDUFNlcnZlcjo6cmVzcG9uZFdpdGhPSyhTU0wqIHNz
bCkKLXsKLSAgICByZWFkKHNzbCk7Ci0gICAgCi0gICAgY29uc3QgY2hhciogcmVwbHkgPSAiIgot
ICAgICJIVFRQLzEuMSAyMDAgT0tcclxuIgotICAgICJDb250ZW50LUxlbmd0aDogMzRcclxuXHJc
biIKLSAgICAiPHNjcmlwdD5hbGVydCgnc3VjY2VzcyEnKTwvc2NyaXB0PiI7Ci0gICAgd3JpdGUo
c3NsLCByZXBseSwgc3RybGVuKHJlcGx5KSk7Ci19Ci0KLVZlY3Rvcjx1aW50OF90PiBUQ1BTZXJ2
ZXI6OnRlc3RDZXJ0aWZpY2F0ZSgpCi17Ci0gICAgLy8gQ2VydGlmaWNhdGUgYW5kIHByaXZhdGUg
a2V5IHdlcmUgZ2VuZXJhdGVkIGJ5IHJ1bm5pbmcgdGhpcyBjb21tYW5kOgotICAgIC8vIG9wZW5z
c2wgcmVxIC14NTA5IC1uZXdrZXkgcnNhOjQwOTYgLWtleW91dCBrZXkucGVtIC1vdXQgY2VydC5w
ZW0gLWRheXMgMzY1IC1ub2RlcwotICAgIC8vIGFuZCBlbnRlcmluZyB0aGlzIGluZm9ybWF0aW9u
OgotICAgIC8qCi0gICAgIENvdW50cnkgTmFtZSAoMiBsZXR0ZXIgY29kZSkgW106VVMKLSAgICAg
U3RhdGUgb3IgUHJvdmluY2UgTmFtZSAoZnVsbCBuYW1lKSBbXTpOZXcgTWV4aWNvCi0gICAgIExv
Y2FsaXR5IE5hbWUgKGVnLCBjaXR5KSBbXTpTYW50YSBGZQotICAgICBPcmdhbml6YXRpb24gTmFt
ZSAoZWcsIGNvbXBhbnkpIFtdOlNlbGYKLSAgICAgT3JnYW5pemF0aW9uYWwgVW5pdCBOYW1lIChl
Zywgc2VjdGlvbikgW106TXlzZWxmCi0gICAgIENvbW1vbiBOYW1lIChlZywgZnVsbHkgcXVhbGlm
aWVkIGhvc3QgbmFtZSkgW106TWUKLSAgICAgRW1haWwgQWRkcmVzcyBbXTptZUBleGFtcGxlLmNv
bQotICAgICAqLwotICAgIAotICAgIFN0cmluZyBwZW1FbmNvZGVkQ2VydGlmaWNhdGUoIiIKLSAg
ICAiTUlJRmdEQ0NBMmdDQ1FDS0hpUFJVNU1RdURBTkJna3Foa2lHOXcwQkFRc0ZBRENCZ1RFTE1B
a0dBMVVFQmhNQyIKLSAgICAiVlZNeEV6QVJCZ05WQkFnTUNrNWxkeUJOWlhocFkyOHhFVEFQQmdO
VkJBY01DRk5oYm5SaElFWmxNUTB3Q3dZRCIKLSAgICAiVlFRS0RBUlRaV3htTVE4d0RRWURWUVFM
REFaTmVYTmxiR1l4Q3pBSkJnTlZCQU1NQWsxbE1SMHdHd1lKS29aSSIKLSAgICAiaHZjTkFRa0JG
ZzV0WlVCbGVHRnRjR3hsTG1OdmJUQWVGdzB4T1RBek1qTXdOVFV3TVRSYUZ3MHlNREF6TWpJdyIK
LSAgICAiTlRVd01UUmFNSUdCTVFzd0NRWURWUVFHRXdKVlV6RVRNQkVHQTFVRUNBd0tUbVYzSUUx
bGVHbGpiekVSTUE4RyIKLSAgICAiQTFVRUJ3d0lVMkZ1ZEdFZ1JtVXhEVEFMQmdOVkJBb01CRk5s
YkdZeER6QU5CZ05WQkFzTUJrMTVjMlZzWmpFTCIKLSAgICAiTUFrR0ExVUVBd3dDVFdVeEhUQWJC
Z2txaGtpRzl3MEJDUUVXRG0xbFFHVjRZVzF3YkdVdVkyOXRNSUlDSWpBTiIKLSAgICAiQmdrcWhr
aUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBM3JoTjRTUGc4VlkvUHRHRE5LWTNUOUpJU2di
eSIKLSAgICAiOFlHTUp4MHZPK1laRlptM0czZnNUVXN5dkR5RUh3cXA1YWJDWlJCL0J5MVB3V2tO
cmZ4bi9YUDhQMDM0SlBsRSIKLSAgICAiNmlyVml1QVlRcnFVaDZrN1pSOENwT001R0VjUlpnQVVK
R0dRd05sT2tFd2FIbk1HYzhTc0h1cmdEUGg1WEJwZyIKLSAgICAiYkR5dGQ3Qkp1QjFOb0kvS0pt
aGNhamtBdVYzdmFyUyt1UExvZlBITnFlK2NMOGhObmpaUXdIV2FyUDQ1a3M0ZSIKLSAgICAiQmNP
RDd0d3F4dUhuVm0vRldFcnBZOFdzNXMxTXJQVGhVZERhaGpFTWYrWWZESjlLTDh5MzA0eVM4Sjhm
ZUN4WSIKLSAgICAiZmNINEJ2Z0x0Sm1CTkhKZ2ozZU5EL0VNWmpKZ3oyRnNCanJKazhrS0QzMWN3
KzRXcDhVRjRza1dYQ2Y0NittTiIKLSAgICAiT0hwMTNQZVNDWkx5RjRaQUhhelVWa25EUGNjMllO
cldWVjFpNm4zVDE1a0kwVDVaN2JzdGRtQUx1U2tFMmN1SiIKLSAgICAiU1ZOTzZnUitac1ZSVG5l
dVF4d1dUVTBNTkVoQVBGT1gyQmhHUDVlaXNnRVV6a254TUpkZEZEbjlXeGtsdTFKaCIKLSAgICAi
Z2t6QVNBLyszQW1sckZaTVBoT2hqRXVsMHpqZ05SNVJCbDFHOEh6OTJMQXg1VUVEQnRkTGc3MUkr
SThBelFPaCIKLSAgICAiZDZMdEJla0VDeEExNnBTYXBwZzV2Y1c5Wi84TjZabHNIbloyRnp0QTBu
Q09mbGtvTzlpZWpPcGN1Rk40RVZZRCIKLSAgICAieEl0d2N0S3cxTENlTkQvczRrbW9SUm5YYlg3
azlPNmNJMVVVV001OTVHc3U1dFBhMzNNNUFaRkNhdjJnT1Z1WSIKLSAgICAiZGpwcFMwSE9mbzVo
djZjQ0F3RUFBVEFOQmdrcWhraUc5dzBCQVFzRkFBT0NBZ0VBWThFV2FBRkVmdzdPVitvRCIKLSAg
ICAiWFVaU0lZWHEzRUgyRTVwM3EzOEFoSU9MUmpCdUIrdXR5dTdRNnJ4TU1IdXcyVHRzTit6YkFS
N3lyamZzc2VBMyIKLSAgICAiNFRNMXhlNE5rN05WTkhSb1pRK0MwSXFmOWZ2Y2lvTXZUMXRUcm1h
ME1oS1NqRlFweCtQdnlMVmJEN1lkUDg2TCIKLSAgICAibWVlaEtxVTdoMXBMR0FpR3dqb2FaOVli
aDZLdXEvTVRBSHkzRDgrd2s3QjM2VkJ4RjZkaVZsVVBaSlpRV0tKeSIKLSAgICAiTUt5OUczc3pl
MVpHdDlXZUUwQU12a04ySEllZjBIVEtDVVozZUJ2ZWNPTWlqeEwwV2hXbzVReWY1azZ5bENhVSIK
LSAgICAiMmZ4K004RGZEY3dGbzd0U2dMeFNLM0dDRnB4UGZpRHQ2UWs4Yzl0UW41UzFnWTN0NkxK
dXdWQ0Z3VUlYbE5rQiIKLSAgICAiSkQ3K2NaMVovdENyRWh6ajNZQ2swdVVVOENpZm9VKzRGRytI
R0ZQK1NQenRzWUUwNTVtU2ozK0VzaCtveW9WQiIKLSAgICAiZ0JIOTBzRTJUMWkwZU5JOGY2MW9T
Z3dZRmVIc2Y3ZkM3MVhFWExGUitHd05kbXdxbG13bERaRXBUdTdCb05OKyIKLSAgICAicTcrVGZr
MU1Sa0psTDFQSDZZdS9JUGhaaU5oNHR5SXFET3RsWWZ6cDU3N0ErT1VVK3E1UFBSRlJJc3FoZU94
dCIKLSAgICAibU5sSHg0VXpkNFUzSVRmbW9nSmF6anF3WU8ydmlCWlk0alVRbXlaczc1ZUgvamlV
RkhXUnNoYTNBZG5XNUxXYSIKLSAgICAiRzNQRm5ZYlc4dXJIME5TSkcvVysvOURBK1k3QWEwY3M0
VFBwdUJHWjBOVTFXOTRPb0NNbzRsa082SC95NkxldSIKLSAgICAiM3ZqWkQzeTlrWms3bXJlOVhI
d2tJOE1kSzVzPSIpOwotICAgIAotICAgIFZlY3Rvcjx1aW50OF90PiB2ZWN0b3I7Ci0gICAgYmFz
ZTY0RGVjb2RlKHBlbUVuY29kZWRDZXJ0aWZpY2F0ZSwgdmVjdG9yLCBXVEY6OkJhc2U2NERlY29k
ZU9wdGlvbnM6OkJhc2U2NERlZmF1bHQpOwotICAgIHJldHVybiB2ZWN0b3I7Ci19Ci0KLVZlY3Rv
cjx1aW50OF90PiBUQ1BTZXJ2ZXI6OnRlc3RQcml2YXRlS2V5KCkKLXsKLSAgICBTdHJpbmcgcGVt
RW5jb2RlZFByaXZhdGVLZXkoIiIKLSAgICAiTUlJSlFnSUJBREFOQmdrcWhraUc5dzBCQVFFRkFB
U0NDU3d3Z2drb0FnRUFBb0lDQVFEZXVFM2hJK0R4Vmo4KyIKLSAgICAiMFlNMHBqZFAwa2hLQnZM
eGdZd25IUzg3NWhrVm1iY2JkK3hOU3pLOFBJUWZDcW5scHNKbEVIOEhMVS9CYVEydCIKLSAgICAi
L0dmOWMvdy9UZmdrK1VUcUt0V0s0QmhDdXBTSHFUdGxId0trNHprWVJ4Rm1BQlFrWVpEQTJVNlFU
Qm9lY3daeiIKLSAgICAieEt3ZTZ1QU0rSGxjR21Cc1BLMTNzRW00SFUyZ2o4b21hRnhxT1FDNVhl
OXF0TDY0OHVoODhjMnA3NXd2eUUyZSIKLSAgICAiTmxEQWRacXMvam1Temg0Rnc0UHUzQ3JHNGVk
V2I4VllTdWxqeGF6bXpVeXM5T0ZSME5xR01ReC81aDhNbjBvdiIKLSAgICAiekxmVGpKTHdueDk0
TEZoOXdmZ0crQXUwbVlFMGNtQ1BkNDBQOFF4bU1tRFBZV3dHT3NtVHlRb1BmVnpEN2hhbiIKLSAg
ICAieFFYaXlSWmNKL2pyNlkwNGVuWGM5NUlKa3ZJWGhrQWRyTlJXU2NNOXh6WmcydFpWWFdMcWZk
UFhtUWpSUGxudCIKLSAgICAidXkxMllBdTVLUVRaeTRsSlUwN3FCSDVteFZGT2Q2NURIQlpOVFF3
MFNFQThVNWZZR0VZL2w2S3lBUlRPU2ZFdyIKLSAgICAibDEwVU9mMWJHU1c3VW1HQ1RNQklELzdj
Q2FXc1ZrdytFNkdNUzZYVE9PQTFIbEVHWFVid2ZQM1lzREhsUVFNRyIKLSAgICAiMTB1RHZVajRq
d0ROQTZGM291MEY2UVFMRURYcWxKcW1tRG05eGIxbi93M3BtV3dlZG5ZWE8wRFNjSTUrV1NnNyIK
LSAgICAiMko2TTZseTRVM2dSVmdQRWkzQnkwckRVc0o0MFAremlTYWhGR2RkdGZ1VDA3cHdqVlJS
WXpuM2theTdtMDlyZiIKLSAgICAiY3prQmtVSnEvYUE1VzVoMk9tbExRYzUram1HL3B3SURBUUFC
QW9JQ0FHcmEvQ3AvZjBYcXZrOVNUK1BydDIvcCIKLSAgICAia050TGVEWGNsTFNUY1AwSkNaSHVm
UWFGdys3Vm5GTHBxZTRHdkxxOUJsbGN6OFZPdlF3cmJlL0N3TlcrVnhDOCIKLSAgICAiUk1qZ2Uy
cnFBQ2d3R2hPeDF0ODdsNDZOa1VRdzdFeTBsQ2xlOGtyK01HZ0dHb1pxck1GZEtJUlVvTXY0bm1R
NiIKLSAgICAidG1jMUZIdjVwTFJlOVErTHA1bllRd0dvWW1ab1VPdWVvT2FPTDA4bTQ5cEdYUWtp
TjhwSkRNeFNmTzNKdnRzdSIKLSAgICAiNGNxSWI2a09RL2RPMUlzMUNUdlVSbGQxSVlMSDdZdVNo
aTRaRXgyZzJhYzJVeXZ0NllteHh2TW1BakJTS3BHZCIKLSAgICAibG9pZXBobzMvTnJER1VLZHYz
cTlRWXl6ckE4dzlHVDMyTERHcWdCWEppMXNjQkk4Y0V4a3A2UDRpRGxsaHY3cyIKLSAgICAidlpz
c3B2b2JSSmEzTzF6azg2M0xIWGEyNEpDbnl1emltcWV6WjJPbGg3bDRvbEhvWUQ2VUZDOWpmZDRL
Y0hSZyIKLSAgICAiMWM0c3lxdC9uOEFLLzFzMWVCZlM5ZHpiNUNmanQ5TXRLWXNseHZMenExV3dP
SU53ejhySVl1UmkwUGNMbTlocyIKLSAgICAibCtVMHUvekIzN2VNZ3Y2K2l3RFhrMWZTamJ1WXNF
L2JFVFdZa25LR05GRkw1SlNpS1Y3V0NwbWdOVFRyckU0SyIKLSAgICAiUzhFNmhSOXVQT0Fhb3c3
dlBDQ3Q0eExYLzQ4bDJFSTZaZXE2cU9wcTFsSjJxY3k4cjR0eXVRZ05STFFNa1pnMSIKLSAgICAi
QXhRbDZ2blE4Q3U0aXUrTkloZWYweTlaN3FrZk52WmVDajVHbEZCOWMyWWpWOFkybWRXZkpCNHFX
SzNaLytNSiIKLSAgICAiUU9UQ0tSejcvTHhMTkJVZXBSakpBb0lCQVFEM1pzVjV0V1U5WlNLY1ZK
OURDN1RaazBQK2xoY2lzWnIwbkwwdCIKLSAgICAiUFF1UU8rcEh2UEkxTXFSbk5za0hKaHlQbnFW
Q2krZHA4OXRLL0l0NTkwVUxsOG9zNlVDMUZoeXRCUG9UMVlQZCIKLSAgICAiV0dXZXAycE9jN2JW
cGk0aXAzMXkrSW1mZ2VaeUp0TUFUZG1lM2tCUEFPZTVOR0U5R2lnL2w1bnFMeWIwMnNkMSIKLSAg
ICAiUVc3TzBHZHFMeDNEcEx3NFNMbGhNZjZhRTB1R1JTOHNmQjA4NWU0REduNTRPMndFVnVTWnFa
bDVOTkVmMzVSeiIKLSAgICAiWGdpbTNoK1JXRjFaRlNRempCL3NtTjBaaCt2M0l6N3ZFSjFoMHl3
VjZvK0d6dkhrUDlIRTZnTElodHlWOE9FdyIKLSAgICAidmx5WWsxR2E3cFVWR1JoOG84T01lNlJS
OURRaTdKcUM0ZUk3R2NrbUJ6YXF6SmNEQW9JQkFRRG1kZTZBVGV3MyIKLSAgICAiSDliUUs2eG5i
TUluY3ovQ09wSUlTZGxjRmIyM0FIR0ViNGI0VmhKRkJOd3hyTkw2dEhLU0ZMZVlaRkxoVGRoeCIK
LSAgICAiUGZYeVVMSE5mNW96ZEVrbDBXcmxlcm9EZG9nYkN5V2c1dUpwOS9RNjhzYndiR3I4Q0Fs
TzdaSFlUcmp1UWYxSyIKLSAgICAiQVM5cENtNzdLUDNrMmQzVWxHK3BlbERqWExvQnppWHEwTmp4
SnBNejQ1dnJJeDhyU1d6Rk5qTUdqWFQzZlhhUyIKLSAgICAiOTYyay8wQVhlaTUvYmZ1aEJ4bG03
UG5pMGJRSklXRmtlYVV1R2xyT2FIRFJ4VWlYMXI5SVpTOXd2NWxrMVB0ZyIKLSAgICAiaWRwYmNX
eXcxOGNGR1R2amRLaFJiWkg4RXNibXptTk5zQ0dkZ0NNcUZrS1lzVzE2UUtvQ2ovTkFvdkkzbjBx
biIKLSAgICAiNlZvUmEwc0dtVEdOQW9JQkFDbC9tcVpFc0J1eFNESHkyOWdTTVo3QlhnbHBRYTQz
SG1mamxyUHM1bkNtTERFbSIKLSAgICAiVjNabTdUN0c2TWVETkEwL0xqZFFZbHZhWkxGYVZVYjdI
Q0RLc0VZQ1JqRlo2U3Q0aHo0bWRYeitZK1ZON2I0RiIKLSAgICAiR09rVGUrK2lLcC9MWXNKWHRz
RDFGRFdiMldJVm83SGMxQUd6OEkrZ1FKb1NJdVl1VEptTHpTTTArNUpEVU9WMSIKLSAgICAieThk
U2JhUC9SdUV2MHFZamtHcVFWazVlNzBTVXlPektWK1p4Q1RoZEh2Rkxpb3ZUT1RUZ2V2VXpFNzV4
eWRmRyIKLSAgICAiZTdvQ210VHVyemd2bC82OVZ1NVlnaWoxbjRDV1BISGNxNENRVy9ET1o3QmhG
R0J3aHJXNzl2b0hKRjhQYndQTyIKLSAgICAiKzBEVHVkREdZM25BRDVzVG5GOHpVdU9iWWloSnRm
emovdDU5Zk9NQ2dnRUJBSVl1dUJVQVNiNjJ6UTRidjUvZyIKLSAgICAiVlJNL0tTcGZpOU5EbkVq
Zlo3eDdoNXpDaXVWZ3gvWmpwQWxRUk84dnpWMThyb0VPT0t0eDljbkpkOEFFZCtIYyIKLSAgICAi
bjkzQm9TMWh4MG1oc1ZoKzFUUlp3eWp5QlhZSnBxd0Qyd3oxTXoxWE9JUTZFcWJNL3lQS1REMmdm
d2c3eU81MyIKLSAgICAicVl4cnhac1dhZ1ZWY0c5UStBUkJFUmF0VHdMcG9OK2ZjSkx4dWg0ci9D
YS9MZXBzeG1Pckt6VGEvTUdLMUxoVyIKLSAgICAicldnSWsyL29nRVBMU3B0ajJkMVBFRE8rR0F6
Rno0VktqaFcxTmxVaDlmR2k2SUpQTEhMbkJ3M29kYmkwUzhLVCIKLSAgICAiZ0E5WjUrTEJjNWNs
b3RBUDVydFFBOFdoL1pDRW9QVEtUVEEyYmpXMkhNYXRKY2JHbVIwRnBDUXIzQU0wWTFTTyIKLSAg
ICAiTWFrQ2dnRUFMcnU2UVo2WVV3SkpHNDVIMWVxL3JQZERZOHRxcWpKVlZpS29CVnZ6S2ovWGZK
WllFVlFpSXc1cCIKLSAgICAidW9HaERveUZ1RlVlSWgvZDFKYzJJcnV5Mldqb09raVFZdEl1Z0RI
SHhScmtMZFFjalBobENUQ0UvbW15U0p0KyIKLSAgICAiYmtVYmlISWJROGRKNXlqOFNLcjBiSHpx
RXRPeTkvSmVSamtZR0hDNmJWV3BxNUZBMk1CaGY0ZE5qSjRVRGxuVCIKLSAgICAidnVlUGNUanI3
bm5mWTFzenR2ZlZsOUQ4ZG1nVCtUQm5PT1Y2eVdqMWdtNWJTMUR4UVNMZ05tdEt4Sjh0QWgydSIK
LSAgICAiZEVPYnZjcFNoUDIySXRPVmpTYW1wUnVBdVJHMjZaZW1FYkdDSTNKNk1xeDN5Nm0rNkh3
dWx0c2d0ZHpEZ3JGZSIKLSAgICAicUpmVThiYmRidTJwaTQ3WTRGZEpLMEhMZmZsNVJ3PT0iKTsK
LQotICAgIFZlY3Rvcjx1aW50OF90PiB2ZWN0b3I7Ci0gICAgYmFzZTY0RGVjb2RlKHBlbUVuY29k
ZWRQcml2YXRlS2V5LCB2ZWN0b3IsIFdURjo6QmFzZTY0RGVjb2RlT3B0aW9uczo6QmFzZTY0RGVm
YXVsdCk7Ci0gICAgcmV0dXJuIHZlY3RvcjsKLX0KLSAgICAKIH0gLy8gbmFtZXNwYWNlIFRlc3RX
ZWJLaXRBUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVENQU2VydmVyLmggYi9U
b29scy9UZXN0V2ViS2l0QVBJL1RDUFNlcnZlci5oCmluZGV4IDY2NjhjNzM1YzlmNDg2YWY4NTlk
MDNmYjA3MzdlODljYWI4ZjgxYWYuLmZiZTgxYTI4ZWQ0ZjRhY2YxMGUzN2M1OWU4ZDYyOGNkNTZj
NmU4YjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVENQU2VydmVyLmgKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UQ1BTZXJ2ZXIuaApAQCAtMjksNyArMjksMTEgQEAKICNpbmNs
dWRlIDx3dGYvRnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKK2V4dGVybiAi
QyIgewogc3RydWN0IFNTTDsKK2ludCBTU0xfcmVhZChTU0wqLCB2b2lkKiwgaW50KTsKK2ludCBT
U0xfd3JpdGUoU1NMKiwgY29uc3Qgdm9pZCosIGludCk7Cit9CiAKIG5hbWVzcGFjZSBUZXN0V2Vi
S2l0QVBJIHsKIApAQCAtNDAsMjUgKzQ0LDE0IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3Rl
eHByIFBvcnQgSW52YWxpZFBvcnQgPSAwOwogICAgIAogICAgIFRDUFNlcnZlcihGdW5jdGlvbjx2
b2lkKFNvY2tldCk+JiYsIHNpemVfdCBjb25uZWN0aW9ucyA9IDEpOwotICAgIGVudW0gY2xhc3Mg
UHJvdG9jb2wgOiB1aW50OF90IHsKLSAgICAgICAgSFRUUFMsCi0gICAgICAgIEhUVFBTUHJveHks
Ci0gICAgICAgIEhUVFBTV2l0aENsaWVudENlcnRpZmljYXRlUmVxdWVzdCwKKyAgICBlbnVtIGNs
YXNzIFByb3RvY29sIDogYm9vbCB7CisgICAgICAgIEhUVFBTLCBIVFRQU1Byb3h5CiAgICAgfTsK
ICAgICBUQ1BTZXJ2ZXIoUHJvdG9jb2wsIEZ1bmN0aW9uPHZvaWQoU1NMKik+JiYpOwogICAgIH5U
Q1BTZXJ2ZXIoKTsKICAgICAKICAgICBQb3J0IHBvcnQoKSBjb25zdCB7IHJldHVybiBtX3BvcnQ7
IH0KICAgICAKLSAgICBzdGF0aWMgdm9pZCByZXNwb25kV2l0aE9LKFNTTCopOwotICAgIHN0YXRp
YyB2b2lkIHJlc3BvbmRXaXRoQ2hhbGxlbmdlVGhlbk9LKFNvY2tldCk7Ci0KLSAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBUPiBzdGF0aWMgVmVjdG9yPHVpbnQ4X3Q+IHJlYWQoVCk7Ci0gICAgdGVtcGxh
dGU8dHlwZW5hbWUgVD4gc3RhdGljIHZvaWQgd3JpdGUoVCwgY29uc3Qgdm9pZCosIHNpemVfdCk7
Ci0KLSAgICBzdGF0aWMgVmVjdG9yPHVpbnQ4X3Q+IHRlc3RQcml2YXRlS2V5KCk7Ci0gICAgc3Rh
dGljIFZlY3Rvcjx1aW50OF90PiB0ZXN0Q2VydGlmaWNhdGUoKTsKLSAgICAKIHByaXZhdGU6CiAg
ICAgT3B0aW9uYWw8U29ja2V0PiBzb2NrZXRCaW5kTGlzdGVuKHNpemVfdCBjb25uZWN0aW9ucyk7
CiAgICAgdm9pZCBsaXN0ZW5Gb3JDb25uZWN0aW9ucyhzaXplX3QgY29ubmVjdGlvbnMpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2Uu
bW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NoYWxsZW5nZS5tbQpp
bmRleCA1NTFiYmEzNjk3MDMwN2QwNGI4NTkyZjFkOTNjODhmMzllNWJiOWViLi44MTZhZmI1NjU1
NTJiNjc0YTMzNGQzY2U3MTc3YjE5YTQ4NmMyYmU3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NoYWxsZW5nZS5tbQorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NoYWxsZW5nZS5tbQpAQCAtMzMsMTcgKzMzLDE0MSBA
QAogI2ltcG9ydCA8V2ViS2l0L1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJL
aXQvV0tXZWJzaXRlRGF0YVJlY29yZFByaXZhdGUuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIu
aD4KLSNpbXBvcnQgPHd0Zi9zcGkvY29jb2EvU2VjdXJpdHlTUEkuaD4KIAogc3RhdGljIGJvb2wg
bmF2aWdhdGlvbkZpbmlzaGVkOwogCi1zdGF0aWMgUmV0YWluUHRyPE5TVVJMQ3JlZGVudGlhbD4g
Y3JlZGVudGlhbFdpdGhJZGVudGl0eSgpCitzdGF0aWMgdm9pZCByZXNwb25kV2l0aENoYWxsZW5n
ZVRoZW5PSyhpbnQgc29ja2V0KQogewotICAgIGF1dG8gY2VydGlmaWNhdGVCeXRlcyA9IFRlc3RX
ZWJLaXRBUEk6OlRDUFNlcnZlcjo6dGVzdENlcnRpZmljYXRlKCk7Ci0gICAgYXV0byBjZXJ0aWZp
Y2F0ZSA9IGFkb3B0Q0YoU2VjQ2VydGlmaWNhdGVDcmVhdGVXaXRoRGF0YShudWxscHRyLCAoX19i
cmlkZ2UgQ0ZEYXRhUmVmKVtOU0RhdGEgZGF0YVdpdGhCeXRlczpjZXJ0aWZpY2F0ZUJ5dGVzLmRh
dGEoKSBsZW5ndGg6Y2VydGlmaWNhdGVCeXRlcy5zaXplKCldKSk7CisgICAgY2hhciByZWFkQnVm
ZmVyWzEwMDBdOworICAgIGF1dG8gYnl0ZXNSZWFkID0gOjpyZWFkKHNvY2tldCwgcmVhZEJ1ZmZl
ciwgc2l6ZW9mKHJlYWRCdWZmZXIpKTsKKyAgICBFWFBFQ1RfR1QoYnl0ZXNSZWFkLCAwKTsKKyAg
ICBFWFBFQ1RfVFJVRShzdGF0aWNfY2FzdDxzaXplX3Q+KGJ5dGVzUmVhZCkgPCBzaXplb2YocmVh
ZEJ1ZmZlcikpOwogICAgIAotICAgIGF1dG8gcHJpdmF0ZUtleUJ5dGVzID0gVGVzdFdlYktpdEFQ
STo6VENQU2VydmVyOjp0ZXN0UHJpdmF0ZUtleSgpOwotICAgIE5TRGF0YSAqZGVyRW5jb2RlZFBy
aXZhdGVLZXkgPSBbTlNEYXRhIGRhdGFXaXRoQnl0ZXM6cHJpdmF0ZUtleUJ5dGVzLmRhdGEoKSBs
ZW5ndGg6cHJpdmF0ZUtleUJ5dGVzLnNpemUoKV07CisgICAgY29uc3QgY2hhciogY2hhbGxlbmdl
SGVhZGVyID0KKyAgICAiSFRUUC8xLjEgNDAxIFVuYXV0aG9yaXplZFxyXG4iCisgICAgIkRhdGU6
IFNhdCwgMjMgTWFyIDIwMTkgMDY6Mjk6MDEgR01UXHJcbiIKKyAgICAiQ29udGVudC1MZW5ndGg6
IDBcclxuIgorICAgICJXV1ctQXV0aGVudGljYXRlOiBCYXNpYyByZWFsbT1cInRlc3RyZWFsbVwi
XHJcblxyXG4iOworICAgIGF1dG8gYnl0ZXNXcml0dGVuID0gOjp3cml0ZShzb2NrZXQsIGNoYWxs
ZW5nZUhlYWRlciwgc3RybGVuKGNoYWxsZW5nZUhlYWRlcikpOworICAgIEVYUEVDVF9FUShzdGF0
aWNfY2FzdDxzaXplX3Q+KGJ5dGVzV3JpdHRlbiksIHN0cmxlbihjaGFsbGVuZ2VIZWFkZXIpKTsK
KyAgICAKKyAgICBieXRlc1JlYWQgPSA6OnJlYWQoc29ja2V0LCByZWFkQnVmZmVyLCBzaXplb2Yo
cmVhZEJ1ZmZlcikpOworICAgIEVYUEVDVF9HVChieXRlc1JlYWQsIDApOworICAgIEVYUEVDVF9U
UlVFKHN0YXRpY19jYXN0PHNpemVfdD4oYnl0ZXNSZWFkKSA8IHNpemVvZihyZWFkQnVmZmVyKSk7
CisgICAgCisgICAgY29uc3QgY2hhciogcmVzcG9uc2VIZWFkZXIgPQorICAgICJIVFRQLzEuMSAy
MDAgT0tcclxuIgorICAgICJDb250ZW50LUxlbmd0aDogMTNcclxuXHJcbiIKKyAgICAiSGVsbG8s
IFdvcmxkISI7CisgICAgYnl0ZXNXcml0dGVuID0gOjp3cml0ZShzb2NrZXQsIHJlc3BvbnNlSGVh
ZGVyLCBzdHJsZW4ocmVzcG9uc2VIZWFkZXIpKTsKKyAgICBFWFBFQ1RfRVEoc3RhdGljX2Nhc3Q8
c2l6ZV90PihieXRlc1dyaXR0ZW4pLCBzdHJsZW4ocmVzcG9uc2VIZWFkZXIpKTsKK30KKworI2lm
IFBMQVRGT1JNKE1BQykKKworc3RhdGljIHN0ZDo6cGFpcjxSZXRhaW5QdHI8TlNVUkxDcmVkZW50
aWFsPiwgUmV0YWluUHRyPE5TU3RyaW5nPj4gY3JlZGVudGlhbFdpdGhJZGVudGl0eUFuZEtleWNo
YWluUGF0aCgpCit7CisgICAgLy8gQ2VydGlmaWNhdGUgYW5kIHByaXZhdGUga2V5IHdlcmUgZ2Vu
ZXJhdGVkIGJ5IHJ1bm5pbmcgdGhpcyBjb21tYW5kOgorICAgIC8vIG9wZW5zc2wgcmVxIC14NTA5
IC1uZXdrZXkgcnNhOjQwOTYgLWtleW91dCBrZXkucGVtIC1vdXQgY2VydC5wZW0gLWRheXMgMzY1
IC1ub2RlcworICAgIC8vIGFuZCBlbnRlcmluZyB0aGlzIGluZm9ybWF0aW9uOgorICAgIC8qCisg
ICAgIENvdW50cnkgTmFtZSAoMiBsZXR0ZXIgY29kZSkgW106VVMKKyAgICAgU3RhdGUgb3IgUHJv
dmluY2UgTmFtZSAoZnVsbCBuYW1lKSBbXTpOZXcgTWV4aWNvCisgICAgIExvY2FsaXR5IE5hbWUg
KGVnLCBjaXR5KSBbXTpTYW50YSBGZQorICAgICBPcmdhbml6YXRpb24gTmFtZSAoZWcsIGNvbXBh
bnkpIFtdOlNlbGYKKyAgICAgT3JnYW5pemF0aW9uYWwgVW5pdCBOYW1lIChlZywgc2VjdGlvbikg
W106TXlzZWxmCisgICAgIENvbW1vbiBOYW1lIChlZywgZnVsbHkgcXVhbGlmaWVkIGhvc3QgbmFt
ZSkgW106TWUKKyAgICAgRW1haWwgQWRkcmVzcyBbXTptZUBleGFtcGxlLmNvbQorICAgICAqLwor
ICAgIAorICAgIE5TU3RyaW5nICpwZW1FbmNvZGVkQ2VydGlmaWNhdGUgPSBAIiIKKyAgICAiTUlJ
RmdEQ0NBMmdDQ1FDS0hpUFJVNU1RdURBTkJna3Foa2lHOXcwQkFRc0ZBRENCZ1RFTE1Ba0dBMVVF
QmhNQyIKKyAgICAiVlZNeEV6QVJCZ05WQkFnTUNrNWxkeUJOWlhocFkyOHhFVEFQQmdOVkJBY01D
Rk5oYm5SaElFWmxNUTB3Q3dZRCIKKyAgICAiVlFRS0RBUlRaV3htTVE4d0RRWURWUVFMREFaTmVY
TmxiR1l4Q3pBSkJnTlZCQU1NQWsxbE1SMHdHd1lKS29aSSIKKyAgICAiaHZjTkFRa0JGZzV0WlVC
bGVHRnRjR3hsTG1OdmJUQWVGdzB4T1RBek1qTXdOVFV3TVRSYUZ3MHlNREF6TWpJdyIKKyAgICAi
TlRVd01UUmFNSUdCTVFzd0NRWURWUVFHRXdKVlV6RVRNQkVHQTFVRUNBd0tUbVYzSUUxbGVHbGpi
ekVSTUE4RyIKKyAgICAiQTFVRUJ3d0lVMkZ1ZEdFZ1JtVXhEVEFMQmdOVkJBb01CRk5sYkdZeER6
QU5CZ05WQkFzTUJrMTVjMlZzWmpFTCIKKyAgICAiTUFrR0ExVUVBd3dDVFdVeEhUQWJCZ2txaGtp
Rzl3MEJDUUVXRG0xbFFHVjRZVzF3YkdVdVkyOXRNSUlDSWpBTiIKKyAgICAiQmdrcWhraUc5dzBC
QVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBM3JoTjRTUGc4VlkvUHRHRE5LWTNUOUpJU2dieSIKKyAg
ICAiOFlHTUp4MHZPK1laRlptM0czZnNUVXN5dkR5RUh3cXA1YWJDWlJCL0J5MVB3V2tOcmZ4bi9Y
UDhQMDM0SlBsRSIKKyAgICAiNmlyVml1QVlRcnFVaDZrN1pSOENwT001R0VjUlpnQVVKR0dRd05s
T2tFd2FIbk1HYzhTc0h1cmdEUGg1WEJwZyIKKyAgICAiYkR5dGQ3Qkp1QjFOb0kvS0ptaGNhamtB
dVYzdmFyUyt1UExvZlBITnFlK2NMOGhObmpaUXdIV2FyUDQ1a3M0ZSIKKyAgICAiQmNPRDd0d3F4
dUhuVm0vRldFcnBZOFdzNXMxTXJQVGhVZERhaGpFTWYrWWZESjlLTDh5MzA0eVM4SjhmZUN4WSIK
KyAgICAiZmNINEJ2Z0x0Sm1CTkhKZ2ozZU5EL0VNWmpKZ3oyRnNCanJKazhrS0QzMWN3KzRXcDhV
RjRza1dYQ2Y0NittTiIKKyAgICAiT0hwMTNQZVNDWkx5RjRaQUhhelVWa25EUGNjMllOcldWVjFp
Nm4zVDE1a0kwVDVaN2JzdGRtQUx1U2tFMmN1SiIKKyAgICAiU1ZOTzZnUitac1ZSVG5ldVF4d1dU
VTBNTkVoQVBGT1gyQmhHUDVlaXNnRVV6a254TUpkZEZEbjlXeGtsdTFKaCIKKyAgICAiZ2t6QVNB
LyszQW1sckZaTVBoT2hqRXVsMHpqZ05SNVJCbDFHOEh6OTJMQXg1VUVEQnRkTGc3MUkrSThBelFP
aCIKKyAgICAiZDZMdEJla0VDeEExNnBTYXBwZzV2Y1c5Wi84TjZabHNIbloyRnp0QTBuQ09mbGtv
TzlpZWpPcGN1Rk40RVZZRCIKKyAgICAieEl0d2N0S3cxTENlTkQvczRrbW9SUm5YYlg3azlPNmNJ
MVVVV001OTVHc3U1dFBhMzNNNUFaRkNhdjJnT1Z1WSIKKyAgICAiZGpwcFMwSE9mbzVodjZjQ0F3
RUFBVEFOQmdrcWhraUc5dzBCQVFzRkFBT0NBZ0VBWThFV2FBRkVmdzdPVitvRCIKKyAgICAiWFVa
U0lZWHEzRUgyRTVwM3EzOEFoSU9MUmpCdUIrdXR5dTdRNnJ4TU1IdXcyVHRzTit6YkFSN3lyamZz
c2VBMyIKKyAgICAiNFRNMXhlNE5rN05WTkhSb1pRK0MwSXFmOWZ2Y2lvTXZUMXRUcm1hME1oS1Nq
RlFweCtQdnlMVmJEN1lkUDg2TCIKKyAgICAibWVlaEtxVTdoMXBMR0FpR3dqb2FaOVliaDZLdXEv
TVRBSHkzRDgrd2s3QjM2VkJ4RjZkaVZsVVBaSlpRV0tKeSIKKyAgICAiTUt5OUczc3plMVpHdDlX
ZUUwQU12a04ySEllZjBIVEtDVVozZUJ2ZWNPTWlqeEwwV2hXbzVReWY1azZ5bENhVSIKKyAgICAi
MmZ4K004RGZEY3dGbzd0U2dMeFNLM0dDRnB4UGZpRHQ2UWs4Yzl0UW41UzFnWTN0NkxKdXdWQ0Z3
VUlYbE5rQiIKKyAgICAiSkQ3K2NaMVovdENyRWh6ajNZQ2swdVVVOENpZm9VKzRGRytIR0ZQK1NQ
enRzWUUwNTVtU2ozK0VzaCtveW9WQiIKKyAgICAiZ0JIOTBzRTJUMWkwZU5JOGY2MW9TZ3dZRmVI
c2Y3ZkM3MVhFWExGUitHd05kbXdxbG13bERaRXBUdTdCb05OKyIKKyAgICAicTcrVGZrMU1Sa0ps
TDFQSDZZdS9JUGhaaU5oNHR5SXFET3RsWWZ6cDU3N0ErT1VVK3E1UFBSRlJJc3FoZU94dCIKKyAg
ICAibU5sSHg0VXpkNFUzSVRmbW9nSmF6anF3WU8ydmlCWlk0alVRbXlaczc1ZUgvamlVRkhXUnNo
YTNBZG5XNUxXYSIKKyAgICAiRzNQRm5ZYlc4dXJIME5TSkcvVysvOURBK1k3QWEwY3M0VFBwdUJH
WjBOVTFXOTRPb0NNbzRsa082SC95NkxldSIKKyAgICAiM3ZqWkQzeTlrWms3bXJlOVhId2tJOE1k
SzVzPSI7CisgICAgCisgICAgTlNTdHJpbmcgKnBlbUVuY29kZWRQcml2YXRlS2V5ID0gQCIiCisg
ICAgIk1JSUpRZ0lCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQ1N3d2dna29BZ0VBQW9JQ0FRRGV1
RTNoSStEeFZqOCsiCisgICAgIjBZTTBwamRQMGtoS0J2THhnWXduSFM4NzVoa1ZtYmNiZCt4TlN6
SzhQSVFmQ3FubHBzSmxFSDhITFUvQmFRMnQiCisgICAgIi9HZjljL3cvVGZnaytVVHFLdFdLNEJo
Q3VwU0hxVHRsSHdLazR6a1lSeEZtQUJRa1laREEyVTZRVEJvZWN3WnoiCisgICAgInhLd2U2dUFN
K0hsY0dtQnNQSzEzc0VtNEhVMmdqOG9tYUZ4cU9RQzVYZTlxdEw2NDh1aDg4YzJwNzV3dnlFMmUi
CisgICAgIk5sREFkWnFzL2ptU3poNEZ3NFB1M0NyRzRlZFdiOFZZU3Vsanhhem16VXlzOU9GUjBO
cUdNUXgvNWg4TW4wb3YiCisgICAgInpMZlRqSkx3bng5NExGaDl3ZmdHK0F1MG1ZRTBjbUNQZDQw
UDhReG1NbURQWVd3R09zbVR5UW9QZlZ6RDdoYW4iCisgICAgInhRWGl5UlpjSi9qcjZZMDRlblhj
OTVJSmt2SVhoa0Fkck5SV1NjTTl4elpnMnRaVlhXTHFmZFBYbVFqUlBsbnQiCisgICAgInV5MTJZ
QXU1S1FUWnk0bEpVMDdxQkg1bXhWRk9kNjVESEJaTlRRdzBTRUE4VTVmWUdFWS9sNkt5QVJUT1Nm
RXciCisgICAgImwxMFVPZjFiR1NXN1VtR0NUTUJJRC83Y0NhV3NWa3crRTZHTVM2WFRPT0ExSGxF
R1hVYndmUDNZc0RIbFFRTUciCisgICAgIjEwdUR2VWo0andETkE2RjNvdTBGNlFRTEVEWHFsSnFt
bURtOXhiMW4vdzNwbVd3ZWRuWVhPMERTY0k1K1dTZzciCisgICAgIjJKNk02bHk0VTNnUlZnUEVp
M0J5MHJEVXNKNDBQK3ppU2FoRkdkZHRmdVQwN3B3alZSUll6bjNrYXk3bTA5cmYiCisgICAgImN6
a0JrVUpxL2FBNVc1aDJPbWxMUWM1K2ptRy9wd0lEQVFBQkFvSUNBR3JhL0NwL2YwWHF2azlTVCtQ
cnQyL3AiCisgICAgImtOdExlRFhjbExTVGNQMEpDWkh1ZlFhRncrN1ZuRkxwcWU0R3ZMcTlCbGxj
ejhWT3ZRd3JiZS9Dd05XK1Z4QzgiCisgICAgIlJNamdlMnJxQUNnd0doT3gxdDg3bDQ2TmtVUXc3
RXkwbENsZThrcitNR2dHR29acXJNRmRLSVJVb012NG5tUTYiCisgICAgInRtYzFGSHY1cExSZTlR
K0xwNW5ZUXdHb1ltWm9VT3Vlb09hT0wwOG00OXBHWFFraU44cEpETXhTZk8zSnZ0c3UiCisgICAg
IjRjcUliNmtPUS9kTzFJczFDVHZVUmxkMUlZTEg3WXVTaGk0WkV4MmcyYWMyVXl2dDZZbXh4dk1t
QWpCU0twR2QiCisgICAgImxvaWVwaG8zL05yREdVS2R2M3E5UVl5enJBOHc5R1QzMkxER3FnQlhK
aTFzY0JJOGNFeGtwNlA0aURsbGh2N3MiCisgICAgInZac3Nwdm9iUkphM08xems4NjNMSFhhMjRK
Q255dXppbXFleloyT2xoN2w0b2xIb1lENlVGQzlqZmQ0S2NIUmciCisgICAgIjFjNHN5cXQvbjhB
Sy8xczFlQmZTOWR6YjVDZmp0OU10S1lzbHh2THpxMVd3T0lOd3o4cklZdVJpMFBjTG05aHMiCisg
ICAgImwrVTB1L3pCMzdlTWd2Nitpd0RYazFmU2pidVlzRS9iRVRXWWtuS0dORkZMNUpTaUtWN1dD
cG1nTlRUcnJFNEsiCisgICAgIlM4RTZoUjl1UE9BYW93N3ZQQ0N0NHhMWC80OGwyRUk2WmVxNnFP
cHExbEoycWN5OHI0dHl1UWdOUkxRTWtaZzEiCisgICAgIkF4UWw2dm5ROEN1NGl1K05JaGVmMHk5
Wjdxa2ZOdlplQ2o1R2xGQjljMllqVjhZMm1kV2ZKQjRxV0szWi8rTUoiCisgICAgIlFPVENLUno3
L0x4TE5CVWVwUmpKQW9JQkFRRDNac1Y1dFdVOVpTS2NWSjlEQzdUWmswUCtsaGNpc1pyMG5MMHQi
CisgICAgIlBRdVFPK3BIdlBJMU1xUm5Oc2tISmh5UG5xVkNpK2RwODl0Sy9JdDU5MFVMbDhvczZV
QzFGaHl0QlBvVDFZUGQiCisgICAgIldHV2VwMnBPYzdiVnBpNGlwMzF5K0ltZmdlWnlKdE1BVGRt
ZTNrQlBBT2U1TkdFOUdpZy9sNW5xTHliMDJzZDEiCisgICAgIlFXN08wR2RxTHgzRHBMdzRTTGxo
TWY2YUUwdUdSUzhzZkIwODVlNERHbjU0TzJ3RVZ1U1pxWmw1Tk5FZjM1UnoiCisgICAgIlhnaW0z
aCtSV0YxWkZTUXpqQi9zbU4wWmgrdjNJejd2RUoxaDB5d1Y2bytHenZIa1A5SEU2Z0xJaHR5VjhP
RXciCisgICAgInZseVlrMUdhN3BVVkdSaDhvOE9NZTZSUjlEUWk3SnFDNGVJN0dja21CemFxekpj
REFvSUJBUURtZGU2QVRldzMiCisgICAgIkg5YlFLNnhuYk1JbmN6L0NPcElJU2RsY0ZiMjNBSEdF
YjRiNFZoSkZCTnd4ck5MNnRIS1NGTGVZWkZMaFRkaHgiCisgICAgIlBmWHlVTEhOZjVvemRFa2ww
V3JsZXJvRGRvZ2JDeVdnNXVKcDkvUTY4c2J3YkdyOENBbE83WkhZVHJqdVFmMUsiCisgICAgIkFT
OXBDbTc3S1AzazJkM1VsRytwZWxEalhMb0J6aVhxME5qeEpwTXo0NXZySXg4clNXekZOak1HalhU
M2ZYYVMiCisgICAgIjk2MmsvMEFYZWk1L2JmdWhCeGxtN1BuaTBiUUpJV0ZrZWFVdUdsck9hSERS
eFVpWDFyOUlaUzl3djVsazFQdGciCisgICAgImlkcGJjV3l3MThjRkdUdmpkS2hSYlpIOEVzYm16
bU5Oc0NHZGdDTXFGa0tZc1cxNlFLb0NqL05Bb3ZJM24wcW4iCisgICAgIjZWb1JhMHNHbVRHTkFv
SUJBQ2wvbXFaRXNCdXhTREh5MjlnU01aN0JYZ2xwUWE0M0htZmpsclBzNW5DbUxERW0iCisgICAg
IlYzWm03VDdHNk1lRE5BMC9MamRRWWx2YVpMRmFWVWI3SENES3NFWUNSakZaNlN0NGh6NG1kWHor
WStWTjdiNEYiCisgICAgIkdPa1RlKytpS3AvTFlzSlh0c0QxRkRXYjJXSVZvN0hjMUFHejhJK2dR
Sm9TSXVZdVRKbUx6U00wKzVKRFVPVjEiCisgICAgInk4ZFNiYVAvUnVFdjBxWWprR3FRVms1ZTcw
U1V5T3pLVitaeENUaGRIdkZMaW92VE9UVGdldlV6RTc1eHlkZkciCisgICAgImU3b0NtdFR1cnpn
dmwvNjlWdTVZZ2lqMW40Q1dQSEhjcTRDUVcvRE9aN0JoRkdCd2hyVzc5dm9ISkY4UGJ3UE8iCisg
ICAgIiswRFR1ZERHWTNuQUQ1c1RuRjh6VXVPYllpaEp0ZnpqL3Q1OWZPTUNnZ0VCQUlZdXVCVUFT
YjYyelE0YnY1L2ciCisgICAgIlZSTS9LU3BmaTlORG5FamZaN3g3aDV6Q2l1Vmd4L1pqcEFsUVJP
OHZ6VjE4cm9FT09LdHg5Y25KZDhBRWQrSGMiCisgICAgIm45M0JvUzFoeDBtaHNWaCsxVFJad3lq
eUJYWUpwcXdEMnd6MU16MVhPSVE2RXFiTS95UEtURDJnZndnN3lPNTMiCisgICAgInFZeHJ4WnNX
YWdWVmNHOVErQVJCRVJhdFR3THBvTitmY0pMeHVoNHIvQ2EvTGVwc3htT3JLelRhL01HSzFMaFci
CisgICAgInJXZ0lrMi9vZ0VQTFNwdGoyZDFQRURPK0dBekZ6NFZLamhXMU5sVWg5ZkdpNklKUExI
TG5CdzNvZGJpMFM4S1QiCisgICAgImdBOVo1K0xCYzVjbG90QVA1cnRRQThXaC9aQ0VvUFRLVFRB
MmJqVzJITWF0SmNiR21SMEZwQ1FyM0FNMFkxU08iCisgICAgIk1ha0NnZ0VBTHJ1NlFaNllVd0pK
RzQ1SDFlcS9yUGREWTh0cXFqSlZWaUtvQlZ2ektqL1hmSlpZRVZRaUl3NXAiCisgICAgInVvR2hE
b3lGdUZVZUloL2QxSmMySXJ1eTJXam9Pa2lRWXRJdWdESEh4UnJrTGRRY2pQaGxDVENFL21teVNK
dCsiCisgICAgImJrVWJpSEliUThkSjV5ajhTS3IwYkh6cUV0T3k5L0plUmprWUdIQzZiVldwcTVG
QTJNQmhmNGROako0VURsblQiCisgICAgInZ1ZVBjVGpyN25uZlkxc3p0dmZWbDlEOGRtZ1QrVEJu
T09WNnlXajFnbTViUzFEeFFTTGdObXRLeEo4dEFoMnUiCisgICAgImRFT2J2Y3BTaFAyMkl0T1Zq
U2FtcFJ1QXVSRzI2WmVtRWJHQ0kzSjZNcXgzeTZtKzZId3VsdHNndGR6RGdyRmUiCisgICAgInFK
ZlU4YmJkYnUycGk0N1k0RmRKSzBITGZmbDVSdz09IjsKKyAgICAKKyAgICBOU0RhdGEgKmRlckVu
Y29kZWRDZXJ0aWZpY2F0ZSA9IFtbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCYXNlNjRFbmNvZGVk
U3RyaW5nOnBlbUVuY29kZWRDZXJ0aWZpY2F0ZSBvcHRpb25zOjBdIGF1dG9yZWxlYXNlXTsKKyAg
ICBSZXRhaW5QdHI8U2VjQ2VydGlmaWNhdGVSZWY+IGNlcnRpZmljYXRlID0gYWRvcHRDRihTZWND
ZXJ0aWZpY2F0ZUNyZWF0ZVdpdGhEYXRhKG51bGxwdHIsIChfX2JyaWRnZSBDRkRhdGFSZWYpZGVy
RW5jb2RlZENlcnRpZmljYXRlKSk7CisgICAgCisgICAgTlNEYXRhICpkZXJFbmNvZGVkUHJpdmF0
ZUtleSA9IFtbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCYXNlNjRFbmNvZGVkU3RyaW5nOnBlbUVu
Y29kZWRQcml2YXRlS2V5IG9wdGlvbnM6MF0gYXV0b3JlbGVhc2VdOwogICAgIE5TRGljdGlvbmFy
eSogb3B0aW9ucyA9IEB7CiAgICAgICAgIChpZClrU2VjQXR0cktleVR5cGU6IChpZClrU2VjQXR0
cktleVR5cGVSU0EsCiAgICAgICAgIChpZClrU2VjQXR0cktleUNsYXNzOiAoaWQpa1NlY0F0dHJL
ZXlDbGFzc1ByaXZhdGUsCkBAIC01MSwxNiArMTc1LDM2IEBAIHN0YXRpYyBSZXRhaW5QdHI8TlNV
UkxDcmVkZW50aWFsPiBjcmVkZW50aWFsV2l0aElkZW50aXR5KCkKICAgICB9OwogICAgIGNvbnN0
IE5TVUludGVnZXIgcGVtRW5jb2RlZFByaXZhdGVLZXlIZWFkZXJMZW5ndGggPSAyNjsKICAgICBD
RkVycm9yUmVmIGVycm9yID0gbnVsbHB0cjsKLSAgICBhdXRvIHByaXZhdGVLZXkgPSBhZG9wdENG
KFNlY0tleUNyZWF0ZVdpdGhEYXRhKChfX2JyaWRnZSBDRkRhdGFSZWYpW2RlckVuY29kZWRQcml2
YXRlS2V5IHN1YmRhdGFXaXRoUmFuZ2U6TlNNYWtlUmFuZ2UocGVtRW5jb2RlZFByaXZhdGVLZXlI
ZWFkZXJMZW5ndGgsIGRlckVuY29kZWRQcml2YXRlS2V5Lmxlbmd0aCAtIHBlbUVuY29kZWRQcml2
YXRlS2V5SGVhZGVyTGVuZ3RoKV0sIChfX2JyaWRnZSBDRkRpY3Rpb25hcnlSZWYpb3B0aW9ucywg
JmVycm9yKSk7CisgICAgUmV0YWluUHRyPFNlY0tleVJlZj4gcHJpdmF0ZUtleSA9IGFkb3B0Q0Yo
U2VjS2V5Q3JlYXRlV2l0aERhdGEoKF9fYnJpZGdlIENGRGF0YVJlZilbZGVyRW5jb2RlZFByaXZh
dGVLZXkgc3ViZGF0YVdpdGhSYW5nZTpOU01ha2VSYW5nZShwZW1FbmNvZGVkUHJpdmF0ZUtleUhl
YWRlckxlbmd0aCwgZGVyRW5jb2RlZFByaXZhdGVLZXkubGVuZ3RoIC0gcGVtRW5jb2RlZFByaXZh
dGVLZXlIZWFkZXJMZW5ndGgpXSwgKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZilvcHRpb25zLCAm
ZXJyb3IpKTsKICAgICBFWFBFQ1RfTlVMTChlcnJvcik7CiAgICAgRVhQRUNUX05PVF9OVUxMKHBy
aXZhdGVLZXkuZ2V0KCkpOwogCi0gICAgYXV0byBpZGVudGl0eSA9IGFkb3B0Q0YoU2VjSWRlbnRp
dHlDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgY2VydGlmaWNhdGUuZ2V0KCksIHByaXZhdGVL
ZXkuZ2V0KCkpKTsKLSAgICBFWFBFQ1RfTk9UX05VTEwoaWRlbnRpdHkpOworICAgIFNlY0tleWNo
YWluUmVmIGtleWNoYWluUmVmID0gbnVsbHB0cjsKKyAgICBjb25zdCBjaGFyKiBrZXljaGFpblBh
c3N3b3JkID0gInRlc3RwYXNzd29yZCI7CisgICAgTlNTdHJpbmcgKmtleWNoYWluUGF0aCA9IFtO
U1RlbXBvcmFyeURpcmVjdG9yeSgpIHN0cmluZ0J5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpAIlRl
c3RLZXljaGFpbiJdOworICAgIE9TU3RhdHVzIHN0YXR1cyA9IFNlY0tleWNoYWluQ3JlYXRlKFtr
ZXljaGFpblBhdGggVVRGOFN0cmluZ10sIHN0cmxlbihrZXljaGFpblBhc3N3b3JkKSwga2V5Y2hh
aW5QYXNzd29yZCwgTk8sIG51bGxwdHIsICZrZXljaGFpblJlZik7CisgICAgRVhQRUNUX1RSVUUo
c3RhdHVzID09IGVyclNlY1N1Y2Nlc3MpOworICAgIFJldGFpblB0cjxTZWNLZXljaGFpblJlZj4g
a2V5Y2hhaW4gPSBhZG9wdENGKGtleWNoYWluUmVmKTsKKyAgICBFWFBFQ1RfTk9UX05VTEwoa2V5
Y2hhaW4pOworCisgICAgU2VjRXh0ZXJuYWxJdGVtVHlwZSB0eXBlID0ga1NlY0l0ZW1UeXBlUHJp
dmF0ZUtleTsKKyAgICBzdGF0dXMgPSBTZWNJdGVtSW1wb3J0KChfX2JyaWRnZSBDRkRhdGFSZWYp
ZGVyRW5jb2RlZFByaXZhdGVLZXksIG51bGxwdHIsIG51bGxwdHIsICZ0eXBlLCAwLCBudWxscHRy
LCBrZXljaGFpbi5nZXQoKSwgbnVsbHB0cik7CisgICAgRVhQRUNUX1RSVUUoc3RhdHVzID09IGVy
clNlY1N1Y2Nlc3MpOworCisgICAgU2VjSWRlbnRpdHlSZWYgaWRlbnRpdHlSZWYgPSBudWxscHRy
OworICAgIHN0YXR1cyA9IFNlY0lkZW50aXR5Q3JlYXRlV2l0aENlcnRpZmljYXRlKGtleWNoYWlu
LmdldCgpLCBjZXJ0aWZpY2F0ZS5nZXQoKSwgJmlkZW50aXR5UmVmKTsKKyAgICBFWFBFQ1RfTk9U
X05VTEwoaWRlbnRpdHlSZWYpOworICAgIEVYUEVDVF9UUlVFKHN0YXR1cyA9PSBlcnJTZWNTdWNj
ZXNzKTsKKyAgICBSZXRhaW5QdHI8U2VjSWRlbnRpdHlSZWY+IGlkZW50aXR5ID0gYWRvcHRDRihp
ZGVudGl0eVJlZik7CiAgICAgCi0gICAgcmV0dXJuIFtOU1VSTENyZWRlbnRpYWwgY3JlZGVudGlh
bFdpdGhJZGVudGl0eTppZGVudGl0eS5nZXQoKSBjZXJ0aWZpY2F0ZXM6QFsoaWQpY2VydGlmaWNh
dGUuZ2V0KCldIHBlcnNpc3RlbmNlOk5TVVJMQ3JlZGVudGlhbFBlcnNpc3RlbmNlTm9uZV07Cisg
ICAgcmV0dXJuIHsKKyAgICAgICAgW05TVVJMQ3JlZGVudGlhbCBjcmVkZW50aWFsV2l0aElkZW50
aXR5OmlkZW50aXR5LmdldCgpIGNlcnRpZmljYXRlczpAWyhpZCljZXJ0aWZpY2F0ZS5nZXQoKV0g
cGVyc2lzdGVuY2U6TlNVUkxDcmVkZW50aWFsUGVyc2lzdGVuY2VOb25lXSwKKyAgICAgICAga2V5
Y2hhaW5QYXRoCisgICAgfTsKIH0KIAorc3RhdGljIFJldGFpblB0cjxOU1N0cmluZz4ga2V5Y2hh
aW5QYXRoOworCiBAaW50ZXJmYWNlIENoYWxsZW5nZURlbGVnYXRlIDogTlNPYmplY3QgPFdLTmF2
aWdhdGlvbkRlbGVnYXRlPgogQGVuZAogCkBAIC04NSwxNSArMjI5LDE4IEBAIHN0YXRpYyBSZXRh
aW5QdHI8TlNVUkxDcmVkZW50aWFsPiBjcmVkZW50aWFsV2l0aElkZW50aXR5KCkKICAgICBFWFBF
Q1RfVFJVRShbcHJvdGVjdGlvblNwYWNlLmF1dGhlbnRpY2F0aW9uTWV0aG9kIGlzRXF1YWxUb1N0
cmluZzpOU1VSTEF1dGhlbnRpY2F0aW9uTWV0aG9kSFRUUEJhc2ljXSk7CiAgICAgRVhQRUNUX0VR
KFsoTlNIVFRQVVJMUmVzcG9uc2UgKiljaGFsbGVuZ2UuZmFpbHVyZVJlc3BvbnNlIHN0YXR1c0Nv
ZGVdLCA0MDEpOwogCi0gICAgY29tcGxldGlvbkhhbmRsZXIoTlNVUkxTZXNzaW9uQXV0aENoYWxs
ZW5nZVVzZUNyZWRlbnRpYWwsIGNyZWRlbnRpYWxXaXRoSWRlbnRpdHkoKS5nZXQoKSk7CisgICAg
YXV0byBwYWlyID0gY3JlZGVudGlhbFdpdGhJZGVudGl0eUFuZEtleWNoYWluUGF0aCgpOworICAg
IGNvbXBsZXRpb25IYW5kbGVyKE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VVc2VDcmVkZW50aWFs
LCBwYWlyLmZpcnN0LmdldCgpKTsKKyAgICBrZXljaGFpblBhdGggPSBXVEZNb3ZlKHBhaXIuc2Vj
b25kKTsKIH0KIAogQGVuZAogCituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisKIFRFU1QoQ2hh
bGxlbmdlLCBTZWNJZGVudGl0eSkKIHsKLSAgICB1c2luZyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQ
STsKLSAgICBUQ1BTZXJ2ZXIgc2VydmVyKFRDUFNlcnZlcjo6cmVzcG9uZFdpdGhDaGFsbGVuZ2VU
aGVuT0spOworICAgIFRDUFNlcnZlciBzZXJ2ZXIocmVzcG9uZFdpdGhDaGFsbGVuZ2VUaGVuT0sp
OwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbV0tXZWJWaWV3IG5ld10pOwogICAgIGF1
dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtDaGFsbGVuZ2VEZWxlZ2F0ZSBuZXddKTsKQEAgLTEwMSw1
NiArMjQ4LDE1IEBAIFRFU1QoQ2hhbGxlbmdlLCBTZWNJZGVudGl0eSkKICAgICBbd2ViVmlldyBs
b2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3Ry
aW5nOltOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiaHR0cDovLzEyNy4wLjAuMTolZC8iLCBz
ZXJ2ZXIucG9ydCgpXV1dXTsKIAogICAgIFV0aWw6OnJ1bigmbmF2aWdhdGlvbkZpbmlzaGVkKTsK
LX0KLQotQGludGVyZmFjZSBDbGllbnRDZXJ0aWZpY2F0ZURlbGVnYXRlIDogTlNPYmplY3QgPFdL
TmF2aWdhdGlvbkRlbGVnYXRlPiB7Ci0gICAgVmVjdG9yPFJldGFpblB0cjxOU1N0cmluZz4+IF9h
dXRoZW50aWNhdGlvbk1ldGhvZHM7Ci19Ci0tIChjb25zdCBWZWN0b3I8UmV0YWluUHRyPE5TU3Ry
aW5nPj4mKWF1dGhlbnRpY2F0aW9uTWV0aG9kczsKLUBlbmQKLQotQGltcGxlbWVudGF0aW9uIENs
aWVudENlcnRpZmljYXRlRGVsZWdhdGUKLQotLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IGRpZEZpbmlzaE5hdmlnYXRpb246KG51bGxfdW5zcGVjaWZpZWQgV0tOYXZpZ2F0aW9u
ICopbmF2aWdhdGlvbgotewotICAgIG5hdmlnYXRpb25GaW5pc2hlZCA9IHRydWU7Ci19Ci0KLS0g
KHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRSZWNlaXZlQXV0aGVudGljYXRp
b25DaGFsbGVuZ2U6KE5TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgKiljaGFsbGVuZ2UgY29t
cGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VEaXNwb3Np
dGlvbiwgTlNVUkxDcmVkZW50aWFsICopKWNvbXBsZXRpb25IYW5kbGVyCi17Ci0gICAgX2F1dGhl
bnRpY2F0aW9uTWV0aG9kcy5hcHBlbmQoY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZS5hdXRoZW50
aWNhdGlvbk1ldGhvZCk7Ci0KLSAgICBpZiAoW2NoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UuYXV0
aGVudGljYXRpb25NZXRob2QgaXNFcXVhbFRvU3RyaW5nOk5TVVJMQXV0aGVudGljYXRpb25NZXRo
b2RTZXJ2ZXJUcnVzdF0pCi0gICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihOU1VSTFNl
c3Npb25BdXRoQ2hhbGxlbmdlVXNlQ3JlZGVudGlhbCwgW05TVVJMQ3JlZGVudGlhbCBjcmVkZW50
aWFsRm9yVHJ1c3Q6Y2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZS5zZXJ2ZXJUcnVzdF0pOwogICAg
IAotICAgIEVYUEVDVF9UUlVFKFtjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlLmF1dGhlbnRpY2F0
aW9uTWV0aG9kIGlzRXF1YWxUb1N0cmluZzpOU1VSTEF1dGhlbnRpY2F0aW9uTWV0aG9kQ2xpZW50
Q2VydGlmaWNhdGVdKTsKLSAgICBjb21wbGV0aW9uSGFuZGxlcihOU1VSTFNlc3Npb25BdXRoQ2hh
bGxlbmdlVXNlQ3JlZGVudGlhbCwgY3JlZGVudGlhbFdpdGhJZGVudGl0eSgpLmdldCgpKTsKLX0K
LQotLSAoY29uc3QgVmVjdG9yPFJldGFpblB0cjxOU1N0cmluZz4+JilhdXRoZW50aWNhdGlvbk1l
dGhvZHMKLXsKLSAgICByZXR1cm4gX2F1dGhlbnRpY2F0aW9uTWV0aG9kczsKKyAgICBFWFBFQ1Rf
Tk9UX05VTEwoa2V5Y2hhaW5QYXRoLmdldCgpKTsKKyAgICBOU0Vycm9yICplcnJvciA9IG5pbDsK
KyAgICBbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIHJlbW92ZUl0ZW1BdFBhdGg6a2V5
Y2hhaW5QYXRoLmdldCgpIGVycm9yOiZlcnJvcl07CisgICAgRVhQRUNUX05VTEwoZXJyb3IpOwog
fQogCi1AZW5kCi0KLSNpZiBIQVZFKFNFQ19LRVlfUFJPWFkpCi1URVNUKENoYWxsZW5nZSwgQ2xp
ZW50Q2VydGlmaWNhdGUpCi17Ci0gICAgdXNpbmcgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEk7Ci0g
ICAgVENQU2VydmVyIHNlcnZlcihUQ1BTZXJ2ZXI6OlByb3RvY29sOjpIVFRQU1dpdGhDbGllbnRD
ZXJ0aWZpY2F0ZVJlcXVlc3QsIFRDUFNlcnZlcjo6cmVzcG9uZFdpdGhPSyk7Cit9IC8vIG5hbWVz
cGFjZSBUZXN0V2ViS2l0QVBJCiAKLSAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtXS1dlYlZp
ZXcgbmV3XSk7Ci0gICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW0NsaWVudENlcnRpZmljYXRl
RGVsZWdhdGUgbmV3XSk7Ci0gICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOmRlbGVn
YXRlLmdldCgpXTsKLSAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVl
c3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOltOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0
OkAiaHR0cHM6Ly8xMjcuMC4wLjE6JWQvIiwgc2VydmVyLnBvcnQoKV1dXV07Ci0gICAgCi0gICAg
VXRpbDo6cnVuKCZuYXZpZ2F0aW9uRmluaXNoZWQpOwotICAgIGF1dG8mIG1ldGhvZHMgPSBbZGVs
ZWdhdGUgYXV0aGVudGljYXRpb25NZXRob2RzXTsKLSAgICBFWFBFQ1RfRVEobWV0aG9kcy5zaXpl
KCksIDJ1bGwpOwotICAgIEVYUEVDVF9UUlVFKFttZXRob2RzWzBdIGlzRXF1YWxUb1N0cmluZzpO
U1VSTEF1dGhlbnRpY2F0aW9uTWV0aG9kU2VydmVyVHJ1c3RdKTsKLSAgICBFWFBFQ1RfVFJVRShb
bWV0aG9kc1syXSBpc0VxdWFsVG9TdHJpbmc6TlNVUkxBdXRoZW50aWNhdGlvbk1ldGhvZENsaWVu
dENlcnRpZmljYXRlXSk7Ci19CiAjZW5kaWYKIAogc3RhdGljIGJvb2wgcmVjZWl2ZWRTZWNvbmRD
aGFsbGVuZ2U7CkBAIC0xODQsNyArMjkwLDcgQEAgc3RhdGljIFJldGFpblB0cjxOU1VSTENyZWRl
bnRpYWw+IHBlcnNpc3RlbnRDcmVkZW50aWFsOwogVEVTVChDaGFsbGVuZ2UsIEJhc2ljUHJvcG9z
ZWRDcmVkZW50aWFsKQogewogICAgIHVzaW5nIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJOwotICAg
IFRDUFNlcnZlciBzZXJ2ZXIoVENQU2VydmVyOjpyZXNwb25kV2l0aENoYWxsZW5nZVRoZW5PSywg
Mik7CisgICAgVENQU2VydmVyIHNlcnZlcihyZXNwb25kV2l0aENoYWxsZW5nZVRoZW5PSywgMik7
CiAgICAgYXV0byBjb25maWd1cmF0aW9uID0gcmV0YWluUHRyKFtXS1dlYlZpZXdDb25maWd1cmF0
aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIkJhc2ljUHJv
cG9zZWRDcmVkZW50aWFsUGx1Z0luIl0pOwogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tX
S1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0WmVybyBjb25maWd1cmF0aW9uOmNv
bmZpZ3VyYXRpb24uZ2V0KCldKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbUHJvcG9z
ZWRDcmVkZW50aWFsRGVsZWdhdGUgbmV3XSk7CkBAIC0zMDAsMTMgKzQwNiwxNiBAQCBuYW1lc3Bh
Y2UgVGVzdFdlYktpdEFQSSB7CiBURVNUKFdlYktpdCwgU2VydmVyVHJ1c3QpCiB7CiAgICAgVENQ
U2VydmVyIHNlcnZlcihUQ1BTZXJ2ZXI6OlByb3RvY29sOjpIVFRQUywgW10gKFNTTCogc3NsKSB7
Ci0gICAgICAgIFRDUFNlcnZlcjo6cmVhZChzc2wpOworICAgICAgICBjaGFyIHJlcXVlc3RCdWZm
ZXJbMTAwMF07CisgICAgICAgIGF1dG8gcmVhZFJlc3VsdCA9IFNTTF9yZWFkKHNzbCwgcmVxdWVz
dEJ1ZmZlciwgc2l6ZW9mKHJlcXVlc3RCdWZmZXIpKTsKKyAgICAgICAgQVNTRVJUX1VOVVNFRChy
ZWFkUmVzdWx0LCByZWFkUmVzdWx0ID4gMCk7CiAKICAgICAgICAgY29uc3QgY2hhciogcmVwbHkg
PSAiIgogICAgICAgICAiSFRUUC8xLjEgMjAwIE9LXHJcbiIKICAgICAgICAgIkNvbnRlbnQtTGVu
Z3RoOiAxM1xyXG5cclxuIgogICAgICAgICAiSGVsbG8sIFdvcmxkISI7Ci0gICAgICAgIFRDUFNl
cnZlcjo6d3JpdGUoc3NsLCByZXBseSwgc3RybGVuKHJlcGx5KSk7CisgICAgICAgIGF1dG8gd3Jp
dGVSZXN1bHQgPSBTU0xfd3JpdGUoc3NsLCByZXBseSwgc3RybGVuKHJlcGx5KSk7CisgICAgICAg
IEFTU0VSVF9VTlVTRUQod3JpdGVSZXN1bHQsIHdyaXRlUmVzdWx0ID09IHN0YXRpY19jYXN0PGlu
dD4oc3RybGVuKHJlcGx5KSkpOwogICAgIH0pOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHRO
UyhbV0tXZWJWaWV3IG5ld10pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9QREZMaW5rUmVmZXJyZXIubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1BERkxpbmtSZWZlcnJlci5tbQppbmRleCBlZmI3NGM2NzNjNTg1NzNh
YjFkZTc5OTQ4OGM3Nzk2MzdkYWMyMTJjLi43MTdhNjk1NjA5ZDE5NjM4ZjQwMjg1MThiNTVlNDc1
OTk5YTM0NDg4IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1BERkxpbmtSZWZlcnJlci5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1BERkxpbmtSZWZlcnJlci5tbQpAQCAtNzIsMjQgKzcyLDI2IEBAIHN0YXRpYyBS
ZXRhaW5QdHI8TlNEYXRhPiBjcmVhdGVQREZXaXRoTGlua1RvVVJMKE5TVVJMICp1cmwpCiAKIFRF
U1QoV2ViS2l0LCBQREZMaW5rUmVmZXJyZXIpCiB7Ci0gICAgdXNpbmcgbmFtZXNwYWNlIFRlc3RX
ZWJLaXRBUEk7Ci0gICAgVENQU2VydmVyIHNlcnZlcihbXSAoaW50IHNvY2tldCkgeworICAgIFRl
c3RXZWJLaXRBUEk6OlRDUFNlcnZlciBzZXJ2ZXIoW10gKGludCBzb2NrZXQpIHsKKyAgICAgICAg
Y2hhciByZWFkQnVmZmVyWzEwMDBdOworICAgICAgICBtZW1zZXQocmVhZEJ1ZmZlciwgMCwgMTAw
MCk7CisKICAgICAgICAgLy8gVGhpcyBhc3N1bWVzIGFsbCB0aGUgZGF0YSBmcm9tIHRoZSBIVFRQ
IHJlcXVlc3QgaXMgYXZhaWxhYmxlIHRvIGJlIHJlYWQgYXQgb25jZSwKICAgICAgICAgLy8gd2hp
Y2ggaXMgcHJvYmFibHkgYW4gb2theSBhc3N1bXB0aW9uLgotICAgICAgICBhdXRvIHJlcXVlc3RC
eXRlcyA9IFRDUFNlcnZlcjo6cmVhZChzb2NrZXQpOworICAgICAgICA6OnJlYWQoc29ja2V0LCBy
ZWFkQnVmZmVyLCA5OTkpOwogCiAgICAgICAgIC8vIExvb2sgZm9yIGEgcmVmZXJlciBoZWFkZXIu
Ci0gICAgICAgIGNvbnN0IGF1dG8qIGN1cnJlbnRMaW5lID0gcmVpbnRlcnByZXRfY2FzdDxjb25z
dCBjaGFyKj4ocmVxdWVzdEJ5dGVzLmRhdGEoKSk7CisgICAgICAgIGNoYXIqIGN1cnJlbnRMaW5l
ID0gcmVhZEJ1ZmZlcjsKICAgICAgICAgd2hpbGUgKGN1cnJlbnRMaW5lKSB7CiAgICAgICAgICAg
ICBFWFBFQ1RfTkUoc3RybmNhc2VjbXAoY3VycmVudExpbmUsICJyZWZlcmVyOiIsIDgpLCAwKTsK
LSAgICAgICAgICAgIGNvbnN0IGNoYXIqIG5leHRMaW5lID0gc3RyY2hyKGN1cnJlbnRMaW5lLCAn
XG4nKTsKKyAgICAgICAgICAgIGNoYXIqIG5leHRMaW5lID0gc3RyY2hyKGN1cnJlbnRMaW5lLCAn
XG4nKTsKICAgICAgICAgICAgIGN1cnJlbnRMaW5lID0gbmV4dExpbmUgPyBuZXh0TGluZSArIDEg
OiAwOwogICAgICAgICB9CiAKICAgICAgICAgY29uc3QgY2hhciogcmVzcG9uc2VIZWFkZXIgPQog
ICAgICAgICAiSFRUUC8xLjEgMjAwIE9LXHJcbiIKICAgICAgICAgIkNvbnRlbnQtTGVuZ3RoOiAw
XHJcblxyXG4iOwotICAgICAgICBUQ1BTZXJ2ZXI6OndyaXRlKHNvY2tldCwgcmVzcG9uc2VIZWFk
ZXIsIHN0cmxlbihyZXNwb25zZUhlYWRlcikpOworICAgICAgICA6OndyaXRlKHNvY2tldCwgcmVz
cG9uc2VIZWFkZXIsIHN0cmxlbihyZXNwb25zZUhlYWRlcikpOwogICAgIH0pOwogCiAgICAgUmV0
YWluUHRyPFRlc3RXS1dlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm94eS5tbSBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJveHkubW0KaW5kZXggMWEzYzUz
YzA5Njc1OWEyZmJiMTQyOTk0NGVjNTEyODQ5NWEwYTc0Ni4uNTZiZjlmZDAyNTY0NzgyZmNjOGRj
YTA0MTI1NjZhNzhkMjI2ODFhMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9Qcm94eS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1Byb3h5Lm1tCkBAIC01Nyw3ICs1NywxOCBAQCBuYW1lc3BhY2UgVGVzdFdlYktp
dEFQSSB7CiAKIFRFU1QoV2ViS2l0LCBIVFRQU1Byb3h5KQogewotICAgIFRDUFNlcnZlciBzZXJ2
ZXIoVENQU2VydmVyOjpQcm90b2NvbDo6SFRUUFNQcm94eSwgVENQU2VydmVyOjpyZXNwb25kV2l0
aE9LKTsKKyAgICBUQ1BTZXJ2ZXIgc2VydmVyKFRDUFNlcnZlcjo6UHJvdG9jb2w6OkhUVFBTUHJv
eHksIFtdIChTU0wqIHNzbCkgeworICAgICAgICBjaGFyIHJlcXVlc3RCdWZmZXJbMTAwMF07Cisg
ICAgICAgIGF1dG8gcmVhZFJlc3VsdCA9IFNTTF9yZWFkKHNzbCwgcmVxdWVzdEJ1ZmZlciwgc2l6
ZW9mKHJlcXVlc3RCdWZmZXIpKTsKKyAgICAgICAgQVNTRVJUX1VOVVNFRChyZWFkUmVzdWx0LCBy
ZWFkUmVzdWx0ID4gMCk7CisKKyAgICAgICAgY29uc3QgY2hhciogcmVwbHkgPSAiIgorICAgICAg
ICAiSFRUUC8xLjEgMjAwIE9LXHJcbiIKKyAgICAgICAgIkNvbnRlbnQtTGVuZ3RoOiAzNFxyXG5c
clxuIgorICAgICAgICAiPHNjcmlwdD5hbGVydCgnc3VjY2VzcyEnKTwvc2NyaXB0PiI7CisgICAg
ICAgIGF1dG8gd3JpdGVSZXN1bHQgPSBTU0xfd3JpdGUoc3NsLCByZXBseSwgc3RybGVuKHJlcGx5
KSk7CisgICAgICAgIEFTU0VSVF9VTlVTRUQod3JpdGVSZXN1bHQsIHdyaXRlUmVzdWx0ID09IHN0
YXRpY19jYXN0PGludD4oc3RybGVuKHJlcGx5KSkpOworICAgIH0pOwogCiAgICAgYXV0byBzdG9y
ZUNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlv
biBuZXddKTsKICAgICBbc3RvcmVDb25maWd1cmF0aW9uIHNldEhUVFBTUHJveHk6W05TVVJMIFVS
TFdpdGhTdHJpbmc6W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJodHRwczovLzEyNy4wLjAu
MTolZC8iLCBzZXJ2ZXIucG9ydCgpXV1dOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9XS05hdmlnYXRpb25SZXNwb25zZS5tbSBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tOYXZpZ2F0aW9uUmVzcG9uc2UubW0KaW5kZXgg
ZjY0NTAwMDJjMGY1YWIxM2ZhMDkyM2MwYjZkODQzYzg5OTNjM2MyYS4uZmIyZjFhYzQzZDdmNmY3
OGEzOWQ0OWY4OTIxMjRmNjU0YmE2NGI0MyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9XS05hdmlnYXRpb25SZXNwb25zZS5tbQorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLTmF2aWdhdGlvblJlc3BvbnNlLm1tCkBA
IC0xOTUsMjggKzE5NSw0MSBAQCBURVNUKFdlYktpdCwgV0tOYXZpZ2F0aW9uUmVzcG9uc2VQREZU
eXBlKQogCiBAZW5kCiAKK3N0YXRpYyB2b2lkIHJlYWRSZXF1ZXN0KGludCBzb2NrZXQpCit7Cisg
ICAgY2hhciByZWFkQnVmZmVyWzEwMDBdOworICAgIGF1dG8gYnl0ZXNSZWFkID0gOjpyZWFkKHNv
Y2tldCwgcmVhZEJ1ZmZlciwgc2l6ZW9mKHJlYWRCdWZmZXIpKTsKKyAgICBFWFBFQ1RfR1QoYnl0
ZXNSZWFkLCAwKTsKKyAgICBFWFBFQ1RfVFJVRShzdGF0aWNfY2FzdDxzaXplX3Q+KGJ5dGVzUmVh
ZCkgPCBzaXplb2YocmVhZEJ1ZmZlcikpOworfQorCitzdGF0aWMgdm9pZCB3cml0ZVJlc3BvbnNl
KGludCBzb2NrZXQsIE5TU3RyaW5nICpyZXNwb25zZSkKK3sKKyAgICBjb25zdCBjaGFyKiBieXRl
cyA9IHJlc3BvbnNlLlVURjhTdHJpbmc7CisgICAgYXV0byBieXRlc1dyaXR0ZW4gPSA6OndyaXRl
KHNvY2tldCwgYnl0ZXMsIHN0cmxlbihieXRlcykpOworICAgIEVYUEVDVF9FUShzdGF0aWNfY2Fz
dDxzaXplX3Q+KGJ5dGVzV3JpdHRlbiksIHN0cmxlbihieXRlcykpOworfQorCiBURVNUKFdlYktp
dCwgV0tOYXZpZ2F0aW9uUmVzcG9uc2VEb3dubG9hZEF0dHJpYnV0ZSkKIHsKICAgICBhdXRvIGdl
dERvd25sb2FkUmVzcG9uc2UgPSBbXSAoUmV0YWluUHRyPE5TU3RyaW5nPiBib2R5KSAtPiBSZXRh
aW5QdHI8V0tOYXZpZ2F0aW9uUmVzcG9uc2U+IHsKLSAgICAgICAgdXNpbmcgbmFtZXNwYWNlIFRl
c3RXZWJLaXRBUEk7Ci0gICAgICAgIFRDUFNlcnZlciBzZXJ2ZXIoW2JvZHldKGludCBzb2NrZXQp
IHsKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6VENQU2VydmVyIHNlcnZlcihbYm9keV0oaW50IHNv
Y2tldCkgeworICAgICAgICAgICAgcmVhZFJlcXVlc3Qoc29ja2V0KTsKICAgICAgICAgICAgIHVu
c2lnbmVkIGJvZHlMZW5ndGggPSBbYm9keSBsZW5ndGhdOwotICAgICAgICAgICAgTlNTdHJpbmcg
KmZpcnN0UmVzcG9uc2UgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDoKKyAgICAgICAgICAg
IHdyaXRlUmVzcG9uc2Uoc29ja2V0LCBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDoKICAgICAg
ICAgICAgICAgICBAIkhUVFAvMS4xIDIwMCBPS1xyXG4iCiAgICAgICAgICAgICAgICAgIkNvbnRl
bnQtTGVuZ3RoOiAlZFxyXG5cclxuIgogICAgICAgICAgICAgICAgICIlQCIsCiAgICAgICAgICAg
ICAgICAgYm9keUxlbmd0aCwKICAgICAgICAgICAgICAgICBib2R5LmdldCgpCi0gICAgICAgICAg
ICBdOwotICAgICAgICAgICAgTlNTdHJpbmcgKnNlY29uZFJlc3BvbnNlID0gQCJIVFRQLzEuMSAy
MDAgT0tcclxuIgorICAgICAgICAgICAgXSk7CisgICAgICAgICAgICByZWFkUmVxdWVzdChzb2Nr
ZXQpOworICAgICAgICAgICAgd3JpdGVSZXNwb25zZShzb2NrZXQsCisgICAgICAgICAgICAgICAg
QCJIVFRQLzEuMSAyMDAgT0tcclxuIgogICAgICAgICAgICAgICAgICJDb250ZW50LUxlbmd0aDog
NlxyXG4iCiAgICAgICAgICAgICAgICAgIkNvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7
IGZpbGVuYW1lPWZyb21IZWFkZXIudHh0O1xyXG5cclxuIgotICAgICAgICAgICAgICAgICJIZWxs
byEiOwotCi0gICAgICAgICAgICBUQ1BTZXJ2ZXI6OnJlYWQoc29ja2V0KTsKLSAgICAgICAgICAg
IFRDUFNlcnZlcjo6d3JpdGUoc29ja2V0LCBmaXJzdFJlc3BvbnNlLlVURjhTdHJpbmcsIGZpcnN0
UmVzcG9uc2UubGVuZ3RoKTsKLSAgICAgICAgICAgIFRDUFNlcnZlcjo6cmVhZChzb2NrZXQpOwot
ICAgICAgICAgICAgVENQU2VydmVyOjp3cml0ZShzb2NrZXQsIHNlY29uZFJlc3BvbnNlLlVURjhT
dHJpbmcsIHNlY29uZFJlc3BvbnNlLmxlbmd0aCk7CisgICAgICAgICAgICAgICAgIkhlbGxvISIK
KyAgICAgICAgICAgICk7CiAgICAgICAgIH0pOwogICAgICAgICBhdXRvIGRlbGVnYXRlID0gYWRv
cHROUyhbTmF2aWdhdGlvblJlc3BvbnNlVGVzdERlbGVnYXRlIG5ld10pOwogICAgICAgICBhdXRv
IHdlYlZpZXcgPSBhZG9wdE5TKFtXS1dlYlZpZXcgbmV3XSk7CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2Vic2l0ZURhdGFzdG9yZS5tbSBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJzaXRlRGF0YXN0b3JlLm1t
CmluZGV4IDMxZDFiNTU0NDk2OGI2YzI3MDViMWQ5NjA0OWU4Yjg4ZTQ4OWNkMGIuLjNmOTUzYTcw
NzUxOGZlMzgyMDY3M2VhMTAzMjM0NjBjYjkyOTRkNDYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJzaXRlRGF0YXN0b3JlLm1tCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJzaXRlRGF0YXN0b3JlLm1t
CkBAIC0xMTAsOSArMTEwLDM2IEBAIFRFU1QoV0tXZWJzaXRlRGF0YVN0b3JlLCBSZW1vdmVFcGhl
bWVyYWxEYXRhKQogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CiB9CiAKK3N0
YXRpYyB2b2lkIHJlc3BvbmRXaXRoQ2hhbGxlbmdlVGhlbk9LKGludCBzb2NrZXQpCit7CisgICAg
Y2hhciByZWFkQnVmZmVyWzEwMDBdOworICAgIGF1dG8gYnl0ZXNSZWFkID0gOjpyZWFkKHNvY2tl
dCwgcmVhZEJ1ZmZlciwgc2l6ZW9mKHJlYWRCdWZmZXIpKTsKKyAgICBFWFBFQ1RfR1QoYnl0ZXNS
ZWFkLCAwKTsKKyAgICBFWFBFQ1RfVFJVRShzdGF0aWNfY2FzdDxzaXplX3Q+KGJ5dGVzUmVhZCkg
PCBzaXplb2YocmVhZEJ1ZmZlcikpOworICAgIAorICAgIGNvbnN0IGNoYXIqIGNoYWxsZW5nZUhl
YWRlciA9CisgICAgIkhUVFAvMS4xIDQwMSBVbmF1dGhvcml6ZWRcclxuIgorICAgICJEYXRlOiBT
YXQsIDIzIE1hciAyMDE5IDA2OjI5OjAxIEdNVFxyXG4iCisgICAgIkNvbnRlbnQtTGVuZ3RoOiAw
XHJcbiIKKyAgICAiV1dXLUF1dGhlbnRpY2F0ZTogQmFzaWMgcmVhbG09XCJ0ZXN0cmVhbG1cIlxy
XG5cclxuIjsKKyAgICBhdXRvIGJ5dGVzV3JpdHRlbiA9IDo6d3JpdGUoc29ja2V0LCBjaGFsbGVu
Z2VIZWFkZXIsIHN0cmxlbihjaGFsbGVuZ2VIZWFkZXIpKTsKKyAgICBFWFBFQ1RfRVEoc3RhdGlj
X2Nhc3Q8c2l6ZV90PihieXRlc1dyaXR0ZW4pLCBzdHJsZW4oY2hhbGxlbmdlSGVhZGVyKSk7Cisg
ICAgCisgICAgYnl0ZXNSZWFkID0gOjpyZWFkKHNvY2tldCwgcmVhZEJ1ZmZlciwgc2l6ZW9mKHJl
YWRCdWZmZXIpKTsKKyAgICBFWFBFQ1RfR1QoYnl0ZXNSZWFkLCAwKTsKKyAgICBFWFBFQ1RfVFJV
RShzdGF0aWNfY2FzdDxzaXplX3Q+KGJ5dGVzUmVhZCkgPCBzaXplb2YocmVhZEJ1ZmZlcikpOwor
ICAgIAorICAgIGNvbnN0IGNoYXIqIHJlc3BvbnNlSGVhZGVyID0KKyAgICAiSFRUUC8xLjEgMjAw
IE9LXHJcbiIKKyAgICAiQ29udGVudC1MZW5ndGg6IDEzXHJcblxyXG4iCisgICAgIkhlbGxvLCBX
b3JsZCEiOworICAgIGJ5dGVzV3JpdHRlbiA9IDo6d3JpdGUoc29ja2V0LCByZXNwb25zZUhlYWRl
ciwgc3RybGVuKHJlc3BvbnNlSGVhZGVyKSk7CisgICAgRVhQRUNUX0VRKHN0YXRpY19jYXN0PHNp
emVfdD4oYnl0ZXNXcml0dGVuKSwgc3RybGVuKHJlc3BvbnNlSGVhZGVyKSk7Cit9CisgICAgCiBU
RVNUKFdLV2Vic2l0ZURhdGFTdG9yZSwgRmV0Y2hOb25QZXJzaXN0ZW50Q3JlZGVudGlhbHMpCiB7
Ci0gICAgVENQU2VydmVyIHNlcnZlcihUQ1BTZXJ2ZXI6OnJlc3BvbmRXaXRoQ2hhbGxlbmdlVGhl
bk9LKTsKKyAgICBUQ1BTZXJ2ZXIgc2VydmVyKHJlc3BvbmRXaXRoQ2hhbGxlbmdlVGhlbk9LKTsK
ICAgICAKICAgICB1c2VQZXJzaXN0ZW50Q3JlZGVudGlhbFN0b3JhZ2UgPSBmYWxzZTsKICAgICBh
dXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIG5ld10p
OwpAQCAtMTM3LDcgKzE2NCw3IEBAIFRFU1QoV0tXZWJzaXRlRGF0YVN0b3JlLCBGZXRjaE5vblBl
cnNpc3RlbnRDcmVkZW50aWFscykKIAogVEVTVChXS1dlYnNpdGVEYXRhU3RvcmUsIEZldGNoUGVy
c2lzdGVudENyZWRlbnRpYWxzKQogewotICAgIFRDUFNlcnZlciBzZXJ2ZXIoVENQU2VydmVyOjpy
ZXNwb25kV2l0aENoYWxsZW5nZVRoZW5PSyk7CisgICAgVENQU2VydmVyIHNlcnZlcihyZXNwb25k
V2l0aENoYWxsZW5nZVRoZW5PSyk7CiAgICAgCiAgICAgdXNlUGVyc2lzdGVudENyZWRlbnRpYWxT
dG9yYWdlID0gdHJ1ZTsKICAgICBhdXRvIHdlYnNpdGVEYXRhU3RvcmUgPSBbV0tXZWJzaXRlRGF0
YVN0b3JlIGRlZmF1bHREYXRhU3RvcmVdOwpAQCAtMTc1LDcgKzIwMiw3IEBAIFRFU1QoV0tXZWJz
aXRlRGF0YVN0b3JlLCBGZXRjaFBlcnNpc3RlbnRDcmVkZW50aWFscykKIAogVEVTVChXS1dlYnNp
dGVEYXRhU3RvcmUsIFJlbW92ZVBlcnNpc3RlbnRDcmVkZW50aWFscykKIHsKLSAgICBUQ1BTZXJ2
ZXIgc2VydmVyKFRDUFNlcnZlcjo6cmVzcG9uZFdpdGhDaGFsbGVuZ2VUaGVuT0spOworICAgIFRD
UFNlcnZlciBzZXJ2ZXIocmVzcG9uZFdpdGhDaGFsbGVuZ2VUaGVuT0spOwogCiAgICAgdXNlUGVy
c2lzdGVudENyZWRlbnRpYWxTdG9yYWdlID0gdHJ1ZTsKICAgICBhdXRvIHdlYnNpdGVEYXRhU3Rv
cmUgPSBbV0tXZWJzaXRlRGF0YVN0b3JlIGRlZmF1bHREYXRhU3RvcmVdOwpAQCAtMjI2LDcgKzI1
Myw3IEBAIFRFU1QoV0tXZWJzaXRlRGF0YVN0b3JlLCBSZW1vdmVQZXJzaXN0ZW50Q3JlZGVudGlh
bHMpCiAKIFRFU1QoV0tXZWJzaXRlRGF0YVN0b3JlLCBSZW1vdmVOb25QZXJzaXN0ZW50Q3JlZGVu
dGlhbHMpCiB7Ci0gICAgVENQU2VydmVyIHNlcnZlcihUQ1BTZXJ2ZXI6OnJlc3BvbmRXaXRoQ2hh
bGxlbmdlVGhlbk9LKTsKKyAgICBUQ1BTZXJ2ZXIgc2VydmVyKHJlc3BvbmRXaXRoQ2hhbGxlbmdl
VGhlbk9LKTsKIAogICAgIHVzZVBlcnNpc3RlbnRDcmVkZW50aWFsU3RvcmFnZSA9IGZhbHNlOwog
ICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24g
bmV3XSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>