<?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>172529</bug_id>
          
          <creation_ts>2017-05-23 15:58:51 -0700</creation_ts>
          <short_desc>Add the support for perf try bots to sync-buildbot.js</short_desc>
          <delta_ts>2017-05-24 11:47:06 -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>Perf Dashboard</component>
          <version>Other</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>cdumez</cc>
    
    <cc>dewei_zhu</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>rniwa</cc>
    
    <cc>slewis</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1312105</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-05-23 15:58:51 -0700</bug_when>
    <thetext>Make it possible to schedule an A/B testing with a patch or roots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1312172</commentid>
    <comment_count>1</comment_count>
      <attachid>311091</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-05-23 19:58:47 -0700</bug_when>
    <thetext>Created attachment 311091
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1312174</commentid>
    <comment_count>2</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-05-23 20:01:02 -0700</bug_when>
    <thetext>&lt;rdar://problem/32089508&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1312180</commentid>
    <comment_count>3</comment_count>
      <attachid>311091</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-23 20:25:01 -0700</bug_when>
    <thetext>Comment on attachment 311091
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1312338</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-05-24 11:47:06 -0700</bug_when>
    <thetext>Committed r217378: &lt;http://trac.webkit.org/changeset/217378&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>311091</attachid>
            <date>2017-05-23 19:58:47 -0700</date>
            <delta_ts>2017-05-23 20:25:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172529-20170523195846.patch</filename>
            <type>text/plain</type>
            <size>123702</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE3MjUxCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCAwMzljZTU5ZDRiMTcyZTIxYTI3NmRhYTEzMTk4OTI1YzU4YjEzM2ZjLi45MzY5NDI5NzEw
NzE5YmM1YjQwZDg2ZTNkMzBkYzY1NDc0M2EzMDVlIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMjIgQEAKKzIwMTctMDUtMjMgIFJ5b3N1a2UgTml3YSAgPHJuaXdh
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIHRoZSBzdXBwb3J0IGZvciBwZXJmIHRyeSBib3Rz
IHRvIHN5bmMtYnVpbGRib3QuanMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE3MjUyOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE1ha2Ugc3luYy1idWlsZGJvdC5qcyBzY2hlZHVsZSBhbiBBL0IgdGVzdGlu
ZyBqb2Igd2l0aCBhIHBhdGNoIG9yIHJvb3RzIHRvIGJ1aWxkYm90LgorCisgICAgICAgIENoYW5n
ZSB0aGUgYnVpbGRib3QgcHJvcGVydHkgZm9ybWF0IGluIHRoZSBzeW5jaW5nIHNjcmlwdCdzIGNv
bmZpZ3VyYXRpb24gYWdhaW4gdG8gdXNlIGEgZGljdGlvbmFyeQorICAgICAgICB3aXRoIGEgc2lu
Z2xlIGtleSBvZiAicmV2aXNpb24iLCAicGF0Y2giLCBvciAicm9vdHMiIHRvIHNwZWNpZnkgYSBy
ZXZpc2lvbiwgYSBwYXRjaCwgb3IgYSBzZXQgb2Ygcm9vdHMsCisgICAgICAgIGFuZCBzaW1wbGlm
aWVkIHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIGNvbmZpZ3VyYXRpb24gYnkgYWx3YXlzIGhhdmluZyAi
dHlwZXMiIGFuZCAiYnVpbGRlcnMiLCBhbmQKKyAgICAgICAgbWFrZSBlYWNoIGVudHJ5IGluICJj
b25maWd1cmF0aW9ucyIgcmVmZXIgdG8gYSBsaXN0IG9mIHR5cGVzLCBwbGF0Zm9ybXMsIGFuZCBi
dWlsZGVycy4KKworICAgICAgICBTaW5jZSBub3cgdGhlcmUgYXJlIGJ1aWxkIHJlcXVlc3RzIHRv
IGJ1aWxkIHBhdGNoZXMgYW5kIHJ1biB0ZXN0cywgImNvbmZpZ3VyYXRpb25zIiBoYXMgYmVlbiBy
ZW5hbWVkIHRvCisgICAgICAgICJ0ZXN0Q29uZmlndXJhdGlvbnMiIGFuZCAiYnVpbGRDb25maWd1
cmF0aW9ucyIgaGF2ZSBiZWVuIGFkZGVkLiBFYWNoIGVudHJ5IGluICJidWlsZENvbmZpZ3VyYXRp
b25zIgorICAgICAgICBzcGVjaWZpZXMgYSBsaXN0IG9mIHBsYXRmb3JtcyBhbmQgYnVpbGRlcnMu
IFNpbWlsYXJseSBpbiByZXBvc2l0b3J5IGdyb3VwIGNvbmZpZ3VyYXRpb25zLCB0aGUgYnVpbGRi
b3QKKyAgICAgICAgcHJvcGVydGllcyBmb3IgdGVzdGluZyBpcyBub3cgc3BlY2lmaWVkIGFzICJ0
ZXN0UHJvcGVydGllcyIgYW5kIG9uZXMgZm9yIGJ1aWxkaW5nIGEgcGF0Y2ggaXMgc3BlY2lmaWVk
CisgICAgICAgIGluIG5ld2x5IGludHJvZHVjZWQgImJ1aWxkUHJvcGVydGllcyIuCisKKyAgICAg
ICAgKiBwdWJsaWMvYXBpL2J1aWxkLXJlcXVlc3RzLnBocDoKKyAgICAgICAgKHVwZGF0ZV9idWls
ZHMpOiBXaGVuIGEgYnVpbGQgcmVxdWVzdCB0byBidWlsZCBhIHBhdGNoIGZhaWxzLCBtYXJrIGFs
bCBzdWJzZXF1ZW50IHJlcXVlc3RzIGFzIGZhaWxlZAorICAgICAgICBzaW5jZSB0aGVyZSBpcyBu
byB3YXkgdG8gcnVuIHRlc3RzIHdpdGhvdXQgYSBzdWNjZXNzZnVsIGJ1aWxkLgorCisgICAgICAg
ICogcHVibGljL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUucGhwOgorICAgICAgICAobWFpbik6IFJl
LWdlbmVyYXRlIG1hbmlmZXN0Lmpzb24gYWZ0ZXIgdXBkYXRpbmcgdGhlIHRyaWdnZXJhYmxlLiBU
aGUgbGFjayBvZiB0aGlzIHJlLWdlbmVyYXRpb24gd2FzCisgICAgICAgIHRoZSByZWFzb24gd2Ug
aGFkIHRvIG1hbnVhbGx5IEdFVCAvYXBpL21hbmlmZXN0IGluIGFwaS11cGRhdGUtdHJpZ2dlcmFi
bGUtdGVzdHMuanMuCisKKyAgICAgICAgKiBwdWJsaWMvdjMvbW9kZWxzL2J1aWxkLXJlcXVlc3Qu
anM6CisgICAgICAgIChCdWlsZFJlcXVlc3QucHJvdG90eXBlLmhhc0NvbXBsZXRlZCk6IEFkZGVk
LgorCisgICAgICAgICogcHVibGljL3YzL21vZGVscy9tYW5pZmVzdC5qczoKKyAgICAgICAgKE1h
bmlmZXN0LnJlc2V0KTogQWRkZWQuIEV4dHJhY3RlZCBmcm9tIE1vY2tEYXRhLnJlc2V0VjNNb2Rl
bHMgaW4gdW5pdC10ZXN0cy9tb2NrLWRhdGEuanMgYW5kCisgICAgICAgIHN5bmNMb29wIGluIHRv
b2xzL3N5bmMtYnVpbGRib3QuanMKKyAgICAgICAgKE1hbmlmZXN0LmZldGNoKTogUmVzZXQgVjMg
bW9kZWxzIGJlZm9yZSBmZXRjaGluZyB0aGUgbWFuaWZlc3QuIFRoaXMgZWxpbWluYXRlcyB0aGUg
bmVlZCB0byBtYW51YWxseQorICAgICAgICByZXNldCBWMyBtb2RlbHMgaW4gc3luY0xvb3AuCisK
KyAgICAgICAgKiBwdWJsaWMvdjMvbW9kZWxzL3VwbG9hZGVkLWZpbGUuanM6CisgICAgICAgIChV
cGxvYWRlZEZpbGUucHJvdG90eXBlLnVybCk6IFVzZSBSZW1vdGVBUEkudXJsIHRvIGdldCB0aGUg
ZnVsbCBVUkwgaW5zdGVhZCBvZiBqdXN0IGEgcGF0aC4KKworICAgICAgICAqIHB1YmxpYy92My9y
ZW1vdGUuanM6CisgICAgICAgIChCcm93c2VyUmVtb3RlQVBJLnByb3RvdHlwZS51cmwpOiBBZGRl
ZC4gQ29uc3RydWN0cyB0aGUgZnVsbCBVUkwuCisKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvYXBp
LXVwZGF0ZS10cmlnZ2VyYWJsZS10ZXN0cy5qczoKKyAgICAgICAgKC5yZWZldGNoTWFuaWZlc3Qp
OiBEZWxldGVkLiBOb3cgdGhhdCAvYXBpL21hbmlmZXN0IHJlLWdlbmVyYXRlcyBtYW5pZmVzdC5q
c29uLCB3ZSBjYW4gc2ltcGx5IGNhbGwKKyAgICAgICAgTWFuaWZlc3QuZmV0Y2ggaW5zdGVhZC4K
KworICAgICAgICAqIHNlcnZlci10ZXN0cy9yZXNvdXJjZXMvbW9jay1kYXRhLmpzOgorICAgICAg
ICAoTW9ja0RhdGEucmVzZXRWM01vZGVscyk6IENhbGxzIE1hbmlmZXN0LnJlc2V0KCkuCisgICAg
ICAgIChNb2NrRGF0YS5hZGRNb2NrQ29uZmlndXJhdGlvbik6IEV4dHJhY3RlZCBmcm9tIGFkZE1v
Y2tEYXRhLgorICAgICAgICAoTW9ja0RhdGEuYWRkTW9ja0RhdGEpOiBVcGRhdGVkIHBlciB0aGUg
Zm9ybWF0IGNoYW5nZS4KKyAgICAgICAgKE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhT
aW5nbGVCdWlsZGVyKTogRGl0dG8uCisgICAgICAgIChNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25m
aWdXaXRoVHdvQnVpbGRlcnMpOiBEaXR0by4KKyAgICAgICAgKE1vY2tEYXRhLnJ1bm5pbmdCdWls
ZCk6IE1ha2UgYnVpbGROdW1iZXIgc3BlY2lmaWFibGUuCisgICAgICAgIChNb2NrRGF0YS5maW5p
c2hlZEJ1aWxkKTogRGl0dG8uCisKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvdG9vbHMtYnVpbGRi
b3QtdHJpZ2dlcmFibGUtdGVzdHMuanM6IFVwZGF0ZWQgY29uZmlndXJhdGlvbnMgcGVyIHRoZSBm
b3JtYXQgY2hhbmdlLgorICAgICAgICBOb3cgdGhhdCBub3cgYWNjZXB0c0N1c3RvbVJvb3RzKCkg
Zm9yICJzeXN0ZW0tYW5kLXdlYmtpdCIgbXVzdCBiZSB0cnVlIHNpbmNlIHdlIGNhbid0IGhhdmUg
YQorICAgICAgICByZXBvc2l0b3J5IGdyb3VwIHRoYXQgd2hpY2ggYWNjZXB0cyBhIHBhdGNoIGFu
ZCBub3QgdGFrZSByb290cy4KKworICAgICAgICAqIHNlcnZlci10ZXN0cy90b29scy1zeW5jLWJ1
aWxkYm90LWludGVncmF0aW9uLXRlc3RzLmpzOiBBZGRlZC4KKyAgICAgICAgKGNyZWF0ZVRyaWdn
ZXJhYmxlKTogQWRkZWQuCisgICAgICAgIChjcmVhdGVUZXN0R3JvdXBXaWhQYXRjaCk6IEFkZGVk
LgorICAgICAgICAodXBsb2FkUm9vdCk6IEFkZGVkLgorICAgICAgICAoLmFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KTogQWRkZWQuCisgICAgICAgICguYXNzZXJ0VGVzdEJ1aWxkSGFzRmFpbGVkKTog
QWRkZWQuCisKKyAgICAgICAgKiB0b29scy9qcy9idWlsZGJvdC1zeW5jZXIuanM6CisgICAgICAg
IChCdWlsZGJvdFN5bmNlcik6IEFkZGVkLiBfdHlwZSBhcyBhbiBpbnN0YW5jZSB2YXJpYWJsZSB0
byBpZGVudGlmeSB3aGV0aGVyIHRoaXMgYnVpbGRib3QgYnVpbGRlcgorICAgICAgICBpcyBhICJi
dWlsZGVyIiB3aGljaCBidWlsZHMgYSBwYXRjaCwgYnVpbGRlciwgb3IgYSAidGVzdGVyIiB3aGlj
aCBydW5zIGEgdGVzdC4gQWxzbyByZW5hbWVkCisgICAgICAgIF90ZXN0Q29uZmlndXJhdGlvbnMg
dG8gX2NvbmZpZ3VyYXRpb25zLgorICAgICAgICAoQnVpbGRib3RTeW5jZXIucHJvdG90eXBlLmFk
ZFRlc3RDb25maWd1cmF0aW9uKTogQXNzZXJ0IHRoYXQgZWl0aGVyIHRoZSB0eXBlIG9mIHRoaXMg
c3luY2VyIGhhc24ndAorICAgICAgICBiZWVuIHNldCBvciBpdCdzIGEgdGVzdGVyLgorICAgICAg
ICAoQnVpbGRib3RTeW5jZXIucHJvdG90eXBlLnRlc3RDb25maWd1cmF0aW9ucyk6IFJldHVybiBb
XSB3aGVuIGl0J3MgYSBidWlsZGVyLgorICAgICAgICAoQnVpbGRib3RTeW5jZXIucHJvdG90eXBl
LmFkZEJ1aWxkQ29uZmlndXJhdGlvbik6IEFkZGVkLiBBZGRzIGEgcGxhdGZvcm0gdG8gYSBidWls
ZGVyLgorICAgICAgICAoQnVpbGRib3RTeW5jZXIucHJvdG90eXBlLmJ1aWxkQ29uZmlndXJhdGlv
bnMpOiBBZGRlZC4gUmV0dXJucyB0aGUgbGlzdCBvZiBjb25maWd1cmF0aW9ucyBpZiB0aGlzCisg
ICAgICAgIHN5bmNlciBpcyBhIGJ1aWxkZXIuIE90aGVyd2lzZSByZXR1cm5zIFtdLgorICAgICAg
ICAoQnVpbGRib3RTeW5jZXIucHJvdG90eXBlLmlzVGVzdGVyKTogQWRkZWQuCisgICAgICAgIChC
dWlsZGJvdFN5bmNlci5wcm90b3R5cGUubWF0Y2hlc0NvbmZpZ3VyYXRpb24pOgorICAgICAgICAo
QnVpbGRib3RTeW5jZXIucHJvdG90eXBlLl9wcm9wZXJ0aWVzRm9yQnVpbGRSZXF1ZXN0KTogVXBk
YXRlZCB0byBzdXBwb3J0IHRoZSBuZXcgZm9ybWF0LgorICAgICAgICAoQnVpbGRib3RTeW5jZXIu
X2xvYWRDb25maWcpOiBEaXR0by4gT3B0aW9uYWxseSBwYXJzZSBidWlsZENvbmZpZ3VyYXRpb25z
LgorICAgICAgICAoQnVpbGRib3RTeW5jZXIuX3Jlc29sdmVCdWlsZGVyc1dpdGhQbGF0Zm9ybXMp
OiBBZGRlZC4gRm9yIGVhY2ggdGVzdCBvciBidWlsZCBjb25maWd1cmF0aW9uIGVudHJ5LAorICAg
ICAgICBjcmVhdGVzIHRoZSBsaXN0IG9mIGNvbmZpZ3VyYXRpb25zIHBlciBidWlsZGVyIGFuZCBw
bGF0Zm9ybS4KKyAgICAgICAgKEJ1aWxkYm90U3luY2VyLl9wYXJzZVJlcG9zaXRvcnlHcm91cCk6
IEFkZGVkIHRoZSBzdXBwb3J0IGZvciBwYXJzaW5nIHRoZSBuZXcgZm9ybWF0IHdpdGggcmV2aXNp
b24sCisgICAgICAgIHJvb3RzLCBhbmQgcGF0Y2ggb3B0aW9uIHR5cGVzIHdpdGggYSBsb3Qgb2Yg
dmFsaWRhdGlvbnMgYXMgd2UncmUgc2VlaW5nIGEgYml0IG9mIGNvbWJpbmF0b3JpYWwKKyAgICAg
ICAgZXhwbG9zaW9uIGluIHRoZSBudW1iZXIgb2YgdGhpbmdzIHRoYXQgY2FuIGdvIHdyb25nLiBB
bHNvIHBhcnNlIGJ1aWxkUHJvcGVydGllcyBvcHRpb25hbGx5LgorICAgICAgICAoQnVpbGRib3RT
eW5jZXIuX3BhcnNlUmVwb3NpdG9yeUdyb3VwUHJvcGVydHlUZW1wbGF0ZSk6IEFkZGVkLiBBIGhl
bHBlciBmdW5jdGlvbiB0byBwYXJzZSBhIHNldCBvZgorICAgICAgICBidWlsZGJvdCBwcm9wZXJ0
aWVzLCB2YWxpZGF0ZXMgaXRzIGNvbnRlbnQsIGFuZCBpbnZva2VzIGEgY2FsbGJhY2sgaWYgaXQn
cyBhbiBkeW5hbWljYWxseSByZXNvbHZlZAorICAgICAgICB0eXBlIHN1Y2ggYXMgInJldmlzaW9u
IiBhbmQgInBhdGNoIi4KKyAgICAgICAgKEJ1aWxkYm90U3luY2VyLl92YWxpZGF0ZUFuZE1lcmdl
Q29uZmlnKTogVXBkYXRlZCBwZXIgdGhlIGZvcm1hdCBjaGFuZ2UuIE5vIGxvbmdlciBhbGxvd3Mg
InR5cGVzIiwKKyAgICAgICAgInR5cGUiLCAicGxhdGZvcm1zIiwgYW5kICJwbGF0Zm9ybSIgYXMg
dGhleSdyZSBleHBsaWNpdHkgcmVzb2x2ZWQgaW4gX3Jlc29sdmVCdWlsZGVyc1dpdGhQbGF0Zm9y
bXMuCisKKyAgICAgICAgKiB0b29scy9qcy9idWlsZGJvdC10cmlnZ2VyYWJsZS5qczoKKyAgICAg
ICAgKEJ1aWxkYm90VHJpZ2dlcmFibGUucHJvdG90eXBlLnN5bmNPbmNlKToKKyAgICAgICAgKEJ1
aWxkYm90VHJpZ2dlcmFibGUucHJvdG90eXBlLl92YWxpZGF0ZVJlcXVlc3RzKTogSGFuZGxlIHRo
ZSBjYXNlIHdoZW4gYSBidWlsZCByZXF1ZXN0IGlzIG5vdAorICAgICAgICBhc3NvY2lhdGVkIHdp
dGggYW55IHRlc3QuCisgICAgICAgIChCdWlsZGJvdFRyaWdnZXJhYmxlLnByb3RvdHlwZS5fbmV4
dFJlcXVlc3RJbkdyb3VwKTogUmV0dXJuIG51bGwgd2hlbiB0aGVyZSBpcyBhIGJ1aWxkIHJlcXVl
c3QgdG8KKyAgICAgICAgYnVpbGQgYSBwYXRjaCB3aGljaCBoYXMgbm90IGJlZW4gY29tcGxldGVk
IChwZW5kaW5nLCBzY2hlZHVsZWQsIHJ1bm5pbmcsIG9yIGZhaWxlZCkuIFNpbmNlIGFsbAorICAg
ICAgICByZXF1ZXN0cyB0byBidWlsZCBhIHBhdGNoIGhhcyBhIG5lZ2F0aXZlIG9yZGVyLCB0aG9z
ZSByZXF1ZXN0cyBzaG91bGQgYWxsIHNob3cgdXAgYXQgdGhlIGJlZ2lubmluZy4KKyAgICAgICAg
KEJ1aWxkYm90VHJpZ2dlcmFibGUucHJvdG90eXBlLl9zY2hlZHVsZVJlcXVlc3RJZlNsYXZlSXNB
dmFpbGFibGUpOiBQaWNrIGEgbmV3IGJ1aWxkYm90IHN5bmNlciB3aGVuCisgICAgICAgIHNjaGVk
dWxpbmcgdGhlIGZpcnN0IHJlcXVlc3QgdG8gYnVpbGQgYSBwYXRjaCBvciB0aGUgZmlyc3QgcmVx
dWVzdCB0byBydW4gYSB0ZXN0LiBUaGUgZmlyc3QgcmVxdWVzdAorICAgICAgICB0byBydW4gYSB0
ZXN0IHdpbGwgYWx3YXlzIGhhdmUgb3JkZXIgb2YgMCwgc28gaXQncyBhIHN1ZmZpY2llbnQgY29u
ZGl0aW9uIHRvIGZpbmQgc3VjaCBhIHJlcXVlc3QuCisgICAgICAgIE9uIHRoZSBvdGhlciBoYW5k
LCB0aGUgZmlyc3QgcmVxdWVzdCB0byBidWlsZCBhIHBhdGNoIGNhbiBoYXZlIGEgbmVnYXRpdmUg
b3JkZXIgbnVtYmVyIHNvIHdlIG11c3QKKyAgICAgICAgZXhwbGljaXRseSBjaGVjayBpZiBpdCdz
IHRoZSBmaXJzdCBpdGVtIGluIHRoZSBvcmRlcmVkIGxpc3Qgb2YgcmVxdWVzdHMgaW4gdGhlIHRl
c3QgZ3JvdXAuCisKKyAgICAgICAgKiB0b29scy9yZW1vdGUtc2VydmVyLXJlbGF5LmxvZzogQWRk
ZWQuCisKKyAgICAgICAgKiB0b29scy9zeW5jLWJ1aWxkYm90LmpzOgorICAgICAgICAoc3luY0xv
b3ApOiBGaXhlZCBhIGJ1ZyB3ZSB3ZXJlIG5vdCByZS1mZXRjaGluZyB0aGUgdHJpZ2dlcmFibGUg
YWZ0ZXIgdXBkYXRpbmcgdGhlIHRyaWdnZXJhYmxlIHNvCisgICAgICAgIHRoYXQgVHJpZ2dlcmFi
bGUgYW5kIHJlbGF0ZWQgb2JqZWN0cyB3ZSBoYXZlIGluIHRoZSBtZW1vcnkgbWF5IG5vdCByZWZs
ZWN0IHdoYXQgd2UganVzdCBzeW5jZWQgdG8KKyAgICAgICAgdGhlIHBlcmYgZGFzaGJvYXJkLiBB
bHNvLCB3ZSBkb24ndCByZXNldCBWMyBtb2RlbHMgbWFudWFsbHkgYW55IG1vcmUgc2luY2UgTWFu
aWZlc3QuZmV0Y2ggZG9lcyB0aGF0LgorCisgICAgICAgICogdW5pdC10ZXN0cy9idWlsZGJvdC1z
eW5jZXItdGVzdHMuanM6IEFkZGVkIG1vcmUgdGVzdCBjYXNlcyBhbmQgdXBkYXRlZCBleGlzdGlu
ZyB0ZXN0IGNhc2VzIHRvIHRlc3QKKyAgICAgICAgZXhjZXB0aW9uIG1lc3NhZ2VzIGV4cGxpY2l0
bHkgc2luY2UgYWxsb3dpbmcgYW55IGV4Y2VwdGlvbiB3YXMgcmVzdWx0aW5nIGluIHNvbWUgdGVz
dHMgcGFzc2luZyBhCisgICAgICAgIHJlc3VsdCBvZiB1bnJlbGF0ZWQgcGFyc2luZyBlcnJvciBi
ZWluZyB0aHJvd24sIGV0Yy4uLgorICAgICAgICAoc2FtcGxlaU9TQ29uZmlnKTogVXBkYXRlZCBw
ZXIgdGhlIGZvcm1hdCBjaGFuZ2UuCisgICAgICAgIChzYW1wbGVpT1NDb25maWdXaXRoRXhwYW5z
aW9ucyk6IERpdHRvLgorICAgICAgICAoc21hbGxDb25maWd1cmF0aW9uKTogRGl0dG8uCisKIDIw
MTctMDUtMjIgIERld2VpIFpodSAgPGRld2VpX3podUBhcHBsZS5jb20+CiAKICAgICAgICAgRml4
IHRoZSBidWcgdGhhdCBzb21ldGltZXMgYW5hbHlzaXMgdGFzayByZXN1bHRzIHBhbmUgaXMgbWlz
c2luZy4KZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvYXBpL2J1
aWxkLXJlcXVlc3RzLnBocCBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvYXBpL2J1
aWxkLXJlcXVlc3RzLnBocAppbmRleCA3NmI5Yzg2ZDNiYjQyZjk1YTcyZWJhMzQ3NjRiYTZhMzY5
MjU2YjA0Li5hNTI3M2ZhMzkxYzM2NDU5YjI4OGVjNmQ5NmM2Y2UwMjE2MjhmZTVkIDEwMDY0NAot
LS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2FwaS9idWlsZC1yZXF1ZXN0cy5w
aHAKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9hcGkvYnVpbGQtcmVxdWVz
dHMucGhwCkBAIC00Niw4ICs0NiwyMCBAQCBmdW5jdGlvbiB1cGRhdGVfYnVpbGRzKCRkYiwgJHVw
ZGF0ZXMpIHsKICAgICAgICAgJHN0YXR1cyA9ICRpbmZvWydzdGF0dXMnXTsKICAgICAgICAgJHVy
bCA9IGFycmF5X2dldCgkaW5mbywgJ3VybCcpOwogICAgICAgICBpZiAoJHN0YXR1cyA9PSAnZmFp
bGVkSWZOb3RDb21wbGV0ZWQnKSB7Ci0gICAgICAgICAgICAkZGItPnF1ZXJ5X2FuZF9nZXRfYWZm
ZWN0ZWRfcm93cygnVVBEQVRFIGJ1aWxkX3JlcXVlc3RzIFNFVCAocmVxdWVzdF9zdGF0dXMsIHJl
cXVlc3RfdXJsKSA9ICgkMSwgJDIpCi0gICAgICAgICAgICAgICAgV0hFUkUgcmVxdWVzdF9pZCA9
ICQzIEFORCByZXF1ZXN0X3N0YXR1cyAhPSAkNCcsIGFycmF5KCdmYWlsZWQnLCAkdXJsLCAkaWQs
ICdjb21wbGV0ZWQnKSk7CisgICAgICAgICAgICAkcmVxdWVzdF9yb3cgPSAkZGItPnNlbGVjdF9m
aXJzdF9yb3coJ2J1aWxkX3JlcXVlc3RzJywgJ3JlcXVlc3QnLCBhcnJheSgnaWQnID0+ICRpZCkp
OworICAgICAgICAgICAgaWYgKCEkcmVxdWVzdF9yb3cpIHsKKyAgICAgICAgICAgICAgICAkZGIt
PnJvbGxiYWNrX3RyYW5zYWN0aW9uKCk7CisgICAgICAgICAgICAgICAgZXhpdF93aXRoX2Vycm9y
KCdGYWlsZWRUb0ZpbmRCdWlsZFJlcXVlc3QnLCBhcnJheSgnYnVpbGRSZXF1ZXN0JyA9PiAkaWQp
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICgkcmVxdWVzdF9yb3dbJ3JlcXVlc3Rf
c3RhdHVzJ10gPT0gJ2NvbXBsZXRlZCcpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAg
ICAgICAgICAkaXNfYnVpbGQgPSAkcmVxdWVzdF9yb3dbJ3JlcXVlc3Rfb3JkZXInXSA8IDA7Cisg
ICAgICAgICAgICBpZiAoJGlzX2J1aWxkKSB7CisgICAgICAgICAgICAgICAgJGRiLT5xdWVyeV9h
bmRfZmV0Y2hfYWxsKCdVUERBVEUgYnVpbGRfcmVxdWVzdHMgU0VUIHJlcXVlc3Rfc3RhdHVzID0g
XCdmYWlsZWRcJworICAgICAgICAgICAgICAgICAgICBXSEVSRSByZXF1ZXN0X2dyb3VwID0gJDEg
QU5EIHJlcXVlc3Rfb3JkZXIgPiAkMicsCisgICAgICAgICAgICAgICAgICAgIGFycmF5KCRyZXF1
ZXN0X3Jvd1sncmVxdWVzdF9ncm91cCddLCAkcmVxdWVzdF9yb3dbJ3JlcXVlc3Rfb3JkZXInXSkp
OworICAgICAgICAgICAgfQorICAgICAgICAgICAgJGRiLT51cGRhdGVfcm93KCdidWlsZF9yZXF1
ZXN0cycsICdyZXF1ZXN0JywgYXJyYXkoJ2lkJyA9PiAkaWQpLCBhcnJheSgnc3RhdHVzJyA9PiAn
ZmFpbGVkJywgJ3VybCcgPT4gJHVybCkpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAg
aWYgKCFpbl9hcnJheSgkc3RhdHVzLCBhcnJheSgncGVuZGluZycsICdzY2hlZHVsZWQnLCAncnVu
bmluZycsICdmYWlsZWQnLCAnY29tcGxldGVkJykpKSB7CiAgICAgICAgICAgICAgICAgJGRiLT5y
b2xsYmFja190cmFuc2FjdGlvbigpOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3B1YmxpYy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLnBocCBiL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9wdWJsaWMvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS5waHAKaW5kZXggZjViMjJiNWJh
ZmMyNDkzMjVjNDlkNWE3MDM4YzQxNTFiZjAxZDU4ZC4uZDhmOTNlNzMxYjUxMmY3YzQ4NGFhNjc5
OTQxYzgxZmY4ZWVmZjMxZiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1
YmxpYy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLnBocAorKysgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvcHVibGljL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUucGhwCkBAIC0xLDYgKzEsNyBAQAog
PD9waHAKIAogcmVxdWlyZV9vbmNlKCcuLi9pbmNsdWRlL2pzb24taGVhZGVyLnBocCcpOworcmVx
dWlyZV9vbmNlKCcuLi9pbmNsdWRlL21hbmlmZXN0LWdlbmVyYXRvci5waHAnKTsKIHJlcXVpcmVf
b25jZSgnLi4vaW5jbHVkZS9yZXBvc2l0b3J5LWdyb3VwLWZpbmRlci5waHAnKTsKIAogZnVuY3Rp
b24gbWFpbigkcG9zdF9kYXRhKQpAQCAtNzgsNiArNzksMTQgQEAgZnVuY3Rpb24gbWFpbigkcG9z
dF9kYXRhKQogICAgIH0KIAogICAgICRkYi0+Y29tbWl0X3RyYW5zYWN0aW9uKCk7CisKKyAgICAk
Z2VuZXJhdG9yID0gbmV3IE1hbmlmZXN0R2VuZXJhdG9yKCRkYik7CisgICAgaWYgKCEkZ2VuZXJh
dG9yLT5nZW5lcmF0ZSgpKQorICAgICAgICBleGl0X3dpdGhfZXJyb3IoJ0ZhaWxlZFRvR2VuZXJh
dGVNYW5pZmVzdCcpOworCisgICAgaWYgKCEkZ2VuZXJhdG9yLT5zdG9yZSgpKQorICAgICAgICBl
eGl0X3dpdGhfZXJyb3IoJ0ZhaWxlZFRvU3RvcmVNYW5pZmVzdCcpOworCiAgICAgZXhpdF93aXRo
X3N1Y2Nlc3MoKTsKIH0KIApkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1
YmxpYy92My9tb2RlbHMvYnVpbGQtcmVxdWVzdC5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9wdWJsaWMvdjMvbW9kZWxzL2J1aWxkLXJlcXVlc3QuanMKaW5kZXggOTdkYWFjMDZjZDg5OGQx
NTZlYmI4OTgxZDQ1NjlmMDI1ZTU2NTlhNy4uMzJhZDQzMTJiZGJjMzI1NzVhOWU2YTE4MjY5ZGFj
MDZhMTRjYzNlMyAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92
My9tb2RlbHMvYnVpbGQtcmVxdWVzdC5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
cHVibGljL3YzL21vZGVscy9idWlsZC1yZXF1ZXN0LmpzCkBAIC01Miw2ICs1Miw3IEBAIGNsYXNz
IEJ1aWxkUmVxdWVzdCBleHRlbmRzIERhdGFNb2RlbE9iamVjdCB7CiAKICAgICBzdGF0dXMoKSB7
IHJldHVybiB0aGlzLl9zdGF0dXM7IH0KICAgICBoYXNGaW5pc2hlZCgpIHsgcmV0dXJuIHRoaXMu
X3N0YXR1cyA9PSAnZmFpbGVkJyB8fCB0aGlzLl9zdGF0dXMgPT0gJ2NvbXBsZXRlZCcgfHwgdGhp
cy5fc3RhdHVzID09ICdjYW5jZWxlZCc7IH0KKyAgICBoYXNDb21wbGV0ZWQoKSB7IHJldHVybiB0
aGlzLl9zdGF0dXMgPT0gJ2NvbXBsZXRlZCc7IH0KICAgICBoYXNTdGFydGVkKCkgeyByZXR1cm4g
dGhpcy5fc3RhdHVzICE9ICdwZW5kaW5nJzsgfQogICAgIGlzU2NoZWR1bGVkKCkgeyByZXR1cm4g
dGhpcy5fc3RhdHVzID09ICdzY2hlZHVsZWQnOyB9CiAgICAgaXNQZW5kaW5nKCkgeyByZXR1cm4g
dGhpcy5fc3RhdHVzID09ICdwZW5kaW5nJzsgfQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvbWFuaWZlc3QuanMgYi9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9tYW5pZmVzdC5qcwppbmRleCAxNjUxZGUwNGY3MzMz
NGU2ZTBmNzUxY2U5YTJjYThmNzIyODA5Y2JiLi5hZjU5N2U2NjcwOTY2NDY4ZDA2MTM5YWY3NTNm
MzdkZWM3OWI0ZTU1IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGlj
L3YzL21vZGVscy9tYW5pZmVzdC5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVi
bGljL3YzL21vZGVscy9tYW5pZmVzdC5qcwpAQCAtMiw4ICsyLDI2IEBACiAKIGNsYXNzIE1hbmlm
ZXN0IHsKIAorICAgIHN0YXRpYyByZXNldCgpCisgICAgeworICAgICAgICBBbmFseXNpc1Rhc2su
X2ZldGNoQWxsUHJvbWlzZSA9IG51bGw7CisgICAgICAgIEFuYWx5c2lzVGFzay5jbGVhclN0YXRp
Y01hcCgpOworICAgICAgICBCdWlsZFJlcXVlc3QuY2xlYXJTdGF0aWNNYXAoKTsKKyAgICAgICAg
Q29tbWl0TG9nLmNsZWFyU3RhdGljTWFwKCk7CisgICAgICAgIE1ldHJpYy5jbGVhclN0YXRpY01h
cCgpOworICAgICAgICBQbGF0Zm9ybS5jbGVhclN0YXRpY01hcCgpOworICAgICAgICBSZXBvc2l0
b3J5LmNsZWFyU3RhdGljTWFwKCk7CisgICAgICAgIENvbW1pdFNldC5jbGVhclN0YXRpY01hcCgp
OworICAgICAgICBUZXN0LmNsZWFyU3RhdGljTWFwKCk7CisgICAgICAgIFRlc3RHcm91cC5jbGVh
clN0YXRpY01hcCgpOworICAgICAgICBUcmlnZ2VyYWJsZS5jbGVhclN0YXRpY01hcCgpOworICAg
ICAgICBUcmlnZ2VyYWJsZVJlcG9zaXRvcnlHcm91cC5jbGVhclN0YXRpY01hcCgpOworICAgICAg
ICBVcGxvYWRlZEZpbGUuY2xlYXJTdGF0aWNNYXAoKTsKKyAgICB9CisKICAgICBzdGF0aWMgZmV0
Y2goKQogICAgIHsKKyAgICAgICAgdGhpcy5yZXNldCgpOwogICAgICAgICByZXR1cm4gUmVtb3Rl
QVBJLmdldEpTT04oJy9kYXRhL21hbmlmZXN0Lmpzb24nKS5jYXRjaChmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICByZXR1cm4gUmVtb3RlQVBJLmdldEpTT04oJy9hcGkvbWFuaWZlc3QvJyk7CiAg
ICAgICAgIH0pLnRoZW4odGhpcy5fZGlkRmV0Y2hNYW5pZmVzdC5iaW5kKHRoaXMpKTsKZGlmZiAt
LWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL3VwbG9hZGVk
LWZpbGUuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy91cGxv
YWRlZC1maWxlLmpzCmluZGV4IGQ3YWI0YWM3ZmE1MmFjMDg4MjM5OTAwYjI2ODI4ODc0MGUzNmI2
Y2QuLjRmZGYzNDc1MjM3M2JmMDA4M2Y2ZjcyYzBkZWYxMjUxNzZlZWY2NDkgMTAwNjQ0Ci0tLSBh
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL3VwbG9hZGVkLWZpbGUu
anMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvdXBsb2Fk
ZWQtZmlsZS5qcwpAQCAtMTksNyArMTksNyBAQCBjbGFzcyBVcGxvYWRlZEZpbGUgZXh0ZW5kcyBE
YXRhTW9kZWxPYmplY3QgewogICAgIGF1dGhvcigpIHsgcmV0dXJuIHRoaXMuX2F1dGhvcjsgfQog
ICAgIHNpemUoKSB7IHJldHVybiB0aGlzLl9zaXplOyB9CiAgICAgbGFiZWwoKSB7IHJldHVybiB0
aGlzLmZpbGVuYW1lKCk7IH0KLSAgICB1cmwoKSB7IHJldHVybiBgL2FwaS91cGxvYWRlZC1maWxl
LyR7dGhpcy5pZCgpfWA7IH0KKyAgICB1cmwoKSB7IHJldHVybiBSZW1vdGVBUEkudXJsKGAvYXBp
L3VwbG9hZGVkLWZpbGUvJHt0aGlzLmlkKCl9YCk7IH0KIAogICAgIHN0YXRpYyB1cGxvYWRGaWxl
KGZpbGUsIHVwbG9hZFByb2dyZXNzQ2FsbGJhY2sgPSBudWxsKQogICAgIHsKZGlmZiAtLWdpdCBh
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvcmVtb3RlLmpzIGIvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9yZW1vdGUuanMKaW5kZXggNmEwMGYxODJjMmQ3YmU1
MTAzYjUyOGNkZWFkNGE1MzVhMDhiY2I3OS4uNTEzYzgwNzI5MjQ2YjMyZDM5Y2EzN2RiMzBmZTZh
NTY3ZTI4NmJmZCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92
My9yZW1vdGUuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9yZW1v
dGUuanMKQEAgLTIsNiArMiwxMyBAQAogCiBjbGFzcyBCcm93c2VyUmVtb3RlQVBJIGV4dGVuZHMg
Q29tbW9uUmVtb3RlQVBJIHsKIAorICAgIHVybChwYXRoKQorICAgIHsKKyAgICAgICAgaWYgKHBh
dGguY2hhckF0KDApICE9ICcvJykKKyAgICAgICAgICAgIHBhdGggPSAnLycgKyBwYXRoOworICAg
ICAgICByZXR1cm4gYCR7bG9jYXRpb24ucHJvdG9jb2x9Ly8ke2xvY2F0aW9uLmhvc3R9JHtwYXRo
fWA7CisgICAgfQorCiAgICAgc2VuZEh0dHBSZXF1ZXN0KHBhdGgsIG1ldGhvZCwgY29udGVudFR5
cGUsIGNvbnRlbnQsIG9wdGlvbnMgPSB7fSkKICAgICB7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0
KCFwYXRoLnN0YXJ0c1dpdGgoJ2h0dHA6JykgJiYgIXBhdGguc3RhcnRzV2l0aCgnaHR0cHM6Jykg
JiYgIXBhdGguc3RhcnRzV2l0aCgnZmlsZTonKSk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS11cGRhdGUtdHJpZ2dlcmFibGUtdGVzdHMuanMg
Yi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS11cGRhdGUtdHJpZ2dl
cmFibGUtdGVzdHMuanMKaW5kZXggMmI0NmYzZDljODM0MzIzOGFjNTY1MjdjMjhlMzNhY2Y5YTBh
MzVmZS4uZmZmMmFjZjFmYjYzOWFiM2U5OGEyYjFiN2IzZDQwNmRmMWFjYzdlMSAxMDA2NDQKLS0t
IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktdXBkYXRlLXRyaWdn
ZXJhYmxlLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVz
dHMvYXBpLXVwZGF0ZS10cmlnZ2VyYWJsZS10ZXN0cy5qcwpAQCAtMzMwLDEyICszMzAsNiBAQCBk
ZXNjcmliZSgnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgZnVuY3Rpb24gKCkgewogICAgICAg
ICByZXR1cm4gbWFwOwogICAgIH0KIAotICAgIGZ1bmN0aW9uIHJlZmV0Y2hNYW5pZmVzdCgpCi0g
ICAgewotICAgICAgICBNb2NrRGF0YS5yZXNldFYzTW9kZWxzKCk7Ci0gICAgICAgIHJldHVybiBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvbWFuaWZlc3QnKS50aGVuKChjb250
ZW50KSA9PiBNYW5pZmVzdC5fZGlkRmV0Y2hNYW5pZmVzdChjb250ZW50KSk7Ci0gICAgfQotCiAg
ICAgaXQoJ3Nob3VsZCB1cGRhdGUgdGhlIGFjY2VwdGFibGUgb2YgY3VzdG9tIHJvb3RzIGFuZCBw
YXRjaGVzJywgKCkgPT4gewogICAgICAgICBjb25zdCBkYiA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2Uo
KTsKICAgICAgICAgY29uc3QgaW5pdGlhbFVwZGF0ZSA9IHVwZGF0ZVdpdGhNYWNXZWJLaXRSZXBv
c2l0b3J5R3JvdXBzKCk7CkBAIC0zNDYsNyArMzQwLDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRl
LXRyaWdnZXJhYmxlLycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBhZGRTbGF2
ZUZvclJlcG9ydChpbml0aWFsVXBkYXRlKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAg
ICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTldpdGhTdGF0dXMo
Jy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGluaXRpYWxVcGRhdGUpOwotICAgICAgICB9KS50
aGVuKCgpID0+IHJlZmV0Y2hNYW5pZmVzdCgpKS50aGVuKCgpID0+IHsKKyAgICAgICAgfSkudGhl
bigoKSA9PiBNYW5pZmVzdC5mZXRjaCgpKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGNvbnN0
IHJlcG9zaXRvcnlHcm91cHMgPSBUcmlnZ2VyYWJsZVJlcG9zaXRvcnlHcm91cC5zb3J0QnlOYW1l
KFRyaWdnZXJhYmxlUmVwb3NpdG9yeUdyb3VwLmFsbCgpKTsKICAgICAgICAgICAgIGNvbnN0IHdl
YmtpdCA9IFJlcG9zaXRvcnkuZmluZFRvcExldmVsQnlOYW1lKCdXZWJLaXQnKTsKICAgICAgICAg
ICAgIGNvbnN0IG1hY29zID0gUmVwb3NpdG9yeS5maW5kVG9wTGV2ZWxCeU5hbWUoJ21hY09TJyk7
CkBAIC0zNjUsNyArMzU5LDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXBvc2l0b3J5R3JvdXBz
WzFdLmFjY2VwdHNQYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgZmFsc2UpOwogICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcG9zaXRvcnlHcm91cHNbMV0uYWNjZXB0c1BhdGNoRm9yUmVwb3Np
dG9yeShtYWNvcyksIGZhbHNlKTsKICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLnBvc3RKU09OV2l0aFN0YXR1cygnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgc2Vj
b25kVXBkYXRlKTsKLSAgICAgICAgfSkudGhlbigoKSA9PiByZWZldGNoTWFuaWZlc3QoKSkudGhl
bigoKSA9PiB7CisgICAgICAgIH0pLnRoZW4oKCkgPT4gTWFuaWZlc3QuZmV0Y2goKSkudGhlbigo
KSA9PiB7CiAgICAgICAgICAgICBjb25zdCByZXBvc2l0b3J5R3JvdXBzID0gVHJpZ2dlcmFibGVS
ZXBvc2l0b3J5R3JvdXAuc29ydEJ5TmFtZShUcmlnZ2VyYWJsZVJlcG9zaXRvcnlHcm91cC5hbGwo
KSk7CiAgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRUb3BMZXZlbEJ5
TmFtZSgnV2ViS2l0Jyk7CiAgICAgICAgICAgICBjb25zdCBtYWNvcyA9IFJlcG9zaXRvcnkuZmlu
ZFRvcExldmVsQnlOYW1lKCdtYWNPUycpOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvbW9jay1kYXRhLmpzIGIvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvbW9jay1kYXRhLmpzCmluZGV4IDMw
N2M4Zjg0ZjBjMDFjYzQwMWNmYzhhOTZiMjY2OTdjMjQ0YmVkNzUuLmUxYTY5YWYzYTk3MDdmODFi
ZmJkNDQxOGM5ZTdiNjM3ZmI2Zjg5MDMgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL21vY2stZGF0YS5qcworKysgYi9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jlc291cmNlcy9tb2NrLWRhdGEuanMKQEAgLTUs
MTggKzUsNyBAQCB2YXIgY3J5cHRvID0gcmVxdWlyZSgnY3J5cHRvJyk7CiBNb2NrRGF0YSA9IHsK
ICAgICByZXNldFYzTW9kZWxzOiBmdW5jdGlvbiAoKQogICAgIHsKLSAgICAgICAgQW5hbHlzaXNU
YXNrLl9mZXRjaEFsbFByb21pc2UgPSBudWxsOwotICAgICAgICBBbmFseXNpc1Rhc2suY2xlYXJT
dGF0aWNNYXAoKTsKLSAgICAgICAgQnVpbGRSZXF1ZXN0LmNsZWFyU3RhdGljTWFwKCk7Ci0gICAg
ICAgIENvbW1pdExvZy5jbGVhclN0YXRpY01hcCgpOwotICAgICAgICBNZXRyaWMuY2xlYXJTdGF0
aWNNYXAoKTsKLSAgICAgICAgUGxhdGZvcm0uY2xlYXJTdGF0aWNNYXAoKTsKLSAgICAgICAgUmVw
b3NpdG9yeS5jbGVhclN0YXRpY01hcCgpOwotICAgICAgICBDb21taXRTZXQuY2xlYXJTdGF0aWNN
YXAoKTsKLSAgICAgICAgVGVzdC5jbGVhclN0YXRpY01hcCgpOwotICAgICAgICBUZXN0R3JvdXAu
Y2xlYXJTdGF0aWNNYXAoKTsKLSAgICAgICAgVHJpZ2dlcmFibGUuY2xlYXJTdGF0aWNNYXAoKTsK
LSAgICAgICAgVHJpZ2dlcmFibGVSZXBvc2l0b3J5R3JvdXAuY2xlYXJTdGF0aWNNYXAoKTsKKyAg
ICAgICAgTWFuaWZlc3QucmVzZXQoKTsKICAgICB9LAogICAgIGVtcHR5VHJpZ2dlcmFnYmxlSWQo
KSB7IHJldHVybiAxMDAxOyB9LAogICAgIHNvbWVUZXN0SWQoKSB7IHJldHVybiAyMDA7IH0sCkBA
IC0yNiwxMCArMTUsOCBAQCBNb2NrRGF0YSA9IHsKICAgICB3ZWJraXRSZXBvc2l0b3J5SWQoKSB7
IHJldHVybiAxMTsgfSwKICAgICBnaXRXZWJraXRSZXBvc2l0b3J5SWQoKSB7IHJldHVybiAxMTE7
IH0sCiAgICAgc2hhcmVkUmVwb3NpdG9yeUlkKCkgeyByZXR1cm4gMTQ7IH0sCi0gICAgYWRkTW9j
a0RhdGE6IGZ1bmN0aW9uIChkYiwgc3RhdHVzTGlzdCkKKyAgICBhZGRNb2NrQ29uZmlndXJhdGlv
bjogZnVuY3Rpb24gKGRiKQogICAgIHsKLSAgICAgICAgaWYgKCFzdGF0dXNMaXN0KQotICAgICAg
ICAgICAgc3RhdHVzTGlzdCA9IFsncGVuZGluZycsICdwZW5kaW5nJywgJ3BlbmRpbmcnLCAncGVu
ZGluZyddOwogICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoWwogICAgICAgICAgICAgZGIuaW5z
ZXJ0KCdidWlsZF90cmlnZ2VyYWJsZXMnLCB7aWQ6IDEwMDAsIG5hbWU6ICdidWlsZC13ZWJraXQn
fSksCiAgICAgICAgICAgICBkYi5pbnNlcnQoJ2J1aWxkX3NsYXZlcycsIHtpZDogMjAsIG5hbWU6
ICdzeW5jLXNsYXZlJywgcGFzc3dvcmRfaGFzaDogY3J5cHRvLmNyZWF0ZUhhc2goJ3NoYTI1Nicp
LnVwZGF0ZSgncGFzc3dvcmQnKS5kaWdlc3QoJ2hleCcpfSksCkBAIC01Miw2ICszOSwxNCBAQCBN
b2NrRGF0YSA9IHsKICAgICAgICAgICAgIGRiLmluc2VydCgndGVzdF9jb25maWd1cmF0aW9ucycs
IHtpZDogMzAxLCBtZXRyaWM6IDMwMCwgcGxhdGZvcm06IE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlk
KCksIHR5cGU6ICdjdXJyZW50J30pLAogICAgICAgICAgICAgZGIuaW5zZXJ0KCd0ZXN0X2NvbmZp
Z3VyYXRpb25zJywge2lkOiAzMDIsIG1ldHJpYzogMzAwLCBwbGF0Zm9ybTogTW9ja0RhdGEub3Ro
ZXJQbGF0Zm9ybUlkKCksIHR5cGU6ICdjdXJyZW50J30pLAogICAgICAgICAgICAgZGIuaW5zZXJ0
KCd0ZXN0X3J1bnMnLCB7aWQ6IDgwMSwgY29uZmlnOiAzMDEsIGJ1aWxkOiA5MDEsIG1lYW5fY2Fj
aGU6IDEwMH0pLAorICAgICAgICBdKTsKKyAgICB9LAorICAgIGFkZE1vY2tEYXRhOiBmdW5jdGlv
biAoZGIsIHN0YXR1c0xpc3QpCisgICAgeworICAgICAgICBpZiAoIXN0YXR1c0xpc3QpCisgICAg
ICAgICAgICBzdGF0dXNMaXN0ID0gWydwZW5kaW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZycsICdw
ZW5kaW5nJ107CisgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbCisgICAgICAgICAgICB0aGlz
LmFkZE1vY2tDb25maWd1cmF0aW9uKGRiKSwKICAgICAgICAgICAgIGRiLmluc2VydCgnY29tbWl0
X3NldHMnLCB7aWQ6IDQwMX0pLAogICAgICAgICAgICAgZGIuaW5zZXJ0KCdjb21taXRfc2V0X2l0
ZW1zJywge3NldDogNDAxLCBjb21taXQ6IDg3ODMyfSksCiAgICAgICAgICAgICBkYi5pbnNlcnQo
J2NvbW1pdF9zZXRfaXRlbXMnLCB7c2V0OiA0MDEsIGNvbW1pdDogOTMxMTZ9KSwKQEAgLTEyOCwx
NyArMTIzLDIzIEBAIE1vY2tEYXRhID0gewogICAgICAgICAgICAgJ3JlcG9zaXRvcnlHcm91cHMn
OiB7CiAgICAgICAgICAgICAgICAgJ3dlYmtpdC1zdm4nOiB7CiAgICAgICAgICAgICAgICAgICAg
ICdyZXBvc2l0b3JpZXMnOiB7J1dlYktpdCc6IHt9LCAnbWFjT1MnOiB7fX0sCi0gICAgICAgICAg
ICAgICAgICAgICdwcm9wZXJ0aWVzJzogewotICAgICAgICAgICAgICAgICAgICAgICAgJ29zJzog
JzxtYWNPUz4nLAotICAgICAgICAgICAgICAgICAgICAgICAgJ3drJzogJzxXZWJLaXQ+JywKKyAg
ICAgICAgICAgICAgICAgICAgJ3Rlc3RQcm9wZXJ0aWVzJzogeworICAgICAgICAgICAgICAgICAg
ICAgICAgJ29zJzogeydyZXZpc2lvbic6ICdtYWNPUyd9LAorICAgICAgICAgICAgICAgICAgICAg
ICAgJ3drJzogeydyZXZpc2lvbic6ICdXZWJLaXQnfSwKICAgICAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAnY29uZmlndXJh
dGlvbnMnOiBbCisgICAgICAgICAgICAndHlwZXMnOiB7CisgICAgICAgICAgICAgICAgJ3NvbWUt
dGVzdCc6IHsndGVzdCc6IFsnc29tZSB0ZXN0J119CisgICAgICAgICAgICB9LAorICAgICAgICAg
ICAgJ2J1aWxkZXJzJzogeworICAgICAgICAgICAgICAgICdidWlsZGVyLTEnOiB7J2J1aWxkZXIn
OiAnc29tZS1idWlsZGVyLTEnfSwKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAndGVzdENv
bmZpZ3VyYXRpb25zJzogWwogICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAg
J3BsYXRmb3JtJzogJ3NvbWUgcGxhdGZvcm0nLAotICAgICAgICAgICAgICAgICAgICAndGVzdCc6
IFsnc29tZSB0ZXN0J10sCi0gICAgICAgICAgICAgICAgICAgICdidWlsZGVyJzogJ3NvbWUtYnVp
bGRlci0xJywKKyAgICAgICAgICAgICAgICAgICAgJ3BsYXRmb3Jtcyc6IFsnc29tZSBwbGF0Zm9y
bSddLAorICAgICAgICAgICAgICAgICAgICAndHlwZXMnOiBbJ3NvbWUtdGVzdCddLAorICAgICAg
ICAgICAgICAgICAgICAnYnVpbGRlcnMnOiBbJ2J1aWxkZXItMSddLAogICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIF0KICAgICAgICAgfQpAQCAtMTUyLDIyICsxNTMsMjQgQEAgTW9ja0Rh
dGEgPSB7CiAgICAgICAgICAgICAncmVwb3NpdG9yeUdyb3Vwcyc6IHsKICAgICAgICAgICAgICAg
ICAnd2Via2l0LXN2bic6IHsKICAgICAgICAgICAgICAgICAgICAgJ3JlcG9zaXRvcmllcyc6IHsn
V2ViS2l0Jzoge30sICdtYWNPUyc6IHt9fSwKLSAgICAgICAgICAgICAgICAgICAgJ3Byb3BlcnRp
ZXMnOiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAnb3MnOiAnPG1hY09TPicsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAnd2snOiAnPFdlYktpdD4nLAorICAgICAgICAgICAgICAgICAgICAn
dGVzdFByb3BlcnRpZXMnOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAnb3MnOiB7J3Jldmlz
aW9uJzogJ21hY09TJ30sCisgICAgICAgICAgICAgICAgICAgICAgICAnd2snOiB7J3JldmlzaW9u
JzogJ1dlYktpdCd9LAogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICdjb25maWd1cmF0aW9ucyc6IFsKLSAgICAgICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICdwbGF0Zm9ybSc6ICdzb21lIHBsYXRmb3Jt
JywKLSAgICAgICAgICAgICAgICAgICAgJ3Rlc3QnOiBbJ3NvbWUgdGVzdCddLAotICAgICAgICAg
ICAgICAgICAgICAnYnVpbGRlcic6ICdzb21lLWJ1aWxkZXItMScsCi0gICAgICAgICAgICAgICAg
fSwKKyAgICAgICAgICAgICd0eXBlcyc6IHsKKyAgICAgICAgICAgICAgICAnc29tZS10ZXN0Jzog
eyd0ZXN0JzogWydzb21lIHRlc3QnXX0sCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2J1
aWxkZXJzJzogeworICAgICAgICAgICAgICAgICdidWlsZGVyLTEnOiB7J2J1aWxkZXInOiAnc29t
ZS1idWlsZGVyLTEnfSwKKyAgICAgICAgICAgICAgICAnYnVpbGRlci0yJzogeydidWlsZGVyJzog
J3NvbWUgYnVpbGRlciAyJ30sCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3Rlc3RDb25m
aWd1cmF0aW9ucyc6IFsKICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICdw
bGF0Zm9ybSc6ICdzb21lIHBsYXRmb3JtJywKLSAgICAgICAgICAgICAgICAgICAgJ3Rlc3QnOiBb
J3NvbWUgdGVzdCddLAotICAgICAgICAgICAgICAgICAgICAnYnVpbGRlcic6ICdzb21lIGJ1aWxk
ZXIgMicsCisgICAgICAgICAgICAgICAgICAgICdwbGF0Zm9ybXMnOiBbJ3NvbWUgcGxhdGZvcm0n
XSwKKyAgICAgICAgICAgICAgICAgICAgJ3R5cGVzJzogWydzb21lLXRlc3QnXSwKKyAgICAgICAg
ICAgICAgICAgICAgJ2J1aWxkZXJzJzogWydidWlsZGVyLTEnLCAnYnVpbGRlci0yJ10sCiAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgXQogICAgICAgICB9CkBAIC0yMDcsNyArMjEwLDcg
QEAgTW9ja0RhdGEgPSB7CiAgICAgICAgICAgICBdLAogICAgICAgICAgICAgJ2N1cnJlbnRTdGVw
Jzoge30sCiAgICAgICAgICAgICAnZXRhJzogNzIxLAotICAgICAgICAgICAgJ251bWJlcic6IDEy
NCwKKyAgICAgICAgICAgICdudW1iZXInOiBvcHRpb25zLmJ1aWxkTnVtYmVyIHx8IDEyNCwKICAg
ICAgICAgICAgICdzb3VyY2UnOiB7CiAgICAgICAgICAgICAgICAgJ2JyYW5jaCc6ICcnLAogICAg
ICAgICAgICAgICAgICdjaGFuZ2VzJzogW10sCkBAIC0yMzIsNyArMjM1LDcgQEAgTW9ja0RhdGEg
PSB7CiAgICAgICAgICAgICBdLAogICAgICAgICAgICAgJ2N1cnJlbnRTdGVwJzogbnVsbCwKICAg
ICAgICAgICAgICdldGEnOiBudWxsLAotICAgICAgICAgICAgJ251bWJlcic6IDEyMywKKyAgICAg
ICAgICAgICdudW1iZXInOiBvcHRpb25zLmJ1aWxkTnVtYmVyIHx8IDEyMywKICAgICAgICAgICAg
ICdzb3VyY2UnOiB7CiAgICAgICAgICAgICAgICAgJ2JyYW5jaCc6ICcnLAogICAgICAgICAgICAg
ICAgICdjaGFuZ2VzJzogW10sCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
c2VydmVyLXRlc3RzL3Rvb2xzLWJ1aWxkYm90LXRyaWdnZXJhYmxlLXRlc3RzLmpzIGIvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29scy1idWlsZGJvdC10cmlnZ2VyYWJs
ZS10ZXN0cy5qcwppbmRleCBhODNkNjUyZGQ0YjEwYzQxZGM0YjMzMGUwZGQ4YTdiYmUyM2IyMWI0
Li5kMTViM2NjMGFkMTQ5YTQ4NmViN2VlNmU3MjU1MWJhY2RkYWM3ODNmIDEwMDY0NAotLS0gYS9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLWJ1aWxkYm90LXRyaWdn
ZXJhYmxlLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVz
dHMvdG9vbHMtYnVpbGRib3QtdHJpZ2dlcmFibGUtdGVzdHMuanMKQEAgLTk1MSw4ICs5NTEsMjgg
QEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAKICAgICAg
ICAgICAgICAgICBjb25zdCBjb25maWcgPSBNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdXaXRo
U2luZ2xlQnVpbGRlcigpOwogICAgICAgICAgICAgICAgIGNvbmZpZy5yZXBvc2l0b3J5R3JvdXBz
ID0gewotICAgICAgICAgICAgICAgICAgICAnc3lzdGVtLWFuZC1yb290cyc6IHtkZXNjcmlwdGlv
bjogJ0N1c3RvbSBSb290cycsIHJlcG9zaXRvcmllczogeydtYWNPUyc6IHt9fSwgcHJvcGVydGll
czogeydvcyc6ICc8bWFjT1M+J30sIGFjY2VwdHNSb290czogdHJ1ZX0sCi0gICAgICAgICAgICAg
ICAgICAgICdzeXN0ZW0tYW5kLXdlYmtpdCc6IHtyZXBvc2l0b3JpZXM6IHsnV2ViS2l0Jzoge2Fj
Y2VwdHNQYXRjaDogdHJ1ZX0sICdtYWNPUyc6IHt9fSwgcHJvcGVydGllczogeydvcyc6ICc8bWFj
T1M+JywgJ3drJzogJzxXZWJLaXQ+J319CisgICAgICAgICAgICAgICAgICAgICdzeXN0ZW0tYW5k
LXJvb3RzJzogeworICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdDdXN0b20g
Um9vdHMnLAorICAgICAgICAgICAgICAgICAgICAgICAgcmVwb3NpdG9yaWVzOiB7J21hY09TJzog
e319LAorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFByb3BlcnRpZXM6IHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAnb3MnOiB7J3JldmlzaW9uJzogJ21hY09TJ30sCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJ3Jvb3RzJzogeydyb290cyc6IHt9fQorICAgICAgICAgICAg
ICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFjY2VwdHNSb290czogdHJ1
ZQorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAnc3lzdGVtLWFu
ZC13ZWJraXQnOiB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXBvc2l0b3JpZXM6IHsnV2Vi
S2l0JzogeydhY2NlcHRzUGF0Y2gnOiB0cnVlfSwgJ21hY09TJzoge319LAorICAgICAgICAgICAg
ICAgICAgICAgICAgdGVzdFByb3BlcnRpZXM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAnb3MnOiB7J3JldmlzaW9uJzogJ21hY09TJ30sCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJ3drJzogeydyZXZpc2lvbic6ICdXZWJLaXQnfSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAncm9vdHMnOiB7J3Jvb3RzJzoge319LAorICAgICAgICAgICAgICAgICAgICAgICAgfSwK
KyAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkUHJvcGVydGllczogeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICd3ayc6IHsncmV2aXNpb24nOiAnV2ViS2l0J30sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJ3drLXBhdGNoJzogeydwYXRjaCc6ICdXZWJLaXQnfSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICBhY2NlcHRzUm9v
dHM6IHRydWUKKyAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KIAogICAg
ICAgICAgICAgICAgIGNvbnN0IGxvZ2dlciA9IG5ldyBNb2NrTG9nZ2VyOwpAQCAtOTc1LDcgKzk5
NSw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMF0uYWNjZXB0c0N1c3RvbVJvb3RzKCks
IHRydWUpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChncm91cHNbMV0ubmFtZSgpLCAn
c3lzdGVtLWFuZC13ZWJraXQnKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGdy
b3Vwc1sxXS5yZXBvc2l0b3JpZXMoKSwgW3dlYmtpdCwgbWFjb3NdKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoZ3JvdXBzWzFdLmFjY2VwdHNDdXN0b21Sb290cygpLCBmYWxzZSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGdyb3Vwc1sxXS5hY2NlcHRzQ3VzdG9tUm9vdHMo
KSwgdHJ1ZSk7CiAKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBNb2NrRGF0YS5tb2Nr
VGVzdFN5bmNDb25maWdXaXRoU2luZ2xlQnVpbGRlcigpOwogICAgICAgICAgICAgICAgIGNvbmZp
Zy5yZXBvc2l0b3J5R3JvdXBzID0gWyBdOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3NlcnZlci10ZXN0cy90b29scy1zeW5jLWJ1aWxkYm90LWludGVncmF0aW9uLXRlc3Rz
LmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29scy1zeW5jLWJ1
aWxkYm90LWludGVncmF0aW9uLXRlc3RzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg2NzY4ZjU1MjlkN2M2ZDA3
Y2IwMjc1M2JhNTZhY2ZlOTFmZjBmN2YKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLXN5bmMtYnVpbGRib3QtaW50ZWdyYXRpb24t
dGVzdHMuanMKQEAgLTAsMCArMSw2NDQgQEAKKyd1c2Ugc3RyaWN0JzsKKworY29uc3QgYXNzZXJ0
ID0gcmVxdWlyZSgnYXNzZXJ0Jyk7CisKK3JlcXVpcmUoJy4uL3Rvb2xzL2pzL3YzLW1vZGVscy5q
cycpOworCitjb25zdCBCdWlsZGJvdFRyaWdnZXJhYmxlID0gcmVxdWlyZSgnLi4vdG9vbHMvanMv
YnVpbGRib3QtdHJpZ2dlcmFibGUuanMnKS5CdWlsZGJvdFRyaWdnZXJhYmxlOworY29uc3QgTW9j
a0RhdGEgPSByZXF1aXJlKCcuL3Jlc291cmNlcy9tb2NrLWRhdGEuanMnKTsKK2NvbnN0IE1vY2tM
b2dnZXIgPSByZXF1aXJlKCcuL3Jlc291cmNlcy9tb2NrLWxvZ2dlci5qcycpLk1vY2tMb2dnZXI7
Citjb25zdCBNb2NrUmVtb3RlQVBJID0gcmVxdWlyZSgnLi4vdW5pdC10ZXN0cy9yZXNvdXJjZXMv
bW9jay1yZW1vdGUtYXBpLmpzJykuTW9ja1JlbW90ZUFQSTsKK2NvbnN0IFRlc3RTZXJ2ZXIgPSBy
ZXF1aXJlKCcuL3Jlc291cmNlcy90ZXN0LXNlcnZlci5qcycpOworY29uc3QgVGVtcG9yYXJ5Rmls
ZSA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL3RlbXBvcmFyeS1maWxlLmpzJykuVGVtcG9yYXJ5Rmls
ZTsKK2NvbnN0IGFkZFNsYXZlRm9yUmVwb3J0ID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvY29tbW9u
LW9wZXJhdGlvbnMuanMnKS5hZGRTbGF2ZUZvclJlcG9ydDsKK2NvbnN0IHByZXBhcmVTZXJ2ZXJU
ZXN0ID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvY29tbW9uLW9wZXJhdGlvbnMuanMnKS5wcmVwYXJl
U2VydmVyVGVzdDsKKworZnVuY3Rpb24gY3JlYXRlVHJpZ2dlcmFibGUoKQoreworICAgIGxldCB0
cmlnZ2VyYWJsZTsKKyAgICBjb25zdCBjb25maWcgPSB7CisgICAgICAgICAgICB0cmlnZ2VyYWJs
ZU5hbWU6ICdidWlsZC13ZWJraXQnLAorICAgICAgICAgICAgbG9va2JhY2tDb3VudDogMiwKKyAg
ICAgICAgICAgIGJ1aWxkUmVxdWVzdEFyZ3VtZW50OiAnYnVpbGQtcmVxdWVzdC1pZCcsCisgICAg
ICAgICAgICBzbGF2ZU5hbWU6ICdzeW5jLXNsYXZlJywKKyAgICAgICAgICAgIHNsYXZlUGFzc3dv
cmQ6ICdwYXNzd29yZCcsCisgICAgICAgICAgICByZXBvc2l0b3J5R3JvdXBzOiB7CisgICAgICAg
ICAgICAgICAgJ3dlYmtpdCc6IHsKKyAgICAgICAgICAgICAgICAgICAgcmVwb3NpdG9yaWVzOiB7
J1dlYktpdCc6IHthY2NlcHRzUGF0Y2g6IHRydWV9fSwKKyAgICAgICAgICAgICAgICAgICAgdGVz
dFByb3BlcnRpZXM6IHsnd2snOiB7J3JldmlzaW9uJzogJ1dlYktpdCd9LCAncm9vdHMnOiB7J3Jv
b3RzJzoge319fSwKKyAgICAgICAgICAgICAgICAgICAgYnVpbGRQcm9wZXJ0aWVzOiB7J3drJzog
eydyZXZpc2lvbic6ICdXZWJLaXQnfSwgJ3drLXBhdGNoJzogeydwYXRjaCc6ICdXZWJLaXQnfX0s
CisgICAgICAgICAgICAgICAgICAgIGFjY2VwdHNSb290czogdHJ1ZSwKKyAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgdHlwZXM6IHsKKyAgICAgICAgICAgICAg
ICAnc29tZSc6IHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdDogWydzb21lIHRlc3QnXSwKKyAg
ICAgICAgICAgICAgICAgICAgcHJvcGVydGllczogeyd0ZXN0JzogJ3NvbWUtdGVzdCd9LAorICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBidWlsZGVyczogewor
ICAgICAgICAgICAgICAgICdidWlsZGVyLTEnOiB7CisgICAgICAgICAgICAgICAgICAgIGJ1aWxk
ZXI6ICdzb21lIHRlc3RlcicsCisgICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHtmb3Jj
ZXNjaGVkdWxlcjogJ2ZvcmNlLWFiLXRlc3RzJ30sCisgICAgICAgICAgICAgICAgfSwKKyAgICAg
ICAgICAgICAgICAnYnVpbGRlci0yJzogeworICAgICAgICAgICAgICAgICAgICBidWlsZGVyOiAn
c29tZSBidWlsZGVyJywKKyAgICAgICAgICAgICAgICAgICAgcHJvcGVydGllczoge2ZvcmNlc2No
ZWR1bGVyOiAnZm9yY2UtYWItYnVpbGRzJ30sCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAg
ICAgICAgICAnYnVpbGRlci0zJzogeworICAgICAgICAgICAgICAgICAgICBidWlsZGVyOiAnb3Ro
ZXIgYnVpbGRlcicsCisgICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHtmb3JjZXNjaGVk
dWxlcjogJ2ZvcmNlLWFiLWJ1aWxkcyd9LAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAg
ICB9LAorICAgICAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uczogWworICAgICAgICAgICAgICAg
IHtwbGF0Zm9ybXM6IFsnc29tZSBwbGF0Zm9ybSddLCBidWlsZGVyczogWydidWlsZGVyLTInLCAn
YnVpbGRlci0zJ119LAorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgIHRlc3RDb25maWd1cmF0
aW9uczogWworICAgICAgICAgICAgICAgIHt0eXBlczogWydzb21lJ10sIHBsYXRmb3JtczogWydz
b21lIHBsYXRmb3JtJ10sIGJ1aWxkZXJzOiBbJ2J1aWxkZXItMSddfSwKKyAgICAgICAgICAgIF0s
CisgICAgICAgIH07CisgICAgcmV0dXJuIE1vY2tEYXRhLmFkZE1vY2tDb25maWd1cmF0aW9uKFRl
c3RTZXJ2ZXIuZGF0YWJhc2UoKSkudGhlbigoKSA9PiB7CisgICAgICAgIHJldHVybiBNYW5pZmVz
dC5mZXRjaCgpOworICAgIH0pLnRoZW4oKCkgPT4geworICAgICAgICB0cmlnZ2VyYWJsZSA9IG5l
dyBCdWlsZGJvdFRyaWdnZXJhYmxlKGNvbmZpZywgVGVzdFNlcnZlci5yZW1vdGVBUEkoKSwgTW9j
a1JlbW90ZUFQSSwge25hbWU6ICdzeW5jLXNsYXZlJywgcGFzc3dvcmQ6ICdwYXNzd29yZCd9LCBu
ZXcgTW9ja0xvZ2dlcik7CisgICAgICAgIHJldHVybiB0cmlnZ2VyYWJsZS51cGRhdGVUcmlnZ2Vy
YWJsZSgpOworICAgIH0pLnRoZW4oKCkgPT4gTWFuaWZlc3QuZmV0Y2goKSkudGhlbigoKSA9PiB7
CisgICAgICAgIHJldHVybiBuZXcgQnVpbGRib3RUcmlnZ2VyYWJsZShjb25maWcsIFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCksIE1vY2tSZW1vdGVBUEksIHtuYW1lOiAnc3luYy1zbGF2ZScsIHBhc3N3
b3JkOiAncGFzc3dvcmQnfSwgbmV3IE1vY2tMb2dnZXIpOworICAgIH0pOworfQorCitmdW5jdGlv
biBjcmVhdGVUZXN0R3JvdXBXaWhQYXRjaCgpCit7CisgICAgcmV0dXJuIFRlbXBvcmFyeUZpbGUu
bWFrZVRlbXBvcmFyeUZpbGUoJ3BhdGNoLmRhdCcsICdwYXRjaCBmaWxlJykudGhlbigocGF0Y2hG
aWxlKSA9PiB7CisgICAgICAgIHJldHVybiBVcGxvYWRlZEZpbGUudXBsb2FkRmlsZShwYXRjaEZp
bGUpOworICAgIH0pLnRoZW4oKHBhdGNoRmlsZSkgPT4geworICAgICAgICBjb25zdCBzb21lVGVz
dCA9IFRlc3QuZmluZEJ5SWQoTW9ja0RhdGEuc29tZVRlc3RJZCgpKTsKKyAgICAgICAgY29uc3Qg
d2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQo
KSk7CisgICAgICAgIGNvbnN0IHNldDEgPSBuZXcgQ3VzdG9tQ29tbWl0U2V0OworICAgICAgICBz
ZXQxLnNldFJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQsICcxOTE2MjInLCBwYXRjaEZpbGUp
OworICAgICAgICBjb25zdCBzZXQyID0gbmV3IEN1c3RvbUNvbW1pdFNldDsKKyAgICAgICAgc2V0
Mi5zZXRSZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0LCAnMTkxNjIyJyk7CisgICAgICAgIHJl
dHVybiBUZXN0R3JvdXAuY3JlYXRlV2l0aFRhc2soJ2N1c3RvbSB0YXNrJywgUGxhdGZvcm0uZmlu
ZEJ5SWQoTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSksIHNvbWVUZXN0LCAnc29tZSBncm91cCcs
IDIsIFtzZXQxLCBzZXQyXSk7CisgICAgfSkudGhlbigodGFzaykgPT4geworICAgICAgICByZXR1
cm4gVGVzdEdyb3VwLmZpbmRBbGxCeVRhc2sodGFzay5pZCgpKVswXTsKKyAgICB9KQorfQorCitm
dW5jdGlvbiB1cGxvYWRSb290KGJ1aWxkUmVxdWVzdElkLCBidWlsZE51bWJlcikKK3sKKyAgICBy
ZXR1cm4gVGVtcG9yYXJ5RmlsZS5tYWtlVGVtcG9yYXJ5RmlsZShgcm9vdCR7YnVpbGROdW1iZXJ9
LmRhdGAsIGByb290IGZvciBidWlsZCAke2J1aWxkTnVtYmVyfWApLnRoZW4oKHJvb3RGaWxlKSA9
PiB7CisgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RGb3JtRGF0YSgn
L2FwaS91cGxvYWQtcm9vdC8nLCB7CisgICAgICAgICAgICBzbGF2ZU5hbWU6ICdzeW5jLXNsYXZl
JywKKyAgICAgICAgICAgIHNsYXZlUGFzc3dvcmQ6ICdwYXNzd29yZCcsCisgICAgICAgICAgICBi
dWlsZGVyTmFtZTogJ3NvbWUgYnVpbGRlcicsCisgICAgICAgICAgICBidWlsZE51bWJlcjogYnVp
bGROdW1iZXIsCisgICAgICAgICAgICBidWlsZFRpbWU6ICcyMDE3LTA1LTEwVDAyOjU0OjA4LjY2
NicsCisgICAgICAgICAgICBidWlsZFJlcXVlc3Q6IGJ1aWxkUmVxdWVzdElkLAorICAgICAgICAg
ICAgcm9vdEZpbGUsCisgICAgICAgICAgICByZXBvc2l0b3J5TGlzdDogJ1siV2ViS2l0Il0nLAor
ICAgICAgICB9KTsKKyAgICB9KTsKK30KKworZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5j
dGlvbiAoKSB7CisgICAgcHJlcGFyZVNlcnZlclRlc3QodGhpcyk7CisgICAgVGVtcG9yYXJ5Rmls
ZS5pbmplY3QoKTsKKworICAgIGJlZm9yZUVhY2goKCkgPT4geworICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlc2V0KCdodHRwOi8vYnVpbGQud2Via2l0Lm9yZycpOworICAgIH0pOworCisgICAgZnVu
Y3Rpb24gYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdCwgbWV0aG9kLCB1cmwsIGNvbnRl
bnRUb1Jlc29sdmUpCisgICAgeworICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdC5tZXRob2Qs
IG1ldGhvZCk7CisgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0LnVybCwgdXJsKTsKKyAgICAg
ICAgcmVxdWVzdC5yZXNvbHZlKGNvbnRlbnRUb1Jlc29sdmUpOworICAgIH0KKworICAgIGl0KCdz
aG91bGQgc2NoZWR1bGUgYSBidWlsZCB0byBidWlsZCBhIHBhdGNoJywgKCkgPT4geworICAgICAg
ICBjb25zdCByZXF1ZXN0cyA9IE1vY2tSZW1vdGVBUEkucmVxdWVzdHM7CisgICAgICAgIGxldCB0
cmlnZ2VyYWJsZTsKKyAgICAgICAgbGV0IHRhc2tJZCA9IG51bGw7CisgICAgICAgIGxldCBzeW5j
UHJvbWlzZTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZVRyaWdnZXJhYmxlKCkudGhlbigobmV3VHJp
Z2dlcmFibGUpID0+IHsKKyAgICAgICAgICAgIHRyaWdnZXJhYmxlID0gbmV3VHJpZ2dlcmFibGU7
CisgICAgICAgICAgICByZXR1cm4gY3JlYXRlVGVzdEdyb3VwV2loUGF0Y2goKTsKKyAgICAgICAg
fSkudGhlbigodGVzdEdyb3VwKSA9PiB7CisgICAgICAgICAgICB0YXNrSWQgPSB0ZXN0R3JvdXAu
dGFzaygpLmlkKCk7CisgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRC
eUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKKyAgICAgICAgICAgIGFzc2VydC5l
cXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisKKyAgICAgICAgICAg
IGNvbnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CisgICAg
ICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CisgICAgICAgICAgICBhc3Nl
cnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKworICAgICAgICAgICAgY29u
c3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOworICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYy
MicpOworICAgICAgICAgICAgY29uc3Qgd2Via2l0UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JS
ZXBvc2l0b3J5KHdlYmtpdCk7CisgICAgICAgICAgICBhc3NlcnQod2Via2l0UGF0Y2ggaW5zdGFu
Y2VvZiBVcGxvYWRlZEZpbGUpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFBhdGNo
LmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21t
aXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOworCisgICAgICAgICAg
ICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07
CisgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKKyAgICAg
ICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7
CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxk
SWQoKSwgbnVsbCk7CisKKyAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJC
dWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJD
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9v
dEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CisKKyAgICAgICAgICAgIHN5
bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuc3luY09uY2UoKTsKKyAgICAgICAgICAgIHJldHVybiBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CisgICAgICAgIH0pLnRoZW4oKCkgPT4gewor
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsICcvanNvbi9idWls
ZGVycy9zb21lJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9z
b21lJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIl
MjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOworICAgICAgICB9KS50aGVuKCgpID0+IHsKKyAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOworICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMv
c29tZSUyMHRlc3Rlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7CisgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsICcvanNvbi9i
dWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7
CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcs
ICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0
PS0yJywge30pOworICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVl
c3QoKTsKKyAgICAgICAgfSkudGhlbigoKSA9PiB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHMubGVuZ3RoLCA3KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvZm9yY2UnLCAn
T0snKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeyd3
ayc6ICcxOTE2MjInLCAnd2stcGF0Y2gnOiBSZW1vdGVBUEkudXJsKCcvYXBpL3VwbG9hZGVkLWZp
bGUvMScpLAorICAgICAgICAgICAgICAgICdidWlsZC1yZXF1ZXN0LWlkJzogJzEnLCAnZm9yY2Vz
Y2hlZHVsZXInOiAnZm9yY2UtYWItYnVpbGRzJ30pOworICAgICAgICAgICAgcmV0dXJuIE1vY2tS
ZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKKyAgICAgICAgfSkudGhlbigoKSA9PiB7CisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7CisgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsICcvanNvbi9idWlsZGVy
cy9zb21lJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21l
JTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywKKyAgICAgICAgICAgICAgICBbTW9ja0RhdGEucGVu
ZGluZ0J1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDF9KV0p
OworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQn
LCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Cisg
ICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOworICAgICAg
ICB9KS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5n
dGgsIDEzKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEw
XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL2J1aWxkcy8/c2VsZWN0PS0x
JnNlbGVjdD0tMicsIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzExXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMv
P3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7CisgICAgICAgICAgICAgICAgWy0xXTogTW9ja0RhdGEu
cnVubmluZ0J1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDF9
KQorICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1sxMl0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL2J1aWxk
cy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAgICAgICAgICAgIHJldHVybiBzeW5jUHJv
bWlzZTsKKyAgICAgICAgfSkudGhlbigoKSA9PiB7CisgICAgICAgICAgICByZXR1cm4gVGVzdEdy
b3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOworICAgICAgICB9KS50aGVuKCh0ZXN0R3Jv
dXBzKSA9PiB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEp
OworICAgICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKKyAgICAgICAg
ICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVw
b3NpdG9yeUlkKCkpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cC5idWlsZFJl
cXVlc3RzKCkubGVuZ3RoLCA2KTsKKworICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0g
dGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKKyAgICAgICAgICAgIGFzc2VydChidWlsZFJl
cXVlc3QuaXNCdWlsZCgpKTsKKyAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVz
dCgpKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwo
KSwgJ1J1bm5pbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3Rh
dHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9zb21lJTIwYnVpbGRl
ci9idWlsZHMvMTI0Jyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1
aWxkSWQoKSwgbnVsbCk7CisKKyAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVx
dWVzdC5jb21taXRTZXQoKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXRTZXQucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGNvbnN0
IHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOworICAg
ICAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKKyAg
ICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0
Jyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQu
YWxsUm9vdEZpbGVzKCksIFtdKTsKKworICAgICAgICAgICAgY29uc3Qgb3RoZXJCdWlsZFJlcXVl
c3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOworICAgICAgICAgICAgYXNzZXJ0KG90
aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CisgICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVp
bGRSZXF1ZXN0LmlzVGVzdCgpKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxk
UmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworCisgICAgICAg
ICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgp
OworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3Ro
ZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCks
IG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxS
b290RmlsZXMoKSwgW10pOworCisgICAgICAgICAgICByZXR1cm4gdXBsb2FkUm9vdChidWlsZFJl
cXVlc3QuaWQoKSwgMTIzKTsKKyAgICAgICAgfSkudGhlbigoKSA9PiB7CisgICAgICAgICAgICBy
ZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOworICAgICAgICB9KS50
aGVuKCh0ZXN0R3JvdXBzKSA9PiB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3Vw
cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1sw
XTsKKyAgICAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0Rh
dGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RH
cm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKworICAgICAgICAgICAgY29uc3QgYnVp
bGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKKyAgICAgICAgICAgIGFz
c2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKKyAgICAgICAgICAgIGFzc2VydCghYnVpbGRS
ZXF1ZXN0LmlzVGVzdCgpKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Qu
c3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJz
L3NvbWUlMjBidWlsZGVyL2J1aWxkcy8xMjQnKTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RFcXVh
bChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKworICAgICAgICAgICAgY29uc3QgY29t
bWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOworICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOwor
ICAgICAgICAgICAgY29uc3Qgd2Via2l0UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0
b3J5KHdlYmtpdCk7CisgICAgICAgICAgICBhc3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBV
cGxvYWRlZEZpbGUpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFBhdGNoLmZpbGVu
YW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAgICAgIGNvbnN0IHdlYmtpdFJvb3QgPSBjb21t
aXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsKKyAgICAgICAgICAgIGFzc2VydCh3ZWJr
aXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVh
bCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFt3ZWJraXRSb290XSk7CisK
KyAgICAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVx
dWVzdHMoKVsxXTsKKyAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxk
KCkpOworICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Cisg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwg
J1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5z
dGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJl
cXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKworICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRT
ZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKKyAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYy
MicpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckNv
bW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKKworICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOworICAgICAgICAgICAgc3luY1Byb21pc2Ug
PSB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpOworICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKKyAgICAgICAgfSkudGhlbigoKSA9PiB7CisgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUl
MjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWls
ZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIv
cGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndh
aXRGb3JSZXF1ZXN0KCk7CisgICAgICAgIH0pLnRoZW4oKCkgPT4geworICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVz
dGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3Nv
bWUlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsKKyAgICAgICAgICAg
ICAgICBbLTFdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVy
JywgYnVpbGRSZXF1ZXN0SWQ6IDF9KQorICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9v
dGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOworICAgICAg
ICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKKyAgICAgICAgfSku
dGhlbigoKSA9PiB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3
KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9T
VCcsICcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvZm9yY2UnLCAnT0snKTsKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeyd3ayc6ICcxOTE2MjInLCAnYnVp
bGQtcmVxdWVzdC1pZCc6ICcyJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFiLWJ1aWxkcyd9
KTsKKyAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7Cisg
ICAgICAgIH0pLnRoZW4oKCkgPT4geworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgMTApOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbN10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRz
JywgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0s
ICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtd
KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VU
JywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOwor
ICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKKyAgICAg
ICAgfSkudGhlbigoKSA9PiB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVu
Z3RoLCAxMyk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sx
MF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9idWlsZHMvP3NlbGVjdD0t
MSZzZWxlY3Q9LTInLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1sxMV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRz
Lz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywgeworICAgICAgICAgICAgICAgIFstMV06IE1vY2tEYXRh
LnJ1bm5pbmdCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlcicsIGJ1aWxkUmVxdWVzdElkOiAy
fSksCisgICAgICAgICAgICAgICAgWy0yXTogTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVpbGRl
cjogJ3NvbWUgYnVpbGRlcicsIGJ1aWxkUmVxdWVzdElkOiAxfSksCisgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEyXSwgJ0dFVCcs
ICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0
PS0yJywge30pOworICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOworICAgICAgICB9KS50
aGVuKCgpID0+IHsKKyAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRh
c2tJZCwgdHJ1ZSk7CisgICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cHMpID0+IHsKKyAgICAgICAg
ICAgIGFzc2VydC5lcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBjb25z
dCB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOworICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0g
UmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7CisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYp
OworCisgICAgICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1
ZXN0cygpWzBdOworICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwor
ICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDov
L2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLzEyNCcpOwor
ICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwp
OworCisgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0
KCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBjb25zdCB3ZWJraXRQYXRjaCA9
IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KTsKKyAgICAgICAgICAgIGFzc2Vy
dCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7CisgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOworICAgICAgICAg
ICAgY29uc3Qgd2Via2l0Um9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQp
OworICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUp
OworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3Qx
MjMuZGF0Jyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290
RmlsZXMoKSwgW3dlYmtpdFJvb3RdKTsKKworICAgICAgICAgICAgY29uc3Qgb3RoZXJCdWlsZFJl
cXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOworICAgICAgICAgICAgYXNzZXJ0
KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CisgICAgICAgICAgICBhc3NlcnQoIW90aGVy
QnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1
aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOworICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtp
dC5vcmcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLzEyNCcpOworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisKKyAgICAg
ICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0
KCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0
KSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFs
bFJvb3RGaWxlcygpLCBbXSk7CisKKyAgICAgICAgICAgIHJldHVybiB1cGxvYWRSb290KG90aGVy
QnVpbGRSZXF1ZXN0LmlkKCksIDEyNCk7CisgICAgICAgIH0pLnRoZW4oKCkgPT4geworICAgICAg
ICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKKyAgICAg
ICAgfSkudGhlbigodGVzdEdyb3VwcykgPT4geworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRl
c3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RH
cm91cHNbMF07CisgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlk
KE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVh
bCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisKKyAgICAgICAgICAgIGNv
bnN0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CisgICAgICAg
ICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CisgICAgICAgICAgICBhc3NlcnQo
IWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9i
dWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvMTI0Jyk7CisgICAgICAgICAgICBhc3NlcnQu
bm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisKKyAgICAgICAgICAgIGNv
bnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKKyAgICAgICAgICAgIGFz
c2VydC5lcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2
MjInKTsKKyAgICAgICAgICAgIGNvbnN0IHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9y
UmVwb3NpdG9yeSh3ZWJraXQpOworICAgICAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3Rh
bmNlb2YgVXBsb2FkZWRGaWxlKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXRQYXRj
aC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgICAgICBjb25zdCB3ZWJraXRSb290
ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CisgICAgICAgICAgICBhc3Nl
cnQod2Via2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7CisgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbd2Via2l0Um9v
dF0pOworCisgICAgICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5i
dWlsZFJlcXVlc3RzKClbMV07CisgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3Qu
aXNCdWlsZCgpKTsKKyAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0
KCkpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xh
YmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxk
UmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL3Nv
bWUlMjBidWlsZGVyL2J1aWxkcy8xMjQnKTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChv
dGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworCisgICAgICAgICAgICBjb25zdCBv
dGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOworICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCAnMTkxNjIyJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJDb21taXRTZXQu
cGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICAgICAgY29uc3Qgb3Ro
ZXJXZWJraXRSb290ID0gb3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsK
KyAgICAgICAgICAgIGFzc2VydChvdGhlcldlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZp
bGUpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyV2Via2l0Um9vdC5maWxlbmFtZSgp
LCAncm9vdDEyNC5kYXQnKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21t
aXRTZXQuYWxsUm9vdEZpbGVzKCksIFtvdGhlcldlYmtpdFJvb3RdKTsKKyAgICAgICAgfSk7Cisg
ICAgfSk7CisKKyAgICBpdCgnc2hvdWxkIHNjaGVkdWxlIGEgYnVpbGQgdG8gdGVzdCBhZnRlciBi
dWlsZGluZyBhIHBhdGNoJywgKCkgPT4geworICAgICAgICBjb25zdCByZXF1ZXN0cyA9IE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHM7CisgICAgICAgIGxldCB0cmlnZ2VyYWJsZTsKKyAgICAgICAgbGV0
IHRhc2tJZCA9IG51bGw7CisgICAgICAgIGxldCBzeW5jUHJvbWlzZTsKKyAgICAgICAgbGV0IGZp
cnN0Um9vdCA9IG51bGw7CisgICAgICAgIHJldHVybiBjcmVhdGVUcmlnZ2VyYWJsZSgpLnRoZW4o
KG5ld1RyaWdnZXJhYmxlKSA9PiB7CisgICAgICAgICAgICB0cmlnZ2VyYWJsZSA9IG5ld1RyaWdn
ZXJhYmxlOworICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVRlc3RHcm91cFdpaFBhdGNoKCk7Cisg
ICAgICAgIH0pLnRoZW4oKHRlc3RHcm91cCkgPT4geworICAgICAgICAgICAgdGFza0lkID0gdGVz
dEdyb3VwLnRhc2soKS5pZCgpOworICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9y
eS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7CisgICAgICAgICAgICBh
c3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworCisgICAg
ICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBd
OworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5pZCgpLCAxKTsKKyAgICAg
ICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKKyAgICAgICAgICAgIGFzc2Vy
dCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpLmFsbFJvb3RGaWxlcygpLCBbXSk7CisK
KyAgICAgICAgICAgIGNvbnN0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVx
dWVzdHMoKVsxXTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5p
ZCgpLCAyKTsKKyAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkp
OworICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5n
Jyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgp
LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJCdWlsZFJlcXVlc3Qu
Y29tbWl0U2V0KCkuYWxsUm9vdEZpbGVzKCksIFtdKTsKKworICAgICAgICAgICAgcmV0dXJuIHVw
bG9hZFJvb3QoMSwgNDUpOworICAgICAgICB9KS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgIHJl
dHVybiB1cGxvYWRSb290KDIsIDQ2KTsKKyAgICAgICAgfSkudGhlbigoKSA9PiB7CisgICAgICAg
ICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOworICAgICAg
ICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVz
dEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gdGVzdEdy
b3Vwc1swXTsKKworICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1
aWxkUmVxdWVzdHMoKVswXTsKKyAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWls
ZCgpKTsKKyAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKKyAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRl
ZCcpOworICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCks
IG51bGwpOworICAgICAgICAgICAgY29uc3Qgcm9vdHMgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0
KCkuYWxsUm9vdEZpbGVzKCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm9vdHMubGVuZ3Ro
LCAxKTsKKyAgICAgICAgICAgIGZpcnN0Um9vdCA9IHJvb3RzWzBdOworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChyb290c1swXS5maWxlbmFtZSgpLCAncm9vdDQ1LmRhdCcpOworCisgICAg
ICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3Rz
KClbMV07CisgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsK
KyAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOworICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21w
bGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5i
dWlsZElkKCksIG51bGwpOworICAgICAgICAgICAgY29uc3Qgb3RoZXJSb290cyA9IG90aGVyQnVp
bGRSZXF1ZXN0LmNvbW1pdFNldCgpLmFsbFJvb3RGaWxlcygpOworICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG90aGVyUm9vdHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwob3RoZXJSb290c1swXS5maWxlbmFtZSgpLCAncm9vdDQ2LmRhdCcpOworICAgICAgICAgICAg
c3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpOworICAgICAgICAgICAgcmV0dXJu
IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKKyAgICAgICAgfSkudGhlbigoKSA9PiB7
CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgJy9qc29uL2J1
aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJz
L3NvbWUlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhl
ciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIHJldHVybiBNb2Nr
UmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CisgICAgICAgIH0pLnRoZW4oKCkgPT4geworICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CisgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsICcvanNvbi9idWlsZGVy
cy9zb21lJTIwdGVzdGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgJy9qc29u
L2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsK
KyAgICAgICAgICAgICAgICBbLTFdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVyOiAn
c29tZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDF9KSwKKyAgICAgICAgICAgICAgICBbLTJd
OiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyJywgYnVpbGRS
ZXF1ZXN0SWQ6IDJ9KSwKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBi
dWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAgICAgICAgICAgIHJl
dHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CisgICAgICAgIH0pLnRoZW4oKCkg
PT4geworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7CisgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ1BPU1QnLCAnL2J1
aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvZm9yY2UnLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeyd0ZXN0JzogJ3NvbWUtdGVzdCcsICd3ayc6ICcx
OTE2MjInLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICczJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNl
LWFiLXRlc3RzJywKKyAgICAgICAgICAgICAgICAncm9vdHMnOiBKU09OLnN0cmluZ2lmeShbe3Vy
bDogZmlyc3RSb290LnVybCgpfV0pfSk7CisgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIGl0KCdzaG91
bGQgbm90IHNjaGVkdWxlIGEgYnVpbGQgdG8gdGVzdCB3aGlsZSBidWlsZGluZyBhIHBhdGNoJywg
KCkgPT4geworICAgICAgICBjb25zdCByZXF1ZXN0cyA9IE1vY2tSZW1vdGVBUEkucmVxdWVzdHM7
CisgICAgICAgIGxldCB0cmlnZ2VyYWJsZTsKKyAgICAgICAgbGV0IHRhc2tJZCA9IG51bGw7Cisg
ICAgICAgIGxldCBzeW5jUHJvbWlzZTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZVRyaWdnZXJhYmxl
KCkudGhlbigobmV3VHJpZ2dlcmFibGUpID0+IHsKKyAgICAgICAgICAgIHRyaWdnZXJhYmxlID0g
bmV3VHJpZ2dlcmFibGU7CisgICAgICAgICAgICByZXR1cm4gY3JlYXRlVGVzdEdyb3VwV2loUGF0
Y2goKTsKKyAgICAgICAgfSkudGhlbigodGVzdEdyb3VwKSA9PiB7CisgICAgICAgICAgICB0YXNr
SWQgPSB0ZXN0R3JvdXAudGFzaygpLmlkKCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVz
dEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworCisgICAgICAgICAgICBjb25zdCBi
dWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5pZCgpLCAxKTsKKyAgICAgICAgICAgIGFzc2VydChi
dWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKKyAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0
LmlzVGVzdCgpKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVz
TGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdC5idWlsZElkKCksIG51bGwpOworCisgICAgICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVx
dWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CisgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuaWQoKSwgMik7CisgICAgICAgICAgICBhc3NlcnQob3Ro
ZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKKyAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWls
ZFJlcXVlc3QuaXNUZXN0KCkpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRS
ZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1
YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisKKyAgICAgICAg
ICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuc3luY09uY2UoKTsKKyAgICAgICAgICAgIHJl
dHVybiBQcm9taXNlLmFsbChbTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpLCB1cGxvYWRS
b290KDEsIDEyMyldKTsKKyAgICAgICAgfSkudGhlbigoKSA9PiB7CisgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0
ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL3Bl
bmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1syXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvcGVuZGlu
Z0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JS
ZXF1ZXN0KCk7CisgICAgICAgIH0pLnRoZW4oKCkgPT4geworICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL2J1
aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBi
dWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsKKyAgICAgICAgICAgICAgICBb
LTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxkZXInLCBidWls
ZFJlcXVlc3RJZDogMn0pLAorICAgICAgICAgICAgICAgIFstMl06IE1vY2tEYXRhLmZpbmlzaGVk
QnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMX0pLAorICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1s1XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxl
Y3Q9LTEmc2VsZWN0PS0yJywge30pOworICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEku
d2FpdEZvclJlcXVlc3QoKTsKKyAgICAgICAgfSkudGhlbigoKSA9PiB7CisgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA5KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0
ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVy
L3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1s4XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvcGVu
ZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CisgICAgICAgIH0pLnRoZW4oKCkgPT4geworICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTIpOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rl
ci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29t
ZSUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywgeworICAgICAgICAgICAg
ICAgIFstMV06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlcics
IGJ1aWxkUmVxdWVzdElkOiAyLCBidWlsZE51bWJlcjogMTAwMn0pLAorICAgICAgICAgICAgICAg
IFstMl06IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxkZXInLCBi
dWlsZFJlcXVlc3RJZDogMX0pLAorICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3Ro
ZXIlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAgICAgICAg
ICAgIHJldHVybiBzeW5jUHJvbWlzZTsKKyAgICAgICAgfSkudGhlbigoKSA9PiB7CisgICAgICAg
ICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOworICAgICAg
ICB9KS50aGVuKCh0ZXN0R3JvdXBzKSA9PiB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodGVz
dEdyb3Vwcy5sZW5ndGgsIDEpOworCisgICAgICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0ZXN0
R3JvdXBzWzBdOworICAgICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1
aWxkUmVxdWVzdHMoKVswXTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Qu
aWQoKSwgMSk7CisgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7Cisg
ICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CisgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwor
ICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwp
OworCisgICAgICAgICAgICBjb25zdCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWls
ZFJlcXVlc3RzKClbMV07CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVl
c3QuaWQoKSwgMik7CisgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWls
ZCgpKTsKKyAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwor
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCks
ICdSdW5uaW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Qu
c3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9zb21lJTIwYnVp
bGRlci9idWlsZHMvMTAwMicpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRS
ZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgaXQo
J3Nob3VsZCBjYW5jZWwgYnVpbGRzIGZvciB0ZXN0aW5nIHdoZW4gYSBidWlsZCB0byBidWlsZCBh
IHBhdGNoIGZhaWxzJywgKCkgPT4geworICAgICAgICBjb25zdCByZXF1ZXN0cyA9IE1vY2tSZW1v
dGVBUEkucmVxdWVzdHM7CisgICAgICAgIGxldCB0cmlnZ2VyYWJsZTsKKyAgICAgICAgbGV0IHRh
c2tJZCA9IG51bGw7CisgICAgICAgIGxldCBzeW5jUHJvbWlzZTsKKyAgICAgICAgcmV0dXJuIGNy
ZWF0ZVRyaWdnZXJhYmxlKCkudGhlbigobmV3VHJpZ2dlcmFibGUpID0+IHsKKyAgICAgICAgICAg
IHRyaWdnZXJhYmxlID0gbmV3VHJpZ2dlcmFibGU7CisgICAgICAgICAgICByZXR1cm4gY3JlYXRl
VGVzdEdyb3VwV2loUGF0Y2goKTsKKyAgICAgICAgfSkudGhlbigodGVzdEdyb3VwKSA9PiB7Cisg
ICAgICAgICAgICB0YXNrSWQgPSB0ZXN0R3JvdXAudGFzaygpLmlkKCk7CisgICAgICAgICAgICBh
c3NlcnQuZXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworCisgICAg
ICAgICAgICBjb25zdCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBd
OworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5pZCgpLCAxKTsKKyAgICAg
ICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKKyAgICAgICAgICAgIGFzc2Vy
dCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworCisgICAgICAgICAgICBjb25z
dCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuaWQoKSwgMik7CisgICAgICAg
ICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKKyAgICAgICAgICAgIGFz
c2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOworICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwor
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVs
bCk7CisKKyAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuc3luY09uY2UoKTsK
KyAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CisgICAg
ICAgIH0pLnRoZW4oKCkgPT4geworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sw
XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBb
XSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dF
VCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOwor
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCAn
L2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAg
ICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOworICAgICAgICB9
KS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgs
IDYpOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdH
RVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxl
Y3Q9LTInLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1s0XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvP3NlbGVj
dD0tMSZzZWxlY3Q9LTInLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1s1XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVp
bGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywgeworICAgICAgICAgICAgICAgIFstMV06IE1vY2tE
YXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkZXI6ICdvdGhlciBidWlsZGVyJywgYnVpbGRSZXF1ZXN0
SWQ6IDEsIGJ1aWxkTnVtYmVyOiAzMTJ9KSwKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
cmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKKyAgICAgICAgfSkudGhlbigo
KSA9PiB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA5KTsKKyAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnR0VUJywgJy9q
c29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgJy9qc29uL2J1
aWxkZXJzL3NvbWUlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsICcvanNvbi9idWlsZGVy
cy9vdGhlciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIHJldHVy
biBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CisgICAgICAgIH0pLnRoZW4oKCkgPT4g
eworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTIpOworICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCAnL2pzb24v
YnVpbGRlcnMvc29tZSUyMHRlc3Rlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7
CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQn
LCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0
PS0yJywge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
MTFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9idWlsZHMvP3NlbGVj
dD0tMSZzZWxlY3Q9LTInLCB7CisgICAgICAgICAgICAgICAgWy0xXTogTW9ja0RhdGEuZmluaXNo
ZWRCdWlsZCh7YnVpbGRlcjogJ290aGVyIGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMSwgYnVp
bGROdW1iZXI6IDMxMn0pLAorICAgICAgICAgICAgfSk7CisgICAgICAgICAgICByZXR1cm4gc3lu
Y1Byb21pc2U7CisgICAgICAgIH0pLnRoZW4oKCkgPT4geworICAgICAgICAgICAgcmV0dXJuIFRl
c3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKKyAgICAgICAgfSkudGhlbigodGVz
dEdyb3VwcykgPT4geworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRlc3RHcm91cHMubGVuZ3Ro
LCAxKTsKKworICAgICAgICAgICAgY29uc3QgYnVpbGRSZXFldXN0cyA9IHRlc3RHcm91cHNbMF0u
YnVpbGRSZXF1ZXN0cygpOworICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxZXVzdHNbMF0uaXNC
dWlsZCgpKTsKKyAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXFldXN0c1swXS5pc1Rlc3QoKSk7
CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXFldXN0c1swXS5zdGF0dXNMYWJlbCgp
LCAnRmFpbGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXFldXN0c1swXS5z
dGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL290aGVyJTIwYnVp
bGRlci9idWlsZHMvMzEyJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXFldXN0
c1swXS5idWlsZElkKCksIG51bGwpOworCisgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXFldXN0
c1sxXS5pc0J1aWxkKCkpOworICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcWV1c3RzWzFdLmlz
VGVzdCgpKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcWV1c3RzWzFdLnN0YXR1
c0xhYmVsKCksICdGYWlsZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcWV1
c3RzWzFdLnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcWV1c3RzWzFdLmJ1aWxkSWQoKSwgbnVsbCk7CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGFz
c2VydFRlc3RCdWlsZEhhc0ZhaWxlZChyZXF1ZXN0KQorICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgIGFzc2VydCghcmVxdWVzdC5pc0J1aWxkKCkpOworICAgICAgICAgICAgICAgIGFzc2Vy
dChyZXF1ZXN0LmlzVGVzdCgpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dC5zdGF0dXNMYWJlbCgpLCAnRmFpbGVkJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
IGFzc2VydFRlc3RCdWlsZEhhc0ZhaWxlZChidWlsZFJlcWV1c3RzWzJdKTsKKyAgICAgICAgICAg
IGFzc2VydFRlc3RCdWlsZEhhc0ZhaWxlZChidWlsZFJlcWV1c3RzWzNdKTsKKyAgICAgICAgfSk7
CisgICAgfSk7CisKK30pOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rv
b2xzL2pzL2J1aWxkYm90LXN5bmNlci5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29s
cy9qcy9idWlsZGJvdC1zeW5jZXIuanMKaW5kZXggZWU2MTFmMzU0ZDg4YWY0ZDQ1ZmRjZjk3ODc3
MTJhMzdmNjFhOGI1ZS4uN2FiYjBjOTllN2YwMDM0YzM1NTM1YjcwMzk3NmYwZmU4YmY1OGYxZiAx
MDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXN5
bmNlci5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3Qt
c3luY2VyLmpzCkBAIC02MCw3ICs2MCw4IEBAIGNsYXNzIEJ1aWxkYm90U3luY2VyIHsKICAgICBj
b25zdHJ1Y3RvcihyZW1vdGUsIG9iamVjdCwgY29tbW9uQ29uZmlndXJhdGlvbnMpCiAgICAgewog
ICAgICAgICB0aGlzLl9yZW1vdGUgPSByZW1vdGU7Ci0gICAgICAgIHRoaXMuX3Rlc3RDb25maWd1
cmF0aW9ucyA9IFtdOworICAgICAgICB0aGlzLl90eXBlID0gbnVsbDsKKyAgICAgICAgdGhpcy5f
Y29uZmlndXJhdGlvbnMgPSBbXTsKICAgICAgICAgdGhpcy5fcmVwb3NpdG9yeUdyb3VwcyA9IGNv
bW1vbkNvbmZpZ3VyYXRpb25zLnJlcG9zaXRvcnlHcm91cHM7CiAgICAgICAgIHRoaXMuX3NsYXZl
UHJvcGVydHlOYW1lID0gY29tbW9uQ29uZmlndXJhdGlvbnMuc2xhdmVBcmd1bWVudDsKICAgICAg
ICAgdGhpcy5fYnVpbGRSZXF1ZXN0UHJvcGVydHlOYW1lID0gY29tbW9uQ29uZmlndXJhdGlvbnMu
YnVpbGRSZXF1ZXN0QXJndW1lbnQ7CkBAIC03NiwxNCArNzcsMjggQEAgY2xhc3MgQnVpbGRib3RT
eW5jZXIgewogICAgIHsKICAgICAgICAgYXNzZXJ0KHRlc3QgaW5zdGFuY2VvZiBUZXN0KTsKICAg
ICAgICAgYXNzZXJ0KHBsYXRmb3JtIGluc3RhbmNlb2YgUGxhdGZvcm0pOwotICAgICAgICB0aGlz
Ll90ZXN0Q29uZmlndXJhdGlvbnMucHVzaCh7dGVzdCwgcGxhdGZvcm0sIHByb3BlcnRpZXNUZW1w
bGF0ZX0pOworICAgICAgICBhc3NlcnQodGhpcy5fdHlwZSA9PSBudWxsIHx8IHRoaXMuX3R5cGUg
PT0gJ3Rlc3RlcicpOworICAgICAgICB0aGlzLl90eXBlID0gJ3Rlc3Rlcic7CisgICAgICAgIHRo
aXMuX2NvbmZpZ3VyYXRpb25zLnB1c2goe3Rlc3QsIHBsYXRmb3JtLCBwcm9wZXJ0aWVzVGVtcGxh
dGV9KTsKICAgICB9Ci0gICAgdGVzdENvbmZpZ3VyYXRpb25zKCkgeyByZXR1cm4gdGhpcy5fdGVz
dENvbmZpZ3VyYXRpb25zOyB9CisgICAgdGVzdENvbmZpZ3VyYXRpb25zKCkgeyByZXR1cm4gdGhp
cy5fdHlwZSA9PSAndGVzdGVyJyA/IHRoaXMuX2NvbmZpZ3VyYXRpb25zIDogW107IH0KKworICAg
IGFkZEJ1aWxkQ29uZmlndXJhdGlvbihwbGF0Zm9ybSwgcHJvcGVydGllc1RlbXBsYXRlKQorICAg
IHsKKyAgICAgICAgYXNzZXJ0KHBsYXRmb3JtIGluc3RhbmNlb2YgUGxhdGZvcm0pOworICAgICAg
ICBhc3NlcnQodGhpcy5fdHlwZSA9PSBudWxsIHx8IHRoaXMuX3R5cGUgPT0gJ2J1aWxkZXInKTsK
KyAgICAgICAgdGhpcy5fdHlwZSA9ICdidWlsZGVyJzsKKyAgICAgICAgdGhpcy5fY29uZmlndXJh
dGlvbnMucHVzaCh7dGVzdDogbnVsbCwgcGxhdGZvcm0sIHByb3BlcnRpZXNUZW1wbGF0ZX0pOwor
ICAgIH0KKyAgICBidWlsZENvbmZpZ3VyYXRpb25zKCkgeyByZXR1cm4gdGhpcy5fdHlwZSA9PSAn
YnVpbGRlcicgPyB0aGlzLl9jb25maWd1cmF0aW9ucyA6IFtdOyB9CisKKyAgICBpc1Rlc3Rlcigp
IHsgcmV0dXJuIHRoaXMuX3R5cGUgPT0gJ3Rlc3Rlcic7IH0KKwogICAgIHJlcG9zaXRvcnlHcm91
cHMoKSB7IHJldHVybiB0aGlzLl9yZXBvc2l0b3J5R3JvdXBzOyB9CiAKICAgICBtYXRjaGVzQ29u
ZmlndXJhdGlvbihyZXF1ZXN0KQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3Rlc3RDb25m
aWd1cmF0aW9ucy5zb21lKChjb25maWcpID0+IGNvbmZpZy5wbGF0Zm9ybSA9PSByZXF1ZXN0LnBs
YXRmb3JtKCkgJiYgY29uZmlnLnRlc3QgPT0gcmVxdWVzdC50ZXN0KCkpOworICAgICAgICByZXR1
cm4gdGhpcy5fY29uZmlndXJhdGlvbnMuc29tZSgoY29uZmlnKSA9PiBjb25maWcucGxhdGZvcm0g
PT0gcmVxdWVzdC5wbGF0Zm9ybSgpICYmIGNvbmZpZy50ZXN0ID09IHJlcXVlc3QudGVzdCgpKTsK
ICAgICB9CiAKICAgICBzY2hlZHVsZVJlcXVlc3QobmV3UmVxdWVzdCwgc2xhdmVOYW1lKQpAQCAt
MjAyLDcgKzIxNyw3IEBAIGNsYXNzIEJ1aWxkYm90U3luY2VyIHsKICAgICAgICAgZm9yIChsZXQg
cmVwb3NpdG9yeSBvZiBjb21taXRTZXQucmVwb3NpdG9yaWVzKCkpCiAgICAgICAgICAgICByZXBv
c2l0b3J5QnlOYW1lW3JlcG9zaXRvcnkubmFtZSgpXSA9IHJlcG9zaXRvcnk7CiAKLSAgICAgICAg
Y29uc3QgbWF0Y2hpbmdDb25maWd1cmF0aW9uID0gdGhpcy5fdGVzdENvbmZpZ3VyYXRpb25zLmZp
bmQoKGNvbmZpZykgPT4gY29uZmlnLnBsYXRmb3JtID09IGJ1aWxkUmVxdWVzdC5wbGF0Zm9ybSgp
ICYmIGNvbmZpZy50ZXN0ID09IGJ1aWxkUmVxdWVzdC50ZXN0KCkpOworICAgICAgICBjb25zdCBt
YXRjaGluZ0NvbmZpZ3VyYXRpb24gPSB0aGlzLl9jb25maWd1cmF0aW9ucy5maW5kKChjb25maWcp
ID0+IGNvbmZpZy5wbGF0Zm9ybSA9PSBidWlsZFJlcXVlc3QucGxhdGZvcm0oKSAmJiBjb25maWcu
dGVzdCA9PSBidWlsZFJlcXVlc3QudGVzdCgpKTsKICAgICAgICAgYXNzZXJ0KG1hdGNoaW5nQ29u
ZmlndXJhdGlvbiwgYEJ1aWxkIHJlcXVlc3QgJHtidWlsZFJlcXVlc3QuaWQoKX0gZG9lcyBub3Qg
bWF0Y2ggYSBjb25maWd1cmF0aW9uIGluIHRoZSBidWlsZGVyICIke3RoaXMuX2J1aWxkZXJOYW1l
fSJgKTsKICAgICAgICAgY29uc3QgcHJvcGVydGllc1RlbXBsYXRlID0gbWF0Y2hpbmdDb25maWd1
cmF0aW9uLnByb3BlcnRpZXNUZW1wbGF0ZTsKIApAQCAtMjE2LDEwICsyMzEsMzAgQEAgY2xhc3Mg
QnVpbGRib3RTeW5jZXIgewogICAgICAgICBmb3IgKGxldCBwcm9wZXJ0eU5hbWUgaW4gcHJvcGVy
dGllc1RlbXBsYXRlKQogICAgICAgICAgICAgcHJvcGVydGllc1twcm9wZXJ0eU5hbWVdID0gcHJv
cGVydGllc1RlbXBsYXRlW3Byb3BlcnR5TmFtZV07CiAKLSAgICAgICAgY29uc3QgcmVwb3NpdG9y
eUdyb3VwVGVtcGxhdGUgPSByZXBvc2l0b3J5R3JvdXBDb25maWd1cmF0aW9uLnByb3BlcnRpZXNU
ZW1wbGF0ZTsKKyAgICAgICAgY29uc3QgcmVwb3NpdG9yeUdyb3VwVGVtcGxhdGUgPSBidWlsZFJl
cXVlc3QuaXNCdWlsZCgpID8gcmVwb3NpdG9yeUdyb3VwQ29uZmlndXJhdGlvbi5idWlsZFByb3Bl
cnRpZXNUZW1wbGF0ZSA6IHJlcG9zaXRvcnlHcm91cENvbmZpZ3VyYXRpb24udGVzdFByb3BlcnRp
ZXNUZW1wbGF0ZTsKICAgICAgICAgZm9yIChsZXQgcHJvcGVydHlOYW1lIGluIHJlcG9zaXRvcnlH
cm91cFRlbXBsYXRlKSB7Ci0gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHJlcG9zaXRvcnlHcm91
cFRlbXBsYXRlW3Byb3BlcnR5TmFtZV07Ci0gICAgICAgICAgICBwcm9wZXJ0aWVzW3Byb3BlcnR5
TmFtZV0gPSB2YWx1ZSBpbnN0YW5jZW9mIFJlcG9zaXRvcnkgPyBjb21taXRTZXQucmV2aXNpb25G
b3JSZXBvc2l0b3J5KHZhbHVlKSA6IHZhbHVlOworICAgICAgICAgICAgbGV0IHZhbHVlID0gcmVw
b3NpdG9yeUdyb3VwVGVtcGxhdGVbcHJvcGVydHlOYW1lXTsKKyAgICAgICAgICAgIGNvbnN0IHR5
cGUgPSB0eXBlb2YodmFsdWUpID09ICdvYmplY3QnID8gdmFsdWUudHlwZSA6ICdzdHJpbmcnOwor
ICAgICAgICAgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgICAgICBjYXNlICdzdHJpbmcnOgor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAncmV2aXNpb24nOgorICAg
ICAgICAgICAgICAgIHZhbHVlID0gY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh2YWx1
ZS5yZXBvc2l0b3J5KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2Ug
J3BhdGNoJzoKKyAgICAgICAgICAgICAgICBjb25zdCBwYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZv
clJlcG9zaXRvcnkodmFsdWUucmVwb3NpdG9yeSk7CisgICAgICAgICAgICAgICAgaWYgKCFwYXRj
aCkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgdmFsdWUg
PSBwYXRjaC51cmwoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2Ug
J3Jvb3RzJzoKKyAgICAgICAgICAgICAgICBjb25zdCByb290RmlsZXMgPSBjb21taXRTZXQuYWxs
Um9vdEZpbGVzKCk7CisgICAgICAgICAgICAgICAgaWYgKCFyb290RmlsZXMubGVuZ3RoKQorICAg
ICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IEpTT04u
c3RyaW5naWZ5KHJvb3RGaWxlcy5tYXAoKGZpbGUpID0+ICh7dXJsOiBmaWxlLnVybCgpfSkpKTsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHByb3Bl
cnRpZXNbcHJvcGVydHlOYW1lXSA9IHZhbHVlOwogICAgICAgICB9CiAgICAgICAgIHByb3BlcnRp
ZXNbdGhpcy5fYnVpbGRSZXF1ZXN0UHJvcGVydHlOYW1lXSA9IGJ1aWxkUmVxdWVzdC5pZCgpOwog
CkBAIC0yNjIsMTIxICsyOTcsMTgzIEBAIGNsYXNzIEJ1aWxkYm90U3luY2VyIHsKICAgICAgICAg
ICAgIGJ1aWxkUmVxdWVzdEFyZ3VtZW50OiBjb25maWcuYnVpbGRSZXF1ZXN0QXJndW1lbnQsCiAg
ICAgICAgIH07CiAKLSAgICAgICAgbGV0IHN5bmNlckJ5QnVpbGRlciA9IG5ldyBNYXA7Ci0gICAg
ICAgIGNvbnN0IGV4cGFuZGVkQ29uZmlndXJhdGlvbnMgPSBbXTsKLSAgICAgICAgZm9yIChsZXQg
ZW50cnkgb2YgY29uZmlnWydjb25maWd1cmF0aW9ucyddKSB7Ci0gICAgICAgICAgICBmb3IgKGNv
bnN0IGV4cGFuZGVkQ29uZmlnIG9mIHRoaXMuX2V4cGFuZFR5cGVzQW5kUGxhdGZvcm1zKGVudHJ5
KSkKLSAgICAgICAgICAgICAgICBleHBhbmRlZENvbmZpZ3VyYXRpb25zLnB1c2goZXhwYW5kZWRD
b25maWcpOworICAgICAgICBjb25zdCBzeW5jZXJCeUJ1aWxkZXIgPSBuZXcgTWFwOworICAgICAg
ICBjb25zdCBlbnN1cmVCdWlsZGJvdFN5bmNlciA9IChidWlsZGVySW5mbykgPT4geworICAgICAg
ICAgICAgbGV0IGJ1aWxkZXJTeW5jZXIgPSBzeW5jZXJCeUJ1aWxkZXIuZ2V0KGJ1aWxkZXJJbmZv
LmJ1aWxkZXIpOworICAgICAgICAgICAgaWYgKCFidWlsZGVyU3luY2VyKSB7CisgICAgICAgICAg
ICAgICAgYnVpbGRlclN5bmNlciA9IG5ldyBCdWlsZGJvdFN5bmNlcihyZW1vdGUsIGJ1aWxkZXJJ
bmZvLCBjb21tb25Db25maWd1cmF0aW9ucyk7CisgICAgICAgICAgICAgICAgc3luY2VyQnlCdWls
ZGVyLnNldChidWlsZGVySW5mby5idWlsZGVyLCBidWlsZGVyU3luY2VyKTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIHJldHVybiBidWlsZGVyU3luY2VyOwogICAgICAgICB9CiAKLSAgICAg
ICAgZm9yIChsZXQgZW50cnkgb2YgZXhwYW5kZWRDb25maWd1cmF0aW9ucykgewotICAgICAgICAg
ICAgY29uc3QgbWVyZ2VkQ29uZmlnID0ge307Ci0gICAgICAgICAgICB0aGlzLl92YWxpZGF0ZUFu
ZE1lcmdlQ29uZmlnKG1lcmdlZENvbmZpZywgZW50cnkpOworICAgICAgICBhc3NlcnQoQXJyYXku
aXNBcnJheShjb25maWdbJ3Rlc3RDb25maWd1cmF0aW9ucyddKSwgYFRoZSB0ZXN0IGNvbmZpZ3Vy
YXRpb24gbXVzdCBiZSBhbiBhcnJheWApOworICAgICAgICB0aGlzLl9yZXNvbHZlQnVpbGRlcnNX
aXRoUGxhdGZvcm1zKCd0ZXN0JywgY29uZmlnWyd0ZXN0Q29uZmlndXJhdGlvbnMnXSwgYnVpbGRl
cnMpLmZvckVhY2goKGVudHJ5LCBjb25maWd1cmF0aW9uSW5kZXgpID0+IHsKKyAgICAgICAgICAg
IGFzc2VydChBcnJheS5pc0FycmF5KGVudHJ5Wyd0eXBlcyddKSwgYFRoZSB0ZXN0IGNvbmZpZ3Vy
YXRpb24gJHtjb25maWd1cmF0aW9uSW5kZXh9IGRvZXMgbm90IHNwZWNpZnkgInR5cGVzIiBhcyBh
biBhcnJheWApOworICAgICAgICAgICAgZm9yIChjb25zdCB0eXBlIG9mIGVudHJ5Wyd0eXBlcydd
KSB7CisgICAgICAgICAgICAgICAgY29uc3QgdHlwZUNvbmZpZyA9IHRoaXMuX3ZhbGlkYXRlQW5k
TWVyZ2VDb25maWcoe30sIGVudHJ5LmJ1aWxkZXJDb25maWcpOworICAgICAgICAgICAgICAgIGFz
c2VydCh0eXBlc1t0eXBlXSwgYCIke3R5cGV9IiBpcyBub3QgYSB2YWxpZCB0eXBlIGluIHRoZSBj
b25maWd1cmF0aW9uYCk7CisgICAgICAgICAgICAgICAgdGhpcy5fdmFsaWRhdGVBbmRNZXJnZUNv
bmZpZyh0eXBlQ29uZmlnLCB0eXBlc1t0eXBlXSk7CiAKLSAgICAgICAgICAgIGlmICgndHlwZScg
aW4gbWVyZ2VkQ29uZmlnKSB7Ci0gICAgICAgICAgICAgICAgY29uc3QgdHlwZSA9IG1lcmdlZENv
bmZpZ1sndHlwZSddOwotICAgICAgICAgICAgICAgIGFzc2VydCh0eXBlLCBgJHt0eXBlfSBpcyBu
b3QgYSB2YWxpZCB0eXBlIGluIHRoZSBjb25maWd1cmF0aW9uYCk7Ci0gICAgICAgICAgICAgICAg
dGhpcy5fdmFsaWRhdGVBbmRNZXJnZUNvbmZpZyhtZXJnZWRDb25maWcsIHR5cGVzW3R5cGVdKTsK
LSAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjb25zdCB0ZXN0UGF0aCA9IHR5cGVDb25m
aWcudGVzdDsKKyAgICAgICAgICAgICAgICBjb25zdCB0ZXN0ID0gVGVzdC5maW5kQnlQYXRoKHRl
c3RQYXRoKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQodGVzdCwgYCIke3Rlc3RQYXRoLmpvaW4o
JyIsICInKX0iIGlzIG5vdCBhIHZhbGlkIHRlc3QgcGF0aCBpbiB0aGUgdGVzdCBjb25maWd1cmF0
aW9uICR7Y29uZmlndXJhdGlvbkluZGV4fWApOwogCi0gICAgICAgICAgICBjb25zdCBidWlsZGVy
ID0gZW50cnlbJ2J1aWxkZXInXTsKLSAgICAgICAgICAgIGlmIChidWlsZGVyc1tidWlsZGVyXSkK
LSAgICAgICAgICAgICAgICB0aGlzLl92YWxpZGF0ZUFuZE1lcmdlQ29uZmlnKG1lcmdlZENvbmZp
ZywgYnVpbGRlcnNbYnVpbGRlcl0pOworICAgICAgICAgICAgICAgIGVuc3VyZUJ1aWxkYm90U3lu
Y2VyKGVudHJ5LmJ1aWxkZXJDb25maWcpLmFkZFRlc3RDb25maWd1cmF0aW9uKHRlc3QsIGVudHJ5
LnBsYXRmb3JtLCB0eXBlQ29uZmlnLnByb3BlcnRpZXMpOworICAgICAgICAgICAgfQorICAgICAg
ICB9KTsKIAotICAgICAgICAgICAgdGhpcy5fY3JlYXRlVGVzdENvbmZpZ3VyYXRpb24ocmVtb3Rl
LCBzeW5jZXJCeUJ1aWxkZXIsIG1lcmdlZENvbmZpZywgY29tbW9uQ29uZmlndXJhdGlvbnMpOwor
ICAgICAgICBjb25zdCBidWlsZENvbmZpZ3VyYXRpb25zID0gY29uZmlnWydidWlsZENvbmZpZ3Vy
YXRpb25zJ107CisgICAgICAgIGlmIChidWlsZENvbmZpZ3VyYXRpb25zKSB7CisgICAgICAgICAg
ICBhc3NlcnQoQXJyYXkuaXNBcnJheShidWlsZENvbmZpZ3VyYXRpb25zKSwgYFRoZSB0ZXN0IGNv
bmZpZ3VyYXRpb24gbXVzdCBiZSBhbiBhcnJheWApOworICAgICAgICAgICAgdGhpcy5fcmVzb2x2
ZUJ1aWxkZXJzV2l0aFBsYXRmb3JtcygndGVzdCcsIGJ1aWxkQ29uZmlndXJhdGlvbnMsIGJ1aWxk
ZXJzKS5mb3JFYWNoKChlbnRyeSwgY29uZmlndXJhdGlvbkluZGV4KSA9PiB7CisgICAgICAgICAg
ICAgICAgY29uc3Qgc3luY2VyID0gZW5zdXJlQnVpbGRib3RTeW5jZXIoZW50cnkuYnVpbGRlckNv
bmZpZyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0KCFzeW5jZXIuaXNUZXN0ZXIoKSwgYFRoZSBi
dWlsZCBjb25maWd1cmF0aW9uICR7Y29uZmlndXJhdGlvbkluZGV4fSB1c2VzIGEgdGVzdGVyOiAk
e3N5bmNlci5idWlsZGVyTmFtZSgpfWApOworICAgICAgICAgICAgICAgIHN5bmNlci5hZGRCdWls
ZENvbmZpZ3VyYXRpb24oZW50cnkucGxhdGZvcm0sIGVudHJ5LmJ1aWxkZXJDb25maWcucHJvcGVy
dGllcyk7CisgICAgICAgICAgICB9KTsKICAgICAgICAgfQogCiAgICAgICAgIHJldHVybiBBcnJh
eS5mcm9tKHN5bmNlckJ5QnVpbGRlci52YWx1ZXMoKSk7CiAgICAgfQogCisgICAgc3RhdGljIF9y
ZXNvbHZlQnVpbGRlcnNXaXRoUGxhdGZvcm1zKGNvbmZpZ3VyYXRpb25UeXBlLCBjb25maWd1cmF0
aW9uTGlzdCwgYnVpbGRlcnMpCisgICAgeworICAgICAgICBjb25zdCByZXNvbHZlZENvbmZpZ3Vy
YXRpb25zID0gW107CisgICAgICAgIGxldCBjb25maWd1cmF0aW9uSW5kZXggPSAwOworICAgICAg
ICBmb3IgKGNvbnN0IGVudHJ5IG9mIGNvbmZpZ3VyYXRpb25MaXN0KSB7CisgICAgICAgICAgICBj
b25maWd1cmF0aW9uSW5kZXgrKzsKKyAgICAgICAgICAgIGFzc2VydChBcnJheS5pc0FycmF5KGVu
dHJ5WydidWlsZGVycyddKSwgYFRoZSAke2NvbmZpZ3VyYXRpb25UeXBlfSBjb25maWd1cmF0aW9u
ICR7Y29uZmlndXJhdGlvbkluZGV4fSBkb2VzIG5vdCBzcGVjaWZ5ICJidWlsZGVycyIgYXMgYW4g
YXJyYXlgKTsKKyAgICAgICAgICAgIGFzc2VydChBcnJheS5pc0FycmF5KGVudHJ5WydwbGF0Zm9y
bXMnXSksIGBUaGUgJHtjb25maWd1cmF0aW9uVHlwZX0gY29uZmlndXJhdGlvbiAke2NvbmZpZ3Vy
YXRpb25JbmRleH0gZG9lcyBub3Qgc3BlY2lmeSAicGxhdGZvcm1zIiBhcyBhbiBhcnJheWApOwor
ICAgICAgICAgICAgZm9yIChjb25zdCBidWlsZGVyS2V5IG9mIGVudHJ5WydidWlsZGVycyddKSB7
CisgICAgICAgICAgICAgICAgY29uc3QgbWF0Y2hpbmdCdWlsZGVyID0gYnVpbGRlcnNbYnVpbGRl
cktleV07CisgICAgICAgICAgICAgICAgYXNzZXJ0KG1hdGNoaW5nQnVpbGRlciwgYCIke2J1aWxk
ZXJLZXl9IiBpcyBub3QgYSB2YWxpZCBidWlsZGVyIGluIHRoZSBjb25maWd1cmF0aW9uYCk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0KCdidWlsZGVyJyBpbiBtYXRjaGluZ0J1aWxkZXIsIGBCdWls
ZGVyICR7YnVpbGRlcktleX0gZG9lcyBub3Qgc3BlY2lmeSBhIGJ1aWxkYm90IGJ1aWxkZXIgbmFt
ZWApOworICAgICAgICAgICAgICAgIGNvbnN0IGJ1aWxkZXJDb25maWcgPSB0aGlzLl92YWxpZGF0
ZUFuZE1lcmdlQ29uZmlnKHt9LCBtYXRjaGluZ0J1aWxkZXIpOworICAgICAgICAgICAgICAgIGZv
ciAoY29uc3QgcGxhdGZvcm1OYW1lIG9mIGVudHJ5WydwbGF0Zm9ybXMnXSkgeworICAgICAgICAg
ICAgICAgICAgICBjb25zdCBwbGF0Zm9ybSA9IFBsYXRmb3JtLmZpbmRCeU5hbWUocGxhdGZvcm1O
YW1lKTsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0KHBsYXRmb3JtLCBgJHtwbGF0Zm9ybU5h
bWV9IGlzIG5vdCBhIHZhbGlkIHBsYXRmb3JtIG5hbWVgKTsKKyAgICAgICAgICAgICAgICAgICAg
cmVzb2x2ZWRDb25maWd1cmF0aW9ucy5wdXNoKHt0eXBlczogZW50cnkudHlwZXMsIGJ1aWxkZXJD
b25maWcsIHBsYXRmb3JtfSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAg
ICAgICB9CisgICAgICAgIHJldHVybiByZXNvbHZlZENvbmZpZ3VyYXRpb25zOworICAgIH0KKwog
ICAgIHN0YXRpYyBfcGFyc2VSZXBvc2l0b3J5R3JvdXAobmFtZSwgZ3JvdXApCiAgICAgewogICAg
ICAgICBhc3NlcnQuZXF1YWwodHlwZW9mKGdyb3VwLnJlcG9zaXRvcmllcyksICdvYmplY3QnLAog
ICAgICAgICAgICAgYFJlcG9zaXRvcnkgZ3JvdXAgIiR7bmFtZX0iIGRvZXMgbm90IHNwZWNpZnkg
YSBkaWN0aW9uYXJ5IG9mIHJlcG9zaXRvcmllc2ApOwogICAgICAgICBhc3NlcnQoISgnZGVzY3Jp
cHRpb24nIGluIGdyb3VwKSB8fCB0eXBlb2YoZ3JvdXBbJ2Rlc2NyaXB0aW9uJ10pID09ICdzdHJp
bmcnLAogICAgICAgICAgICAgYFJlcG9zaXRvcnkgZ3JvdXAgIiR7bmFtZX0iIGhhdmUgYW4gaW52
YWxpZCBkZXNjcmlwdGlvbmApOwotICAgICAgICBhc3NlcnQuZXF1YWwodHlwZW9mKGdyb3VwLnBy
b3BlcnRpZXMpLCAnb2JqZWN0JywgYFJlcG9zaXRvcnkgZ3JvdXAgIiR7bmFtZX0iIHNwZWNpZmll
cyBhbiBpbnZhbGlkIGRpY3Rpb25hcnkgb2YgcHJvcGVydGllc2ApOwogICAgICAgICBhc3NlcnQo
W3VuZGVmaW5lZCwgdHJ1ZSwgZmFsc2VdLmluY2x1ZGVzKGdyb3VwLmFjY2VwdHNSb290cyksCi0g
ICAgICAgICAgICBgUmVwb3NpdG9yeSBncm91cCAiJHtuYW1lfSIgY29udGFpbnMgaW52YWxpZCBh
Y2NlcHRzUm9vdHMgdmFsdWU6ICR7Z3JvdXAuYWNjZXB0c1Jvb3RzfWApOworICAgICAgICAgICAg
YFJlcG9zaXRvcnkgZ3JvdXAgIiR7bmFtZX0iIGNvbnRhaW5zIGludmFsaWQgYWNjZXB0c1Jvb3Rz
IHZhbHVlOiAke0pTT04uc3RyaW5naWZ5KGdyb3VwLmFjY2VwdHNSb290cyl9YCk7CiAKICAgICAg
ICAgY29uc3QgcmVwb3NpdG9yeUJ5TmFtZSA9IHt9OwogICAgICAgICBjb25zdCBwYXJzZWRSZXBv
c2l0b3J5TGlzdCA9IFtdOworICAgICAgICBjb25zdCBwYXRjaEFjY2VwdGluZ1JlcG9zaXRvcnlM
aXN0ID0gbmV3IFNldDsKICAgICAgICAgZm9yIChjb25zdCByZXBvc2l0b3J5TmFtZSBpbiBncm91
cC5yZXBvc2l0b3JpZXMpIHsKICAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSBncm91cC5yZXBv
c2l0b3JpZXNbcmVwb3NpdG9yeU5hbWVdOwogICAgICAgICAgICAgY29uc3QgcmVwb3NpdG9yeSA9
IFJlcG9zaXRvcnkuZmluZFRvcExldmVsQnlOYW1lKHJlcG9zaXRvcnlOYW1lKTsKICAgICAgICAg
ICAgIGFzc2VydChyZXBvc2l0b3J5LCBgIiR7cmVwb3NpdG9yeU5hbWV9IiBpcyBub3QgYSB2YWxp
ZCByZXBvc2l0b3J5IG5hbWVgKTsKICAgICAgICAgICAgIHJlcG9zaXRvcnlCeU5hbWVbcmVwb3Np
dG9yeU5hbWVdID0gcmVwb3NpdG9yeTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0eXBlb2Yo
b3B0aW9ucyksICdvYmplY3QnLCBgIiR7cmVwb3NpdG9yeU5hbWV9IiBkb2VzIG5vdCBzcGVjaWZ5
IGEgdmFsaWQgb3B0aW9uYCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodHlwZW9mKG9wdGlv
bnMpLCAnb2JqZWN0JywgYCIke3JlcG9zaXRvcnlOYW1lfSIgc3BlY2lmaWVzIGEgbm9uLWRpY3Rp
b25hcnkgdmFsdWVgKTsKICAgICAgICAgICAgIGFzc2VydChbdW5kZWZpbmVkLCB0cnVlLCBmYWxz
ZV0uaW5jbHVkZXMob3B0aW9ucy5hY2NlcHRzUGF0Y2gpLAotICAgICAgICAgICAgICAgIGAiJHty
ZXBvc2l0b3J5TmFtZX0iIGNvbnRhaW5zIGludmFsaWQgYWNjZXB0c1BhdGNoIHZhbHVlOiAke29w
dGlvbnMuYWNjZXB0c1BhdGNofWApOworICAgICAgICAgICAgICAgIGAiJHtyZXBvc2l0b3J5TmFt
ZX0iIGNvbnRhaW5zIGludmFsaWQgYWNjZXB0c1BhdGNoIHZhbHVlOiAke0pTT04uc3RyaW5naWZ5
KG9wdGlvbnMuYWNjZXB0c1BhdGNoKX1gKTsKKyAgICAgICAgICAgIGlmIChvcHRpb25zLmFjY2Vw
dHNQYXRjaCkKKyAgICAgICAgICAgICAgICBwYXRjaEFjY2VwdGluZ1JlcG9zaXRvcnlMaXN0LmFk
ZChyZXBvc2l0b3J5KTsKICAgICAgICAgICAgIHJlcG9zaXRvcnlCeU5hbWVbcmVwb3NpdG9yeU5h
bWVdID0gcmVwb3NpdG9yeTsKICAgICAgICAgICAgIHBhcnNlZFJlcG9zaXRvcnlMaXN0LnB1c2go
e3JlcG9zaXRvcnk6IHJlcG9zaXRvcnkuaWQoKSwgYWNjZXB0c1BhdGNoOiBvcHRpb25zLmFjY2Vw
dHNQYXRjaH0pOwogICAgICAgICB9CisgICAgICAgIGFzc2VydChwYXJzZWRSZXBvc2l0b3J5TGlz
dC5sZW5ndGgsIGBSZXBvc2l0b3J5IGdyb3VwICIke25hbWV9IiBkb2VzIG5vdCBzcGVjaWZ5IGFu
eSByZXBvc2l0b3J5YCk7CiAKLSAgICAgICAgY29uc3QgcHJvcGVydGllc1RlbXBsYXRlID0ge307
Ci0gICAgICAgIGNvbnN0IHVzZWRSZXBvc2l0b3JpZXMgPSBbXTsKLSAgICAgICAgZm9yIChjb25z
dCBwcm9wZXJ0eU5hbWUgaW4gZ3JvdXAucHJvcGVydGllcykgewotICAgICAgICAgICAgbGV0IHZh
bHVlID0gZ3JvdXAucHJvcGVydGllc1twcm9wZXJ0eU5hbWVdOwotICAgICAgICAgICAgY29uc3Qg
bWF0Y2ggPSB2YWx1ZS5tYXRjaCgvXjwoLispPiQvKTsKLSAgICAgICAgICAgIGlmIChtYXRjaCkg
ewotICAgICAgICAgICAgICAgIGNvbnN0IHJlcG9zaXRvcnlOYW1lID0gbWF0Y2hbMV07Ci0gICAg
ICAgICAgICAgICAgdmFsdWUgPSByZXBvc2l0b3J5QnlOYW1lW3JlcG9zaXRvcnlOYW1lXTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQodmFsdWUsIGBSZXBvc2l0b3J5IGdyb3VwICIke25hbWV9IiB1
c2VzICIke3JlcG9zaXRvcnlOYW1lfSIgaW4gaXRzIHByb3BlcnR5IGJ1dCBkb2VzIG5vdCBsaXN0
IGluIHRoZSBsaXN0IG9mIHJlcG9zaXRvcmllc2ApOwotICAgICAgICAgICAgICAgIHVzZWRSZXBv
c2l0b3JpZXMucHVzaCh2YWx1ZSk7CisgICAgICAgIGFzc2VydC5lcXVhbCh0eXBlb2YoZ3JvdXAu
dGVzdFByb3BlcnRpZXMpLCAnb2JqZWN0JywgYFJlcG9zaXRvcnkgZ3JvdXAgIiR7bmFtZX0iIHNw
ZWNpZmllcyB0aGUgdGVzdCBjb25maWd1cmF0aW9ucyB3aXRoIGFuIGludmFsaWQgdHlwZWApOwor
CisgICAgICAgIGNvbnN0IHJlc29sdmVSZXBvc2l0b3J5ID0gKHJlcG9zaXRvcnlOYW1lKSA9PiB7
CisgICAgICAgICAgICBjb25zdCByZXBvc2l0b3J5ID0gcmVwb3NpdG9yeUJ5TmFtZVtyZXBvc2l0
b3J5TmFtZV07CisgICAgICAgICAgICBhc3NlcnQocmVwb3NpdG9yeSwgYFJlcG9zaXRvcnkgZ3Jv
dXAgIiR7bmFtZX0iIGFuIGludmFsaWQgcmVwb3NpdG9yeSAiJHtyZXBvc2l0b3J5TmFtZX0iYCk7
CisgICAgICAgICAgICByZXR1cm4gcmVwb3NpdG9yeTsKKyAgICAgICAgfQorCisgICAgICAgIGNv
bnN0IHRlc3RSZXBvc2l0b3JpZXMgPSBuZXcgU2V0OworICAgICAgICBsZXQgc3BlY2lmaWVzUm9v
dHMgPSBmYWxzZTsKKyAgICAgICAgY29uc3QgdGVzdFByb3BlcnRpZXNUZW1wbGF0ZSA9IHRoaXMu
X3BhcnNlUmVwb3NpdG9yeUdyb3VwUHJvcGVydHlUZW1wbGF0ZSgndGVzdCcsIG5hbWUsIGdyb3Vw
LnRlc3RQcm9wZXJ0aWVzLCAodHlwZSwgdmFsdWUpID0+IHsKKyAgICAgICAgICAgIGFzc2VydCh0
eXBlICE9ICdwYXRjaCcsIGBSZXBvc2l0b3J5IGdyb3VwICIke25hbWV9IiBzcGVjaWZpZXMgYSBw
YXRjaCBmb3IgIiR7dmFsdWV9IiBpbiB0aGUgcHJvcGVydGllcyBmb3IgdGVzdGluZ2ApOworICAg
ICAgICAgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgICAgICBjYXNlICdyZXZpc2lvbic6Cisg
ICAgICAgICAgICAgICAgY29uc3QgcmVwb3NpdG9yeSA9IHJlc29sdmVSZXBvc2l0b3J5KHZhbHVl
KTsKKyAgICAgICAgICAgICAgICB0ZXN0UmVwb3NpdG9yaWVzLmFkZChyZXBvc2l0b3J5KTsKKyAg
ICAgICAgICAgICAgICByZXR1cm4ge3R5cGUsIHJlcG9zaXRvcnl9OworICAgICAgICAgICAgY2Fz
ZSAncm9vdHMnOgorICAgICAgICAgICAgICAgIGFzc2VydChncm91cC5hY2NlcHRzUm9vdHMsIGBS
ZXBvc2l0b3J5IGdyb3VwICIke25hbWV9IiBzcGVjaWZpZXMgcm9vdHMgaW4gYSBwcm9wZXJ0eSBi
dXQgaXQgZG9lcyBub3QgYWNjZXB0IHJvb3RzYCk7CisgICAgICAgICAgICAgICAgc3BlY2lmaWVz
Um9vdHMgPSB0cnVlOworICAgICAgICAgICAgICAgIHJldHVybiB7dHlwZX07CiAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICBwcm9wZXJ0aWVzVGVtcGxhdGVbcHJvcGVydHlOYW1lXSA9IHZhbHVl
OworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0pOworICAgICAgICBhc3NlcnQo
IWdyb3VwLmFjY2VwdHNSb290cyA9PSAhc3BlY2lmaWVzUm9vdHMsCisgICAgICAgICAgICBgUmVw
b3NpdG9yeSBncm91cCAiJHtuYW1lfSIgYWNjZXB0cyByb290cyBidXQgZG9lcyBub3Qgc3BlY2lm
eSByb290cyBpbiB0ZXN0UHJvcGVydGllc2ApOworICAgICAgICBhc3NlcnQuZXF1YWwocGFyc2Vk
UmVwb3NpdG9yeUxpc3QubGVuZ3RoLCB0ZXN0UmVwb3NpdG9yaWVzLnNpemUsCisgICAgICAgICAg
ICBgUmVwb3NpdG9yeSBncm91cCAiJHtuYW1lfSIgZG9lcyBub3QgdXNlIHNvbWUgb2YgdGhlIHJl
cG9zaXRvcmllcyBsaXN0ZWQgaW4gdGVzdGluZ2ApOworCisgICAgICAgIGxldCBidWlsZFByb3Bl
cnRpZXNUZW1wbGF0ZSA9IG51bGw7CisgICAgICAgIGlmICgnYnVpbGRQcm9wZXJ0aWVzJyBpbiBn
cm91cCkgeworICAgICAgICAgICAgYXNzZXJ0KHBhdGNoQWNjZXB0aW5nUmVwb3NpdG9yeUxpc3Qu
c2l6ZSwgYFJlcG9zaXRvcnkgZ3JvdXAgIiR7bmFtZX0iIHNwZWNpZmllcyB0aGUgcHJvcGVydGll
cyBmb3IgYnVpbGRpbmcgYnV0IGRvZXMgbm90IGFjY2VwdCBhbnkgcGF0Y2hlc2ApOworICAgICAg
ICAgICAgYXNzZXJ0KGdyb3VwLmFjY2VwdHNSb290cywgYFJlcG9zaXRvcnkgZ3JvdXAgIiR7bmFt
ZX0iIHNwZWNpZmllcyB0aGUgcHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYnV0IGRvZXMgbm90IGFj
Y2VwdCByb290cyBpbiB0ZXN0aW5nYCk7CisgICAgICAgICAgICBjb25zdCByZXZpc2lvblJlcG9z
aXRvcmllcyA9IG5ldyBTZXQ7CisgICAgICAgICAgICBjb25zdCBwYXRjaFJlcG9zaXRvcmllcyA9
IG5ldyBTZXQ7CisgICAgICAgICAgICBidWlsZFByb3BlcnRpZXNUZW1wbGF0ZSA9IHRoaXMuX3Bh
cnNlUmVwb3NpdG9yeUdyb3VwUHJvcGVydHlUZW1wbGF0ZSgnYnVpbGQnLCBuYW1lLCBncm91cC5i
dWlsZFByb3BlcnRpZXMsICh0eXBlLCB2YWx1ZSkgPT4geworICAgICAgICAgICAgICAgIGFzc2Vy
dCh0eXBlICE9ICdyb290cycsIGBSZXBvc2l0b3J5IGdyb3VwICIke25hbWV9IiBzcGVjaWZpZXMg
cm9vdHMgaW4gdGhlIHByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nYCk7CisgICAgICAgICAgICAgICAg
Y29uc3QgcmVwb3NpdG9yeSA9IHJlc29sdmVSZXBvc2l0b3J5KHZhbHVlKTsKKyAgICAgICAgICAg
ICAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICAgICAgICAgICAgICBjYXNlICdwYXRjaCc6CisgICAg
ICAgICAgICAgICAgICAgIGFzc2VydChwYXRjaEFjY2VwdGluZ1JlcG9zaXRvcnlMaXN0Lmhhcyhy
ZXBvc2l0b3J5KSwgYFJlcG9zaXRvcnkgZ3JvdXAgIiR7bmFtZX0iIHNwZWNpZmllcyBhIHBhdGNo
IGZvciAiJHt2YWx1ZX0iIGJ1dCBpdCBkb2VzIG5vdCBhY2NlcHQgYSBwYXRjaGApOworICAgICAg
ICAgICAgICAgICAgICBwYXRjaFJlcG9zaXRvcmllcy5hZGQocmVwb3NpdG9yeSk7CisgICAgICAg
ICAgICAgICAgICAgIHJldHVybiB7dHlwZSwgcmVwb3NpdG9yeX07CisgICAgICAgICAgICAgICAg
Y2FzZSAncmV2aXNpb24nOgorICAgICAgICAgICAgICAgICAgICByZXZpc2lvblJlcG9zaXRvcmll
cy5hZGQocmVwb3NpdG9yeSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHlwZSwgcmVw
b3NpdG9yeX07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiBudWxs
OworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBmb3IgKGNvbnN0IHJlcG9zaXRvcnkgb2Yg
cGF0Y2hSZXBvc2l0b3JpZXMpCisgICAgICAgICAgICAgICAgYXNzZXJ0KHJldmlzaW9uUmVwb3Np
dG9yaWVzLmhhcyhyZXBvc2l0b3J5KSwgYFJlcG9zaXRvcnkgZ3JvdXAgIiR7bmFtZX0iIHNwZWNp
ZmllcyBhIHBhdGNoIGZvciAiJHtyZXBvc2l0b3J5Lm5hbWUoKX0iIGJ1dCBkb2VzIG5vdCBzcGVj
aWZ5IGEgcmV2aXNpb25gKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChwYXRjaEFjY2VwdGlu
Z1JlcG9zaXRvcnlMaXN0LnNpemUsIHBhdGNoUmVwb3NpdG9yaWVzLnNpemUsCisgICAgICAgICAg
ICAgICAgYFJlcG9zaXRvcnkgZ3JvdXAgIiR7bmFtZX0iIGRvZXMgbm90IHVzZSBzb21lIG9mIHRo
ZSByZXBvc2l0b3JpZXMgbGlzdGVkIGluIGJ1aWxkaW5nIGEgcGF0Y2hgKTsKICAgICAgICAgfQot
ICAgICAgICBhc3NlcnQocGFyc2VkUmVwb3NpdG9yeUxpc3QubGVuZ3RoLCBgUmVwb3NpdG9yeSBn
cm91cCAiJHtuYW1lfSIgZG9lcyBub3Qgc3BlY2lmeSBhbnkgcmVwb3NpdG9yeWApOwotICAgICAg
ICBhc3NlcnQuZXF1YWwocGFyc2VkUmVwb3NpdG9yeUxpc3QubGVuZ3RoLCB1c2VkUmVwb3NpdG9y
aWVzLmxlbmd0aCwKLSAgICAgICAgICAgIGBSZXBvc2l0b3J5IGdyb3VwICIke25hbWV9IiBkb2Vz
IG5vdCB1c2Ugc29tZSBvZiB0aGUgcmVwb3NpdG9yaWVzIGxpc3RlZGApOworCiAgICAgICAgIHJl
dHVybiB7CiAgICAgICAgICAgICBuYW1lOiBncm91cC5uYW1lLAogICAgICAgICAgICAgZGVzY3Jp
cHRpb246IGdyb3VwLmRlc2NyaXB0aW9uLAogICAgICAgICAgICAgYWNjZXB0c1Jvb3RzOiBncm91
cC5hY2NlcHRzUm9vdHMsCi0gICAgICAgICAgICBwcm9wZXJ0aWVzVGVtcGxhdGUsCisgICAgICAg
ICAgICB0ZXN0UHJvcGVydGllc1RlbXBsYXRlOiB0ZXN0UHJvcGVydGllc1RlbXBsYXRlLAorICAg
ICAgICAgICAgYnVpbGRQcm9wZXJ0aWVzVGVtcGxhdGU6IGJ1aWxkUHJvcGVydGllc1RlbXBsYXRl
LAogICAgICAgICAgICAgcmVwb3NpdG9yeUxpc3Q6IHBhcnNlZFJlcG9zaXRvcnlMaXN0LAogICAg
ICAgICB9OwogICAgIH0KIAotICAgIHN0YXRpYyBfZXhwYW5kVHlwZXNBbmRQbGF0Zm9ybXModW5y
ZXNvbHZlZENvbmZpZykKLSAgICB7Ci0gICAgICAgIGNvbnN0IHR5cGVFeHBhbmRlZCA9IFtdOwot
ICAgICAgICBpZiAoJ3R5cGVzJyBpbiB1bnJlc29sdmVkQ29uZmlnKSB7Ci0gICAgICAgICAgICBm
b3IgKGxldCB0eXBlIG9mIHVucmVzb2x2ZWRDb25maWdbJ3R5cGVzJ10pCi0gICAgICAgICAgICAg
ICAgdHlwZUV4cGFuZGVkLnB1c2godGhpcy5fdmFsaWRhdGVBbmRNZXJnZUNvbmZpZyh7J3R5cGUn
OiB0eXBlfSwgdW5yZXNvbHZlZENvbmZpZywgJ3R5cGVzJykpOwotICAgICAgICB9IGVsc2UKLSAg
ICAgICAgICAgIHR5cGVFeHBhbmRlZC5wdXNoKHVucmVzb2x2ZWRDb25maWcpOwotCi0gICAgICAg
IGNvbnN0IGNvbmZpZ3VyYXRpb25zID0gW107Ci0gICAgICAgIGZvciAobGV0IGNvbmZpZyBvZiB0
eXBlRXhwYW5kZWQpIHsKLSAgICAgICAgICAgIGlmICgncGxhdGZvcm1zJyBpbiBjb25maWcpIHsK
LSAgICAgICAgICAgICAgICBmb3IgKGxldCBwbGF0Zm9ybSBvZiBjb25maWdbJ3BsYXRmb3Jtcydd
KQotICAgICAgICAgICAgICAgICAgICBjb25maWd1cmF0aW9ucy5wdXNoKHRoaXMuX3ZhbGlkYXRl
QW5kTWVyZ2VDb25maWcoeydwbGF0Zm9ybSc6IHBsYXRmb3JtfSwgY29uZmlnLCAncGxhdGZvcm1z
JykpOwotICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbnMu
cHVzaChjb25maWcpOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIGNvbmZpZ3VyYXRpb25z
OwotICAgIH0KLQotICAgIHN0YXRpYyBfY3JlYXRlVGVzdENvbmZpZ3VyYXRpb24ocmVtb3RlLCBz
eW5jZXJCeUJ1aWxkZXIsIG5ld0NvbmZpZywgY29tbW9uQ29uZmlndXJhdGlvbnMpCisgICAgc3Rh
dGljIF9wYXJzZVJlcG9zaXRvcnlHcm91cFByb3BlcnR5VGVtcGxhdGUocGFyc2luZ01vZGUsIGdy
b3VwTmFtZSwgcHJvcGVydGllcywgbWFrZU9wdGlvbikKICAgICB7Ci0gICAgICAgIGFzc2VydCgn
cGxhdGZvcm0nIGluIG5ld0NvbmZpZywgJ2NvbmZpZ3VyYXRpb24gbXVzdCBzcGVjaWZ5IGEgcGxh
dGZvcm0nKTsKLSAgICAgICAgYXNzZXJ0KCd0ZXN0JyBpbiBuZXdDb25maWcsICdjb25maWd1cmF0
aW9uIG11c3Qgc3BlY2lmeSBhIHRlc3QnKTsKLSAgICAgICAgYXNzZXJ0KCdidWlsZGVyJyBpbiBu
ZXdDb25maWcsICdjb25maWd1cmF0aW9uIG11c3Qgc3BlY2lmeSBhIGJ1aWxkZXInKTsKLQotICAg
ICAgICBjb25zdCB0ZXN0ID0gVGVzdC5maW5kQnlQYXRoKG5ld0NvbmZpZy50ZXN0KTsKLSAgICAg
ICAgYXNzZXJ0KHRlc3QsIGAke25ld0NvbmZpZy50ZXN0fSBpcyBub3QgYSB2YWxpZCB0ZXN0IHBh
dGhgKTsKLQotICAgICAgICBjb25zdCBwbGF0Zm9ybSA9IFBsYXRmb3JtLmZpbmRCeU5hbWUobmV3
Q29uZmlnLnBsYXRmb3JtKTsKLSAgICAgICAgYXNzZXJ0KHBsYXRmb3JtLCBgJHtuZXdDb25maWcu
cGxhdGZvcm19IGlzIG5vdCBhIHZhbGlkIHBsYXRmb3JtIG5hbWVgKTsKKyAgICAgICAgY29uc3Qg
cHJvcGVydGllc1RlbXBsYXRlID0ge307CisgICAgICAgIGZvciAoY29uc3QgcHJvcGVydHlOYW1l
IGluIHByb3BlcnRpZXMpIHsKKyAgICAgICAgICAgIGxldCB2YWx1ZSA9IHByb3BlcnRpZXNbcHJv
cGVydHlOYW1lXTsKKyAgICAgICAgICAgIGNvbnN0IGlzRGljdGlvbmFyeSA9IHR5cGVvZih2YWx1
ZSkgPT0gJ29iamVjdCc7CisgICAgICAgICAgICBhc3NlcnQoaXNEaWN0aW9uYXJ5IHx8IHR5cGVv
Zih2YWx1ZSkgPT0gJ3N0cmluZycsCisgICAgICAgICAgICAgICAgYFJlcG9zaXRvcnkgZ3JvdXAg
IiR7Z3JvdXBOYW1lfSIgdXNlcyBhbiBpbnZhbGlkIHZhbHVlICIke3ZhbHVlfSIgaW4gcHJvcGVy
dHkgIiR7cHJvcGVydHlOYW1lfSJgKTsKKworICAgICAgICAgICAgaWYgKCFpc0RpY3Rpb25hcnkp
IHsKKyAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzVGVtcGxhdGVbcHJvcGVydHlOYW1lXSA9IHZh
bHVlOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQogCi0gICAgICAg
IGxldCBzeW5jZXIgPSBzeW5jZXJCeUJ1aWxkZXIuZ2V0KG5ld0NvbmZpZy5idWlsZGVyKTsKLSAg
ICAgICAgaWYgKCFzeW5jZXIpIHsKLSAgICAgICAgICAgIHN5bmNlciA9IG5ldyBCdWlsZGJvdFN5
bmNlcihyZW1vdGUsIG5ld0NvbmZpZywgY29tbW9uQ29uZmlndXJhdGlvbnMpOwotICAgICAgICAg
ICAgc3luY2VyQnlCdWlsZGVyLnNldChuZXdDb25maWcuYnVpbGRlciwgc3luY2VyKTsKKyAgICAg
ICAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyh2YWx1ZSk7CisgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoa2V5cy5sZW5ndGgsIDEsCisgICAgICAgICAgICAgICAgYFJlcG9zaXRvcnkgZ3Jv
dXAgIiR7Z3JvdXBOYW1lfSIgc3BlY2lmaWVzIG1vcmUgdGhhbiBvbmUgdHlwZSBpbiBwcm9wZXJ0
eSAiJHtwcm9wZXJ0eU5hbWV9IjogIiR7a2V5cy5qb2luKCciLCAiJyl9ImApOworICAgICAgICAg
ICAgY29uc3QgdHlwZSA9IGtleXNbMF07CisgICAgICAgICAgICBjb25zdCBvcHRpb24gPSBtYWtl
T3B0aW9uKHR5cGUsIHZhbHVlW3R5cGVdKTsKKyAgICAgICAgICAgIGFzc2VydChvcHRpb24sIGBS
ZXBvc2l0b3J5IGdyb3VwICIke2dyb3VwTmFtZX0iIHNwZWNpZmllcyBhbiBpbnZhbGlkIHR5cGUg
IiR7dHlwZX0iIGluIHByb3BlcnR5ICIke3Byb3BlcnR5TmFtZX0iYCk7CisgICAgICAgICAgICBw
cm9wZXJ0aWVzVGVtcGxhdGVbcHJvcGVydHlOYW1lXSA9IG9wdGlvbjsKICAgICAgICAgfQotICAg
ICAgICBzeW5jZXIuYWRkVGVzdENvbmZpZ3VyYXRpb24odGVzdCwgcGxhdGZvcm0sIG5ld0NvbmZp
Zy5wcm9wZXJ0aWVzIHx8IHt9KTsKKyAgICAgICAgcmV0dXJuIHByb3BlcnRpZXNUZW1wbGF0ZTsK
ICAgICB9CiAKICAgICBzdGF0aWMgX3ZhbGlkYXRlQW5kTWVyZ2VDb25maWcoY29uZmlnLCB2YWx1
ZXNUb01lcmdlLCBleGNsdWRlZFByb3BlcnR5KQpAQCAtMzg4LDMxICs0ODUsMjcgQEAgY2xhc3Mg
QnVpbGRib3RTeW5jZXIgewogCiAgICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsKICAgICAgICAg
ICAgIGNhc2UgJ3Byb3BlcnRpZXMnOiAvLyBGYWxsdGhyb3VnaAotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbCh0eXBlb2YodmFsdWUpLCAnb2JqZWN0JywgJ3Byb3BlcnRpZXMgc2hvdWxkIGJl
IGEgZGljdGlvbmFyeScpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0eXBlb2YodmFs
dWUpLCAnb2JqZWN0JywgJ0J1aWxkIHByb3BlcnRpZXMgc2hvdWxkIGJlIGEgZGljdGlvbmFyeScp
OwogICAgICAgICAgICAgICAgIGlmICghY29uZmlnWydwcm9wZXJ0aWVzJ10pCiAgICAgICAgICAg
ICAgICAgICAgIGNvbmZpZ1sncHJvcGVydGllcyddID0ge307CiAgICAgICAgICAgICAgICAgY29u
c3QgcHJvcGVydGllcyA9IGNvbmZpZ1sncHJvcGVydGllcyddOwogICAgICAgICAgICAgICAgIGZv
ciAoY29uc3QgbmFtZSBpbiB2YWx1ZSkgewotICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwodHlwZW9mKHZhbHVlW25hbWVdKSwgJ3N0cmluZycsICdBIGFyZ3VtZW50IHZhbHVlIG11c3Qg
YmUgYSBzdHJpbmcnKTsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHR5cGVvZih2
YWx1ZVtuYW1lXSksICdzdHJpbmcnLCBgQnVpbGQgcHJvcGVydGllcyAiJHtuYW1lfSIgc3BlY2lm
aWVzIGEgbm9uLXN0cmluZyB2YWx1ZSBvZiB0eXBlICIke3R5cGVvZih2YWx1ZSl9ImApOwogICAg
ICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzW25hbWVdID0gdmFsdWVbbmFtZV07CiAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSAndGVz
dCc6IC8vIEZhbGx0aHJvdWdoCiAgICAgICAgICAgICBjYXNlICdzbGF2ZUxpc3QnOiAvLyBGYWxs
dGhyb3VnaAotICAgICAgICAgICAgY2FzZSAncGxhdGZvcm1zJzogLy8gRmFsbHRocm91Z2gKLSAg
ICAgICAgICAgIGNhc2UgJ3R5cGVzJzoKICAgICAgICAgICAgICAgICBhc3NlcnQodmFsdWUgaW5z
dGFuY2VvZiBBcnJheSwgYCR7bmFtZX0gc2hvdWxkIGJlIGFuIGFycmF5YCk7CiAgICAgICAgICAg
ICAgICAgYXNzZXJ0KHZhbHVlLmV2ZXJ5KGZ1bmN0aW9uIChwYXJ0KSB7IHJldHVybiB0eXBlb2Yg
cGFydCA9PSAnc3RyaW5nJzsgfSksIGAke25hbWV9IHNob3VsZCBiZSBhbiBhcnJheSBvZiBzdHJp
bmdzYCk7CiAgICAgICAgICAgICAgICAgY29uZmlnW25hbWVdID0gdmFsdWUuc2xpY2UoKTsKICAg
ICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgJ3R5cGUnOiAvLyBGYWxsdGhy
b3VnaAogICAgICAgICAgICAgY2FzZSAnYnVpbGRlcic6IC8vIEZhbGx0aHJvdWdoCi0gICAgICAg
ICAgICBjYXNlICdwbGF0Zm9ybSc6IC8vIEZhbGx0aHJvdWdoCiAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHR5cGVvZih2YWx1ZSksICdzdHJpbmcnLCBgJHtuYW1lfSBzaG91bGQgYmUgb2Yg
c3RyaW5nIHR5cGVgKTsKICAgICAgICAgICAgICAgICBjb25maWdbbmFtZV0gPSB2YWx1ZTsKICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0KGZhbHNlLCBgVW5yZWNvZ25pemVkIHBhcmFtZXRlciAke25hbWV9YCk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCBgVW5yZWNvZ25pemVkIHBhcmFtZXRlciAiJHtuYW1l
fSJgKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICByZXR1cm4gY29uZmlnOwpk
aWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXRy
aWdnZXJhYmxlLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90
LXRyaWdnZXJhYmxlLmpzCmluZGV4IDI0MTVmNzAyY2MwYWUwMWNmYzViZmM4NTFjNTZmNWU3MWQ2
ODFhZTAuLjIxNTBmYzY3YTZkZTU2ZGI4N2U5MmI5YzgyNDEyNDY4OWYyN2EwOWUgMTAwNjQ0Ci0t
LSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC10cmlnZ2VyYWJs
ZS5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3QtdHJp
Z2dlcmFibGUuanMKQEAgLTc0LDcgKzc0LDcgQEAgY2xhc3MgQnVpbGRib3RUcmlnZ2VyYWJsZSB7
CiAgICAgICAgICAgICAgICAgY29uc3QgbmV4dFJlcXVlc3QgPSB0aGlzLl9uZXh0UmVxdWVzdElu
R3JvdXAoZ3JvdXAsIHVwZGF0ZXMpOwogICAgICAgICAgICAgICAgIGlmICghdmFsaWRSZXF1ZXN0
cy5oYXMobmV4dFJlcXVlc3QpKQogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAg
ICAgICAgICAgICBjb25zdCBwcm9taXNlID0gdGhpcy5fc2NoZWR1bGVSZXF1ZXN0SWZTbGF2ZUlz
QXZhaWxhYmxlKG5leHRSZXF1ZXN0LCBncm91cC5zeW5jZXIsIGdyb3VwLnNsYXZlTmFtZSk7Cisg
ICAgICAgICAgICAgICAgY29uc3QgcHJvbWlzZSA9IHRoaXMuX3NjaGVkdWxlUmVxdWVzdElmU2xh
dmVJc0F2YWlsYWJsZShuZXh0UmVxdWVzdCwgZ3JvdXAucmVxdWVzdHMsIGdyb3VwLnN5bmNlciwg
Z3JvdXAuc2xhdmVOYW1lKTsKICAgICAgICAgICAgICAgICBpZiAocHJvbWlzZSkKICAgICAgICAg
ICAgICAgICAgICAgcHJvbWlzdExpc3QucHVzaChwcm9taXNlKTsKICAgICAgICAgICAgIH0KQEAg
LTk3LDkgKzk3LDEwIEBAIGNsYXNzIEJ1aWxkYm90VHJpZ2dlcmFibGUgewogICAgICAgICBjb25z
dCB2YWxpZGF0ZWRSZXF1ZXN0cyA9IG5ldyBTZXQ7CiAgICAgICAgIGZvciAobGV0IHJlcXVlc3Qg
b2YgYnVpbGRSZXF1ZXN0cykgewogICAgICAgICAgICAgaWYgKCF0aGlzLl9zeW5jZXJzLnNvbWUo
KHN5bmNlcikgPT4gc3luY2VyLm1hdGNoZXNDb25maWd1cmF0aW9uKHJlcXVlc3QpKSkgewotICAg
ICAgICAgICAgICAgIGNvbnN0IGtleSA9IHJlcXVlc3QucGxhdGZvcm0oKS5pZCArICctJyArIHJl
cXVlc3QudGVzdCgpLmlkKCk7CisgICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gcmVxdWVzdC5w
bGF0Zm9ybSgpLmlkICsgJy0nICsgKHJlcXVlc3QuaXNCdWlsZCgpID8gJ2J1aWxkJyA6IHJlcXVl
c3QudGVzdCgpLmlkKCkpOworICAgICAgICAgICAgICAgIGNvbnN0IGtpbmQgPSByZXF1ZXN0Lmlz
QnVpbGQoKSA/ICdCdWlsZGluZycgOiBgIiR7cmVxdWVzdC50ZXN0KCkuZnVsbE5hbWUoKX0iYDsK
ICAgICAgICAgICAgICAgICBpZiAoIShrZXkgaW4gdGVzdFBsYXRmb3JtUGFpcnMpKQotICAgICAg
ICAgICAgICAgICAgICB0aGlzLl9sb2dnZXIuZXJyb3IoYEJ1aWxkIHJlcXVlc3QgJHtyZXF1ZXN0
LmlkKCl9IGhhcyBubyBtYXRjaGluZyBjb25maWd1cmF0aW9uOiAiJHtyZXF1ZXN0LnRlc3QoKS5m
dWxsTmFtZSgpfSIgb24gIiR7cmVxdWVzdC5wbGF0Zm9ybSgpLm5hbWUoKX0iLmApOworICAgICAg
ICAgICAgICAgICAgICB0aGlzLl9sb2dnZXIuZXJyb3IoYEJ1aWxkIHJlcXVlc3QgJHtyZXF1ZXN0
LmlkKCl9IGhhcyBubyBtYXRjaGluZyBjb25maWd1cmF0aW9uOiAke2tpbmR9IG9uICIke3JlcXVl
c3QucGxhdGZvcm0oKS5uYW1lKCl9Ii5gKTsKICAgICAgICAgICAgICAgICB0ZXN0UGxhdGZvcm1Q
YWlyc1trZXldID0gdHJ1ZTsKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAg
IH0KQEAgLTE3NSwyMSArMTc2LDI1IEBAIGNsYXNzIEJ1aWxkYm90VHJpZ2dlcmFibGUgewogICAg
ICAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICAgICAgaWYgKHJlcXVlc3QuaXNQZW5k
aW5nKCkgJiYgIShyZXF1ZXN0LmlkKCkgaW4gcGVuZGluZ1VwZGF0ZXMpKQogICAgICAgICAgICAg
ICAgIHJldHVybiByZXF1ZXN0OworICAgICAgICAgICAgaWYgKHJlcXVlc3QuaXNCdWlsZCgpICYm
ICFyZXF1ZXN0Lmhhc0NvbXBsZXRlZCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBudWxsOyAv
LyBBIGJ1aWxkIHJlcXVlc3QgaXMgc3RpbGwgcGVuZGluZywgc2NoZWR1bGVkLCBydW5uaW5nLCBv
ciBmYWlsZWQuCiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgfQogCi0gICAg
X3NjaGVkdWxlUmVxdWVzdElmU2xhdmVJc0F2YWlsYWJsZShuZXh0UmVxdWVzdCwgc3luY2VyLCBz
bGF2ZU5hbWUpCisgICAgX3NjaGVkdWxlUmVxdWVzdElmU2xhdmVJc0F2YWlsYWJsZShuZXh0UmVx
dWVzdCwgcmVxdWVzdHNJbkdyb3VwLCBzeW5jZXIsIHNsYXZlTmFtZSkKICAgICB7CiAgICAgICAg
IGlmICghbmV4dFJlcXVlc3QpCiAgICAgICAgICAgICByZXR1cm4gbnVsbDsKIAotICAgICAgICBp
ZiAoISFuZXh0UmVxdWVzdC5vcmRlcigpKSB7CisgICAgICAgIGNvbnN0IGlzRmlyc3RSZXF1ZXN0
ID0gbmV4dFJlcXVlc3QgPT0gcmVxdWVzdHNJbkdyb3VwWzBdIHx8ICFuZXh0UmVxdWVzdC5vcmRl
cigpOworICAgICAgICBpZiAoIWlzRmlyc3RSZXF1ZXN0KSB7CiAgICAgICAgICAgICBpZiAoc3lu
Y2VyKQogICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9zY2hlZHVsZVJlcXVlc3RXaXRoTG9n
KHN5bmNlciwgbmV4dFJlcXVlc3QsIHNsYXZlTmFtZSk7CiAgICAgICAgICAgICB0aGlzLl9sb2dn
ZXIuZXJyb3IoYENvdWxkIG5vdCBpZGVudGlmeSB0aGUgc3luY2VyIGZvciAke25leHRSZXF1ZXN0
LmlkKCl9LmApOwogICAgICAgICB9CiAKKyAgICAgICAgLy8gUGljayBhIG5ldyBzeW5jZXIgZm9y
IHRoZSBmaXJzdCB0ZXN0LgogICAgICAgICBmb3IgKGNvbnN0IHN5bmNlciBvZiB0aGlzLl9zeW5j
ZXJzKSB7CiAgICAgICAgICAgICBjb25zdCBwcm9taXNlID0gdGhpcy5fc2NoZWR1bGVSZXF1ZXN0
V2l0aExvZyhzeW5jZXIsIG5leHRSZXF1ZXN0LCBudWxsKTsKICAgICAgICAgICAgIGlmIChwcm9t
aXNlKQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL3N5bmMtYnVp
bGRib3QuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvc3luYy1idWlsZGJvdC5q
cwppbmRleCAyZTE1MjBhZWYxZGZmNDZlOTViNDE2NzNiMjliZmY3NmU2Y2ExMzBmLi5kZDI3MmZm
ZmVmODRlMjIyYjQ2YjVjYmQ4MjdjN2JkMmRjNjJkZTY2IDEwMDc1NQotLS0gYS9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvdG9vbHMvc3luYy1idWlsZGJvdC5qcworKysgYi9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvdG9vbHMvc3luYy1idWlsZGJvdC5qcwpAQCAtMjEsMjAgKzIxLDYgQEAgZnVu
Y3Rpb24gbWFpbihhcmd2KQogCiBmdW5jdGlvbiBzeW5jTG9vcChvcHRpb25zKQogewotICAgIC8v
IEZJWE1FOiBGaXggTWFuaWZlc3QuZmV0Y2goKSB0byB1c2UgZW5zdXJlU2luZ2xldG9uIHRvIGNy
ZWF0ZSBtb2RlbCBvYmplY3RzLgotICAgIGdsb2JhbC5BbmFseXNpc1Rhc2suX2ZldGNoQWxsUHJv
bWlzZSA9IG51bGw7Ci0gICAgZ2xvYmFsLkFuYWx5c2lzVGFzay5jbGVhclN0YXRpY01hcCgpOwot
ICAgIGdsb2JhbC5CdWlsZFJlcXVlc3QuY2xlYXJTdGF0aWNNYXAoKTsKLSAgICBnbG9iYWwuQ29t
bWl0TG9nLmNsZWFyU3RhdGljTWFwKCk7Ci0gICAgZ2xvYmFsLk1ldHJpYy5jbGVhclN0YXRpY01h
cCgpOwotICAgIGdsb2JhbC5QbGF0Zm9ybS5jbGVhclN0YXRpY01hcCgpOwotICAgIGdsb2JhbC5S
ZXBvc2l0b3J5LmNsZWFyU3RhdGljTWFwKCk7Ci0gICAgZ2xvYmFsLkNvbW1pdFNldC5jbGVhclN0
YXRpY01hcCgpOwotICAgIGdsb2JhbC5UZXN0LmNsZWFyU3RhdGljTWFwKCk7Ci0gICAgZ2xvYmFs
LlRlc3RHcm91cC5jbGVhclN0YXRpY01hcCgpOwotICAgIGdsb2JhbC5UcmlnZ2VyYWJsZS5jbGVh
clN0YXRpY01hcCgpOwotICAgIGdsb2JhbC5UcmlnZ2VyYWJsZVJlcG9zaXRvcnlHcm91cC5jbGVh
clN0YXRpY01hcCgpOwotCiAgICAgbGV0IHNlcnZlckNvbmZpZyA9IEpTT04ucGFyc2UoZnMucmVh
ZEZpbGVTeW5jKG9wdGlvbnNbJy0tc2VydmVyLWNvbmZpZy1qc29uJ10sICd1dGY4JykpOwogICAg
IGxldCBidWlsZGJvdENvbmZpZyA9IEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKG9wdGlvbnNb
Jy0tYnVpbGRib3QtY29uZmlnLWpzb24nXSwgJ3V0ZjgnKSk7CiAgICAgbGV0IGJ1aWxkYm90UmVt
b3RlID0gbmV3IFJlbW90ZUFQSShidWlsZGJvdENvbmZpZy5zZXJ2ZXIpOwpAQCAtNDQsMTkgKzMw
LDIzIEBAIGZ1bmN0aW9uIHN5bmNMb29wKG9wdGlvbnMpCiAKICAgICBjb25zb2xlLmxvZyhgRmV0
Y2hpbmcgdGhlIG1hbmlmZXN0Li4uYCk7CiAKLSAgICBsZXQgdHJpZ2dlcmFibGU7Ci0gICAgTWFu
aWZlc3QuZmV0Y2goKS50aGVuKGZ1bmN0aW9uICgpIHsKLSAgICAgICAgdHJpZ2dlcmFibGUgPSBu
ZXcgQnVpbGRib3RUcmlnZ2VyYWJsZShidWlsZGJvdENvbmZpZywgZ2xvYmFsLlJlbW90ZUFQSSwg
YnVpbGRib3RSZW1vdGUsIHNlcnZlckNvbmZpZy5zbGF2ZSwgY29uc29sZSk7Ci0gICAgICAgIHJl
dHVybiB0cmlnZ2VyYWJsZS51cGRhdGVUcmlnZ2VyYWJsZSgpOwotICAgIH0pLnRoZW4oZnVuY3Rp
b24gKCkgeworICAgIGNvbnN0IG1ha2VUcmlnZ2VyYWJsZSA9IGZ1bmN0aW9uICgpIHsKKyAgICAg
ICAgcmV0dXJuIG5ldyBCdWlsZGJvdFRyaWdnZXJhYmxlKGJ1aWxkYm90Q29uZmlnLCBnbG9iYWwu
UmVtb3RlQVBJLCBidWlsZGJvdFJlbW90ZSwgc2VydmVyQ29uZmlnLnNsYXZlLCBjb25zb2xlKQor
ICAgIH0KKworICAgIE1hbmlmZXN0LmZldGNoKCkudGhlbigoKSA9PiB7CisgICAgICAgIHJldHVy
biBtYWtlVHJpZ2dlcmFibGUoKS51cGRhdGVUcmlnZ2VyYWJsZSgpOworICAgIH0pLnRoZW4oKCkg
PT4geworICAgICAgICByZXR1cm4gTWFuaWZlc3QuZmV0Y2goKTsKKyAgICB9KS50aGVuKCgpID0+
IHsKICAgICAgICAgcmV0dXJuIHRyaWdnZXJhYmxlLnN5bmNPbmNlKCk7Ci0gICAgfSkuY2F0Y2go
ZnVuY3Rpb24gKGVycm9yKSB7CisgICAgfSkuY2F0Y2goKGVycm9yKSA9PiB7CiAgICAgICAgIGNv
bnNvbGUuZXJyb3IoZXJyb3IpOwogICAgICAgICBpZiAodHlwZW9mKGVycm9yLnN0YWNrKSA9PSAn
c3RyaW5nJykgewogICAgICAgICAgICAgZm9yIChsZXQgbGluZSBvZiBlcnJvci5zdGFjay5zcGxp
dCgnXG4nKSkKICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGxpbmUpOwogICAgICAgICB9
Ci0gICAgfSkudGhlbihmdW5jdGlvbiAoKSB7CisgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAg
IHNldFRpbWVvdXQoc3luY0xvb3AuYmluZChnbG9iYWwsIG9wdGlvbnMpLCBvcHRpb25zWyctLXNl
Y29uZHMtdG8tc2xlZXAnXSAqIDEwMDApOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvYnVpbGRib3Qtc3luY2VyLXRlc3RzLmpzIGIv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvYnVpbGRib3Qtc3luY2VyLXRlc3Rz
LmpzCmluZGV4IGE0YWJhNzg0NTY3MDU1ZTcyZDM3YzJiZGQxMDA5NGU2NjVjNTcyOGMuLjFjNDM3
YTliYTM3NDNlZjc4Y2ZmZjY2MWZjZDY0Nzg3Y2JjMWYxYzUgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL2J1aWxkYm90LXN5bmNlci10ZXN0cy5qcworKysg
Yi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9idWlsZGJvdC1zeW5jZXItdGVz
dHMuanMKQEAgLTE3LDkgKzE3LDkgQEAgZnVuY3Rpb24gc2FtcGxlaU9TQ29uZmlnKCkKICAgICAg
ICAgJ3JlcG9zaXRvcnlHcm91cHMnOiB7CiAgICAgICAgICAgICAnaW9zLXN2bi13ZWJraXQnOiB7
CiAgICAgICAgICAgICAgICAgJ3JlcG9zaXRvcmllcyc6IHsnV2ViS2l0Jzoge30sICdpT1MnOiB7
fX0sCi0gICAgICAgICAgICAgICAgJ3Byb3BlcnRpZXMnOiB7Ci0gICAgICAgICAgICAgICAgICAg
ICdkZXNpcmVkX2ltYWdlJzogJzxpT1M+JywKLSAgICAgICAgICAgICAgICAgICAgJ29wZW5zb3Vy
Y2UnOiAnPFdlYktpdD4nLAorICAgICAgICAgICAgICAgICd0ZXN0UHJvcGVydGllcyc6IHsKKyAg
ICAgICAgICAgICAgICAgICAgJ2Rlc2lyZWRfaW1hZ2UnOiB7J3JldmlzaW9uJzogJ2lPUyd9LAor
ICAgICAgICAgICAgICAgICAgICAnb3BlbnNvdXJjZSc6IHsncmV2aXNpb24nOiAnV2ViS2l0J30s
CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9LApAQCAtNDAsMjIg
KzQwLDI1IEBAIGZ1bmN0aW9uIHNhbXBsZWlPU0NvbmZpZygpCiAgICAgICAgICdidWlsZGVycyc6
IHsKICAgICAgICAgICAgICdpUGhvbmUtYmVuY2gnOiB7CiAgICAgICAgICAgICAgICAgJ2J1aWxk
ZXInOiAnQUJUZXN0LWlQaG9uZS1SdW5CZW5jaG1hcmstVGVzdHMnLAotICAgICAgICAgICAgICAg
ICdwcm9wZXJ0aWVzJzogeyAnZm9yY2VzY2hlZHVsZXInOiAnQUJUZXN0LWlQaG9uZS1SdW5CZW5j
aG1hcmstVGVzdHMtRm9yY2VTY2hlZHVsZXInIH0sCisgICAgICAgICAgICAgICAgJ3Byb3BlcnRp
ZXMnOiB7J2ZvcmNlc2NoZWR1bGVyJzogJ0FCVGVzdC1pUGhvbmUtUnVuQmVuY2htYXJrLVRlc3Rz
LUZvcmNlU2NoZWR1bGVyJ30sCiAgICAgICAgICAgICAgICAgJ3NsYXZlTGlzdCc6IFsnQUJUZXN0
LWlQaG9uZS0wJ10sCiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgJ2lQYWQtYmVuY2gnOiB7
CiAgICAgICAgICAgICAgICAgJ2J1aWxkZXInOiAnQUJUZXN0LWlQYWQtUnVuQmVuY2htYXJrLVRl
c3RzJywKLSAgICAgICAgICAgICAgICAncHJvcGVydGllcyc6IHsgJ2ZvcmNlc2NoZWR1bGVyJzog
J0FCVGVzdC1pUGFkLVJ1bkJlbmNobWFyay1UZXN0cy1Gb3JjZVNjaGVkdWxlcicgfSwKKyAgICAg
ICAgICAgICAgICAncHJvcGVydGllcyc6IHsnZm9yY2VzY2hlZHVsZXInOiAnQUJUZXN0LWlQYWQt
UnVuQmVuY2htYXJrLVRlc3RzLUZvcmNlU2NoZWR1bGVyJ30sCiAgICAgICAgICAgICAgICAgJ3Ns
YXZlTGlzdCc6IFsnQUJUZXN0LWlQYWQtMCcsICdBQlRlc3QtaVBhZC0xJ10sCi0gICAgICAgICAg
ICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2lPUy1idWlsZGVyJzogeworICAgICAg
ICAgICAgICAgICdidWlsZGVyJzogJ0FCVGVzdC1pT1MtQnVpbGRlcicsCisgICAgICAgICAgICAg
ICAgJ3Byb3BlcnRpZXMnOiB7J2ZvcmNlc2NoZWR1bGVyJzogJ0FCVGVzdC1CdWlsZGVyLUZvcmNl
U2NoZWR1bGVyJ30sCisgICAgICAgICAgICB9LAogICAgICAgICB9LAotICAgICAgICAnY29uZmln
dXJhdGlvbnMnOiBbCi0gICAgICAgICAgICB7J3R5cGUnOiAnc3BlZWRvbWV0ZXInLCAnYnVpbGRl
cic6ICdpUGhvbmUtYmVuY2gnLCAncGxhdGZvcm0nOiAnaVBob25lJ30sCi0gICAgICAgICAgICB7
J3R5cGUnOiAnamV0c3RyZWFtJywgJ2J1aWxkZXInOiAnaVBob25lLWJlbmNoJywgJ3BsYXRmb3Jt
JzogJ2lQaG9uZSd9LAotICAgICAgICAgICAgeyd0eXBlJzogJ2Ryb21hZW8tZG9tJywgJ2J1aWxk
ZXInOiAnaVBob25lLWJlbmNoJywgJ3BsYXRmb3JtJzogJ2lQaG9uZSd9LAotCi0gICAgICAgICAg
ICB7J3R5cGUnOiAnc3BlZWRvbWV0ZXInLCAnYnVpbGRlcic6ICdpUGFkLWJlbmNoJywgJ3BsYXRm
b3JtJzogJ2lQYWQnfSwKLSAgICAgICAgICAgIHsndHlwZSc6ICdqZXRzdHJlYW0nLCAnYnVpbGRl
cic6ICdpUGFkLWJlbmNoJywgJ3BsYXRmb3JtJzogJ2lQYWQnfSwKKyAgICAgICAgJ2J1aWxkQ29u
ZmlndXJhdGlvbnMnOiBbCisgICAgICAgICAgICB7J2J1aWxkZXJzJzogWydpT1MtYnVpbGRlcidd
LCAncGxhdGZvcm1zJzogWydpUGhvbmUnLCAnaVBhZCddfSwKKyAgICAgICAgXSwKKyAgICAgICAg
J3Rlc3RDb25maWd1cmF0aW9ucyc6IFsKKyAgICAgICAgICAgIHsnYnVpbGRlcnMnOiBbJ2lQaG9u
ZS1iZW5jaCddLCAndHlwZXMnOiBbJ3NwZWVkb21ldGVyJywgJ2pldHN0cmVhbScsICdkcm9tYWVv
LWRvbSddLCAncGxhdGZvcm1zJzogWydpUGhvbmUnXX0sCisgICAgICAgICAgICB7J2J1aWxkZXJz
JzogWydpUGFkLWJlbmNoJ10sICd0eXBlcyc6IFsnc3BlZWRvbWV0ZXInLCAnamV0c3RyZWFtJ10s
ICdwbGF0Zm9ybXMnOiBbJ2lQYWQnXX0sCiAgICAgICAgIF0KICAgICB9OwogfQpAQCAtODMsMjEg
Kzg2LDI1IEBAIGZ1bmN0aW9uIHNhbXBsZWlPU0NvbmZpZ1dpdGhFeHBhbnNpb25zKCkKICAgICAg
ICAgImJ1aWxkZXJzIjogewogICAgICAgICAgICAgImlwaG9uZSI6IHsKICAgICAgICAgICAgICAg
ICAiYnVpbGRlciI6ICJpUGhvbmUgQUIgVGVzdHMiLAotICAgICAgICAgICAgICAgICJwcm9wZXJ0
aWVzIjogeyJmb3JjZXNjaGVkdWxlciI6ICJmb3JjZS1pcGhvbmUtYWItdGVzdHMifQorICAgICAg
ICAgICAgICAgICJwcm9wZXJ0aWVzIjogeyJmb3JjZXNjaGVkdWxlciI6ICJmb3JjZS1pcGhvbmUt
YWItdGVzdHMifSwKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAiaXBob25lLTIiOiB7Cisg
ICAgICAgICAgICAgICAgImJ1aWxkZXIiOiAiaVBob25lIDIgQUIgVGVzdHMiLAorICAgICAgICAg
ICAgICAgICJwcm9wZXJ0aWVzIjogeyJmb3JjZXNjaGVkdWxlciI6ICJmb3JjZS1pcGhvbmUtMi1h
Yi10ZXN0cyJ9LAogICAgICAgICAgICAgfSwKICAgICAgICAgICAgICJpcGFkIjogewogICAgICAg
ICAgICAgICAgICJidWlsZGVyIjogImlQYWQgQUIgVGVzdHMiLAotICAgICAgICAgICAgICAgICJw
cm9wZXJ0aWVzIjogeyJmb3JjZXNjaGVkdWxlciI6ICJmb3JjZS1pcGFkLWFiLXRlc3RzIn0KKyAg
ICAgICAgICAgICAgICAicHJvcGVydGllcyI6IHsiZm9yY2VzY2hlZHVsZXIiOiAiZm9yY2UtaXBh
ZC1hYi10ZXN0cyJ9LAogICAgICAgICAgICAgfSwKICAgICAgICAgfSwKLSAgICAgICAgImNvbmZp
Z3VyYXRpb25zIjogWworICAgICAgICAidGVzdENvbmZpZ3VyYXRpb25zIjogWwogICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgICJidWlsZGVyIjogImlwaG9uZSIsCisgICAgICAgICAgICAg
ICAgImJ1aWxkZXJzIjogWyJpcGhvbmUiLCAiaXBob25lLTIiXSwKICAgICAgICAgICAgICAgICAi
cGxhdGZvcm1zIjogWyJpUGhvbmUiLCAiaU9TIDEwIGlQaG9uZSJdLAogICAgICAgICAgICAgICAg
ICJ0eXBlcyI6IFsiaXBob25lLXBsdCIsICJzcGVlZG9tZXRlciJdLAogICAgICAgICAgICAgfSwK
ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAiYnVpbGRlciI6ICJpcGFkIiwKKyAgICAg
ICAgICAgICAgICAiYnVpbGRlcnMiOiBbImlwYWQiXSwKICAgICAgICAgICAgICAgICAicGxhdGZv
cm1zIjogWyJpUGFkIl0sCiAgICAgICAgICAgICAgICAgInR5cGVzIjogWyJpcGFkLXBsdCIsICJz
cGVlZG9tZXRlciJdLAogICAgICAgICAgICAgfSwKQEAgLTExMiwxNiArMTE5LDI2IEBAIGZ1bmN0
aW9uIHNtYWxsQ29uZmlndXJhdGlvbigpCiAgICAgICAgICdyZXBvc2l0b3J5R3JvdXBzJzogewog
ICAgICAgICAgICAgJ2lvcy1zdm4td2Via2l0JzogewogICAgICAgICAgICAgICAgICdyZXBvc2l0
b3JpZXMnOiB7J2lPUyc6IHt9LCAnV2ViS2l0Jzoge319LAotICAgICAgICAgICAgICAgICdwcm9w
ZXJ0aWVzJzogewotICAgICAgICAgICAgICAgICAgICAnb3MnOiAnPGlPUz4nLAotICAgICAgICAg
ICAgICAgICAgICAnd2snOiAnPFdlYktpdD4nCisgICAgICAgICAgICAgICAgJ3Rlc3RQcm9wZXJ0
aWVzJzogeworICAgICAgICAgICAgICAgICAgICAnb3MnOiB7J3JldmlzaW9uJzogJ2lPUyd9LAor
ICAgICAgICAgICAgICAgICAgICAnd2snOiB7J3JldmlzaW9uJzogJ1dlYktpdCd9CiAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9LAotICAgICAgICAnY29uZmlndXJh
dGlvbnMnOiBbewotICAgICAgICAgICAgJ2J1aWxkZXInOiAnc29tZSBidWlsZGVyJywKLSAgICAg
ICAgICAgICdwbGF0Zm9ybSc6ICdTb21lIHBsYXRmb3JtJywKLSAgICAgICAgICAgICd0ZXN0Jzog
WydTb21lIHRlc3QnXQorICAgICAgICAndHlwZXMnOiB7CisgICAgICAgICAgICAnc29tZS10ZXN0
JzogeworICAgICAgICAgICAgICAgICd0ZXN0JzogWydTb21lIHRlc3QnXSwKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfSwKKyAgICAgICAgJ2J1aWxkZXJzJzogeworICAgICAgICAgICAgJ3NvbWUt
YnVpbGRlcic6IHsKKyAgICAgICAgICAgICAgICAnYnVpbGRlcic6ICdzb21lIGJ1aWxkZXInLAor
ICAgICAgICAgICAgfQorICAgICAgICB9LAorICAgICAgICAndGVzdENvbmZpZ3VyYXRpb25zJzog
W3sKKyAgICAgICAgICAgICdidWlsZGVycyc6IFsnc29tZS1idWlsZGVyJ10sCisgICAgICAgICAg
ICAncGxhdGZvcm1zJzogWydTb21lIHBsYXRmb3JtJ10sCisgICAgICAgICAgICAndHlwZXMnOiBb
J3NvbWUtdGVzdCddLAogICAgICAgICB9XQogICAgIH07CiB9CkBAIC00MDcsODIgKzQyNCwxNzAg
QEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICBpdCgnc2hvdWxk
IHRocm93IHdoZW4gc29tZSByZXF1aXJlZCBvcHRpb25zIGFyZSBtaXNzaW5nJywgKCkgPT4gewog
ICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3Qg
Y29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7Ci0gICAgICAgICAgICAgICAgZGVsZXRlIGNv
bmZpZy5jb25maWd1cmF0aW9uc1swXS5idWlsZGVyOworICAgICAgICAgICAgICAgIGRlbGV0ZSBj
b25maWcuYnVpbGRlcnM7CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25m
aWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgIH0sIC8ic29tZS1idWlsZGVy
IiBpcyBub3QgYSB2YWxpZCBidWlsZGVyIGluIHRoZSBjb25maWd1cmF0aW9uLyk7CisgICAgICAg
ICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKKyAgICAgICAgICAgICAgICBjb25zdCBjb25maWcg
PSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKKyAgICAgICAgICAgICAgICBkZWxldGUgY29uZmlnLnR5
cGVzOwogICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1v
dGVBUEksIGNvbmZpZyk7Ci0gICAgICAgICAgICB9LCAnYnVpbGRlciBzaG91bGQgYmUgYSByZXF1
aXJlZCBvcHRpb24nKTsKKyAgICAgICAgICAgIH0sIC8ic29tZS10ZXN0IiBpcyBub3QgYSB2YWxp
ZCB0eXBlIGluIHRoZSBjb25maWd1cmF0aW9uLyk7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dz
KCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRp
b24oKTsKLSAgICAgICAgICAgICAgICBkZWxldGUgY29uZmlnLmNvbmZpZ3VyYXRpb25zWzBdLnBs
YXRmb3JtOworICAgICAgICAgICAgICAgIGRlbGV0ZSBjb25maWcudGVzdENvbmZpZ3VyYXRpb25z
WzBdLmJ1aWxkZXJzOwogICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmln
KE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7Ci0gICAgICAgICAgICB9LCAncGxhdGZvcm0gc2hvdWxk
IGJlIGEgcmVxdWlyZWQgb3B0aW9uJyk7CisgICAgICAgICAgICB9LCAvVGhlIHRlc3QgY29uZmln
dXJhdGlvbiAxIGRvZXMgbm90IHNwZWNpZnkgImJ1aWxkZXJzIiBhcyBhbiBhcnJheS8pOwogICAg
ICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29u
ZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7Ci0gICAgICAgICAgICAgICAgZGVsZXRlIGNvbmZp
Zy5jb25maWd1cmF0aW9uc1swXS50ZXN0OworICAgICAgICAgICAgICAgIGRlbGV0ZSBjb25maWcu
dGVzdENvbmZpZ3VyYXRpb25zWzBdLnBsYXRmb3JtczsKICAgICAgICAgICAgICAgICBCdWlsZGJv
dFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOwotICAgICAgICAgICAg
fSwgJ3Rlc3Qgc2hvdWxkIGJlIGEgcmVxdWlyZWQgb3B0aW9uJyk7CisgICAgICAgICAgICB9LCAv
VGhlIHRlc3QgY29uZmlndXJhdGlvbiAxIGRvZXMgbm90IHNwZWNpZnkgInBsYXRmb3JtcyIgYXMg
YW4gYXJyYXkvKTsKKyAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4geworICAgICAgICAg
ICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOworICAgICAgICAgICAg
ICAgIGRlbGV0ZSBjb25maWcudGVzdENvbmZpZ3VyYXRpb25zWzBdLnR5cGVzOworICAgICAgICAg
ICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7
CisgICAgICAgICAgICB9LCAvVGhlIHRlc3QgY29uZmlndXJhdGlvbiAwIGRvZXMgbm90IHNwZWNp
ZnkgInR5cGVzIiBhcyBhbiBhcnJheS8pOwogICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9
PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7
CiAgICAgICAgICAgICAgICAgZGVsZXRlIGNvbmZpZy5idWlsZFJlcXVlc3RBcmd1bWVudDsKICAg
ICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBj
b25maWcpOwotICAgICAgICAgICAgfSwgJ2J1aWxkUmVxdWVzdEFyZ3VtZW50IHNob3VsZCBiZSBy
ZXF1aXJlZCcpOworICAgICAgICAgICAgfSwgL2J1aWxkUmVxdWVzdEFyZ3VtZW50IG11c3Qgc3Bl
Y2lmeSB0aGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgdXNlZCB0byBzdG9yZSB0aGUgYnVpbGQgcmVx
dWVzdCBJRC8pOwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIHRocm93IHdoZW4g
YSB0ZXN0IG5hbWUgaXMgbm90IGFuIGFycmF5IG9mIHN0cmluZ3MnLCAoKSA9PiB7CiAgICAgICAg
ICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcg
PSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKLSAgICAgICAgICAgICAgICBjb25maWcuY29uZmlndXJh
dGlvbnNbMF0udGVzdCA9ICdzb21lIHRlc3QnOworICAgICAgICAgICAgICAgIGNvbmZpZy50ZXN0
Q29uZmlndXJhdGlvbnNbMF0udHlwZXMgPSAnc29tZSB0ZXN0JzsKICAgICAgICAgICAgICAgICBC
dWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOwotICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB9LCAvVGhlIHRlc3QgY29uZmlndXJhdGlvbiAwIGRvZXMg
bm90IHNwZWNpZnkgInR5cGVzIiBhcyBhbiBhcnJheS8pOwogICAgICAgICAgICAgYXNzZXJ0LnRo
cm93cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1
cmF0aW9uKCk7Ci0gICAgICAgICAgICAgICAgY29uZmlnLmNvbmZpZ3VyYXRpb25zWzBdLnRlc3Qg
PSBbMV07CisgICAgICAgICAgICAgICAgY29uZmlnLnRlc3RDb25maWd1cmF0aW9uc1swXS50eXBl
cyA9IFsxXTsKICAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2Nr
UmVtb3RlQVBJLCBjb25maWcpOwotICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9LCAvIjEi
IGlzIG5vdCBhIHZhbGlkIHR5cGUgaW4gdGhlIGNvbmZpZ3VyYXRpb24vKTsKICAgICAgICAgfSk7
CiAKICAgICAgICAgaXQoJ3Nob3VsZCB0aHJvdyB3aGVuIHByb3BlcnRpZXMgaXMgbm90IGFuIG9i
amVjdCcsICgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAg
ICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwotICAgICAgICAg
ICAgICAgIGNvbmZpZy5jb25maWd1cmF0aW9uc1swXS5wcm9wZXJ0aWVzID0gJ2hlbGxvJzsKKyAg
ICAgICAgICAgICAgICBjb25maWcuYnVpbGRlcnNbT2JqZWN0LmtleXMoY29uZmlnLmJ1aWxkZXJz
KVswXV0ucHJvcGVydGllcyA9ICdoZWxsbyc7CiAgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5j
ZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKLSAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgfSwgL0J1aWxkIHByb3BlcnRpZXMgc2hvdWxkIGJlIGEgZGljdGlvbmFyeS8p
OworICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CisgICAgICAgICAgICAgICAgY29u
c3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CisgICAgICAgICAgICAgICAgY29uZmln
LnR5cGVzW09iamVjdC5rZXlzKGNvbmZpZy50eXBlcylbMF1dLnByb3BlcnRpZXMgPSAnaGVsbG8n
OworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVB
UEksIGNvbmZpZyk7CisgICAgICAgICAgICB9LCAvQnVpbGQgcHJvcGVydGllcyBzaG91bGQgYmUg
YSBkaWN0aW9uYXJ5Lyk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCdzaG91bGQgdGhyb3cg
d2hlbiB0ZXN0UHJvcGVydGllcyBpcyBzcGVjaWZlZCBpbiBhIHR5cGUgb3IgYSBidWlsZGVyJywg
KCkgPT4geworICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CisgICAgICAgICAgICAg
ICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CisgICAgICAgICAgICAgICAg
Y29uc3QgZmlyc3RUeXBlID0gT2JqZWN0LmtleXMoY29uZmlnLnR5cGVzKVswXTsKKyAgICAgICAg
ICAgICAgICBjb25maWcudHlwZXNbZmlyc3RUeXBlXS50ZXN0UHJvcGVydGllcyA9IHt9OworICAg
ICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNv
bmZpZyk7CisgICAgICAgICAgICB9LCAvVW5yZWNvZ25pemVkIHBhcmFtZXRlciAidGVzdFByb3Bl
cnRpZXMiLyk7CisgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKKyAgICAgICAgICAg
ICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKKyAgICAgICAgICAgICAg
ICBjb25zdCBmaXJzdEJ1aWxkZXIgPSBPYmplY3Qua2V5cyhjb25maWcuYnVpbGRlcnMpWzBdOwor
ICAgICAgICAgICAgICAgIGNvbmZpZy5idWlsZGVyc1tmaXJzdEJ1aWxkZXJdLnRlc3RQcm9wZXJ0
aWVzID0ge307CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9j
a1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgIH0sIC9VbnJlY29nbml6ZWQgcGFyYW1l
dGVyICJ0ZXN0UHJvcGVydGllcyIvKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3Nob3Vs
ZCB0aHJvdyB3aGVuIGJ1aWxkUHJvcGVydGllcyBpcyBzcGVjaWZlZCBpbiBhIHR5cGUgb3IgYSBi
dWlsZGVyJywgKCkgPT4geworICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CisgICAg
ICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CisgICAgICAg
ICAgICAgICAgY29uc3QgZmlyc3RUeXBlID0gT2JqZWN0LmtleXMoY29uZmlnLnR5cGVzKVswXTsK
KyAgICAgICAgICAgICAgICBjb25maWcudHlwZXNbZmlyc3RUeXBlXS5idWlsZFByb3BlcnRpZXMg
PSB7fTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVt
b3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgfSwgL1VucmVjb2duaXplZCBwYXJhbWV0ZXIg
ImJ1aWxkUHJvcGVydGllcyIvKTsKKyAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewor
ICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOworICAg
ICAgICAgICAgICAgIGNvbnN0IGZpcnN0QnVpbGRlciA9IE9iamVjdC5rZXlzKGNvbmZpZy5idWls
ZGVycylbMF07CisgICAgICAgICAgICAgICAgY29uZmlnLmJ1aWxkZXJzW2ZpcnN0QnVpbGRlcl0u
YnVpbGRQcm9wZXJ0aWVzID0ge307CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xv
YWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgIH0sIC9VbnJlY29n
bml6ZWQgcGFyYW1ldGVyICJidWlsZFByb3BlcnRpZXMiLyk7CiAgICAgICAgIH0pOwogCi0gICAg
ICAgIGl0KCdzaG91bGQgdGhyb3cgd2hlbiBwcm9wZXJ0aWVcJ3MgdmFsdWVzIGFyZSBtYWxmb3Jt
ZWQnLCAoKSA9PiB7CisgICAgICAgIGl0KCdzaG91bGQgdGhyb3cgd2hlbiBwcm9wZXJ0aWVzIGZv
ciBhIHR5cGUgaXMgbWFsZm9ybWVkJywgKCkgPT4geworICAgICAgICAgICAgY29uc3QgZmlyc3RU
eXBlID0gT2JqZWN0LmtleXMoc21hbGxDb25maWd1cmF0aW9uKCkudHlwZXMpWzBdOwogICAgICAg
ICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmln
ID0gc21hbGxDb25maWd1cmF0aW9uKCk7Ci0gICAgICAgICAgICAgICAgY29uZmlnLmNvbmZpZ3Vy
YXRpb25zWzBdLnByb3BlcnRpZXMgPSB7J3NvbWUnOiB7J290aGVyS2V5JzogJ3NvbWUgcm9vdCd9
fTsKKyAgICAgICAgICAgICAgICBjb25maWcudHlwZXNbZmlyc3RUeXBlXS5wcm9wZXJ0aWVzID0g
J2hlbGxvJzsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2Nr
UmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgfSwgL0J1aWxkIHByb3BlcnRpZXMgc2hv
dWxkIGJlIGEgZGljdGlvbmFyeS8pOworICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7
CisgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7Cisg
ICAgICAgICAgICAgICAgY29uZmlnLnR5cGVzW2ZpcnN0VHlwZV0ucHJvcGVydGllcyA9IHsnc29t
ZSc6IHsnb3RoZXJLZXknOiAnc29tZSByb290J319OwogICAgICAgICAgICAgICAgIEJ1aWxkYm90
U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgY29uZmlnKTsKLSAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgfSwgL0J1aWxkIHByb3BlcnRpZXMgInNvbWUiIHNwZWNpZmllcyBhIG5vbi1z
dHJpbmcgdmFsdWUgb2YgdHlwZSAib2JqZWN0Ii8pOwogICAgICAgICAgICAgYXNzZXJ0LnRocm93
cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0
aW9uKCk7Ci0gICAgICAgICAgICAgICAgY29uZmlnLmNvbmZpZ3VyYXRpb25zWzBdLnByb3BlcnRp
ZXMgPSB7J3NvbWUnOiB7J3Jvb3QnOiBbJ2EnLCAnYiddfX07CisgICAgICAgICAgICAgICAgY29u
ZmlnLnR5cGVzW2ZpcnN0VHlwZV0ucHJvcGVydGllcyA9IHsnc29tZSc6IHsnb3RoZXJLZXknOiAn
c29tZSByb290J319OwogICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmln
KFJlbW90ZUFQSSwgY29uZmlnKTsKLSAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSwgL0J1
aWxkIHByb3BlcnRpZXMgInNvbWUiIHNwZWNpZmllcyBhIG5vbi1zdHJpbmcgdmFsdWUgb2YgdHlw
ZSAib2JqZWN0Ii8pOwogICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAg
ICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7Ci0gICAgICAgICAg
ICAgICAgY29uZmlnLmNvbmZpZ3VyYXRpb25zWzBdLnByb3BlcnRpZXMgPSB7J3NvbWUnOiB7J3Jv
b3QnOiAxfX07CisgICAgICAgICAgICAgICAgY29uZmlnLnR5cGVzW2ZpcnN0VHlwZV0ucHJvcGVy
dGllcyA9IHsnc29tZSc6IHsncmV2aXNpb24nOiAnV2ViS2l0J319OwogICAgICAgICAgICAgICAg
IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgY29uZmlnKTsKLSAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgfSwgL0J1aWxkIHByb3BlcnRpZXMgInNvbWUiIHNwZWNpZmll
cyBhIG5vbi1zdHJpbmcgdmFsdWUgb2YgdHlwZSAib2JqZWN0Ii8pOworICAgICAgICAgICAgYXNz
ZXJ0LnRocm93cygoKSA9PiB7CisgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxD
b25maWd1cmF0aW9uKCk7CisgICAgICAgICAgICAgICAgY29uZmlnLnR5cGVzW2ZpcnN0VHlwZV0u
cHJvcGVydGllcyA9IHsnc29tZSc6IDF9OworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2Vy
Ll9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgIH0sIC8gQnVpbGQg
cHJvcGVydGllcyAic29tZSIgc3BlY2lmaWVzIGEgbm9uLXN0cmluZyB2YWx1ZSBvZiB0eXBlICJv
YmplY3QiLyk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCdzaG91bGQgdGhyb3cgd2hlbiBw
cm9wZXJ0aWVzIGZvciBhIGJ1aWxkZXIgaXMgbWFsZm9ybWVkJywgKCkgPT4geworICAgICAgICAg
ICAgY29uc3QgZmlyc3RCdWlsZGVyID0gT2JqZWN0LmtleXMoc21hbGxDb25maWd1cmF0aW9uKCku
YnVpbGRlcnMpWzBdOworICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CisgICAgICAg
ICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CisgICAgICAgICAg
ICAgICAgY29uZmlnLmJ1aWxkZXJzW2ZpcnN0QnVpbGRlcl0ucHJvcGVydGllcyA9ICdoZWxsbyc7
CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQ
SSwgY29uZmlnKTsKKyAgICAgICAgICAgIH0sIC9CdWlsZCBwcm9wZXJ0aWVzIHNob3VsZCBiZSBh
IGRpY3Rpb25hcnkvKTsKKyAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4geworICAgICAg
ICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOworICAgICAgICAg
ICAgICAgIGNvbmZpZy5idWlsZGVyc1tmaXJzdEJ1aWxkZXJdLnByb3BlcnRpZXMgPSB7J3NvbWUn
OiB7J290aGVyS2V5JzogJ3NvbWUgcm9vdCd9fTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5
bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICB9LCAvQnVp
bGQgcHJvcGVydGllcyAic29tZSIgc3BlY2lmaWVzIGEgbm9uLXN0cmluZyB2YWx1ZSBvZiB0eXBl
ICJvYmplY3QiLyk7CisgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKKyAgICAgICAg
ICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKKyAgICAgICAgICAg
ICAgICBjb25maWcuYnVpbGRlcnNbZmlyc3RCdWlsZGVyXS5wcm9wZXJ0aWVzID0geydzb21lJzog
eydvdGhlcktleSc6ICdzb21lIHJvb3QnfX07CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5j
ZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgfSwgL0J1aWxk
IHByb3BlcnRpZXMgInNvbWUiIHNwZWNpZmllcyBhIG5vbi1zdHJpbmcgdmFsdWUgb2YgdHlwZSAi
b2JqZWN0Ii8pOworICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CisgICAgICAgICAg
ICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CisgICAgICAgICAgICAg
ICAgY29uZmlnLmJ1aWxkZXJzW2ZpcnN0QnVpbGRlcl0ucHJvcGVydGllcyA9IHsnc29tZSc6IHsn
cmV2aXNpb24nOiAnV2ViS2l0J319OworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9s
b2FkQ29uZmlnKFJlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgIH0sIC9CdWlsZCBwcm9w
ZXJ0aWVzICJzb21lIiBzcGVjaWZpZXMgYSBub24tc3RyaW5nIHZhbHVlIG9mIHR5cGUgIm9iamVj
dCIvKTsKKyAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4geworICAgICAgICAgICAgICAg
IGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOworICAgICAgICAgICAgICAgIGNv
bmZpZy5idWlsZGVyc1tmaXJzdEJ1aWxkZXJdLnByb3BlcnRpZXMgPSB7J3NvbWUnOiAxfTsKKyAg
ICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIGNvbmZp
Zyk7CisgICAgICAgICAgICB9LCAvQnVpbGQgcHJvcGVydGllcyAic29tZSIgc3BlY2lmaWVzIGEg
bm9uLXN0cmluZyB2YWx1ZSBvZiB0eXBlICJvYmplY3QiLyk7CiAgICAgICAgIH0pOwogCiAgICAg
ICAgIGl0KCdzaG91bGQgY3JlYXRlIEJ1aWxkYm90U3luY2VyIG9iamVjdHMgZm9yIHZhbGlkIGNv
bmZpZ3VyYXRpb25zJywgKCkgPT4gewogICAgICAgICAgICAgbGV0IHN5bmNlcnMgPSBCdWlsZGJv
dFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChzeW5jZXJzLmxlbmd0aCwgMik7CisgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoc3luY2Vycy5sZW5ndGgsIDMpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKHN5bmNl
cnNbMF0gaW5zdGFuY2VvZiBCdWlsZGJvdFN5bmNlcik7CiAgICAgICAgICAgICBhc3NlcnQub2so
c3luY2Vyc1sxXSBpbnN0YW5jZW9mIEJ1aWxkYm90U3luY2VyKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5vayhzeW5jZXJzWzJdIGluc3RhbmNlb2YgQnVpbGRib3RTeW5jZXIpOwogICAgICAgICB9KTsK
IAogICAgICAgICBpdCgnc2hvdWxkIHBhcnNlIGJ1aWxkZXIgbmFtZXMgY29ycmVjdGx5JywgKCkg
PT4gewogICAgICAgICAgICAgbGV0IHN5bmNlcnMgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZp
ZyhSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChzeW5jZXJzWzBdLmJ1aWxkZXJOYW1lKCksICdBQlRlc3QtaVBob25lLVJ1bkJlbmNobWFyay1U
ZXN0cycpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHN5bmNlcnNbMV0uYnVpbGRlck5hbWUo
KSwgJ0FCVGVzdC1pUGFkLVJ1bkJlbmNobWFyay1UZXN0cycpOworICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHN5bmNlcnNbMl0uYnVpbGRlck5hbWUoKSwgJ0FCVGVzdC1pT1MtQnVpbGRlcicpOwog
ICAgICAgICB9KTsKIAotICAgICAgICBpdCgnc2hvdWxkIHBhcnNlIHRlc3QgY29uZmlndXJhdGlv
bnMgY29ycmVjdGx5JywgKCkgPT4geworICAgICAgICBpdCgnc2hvdWxkIHBhcnNlIHRlc3QgY29u
ZmlndXJhdGlvbnMgd2l0aCBidWlsZCBjb25maWd1cmF0aW9ucyBjb3JyZWN0bHknLCAoKSA9PiB7
CiAgICAgICAgICAgICBsZXQgc3luY2VycyA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKFJl
bW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCkpOwogCiAgICAgICAgICAgICBsZXQgY29uZmlndXJh
dGlvbnMgPSBzeW5jZXJzWzBdLnRlc3RDb25maWd1cmF0aW9ucygpOworICAgICAgICAgICAgYXNz
ZXJ0KHN5bmNlcnNbMF0uaXNUZXN0ZXIoKSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29u
ZmlndXJhdGlvbnMubGVuZ3RoLCAzKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb25maWd1
cmF0aW9uc1swXS5wbGF0Zm9ybSwgTW9ja01vZGVscy5pcGhvbmUpOwogICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbmZpZ3VyYXRpb25zWzBdLnRlc3QsIE1vY2tNb2RlbHMuc3BlZWRvbWV0ZXIp
OwpAQCAtNDkwLDM3ICs1OTUsNzEgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4g
ewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbmZpZ3VyYXRpb25zWzFdLnRlc3QsIE1vY2tN
b2RlbHMuamV0c3RyZWFtKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb25maWd1cmF0aW9u
c1syXS5wbGF0Zm9ybSwgTW9ja01vZGVscy5pcGhvbmUpOwogICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbmZpZ3VyYXRpb25zWzJdLnRlc3QsIE1vY2tNb2RlbHMuZG9tY29yZSk7CisgICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKHN5bmNlcnNbMF0uYnVpbGRDb25maWd1cmF0aW9ucygpLCBb
XSk7CiAKICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb25zID0gc3luY2Vyc1sxXS50ZXN0Q29uZmln
dXJhdGlvbnMoKTsKKyAgICAgICAgICAgIGFzc2VydChzeW5jZXJzWzFdLmlzVGVzdGVyKCkpOwog
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbmZpZ3VyYXRpb25zLmxlbmd0aCwgMik7CiAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY29uZmlndXJhdGlvbnNbMF0ucGxhdGZvcm0sIE1vY2tNb2Rl
bHMuaXBhZCk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29uZmlndXJhdGlvbnNbMF0udGVz
dCwgTW9ja01vZGVscy5zcGVlZG9tZXRlcik7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29u
ZmlndXJhdGlvbnNbMV0ucGxhdGZvcm0sIE1vY2tNb2RlbHMuaXBhZCk7CiAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoY29uZmlndXJhdGlvbnNbMV0udGVzdCwgTW9ja01vZGVscy5qZXRzdHJlYW0p
OworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzeW5jZXJzWzFdLmJ1aWxkQ29uZmlndXJh
dGlvbnMoKSwgW10pOworCisgICAgICAgICAgICBhc3NlcnQoIXN5bmNlcnNbMl0uaXNUZXN0ZXIo
KSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHN5bmNlcnNbMl0udGVzdENvbmZpZ3Vy
YXRpb25zKCksIFtdKTsKKyAgICAgICAgICAgIGNvbmZpZ3VyYXRpb25zID0gc3luY2Vyc1syXS5i
dWlsZENvbmZpZ3VyYXRpb25zKCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29uZmlndXJh
dGlvbnMubGVuZ3RoLCAyKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb25maWd1cmF0aW9u
c1swXS5wbGF0Zm9ybSwgTW9ja01vZGVscy5pcGhvbmUpOworICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbmZpZ3VyYXRpb25zWzBdLnRlc3QsIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbmZpZ3VyYXRpb25zWzFdLnBsYXRmb3JtLCBNb2NrTW9kZWxzLmlwYWQpOworICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbmZpZ3VyYXRpb25zWzFdLnRlc3QsIG51bGwpOworICAgICAg
ICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIHRocm93IHdoZW4gYSBidWlsZCBjb25maWd1cmF0
aW9uIHVzZSB0aGUgc2FtZSBidWlsZGVyIGFzIGEgdGVzdCBjb25maWd1cmF0aW9uJywgKCkgPT4g
eworICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CisgICAgICAgICAgICAgICAgY29u
c3QgY29uZmlnID0gc2FtcGxlaU9TQ29uZmlnKCk7CisgICAgICAgICAgICAgICAgY29uZmlnLmJ1
aWxkQ29uZmlndXJhdGlvbnNbMF0uYnVpbGRlcnMgPSBjb25maWcudGVzdENvbmZpZ3VyYXRpb25z
WzBdLmJ1aWxkZXJzOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmln
KE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAK
ICAgICAgICAgaXQoJ3Nob3VsZCBwYXJzZSB0ZXN0IGNvbmZpZ3VyYXRpb25zIHdpdGggdHlwZXMg
YW5kIHBsYXRmb3JtcyBleHBhbnNpb25zIGNvcnJlY3RseScsICgpID0+IHsKLSAgICAgICAgICAg
IGxldCBzeW5jZXJzID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBzYW1w
bGVpT1NDb25maWdXaXRoRXhwYW5zaW9ucygpKTsKKyAgICAgICAgICAgIGNvbnN0IHN5bmNlcnMg
PSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZ1dp
dGhFeHBhbnNpb25zKCkpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc3luY2Vycy5sZW5n
dGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHN5bmNlcnMubGVuZ3RoLCAzKTsKIAog
ICAgICAgICAgICAgbGV0IGNvbmZpZ3VyYXRpb25zID0gc3luY2Vyc1swXS50ZXN0Q29uZmlndXJh
dGlvbnMoKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb25maWd1cmF0aW9ucy5sZW5ndGgs
IDQpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbmZpZ3VyYXRpb25zWzBdLnBsYXRmb3Jt
LCBNb2NrTW9kZWxzLmlwaG9uZSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29uZmlndXJh
dGlvbnNbMF0udGVzdCwgTW9ja01vZGVscy5pUGhvbmVQTFQpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbmZpZ3VyYXRpb25zWzFdLnBsYXRmb3JtLCBNb2NrTW9kZWxzLmlPUzEwaVBob25l
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb25maWd1cmF0aW9uc1sxXS50ZXN0LCBNb2Nr
TW9kZWxzLmlQaG9uZVBMVCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29uZmlndXJhdGlv
bnNbMl0ucGxhdGZvcm0sIE1vY2tNb2RlbHMuaXBob25lKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChjb25maWd1cmF0aW9uc1syXS50ZXN0LCBNb2NrTW9kZWxzLnNwZWVkb21ldGVyKTsKKyAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb25maWd1cmF0aW9uc1sxXS5wbGF0Zm9ybSwgTW9ja01v
ZGVscy5pcGhvbmUpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbmZpZ3VyYXRpb25zWzFd
LnRlc3QsIE1vY2tNb2RlbHMuc3BlZWRvbWV0ZXIpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbmZpZ3VyYXRpb25zWzJdLnBsYXRmb3JtLCBNb2NrTW9kZWxzLmlPUzEwaVBob25lKTsKKyAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb25maWd1cmF0aW9uc1syXS50ZXN0LCBNb2NrTW9kZWxz
LmlQaG9uZVBMVCk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29uZmlndXJhdGlvbnNbM10u
cGxhdGZvcm0sIE1vY2tNb2RlbHMuaU9TMTBpUGhvbmUpOwogICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbmZpZ3VyYXRpb25zWzNdLnRlc3QsIE1vY2tNb2RlbHMuc3BlZWRvbWV0ZXIpOworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzeW5jZXJzWzBdLmJ1aWxkQ29uZmlndXJhdGlvbnMo
KSwgW10pOwogCiAgICAgICAgICAgICBjb25maWd1cmF0aW9ucyA9IHN5bmNlcnNbMV0udGVzdENv
bmZpZ3VyYXRpb25zKCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29uZmlndXJhdGlvbnMu
bGVuZ3RoLCA0KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb25maWd1cmF0aW9uc1swXS5w
bGF0Zm9ybSwgTW9ja01vZGVscy5pcGhvbmUpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bmZpZ3VyYXRpb25zWzBdLnRlc3QsIE1vY2tNb2RlbHMuaVBob25lUExUKTsKKyAgICAgICAgICAg
IGFzc2VydC5lcXVhbChjb25maWd1cmF0aW9uc1sxXS5wbGF0Zm9ybSwgTW9ja01vZGVscy5pcGhv
bmUpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbmZpZ3VyYXRpb25zWzFdLnRlc3QsIE1v
Y2tNb2RlbHMuc3BlZWRvbWV0ZXIpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbmZpZ3Vy
YXRpb25zWzJdLnBsYXRmb3JtLCBNb2NrTW9kZWxzLmlPUzEwaVBob25lKTsKKyAgICAgICAgICAg
IGFzc2VydC5lcXVhbChjb25maWd1cmF0aW9uc1syXS50ZXN0LCBNb2NrTW9kZWxzLmlQaG9uZVBM
VCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29uZmlndXJhdGlvbnNbM10ucGxhdGZvcm0s
IE1vY2tNb2RlbHMuaU9TMTBpUGhvbmUpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbmZp
Z3VyYXRpb25zWzNdLnRlc3QsIE1vY2tNb2RlbHMuc3BlZWRvbWV0ZXIpOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChzeW5jZXJzWzFdLmJ1aWxkQ29uZmlndXJhdGlvbnMoKSwgW10pOwor
CisgICAgICAgICAgICBjb25maWd1cmF0aW9ucyA9IHN5bmNlcnNbMl0udGVzdENvbmZpZ3VyYXRp
b25zKCk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29uZmlndXJhdGlvbnMubGVuZ3RoLCAy
KTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb25maWd1cmF0aW9uc1swXS5wbGF0Zm9ybSwg
TW9ja01vZGVscy5pcGFkKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb25maWd1cmF0aW9u
c1swXS50ZXN0LCBNb2NrTW9kZWxzLmlQYWRQTFQpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbmZpZ3VyYXRpb25zWzFdLnBsYXRmb3JtLCBNb2NrTW9kZWxzLmlwYWQpOwogICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbmZpZ3VyYXRpb25zWzFdLnRlc3QsIE1vY2tNb2RlbHMuc3BlZWRv
bWV0ZXIpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzeW5jZXJzWzJdLmJ1aWxkQ29u
ZmlndXJhdGlvbnMoKSwgW10pOwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIHRo
cm93IHdoZW4gcmVwb3NpdG9yeUdyb3VwcyBpcyBub3QgYW4gb2JqZWN0JywgKCkgPT4gewpAQCAt
NTI4LDExMiArNjY3LDIzMyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAg
ICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CiAgICAg
ICAgICAgICAgICAgY29uZmlnLnJlcG9zaXRvcnlHcm91cHMgPSAxOwogICAgICAgICAgICAgICAg
IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7Ci0gICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIH0sIC9yZXBvc2l0b3J5R3JvdXBzIG11c3Qgc3BlY2lm
eSBhIGRpY3Rpb25hcnkgZnJvbSB0aGUgbmFtZSB0byBpdHMgZGVmaW5pdGlvbi8pOwogICAgICAg
ICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmln
ID0gc21hbGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAgICAgICAgICAgY29uZmlnLnJlcG9zaXRv
cnlHcm91cHMgPSAnaGVsbG8nOwogICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2Fk
Q29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7Ci0gICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIH0sIC9yZXBvc2l0b3J5R3JvdXBzIG11c3Qgc3BlY2lmeSBhIGRpY3Rpb25hcnkgZnJvbSB0
aGUgbmFtZSB0byBpdHMgZGVmaW5pdGlvbi8pOwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgn
c2hvdWxkIHRocm93IHdoZW4gYSByZXBvc2l0b3J5IGdyb3VwIGRvZXMgbm90IHNwZWNpZnkgYSBk
aWN0aW9uYXJ5IG9mIHJlcG9zaXRvcmllcycsICgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC50
aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmln
dXJhdGlvbigpOwotICAgICAgICAgICAgICAgIGNvbmZpZy5yZXBvc2l0b3J5R3JvdXBzID0geydz
b21lLWdyb3VwJzogeydwcm9wZXJ0aWVzJzoge319fTsKKyAgICAgICAgICAgICAgICBjb25maWcu
cmVwb3NpdG9yeUdyb3VwcyA9IHsnc29tZS1ncm91cCc6IHt0ZXN0UHJvcGVydGllczoge319fTsK
ICAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJ
LCBjb25maWcpOwotICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9LCAvUmVwb3NpdG9yeSBn
cm91cCAic29tZS1ncm91cCIgZG9lcyBub3Qgc3BlY2lmeSBhIGRpY3Rpb25hcnkgb2YgcmVwb3Np
dG9yaWVzLyk7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAg
ICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKLSAgICAgICAgICAgICAg
ICBjb25maWcucmVwb3NpdG9yeUdyb3VwcyA9IHsnc29tZS1ncm91cCc6IHsncmVwb3NpdG9yaWVz
JzogMX0sICdwcm9wZXJ0aWVzJzoge319OworICAgICAgICAgICAgICAgIGNvbmZpZy5yZXBvc2l0
b3J5R3JvdXBzID0geydzb21lLWdyb3VwJzoge3JlcG9zaXRvcmllczogMX0sIHRlc3RQcm9wZXJ0
aWVzOiB7fX07CiAgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9j
a1JlbW90ZUFQSSwgY29uZmlnKTsKLSAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSwgL1Jl
cG9zaXRvcnkgZ3JvdXAgInNvbWUtZ3JvdXAiIGRvZXMgbm90IHNwZWNpZnkgYSBkaWN0aW9uYXJ5
IG9mIHJlcG9zaXRvcmllcy8pOwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIHRo
cm93IHdoZW4gYSByZXBvc2l0b3J5IGdyb3VwIHNwZWNpZmllcyBhbiBlbXB0eSBkaWN0aW9uYXJ5
JywgKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAgICAg
ICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7Ci0gICAgICAgICAgICAg
ICAgY29uZmlnLnJlcG9zaXRvcnlHcm91cHMgPSB7J3NvbWUtZ3JvdXAnOiB7J3JlcG9zaXRvcmll
cyc6IHt9LCAncHJvcGVydGllcyc6IHt9fX07CisgICAgICAgICAgICAgICAgY29uZmlnLnJlcG9z
aXRvcnlHcm91cHMgPSB7J3NvbWUtZ3JvdXAnOiB7cmVwb3NpdG9yaWVzOiB7fSwgdGVzdFByb3Bl
cnRpZXM6IHt9fX07CiAgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWco
TW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKLSAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSwg
L1JlcG9zaXRvcnkgZ3JvdXAgInNvbWUtZ3JvdXAiIGRvZXMgbm90IHNwZWNpZnkgYW55IHJlcG9z
aXRvcnkvKTsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCB0aHJvdyB3aGVuIGEg
cmVwb3NpdG9yeSBncm91cCBzcGVjaWZpZXMgYW4gaW52YWxpZCByZXBvc2l0b3J5IG5hbWUnLCAo
KSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAg
ICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKLSAgICAgICAgICAgICAgICBj
b25maWcucmVwb3NpdG9yeUdyb3VwcyA9IHsnc29tZS1ncm91cCc6IHsncmVwb3NpdG9yaWVzJzog
eydJbnZhbGlkUmVwb3NpdG9yeU5hbWUnOiB7fX19fTsKKyAgICAgICAgICAgICAgICBjb25maWcu
cmVwb3NpdG9yeUdyb3VwcyA9IHsnc29tZS1ncm91cCc6IHtyZXBvc2l0b3JpZXM6IHsnSW52YWxp
ZFJlcG9zaXRvcnlOYW1lJzoge319fX07CiAgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIu
X2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKLSAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgfSwgLyJJbnZhbGlkUmVwb3NpdG9yeU5hbWUiIGlzIG5vdCBhIHZhbGlkIHJlcG9z
aXRvcnkgbmFtZS8pOwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIHRocm93IHdo
ZW4gYSByZXBvc2l0b3J5IGdyb3VwIHNwZWNpZmllcyBhIHJlcG9zaXRvcnkgd2l0aCBhIG5vbi1k
aWN0aW9uYXJ5IHZhbHVlJywgKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9
PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7
Ci0gICAgICAgICAgICAgICAgY29uZmlnLnJlcG9zaXRvcnlHcm91cHMgPSB7J3NvbWUtZ3JvdXAn
OiB7J3JlcG9zaXRvcmllcyc6IHsnV2ViS2l0JzogMX19fTsKKyAgICAgICAgICAgICAgICBjb25m
aWcucmVwb3NpdG9yeUdyb3VwcyA9IHsnc29tZS1ncm91cCc6IHtyZXBvc2l0b3JpZXM6IHsnV2Vi
S2l0JzogMX19fTsKICAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhN
b2NrUmVtb3RlQVBJLCBjb25maWcpOwotICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9LCAv
IldlYktpdCIgc3BlY2lmaWVzIGEgbm9uLWRpY3Rpb25hcnkgdmFsdWUvKTsKICAgICAgICAgfSk7
CiAKICAgICAgICAgaXQoJ3Nob3VsZCB0aHJvdyB3aGVuIHRoZSBkZXNjcmlwdGlvbiBvZiBhIHJl
cG9zaXRvcnkgZ3JvdXAgaXMgbm90IGEgc3RyaW5nJywgKCkgPT4gewogICAgICAgICAgICAgYXNz
ZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxD
b25maWd1cmF0aW9uKCk7Ci0gICAgICAgICAgICAgICAgY29uZmlnLnJlcG9zaXRvcnlHcm91cHMg
PSB7J3NvbWUtZ3JvdXAnOiB7J3JlcG9zaXRvcmllcyc6IFt7J1dlYktpdCc6IHt9fV0sICdkZXNj
cmlwdGlvbic6IDF9fTsKKyAgICAgICAgICAgICAgICBjb25maWcucmVwb3NpdG9yeUdyb3VwcyA9
IHsnc29tZS1ncm91cCc6IHtyZXBvc2l0b3JpZXM6IHsnV2ViS2l0Jzoge319LCBkZXNjcmlwdGlv
bjogMX19OwogICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tS
ZW1vdGVBUEksIGNvbmZpZyk7Ci0gICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0sIC9SZXBv
c2l0b3J5IGdyb3VwICJzb21lLWdyb3VwIiBoYXZlIGFuIGludmFsaWQgZGVzY3JpcHRpb24vKTsK
ICAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0
IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwotICAgICAgICAgICAgICAgIGNvbmZpZy5y
ZXBvc2l0b3J5R3JvdXBzID0geydzb21lLWdyb3VwJzogeydyZXBvc2l0b3JpZXMnOiBbeydXZWJL
aXQnOiB7fX1dLCAnZGVzY3JpcHRpb24nOiBbMSwgMl19fTsKKyAgICAgICAgICAgICAgICBjb25m
aWcucmVwb3NpdG9yeUdyb3VwcyA9IHsnc29tZS1ncm91cCc6IHtyZXBvc2l0b3JpZXM6IHsnV2Vi
S2l0Jzoge319LCBkZXNjcmlwdGlvbjogWzEsIDJdfX07CiAgICAgICAgICAgICAgICAgQnVpbGRi
b3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKLSAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgfSwgL1JlcG9zaXRvcnkgZ3JvdXAgInNvbWUtZ3JvdXAiIGhhdmUg
YW4gaW52YWxpZCBkZXNjcmlwdGlvbi8pOwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hv
dWxkIHRocm93IHdoZW4gYSByZXBvc2l0b3J5IGdyb3VwIGRvZXMgbm90IHNwZWNpZnkgYSBkaWN0
aW9uYXJ5IG9mIHByb3BlcnRpZXMnLCAoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dz
KCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRp
b24oKTsKLSAgICAgICAgICAgICAgICBjb25maWcucmVwb3NpdG9yeUdyb3VwcyA9IHsnc29tZS1n
cm91cCc6IHsncmVwb3NpdG9yaWVzJzogeydXZWJLaXQnOiB7fX0sIHByb3BlcnRpZXM6IDF9fTsK
KyAgICAgICAgICAgICAgICBjb25maWcucmVwb3NpdG9yeUdyb3VwcyA9IHsnc29tZS1ncm91cCc6
IHtyZXBvc2l0b3JpZXM6IHsnV2ViS2l0Jzoge319LCB0ZXN0UHJvcGVydGllczogMX19OwogICAg
ICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNv
bmZpZyk7Ci0gICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0sIC9SZXBvc2l0b3J5IGdyb3Vw
ICJzb21lLWdyb3VwIiBzcGVjaWZpZXMgdGhlIHRlc3QgY29uZmlndXJhdGlvbnMgd2l0aCBhbiBp
bnZhbGlkIHR5cGUvKTsKICAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAg
ICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwotICAgICAgICAg
ICAgICAgIGNvbmZpZy5yZXBvc2l0b3J5R3JvdXBzID0geydzb21lLWdyb3VwJzogeydyZXBvc2l0
b3JpZXMnOiB7J1dlYktpdCc6IHt9fSwgcHJvcGVydGllczogJ2hlbGxvJ319OworICAgICAgICAg
ICAgICAgIGNvbmZpZy5yZXBvc2l0b3J5R3JvdXBzID0geydzb21lLWdyb3VwJzoge3JlcG9zaXRv
cmllczogeydXZWJLaXQnOiB7fX0sIHRlc3RQcm9wZXJ0aWVzOiAnaGVsbG8nfX07CiAgICAgICAg
ICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmln
KTsKLSAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSwgL1JlcG9zaXRvcnkgZ3JvdXAgInNv
bWUtZ3JvdXAiIHNwZWNpZmllcyB0aGUgdGVzdCBjb25maWd1cmF0aW9ucyB3aXRoIGFuIGludmFs
aWQgdHlwZS8pOwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIHRocm93IHdoZW4g
YSByZXBvc2l0b3J5IGdyb3VwIHJlZmVycyB0byBhIG5vbi1leGlzdGVudCByZXBvc2l0b3J5IGlu
IHRoZSBwcm9wZXJ0aWVzIGRpY3Rpb25hcnknLCAoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQu
dGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZp
Z3VyYXRpb24oKTsKLSAgICAgICAgICAgICAgICBjb25maWcucmVwb3NpdG9yeUdyb3VwcyA9IHsn
c29tZS1ncm91cCc6IHsncmVwb3NpdG9yaWVzJzogeydXZWJLaXQnOiB7fX0sIHByb3BlcnRpZXM6
IHsnd2snOiAnPEludmFsaWRSZXBvc2l0b3J5Pid9fX07CisgICAgICAgICAgICAgICAgY29uZmln
LnJlcG9zaXRvcnlHcm91cHMgPSB7J3NvbWUtZ3JvdXAnOiB7cmVwb3NpdG9yaWVzOiB7J1dlYktp
dCc6IHt9fSwgdGVzdFByb3BlcnRpZXM6IHsnd2snOiB7cmV2aXNpb246ICdJbnZhbGlkUmVwb3Np
dG9yeSd9fX19OwogICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1v
Y2tSZW1vdGVBUEksIGNvbmZpZyk7Ci0gICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0sIC9S
ZXBvc2l0b3J5IGdyb3VwICJzb21lLWdyb3VwIiBhbiBpbnZhbGlkIHJlcG9zaXRvcnkgIkludmFs
aWRSZXBvc2l0b3J5Ii8pOwogICAgICAgICB9KTsKIAotICAgICAgICBpdCgnc2hvdWxkIHRocm93
IHdoZW4gYSByZXBvc2l0b3J5IGdyb3VwIHJlZmVycyB0byBhIHJlcG9zaXRvcnkgaW4gdGhlIHBy
b3BlcnRpZXMgZGljdGlvbmFyeSB3aGljaCBpcyBub3QgbGlzdGVkIGluIHRoZSBsaXN0IG9mIHJl
cG9zaXRvcmllcycsICgpID0+IHsKKyAgICAgICAgaXQoJ3Nob3VsZCB0aHJvdyB3aGVuIGEgcmVw
b3NpdG9yeSBncm91cCByZWZlcnMgdG8gYSByZXBvc2l0b3J5IHdoaWNoIGlzIG5vdCBsaXN0ZWQg
aW4gdGhlIGxpc3Qgb2YgcmVwb3NpdG9yaWVzJywgKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0
LnRocm93cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25m
aWd1cmF0aW9uKCk7Ci0gICAgICAgICAgICAgICAgY29uZmlnLnJlcG9zaXRvcnlHcm91cHMgPSB7
J3NvbWUtZ3JvdXAnOiB7J3JlcG9zaXRvcmllcyc6IHsnV2ViS2l0Jzoge319LCBwcm9wZXJ0aWVz
OiB7J29zJzogJzxpT1M+J319fTsKKyAgICAgICAgICAgICAgICBjb25maWcucmVwb3NpdG9yeUdy
b3VwcyA9IHsnc29tZS1ncm91cCc6IHtyZXBvc2l0b3JpZXM6IHsnV2ViS2l0Jzoge319LCB0ZXN0
UHJvcGVydGllczogeydvcyc6IHtyZXZpc2lvbjogJ2lPUyd9fX19OwogICAgICAgICAgICAgICAg
IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7Ci0gICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIH0sIC9SZXBvc2l0b3J5IGdyb3VwICJzb21lLWdyb3Vw
IiBhbiBpbnZhbGlkIHJlcG9zaXRvcnkgImlPUyIvKTsKKyAgICAgICAgICAgIGFzc2VydC50aHJv
d3MoKCkgPT4geworICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJh
dGlvbigpOworICAgICAgICAgICAgICAgIGNvbmZpZy5yZXBvc2l0b3J5R3JvdXBzID0geydzb21l
LWdyb3VwJzogeworICAgICAgICAgICAgICAgICAgICByZXBvc2l0b3JpZXM6IHsnV2ViS2l0Jzog
e2FjY2VwdHNQYXRjaDogdHJ1ZX19LAorICAgICAgICAgICAgICAgICAgICB0ZXN0UHJvcGVydGll
czogeyd3ayc6IHtyZXZpc2lvbjogJ1dlYktpdCd9LCAnaW5zdGFsbC1yb290cyc6IHsncm9vdHMn
OiB7fX19LAorICAgICAgICAgICAgICAgICAgICBidWlsZFByb3BlcnRpZXM6IHsnb3MnOiB7cmV2
aXNpb246ICdpT1MnfX0sCisgICAgICAgICAgICAgICAgICAgIGFjY2VwdHNSb290czogdHJ1ZX19
OworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVB
UEksIGNvbmZpZyk7CisgICAgICAgICAgICB9LCAvUmVwb3NpdG9yeSBncm91cCAic29tZS1ncm91
cCIgYW4gaW52YWxpZCByZXBvc2l0b3J5ICJpT1MiLyk7CisgICAgICAgIH0pOworCisgICAgICAg
IGl0KCdzaG91bGQgdGhyb3cgd2hlbiBhIHJlcG9zaXRvcnkgZ3JvdXAgcmVmZXJzIHRvIGEgcmVw
b3NpdG9yeSBpbiBidWlsZGluZyBhIHBhdGNoIHdoaWNoIGRvZXMgbm90IGFjY2VwdCBhIHBhdGNo
JywgKCkgPT4geworICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CisgICAgICAgICAg
ICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CisgICAgICAgICAgICAg
ICAgY29uZmlnLnJlcG9zaXRvcnlHcm91cHMgPSB7J3NvbWUtZ3JvdXAnOiB7CisgICAgICAgICAg
ICAgICAgICAgIHJlcG9zaXRvcmllczogeydXZWJLaXQnOiB7YWNjZXB0c1BhdGNoOiB0cnVlfSwg
J2lPUyc6IHt9fSwKKyAgICAgICAgICAgICAgICAgICAgdGVzdFByb3BlcnRpZXM6IHsnd2snOiB7
cmV2aXNpb246ICdXZWJLaXQnfSwgJ2lvcyc6IHtyZXZpc2lvbjogJ2lPUyd9LCAnaW5zdGFsbC1y
b290cyc6IHsncm9vdHMnOiB7fX19LAorICAgICAgICAgICAgICAgICAgICBidWlsZFByb3BlcnRp
ZXM6IHsnd2snOiB7cmV2aXNpb246ICdXZWJLaXQnfSwgJ2lvcyc6IHtyZXZpc2lvbjogJ2lPUyd9
LCAnd2stcGF0Y2gnOiB7cGF0Y2g6ICdpT1MnfX0sCisgICAgICAgICAgICAgICAgICAgIGFjY2Vw
dHNSb290czogdHJ1ZX19OworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29u
ZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICB9LCAvUmVwb3NpdG9yeSBn
cm91cCAic29tZS1ncm91cCIgc3BlY2lmaWVzIGEgcGF0Y2ggZm9yICJpT1MiIGJ1dCBpdCBkb2Vz
IG5vdCBhY2NlcHQgYSBwYXRjaC8pOworICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxk
IHRocm93IHdoZW4gYSByZXBvc2l0b3J5IGdyb3VwIHNwZWNpZmllcyBhIHBhdGNoIHdpdGhvdXQg
c3BlY2lmeWluZyBhIHJldmlzaW9uJywgKCkgPT4geworICAgICAgICAgICAgYXNzZXJ0LnRocm93
cygoKSA9PiB7CisgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0
aW9uKCk7CisgICAgICAgICAgICAgICAgY29uZmlnLnJlcG9zaXRvcnlHcm91cHMgPSB7J3NvbWUt
Z3JvdXAnOiB7CisgICAgICAgICAgICAgICAgICAgIHJlcG9zaXRvcmllczogeydXZWJLaXQnOiB7
YWNjZXB0c1BhdGNoOiB0cnVlfX0sCisgICAgICAgICAgICAgICAgICAgIHRlc3RQcm9wZXJ0aWVz
OiB7J3drJzoge3JldmlzaW9uOiAnV2ViS2l0J30sICdpbnN0YWxsLXJvb3RzJzogeydyb290cyc6
IHt9fX0sCisgICAgICAgICAgICAgICAgICAgIGJ1aWxkUHJvcGVydGllczogeyd3ay1wYXRjaCc6
IHtwYXRjaDogJ1dlYktpdCd9fSwKKyAgICAgICAgICAgICAgICAgICAgYWNjZXB0c1Jvb3RzOiB0
cnVlfX07CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1Jl
bW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgIH0sIC9SZXBvc2l0b3J5IGdyb3VwICJzb21l
LWdyb3VwIiBzcGVjaWZpZXMgYSBwYXRjaCBmb3IgIldlYktpdCIgYnV0IGRvZXMgbm90IHNwZWNp
ZnkgYSByZXZpc2lvbi8pOwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIHRocm93
IHdoZW4gYSByZXBvc2l0b3J5IGdyb3VwIGRvZXMgbm90IHVzZSBhIGxpc3RlZCByZXBvc2l0b3J5
JywgKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAgICAg
ICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7Ci0gICAgICAgICAgICAg
ICAgY29uZmlnLnJlcG9zaXRvcnlHcm91cHMgPSB7J3NvbWUtZ3JvdXAnOiB7J3JlcG9zaXRvcmll
cyc6IHsnV2ViS2l0Jzoge319LCBwcm9wZXJ0aWVzOiB7fX19OworICAgICAgICAgICAgICAgIGNv
bmZpZy5yZXBvc2l0b3J5R3JvdXBzID0geydzb21lLWdyb3VwJzogeydyZXBvc2l0b3JpZXMnOiB7
J1dlYktpdCc6IHt9fSwgdGVzdFByb3BlcnRpZXM6IHt9fX07CiAgICAgICAgICAgICAgICAgQnVp
bGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKLSAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgfSwgL1JlcG9zaXRvcnkgZ3JvdXAgInNvbWUtZ3JvdXAiIGRv
ZXMgbm90IHVzZSBzb21lIG9mIHRoZSByZXBvc2l0b3JpZXMgbGlzdGVkIGluIHRlc3RpbmcvKTsK
KyAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4geworICAgICAgICAgICAgICAgIGNvbnN0
IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOworICAgICAgICAgICAgICAgIGNvbmZpZy5y
ZXBvc2l0b3J5R3JvdXBzID0geydzb21lLWdyb3VwJzogeworICAgICAgICAgICAgICAgICAgICBy
ZXBvc2l0b3JpZXM6IHsnV2ViS2l0Jzoge2FjY2VwdHNQYXRjaDogdHJ1ZX19LAorICAgICAgICAg
ICAgICAgICAgICB0ZXN0UHJvcGVydGllczogeyd3ayc6IHtyZXZpc2lvbjogJ1dlYktpdCd9LCAn
aW5zdGFsbC1yb290cyc6IHsncm9vdHMnOiB7fX19LAorICAgICAgICAgICAgICAgICAgICBidWls
ZFByb3BlcnRpZXM6IHt9LAorICAgICAgICAgICAgICAgICAgICBhY2NlcHRzUm9vdHM6IHRydWV9
fTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3Rl
QVBJLCBjb25maWcpOworICAgICAgICAgICAgfSwgL1JlcG9zaXRvcnkgZ3JvdXAgInNvbWUtZ3Jv
dXAiIGRvZXMgbm90IHVzZSBzb21lIG9mIHRoZSByZXBvc2l0b3JpZXMgbGlzdGVkIGluIGJ1aWxk
aW5nIGEgcGF0Y2gvKTsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCB0aHJvdyB3
aGVuIGEgcmVwb3NpdG9yeSBncm91cCBzcGVjaWZpZXMgbm9uLWJvb2xlYW4gdmFsdWUgdG8gYWNj
ZXB0c1Jvb3RzJywgKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAg
ICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7Ci0gICAg
ICAgICAgICAgICAgY29uZmlnLnJlcG9zaXRvcnlHcm91cHMgPSB7J3NvbWUtZ3JvdXAnOiB7J3Jl
cG9zaXRvcmllcyc6IHsnV2ViS2l0Jzoge319LCAncHJvcGVydGllcyc6IHsnd2Via2l0JzogJzxX
ZWJLaXQ+J30sIGFjY2VwdHNSb290czogMX19OworICAgICAgICAgICAgICAgIGNvbmZpZy5yZXBv
c2l0b3J5R3JvdXBzID0geydzb21lLWdyb3VwJzogeydyZXBvc2l0b3JpZXMnOiB7J1dlYktpdCc6
IHt9fSwgJ3Rlc3RQcm9wZXJ0aWVzJzogeyd3ZWJraXQnOiB7J3JldmlzaW9uJzogJ1dlYktpdCd9
fSwgYWNjZXB0c1Jvb3RzOiAxfX07CiAgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xv
YWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKLSAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgfSwgL1JlcG9zaXRvcnkgZ3JvdXAgInNvbWUtZ3JvdXAiIGNvbnRhaW5zIGludmFsaWQg
YWNjZXB0c1Jvb3RzIHZhbHVlOi8pOwogICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7
CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7Ci0g
ICAgICAgICAgICAgICAgY29uZmlnLnJlcG9zaXRvcnlHcm91cHMgPSB7J3NvbWUtZ3JvdXAnOiB7
J3JlcG9zaXRvcmllcyc6IHsnV2ViS2l0Jzoge319LCAncHJvcGVydGllcyc6IHsnd2Via2l0Jzog
JzxXZWJLaXQ+J30sIGFjY2VwdHNSb290czogW119fTsKKyAgICAgICAgICAgICAgICBjb25maWcu
cmVwb3NpdG9yeUdyb3VwcyA9IHsnc29tZS1ncm91cCc6IHsncmVwb3NpdG9yaWVzJzogeydXZWJL
aXQnOiB7fX0sICd0ZXN0UHJvcGVydGllcyc6IHsnd2Via2l0JzogeydyZXZpc2lvbic6ICdXZWJL
aXQnfX0sIGFjY2VwdHNSb290czogW119fTsKICAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNl
ci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOwotICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICB9LCAvUmVwb3NpdG9yeSBncm91cCAic29tZS1ncm91cCIgY29udGFpbnMgaW52
YWxpZCBhY2NlcHRzUm9vdHMgdmFsdWU6Lyk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCdz
aG91bGQgdGhyb3cgd2hlbiBhIHJlcG9zaXRvcnkgZ3JvdXAgc3BlY2lmaWVzIG5vbi1ib29sZWFu
IHZhbHVlIHRvIGFjY2VwdHNQYXRjaCcsICgpID0+IHsKKyAgICAgICAgICAgIGFzc2VydC50aHJv
d3MoKCkgPT4geworICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJh
dGlvbigpOworICAgICAgICAgICAgICAgIGNvbmZpZy5yZXBvc2l0b3J5R3JvdXBzID0geydzb21l
LWdyb3VwJzogeydyZXBvc2l0b3JpZXMnOiB7J1dlYktpdCc6IHthY2NlcHRzUGF0Y2g6IDF9fSwg
J3Rlc3RQcm9wZXJ0aWVzJzogeyd3ZWJraXQnOiB7J3JldmlzaW9uJzogJ1dlYktpdCd9fX19Owor
ICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEks
IGNvbmZpZyk7CisgICAgICAgICAgICB9LCAvIldlYktpdCIgY29udGFpbnMgaW52YWxpZCBhY2Nl
cHRzUGF0Y2ggdmFsdWU6Lyk7CisgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKKyAg
ICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKKyAgICAg
ICAgICAgICAgICBjb25maWcucmVwb3NpdG9yeUdyb3VwcyA9IHsnc29tZS1ncm91cCc6IHsncmVw
b3NpdG9yaWVzJzogeydXZWJLaXQnOiB7YWNjZXB0c1BhdGNoOiBbXX19LCAndGVzdFByb3BlcnRp
ZXMnOiB7J3dlYmtpdCc6IHsncmV2aXNpb24nOiAnV2ViS2l0J319fX07CisgICAgICAgICAgICAg
ICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAg
ICAgICAgICAgIH0sIC8iV2ViS2l0IiBjb250YWlucyBpbnZhbGlkIGFjY2VwdHNQYXRjaCB2YWx1
ZTovKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCB0aHJvdyB3aGVuIGEgcmVw
b3NpdG9yeSBncm91cCBzcGVjaWZpZXMgYSBwYXRjaCBpbiB0ZXN0UHJvcGVydGllcycsICgpID0+
IHsKKyAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4geworICAgICAgICAgICAgICAgIGNv
bnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOworICAgICAgICAgICAgICAgIGNvbmZp
Zy5yZXBvc2l0b3J5R3JvdXBzID0geydzb21lLWdyb3VwJzogeydyZXBvc2l0b3JpZXMnOiB7J1dl
YktpdCc6IHthY2NlcHRzUGF0Y2g6IHRydWV9fSwKKyAgICAgICAgICAgICAgICAgICAgJ3Rlc3RQ
cm9wZXJ0aWVzJzogeyd3ZWJraXQnOiB7J3JldmlzaW9uJzogJ1dlYktpdCd9LCAnd2Via2l0LXBh
dGNoJzogeydwYXRjaCc6ICdXZWJLaXQnfX19fTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5
bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgfSwg
L1JlcG9zaXRvcnkgZ3JvdXAgInNvbWUtZ3JvdXAiIHNwZWNpZmllcyBhIHBhdGNoIGZvciAiV2Vi
S2l0IiBpbiB0aGUgcHJvcGVydGllcyBmb3IgdGVzdGluZy8pOworICAgICAgICB9KTsKKworICAg
ICAgICBpdCgnc2hvdWxkIHRocm93IHdoZW4gYSByZXBvc2l0b3J5IGdyb3VwIHNwZWNpZmllcyBy
b290cyBpbiBidWlsZFByb3BlcnRpZXMnLCAoKSA9PiB7CisgICAgICAgICAgICBhc3NlcnQudGhy
b3dzKCgpID0+IHsKKyAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3Vy
YXRpb24oKTsKKyAgICAgICAgICAgICAgICBjb25maWcucmVwb3NpdG9yeUdyb3VwcyA9IHsnc29t
ZS1ncm91cCc6IHsKKyAgICAgICAgICAgICAgICAgICAgcmVwb3NpdG9yaWVzOiB7J1dlYktpdCc6
IHthY2NlcHRzUGF0Y2g6IHRydWV9fSwKKyAgICAgICAgICAgICAgICAgICAgdGVzdFByb3BlcnRp
ZXM6IHsnd2Via2l0Jzoge3JldmlzaW9uOiAnV2ViS2l0J30sICdpbnN0YWxsLXJvb3RzJzogeydy
b290cyc6IHt9fX0sCisgICAgICAgICAgICAgICAgICAgIGJ1aWxkUHJvcGVydGllczogeyd3ZWJr
aXQnOiB7cmV2aXNpb246ICdXZWJLaXQnfSwgJ3BhdGNoJzoge3BhdGNoOiAnV2ViS2l0J30sICdp
bnN0YWxsLXJvb3RzJzoge3Jvb3RzOiB7fX19LAorICAgICAgICAgICAgICAgICAgICBhY2NlcHRz
Um9vdHM6IHRydWV9fTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZp
ZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgfSwgL1JlcG9zaXRvcnkgZ3Jv
dXAgInNvbWUtZ3JvdXAiIHNwZWNpZmllcyByb290cyBpbiB0aGUgcHJvcGVydGllcyBmb3IgYnVp
bGRpbmcvKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCB0aHJvdyB3aGVuIGEg
cmVwb3NpdG9yeSBncm91cCB0aGF0IGRvZXMgbm90IGFjY2VwdCByb290cyBzcGVjaWZpZXMgcm9v
dHMgaW4gdGVzdFByb3BlcnRpZXMnLCAoKSA9PiB7CisgICAgICAgICAgICBhc3NlcnQudGhyb3dz
KCgpID0+IHsKKyAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRp
b24oKTsKKyAgICAgICAgICAgICAgICBjb25maWcucmVwb3NpdG9yeUdyb3VwcyA9IHsnc29tZS1n
cm91cCc6IHsKKyAgICAgICAgICAgICAgICAgICAgcmVwb3NpdG9yaWVzOiB7J1dlYktpdCc6IHt9
fSwKKyAgICAgICAgICAgICAgICAgICAgdGVzdFByb3BlcnRpZXM6IHsnd2Via2l0JzogeydyZXZp
c2lvbic6ICdXZWJLaXQnfSwgJ2luc3RhbGwtcm9vdHMnOiB7J3Jvb3RzJzoge319fX19OworICAg
ICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNv
bmZpZyk7CisgICAgICAgICAgICB9LCAvUmVwb3NpdG9yeSBncm91cCAic29tZS1ncm91cCIgc3Bl
Y2lmaWVzIHJvb3RzIGluIGEgcHJvcGVydHkgYnV0IGl0IGRvZXMgbm90IGFjY2VwdCByb290cy8p
OworICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIHRocm93IHdoZW4gYSByZXBvc2l0
b3J5IGdyb3VwIHNwZWNpZmllcyBidWlsZFByb3BlcnRpZXMgYnV0IGRvZXMgbm90IGFjY2VwdCBy
b290cycsICgpID0+IHsKKyAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4geworICAgICAg
ICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOworICAgICAgICAg
ICAgICAgIGNvbmZpZy5yZXBvc2l0b3J5R3JvdXBzID0geydzb21lLWdyb3VwJzogeworICAgICAg
ICAgICAgICAgICAgICByZXBvc2l0b3JpZXM6IHsnV2ViS2l0Jzoge2FjY2VwdHNQYXRjaDogdHJ1
ZX19LAorICAgICAgICAgICAgICAgICAgICB0ZXN0UHJvcGVydGllczogeyd3ZWJraXQnOiB7cmV2
aXNpb246ICdXZWJLaXQnfX0sCisgICAgICAgICAgICAgICAgICAgIGJ1aWxkUHJvcGVydGllczog
eyd3ZWJraXQnOiB7cmV2aXNpb246ICdXZWJLaXQnfSwgJ3dlYmtpdC1wYXRjaCc6IHtwYXRjaDog
J1dlYktpdCd9fX19OworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmln
KE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICB9LCAvUmVwb3NpdG9yeSBncm91
cCAic29tZS1ncm91cCIgc3BlY2lmaWVzIHRoZSBwcm9wZXJ0aWVzIGZvciBidWlsZGluZyBidXQg
ZG9lcyBub3QgYWNjZXB0IHJvb3RzIGluIHRlc3RpbmcvKTsKKyAgICAgICAgfSk7CisKKyAgICAg
ICAgaXQoJ3Nob3VsZCB0aHJvdyB3aGVuIGEgcmVwb3NpdG9yeSBncm91cCBzcGVjaWZpZXMgYnVp
bGRQcm9wZXJ0aWVzIGJ1dCBkb2VzIG5vdCBhY2NlcHQgYW55IHBhdGNoJywgKCkgPT4geworICAg
ICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CisgICAgICAgICAgICAgICAgY29uc3QgY29u
ZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CisgICAgICAgICAgICAgICAgY29uZmlnLnJlcG9z
aXRvcnlHcm91cHMgPSB7J3NvbWUtZ3JvdXAnOiB7CisgICAgICAgICAgICAgICAgICAgIHJlcG9z
aXRvcmllczogeydXZWJLaXQnOiB7fX0sCisgICAgICAgICAgICAgICAgICAgIHRlc3RQcm9wZXJ0
aWVzOiB7J3dlYmtpdCc6IHsncmV2aXNpb24nOiAnV2ViS2l0J30sICdpbnN0YWxsLXJvb3RzJzog
eydyb290cyc6IHt9fX0sCisgICAgICAgICAgICAgICAgICAgIGJ1aWxkUHJvcGVydGllczogeyd3
ZWJraXQnOiB7J3JldmlzaW9uJzogJ1dlYktpdCd9fSwKKyAgICAgICAgICAgICAgICAgICAgYWNj
ZXB0c1Jvb3RzOiB0cnVlfX07CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRD
b25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgIH0sIC9SZXBvc2l0b3J5
IGdyb3VwICJzb21lLWdyb3VwIiBzcGVjaWZpZXMgdGhlIHByb3BlcnRpZXMgZm9yIGJ1aWxkaW5n
IGJ1dCBkb2VzIG5vdCBhY2NlcHQgYW55IHBhdGNoZXMvKTsKKyAgICAgICAgfSk7CisKKyAgICAg
ICAgaXQoJ3Nob3VsZCB0aHJvdyB3aGVuIGEgcmVwb3NpdG9yeSBncm91cCBhY2NlcHRzIHJvb3Rz
IGJ1dCBkb2VzIG5vdCBzcGVjaWZ5IHJvb3RzIGluIHRlc3RQcm9wZXJ0aWVzJywgKCkgPT4gewor
ICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CisgICAgICAgICAgICAgICAgY29uc3Qg
Y29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CisgICAgICAgICAgICAgICAgY29uZmlnLnJl
cG9zaXRvcnlHcm91cHMgPSB7J3NvbWUtZ3JvdXAnOiB7CisgICAgICAgICAgICAgICAgICAgIHJl
cG9zaXRvcmllczogeydXZWJLaXQnOiB7YWNjZXB0c1BhdGNoOiB0cnVlfX0sCisgICAgICAgICAg
ICAgICAgICAgIHRlc3RQcm9wZXJ0aWVzOiB7J3dlYmtpdCc6IHtyZXZpc2lvbjogJ1dlYktpdCd9
fSwKKyAgICAgICAgICAgICAgICAgICAgYnVpbGRQcm9wZXJ0aWVzOiB7J3dlYmtpdCc6IHtyZXZp
c2lvbjogJ1dlYktpdCd9LCAnd2Via2l0LXBhdGNoJzoge3BhdGNoOiAnV2ViS2l0J319LAorICAg
ICAgICAgICAgICAgICAgICBhY2NlcHRzUm9vdHM6IHRydWV9fTsKKyAgICAgICAgICAgICAgICBC
dWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAg
ICAgICAgfSwgL1JlcG9zaXRvcnkgZ3JvdXAgInNvbWUtZ3JvdXAiIGFjY2VwdHMgcm9vdHMgYnV0
IGRvZXMgbm90IHNwZWNpZnkgcm9vdHMgaW4gdGVzdFByb3BlcnRpZXMvKTsKICAgICAgICAgfSk7
CiAgICAgfSk7CiAK
</data>
<flag name="review"
          id="332106"
          type_id="1"
          status="+"
          setter="cdumez"
    />
          </attachment>
      

    </bug>

</bugzilla>