<?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>156006</bug_id>
          
          <creation_ts>2016-03-29 20:30:59 -0700</creation_ts>
          <short_desc>Make dependency injection in unit tests more explicit</short_desc>
          <delta_ts>2016-03-29 21:16:44 -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>joepeck</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>rniwa</cc>
    
    <cc>slewis</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1178938</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-03-29 20:30:59 -0700</bug_when>
    <thetext>In order to run server tests and unit tests, we need to make
the dependency injection of mock models via before/beforeEach explicit
so that they won&apos;t collide with real model objects created in server tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1178943</commentid>
    <comment_count>1</comment_count>
      <attachid>275171</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-03-29 20:38:49 -0700</bug_when>
    <thetext>Created attachment 275171
Cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1178953</commentid>
    <comment_count>2</comment_count>
      <attachid>275171</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-03-29 21:13:57 -0700</bug_when>
    <thetext>Comment on attachment 275171
Cleanup

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1178955</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-03-29 21:16:44 -0700</bug_when>
    <thetext>Committed r198826: &lt;http://trac.webkit.org/changeset/198826&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>275171</attachid>
            <date>2016-03-29 20:38:49 -0700</date>
            <delta_ts>2016-03-29 21:13:57 -0700</delta_ts>
            <desc>Cleanup</desc>
            <filename>bug-156006-20160329203852.patch</filename>
            <type>text/plain</type>
            <size>21400</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkocmV2aXNpb24gMTk4ODI0KQorKysg
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDMxIEBACisyMDE2LTAzLTI5ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgor
CisgICAgICAgIE1ha2UgZGVwZW5kZW5jeSBpbmplY3Rpb24gaW4gdW5pdCB0ZXN0cyBtb3JlIGV4
cGxpY2l0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NTYwMDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBN
YWtlIHRoZSBkZXBlbmRlbmN5IGluamVjdGlvbiBvZiBtb2RlbCBvYmplY3RzIGluIHVuaXQgdGVz
dHMgZXhwbGljaXQgc28gdGhhdCBzZXJ2ZXIgdGVzdHMgdGhhdCBjcmVhdGUKKyAgICAgICAgInJl
YWwiIG1vZGVsIG9iamVjdHMgd29uJ3QgY3JlYXRlIHRoZXNlIG1vY2sgb2JqZWN0cy4gTm93IGVh
Y2ggdGVzdCB0aGF0IHVzZXMgbW9jayBtb2RlbCBvYmplY3RzIHdvdWxkIGNhbGwKKyAgICAgICAg
TW9ja01vZGVscy5pbmplY3QoKSB0byBpbmplY3QgYmVmb3JlIC8gYmVmb3JlRWFjaCBhbmQgYWNj
ZXNzIGVhY2ggb2JqZWN0IHVzaW5nIGEgcHJvcGVydHkgb24gTW9ja01vZGVscworICAgICAgICBp
bnN0ZWFkIG9mIHRoZW0gYmVpbmcgaW1wbGljaXRseSBkZWZpbmVkIG9uIHRoZSBnbG9iYWwgb2Jq
ZWN0LgorCisgICAgICAgIFNpbWlsYXJseSwgTW9ja1JlbW90ZUFQSSBub3cgb25seSByZXBsYWNl
cyBnbG9iYWwuUmVtb3RlQVBJIGR1cmluZyBlYWNoIHRlc3Qgc28gdGhhdCBzZXJ2ZXIgdGVzdHMg
Y2FuIHVzZQorICAgICAgICByZWFsIFJlbW90ZUFQSSB0byBhY2Nlc3MgdGhlIHRlc3QgQXBhY2hl
IHNlcnZlci4KKworICAgICAgICAqIHVuaXQtdGVzdHMvYW5hbHlzaXMtdGFzay10ZXN0cy5qczoK
KyAgICAgICAgKiB1bml0LXRlc3RzL2J1aWxkYm90LXN5bmNlci10ZXN0cy5qczoKKyAgICAgICAg
KGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdCk6CisgICAgICAgICogdW5pdC10ZXN0cy9tZWFzdXJl
bWVudC1hZGFwdG9yLXRlc3RzLmpzOgorICAgICAgICAqIHVuaXQtdGVzdHMvbWVhc3VyZW1lbnQt
c2V0LXRlc3RzLmpzOgorICAgICAgICAqIHVuaXQtdGVzdHMvcmVzb3VyY2VzL21vY2stcmVtb3Rl
LWFwaS5qczoKKyAgICAgICAgKE1vY2tSZW1vdGVBUEkuZ2V0SlNPTldpdGhTdGF0dXMpOgorICAg
ICAgICAoTW9ja1JlbW90ZUFQSS5pbmplY3QpOiBBZGRlZC4gT3ZlcnJpZGUgUmVtb3RlQVBJIG9u
IHRoZSBnbG9iYWwgb2JqZWN0IGR1cmluZyBlYWNoIHRlc3QuCisgICAgICAgICogdW5pdC10ZXN0
cy9yZXNvdXJjZXMvbW9jay12My1tb2RlbHMuanM6CisgICAgICAgIChNb2NrTW9kZWxzLmluamVj
dCk6IEFkZGVkLiBDcmVhdGUgbW9jayBtb2RlbCBvYmplY3RzIGJlZm9yZSBlYWNoIHRlc3QsIGFu
ZCBjbGVhciBhbGwgc3RhdGljIG1hcHMgb2YKKyAgICAgICAgdmFyaW91cyB2MyBtb2RlbCBjbGFz
c2VzICh0byByZW1vdmUgYWxsIHNpbmdsZXRvbiBvYmplY3RzIGZvciB0aG9zZSBtb2RlbCBjbGFz
c2VzKS4KKyAgICAgICAgKiB1bml0LXRlc3RzL3Rlc3QtZ3JvdXBzLXRlc3RzLmpzOgorCiAyMDE2
LTAzLTI5ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIEJ1aWxk
Ym90U3luY2VyIHNob3VsZCBiZSBhYmxlIHRvIGZldGNoIEpTT04gZnJvbSBidWlsZGJvdApJbmRl
eDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvYW5hbHlzaXMtdGFzay10ZXN0
cy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9h
bmFseXNpcy10YXNrLXRlc3RzLmpzCShyZXZpc2lvbiAxOTg4MjQpCisrKyBXZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvdW5pdC10ZXN0cy9hbmFseXNpcy10YXNrLXRlc3RzLmpzCSh3b3JraW5nIGNv
cHkpCkBAIC0zLDggKzMsOCBAQAogdmFyIGFzc2VydCA9IHJlcXVpcmUoJ2Fzc2VydCcpOwogCiBy
ZXF1aXJlKCcuLi90b29scy9qcy92My1tb2RlbHMuanMnKTsKLXJlcXVpcmUoJy4vcmVzb3VyY2Vz
L21vY2stdjMtbW9kZWxzLmpzJyk7Ci1yZXF1aXJlKCcuL3Jlc291cmNlcy9tb2NrLXJlbW90ZS1h
cGkuanMnKTsKK2xldCBNb2NrTW9kZWxzID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvbW9jay12My1t
b2RlbHMuanMnKS5Nb2NrTW9kZWxzOworbGV0IE1vY2tSZW1vdGVBUEkgPSByZXF1aXJlKCcuL3Jl
c291cmNlcy9tb2NrLXJlbW90ZS1hcGkuanMnKS5Nb2NrUmVtb3RlQVBJOwogCiBmdW5jdGlvbiBz
YW1wbGVBbmFseXNpc1Rhc2soKQogewpAQCAtMTE3LDYgKzExNyw5IEBAIGZ1bmN0aW9uIG1lYXN1
cmVtZW50Q2x1c3RlcigpCiB9CiAKIGRlc2NyaWJlKCdBbmFseXNpc1Rhc2snLCBmdW5jdGlvbiAo
KSB7CisgICAgTW9ja01vZGVscy5pbmplY3QoKTsKKyAgICBsZXQgcmVxdWVzdHMgPSBNb2NrUmVt
b3RlQVBJLmluamVjdCgpOworCiAgICAgZGVzY3JpYmUoJ2ZldGNoQWxsJywgZnVuY3Rpb24gKCkg
ewogICAgICAgICBpdCgnc2hvdWxkIHJlcXVlc3QgYWxsIGFuYWx5c2lzIHRhc2tzJywgZnVuY3Rp
b24gKCkgewogICAgICAgICAgICAgdmFyIGNhbGxDb3VudCA9IDA7CkBAIC0xNjcsOCArMTcwLDgg
QEAgZGVzY3JpYmUoJ0FuYWx5c2lzVGFzaycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQW5hbHlzaXNUYXNrLmFsbCgpLmxlbmd0aCwgMSk7CiAgICAgICAgICAg
ICAgICAgdmFyIHRhc2sgPSBBbmFseXNpc1Rhc2suYWxsKClbMF07CiAgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHRhc2suaWQoKSwgMTA4Mik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHRhc2subWV0cmljKCksIHNvbWVNZXRyaWMpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbCh0YXNrLnBsYXRmb3JtKCksIHNvbWVQbGF0Zm9ybSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHRhc2subWV0cmljKCksIE1vY2tNb2RlbHMuc29tZU1ldHJpYyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2sucGxhdGZvcm0oKSwgTW9ja01vZGVscy5zb21lUGxh
dGZvcm0pOwogICAgICAgICAgICAgICAgIGFzc2VydC5vayh0YXNrLmhhc1Jlc3VsdHMoKSk7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKHRhc2suaGFzUGVuZGluZ1JlcXVlc3RzKCkpOwogICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0YXNrLnJlcXVlc3RMYWJlbCgpLCAnNiBvZiAxNCcp
OwpAQCAtMTk0LDcgKzE5Nyw3IEBAIGRlc2NyaWJlKCdBbmFseXNpc1Rhc2snLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgICAgICAgICAgdmFyIGNvbW1pdCA9IHRhc2suY2F1c2VzKClbMF07CiAKICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0LnJldmlzaW9uKCksICcxOTYwNTEnKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0LnJlcG9zaXRvcnkoKSwgd2Via2l0
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0LnJlcG9zaXRvcnkoKSwgTW9j
a01vZGVscy53ZWJraXQpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbCgrY29tbWl0LnRp
bWUoKSwgMTQ1NDQ4MTI0NjEwOCk7CiAgICAgICAgICAgICAgICAgZG9uZSgpOwogICAgICAgICAg
ICAgfSkuY2F0Y2goZnVuY3Rpb24gKGVycm9yKSB7IGRvbmUoZXJyb3IpOyB9KTsKQEAgLTIwNCw3
ICsyMDcsNyBAQCBkZXNjcmliZSgnQW5hbHlzaXNUYXNrJywgZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgdmFyIGFkb3B0b3IgPSBuZXcgTWVhc3VyZW1lbnRBZGFwdG9yKG1lYXN1cmVtZW50Q2x1
c3RlcigpLmZvcm1hdE1hcCk7CiAgICAgICAgICAgICB2YXIgYWRvcHRlZE1lYXN1cmVtZW50ID0g
YWRvcHRvci5hcHBseVRvKG1lYXN1cmVtZW50Q2x1c3RlcigpLmNvbmZpZ3VyYXRpb25zLmN1cnJl
bnRbMF0pOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFkb3B0ZWRNZWFzdXJlbWVudC5pZCwg
MzcxODgxNjEpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFkb3B0ZWRNZWFzdXJlbWVudC5y
b290U2V0KCkuY29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLnJldmlzaW9uKCksICcxOTYwNTEn
KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChhZG9wdGVkTWVhc3VyZW1lbnQucm9vdFNldCgp
LmNvbW1pdEZvclJlcG9zaXRvcnkoTW9ja01vZGVscy53ZWJraXQpLnJldmlzaW9uKCksICcxOTYw
NTEnKTsKIAogICAgICAgICAgICAgdmFyIHByb21pc2UgPSBBbmFseXNpc1Rhc2suZmV0Y2hBbGwo
KTsKICAgICAgICAgICAgIHJlcXVlc3RzWzBdLnJlc29sdmUoc2FtcGxlQW5hbHlzaXNUYXNrKCkp
OwpAQCAtMjE2LDcgKzIxOSw3IEBAIGRlc2NyaWJlKCdBbmFseXNpc1Rhc2snLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRhc2suY2F1c2VzKCkubGVuZ3RoLCAx
KTsKICAgICAgICAgICAgICAgICB2YXIgY29tbWl0ID0gdGFzay5jYXVzZXMoKVswXTsKICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0LnJldmlzaW9uKCksICcxOTYwNTEnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0LnJlcG9zaXRvcnkoKSwgd2Via2l0KTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0LnJlcG9zaXRvcnkoKSwgTW9ja01v
ZGVscy53ZWJraXQpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbCgrY29tbWl0LnRpbWUo
KSwgMTQ1NDQ4MTI0NjEwOCk7CiAgICAgICAgICAgICAgICAgZG9uZSgpOwogICAgICAgICAgICAg
fSkuY2F0Y2goZnVuY3Rpb24gKGVycm9yKSB7IGRvbmUoZXJyb3IpOyB9KTsKSW5kZXg6IFdlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL2J1aWxkYm90LXN5bmNlci10ZXN0cy5qcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9idWlsZGJv
dC1zeW5jZXItdGVzdHMuanMJKHJldmlzaW9uIDE5ODgyNCkKKysrIFdlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy91bml0LXRlc3RzL2J1aWxkYm90LXN5bmNlci10ZXN0cy5qcwkod29ya2luZyBjb3B5
KQpAQCAtMyw4ICszLDggQEAKIGxldCBhc3NlcnQgPSByZXF1aXJlKCdhc3NlcnQnKTsKIAogcmVx
dWlyZSgnLi4vdG9vbHMvanMvdjMtbW9kZWxzLmpzJyk7Ci1yZXF1aXJlKCcuL3Jlc291cmNlcy9t
b2NrLXJlbW90ZS1hcGkuanMnKTsKLXJlcXVpcmUoJy4vcmVzb3VyY2VzL21vY2stdjMtbW9kZWxz
LmpzJyk7CitsZXQgTW9ja1JlbW90ZUFQSSA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL21vY2stcmVt
b3RlLWFwaS5qcycpLk1vY2tSZW1vdGVBUEk7CitsZXQgTW9ja01vZGVscyA9IHJlcXVpcmUoJy4v
cmVzb3VyY2VzL21vY2stdjMtbW9kZWxzLmpzJykuTW9ja01vZGVsczsKIAogbGV0IEJ1aWxkYm90
QnVpbGRFbnRyeSA9IHJlcXVpcmUoJy4uL3Rvb2xzL2pzL2J1aWxkYm90LXN5bmNlci5qcycpLkJ1
aWxkYm90QnVpbGRFbnRyeTsKIGxldCBCdWlsZGJvdFN5bmNlciA9IHJlcXVpcmUoJy4uL3Rvb2xz
L2pzL2J1aWxkYm90LXN5bmNlci5qcycpLkJ1aWxkYm90U3luY2VyOwpAQCAtNzQsOSArNzQsOSBA
QCBsZXQgc2FtcGxlUm9vdFNldERhdGEgPSB7CiBmdW5jdGlvbiBjcmVhdGVTYW1wbGVCdWlsZFJl
cXVlc3QoKQogewogICAgIGxldCByb290U2V0ID0gUm9vdFNldC5lbnN1cmVTaW5nbGV0b24oJzQx
OTcnLCB7cm9vdHM6IFsKLSAgICAgICAgeydpZCc6ICcxMTExMjcnLCAndGltZSc6IDE0NTY5NTU4
MDczMzQsICdyZXBvc2l0b3J5Jzogd2Via2l0LCAncmV2aXNpb24nOiAnMTk3NDYzJ30sCi0gICAg
ICAgIHsnaWQnOiAnMTExMjM3JywgJ3RpbWUnOiAxNDU2OTMxODc0MDAwLCAncmVwb3NpdG9yeSc6
IHNoYXJlZFJlcG9zaXRvcnksICdyZXZpc2lvbic6ICc4MDIyOSd9LAotICAgICAgICB7J2lkJzog
Jzg4OTMwJywgJ3RpbWUnOiAwLCAncmVwb3NpdG9yeSc6IGlvcywgJ3JldmlzaW9uJzogJzEzQTQ1
Mid9LAorICAgICAgICB7J2lkJzogJzExMTEyNycsICd0aW1lJzogMTQ1Njk1NTgwNzMzNCwgJ3Jl
cG9zaXRvcnknOiBNb2NrTW9kZWxzLndlYmtpdCwgJ3JldmlzaW9uJzogJzE5NzQ2Myd9LAorICAg
ICAgICB7J2lkJzogJzExMTIzNycsICd0aW1lJzogMTQ1NjkzMTg3NDAwMCwgJ3JlcG9zaXRvcnkn
OiBNb2NrTW9kZWxzLnNoYXJlZFJlcG9zaXRvcnksICdyZXZpc2lvbic6ICc4MDIyOSd9LAorICAg
ICAgICB7J2lkJzogJzg4OTMwJywgJ3RpbWUnOiAwLCAncmVwb3NpdG9yeSc6IE1vY2tNb2RlbHMu
aW9zLCAncmV2aXNpb24nOiAnMTNBNDUyJ30sCiAgICAgXX0pOwogCiAgICAgbGV0IHJlcXVlc3Qg
PSBCdWlsZFJlcXVlc3QuZW5zdXJlU2luZ2xldG9uKCcxNjczMycsIHsncm9vdFNldCc6IHJvb3RT
ZXQsICdzdGF0dXMnOiAncGVuZGluZyd9KTsKQEAgLTI4MSw2ICsyODEsOSBAQCBmdW5jdGlvbiBz
YW1wbGVGaW5pc2hlZEJ1aWxkKGJ1aWxkUmVxdWVzCiB9CiAKIGRlc2NyaWJlKCdCdWlsZGJvdFN5
bmNlcicsIGZ1bmN0aW9uICgpIHsKKyAgICBNb2NrTW9kZWxzLmluamVjdCgpOworICAgIGxldCBy
ZXF1ZXN0cyA9IE1vY2tSZW1vdGVBUEkuaW5qZWN0KCk7CisKICAgICBkZXNjcmliZSgnX2xvYWRD
b25maWcnLCBmdW5jdGlvbiAoKSB7CiAKICAgICAgICAgZnVuY3Rpb24gc21hbGxDb25maWd1cmF0
aW9uKCkKSW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL21lYXN1cmVt
ZW50LWFkYXB0b3ItdGVzdHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3VuaXQtdGVzdHMvbWVhc3VyZW1lbnQtYWRhcHRvci10ZXN0cy5qcwkocmV2aXNpb24gMTk4
ODI0KQorKysgV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvbWVhc3VyZW1lbnQt
YWRhcHRvci10ZXN0cy5qcwkod29ya2luZyBjb3B5KQpAQCAtMyw3ICszLDcgQEAKIHZhciBhc3Nl
cnQgPSByZXF1aXJlKCdhc3NlcnQnKTsKIAogcmVxdWlyZSgnLi4vdG9vbHMvanMvdjMtbW9kZWxz
LmpzJyk7Ci1yZXF1aXJlKCcuL3Jlc291cmNlcy9tb2NrLXYzLW1vZGVscy5qcycpOworbGV0IE1v
Y2tNb2RlbHMgPSByZXF1aXJlKCcuL3Jlc291cmNlcy9tb2NrLXYzLW1vZGVscy5qcycpLk1vY2tN
b2RlbHM7CiAKIHZhciBzYW1wbGVDbHVzdGVyID0gewogICAgICdjbHVzdGVyU3RhcnQnOiA5NDY2
ODQ4MDAwMDAsCkBAIC0yNiw2ICsyNiw4IEBAIHZhciBzYW1wbGVDbHVzdGVyID0gewogdmFyIHNh
bXBsZURhdGEgPSBzYW1wbGVDbHVzdGVyLmNvbmZpZ3VyYXRpb25zLmN1cnJlbnRbMF07CiAKIGRl
c2NyaWJlKCdNZWFzdXJlbWVudEFkYXB0b3InLCBmdW5jdGlvbiAoKSB7CisgICAgTW9ja01vZGVs
cy5pbmplY3QoKTsKKwogICAgIGRlc2NyaWJlKCdhcHBseVRvJywgZnVuY3Rpb24gKCkgewogICAg
ICAgICBpdCgnc2hvdWxkIGFkYXB0IGlkJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgdmFy
IGFkb3B0b3IgPSBuZXcgTWVhc3VyZW1lbnRBZGFwdG9yKHNhbXBsZUNsdXN0ZXIuZm9ybWF0TWFw
KTsKQEAgLTUwLDcgKzUyLDcgQEAgZGVzY3JpYmUoJ01lYXN1cmVtZW50QWRhcHRvcicsIGZ1bmN0
aW9uIAogICAgICAgICAgICAgYXNzZXJ0Lm9rKGFkb3B0b3IuYXBwbHlUbyhzYW1wbGVEYXRhKS5i
dWlsZCgpIGluc3RhbmNlb2YgQnVpbGQpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFkb3B0
b3IuYXBwbHlUbyhzYW1wbGVEYXRhKS5idWlsZCgpLmlkKCksIDE4NDYyOSk7CiAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoYWRvcHRvci5hcHBseVRvKHNhbXBsZURhdGEpLmJ1aWxkKCkuYnVpbGRO
dW1iZXIoKSwgJzE3OCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFkb3B0b3IuYXBwbHlU
byhzYW1wbGVEYXRhKS5idWlsZCgpLmJ1aWxkZXIoKSwgYnVpbGRlcik7CisgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoYWRvcHRvci5hcHBseVRvKHNhbXBsZURhdGEpLmJ1aWxkKCkuYnVpbGRlcigp
LCBNb2NrTW9kZWxzLmJ1aWxkZXIpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFkb3B0b3Iu
YXBwbHlUbyhzYW1wbGVEYXRhKS5idWlsZCgpLmxhYmVsKCksICdCdWlsZCAxNzggb24gV2ViS2l0
IFBlcmYgQnVpbGRlcicpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFkb3B0b3IuYXBwbHlU
byhzYW1wbGVEYXRhKS5idWlsZCgpLnVybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVp
bGRlcnMvV2ViS2l0IFBlcmYgQnVpbGRlci8xNzgnKTsKICAgICAgICAgfSk7CkBAIC02OCwxMiAr
NzAsMTIgQEAgZGVzY3JpYmUoJ01lYXN1cmVtZW50QWRhcHRvcicsIGZ1bmN0aW9uIAogICAgICAg
ICAgICAgYXNzZXJ0Lm9rKHJvb3RTZXQgaW5zdGFuY2VvZiBSb290U2V0KTsKICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyb290U2V0LmxhdGVzdENvbW1pdFRpbWUoKSwgMTQ0NzcwNzA1NTU3Nik7
CiAKLSAgICAgICAgICAgIGFzc2VydC5vayhyb290U2V0LnJlcG9zaXRvcmllcygpLmluZGV4T2Yo
b3N4KSA+PSAwKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyb290U2V0LnJldmlzaW9uRm9y
UmVwb3NpdG9yeShvc3gpLCAnMTAuMTEgMTVEMjEnKTsKKyAgICAgICAgICAgIGFzc2VydC5vayhy
b290U2V0LnJlcG9zaXRvcmllcygpLmluZGV4T2YoTW9ja01vZGVscy5vc3gpID49IDApOworICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJvb3RTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KE1vY2tN
b2RlbHMub3N4KSwgJzEwLjExIDE1RDIxJyk7CiAKLSAgICAgICAgICAgIHZhciBjb21taXQgPSBy
b290U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkob3N4KTsKKyAgICAgICAgICAgIHZhciBjb21taXQg
PSByb290U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkoTW9ja01vZGVscy5vc3gpOwogICAgICAgICAg
ICAgYXNzZXJ0Lm9rKGNvbW1pdCBpbnN0YW5jZW9mIENvbW1pdExvZyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoY29tbWl0LnJlcG9zaXRvcnkoKSwgb3N4KTsKKyAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChjb21taXQucmVwb3NpdG9yeSgpLCBNb2NrTW9kZWxzLm9zeCk7CiAgICAgICAgICAg
ICBhc3NlcnQub2soY29tbWl0LnRpbWUoKSBpbnN0YW5jZW9mIERhdGUpOwogICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbW1pdC5pZCgpLCAxMTEpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbW1pdC5yZXZpc2lvbigpLCAnMTAuMTEgMTVEMjEnKTsKQEAgLTg2LDEyICs4OCwxMiBAQCBk
ZXNjcmliZSgnTWVhc3VyZW1lbnRBZGFwdG9yJywgZnVuY3Rpb24gCiAgICAgICAgICAgICB2YXIg
YWRvcHRvciA9IG5ldyBNZWFzdXJlbWVudEFkYXB0b3Ioc2FtcGxlQ2x1c3Rlci5mb3JtYXRNYXAp
OwogICAgICAgICAgICAgdmFyIHJvb3RTZXQgPSBhZG9wdG9yLmFwcGx5VG8oc2FtcGxlRGF0YSku
cm9vdFNldCgpOwogCi0gICAgICAgICAgICBhc3NlcnQub2socm9vdFNldC5yZXBvc2l0b3JpZXMo
KS5pbmRleE9mKHdlYmtpdCkgPj0gMCk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocm9vdFNl
dC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MjQ4MycpOworICAgICAgICAgICAg
YXNzZXJ0Lm9rKHJvb3RTZXQucmVwb3NpdG9yaWVzKCkuaW5kZXhPZihNb2NrTW9kZWxzLndlYmtp
dCkgPj0gMCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocm9vdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkoTW9ja01vZGVscy53ZWJraXQpLCAnMTkyNDgzJyk7CiAKLSAgICAgICAgICAgIHZh
ciBjb21taXQgPSByb290U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkod2Via2l0KTsKKyAgICAgICAg
ICAgIHZhciBjb21taXQgPSByb290U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkoTW9ja01vZGVscy53
ZWJraXQpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKGNvbW1pdCBpbnN0YW5jZW9mIENvbW1pdExv
Zyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0LnJlcG9zaXRvcnkoKSwgd2Via2l0
KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb21taXQucmVwb3NpdG9yeSgpLCBNb2NrTW9k
ZWxzLndlYmtpdCk7CiAgICAgICAgICAgICBhc3NlcnQub2soY29tbWl0LnRpbWUoKSBpbnN0YW5j
ZW9mIERhdGUpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdC5pZCgpLCAyMjIpOwog
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKCtjb21taXQudGltZSgpLCAxNDQ3NzA3MDU1NTc2KTsK
QEAgLTEwMywxMSArMTA1LDExIEBAIGRlc2NyaWJlKCdNZWFzdXJlbWVudEFkYXB0b3InLCBmdW5j
dGlvbiAKIAogICAgICAgICBpdCgnc2hvdWxkIG5vdCBjcmVhdGUgc2VwYXJhdGUgQ29tbWl0TG9n
IG9iamVjdCBmb3IgdGhlIHNhbWUgcmV2aXNpb24nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICB2YXIgYWRvcHRvciA9IG5ldyBNZWFzdXJlbWVudEFkYXB0b3Ioc2FtcGxlQ2x1c3Rlci5mb3Jt
YXRNYXApOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFkb3B0b3IuYXBwbHlUbyhzYW1wbGVE
YXRhKS5yb290U2V0KCkuY29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLAotICAgICAgICAgICAg
ICAgIGFkb3B0b3IuYXBwbHlUbyhzYW1wbGVEYXRhKS5yb290U2V0KCkuY29tbWl0Rm9yUmVwb3Np
dG9yeSh3ZWJraXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChhZG9wdG9yLmFwcGx5VG8o
c2FtcGxlRGF0YSkucm9vdFNldCgpLmNvbW1pdEZvclJlcG9zaXRvcnkoTW9ja01vZGVscy53ZWJr
aXQpLAorICAgICAgICAgICAgICAgIGFkb3B0b3IuYXBwbHlUbyhzYW1wbGVEYXRhKS5yb290U2V0
KCkuY29tbWl0Rm9yUmVwb3NpdG9yeShNb2NrTW9kZWxzLndlYmtpdCkpOwogCi0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoYWRvcHRvci5hcHBseVRvKHNhbXBsZURhdGEpLnJvb3RTZXQoKS5jb21t
aXRGb3JSZXBvc2l0b3J5KG9zeCksCi0gICAgICAgICAgICAgICAgYWRvcHRvci5hcHBseVRvKHNh
bXBsZURhdGEpLnJvb3RTZXQoKS5jb21taXRGb3JSZXBvc2l0b3J5KG9zeCkpOworICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGFkb3B0b3IuYXBwbHlUbyhzYW1wbGVEYXRhKS5yb290U2V0KCkuY29t
bWl0Rm9yUmVwb3NpdG9yeShNb2NrTW9kZWxzLm9zeCksCisgICAgICAgICAgICAgICAgYWRvcHRv
ci5hcHBseVRvKHNhbXBsZURhdGEpLnJvb3RTZXQoKS5jb21taXRGb3JSZXBvc2l0b3J5KE1vY2tN
b2RlbHMub3N4KSk7CiAgICAgICAgIH0pOwogCiAgICAgfSk7CkluZGV4OiBXZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvdW5pdC10ZXN0cy9tZWFzdXJlbWVudC1zZXQtdGVzdHMuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvbWVhc3VyZW1lbnQtc2V0
LXRlc3RzLmpzCShyZXZpc2lvbiAxOTg4MjQpCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
dW5pdC10ZXN0cy9tZWFzdXJlbWVudC1zZXQtdGVzdHMuanMJKHdvcmtpbmcgY29weSkKQEAgLTIs
MTEgKzIsMTQgQEAKIAogdmFyIGFzc2VydCA9IHJlcXVpcmUoJ2Fzc2VydCcpOwogCi1yZXF1aXJl
KCcuL3Jlc291cmNlcy9tb2NrLXJlbW90ZS1hcGkuanMnKTsKK2xldCBNb2NrUmVtb3RlQVBJID0g
cmVxdWlyZSgnLi9yZXNvdXJjZXMvbW9jay1yZW1vdGUtYXBpLmpzJykuTW9ja1JlbW90ZUFQSTsK
IHJlcXVpcmUoJy4uL3Rvb2xzL2pzL3YzLW1vZGVscy5qcycpOwotcmVxdWlyZSgnLi9yZXNvdXJj
ZXMvbW9jay12My1tb2RlbHMuanMnKTsKK2xldCBNb2NrTW9kZWxzID0gcmVxdWlyZSgnLi9yZXNv
dXJjZXMvbW9jay12My1tb2RlbHMuanMnKS5Nb2NrTW9kZWxzOwogCiBkZXNjcmliZSgnTWVhc3Vy
ZW1lbnRTZXQnLCBmdW5jdGlvbiAoKSB7CisgICAgTW9ja01vZGVscy5pbmplY3QoKTsKKyAgICBs
ZXQgcmVxdWVzdHMgPSBNb2NrUmVtb3RlQVBJLmluamVjdCgpOworCiAgICAgYmVmb3JlRWFjaChm
dW5jdGlvbiAoKSB7CiAgICAgICAgIE1lYXN1cmVtZW50U2V0Ll9zZXQgPSBudWxsOwogICAgIH0p
OwpJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvdGVzdC1ncm91cHMt
dGVzdHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVz
dHMvdGVzdC1ncm91cHMtdGVzdHMuanMJKHJldmlzaW9uIDE5ODgyNCkKKysrIFdlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy91bml0LXRlc3RzL3Rlc3QtZ3JvdXBzLXRlc3RzLmpzCSh3b3JraW5nIGNv
cHkpCkBAIC0zLDcgKzMsNyBAQAogdmFyIGFzc2VydCA9IHJlcXVpcmUoJ2Fzc2VydCcpOwogCiBy
ZXF1aXJlKCcuLi90b29scy9qcy92My1tb2RlbHMuanMnKTsKLXJlcXVpcmUoJy4vcmVzb3VyY2Vz
L21vY2stdjMtbW9kZWxzLmpzJyk7CitsZXQgTW9ja01vZGVscyA9IHJlcXVpcmUoJy4vcmVzb3Vy
Y2VzL21vY2stdjMtbW9kZWxzLmpzJykuTW9ja01vZGVsczsKIAogZnVuY3Rpb24gc2FtcGxlVGVz
dEdyb3VwKCkgewogICAgIHJldHVybiB7CkBAIC0xMDQsNiArMTA0LDcgQEAgZnVuY3Rpb24gc2Ft
cGxlVGVzdEdyb3VwKCkgewogfQogCiBkZXNjcmliZSgnVGVzdEdyb3VwJywgZnVuY3Rpb24gKCkg
eworICAgIE1vY2tNb2RlbHMuaW5qZWN0KCk7CiAKICAgICBkZXNjcmliZSgnX2NyZWF0ZU1vZGVs
c0Zyb21GZXRjaGVkVGVzdEdyb3VwcycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgaXQoJ3Nob3Vs
ZCBjcmVhdGUgdGVzdCBncm91cHMnLCBmdW5jdGlvbiAoKSB7CkBAIC0xNjQsMzEgKzE2NSwzMSBA
QCBkZXNjcmliZSgnVGVzdEdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0
Lm9rKHNlY29uZFNldCBpbnN0YW5jZW9mIFJvb3RTZXQpOwogICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHNlY29uZFNldCwgYnVpbGRSZXF1ZXN0c1szXS5yb290U2V0KCkpOwogCi0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoZmlyc3RTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcx
OTE2MjInKTsKLSAgICAgICAgICAgIHZhciBmaXJzdFdlYktpdENvbW1pdCA9IGZpcnN0U2V0LmNv
bW1pdEZvclJlcG9zaXRvcnkod2Via2l0KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChmaXJz
dFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoTW9ja01vZGVscy53ZWJraXQpLCAnMTkxNjIyJyk7
CisgICAgICAgICAgICB2YXIgZmlyc3RXZWJLaXRDb21taXQgPSBmaXJzdFNldC5jb21taXRGb3JS
ZXBvc2l0b3J5KE1vY2tNb2RlbHMud2Via2l0KTsKICAgICAgICAgICAgIGFzc2VydC5vayhmaXJz
dFdlYktpdENvbW1pdCBpbnN0YW5jZW9mIENvbW1pdExvZyk7Ci0gICAgICAgICAgICBhc3NlcnQu
b2soZmlyc3RXZWJLaXRDb21taXQsIGJ1aWxkUmVxdWVzdHNbMl0ucm9vdFNldCgpLmNvbW1pdEZv
clJlcG9zaXRvcnkod2Via2l0KSk7Ci0gICAgICAgICAgICBhc3NlcnQub2soZmlyc3RXZWJLaXRD
b21taXQucmVwb3NpdG9yeSgpLCB3ZWJraXQpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKGZpcnN0
V2ViS2l0Q29tbWl0LCBidWlsZFJlcXVlc3RzWzJdLnJvb3RTZXQoKS5jb21taXRGb3JSZXBvc2l0
b3J5KE1vY2tNb2RlbHMud2Via2l0KSk7CisgICAgICAgICAgICBhc3NlcnQub2soZmlyc3RXZWJL
aXRDb21taXQucmVwb3NpdG9yeSgpLCBNb2NrTW9kZWxzLndlYmtpdCk7CiAgICAgICAgICAgICBh
c3NlcnQub2soZmlyc3RXZWJLaXRDb21taXQucmV2aXNpb24oKSwgJzE5MTYyMicpOwogICAgICAg
ICAgICAgYXNzZXJ0Lm9rKGZpcnN0V2ViS2l0Q29tbWl0LnRpbWUoKSBpbnN0YW5jZW9mIERhdGUp
OwogICAgICAgICAgICAgYXNzZXJ0Lm9rKCtmaXJzdFdlYktpdENvbW1pdC50aW1lKCksIDE0NDU5
NDU4MTY4NzgpOwogCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc2Vjb25kU2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkyNzM2Jyk7Ci0gICAgICAgICAgICB2YXIgc2Vjb25k
V2ViS2l0Q29tbWl0ID0gc2Vjb25kU2V0LmNvbW1pdEZvclJlcG9zaXRvcnkod2Via2l0KTsKKyAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChzZWNvbmRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KE1v
Y2tNb2RlbHMud2Via2l0KSwgJzE5MjczNicpOworICAgICAgICAgICAgdmFyIHNlY29uZFdlYktp
dENvbW1pdCA9IHNlY29uZFNldC5jb21taXRGb3JSZXBvc2l0b3J5KE1vY2tNb2RlbHMud2Via2l0
KTsKICAgICAgICAgICAgIGFzc2VydC5vayhzZWNvbmRXZWJLaXRDb21taXQgaW5zdGFuY2VvZiBD
b21taXRMb2cpOwotICAgICAgICAgICAgYXNzZXJ0Lm9rKHNlY29uZFdlYktpdENvbW1pdCwgYnVp
bGRSZXF1ZXN0c1szXS5yb290U2V0KCkuY29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXQpKTsKLSAg
ICAgICAgICAgIGFzc2VydC5vayhzZWNvbmRXZWJLaXRDb21taXQucmVwb3NpdG9yeSgpLCB3ZWJr
aXQpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKHNlY29uZFdlYktpdENvbW1pdCwgYnVpbGRSZXF1
ZXN0c1szXS5yb290U2V0KCkuY29tbWl0Rm9yUmVwb3NpdG9yeShNb2NrTW9kZWxzLndlYmtpdCkp
OworICAgICAgICAgICAgYXNzZXJ0Lm9rKHNlY29uZFdlYktpdENvbW1pdC5yZXBvc2l0b3J5KCks
IE1vY2tNb2RlbHMud2Via2l0KTsKICAgICAgICAgICAgIGFzc2VydC5vayhzZWNvbmRXZWJLaXRD
b21taXQucmV2aXNpb24oKSwgJzE5MjczNicpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKHNlY29u
ZFdlYktpdENvbW1pdC50aW1lKCkgaW5zdGFuY2VvZiBEYXRlKTsKICAgICAgICAgICAgIGFzc2Vy
dC5vaygrc2Vjb25kV2ViS2l0Q29tbWl0LnRpbWUoKSwgMTQ0NTk0NTgxNjg3OCk7CiAKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChmaXJzdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkob3N4KSwg
JzEwLjExIDE1QTI4NCcpOwotICAgICAgICAgICAgdmFyIG9zeENvbW1pdCA9IGZpcnN0U2V0LmNv
bW1pdEZvclJlcG9zaXRvcnkob3N4KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChmaXJzdFNl
dC5yZXZpc2lvbkZvclJlcG9zaXRvcnkoTW9ja01vZGVscy5vc3gpLCAnMTAuMTEgMTVBMjg0Jyk7
CisgICAgICAgICAgICB2YXIgb3N4Q29tbWl0ID0gZmlyc3RTZXQuY29tbWl0Rm9yUmVwb3NpdG9y
eShNb2NrTW9kZWxzLm9zeCk7CiAgICAgICAgICAgICBhc3NlcnQub2sob3N4Q29tbWl0IGluc3Rh
bmNlb2YgQ29tbWl0TG9nKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQsIGJ1
aWxkUmVxdWVzdHNbMV0ucm9vdFNldCgpLmNvbW1pdEZvclJlcG9zaXRvcnkob3N4KSk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0LCBidWlsZFJlcXVlc3RzWzJdLnJvb3RTZXQo
KS5jb21taXRGb3JSZXBvc2l0b3J5KG9zeCkpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9z
eENvbW1pdCwgYnVpbGRSZXF1ZXN0c1szXS5yb290U2V0KCkuY29tbWl0Rm9yUmVwb3NpdG9yeShv
c3gpKTsKLSAgICAgICAgICAgIGFzc2VydC5vayhvc3hDb21taXQucmVwb3NpdG9yeSgpLCBvc3gp
OworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdCwgYnVpbGRSZXF1ZXN0c1sxXS5y
b290U2V0KCkuY29tbWl0Rm9yUmVwb3NpdG9yeShNb2NrTW9kZWxzLm9zeCkpOworICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdCwgYnVpbGRSZXF1ZXN0c1syXS5yb290U2V0KCkuY29t
bWl0Rm9yUmVwb3NpdG9yeShNb2NrTW9kZWxzLm9zeCkpOworICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG9zeENvbW1pdCwgYnVpbGRSZXF1ZXN0c1szXS5yb290U2V0KCkuY29tbWl0Rm9yUmVwb3Np
dG9yeShNb2NrTW9kZWxzLm9zeCkpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKG9zeENvbW1pdC5y
ZXBvc2l0b3J5KCksIE1vY2tNb2RlbHMub3N4KTsKICAgICAgICAgICAgIGFzc2VydC5vayhvc3hD
b21taXQucmV2aXNpb24oKSwgJzEwLjExIDE1QTI4NCcpOwogICAgICAgICB9KTsKICAgICB9KTsK
SW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL3Jlc291cmNlcy9tb2Nr
LXJlbW90ZS1hcGkuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Vu
aXQtdGVzdHMvcmVzb3VyY2VzL21vY2stcmVtb3RlLWFwaS5qcwkocmV2aXNpb24gMTk4ODI0KQor
KysgV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvcmVzb3VyY2VzL21vY2stcmVt
b3RlLWFwaS5qcwkod29ya2luZyBjb3B5KQpAQCAtMyw4ICszLDcgQEAgdmFyIGFzc2VydCA9IHJl
cXVpcmUoJ2Fzc2VydCcpOwogaWYgKCFhc3NlcnQubm90UmVhY2hlZCkKICAgICBhc3NlcnQubm90
UmVhY2hlZCA9IGZ1bmN0aW9uICgpIHsgYXNzZXJ0KGZhbHNlLCAnVGhpcyBjb2RlIHBhdGggc2hv
dWxkIG5vdCBiZSByZWFjaGVkJyk7IH0KIAotZ2xvYmFsLnJlcXVlc3RzID0gW107Ci1nbG9iYWwu
UmVtb3RlQVBJID0gewordmFyIE1vY2tSZW1vdGVBUEkgPSB7CiAgICAgZ2V0SlNPTjogZnVuY3Rp
b24gKHVybCkKICAgICB7CiAgICAgICAgIHJldHVybiB0aGlzLmdldEpTT05XaXRoU3RhdHVzKHVy
bCk7CkBAIC0yMywxMSArMjIsMjcgQEAgZ2xvYmFsLlJlbW90ZUFQSSA9IHsKICAgICAgICAgICAg
IHJlcXVlc3QucmVqZWN0ID0gcmVqZWN0OwogICAgICAgICB9KTsKIAotICAgICAgICByZXF1ZXN0
cy5wdXNoKHJlcXVlc3QpOworICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLnB1c2gocmVx
dWVzdCk7CiAgICAgICAgIHJldHVybiByZXF1ZXN0LnByb21pc2U7CiAgICAgfSwKKyAgICBpbmpl
Y3Q6IGZ1bmN0aW9uICgpCisgICAgeworICAgICAgICB2YXIgb3JpZ2luYWxSZW1vdGVBUEkgPSBn
bG9iYWwuUmVtb3RlQVBJOworCisgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24gKCkgeworICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGggPSAwOworICAgICAgICAgICAg
b3JpZ2luYWxSZW1vdGVBUEkgPSBnbG9iYWwuUmVtb3RlQVBJOworICAgICAgICAgICAgZ2xvYmFs
LlJlbW90ZUFQSSA9IE1vY2tSZW1vdGVBUEk7CisgICAgICAgIH0pOworCisgICAgICAgIGFmdGVy
RWFjaChmdW5jdGlvbiAoKSB7ICAgICAgICAKKyAgICAgICAgICAgIGdsb2JhbC5SZW1vdGVBUEkg
PSBvcmlnaW5hbFJlbW90ZUFQSTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgcmV0dXJuIE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHM7CisgICAgfQogfTsKK01vY2tSZW1vdGVBUEkucmVxdWVzdHMgPSBb
XTsKIAotYmVmb3JlRWFjaChmdW5jdGlvbiAoKSB7Ci0gICAgcmVxdWVzdHMgPSBbXTsKLX0pOwor
aWYgKHR5cGVvZiBtb2R1bGUgIT0gJ3VuZGVmaW5lZCcpCisgICAgbW9kdWxlLmV4cG9ydHMuTW9j
a1JlbW90ZUFQSSA9IE1vY2tSZW1vdGVBUEk7CkluZGV4OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvdW5pdC10ZXN0cy9yZXNvdXJjZXMvbW9jay12My1tb2RlbHMuanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvcmVzb3VyY2VzL21vY2stdjMtbW9k
ZWxzLmpzCShyZXZpc2lvbiAxOTg4MjQpCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5p
dC10ZXN0cy9yZXNvdXJjZXMvbW9jay12My1tb2RlbHMuanMJKHdvcmtpbmcgY29weSkKQEAgLTEs
MjAgKzEsNDEgQEAKICd1c2Ugc3RyaWN0JzsKIAotYmVmb3JlRWFjaChmdW5jdGlvbiAoKSB7Ci0g
ICAgQW5hbHlzaXNUYXNrLl9mZXRjaEFsbFByb21pc2UgPSBudWxsOwotICAgIEFuYWx5c2lzVGFz
ay5jbGVhclN0YXRpY01hcCgpOwotICAgIENvbW1pdExvZy5jbGVhclN0YXRpY01hcCgpOwotICAg
IFJvb3RTZXQuY2xlYXJTdGF0aWNNYXAoKTsKLSAgICBUZXN0R3JvdXAuY2xlYXJTdGF0aWNNYXAo
KTsKLSAgICBCdWlsZFJlcXVlc3QuY2xlYXJTdGF0aWNNYXAoKTsKLQotICAgIGdsb2JhbC5vc3gg
PSBSZXBvc2l0b3J5LmVuc3VyZVNpbmdsZXRvbig5LCB7bmFtZTogJ09TIFgnfSk7Ci0gICAgZ2xv
YmFsLmlvcyA9IFJlcG9zaXRvcnkuZW5zdXJlU2luZ2xldG9uKDIyLCB7bmFtZTogJ2lPUyd9KTsK
LSAgICBnbG9iYWwud2Via2l0ID0gUmVwb3NpdG9yeS5lbnN1cmVTaW5nbGV0b24oMTEsIHtuYW1l
OiAnV2ViS2l0JywgdXJsOiAnaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvJDEnfSk7
Ci0gICAgZ2xvYmFsLnNoYXJlZFJlcG9zaXRvcnkgPSBSZXBvc2l0b3J5LmVuc3VyZVNpbmdsZXRv
bigxNiwge25hbWU6ICdTaGFyZWQnfSk7Ci0gICAgZ2xvYmFsLmJ1aWxkZXIgPSBuZXcgQnVpbGRl
cigxNzYsIHtuYW1lOiAnV2ViS2l0IFBlcmYgQnVpbGRlcicsIGJ1aWxkVXJsOiAnaHR0cDovL2J1
aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvJGJ1aWxkZXJOYW1lLyRidWlsZE51bWJlcid9KTsKLQot
ICAgIGdsb2JhbC5zb21lVGVzdCA9IFRlc3QuZW5zdXJlU2luZ2xldG9uKDE5MjgsIHtuYW1lOiAn
U29tZSB0ZXN0J30pOwotICAgIGdsb2JhbC5zb21lTWV0cmljID0gTWV0cmljLmVuc3VyZVNpbmds
ZXRvbigyODg0LCB7bmFtZTogJ1NvbWUgbWV0cmljJywgdGVzdDogc29tZVRlc3R9KTsKLSAgICBn
bG9iYWwuc29tZVBsYXRmb3JtID0gUGxhdGZvcm0uZW5zdXJlU2luZ2xldG9uKDY1LCB7bmFtZTog
J1NvbWUgcGxhdGZvcm0nLCBtZXRyaWNzOiBbc29tZU1ldHJpY119KTsKLX0pOwordmFyIE1vY2tN
b2RlbHMgPSB7CisgICAgaW5qZWN0OiBmdW5jdGlvbiAoKSB7CisgICAgICAgIGJlZm9yZUVhY2go
ZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgQW5hbHlzaXNUYXNrLl9mZXRjaEFsbFByb21pc2Ug
PSBudWxsOworICAgICAgICAgICAgQW5hbHlzaXNUYXNrLmNsZWFyU3RhdGljTWFwKCk7CisgICAg
ICAgICAgICBDb21taXRMb2cuY2xlYXJTdGF0aWNNYXAoKTsKKyAgICAgICAgICAgIE1ldHJpYy5j
bGVhclN0YXRpY01hcCgpOworICAgICAgICAgICAgUm9vdFNldC5jbGVhclN0YXRpY01hcCgpOwor
ICAgICAgICAgICAgVGVzdC5jbGVhclN0YXRpY01hcCgpOworICAgICAgICAgICAgVGVzdEdyb3Vw
LmNsZWFyU3RhdGljTWFwKCk7CisgICAgICAgICAgICBCdWlsZFJlcXVlc3QuY2xlYXJTdGF0aWNN
YXAoKTsKKworICAgICAgICAgICAgTW9ja01vZGVscy5vc3ggPSBSZXBvc2l0b3J5LmVuc3VyZVNp
bmdsZXRvbig5LCB7bmFtZTogJ09TIFgnfSk7CisgICAgICAgICAgICBNb2NrTW9kZWxzLmlvcyA9
IFJlcG9zaXRvcnkuZW5zdXJlU2luZ2xldG9uKDIyLCB7bmFtZTogJ2lPUyd9KTsKKyAgICAgICAg
ICAgIE1vY2tNb2RlbHMud2Via2l0ID0gUmVwb3NpdG9yeS5lbnN1cmVTaW5nbGV0b24oMTEsIHtu
YW1lOiAnV2ViS2l0JywgdXJsOiAnaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvJDEn
fSk7CisgICAgICAgICAgICBNb2NrTW9kZWxzLnNoYXJlZFJlcG9zaXRvcnkgPSBSZXBvc2l0b3J5
LmVuc3VyZVNpbmdsZXRvbigxNiwge25hbWU6ICdTaGFyZWQnfSk7CisgICAgICAgICAgICBNb2Nr
TW9kZWxzLmJ1aWxkZXIgPSBuZXcgQnVpbGRlcigxNzYsIHtuYW1lOiAnV2ViS2l0IFBlcmYgQnVp
bGRlcicsIGJ1aWxkVXJsOiAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvJGJ1aWxk
ZXJOYW1lLyRidWlsZE51bWJlcid9KTsKKworICAgICAgICAgICAgTW9ja01vZGVscy5zb21lVGVz
dCA9IFRlc3QuZW5zdXJlU2luZ2xldG9uKDEsIHtuYW1lOiAnU29tZSB0ZXN0J30pOworICAgICAg
ICAgICAgTW9ja01vZGVscy5zb21lTWV0cmljID0gTWV0cmljLmVuc3VyZVNpbmdsZXRvbigyODg0
LCB7bmFtZTogJ1NvbWUgbWV0cmljJywgdGVzdDogTW9ja01vZGVscy5zb21lVGVzdH0pOworICAg
ICAgICAgICAgTW9ja01vZGVscy5zb21lUGxhdGZvcm0gPSBQbGF0Zm9ybS5lbnN1cmVTaW5nbGV0
b24oNjUsIHtuYW1lOiAnU29tZSBwbGF0Zm9ybScsIG1ldHJpY3M6IFtNb2NrTW9kZWxzLnNvbWVN
ZXRyaWNdfSk7CisKKyAgICAgICAgICAgIE1vY2tNb2RlbHMuc3BlZWRvbWV0ZXIgPSBUZXN0LmVu
c3VyZVNpbmdsZXRvbigxOTI4LCB7bmFtZTogJ1NwZWVkb21ldGVyJ30pOworICAgICAgICAgICAg
TW9ja01vZGVscy5qZXRzdHJlYW0gPSBUZXN0LmVuc3VyZVNpbmdsZXRvbigxODg2LCB7bmFtZTog
J0pldFN0cmVhbSd9KTsKKyAgICAgICAgICAgIE1vY2tNb2RlbHMuZHJvbWFlbyA9IFRlc3QuZW5z
dXJlU2luZ2xldG9uKDIwMjIsIHtuYW1lOiAnRHJvbWFlbyd9KTsKKyAgICAgICAgICAgIE1vY2tN
b2RlbHMuZG9tY29yZSA9IFRlc3QuZW5zdXJlU2luZ2xldG9uKDIwMjMsIHtuYW1lOiAnRE9NIENv
cmUgVGVzdHMnLCBwYXJlbnRJZDogMjAyMn0pOworCisgICAgICAgICAgICBNb2NrTW9kZWxzLmlw
aG9uZSA9IFBsYXRmb3JtLmVuc3VyZVNpbmdsZXRvbigxMiwge25hbWU6ICdpUGhvbmUnLCBtZXRy
aWNzOiBbXX0pOworICAgICAgICAgICAgTW9ja01vZGVscy5pcGFkID0gUGxhdGZvcm0uZW5zdXJl
U2luZ2xldG9uKDEzLCB7bmFtZTogJ2lQYWQnLCBtZXRyaWNzOiBbXX0pOworCisgICAgICAgICAg
ICBNb2NrTW9kZWxzLnBsdCA9IFRlc3QuZW5zdXJlU2luZ2xldG9uKDg0NCwge25hbWU6ICdQYWdl
IExvYWQgVGVzdCd9KTsKKyAgICAgICAgICAgIE1vY2tNb2RlbHMucGx0TWVhbiA9IE1ldHJpYy5l
bnN1cmVTaW5nbGV0b24oMTE1OCwge25hbWU6ICdUaW1lJywgYWdncmVnYXRvcjogJ0FyaXRobWV0
aWMnLCB0ZXN0OiBNb2NrTW9kZWxzLnBsdH0pOworICAgICAgICAgICAgTW9ja01vZGVscy5lbENh
cGl0YW4gPSBQbGF0Zm9ybS5lbnN1cmVTaW5nbGV0b24oMzEsIHtuYW1lOiAnRWwgQ2FwaXRhbics
IG1ldHJpY3M6IFtNb2NrTW9kZWxzLnBsdE1lYW5dfSk7CisgICAgICAgIH0pOworICAgIH0KK30K
KworaWYgKHR5cGVvZiBtb2R1bGUgIT0gJ3VuZGVmaW5lZCcpCisgICAgbW9kdWxlLmV4cG9ydHMu
TW9ja01vZGVscyA9IE1vY2tNb2RlbHM7Cg==
</data>
<flag name="review"
          id="299543"
          type_id="1"
          status="+"
          setter="joepeck"
    />
          </attachment>
      

    </bug>

</bugzilla>