<?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>156427</bug_id>
          
          <creation_ts>2016-04-08 16:41:18 -0700</creation_ts>
          <short_desc>Escape builder names in url* and pathFor* methods of BuildbotSyncer</short_desc>
          <delta_ts>2016-04-08 21:56:38 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Perf Dashboard</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></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>rniwa</cc>
    
    <cc>slewis</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1182354</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-04-08 16:41:18 -0700</bug_when>
    <thetext>Turns out that my build fix in http://trac.webkit.org/changeset/199251 breaks other usage of RemoteAPI.
Fix it properly by escaping builder names in BuildbotSyncer&apos;s methods.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1182357</commentid>
    <comment_count>1</comment_count>
      <attachid>276053</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-04-08 16:46:59 -0700</bug_when>
    <thetext>Created attachment 276053
Fixes the bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1182424</commentid>
    <comment_count>2</comment_count>
      <attachid>276075</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-04-08 20:02:26 -0700</bug_when>
    <thetext>Created attachment 276075
Fixed one more bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1182436</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-04-08 21:55:46 -0700</bug_when>
    <thetext>Thanks for the reviews!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1182437</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-04-08 21:56:38 -0700</bug_when>
    <thetext>Committed r199266: &lt;http://trac.webkit.org/changeset/199266&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>276053</attachid>
            <date>2016-04-08 16:46:59 -0700</date>
            <delta_ts>2016-04-08 20:02:21 -0700</delta_ts>
            <desc>Fixes the bug</desc>
            <filename>bug-156427-20160408164704.patch</filename>
            <type>text/plain</type>
            <size>30466</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkocmV2aXNpb24gMTk5MjU1KQorKysg
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDMzIEBACisyMDE2LTA0LTA4ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgor
CisgICAgICAgIEVzY2FwZSBidWlsZGVyIG5hbWVzIGluIHVybCogYW5kIHBhdGhGb3IqIG1ldGhv
ZHMgb2YgQnVpbGRib3RTeW5jZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE1NjQyNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRoZSBidWlsZCBmaXggaW4gcjE5OTI1MSBicmVha3Mgb3RoZXIgdXNhZ2Ug
b2YgUmVtb3RlQVBJLiBGaXggaXQgcHJvcGVybHkgYnkgZXNjYXBpbmcgYnVpbGRlciBuYW1lcyBp
bgorICAgICAgICB2YXJpb3VzIG1ldGhvZHMgb2YgQnVpbGRib3RTeW5jZXIuCisKKyAgICAgICAg
KiBzZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL21vY2stZGF0YS5qczoKKyAgICAgICAgKE1vY2tEYXRh
Lm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhUd29CdWlsZGVycyk6IFJlbmFtZWQgInNvbWUtYnVpbGRl
ci0yIiB0byAic29tZSBidWlsZGVyIDIiIHRvIHRlc3QgdGhlCisgICAgICAgIG5ldyBlc2NhcGlu
ZyBiZWhhdmlvciBpbiB0b29scy1idWlsZGJvdC10cmlnZ2VyYWJsZS10ZXN0cy5qcyBhbmQgYnVp
bGRib3Qtc3luY2VyLXRlc3RzLmpzLgorICAgICAgICAqIHNlcnZlci10ZXN0cy90b29scy1idWls
ZGJvdC10cmlnZ2VyYWJsZS10ZXN0cy5qczogQWRkZWQgdGVzdHMgZm9yIHN0YXR1cyB1cmwuCisK
KyAgICAgICAgKiB0b29scy9qcy9idWlsZGJvdC1zeW5jZXIuanM6CisgICAgICAgIChCdWlsZGJv
dFN5bmNlci5wcm90b3R5cGUucGF0aEZvclBlbmRpbmdCdWlsZHNKU09OKTogRXNjYXBlIHRoZSBi
dWlsZGVyIG5hbWUuCisgICAgICAgIChCdWlsZGJvdFN5bmNlci5wcm90b3R5cGUucGF0aEZvckJ1
aWxkSlNPTik6IERpdHRvLgorICAgICAgICAoQnVpbGRib3RTeW5jZXIucHJvdG90eXBlLnBhdGhG
b3JGb3JjZUJ1aWxkKTogRGl0dG8uCisgICAgICAgIChCdWlsZGJvdFN5bmNlci5wcm90b3R5cGUu
dXJsKTogRGl0dG8uCisgICAgICAgIChCdWlsZGJvdFN5bmNlci5wcm90b3R5cGUudXJsRm9yQnVp
bGROdW1iZXIpOiBEaXR0by4KKworICAgICAgICAqIHRvb2xzL2pzL2J1aWxkYm90LXRyaWdnZXJh
YmxlLmpzOgorICAgICAgICAoQnVpbGRib3RUcmlnZ2VyYWJsZS5wcm90b3R5cGUuX3B1bGxCdWls
ZGJvdE9uQWxsU3luY2Vycyk6CisgICAgICAgIChCdWlsZGJvdFRyaWdnZXJhYmxlLnByb3RvdHlw
ZS5fc2NoZWR1bGVOZXh0UmVxdWVzdEluR3JvdXBJZlNsYXZlSXNBdmFpbGFibGUpOiBGaXhlZCBh
IHR5cG8uIFdlIGFyZQorICAgICAgICBzY2hlZHVsaW5nIG5ldyBidWlsZCByZXF1ZXN0cywgbm90
IHN5bmNpbmcgdGhlbS4KKyAgICAgICAgKiB0b29scy9qcy9yZW1vdGUuanM6CisgICAgICAgIChS
ZW1vdGVBUEkuc2VuZEh0dHBSZXF1ZXN0KTogUmV2ZXJ0ZWQgcjE5OTI1MS4KKyAgICAgICAgKiB1
bml0LXRlc3RzL2J1aWxkYm90LXN5bmNlci10ZXN0cy5qczoKKwogMjAxNi0wNC0wOCAgUnlvc3Vr
ZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBCdWlsZCBmaXguIFdlIG5lZWQg
dG8gZXNjYXBlIHRoZSBwYXRoIG9yIGh0dHAucmVxdWVzdCB3b3VsZCBmYWlsLgpJbmRleDogV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29scy1idWlsZGJvdC10cmlnZ2Vy
YWJsZS10ZXN0cy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2Vy
dmVyLXRlc3RzL3Rvb2xzLWJ1aWxkYm90LXRyaWdnZXJhYmxlLXRlc3RzLmpzCShyZXZpc2lvbiAx
OTkyNTApCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLWJ1
aWxkYm90LXRyaWdnZXJhYmxlLXRlc3RzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xNTgsNyArMTU4
LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbgogICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgJy9qc29u
L2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKICAgICAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoW01vY2tEYXRhLnBlbmRpbmdCdWls
ZCh7YnVpbGRSZXF1ZXN0SWQ6IDk5OX0pXSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCAnL2pzb24vYnVp
bGRlcnMvc29tZS1idWlsZGVyLTIvcGVuZGluZ0J1aWxkcycpOworICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgJy9qc29uL2J1aWxkZXJz
L3NvbWUlMjBidWlsZGVyJTIwMi9wZW5kaW5nQnVpbGRzJyk7CiAgICAgICAgICAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKFtdKTsKICAgICAgICAgICAgICAgICByZXR1
cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbihm
dW5jdGlvbiAoKSB7CkBAIC0xNjcsMTMgKzE2NywxMyBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmln
Z2VyYWJsZScsIGZ1bmN0aW9uCiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMl0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVp
bGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsICcvanNvbi9idWls
ZGVycy9zb21lLWJ1aWxkZXItMi9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsICcv
anNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0
PS0yJyk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZl
KHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVz
dCgpOwogICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA1KTsKICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5tZXRob2QsICdQ
T1NUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbNF0udXJsLCAnL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0yL2ZvcmNlJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0udXJsLCAnL2J1aWxk
ZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9mb3JjZScpOwogICAgICAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5kYXRhLCB7J3drJzogJzE5MTYyMics
ICdvcyc6ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3MDAnfSk7CiAgICAg
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5yZXNvbHZlKCdPSycpOwogICAg
ICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CkBAIC0x
ODMsOCArMTgzLDggQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbgog
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnVy
bCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKICAgICAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnJlc29sdmUoW01vY2tEYXRhLnBl
bmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDk5OX0pXSk7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0udXJsLCAn
L2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTIvcGVuZGluZ0J1aWxkcycpOwotICAgICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0ucmVzb2x2ZShbTW9ja0RhdGEucGVuZGlu
Z0J1aWxkKHtidWlsZGVyOiAnc29tZS1idWlsZGVyLTInLCBidWlsZFJlcXVlc3RJZDogNzAwfSld
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2
XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvcGVuZGluZ0J1aWxkcycp
OworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0ucmVzb2x2ZShbTW9j
a0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyIDInLCBidWlsZFJlcXVl
c3RJZDogNzAwfSldKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0
Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA5KTsK
QEAgLTE5MiwyMiArMTkyLDMwIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVu
Y3Rpb24KICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1s3XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0t
MSZzZWxlY3Q9LTInKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzdd
LnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzhdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVp
bGRlci0yL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOworICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnVybCwgJy9qc29uL2J1aWxkZXJz
L3NvbWUlMjBidWlsZGVyJTIwMi9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKICAgICAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnJlc29sdmUoe30pOwogICAgICAg
ICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rp
b24gKCkgewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCku
bGVuZ3RoLCA0KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMCkuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBudWxsKTsKICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3Rh
dHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5n
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgp
LCBudWxsKTsKICAgICAgICAgICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJp
Z2dlcmFibGUoTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFR3b0J1aWxkZXJzKCkudHJp
Z2dlcmFibGVOYW1lKTsKICAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3Rh
dHVzKCksICdzY2hlZHVsZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9y
Zy9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5z
dGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVs
bCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MDMpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAg
ICAgICAgZG9uZSgpOwogICAgICAgICAgICAgfSkuY2F0Y2goZG9uZSk7CiAgICAgICAgIH0pOwpA
QCAtMjMzLDcgKzI0MSw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rp
b24KICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sw
XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7CiAg
ICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKFtNb2NrRGF0
YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDB9KV0pOwogICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVy
bCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0yL3BlbmRpbmdCdWlsZHMnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsICcv
anNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvcGVuZGluZ0J1aWxkcycpOwogICAgICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZShbXSk7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAg
ICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgewpAQCAtMjQyLDcgKzI1MCw3IEBAIGRlc2NyaWJlKCdC
dWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24KICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1
aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKICAgICAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwg
Jy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0yL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0t
MicpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzNdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9idWlsZHMvP3NlbGVj
dD0tMSZzZWxlY3Q9LTInKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzNdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndh
aXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKQEAgLTI1
MSw3ICsyNTksNyBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uCiAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0udXJs
LCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxkcycpOwogICAgICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ucmVzb2x2ZShbTW9ja0RhdGEucGVu
ZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAwfSldKTsKICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5tZXRob2QsICdHRVQnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS51cmwsICcv
anNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMi9wZW5kaW5nQnVpbGRzJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0udXJsLCAnL2pzb24v
YnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIlMjAyL3BlbmRpbmdCdWlsZHMnKTsKICAgICAgICAgICAg
ICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnJlc29sdmUoW10pOwogICAgICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9
KS50aGVuKGZ1bmN0aW9uICgpIHsKQEAgLTI2MCwyMiArMjY4LDMwIEBAIGRlc2NyaWJlKCdCdWls
ZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24KICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxk
ZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKICAgICAgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzZdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLm1ldGhvZCwgJ0dFVCcpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnVybCwgJy9q
c29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0yL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicp
OworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzdd
LnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9idWlsZHMvP3NlbGVjdD0t
MSZzZWxlY3Q9LTInKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzdd
LnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAg
ICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdwZW5kaW5nJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0
YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBudWxs
KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
Mikuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdw
ZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgICAgICByZXR1cm4gQnVp
bGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dlcmFibGUoTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmln
V2l0aFR3b0J1aWxkZXJzKCkudHJpZ2dlcmFibGVOYW1lKTsKICAgICAgICAgICAgIH0pLnRoZW4o
ZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
YWxsKCkubGVuZ3RoLCA0KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdzY2hlZHVsZWQnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksICdo
dHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9zb21lLWJ1aWxkZXItMS8nKTsKICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVz
KCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIp
LnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBu
dWxsKTsKICAgICAgICAgICAgICAgICBkb25lKCk7CiAgICAgICAgICAgICB9KS5jYXRjaChkb25l
KTsKICAgICAgICAgfSk7CkBAIC0zMDEsNyArMzE3LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJp
Z2dlcmFibGUnLCBmdW5jdGlvbgogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3Bl
bmRpbmdCdWlsZHMnKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBd
LnJlc29sdmUoW10pOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVp
bGRlci0yL3BlbmRpbmdCdWlsZHMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRl
ciUyMDIvcGVuZGluZ0J1aWxkcycpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMV0ucmVzb2x2ZShbXSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgewpA
QCAtMzEwLDcgKzMyNiw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rp
b24KICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sy
XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZz
ZWxlY3Q9LTInKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJl
c29sdmUoe1stMV06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMX0p
LCBbLTJdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAwfSl9KTsK
ICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5t
ZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1szXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMi9idWlsZHMv
P3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRl
ciUyMDIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7CiAgICAgICAgICAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1
cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbihm
dW5jdGlvbiAoKSB7CkBAIC0zMjYsNyArMzQyLDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dl
cmFibGUnLCBmdW5jdGlvbgogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzVdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRp
bmdCdWlsZHMnKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnJl
c29sdmUoW01vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMn0pXSk7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0ubWV0
aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbNl0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTIvcGVuZGluZ0J1
aWxkcycpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzZdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9wZW5kaW5nQnVp
bGRzJyk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5yZXNvbHZl
KFtdKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVz
dCgpOwogICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7CkBAIC0zMzUsMjIgKzM1MSwz
MCBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uCiAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10udXJsLCAnL2pzb24v
YnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7CiAg
ICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5yZXNvbHZlKHtbLTFdOiBN
b2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDF9KSwgWy0yXTogTW9ja0Rh
dGEuZmluaXNoZWRCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pfSk7CiAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0ubWV0aG9kLCAnR0VUJyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0u
dXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTIvYnVpbGRzLz9zZWxlY3Q9LTEmc2Vs
ZWN0PS0yJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbOF0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIlMjAyL2J1aWxkcy8/
c2VsZWN0PS0xJnNlbGVjdD0tMicpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbOF0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNl
OwogICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwogICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3BlbmRp
bmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMCkuc3RhdHVzVXJsKCksIG51bGwpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJs
KCksIG51bGwpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOwogICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0
dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOwogICAgICAgICAgICAgICAgIHJl
dHVybiBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZShNb2NrRGF0YS5tb2NrVGVzdFN5
bmNDb25maWdXaXRoVHdvQnVpbGRlcnMoKS50cmlnZ2VyYWJsZU5hbWUpOwogICAgICAgICAgICAg
fSkudGhlbihmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ2ZhaWxlZCcpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwo
KSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxk
cy8xMjMnKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMSkuc3RhdHVzKCksICdydW5uaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxk
LndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLzEyNCcpOwogICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMo
KSwgJ3NjaGVkdWxlZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1
aWxkZXJzL3NvbWUtYnVpbGRlci0xLycpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJs
KCksIG51bGwpOwogICAgICAgICAgICAgICAgIGRvbmUoKTsKICAgICAgICAgICAgIH0pLmNhdGNo
KGRvbmUpOwogICAgICAgICB9KTsKQEAgLTM3OSw3ICs0MDMsNyBAQCBkZXNjcmliZSgnQnVpbGRi
b3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uCiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVy
LTEvcGVuZGluZ0J1aWxkcycpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMF0ucmVzb2x2ZShbTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAy
fSldKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMi9w
ZW5kaW5nQnVpbGRzJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMV0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIlMjAyL3Bl
bmRpbmdCdWlsZHMnKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFd
LnJlc29sdmUoW10pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKQEAgLTM4OCwx
MyArNDEyLDEzIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24KICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmws
ICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9
LTInKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUo
e1stMV06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMX0pLCBbLTJd
OiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAwfSl9KTsKICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2Qs
ICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1szXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMi9idWlsZHMvP3NlbGVj
dD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1szXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIv
YnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbihmdW5jdGlv
biAoKSB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHMubGVuZ3RoLCA1KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1s0XS5tZXRob2QsICdQT1NUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0udXJsLCAnL2J1aWxkZXJzL3NvbWUtYnVpbGRl
ci0yL2ZvcmNlJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbNF0udXJsLCAnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9mb3JjZScpOwog
ICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0
XS5kYXRhLCB7J3drJzogJzE5MTYyMicsICdvcyc6ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVx
dWVzdC1pZCc6ICc3MTAnfSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1s0XS5yZXNvbHZlKCdPSycpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJ
LndhaXRGb3JSZXF1ZXN0KCk7CkBAIC00MDQsOCArNDI4LDggQEAgZGVzY3JpYmUoJ0J1aWxkYm90
VHJpZ2dlcmFibGUnLCBmdW5jdGlvbgogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzVdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0x
L3BlbmRpbmdCdWlsZHMnKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzVdLnJlc29sdmUoW01vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMn0p
XSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Nl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbNl0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTIvcGVu
ZGluZ0J1aWxkcycpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0u
cmVzb2x2ZShbTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVyOiAnc29tZS1idWlsZGVyLTIn
LCBidWlsZFJlcXVlc3RJZDogNzEwfSldKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVp
bGRlciUyMDIvcGVuZGluZ0J1aWxkcycpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbNl0ucmVzb2x2ZShbTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVyOiAnc29t
ZSBidWlsZGVyIDInLCBidWlsZFJlcXVlc3RJZDogNzEwfSldKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhl
bihmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHMubGVuZ3RoLCA5KTsKQEAgLTQxMywzMCArNDM3LDQ2IEBAIGRlc2NyaWJlKCdC
dWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24KICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1
aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKICAgICAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnJlc29sdmUoe1stMV06IE1vY2tEYXRhLnJ1bm5pbmdC
dWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMX0pLCBbLTJdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxk
KHtidWlsZFJlcXVlc3RJZDogNzAwfSl9KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS51cmwsICcvanNvbi9idWls
ZGVycy9zb21lLWJ1aWxkZXItMi9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS51cmwsICcv
anNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0
PS0yJyk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS5yZXNvbHZl
KHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgICAgICB9
KS50aGVuKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnY29tcGxldGVkJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1Vy
bCgpLCBudWxsKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBudWxsKTsKICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3Rh
dHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5n
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0YXR1c1VybCgp
LCBudWxsKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcxMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3RhdHVz
KCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MTIpLnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMykuc3RhdHVzKCksICdwZW5kaW5nJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTMp
LnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0
LmZldGNoRm9yVHJpZ2dlcmFibGUoTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFR3b0J1
aWxkZXJzKCkudHJpZ2dlcmFibGVOYW1lKTsKICAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVu
Z3RoLCA4KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMCkuc3RhdHVzKCksICdjb21wbGV0ZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksICdodHRwOi8vYnVp
bGQud2Via2l0Lm9yZy9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvMTIzJyk7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1
cygpLCAncnVubmluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1
aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8xMjQnKTsKICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdzY2hlZHVsZWQn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
Mikuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9zb21lLWJ1
aWxkZXItMS8nKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMCkuc3Rh
dHVzKCksICdzY2hlZHVsZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9y
Zy9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1cygpLCAncGVuZGluZycpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzExKS5z
dGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MTIpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEyKS5zdGF0dXNVcmwoKSwgbnVs
bCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MTMpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAg
ICAgICAgZG9uZSgpOwogICAgICAgICAgICAgfSkuY2F0Y2goZG9uZSk7CiAgICAgICAgIH0pOwpJ
bmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvbW9j
ay1kYXRhLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXIt
dGVzdHMvcmVzb3VyY2VzL21vY2stZGF0YS5qcwkocmV2aXNpb24gMTk5MjUwKQorKysgV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvbW9jay1kYXRhLmpzCSh3
b3JraW5nIGNvcHkpCkBAIC05Niw3ICs5Niw3IEBAIE1vY2tEYXRhID0gewogICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgJ3BsYXRmb3JtJzogJ3NvbWUgcGxhdGZvcm0nLAog
ICAgICAgICAgICAgICAgICAgICAndGVzdCc6IFsnc29tZSB0ZXN0J10sCi0gICAgICAgICAgICAg
ICAgICAgICdidWlsZGVyJzogJ3NvbWUtYnVpbGRlci0yJywKKyAgICAgICAgICAgICAgICAgICAg
J2J1aWxkZXInOiAnc29tZSBidWlsZGVyIDInLAogICAgICAgICAgICAgICAgICAgICAnYXJndW1l
bnRzJzogewogICAgICAgICAgICAgICAgICAgICAgICAgJ3drJzogeydyb290JzogJ1dlYktpdCd9
LAogICAgICAgICAgICAgICAgICAgICAgICAgJ29zJzogeydyb290JzogJ09TIFgnfSwKSW5kZXg6
IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC1zeW5jZXIuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXN5
bmNlci5qcwkocmV2aXNpb24gMTk5MjUwKQorKysgV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rv
b2xzL2pzL2J1aWxkYm90LXN5bmNlci5qcwkod29ya2luZyBjb3B5KQpAQCAtMTc5LDE2ICsxNzks
MTYgQEAgY2xhc3MgQnVpbGRib3RTeW5jZXIgewogICAgICAgICB9KTsKICAgICB9CiAKLSAgICBw
YXRoRm9yUGVuZGluZ0J1aWxkc0pTT04oKSB7IHJldHVybiBgL2pzb24vYnVpbGRlcnMvJHt0aGlz
Ll9idWlsZGVyTmFtZX0vcGVuZGluZ0J1aWxkc2A7IH0KKyAgICBwYXRoRm9yUGVuZGluZ0J1aWxk
c0pTT04oKSB7IHJldHVybiBgL2pzb24vYnVpbGRlcnMvJHtlc2NhcGUodGhpcy5fYnVpbGRlck5h
bWUpfS9wZW5kaW5nQnVpbGRzYDsgfQogICAgIHBhdGhGb3JCdWlsZEpTT04oc2VsZWN0ZWRCdWls
ZHMpCiAgICAgewotICAgICAgICByZXR1cm4gYC9qc29uL2J1aWxkZXJzLyR7dGhpcy5fYnVpbGRl
ck5hbWV9L2J1aWxkcy8/YAorICAgICAgICByZXR1cm4gYC9qc29uL2J1aWxkZXJzLyR7ZXNjYXBl
KHRoaXMuX2J1aWxkZXJOYW1lKX0vYnVpbGRzLz9gCiAgICAgICAgICAgICArIHNlbGVjdGVkQnVp
bGRzLm1hcChmdW5jdGlvbiAobnVtYmVyKSB7IHJldHVybiAnc2VsZWN0PScgKyBudW1iZXI7IH0p
LmpvaW4oJyYnKTsKICAgICB9Ci0gICAgcGF0aEZvckZvcmNlQnVpbGQoKSB7IHJldHVybiBgL2J1
aWxkZXJzLyR7dGhpcy5fYnVpbGRlck5hbWV9L2ZvcmNlYDsgfQorICAgIHBhdGhGb3JGb3JjZUJ1
aWxkKCkgeyByZXR1cm4gYC9idWlsZGVycy8ke2VzY2FwZSh0aGlzLl9idWlsZGVyTmFtZSl9L2Zv
cmNlYDsgfQogCi0gICAgdXJsKCkgeyByZXR1cm4gdGhpcy5fcmVtb3RlLnVybChgL2J1aWxkZXJz
LyR7dGhpcy5fYnVpbGRlck5hbWV9L2ApOyB9Ci0gICAgdXJsRm9yQnVpbGROdW1iZXIobnVtYmVy
KSB7IHJldHVybiB0aGlzLl9yZW1vdGUudXJsKGAvYnVpbGRlcnMvJHt0aGlzLl9idWlsZGVyTmFt
ZX0vYnVpbGRzLyR7bnVtYmVyfWApOyB9CisgICAgdXJsKCkgeyByZXR1cm4gdGhpcy5fcmVtb3Rl
LnVybChgL2J1aWxkZXJzLyR7ZXNjYXBlKHRoaXMuX2J1aWxkZXJOYW1lKX0vYCk7IH0KKyAgICB1
cmxGb3JCdWlsZE51bWJlcihudW1iZXIpIHsgcmV0dXJuIHRoaXMuX3JlbW90ZS51cmwoYC9idWls
ZGVycy8ke2VzY2FwZSh0aGlzLl9idWlsZGVyTmFtZSl9L2J1aWxkcy8ke251bWJlcn1gKTsgfQog
CiAgICAgX3Byb3BlcnRpZXNGb3JCdWlsZFJlcXVlc3QoYnVpbGRSZXF1ZXN0KQogICAgIHsKSW5k
ZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC10cmlnZ2VyYWJs
ZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVp
bGRib3QtdHJpZ2dlcmFibGUuanMJKHJldmlzaW9uIDE5OTI1MCkKKysrIFdlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC10cmlnZ2VyYWJsZS5qcwkod29ya2luZyBjb3B5
KQpAQCAtMTAyLDEyICsxMDIsMTYgQEAgY2xhc3MgQnVpbGRib3RUcmlnZ2VyYWJsZSB7CiAgICAg
ICAgICAgICAgICAgICAgIGlmIChuZXdTdGF0dXMpIHsKICAgICAgICAgICAgICAgICAgICAgICAg
IHNlbGYuX2xvZ2dlci5sb2coYFVwZGF0aW5nIHRoZSBzdGF0dXMgb2YgYnVpbGQgcmVxdWVzdCAk
e3JlcXVlc3QuaWQoKX0gZnJvbSAke3JlcXVlc3Quc3RhdHVzKCl9IHRvICR7bmV3U3RhdHVzfWAp
OwogICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlc1tlbnRyeS5idWlsZFJlcXVlc3RJZCgp
XSA9IHtzdGF0dXM6IG5ld1N0YXR1cywgdXJsOiBlbnRyeS51cmwoKX07CisgICAgICAgICAgICAg
ICAgICAgIH0gZWxzZSBpZiAoIXJlcXVlc3Quc3RhdHVzVXJsKCkpIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHNlbGYuX2xvZ2dlci5sb2coYFNldHRpbmcgdGhlIHN0YXR1cyBVUkwgb2YgYnVp
bGQgcmVxdWVzdCAke3JlcXVlc3QuaWQoKX0gdG8gJHtlbnRyeS51cmwoKX1gKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHVwZGF0ZXNbZW50cnkuYnVpbGRSZXF1ZXN0SWQoKV0gPSB7c3RhdHVz
OiByZXF1ZXN0LnN0YXR1cygpLCB1cmw6IGVudHJ5LnVybCgpfTsKICAgICAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0pOwogICAgICAgICB9KSkudGhl
bihmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBmb3IgKGxldCByZXF1ZXN0IG9mIEJ1aWxkUmVx
dWVzdC5hbGwoKSkgewogICAgICAgICAgICAgICAgIGlmIChyZXF1ZXN0Lmhhc1N0YXJ0ZWQoKSAm
JiAhcmVxdWVzdC5oYXNGaW5pc2hlZCgpICYmICFhc3NvY2lhdGVkUmVxdWVzdHMuaGFzKHJlcXVl
c3QpKSB7CisgICAgICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5sb2coYFVwZGF0aW5nIHRo
ZSBzdGF0dXMgb2YgYnVpbGQgcmVxdWVzdCAke3JlcXVlc3QuaWQoKX0gZnJvbSAke3JlcXVlc3Qu
c3RhdHVzKCl9IHRvIGZhaWxlZElmTm90Q29tcGxldGVkYCk7CiAgICAgICAgICAgICAgICAgICAg
IGFzc2VydCghKHJlcXVlc3QuaWQoKSBpbiB1cGRhdGVzKSk7CiAgICAgICAgICAgICAgICAgICAg
IHVwZGF0ZXNbcmVxdWVzdC5pZCgpXSA9IHtzdGF0dXM6ICdmYWlsZWRJZk5vdENvbXBsZXRlZCd9
OwogICAgICAgICAgICAgICAgIH0KQEAgLTEzMiw3ICsxMzYsNyBAQCBjbGFzcyBCdWlsZGJvdFRy
aWdnZXJhYmxlIHsKIAogICAgICAgICBsZXQgZmlyc3RSZXF1ZXN0ID0gIW5leHRSZXF1ZXN0Lm9y
ZGVyKCk7CiAgICAgICAgIGlmIChmaXJzdFJlcXVlc3QpIHsKLSAgICAgICAgICAgIHRoaXMuX2xv
Z2dlci5sb2coYFN5bmNpbmcgYnVpbGQgcmVxdWVzdCAke25leHRSZXF1ZXN0LmlkKCl9IG9uICR7
Z3JvdXBJbmZvLnNsYXZlTmFtZX0gaW4gJHtncm91cEluZm8uc3luY2VyLmJ1aWxkZXJOYW1lKCl9
YCk7CisgICAgICAgICAgICB0aGlzLl9sb2dnZXIubG9nKGBTY2hlZHVsaW5nIGJ1aWxkIHJlcXVl
c3QgJHtuZXh0UmVxdWVzdC5pZCgpfSBvbiAke2dyb3VwSW5mby5zbGF2ZU5hbWV9IGluICR7Z3Jv
dXBJbmZvLnN5bmNlci5idWlsZGVyTmFtZSgpfWApOwogICAgICAgICAgICAgcmV0dXJuIGdyb3Vw
SW5mby5zeW5jZXIuc2NoZWR1bGVSZXF1ZXN0KHJlcXVlc3QsIGdyb3VwSW5mby5zbGF2ZU5hbWUp
OwogICAgICAgICB9CiAKQEAgLTE0MCw3ICsxNDQsNyBAQCBjbGFzcyBCdWlsZGJvdFRyaWdnZXJh
YmxlIHsKICAgICAgICAgICAgIGxldCBwcm9taXNlID0gc3luY2VyLnNjaGVkdWxlRmlyc3RSZXF1
ZXN0SW5Hcm91cElmQXZhaWxhYmxlKG5leHRSZXF1ZXN0KTsKICAgICAgICAgICAgIGlmIChwcm9t
aXNlKSB7CiAgICAgICAgICAgICAgICAgbGV0IHNsYXZlTmFtZSA9IGdyb3VwSW5mby5zbGF2ZU5h
bWUgPyBgIG9uICR7Z3JvdXBJbmZvLnNsYXZlTmFtZX1gIDogJyc7Ci0gICAgICAgICAgICAgICAg
dGhpcy5fbG9nZ2VyLmxvZyhgU3luY2luZyBidWlsZCByZXF1ZXN0ICR7bmV4dFJlcXVlc3QuaWQo
KX0ke3NsYXZlTmFtZX0gaW4gJHtzeW5jZXIuYnVpbGRlck5hbWUoKX1gKTsKKyAgICAgICAgICAg
ICAgICB0aGlzLl9sb2dnZXIubG9nKGBTY2hlZHVsaW5nIGJ1aWxkIHJlcXVlc3QgJHtuZXh0UmVx
dWVzdC5pZCgpfSR7c2xhdmVOYW1lfSBpbiAke3N5bmNlci5idWlsZGVyTmFtZSgpfWApOwogICAg
ICAgICAgICAgICAgIHJldHVybiBwcm9taXNlOwogICAgICAgICAgICAgfQogICAgICAgICB9Cklu
ZGV4OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvcmVtb3RlLmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9yZW1vdGUuanMJKHJldmlz
aW9uIDE5OTI1MSkKKysrIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9yZW1vdGUu
anMJKHdvcmtpbmcgY29weSkKQEAgLTkzLDcgKzkzLDcgQEAgY2xhc3MgUmVtb3RlQVBJIHsKICAg
ICAgICAgICAgICAgICBwb3J0OiBzZXJ2ZXIucG9ydCwKICAgICAgICAgICAgICAgICBhdXRoOiBz
ZXJ2ZXIuYXV0aCA/IHNlcnZlci5hdXRoLnVzZXJuYW1lICsgJzonICsgc2VydmVyLmF1dGgucGFz
c3dvcmQgOiBudWxsLAogICAgICAgICAgICAgICAgIG1ldGhvZDogbWV0aG9kLAotICAgICAgICAg
ICAgICAgIHBhdGg6IGVzY2FwZShwYXRoKSwKKyAgICAgICAgICAgICAgICBwYXRoOiBwYXRoLAog
ICAgICAgICAgICAgfTsKIAogICAgICAgICAgICAgbGV0IHJlcXVlc3QgPSAoc2VydmVyLnNjaGVt
ZSA9PSAnaHR0cCcgPyBodHRwIDogaHR0cHMpLnJlcXVlc3Qob3B0aW9ucywgZnVuY3Rpb24gKHJl
c3BvbnNlKSB7CkluZGV4OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9idWls
ZGJvdC1zeW5jZXItdGVzdHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3VuaXQtdGVzdHMvYnVpbGRib3Qtc3luY2VyLXRlc3RzLmpzCShyZXZpc2lvbiAxOTkyNTAp
CisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9idWlsZGJvdC1zeW5jZXIt
dGVzdHMuanMJKHdvcmtpbmcgY29weSkKQEAgLTg1MCw3ICs4NTAsNyBAQCBkZXNjcmliZSgnQnVp
bGRib3RTeW5jZXInLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgc3luY2VyLnNjaGVk
dWxlRmlyc3RSZXF1ZXN0SW5Hcm91cElmQXZhaWxhYmxlKGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVz
dChNb2NrTW9kZWxzLnNvbWVQbGF0Zm9ybSwgTW9ja01vZGVscy5zb21lVGVzdCkpOwogICAgICAg
ICAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzWzBdLnVybCwgJy9idWlsZGVycy9zb21lIGJ1aWxkZXIvZm9yY2UnKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0udXJsLCAnL2J1aWxkZXJzL3NvbWUlMjBidWls
ZGVyL2ZvcmNlJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLm1l
dGhvZCwgJ1BPU1QnKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3Rz
WzBdLmRhdGEsIHtpZDogJzE2NzMzLScgKyBNb2NrTW9kZWxzLnNvbWVQbGF0Zm9ybS5pZCgpfSk7
CiAgICAgICAgICAgICAgICAgZG9uZSgpOwpAQCAtODY0LDcgKzg2NCw3IEBAIGRlc2NyaWJlKCdC
dWlsZGJvdFN5bmNlcicsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBzeW5jZXIuc2No
ZWR1bGVGaXJzdFJlcXVlc3RJbkdyb3VwSWZBdmFpbGFibGUoY3JlYXRlU2FtcGxlQnVpbGRSZXF1
ZXN0KE1vY2tNb2RlbHMuc29tZVBsYXRmb3JtLCBNb2NrTW9kZWxzLnNvbWVUZXN0KSk7CiAgICAg
ICAgICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHNbMF0udXJsLCAnL2J1aWxkZXJzL3NvbWUgYnVpbGRlci9mb3JjZScpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS51cmwsICcvYnVpbGRlcnMvc29tZSUyMGJ1
aWxkZXIvZm9yY2UnKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0u
bWV0aG9kLCAnUE9TVCcpOwogICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVz
dHNbMF0uZGF0YSwge2lkOiAnMTY3MzMtJyArIE1vY2tNb2RlbHMuc29tZVBsYXRmb3JtLmlkKCl9
KTsKICAgICAgICAgICAgICAgICBkb25lKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>276075</attachid>
            <date>2016-04-08 20:02:26 -0700</date>
            <delta_ts>2016-04-08 20:50:33 -0700</delta_ts>
            <desc>Fixed one more bug</desc>
            <filename>bug-156427-20160408200231.patch</filename>
            <type>text/plain</type>
            <size>35540</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkocmV2aXNpb24gMTk5MjU1KQorKysg
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDM5IEBACisyMDE2LTA0LTA4ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgor
CisgICAgICAgIEVzY2FwZSBidWlsZGVyIG5hbWVzIGluIHVybCogYW5kIHBhdGhGb3IqIG1ldGhv
ZHMgb2YgQnVpbGRib3RTeW5jZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE1NjQyNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRoZSBidWlsZCBmaXggaW4gcjE5OTI1MSBicmVha3Mgb3RoZXIgdXNhZ2Ug
b2YgUmVtb3RlQVBJLiBGaXggaXQgcHJvcGVybHkgYnkgZXNjYXBpbmcgYnVpbGRlciBuYW1lcyBp
bgorICAgICAgICB2YXJpb3VzIG1ldGhvZHMgb2YgQnVpbGRib3RTeW5jZXIuCisKKyAgICAgICAg
QWxzbyBmaXhlZCBhIHR5cG8gaW4gdGhlIGxvZ2dpbmcgYW5kIGEgYnVnIHRoYXQgdGhlIG5ldyBz
eW5jaW5nIHNjcmlwdCBuZXZlciB1cGRhdGVkICJzY2hlZHVsZWQiIHRvICJydW5uaW5nIi4KKwor
ICAgICAgICAqIHNlcnZlci10ZXN0cy9yZXNvdXJjZXMvbW9jay1kYXRhLmpzOgorICAgICAgICAo
TW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFR3b0J1aWxkZXJzKTogUmVuYW1lZCAic29t
ZS1idWlsZGVyLTIiIHRvICJzb21lIGJ1aWxkZXIgMiIgdG8gdGVzdCB0aGUKKyAgICAgICAgbmV3
IGVzY2FwaW5nIGJlaGF2aW9yIGluIHRvb2xzLWJ1aWxkYm90LXRyaWdnZXJhYmxlLXRlc3RzLmpz
IGFuZCBidWlsZGJvdC1zeW5jZXItdGVzdHMuanMuCisKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMv
dG9vbHMtYnVpbGRib3QtdHJpZ2dlcmFibGUtdGVzdHMuanM6IEFkZGVkIHRlc3RzIGZvciBzdGF0
dXMgdXJsLCBhbmQgYWRkZWQgYSBuZXcgdGVzdCBjYXNlCisgICAgICAgIGZvciB1cGRhdGluZyAi
c2NoZWR1bGVkIiB0byAicnVubmluZyIuCisKKyAgICAgICAgKiB0b29scy9qcy9idWlsZGJvdC1z
eW5jZXIuanM6CisgICAgICAgIChCdWlsZGJvdEJ1aWxkRW50cnkuYnVpbGRSZXF1ZXN0U3RhdHVz
SWZVcGRhdGVJc05lZWRlZCk6IFVwZGF0ZSB0aGUgc3RhdHVzIHRvICJydW5uaW5nIiB3aGVuIHRo
ZSByZXF1ZXN0J3MKKyAgICAgICAgc3RhdHVzIGlzICJzY2hlZHVsZWQiIGFuZCB0aGUgYnVpbGRi
b3QncyBidWlsZCBpcyBjdXJyZW50bHkgaW4gcHJvZ3Jlc3MuCisgICAgICAgIChCdWlsZGJvdFN5
bmNlci5wcm90b3R5cGUucGF0aEZvclBlbmRpbmdCdWlsZHNKU09OKTogRXNjYXBlIHRoZSBidWls
ZGVyIG5hbWUuCisgICAgICAgIChCdWlsZGJvdFN5bmNlci5wcm90b3R5cGUucGF0aEZvckJ1aWxk
SlNPTik6IERpdHRvLgorICAgICAgICAoQnVpbGRib3RTeW5jZXIucHJvdG90eXBlLnBhdGhGb3JG
b3JjZUJ1aWxkKTogRGl0dG8uCisgICAgICAgIChCdWlsZGJvdFN5bmNlci5wcm90b3R5cGUudXJs
KTogRGl0dG8uCisgICAgICAgIChCdWlsZGJvdFN5bmNlci5wcm90b3R5cGUudXJsRm9yQnVpbGRO
dW1iZXIpOiBEaXR0by4KKworICAgICAgICAqIHRvb2xzL2pzL2J1aWxkYm90LXRyaWdnZXJhYmxl
LmpzOgorICAgICAgICAoQnVpbGRib3RUcmlnZ2VyYWJsZS5wcm90b3R5cGUuX3B1bGxCdWlsZGJv
dE9uQWxsU3luY2Vycyk6CisgICAgICAgIChCdWlsZGJvdFRyaWdnZXJhYmxlLnByb3RvdHlwZS5f
c2NoZWR1bGVOZXh0UmVxdWVzdEluR3JvdXBJZlNsYXZlSXNBdmFpbGFibGUpOiBGaXhlZCBhIHR5
cG8uIFdlIGFyZQorICAgICAgICBzY2hlZHVsaW5nIG5ldyBidWlsZCByZXF1ZXN0cywgbm90IHN5
bmNpbmcgdGhlbS4KKyAgICAgICAgKiB0b29scy9qcy9yZW1vdGUuanM6CisgICAgICAgIChSZW1v
dGVBUEkuc2VuZEh0dHBSZXF1ZXN0KTogUmV2ZXJ0ZWQgcjE5OTI1MS4KKyAgICAgICAgKiB1bml0
LXRlc3RzL2J1aWxkYm90LXN5bmNlci10ZXN0cy5qczoKKwogMjAxNi0wNC0wOCAgUnlvc3VrZSBO
aXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBCdWlsZCBmaXguIFdlIG5lZWQgdG8g
ZXNjYXBlIHRoZSBwYXRoIG9yIGh0dHAucmVxdWVzdCB3b3VsZCBmYWlsLgpJbmRleDogV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29scy1idWlsZGJvdC10cmlnZ2VyYWJs
ZS10ZXN0cy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVy
LXRlc3RzL3Rvb2xzLWJ1aWxkYm90LXRyaWdnZXJhYmxlLXRlc3RzLmpzCShyZXZpc2lvbiAxOTky
NTApCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLWJ1aWxk
Ym90LXRyaWdnZXJhYmxlLXRlc3RzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xNTgsNyArMTU4LDcg
QEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbgogICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgJy9qc29uL2J1
aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKICAgICAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoW01vY2tEYXRhLnBlbmRpbmdCdWlsZCh7
YnVpbGRSZXF1ZXN0SWQ6IDk5OX0pXSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCAnL2pzb24vYnVpbGRl
cnMvc29tZS1idWlsZGVyLTIvcGVuZGluZ0J1aWxkcycpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgJy9qc29uL2J1aWxkZXJzL3Nv
bWUlMjBidWlsZGVyJTIwMi9wZW5kaW5nQnVpbGRzJyk7CiAgICAgICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKFtdKTsKICAgICAgICAgICAgICAgICByZXR1cm4g
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbihmdW5j
dGlvbiAoKSB7CkBAIC0xNjcsMTMgKzE2NywxMyBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2Vy
YWJsZScsIGZ1bmN0aW9uCiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMl0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRz
Lz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsICcvanNvbi9idWlsZGVy
cy9zb21lLWJ1aWxkZXItMi9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsICcvanNv
bi9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0y
Jyk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZlKHt9
KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgp
OwogICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA1KTsKICAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5tZXRob2QsICdQT1NU
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
NF0udXJsLCAnL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0yL2ZvcmNlJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0udXJsLCAnL2J1aWxkZXJz
L3NvbWUlMjBidWlsZGVyJTIwMi9mb3JjZScpOwogICAgICAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5kYXRhLCB7J3drJzogJzE5MTYyMicsICdv
cyc6ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3MDAnfSk7CiAgICAgICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5yZXNvbHZlKCdPSycpOwogICAgICAg
ICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CkBAIC0xODMs
OCArMTgzLDggQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbgogICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnVybCwg
Jy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKICAgICAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnJlc29sdmUoW01vY2tEYXRhLnBlbmRp
bmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDk5OX0pXSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0udXJsLCAnL2pz
b24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTIvcGVuZGluZ0J1aWxkcycpOwotICAgICAgICAgICAg
ICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0ucmVzb2x2ZShbTW9ja0RhdGEucGVuZGluZ0J1
aWxkKHtidWlsZGVyOiAnc29tZS1idWlsZGVyLTInLCBidWlsZFJlcXVlc3RJZDogNzAwfSldKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS51
cmwsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvcGVuZGluZ0J1aWxkcycpOwor
ICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0ucmVzb2x2ZShbTW9ja0Rh
dGEucGVuZGluZ0J1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyIDInLCBidWlsZFJlcXVlc3RJ
ZDogNzAwfSldKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9y
UmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA5KTsKQEAg
LTE5MiwyMiArMTkyLDMwIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rp
b24KICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3
XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZz
ZWxlY3Q9LTInKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnJl
c29sdmUoe30pOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzhdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRl
ci0yL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnVybCwgJy9qc29uL2J1aWxkZXJzL3Nv
bWUlMjBidWlsZGVyJTIwMi9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKICAgICAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnJlc29sdmUoe30pOwogICAgICAgICAg
ICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVu
Z3RoLCA0KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMCkuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVz
KCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIp
LnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBu
dWxsKTsKICAgICAgICAgICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dl
cmFibGUoTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFR3b0J1aWxkZXJzKCkudHJpZ2dl
cmFibGVOYW1lKTsKICAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgewogICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVz
KCksICdzY2hlZHVsZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9i
dWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0
dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7
CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMp
LnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICAg
ICAgZG9uZSgpOwogICAgICAgICAgICAgfSkuY2F0Y2goZG9uZSk7CiAgICAgICAgIH0pOwpAQCAt
MjMzLDcgKzI0MSw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24K
ICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51
cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7CiAgICAg
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKFtNb2NrRGF0YS5w
ZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDB9KV0pOwogICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwg
Jy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0yL3BlbmRpbmdCdWlsZHMnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsICcvanNv
bi9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvcGVuZGluZ0J1aWxkcycpOwogICAgICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZShbXSk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAg
IH0pLnRoZW4oZnVuY3Rpb24gKCkgewpAQCAtMjQyLDcgKzI1MCw3IEBAIGRlc2NyaWJlKCdCdWls
ZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24KICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxk
ZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKICAgICAgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgJy9q
c29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0yL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicp
OworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNd
LnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9idWlsZHMvP3NlbGVjdD0t
MSZzZWxlY3Q9LTInKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNd
LnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKQEAgLTI1MSw3
ICsyNTksNyBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uCiAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0udXJsLCAn
L2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxkcycpOwogICAgICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ucmVzb2x2ZShbTW9ja0RhdGEucGVuZGlu
Z0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAwfSldKTsKICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS51cmwsICcvanNv
bi9idWlsZGVycy9zb21lLWJ1aWxkZXItMi9wZW5kaW5nQnVpbGRzJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0udXJsLCAnL2pzb24vYnVp
bGRlcnMvc29tZSUyMGJ1aWxkZXIlMjAyL3BlbmRpbmdCdWlsZHMnKTsKICAgICAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnJlc29sdmUoW10pOwogICAgICAgICAgICAgICAg
IHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50
aGVuKGZ1bmN0aW9uICgpIHsKQEAgLTI2MCwyMiArMjY4LDMwIEBAIGRlc2NyaWJlKCdCdWlsZGJv
dFRyaWdnZXJhYmxlJywgZnVuY3Rpb24KICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXIt
MS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKICAgICAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzZdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnVybCwgJy9qc29u
L2J1aWxkZXJzL3NvbWUtYnVpbGRlci0yL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnVy
bCwgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9idWlsZHMvP3NlbGVjdD0tMSZz
ZWxlY3Q9LTInKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnJl
c29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAg
ICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1
c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBudWxsKTsK
ICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMiku
c3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5k
aW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgICAgICByZXR1cm4gQnVpbGRS
ZXF1ZXN0LmZldGNoRm9yVHJpZ2dlcmFibGUoTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0
aFR3b0J1aWxkZXJzKCkudHJpZ2dlcmFibGVOYW1lKTsKICAgICAgICAgICAgIH0pLnRoZW4oZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxs
KCkubGVuZ3RoLCA0KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdzY2hlZHVsZWQnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksICdodHRw
Oi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9zb21lLWJ1aWxkZXItMS8nKTsKICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCks
ICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0
YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxs
KTsKICAgICAgICAgICAgICAgICBkb25lKCk7CiAgICAgICAgICAgICB9KS5jYXRjaChkb25lKTsK
ICAgICAgICAgfSk7CkBAIC0zMDEsNyArMzE3LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dl
cmFibGUnLCBmdW5jdGlvbgogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzBdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRp
bmdCdWlsZHMnKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJl
c29sdmUoW10pOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRl
ci0yL3BlbmRpbmdCdWlsZHMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlciUy
MDIvcGVuZGluZ0J1aWxkcycpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMV0ucmVzb2x2ZShbXSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEku
d2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgewpAQCAt
MzEwLDcgKzMyNiw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24K
ICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51
cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxl
Y3Q9LTInKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29s
dmUoe1stMV06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMX0pLCBb
LTJdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAwfSl9KTsKICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRo
b2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1szXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMi9idWlsZHMvP3Nl
bGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlciUy
MDIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7CiAgICAgICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4g
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbihmdW5j
dGlvbiAoKSB7CkBAIC0zMjYsNyArMzQyLDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFi
bGUnLCBmdW5jdGlvbgogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzVdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdC
dWlsZHMnKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnJlc29s
dmUoW01vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMn0pXSk7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0ubWV0aG9k
LCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbNl0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTIvcGVuZGluZ0J1aWxk
cycpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzZdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9wZW5kaW5nQnVpbGRz
Jyk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5yZXNvbHZlKFtd
KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgp
OwogICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7CkBAIC0zMzUsMjIgKzM1MSw5NCBA
QCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uCiAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10udXJsLCAnL2pzb24vYnVp
bGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7CiAgICAg
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5yZXNvbHZlKHtbLTFdOiBNb2Nr
RGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDF9KSwgWy0yXTogTW9ja0RhdGEu
ZmluaXNoZWRCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pfSk7CiAgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0ubWV0aG9kLCAnR0VUJyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0udXJs
LCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0
PS0yJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbOF0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIlMjAyL2J1aWxkcy8/c2Vs
ZWN0PS0xJnNlbGVjdD0tMicpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbOF0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwog
ICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwogICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3BlbmRpbmcn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
MCkuc3RhdHVzVXJsKCksIG51bGwpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCks
IG51bGwpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOwogICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMo
KSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOwogICAgICAgICAgICAgICAgIHJldHVy
biBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZShNb2NrRGF0YS5tb2NrVGVzdFN5bmND
b25maWdXaXRoVHdvQnVpbGRlcnMoKS50cmlnZ2VyYWJsZU5hbWUpOwogICAgICAgICAgICAgfSku
dGhlbihmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVx
dWVzdC5hbGwoKS5sZW5ndGgsIDQpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ2ZhaWxlZCcpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwg
J2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8x
MjMnKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMSkuc3RhdHVzKCksICdydW5uaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndl
YmtpdC5vcmcvYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLzEyNCcpOwogICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwg
J3NjaGVkdWxlZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxk
ZXJzL3NvbWUtYnVpbGRlci0xLycpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJsKCks
IG51bGwpOworICAgICAgICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAgICAgIH0pLmNhdGNoKGRv
bmUpOworICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIHVwZGF0ZSB0aGUgc3RhdHVz
IG9mIGEgc2NoZWR1bGVkIGJ1aWxkIGlmIHRoZSBwZW5kaW5nIGJ1aWxkIGhhZCBzdGFydGVkIHJ1
bm5pbmcnLCBmdW5jdGlvbiAoZG9uZSkgeworICAgICAgICAgICAgbGV0IGRiID0gVGVzdFNlcnZl
ci5kYXRhYmFzZSgpOworICAgICAgICAgICAgbGV0IHN5bmNQcm9taXNlOworICAgICAgICAgICAg
ZGIuY29ubmVjdCgpLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIHJldHVybiBN
b2NrRGF0YS5hZGRNb2NrRGF0YShkYiwgWydzY2hlZHVsZWQnLCAncGVuZGluZycsICdwZW5kaW5n
JywgJ3BlbmRpbmcnXSk7CisgICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAg
ICAgICAgICAgICByZXR1cm4gTWFuaWZlc3QuZmV0Y2goKTsKKyAgICAgICAgICAgIH0pLnRoZW4o
ZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIGxldCBjb25maWcgPSBNb2NrRGF0YS5tb2Nr
VGVzdFN5bmNDb25maWdXaXRoU2luZ2xlQnVpbGRlcigpOworICAgICAgICAgICAgICAgIGxldCBs
b2dnZXIgPSBuZXcgTW9ja0xvZ2dlcjsKKyAgICAgICAgICAgICAgICBsZXQgc2xhdmVJbmZvID0g
e25hbWU6ICdzeW5jLXNsYXZlJywgcGFzc3dvcmQ6ICdwYXNzd29yZCd9OworICAgICAgICAgICAg
ICAgIGxldCB0cmlnZ2VyYWJsZSA9IG5ldyBCdWlsZGJvdFRyaWdnZXJhYmxlKGNvbmZpZywgVGVz
dFNlcnZlci5yZW1vdGVBUEkoKSwgTW9ja1JlbW90ZUFQSSwgc2xhdmVJbmZvLCBsb2dnZXIpOwor
ICAgICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuc3luY09uY2UoKTsKKyAg
ICAgICAgICAgICAgICBzeW5jUHJvbWlzZS5jYXRjaChkb25lKTsKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOworICAgICAgICAgICAgfSkudGhl
bihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsICcvanNvbi9idWlsZGVy
cy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7CisgICAgICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKFtNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxk
UmVxdWVzdElkOiA3MDB9KV0pOworICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJ
LndhaXRGb3JSZXF1ZXN0KCk7CisgICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgs
IDIpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1
aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tS
ZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKKyAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24g
KCkgeworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
Lmxlbmd0aCwgMyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWls
ZGVyLTEvcGVuZGluZ0J1aWxkcycpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMl0ucmVzb2x2ZShbXSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKKyAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgewor
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0
aCwgNCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbM10ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEv
YnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZlKHtbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1
aWxkUmVxdWVzdElkOiA3MDB9KX0pOworICAgICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlz
ZTsKKyAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdzY2hl
ZHVsZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMCkuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVz
VXJsKCksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5z
dGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgICAg
IHJldHVybiBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZShNb2NrRGF0YS5tb2NrVGVz
dFN5bmNDb25maWdXaXRoVHdvQnVpbGRlcnMoKS50cmlnZ2VyYWJsZU5hbWUpOworICAgICAgICAg
ICAgfSkudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1
aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVz
VXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9i
dWlsZHMvMTI0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0
YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGlu
ZycpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICAgICAgZG9uZSgpOwogICAgICAg
ICAgICAgfSkuY2F0Y2goZG9uZSk7CiAgICAgICAgIH0pOwpAQCAtMzc5LDcgKzQ2Nyw3IEBAIGRl
c2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24KICAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsICcvanNvbi9idWlsZGVy
cy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7CiAgICAgICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKFtNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxk
UmVxdWVzdElkOiA3MDJ9KV0pOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgJy9qc29uL2J1aWxkZXJzL3Nv
bWUtYnVpbGRlci0yL3BlbmRpbmdCdWlsZHMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lJTIw
YnVpbGRlciUyMDIvcGVuZGluZ0J1aWxkcycpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMV0ucmVzb2x2ZShbXSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tS
ZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24g
KCkgewpAQCAtMzg4LDEzICs0NzYsMTMgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUn
LCBmdW5jdGlvbgogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzJdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2Vs
ZWN0PS0xJnNlbGVjdD0tMicpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMl0ucmVzb2x2ZSh7Wy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZFJlcXVlc3RJ
ZDogNzAxfSksIFstMl06IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3
MDB9KX0pOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzNdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0y
L2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOworICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUl
MjBidWlsZGVyJTIwMi9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKICAgICAgICAgICAg
ICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnJlc29sdmUoe30pOwogICAgICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9
KS50aGVuKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDUpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLm1ldGhvZCwgJ1BPU1QnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsICcvYnVpbGRl
cnMvc29tZS1idWlsZGVyLTIvZm9yY2UnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsICcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIl
MjAyL2ZvcmNlJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzRdLmRhdGEsIHsnd2snOiAnMTkxNjIyJywgJ29zJzogJzEwLjExIDE1QTI4
NCcsICdidWlsZC1yZXF1ZXN0LWlkJzogJzcxMCd9KTsKICAgICAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzRdLnJlc29sdmUoJ09LJyk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKQEAgLTQwNCw4ICs0OTIsOCBAQCBkZXNj
cmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uCiAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0udXJsLCAnL2pzb24vYnVpbGRlcnMv
c29tZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxkcycpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbNV0ucmVzb2x2ZShbTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZFJl
cXVlc3RJZDogNzAyfSldKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1s2XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS51cmwsICcvanNvbi9idWlsZGVycy9zb21l
LWJ1aWxkZXItMi9wZW5kaW5nQnVpbGRzJyk7Ci0gICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1s2XS5yZXNvbHZlKFtNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkZXI6ICdz
b21lLWJ1aWxkZXItMicsIGJ1aWxkUmVxdWVzdElkOiA3MTB9KV0pOworICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnVybCwgJy9qc29uL2J1aWxk
ZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9wZW5kaW5nQnVpbGRzJyk7CisgICAgICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5yZXNvbHZlKFtNb2NrRGF0YS5wZW5kaW5nQnVpbGQo
e2J1aWxkZXI6ICdzb21lIGJ1aWxkZXIgMicsIGJ1aWxkUmVxdWVzdElkOiA3MTB9KV0pOwogICAg
ICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAg
ICAgICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDkpOwpAQCAtNDEzLDMwICs1MDEsNDYg
QEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbgogICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnVybCwgJy9qc29uL2J1
aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOwogICAg
ICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10ucmVzb2x2ZSh7Wy0xXTogTW9j
a0RhdGEucnVubmluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAxfSksIFstMl06IE1vY2tEYXRh
LmZpbmlzaGVkQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDB9KX0pOwogICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLm1ldGhvZCwgJ0dFVCcpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnVy
bCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0yL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVj
dD0tMicpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzhdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9idWlsZHMvP3Nl
bGVjdD0tMSZzZWxlY3Q9LTInKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzhdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsK
ICAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKICAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdjb21wbGV0
ZWQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMCkuc3RhdHVzVXJsKCksIG51bGwpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJs
KCksIG51bGwpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51bGwpOwogICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0
dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOwogICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEwKS5zdGF0dXMoKSwgJ3BlbmRpbmcn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcx
MCkuc3RhdHVzVXJsKCksIG51bGwpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzExKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMSkuc3RhdHVzVXJsKCks
IG51bGwpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzEyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3RhdHVzVXJsKCksIG51bGwpOwogICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEzKS5zdGF0dXMo
KSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcxMykuc3RhdHVzVXJsKCksIG51bGwpOwogICAgICAgICAgICAgICAgIHJldHVy
biBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZShNb2NrRGF0YS5tb2NrVGVzdFN5bmND
b25maWdXaXRoVHdvQnVpbGRlcnMoKS50cmlnZ2VyYWJsZU5hbWUpOwogICAgICAgICAgICAgfSku
dGhlbihmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVx
dWVzdC5hbGwoKS5sZW5ndGgsIDgpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwo
KSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxk
cy8xMjMnKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMSkuc3RhdHVzKCksICdydW5uaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxk
LndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLzEyNCcpOwogICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMo
KSwgJ3NjaGVkdWxlZCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1
aWxkZXJzL3NvbWUtYnVpbGRlci0xLycpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJs
KCksIG51bGwpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzEwKS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEwKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9i
dWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi8nKTsKICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMSkuc3RhdHVzKCks
ICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MTEpLnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3RhdHVzKCksICdwZW5kaW5nJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTIpLnN0
YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcxMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTMpLnN0YXR1c1VybCgpLCBudWxs
KTsKICAgICAgICAgICAgICAgICBkb25lKCk7CiAgICAgICAgICAgICB9KS5jYXRjaChkb25lKTsK
ICAgICAgICAgfSk7CkluZGV4OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3Rz
L3Jlc291cmNlcy9tb2NrLWRhdGEuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvbW9jay1kYXRhLmpzCShyZXZpc2lvbiAxOTky
NTApCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jlc291cmNlcy9t
b2NrLWRhdGEuanMJKHdvcmtpbmcgY29weSkKQEAgLTk2LDcgKzk2LDcgQEAgTW9ja0RhdGEgPSB7
CiAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAncGxhdGZvcm0nOiAnc29t
ZSBwbGF0Zm9ybScsCiAgICAgICAgICAgICAgICAgICAgICd0ZXN0JzogWydzb21lIHRlc3QnXSwK
LSAgICAgICAgICAgICAgICAgICAgJ2J1aWxkZXInOiAnc29tZS1idWlsZGVyLTInLAorICAgICAg
ICAgICAgICAgICAgICAnYnVpbGRlcic6ICdzb21lIGJ1aWxkZXIgMicsCiAgICAgICAgICAgICAg
ICAgICAgICdhcmd1bWVudHMnOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAnd2snOiB7J3Jv
b3QnOiAnV2ViS2l0J30sCiAgICAgICAgICAgICAgICAgICAgICAgICAnb3MnOiB7J3Jvb3QnOiAn
T1MgWCd9LApJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90
LXN5bmNlci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMv
anMvYnVpbGRib3Qtc3luY2VyLmpzCShyZXZpc2lvbiAxOTkyNTApCisrKyBXZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3Qtc3luY2VyLmpzCSh3b3JraW5nIGNvcHkpCkBA
IC00NCw3ICs0NCw3IEBAIGNsYXNzIEJ1aWxkYm90QnVpbGRFbnRyeSB7CiAgICAgICAgICAgICBp
ZiAocmVxdWVzdC5pc1BlbmRpbmcoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gJ3NjaGVkdWxl
ZCc7CiAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc0luUHJvZ3Jlc3MoKSkgewotICAgICAgICAg
ICAgaWYgKCFyZXF1ZXN0Lmhhc1N0YXJ0ZWQoKSkKKyAgICAgICAgICAgIGlmICghcmVxdWVzdC5o
YXNTdGFydGVkKCkgfHwgcmVxdWVzdC5pc1NjaGVkdWxlZCgpKQogICAgICAgICAgICAgICAgIHJl
dHVybiAncnVubmluZyc7CiAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5oYXNGaW5pc2hlZCgpKSB7
CiAgICAgICAgICAgICBpZiAoIXJlcXVlc3QuaGFzRmluaXNoZWQoKSkKQEAgLTE3OSwxNiArMTc5
LDE2IEBAIGNsYXNzIEJ1aWxkYm90U3luY2VyIHsKICAgICAgICAgfSk7CiAgICAgfQogCi0gICAg
cGF0aEZvclBlbmRpbmdCdWlsZHNKU09OKCkgeyByZXR1cm4gYC9qc29uL2J1aWxkZXJzLyR7dGhp
cy5fYnVpbGRlck5hbWV9L3BlbmRpbmdCdWlsZHNgOyB9CisgICAgcGF0aEZvclBlbmRpbmdCdWls
ZHNKU09OKCkgeyByZXR1cm4gYC9qc29uL2J1aWxkZXJzLyR7ZXNjYXBlKHRoaXMuX2J1aWxkZXJO
YW1lKX0vcGVuZGluZ0J1aWxkc2A7IH0KICAgICBwYXRoRm9yQnVpbGRKU09OKHNlbGVjdGVkQnVp
bGRzKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGAvanNvbi9idWlsZGVycy8ke3RoaXMuX2J1aWxk
ZXJOYW1lfS9idWlsZHMvP2AKKyAgICAgICAgcmV0dXJuIGAvanNvbi9idWlsZGVycy8ke2VzY2Fw
ZSh0aGlzLl9idWlsZGVyTmFtZSl9L2J1aWxkcy8/YAogICAgICAgICAgICAgKyBzZWxlY3RlZEJ1
aWxkcy5tYXAoZnVuY3Rpb24gKG51bWJlcikgeyByZXR1cm4gJ3NlbGVjdD0nICsgbnVtYmVyOyB9
KS5qb2luKCcmJyk7CiAgICAgfQotICAgIHBhdGhGb3JGb3JjZUJ1aWxkKCkgeyByZXR1cm4gYC9i
dWlsZGVycy8ke3RoaXMuX2J1aWxkZXJOYW1lfS9mb3JjZWA7IH0KKyAgICBwYXRoRm9yRm9yY2VC
dWlsZCgpIHsgcmV0dXJuIGAvYnVpbGRlcnMvJHtlc2NhcGUodGhpcy5fYnVpbGRlck5hbWUpfS9m
b3JjZWA7IH0KIAotICAgIHVybCgpIHsgcmV0dXJuIHRoaXMuX3JlbW90ZS51cmwoYC9idWlsZGVy
cy8ke3RoaXMuX2J1aWxkZXJOYW1lfS9gKTsgfQotICAgIHVybEZvckJ1aWxkTnVtYmVyKG51bWJl
cikgeyByZXR1cm4gdGhpcy5fcmVtb3RlLnVybChgL2J1aWxkZXJzLyR7dGhpcy5fYnVpbGRlck5h
bWV9L2J1aWxkcy8ke251bWJlcn1gKTsgfQorICAgIHVybCgpIHsgcmV0dXJuIHRoaXMuX3JlbW90
ZS51cmwoYC9idWlsZGVycy8ke2VzY2FwZSh0aGlzLl9idWlsZGVyTmFtZSl9L2ApOyB9CisgICAg
dXJsRm9yQnVpbGROdW1iZXIobnVtYmVyKSB7IHJldHVybiB0aGlzLl9yZW1vdGUudXJsKGAvYnVp
bGRlcnMvJHtlc2NhcGUodGhpcy5fYnVpbGRlck5hbWUpfS9idWlsZHMvJHtudW1iZXJ9YCk7IH0K
IAogICAgIF9wcm9wZXJ0aWVzRm9yQnVpbGRSZXF1ZXN0KGJ1aWxkUmVxdWVzdCkKICAgICB7Cklu
ZGV4OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3QtdHJpZ2dlcmFi
bGUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1
aWxkYm90LXRyaWdnZXJhYmxlLmpzCShyZXZpc2lvbiAxOTkyNTApCisrKyBXZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3QtdHJpZ2dlcmFibGUuanMJKHdvcmtpbmcgY29w
eSkKQEAgLTEwMiwxMiArMTAyLDE2IEBAIGNsYXNzIEJ1aWxkYm90VHJpZ2dlcmFibGUgewogICAg
ICAgICAgICAgICAgICAgICBpZiAobmV3U3RhdHVzKSB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICBzZWxmLl9sb2dnZXIubG9nKGBVcGRhdGluZyB0aGUgc3RhdHVzIG9mIGJ1aWxkIHJlcXVlc3Qg
JHtyZXF1ZXN0LmlkKCl9IGZyb20gJHtyZXF1ZXN0LnN0YXR1cygpfSB0byAke25ld1N0YXR1c31g
KTsKICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZXNbZW50cnkuYnVpbGRSZXF1ZXN0SWQo
KV0gPSB7c3RhdHVzOiBuZXdTdGF0dXMsIHVybDogZW50cnkudXJsKCl9OworICAgICAgICAgICAg
ICAgICAgICB9IGVsc2UgaWYgKCFyZXF1ZXN0LnN0YXR1c1VybCgpKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBzZWxmLl9sb2dnZXIubG9nKGBTZXR0aW5nIHRoZSBzdGF0dXMgVVJMIG9mIGJ1
aWxkIHJlcXVlc3QgJHtyZXF1ZXN0LmlkKCl9IHRvICR7ZW50cnkudXJsKCl9YCk7CisgICAgICAg
ICAgICAgICAgICAgICAgICB1cGRhdGVzW2VudHJ5LmJ1aWxkUmVxdWVzdElkKCldID0ge3N0YXR1
czogcmVxdWVzdC5zdGF0dXMoKSwgdXJsOiBlbnRyeS51cmwoKX07CiAgICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSkpLnRo
ZW4oZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgZm9yIChsZXQgcmVxdWVzdCBvZiBCdWlsZFJl
cXVlc3QuYWxsKCkpIHsKICAgICAgICAgICAgICAgICBpZiAocmVxdWVzdC5oYXNTdGFydGVkKCkg
JiYgIXJlcXVlc3QuaGFzRmluaXNoZWQoKSAmJiAhYXNzb2NpYXRlZFJlcXVlc3RzLmhhcyhyZXF1
ZXN0KSkgeworICAgICAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIubG9nKGBVcGRhdGluZyB0
aGUgc3RhdHVzIG9mIGJ1aWxkIHJlcXVlc3QgJHtyZXF1ZXN0LmlkKCl9IGZyb20gJHtyZXF1ZXN0
LnN0YXR1cygpfSB0byBmYWlsZWRJZk5vdENvbXBsZXRlZGApOwogICAgICAgICAgICAgICAgICAg
ICBhc3NlcnQoIShyZXF1ZXN0LmlkKCkgaW4gdXBkYXRlcykpOwogICAgICAgICAgICAgICAgICAg
ICB1cGRhdGVzW3JlcXVlc3QuaWQoKV0gPSB7c3RhdHVzOiAnZmFpbGVkSWZOb3RDb21wbGV0ZWQn
fTsKICAgICAgICAgICAgICAgICB9CkBAIC0xMzIsNyArMTM2LDcgQEAgY2xhc3MgQnVpbGRib3RU
cmlnZ2VyYWJsZSB7CiAKICAgICAgICAgbGV0IGZpcnN0UmVxdWVzdCA9ICFuZXh0UmVxdWVzdC5v
cmRlcigpOwogICAgICAgICBpZiAoZmlyc3RSZXF1ZXN0KSB7Ci0gICAgICAgICAgICB0aGlzLl9s
b2dnZXIubG9nKGBTeW5jaW5nIGJ1aWxkIHJlcXVlc3QgJHtuZXh0UmVxdWVzdC5pZCgpfSBvbiAk
e2dyb3VwSW5mby5zbGF2ZU5hbWV9IGluICR7Z3JvdXBJbmZvLnN5bmNlci5idWlsZGVyTmFtZSgp
fWApOworICAgICAgICAgICAgdGhpcy5fbG9nZ2VyLmxvZyhgU2NoZWR1bGluZyBidWlsZCByZXF1
ZXN0ICR7bmV4dFJlcXVlc3QuaWQoKX0gb24gJHtncm91cEluZm8uc2xhdmVOYW1lfSBpbiAke2dy
b3VwSW5mby5zeW5jZXIuYnVpbGRlck5hbWUoKX1gKTsKICAgICAgICAgICAgIHJldHVybiBncm91
cEluZm8uc3luY2VyLnNjaGVkdWxlUmVxdWVzdChyZXF1ZXN0LCBncm91cEluZm8uc2xhdmVOYW1l
KTsKICAgICAgICAgfQogCkBAIC0xNDAsNyArMTQ0LDcgQEAgY2xhc3MgQnVpbGRib3RUcmlnZ2Vy
YWJsZSB7CiAgICAgICAgICAgICBsZXQgcHJvbWlzZSA9IHN5bmNlci5zY2hlZHVsZUZpcnN0UmVx
dWVzdEluR3JvdXBJZkF2YWlsYWJsZShuZXh0UmVxdWVzdCk7CiAgICAgICAgICAgICBpZiAocHJv
bWlzZSkgewogICAgICAgICAgICAgICAgIGxldCBzbGF2ZU5hbWUgPSBncm91cEluZm8uc2xhdmVO
YW1lID8gYCBvbiAke2dyb3VwSW5mby5zbGF2ZU5hbWV9YCA6ICcnOwotICAgICAgICAgICAgICAg
IHRoaXMuX2xvZ2dlci5sb2coYFN5bmNpbmcgYnVpbGQgcmVxdWVzdCAke25leHRSZXF1ZXN0Lmlk
KCl9JHtzbGF2ZU5hbWV9IGluICR7c3luY2VyLmJ1aWxkZXJOYW1lKCl9YCk7CisgICAgICAgICAg
ICAgICAgdGhpcy5fbG9nZ2VyLmxvZyhgU2NoZWR1bGluZyBidWlsZCByZXF1ZXN0ICR7bmV4dFJl
cXVlc3QuaWQoKX0ke3NsYXZlTmFtZX0gaW4gJHtzeW5jZXIuYnVpbGRlck5hbWUoKX1gKTsKICAg
ICAgICAgICAgICAgICByZXR1cm4gcHJvbWlzZTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpJ
bmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL3JlbW90ZS5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvcmVtb3RlLmpzCShyZXZp
c2lvbiAxOTkyNTEpCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvcmVtb3Rl
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC05Myw3ICs5Myw3IEBAIGNsYXNzIFJlbW90ZUFQSSB7CiAg
ICAgICAgICAgICAgICAgcG9ydDogc2VydmVyLnBvcnQsCiAgICAgICAgICAgICAgICAgYXV0aDog
c2VydmVyLmF1dGggPyBzZXJ2ZXIuYXV0aC51c2VybmFtZSArICc6JyArIHNlcnZlci5hdXRoLnBh
c3N3b3JkIDogbnVsbCwKICAgICAgICAgICAgICAgICBtZXRob2Q6IG1ldGhvZCwKLSAgICAgICAg
ICAgICAgICBwYXRoOiBlc2NhcGUocGF0aCksCisgICAgICAgICAgICAgICAgcGF0aDogcGF0aCwK
ICAgICAgICAgICAgIH07CiAKICAgICAgICAgICAgIGxldCByZXF1ZXN0ID0gKHNlcnZlci5zY2hl
bWUgPT0gJ2h0dHAnID8gaHR0cCA6IGh0dHBzKS5yZXF1ZXN0KG9wdGlvbnMsIGZ1bmN0aW9uIChy
ZXNwb25zZSkgewpJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvYnVp
bGRib3Qtc3luY2VyLXRlc3RzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy91bml0LXRlc3RzL2J1aWxkYm90LXN5bmNlci10ZXN0cy5qcwkocmV2aXNpb24gMTk5MjUw
KQorKysgV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvYnVpbGRib3Qtc3luY2Vy
LXRlc3RzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC04NTAsNyArODUwLDcgQEAgZGVzY3JpYmUoJ0J1
aWxkYm90U3luY2VyJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIHN5bmNlci5zY2hl
ZHVsZUZpcnN0UmVxdWVzdEluR3JvdXBJZkF2YWlsYWJsZShjcmVhdGVTYW1wbGVCdWlsZFJlcXVl
c3QoTW9ja01vZGVscy5zb21lUGxhdGZvcm0sIE1vY2tNb2RlbHMuc29tZVRlc3QpKTsKICAgICAg
ICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0c1swXS51cmwsICcvYnVpbGRlcnMvc29tZSBidWlsZGVyL2ZvcmNlJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLnVybCwgJy9idWlsZGVycy9zb21lJTIwYnVp
bGRlci9mb3JjZScpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS5t
ZXRob2QsICdQT1NUJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0
c1swXS5kYXRhLCB7aWQ6ICcxNjczMy0nICsgTW9ja01vZGVscy5zb21lUGxhdGZvcm0uaWQoKX0p
OwogICAgICAgICAgICAgICAgIGRvbmUoKTsKQEAgLTg2NCw3ICs4NjQsNyBAQCBkZXNjcmliZSgn
QnVpbGRib3RTeW5jZXInLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgc3luY2VyLnNj
aGVkdWxlRmlyc3RSZXF1ZXN0SW5Hcm91cElmQXZhaWxhYmxlKGNyZWF0ZVNhbXBsZUJ1aWxkUmVx
dWVzdChNb2NrTW9kZWxzLnNvbWVQbGF0Zm9ybSwgTW9ja01vZGVscy5zb21lVGVzdCkpOwogICAg
ICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzWzBdLnVybCwgJy9idWlsZGVycy9zb21lIGJ1aWxkZXIvZm9yY2UnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0udXJsLCAnL2J1aWxkZXJzL3NvbWUlMjBi
dWlsZGVyL2ZvcmNlJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBd
Lm1ldGhvZCwgJ1BPU1QnKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVl
c3RzWzBdLmRhdGEsIHtpZDogJzE2NzMzLScgKyBNb2NrTW9kZWxzLnNvbWVQbGF0Zm9ybS5pZCgp
fSk7CiAgICAgICAgICAgICAgICAgZG9uZSgpOwo=
</data>
<flag name="review"
          id="300387"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>