<?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>76504</bug_id>
          
          <creation_ts>2012-01-17 17:50:53 -0800</creation_ts>
          <short_desc>run-perf-tests should generate a json file that summaries the result</short_desc>
          <delta_ts>2012-01-18 11:44:52 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (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>
          
          <blocked>10266</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>abarth</cc>
    
    <cc>morrita</cc>
    
    <cc>ojan</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>537508</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-01-17 17:50:53 -0800</bug_when>
    <thetext>Now that I&apos;ve made a progress on webkit-perf.appspot.com, we&apos;re ready to start submitting data there. In order to do this, we need to have run-perf-tests generate a json file that summaries the results.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537512</commentid>
    <comment_count>1</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-01-17 17:57:37 -0800</bug_when>
    <thetext>Format:
{
  &quot;password&quot;: &quot;test&quot;,
  &quot;timestamp&quot;: 1326851283,
  &quot;revision&quot;: 104856,
  &quot;summary&quot;: {
    &quot;webkit_style_test&quot;: {
      &quot;average&quot;: 100,
      &quot;median&quot;: 102,
      &quot;stdev&quot;: 5,
      &quot;min&quot;: 90,
      &quot;max&quot;: 110
    },
    &quot;some_test&quot;: 54
  }
}

password: given per bot to avoid someone adversely reporting wrong values.
timestamp: the time test started running
revision: the webkit revision for which the tests were ran
summary: this is the main part of the json. It&apos;s a dictionary where the key is the name of a test and the value is either an integer (simple/chromium style tests) or a dictionary that contains average, median, standard deviation, min, and max values.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537513</commentid>
    <comment_count>2</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-01-17 17:58:45 -0800</bug_when>
    <thetext>If we end up having lots of tests and wanted to reduce the size of json, we can use an array (as supposed to a dictionary) for the webkit style test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537686</commentid>
    <comment_count>3</comment_count>
      <attachid>122884</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-01-18 00:52:19 -0800</bug_when>
    <thetext>Created attachment 122884
fixes the bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537688</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-01-18 00:56:39 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; Format:
&gt; {
&gt;   &quot;password&quot;: &quot;test&quot;,
&gt;   &quot;timestamp&quot;: 1326851283,
&gt;   &quot;revision&quot;: 104856,
&gt;   &quot;summary&quot;: {

I&apos;m changing my mind and renaming it to &quot;results&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537696</commentid>
    <comment_count>5</comment_count>
      <attachid>122884</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-01-18 01:08:16 -0800</bug_when>
    <thetext>Comment on attachment 122884
fixes the bug

View in context: https://bugs.webkit.org/attachment.cgi?id=122884&amp;action=review

&gt; Tools/Scripts/webkitpy/performance_tests/perftestsrunner.py:32
&gt; +import json

This isn&apos;t Python 2.5 compat, but I don&apos;t think you should worry about that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537715</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-01-18 01:47:11 -0800</bug_when>
    <thetext>Thanks for the review!

(In reply to comment #5)
&gt; (From update of attachment 122884 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=122884&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/performance_tests/perftestsrunner.py:32
&gt; &gt; +import json
&gt; 
&gt; This isn&apos;t Python 2.5 compat, but I don&apos;t think you should worry about that.

Yeah, I&apos;ll worry about only if someone complains.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537740</commentid>
    <comment_count>7</comment_count>
      <attachid>122884</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-18 02:53:01 -0800</bug_when>
    <thetext>Comment on attachment 122884
fixes the bug

Clearing flags on attachment: 122884

Committed r105256: &lt;http://trac.webkit.org/changeset/105256&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537741</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-18 02:53:06 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537785</commentid>
    <comment_count>9</comment_count>
      <attachid>122884</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-01-18 05:03:44 -0800</bug_when>
    <thetext>Comment on attachment 122884
fixes the bug

View in context: https://bugs.webkit.org/attachment.cgi?id=122884&amp;action=review

&gt; Tools/Scripts/webkitpy/performance_tests/perftestsrunner.py:55
&gt; +        self._port = port or self._host.port_factory.get(self._options.platform, self._options)
&gt; +        self._host = self._port.host

there is dependency cycle between port and host.
I&apos;ve fixed it at r105263</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538041</commentid>
    <comment_count>10</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-01-18 11:44:52 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 122884 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=122884&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/performance_tests/perftestsrunner.py:55
&gt; &gt; +        self._port = port or self._host.port_factory.get(self._options.platform, self._options)
&gt; &gt; +        self._host = self._port.host
&gt; 
&gt; there is dependency cycle between port and host.
&gt; I&apos;ve fixed it at r105263

Thanks for the fix.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122884</attachid>
            <date>2012-01-18 00:52:19 -0800</date>
            <delta_ts>2012-01-18 05:03:44 -0800</delta_ts>
            <desc>fixes the bug</desc>
            <filename>bug-76504-20120118005218.patch</filename>
            <type>text/plain</type>
            <size>16475</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDEwNTI0NikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDM1IEBACisyMDEyLTAxLTE4ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgor
CisgICAgICAgIHJ1bi1wZXJmLXRlc3RzIHNob3VsZCBnZW5lcmF0ZSBhIGpzb24gZmlsZSB0aGF0
IHN1bW1hcmllcyB0aGUgcmVzdWx0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03NjUwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCBhbiBhYmlsaXR5IHRvIGdlbmVyYXRlIGEganNvbiBmaWxlIHRvIHJ1
bi1wZXJmLXRlc3QgaW4gdGhlIHByZXBhcmF0aW9uIGZvciBwZXJmIGJvdHMuCisgICAgICAgIE5l
dyBvcHRpb24gLS1vdXRvdXQtanNvbi1wYXRoIHNwZWNpZmllcyB0aGUganNvbiBmaWxlJ3MgcGF0
aCwgYW5kIC0tc291cmNlLWpzb24tcGF0aCBzcGVjaWZpZXMKKyAgICAgICAgYW5vdGhlciBqc29u
IGZpbGUgdG8gYmUgbWVyZ2VkIGludG8gdGhlIGdlbmVyYXRlZCBqc29uIGZpbGUuCisKKyAgICAg
ICAgQWxzbyBmaXhlZCBhIGJ1ZyB0aGF0IC0tYnVpbGQgd2Fzbid0IHNldCBieSBkZWZhdWx0Lgor
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC90ZXN0LnB5Ogor
ICAgICAgICAoVGVzdFBvcnQud2Via2l0X2Jhc2UpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvcGVyZm9ybWFuY2VfdGVzdHMvcGVyZnRlc3RzcnVubmVyLnB5OgorICAgICAgICAoUGVyZlRl
c3RzUnVubmVyLl9faW5pdF9fKToKKyAgICAgICAgKFBlcmZUZXN0c1J1bm5lcik6CisgICAgICAg
IChQZXJmVGVzdHNSdW5uZXIuX3BhcnNlX2FyZ3MpOgorICAgICAgICAoUGVyZlRlc3RzUnVubmVy
LnJ1bik6CisgICAgICAgIChQZXJmVGVzdHNSdW5uZXIuX2dlbmVyYXRlX2pzb25faWZfc3BlY2lm
aWVkKToKKyAgICAgICAgKFBlcmZUZXN0c1J1bm5lci5fcHJvY2Vzc19jaHJvbWl1bV9zdHlsZV90
ZXN0X3Jlc3VsdCk6CisgICAgICAgIChQZXJmVGVzdHNSdW5uZXIuX3Byb2Nlc3NfcGFyc2VyX3Rl
c3RfcmVzdWx0KToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BlcmZvcm1hbmNlX3Rlc3Rz
L3BlcmZ0ZXN0c3J1bm5lcl91bml0dGVzdC5weToKKyAgICAgICAgKE1haW5UZXN0KToKKyAgICAg
ICAgKGNyZWF0ZV9ydW5uZXIpOgorICAgICAgICAodGVzdF9ydW5fdGVzdF9zZXQpOgorICAgICAg
ICAodGVzdF9ydW5fdGVzdF9zZXRfZm9yX3BhcnNlcl90ZXN0cyk6CisgICAgICAgICh0ZXN0X3J1
bl90ZXN0X3NldF93aXRoX3N1bW1hcnlfanNvbik6CisgICAgICAgICh0ZXN0X2NvbGxlY3RfdGVz
dHMpOgorICAgICAgICAodGVzdF9wYXJzZV9hcmdzKToKKwogMjAxMi0wMS0xNyAgU2hlcmlmZiBC
b3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwg
cm9sbGluZyBvdXQgcjEwNTI0NC4KSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3BvcnQvdGVzdC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L3Rlc3QucHkJKHJldmlzaW9uIDEwNTE4MikKKysrIFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvdGVzdC5weQkod29ya2luZyBjb3B5KQpA
QCAtMzc4LDYgKzM3OCw5IEBAIGNsYXNzIFRlc3RQb3J0KFBvcnQpOgogICAgIGRlZiBsYXlvdXRf
dGVzdHNfZGlyKHNlbGYpOgogICAgICAgICByZXR1cm4gTEFZT1VUX1RFU1RfRElSCiAKKyAgICBk
ZWYgd2Via2l0X2Jhc2Uoc2VsZik6CisgICAgICAgIHJldHVybiAnL3Rlc3QuY2hlY2tvdXQnCisK
ICAgICBkZWYgbmFtZShzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuX25hbWUKIApJbmRleDog
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9wZXJmb3JtYW5jZV90ZXN0cy9wZXJmdGVzdHNydW5uZXIu
cHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wZXJmb3JtYW5jZV90ZXN0
cy9wZXJmdGVzdHNydW5uZXIucHkJKHJldmlzaW9uIDEwNTE4MikKKysrIFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvcGVyZm9ybWFuY2VfdGVzdHMvcGVyZnRlc3RzcnVubmVyLnB5CSh3b3JraW5nIGNv
cHkpCkBAIC0yOSwxMCArMjksMTIgQEAKIAogIiIiUnVuIEluc3BlY3RvcidzIHBlcmYgdGVzdHMg
aW4gcGVyZiBtb2RlLiIiIgogCitpbXBvcnQganNvbgogaW1wb3J0IGxvZ2dpbmcKIGltcG9ydCBv
cHRwYXJzZQogaW1wb3J0IHJlCiBpbXBvcnQgc3lzCitpbXBvcnQgdGltZQogCiBmcm9tIHdlYmtp
dHB5LmNvbW1vbiBpbXBvcnQgZmluZF9maWxlcwogZnJvbSB3ZWJraXRweS5jb21tb24uaG9zdCBp
bXBvcnQgSG9zdApAQCAtNDYsMTcgKzQ4LDIwIEBAIGNsYXNzIFBlcmZUZXN0c1J1bm5lcihvYmpl
Y3QpOgogICAgIF9wZXJmX3Rlc3RzX2Jhc2VfZGlyID0gJ1BlcmZvcm1hbmNlVGVzdHMnCiAgICAg
X3Rlc3RfZGlyZWN0b3JpZXNfZm9yX2Nocm9taXVtX3N0eWxlX3Rlc3RzID0gWydpbnNwZWN0b3In
XQogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlZ3VsYXJfb3V0cHV0PXN5cy5zdGRlcnIsIGJ1
aWxkYm90X291dHB1dD1zeXMuc3Rkb3V0LCBhcmdzPU5vbmUpOgorICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCByZWd1bGFyX291dHB1dD1zeXMuc3RkZXJyLCBidWlsZGJvdF9vdXRwdXQ9c3lzLnN0ZG91
dCwgYXJncz1Ob25lLCBwb3J0PU5vbmUpOgogICAgICAgICBzZWxmLl9idWlsZGJvdF9vdXRwdXQg
PSBidWlsZGJvdF9vdXRwdXQKLSAgICAgICAgc2VsZi5fb3B0aW9ucywgc2VsZi5fYXJncyA9IHNl
bGYuX3BhcnNlX2FyZ3MoYXJncykKLSAgICAgICAgc2VsZi5faG9zdCA9IEhvc3QoKQorICAgICAg
ICBzZWxmLl9vcHRpb25zLCBzZWxmLl9hcmdzID0gUGVyZlRlc3RzUnVubmVyLl9wYXJzZV9hcmdz
KGFyZ3MpCisgICAgICAgIHNlbGYuX3BvcnQgPSBwb3J0IG9yIHNlbGYuX2hvc3QucG9ydF9mYWN0
b3J5LmdldChzZWxmLl9vcHRpb25zLnBsYXRmb3JtLCBzZWxmLl9vcHRpb25zKQorICAgICAgICBz
ZWxmLl9ob3N0ID0gc2VsZi5fcG9ydC5ob3N0CiAgICAgICAgIHNlbGYuX2hvc3QuX2luaXRpYWxp
emVfc2NtKCkKLSAgICAgICAgc2VsZi5fcG9ydCA9IHNlbGYuX2hvc3QucG9ydF9mYWN0b3J5Lmdl
dChzZWxmLl9vcHRpb25zLnBsYXRmb3JtLCBzZWxmLl9vcHRpb25zKQogICAgICAgICBzZWxmLl9w
cmludGVyID0gcHJpbnRpbmcuUHJpbnRlcihzZWxmLl9wb3J0LCBzZWxmLl9vcHRpb25zLCByZWd1
bGFyX291dHB1dCwgYnVpbGRib3Rfb3V0cHV0LCBjb25maWd1cmVfbG9nZ2luZz1GYWxzZSkKICAg
ICAgICAgc2VsZi5fd2Via2l0X2Jhc2VfZGlyX2xlbiA9IGxlbihzZWxmLl9wb3J0LndlYmtpdF9i
YXNlKCkpCiAgICAgICAgIHNlbGYuX2Jhc2VfcGF0aCA9IHNlbGYuX2hvc3QuZmlsZXN5c3RlbS5q
b2luKHNlbGYuX3BvcnQud2Via2l0X2Jhc2UoKSwgc2VsZi5fcGVyZl90ZXN0c19iYXNlX2RpcikK
KyAgICAgICAgc2VsZi5fcmVzdWx0cyA9IHt9CisgICAgICAgIHNlbGYuX3RpbWVzdGFtcCA9IHRp
bWUudGltZSgpCiAKLSAgICBkZWYgX3BhcnNlX2FyZ3Moc2VsZiwgYXJncz1Ob25lKToKKyAgICBA
c3RhdGljbWV0aG9kCisgICAgZGVmIF9wYXJzZV9hcmdzKGFyZ3M9Tm9uZSk6CiAgICAgICAgIHBy
aW50X29wdGlvbnMgPSBwcmludGluZy5wcmludF9vcHRpb25zKCkKIAogICAgICAgICBwZXJmX29w
dGlvbl9saXN0ID0gWwpAQCAtNjYsMTAgKzcxLDE2IEBAIGNsYXNzIFBlcmZUZXN0c1J1bm5lcihv
YmplY3QpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0nU2V0IHRoZSBj
b25maWd1cmF0aW9uIHRvIFJlbGVhc2UnKSwKICAgICAgICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0
aW9uKCItLXBsYXRmb3JtIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9
IlNwZWNpZnkgcG9ydC9wbGF0Zm9ybSBiZWluZyB0ZXN0ZWQgKGkuZS4gY2hyb21pdW0tbWFjKSIp
LAorICAgICAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oIi0tYnVpbGQiLCBkZXN0PSJidWls
ZCIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlZmF1bHQ9VHJ1ZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaGVscD0iQ2hlY2sgdG8gZW5zdXJlIHRoZSBEdW1wUmVuZGVyVHJlZSBi
dWlsZCBpcyB1cC10by1kYXRlIChkZWZhdWx0KS4iKSwKICAgICAgICAgICAgIG9wdHBhcnNlLm1h
a2Vfb3B0aW9uKCItLWJ1aWxkLWRpcmVjdG9yeSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBoZWxwPSJQYXRoIHRvIHRoZSBkaXJlY3RvcnkgdW5kZXIgd2hpY2ggYnVpbGQgZmls
ZXMgYXJlIGtlcHQgKHNob3VsZCBub3QgaW5jbHVkZSBjb25maWd1cmF0aW9uKSIpLAogICAgICAg
ICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oIi0tdGltZS1vdXQtbXMiLCBkZWZhdWx0PTMwMDAw
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iU2V0IHRoZSB0aW1lb3V0
IGZvciBlYWNoIHRlc3QiKSwKKyAgICAgICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0aW9uKCItLW91
dHB1dC1qc29uLXBhdGgiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0i
RmlsZW5hbWUgb2YgdGhlIEpTT04gZmlsZSB0aGF0IHN1bW1hcmllcyB0aGUgcmVzdWx0cyIpLAor
ICAgICAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oIi0tc291cmNlLWpzb24tcGF0aCIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJQYXRoIHRvIGEgSlNPTiBmaWxl
IHRvIGJlIG1lcmdlZCBpbnRvIHRoZSBKU09OIGZpbGUgd2hlbiAtLW91dHB1dC1qc29uLXBhdGgg
aXMgc3BlY2lmaWVkIiksCiAgICAgICAgICAgICBdCiAKICAgICAgICAgb3B0aW9uX2xpc3QgPSAo
cGVyZl9vcHRpb25fbGlzdCArIHByaW50X29wdGlvbnMpCkBAIC0xMDIsOCArMTEzLDM2IEBAIGNs
YXNzIFBlcmZUZXN0c1J1bm5lcihvYmplY3QpOgogICAgICAgICBmaW5hbGx5OgogICAgICAgICAg
ICAgc2VsZi5fcHJpbnRlci5jbGVhbnVwKCkKIAorICAgICAgICBpZiBub3Qgc2VsZi5fZ2VuZXJh
dGVfanNvbl9pZl9zcGVjaWZpZWQoc2VsZi5fdGltZXN0YW1wKSBhbmQgbm90IHVuZXhwZWN0ZWQ6
CisgICAgICAgICAgICByZXR1cm4gLTIKKwogICAgICAgICByZXR1cm4gdW5leHBlY3RlZAogCisg
ICAgZGVmIF9nZW5lcmF0ZV9qc29uX2lmX3NwZWNpZmllZChzZWxmLCB0aW1lc3RhbXApOgorICAg
ICAgICBvdXRwdXRfanNvbl9wYXRoID0gc2VsZi5fb3B0aW9ucy5vdXRwdXRfanNvbl9wYXRoCisg
ICAgICAgIGlmIG5vdCBvdXRwdXRfanNvbl9wYXRoOgorICAgICAgICAgICAgcmV0dXJuIFRydWUK
KworICAgICAgICByZXZpc2lvbiA9IHNlbGYuX2hvc3Quc2NtKCkuaGVhZF9zdm5fcmV2aXNpb24o
KQorICAgICAgICBjb250ZW50cyA9IHsndGltZXN0YW1wJzogaW50KHRpbWVzdGFtcCksICdyZXZp
c2lvbic6IHJldmlzaW9uLCAncmVzdWx0cyc6IHNlbGYuX3Jlc3VsdHN9CisKKyAgICAgICAgZmls
ZXN5c3RlbSA9IHNlbGYuX2hvc3QuZmlsZXN5c3RlbQorICAgICAgICBzb3VyY2VfanNvbl9wYXRo
ID0gc2VsZi5fb3B0aW9ucy5zb3VyY2VfanNvbl9wYXRoCisgICAgICAgIGlmIHNvdXJjZV9qc29u
X3BhdGg6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgc291cmNlX2pzb25fZmls
ZSA9IGZpbGVzeXN0ZW0ub3Blbl90ZXh0X2ZpbGVfZm9yX3JlYWRpbmcoc291cmNlX2pzb25fcGF0
aCkKKyAgICAgICAgICAgICAgICBzb3VyY2VfanNvbiA9IGpzb24ubG9hZChzb3VyY2VfanNvbl9m
aWxlKQorICAgICAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgICAgIF9sb2cuZXJyb3IoIkZh
aWxlZCB0byBwYXJzZSAlcyIgJSBzb3VyY2VfanNvbl9wYXRoKQorICAgICAgICAgICAgICAgIHJl
dHVybiBGYWxzZQorICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uoc291cmNlX2pzb24sIGRp
Y3QpOgorICAgICAgICAgICAgICAgIF9sb2cuZXJyb3IoIlRoZSBzb3VyY2UgSlNPTiB3YXMgbm90
IGEgZGljdGlvbmFyeSIpCisgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgICAg
ICBjb250ZW50cyA9IGRpY3Qoc291cmNlX2pzb24uaXRlbXMoKSArIGNvbnRlbnRzLml0ZW1zKCkp
CisKKyAgICAgICAgZmlsZXN5c3RlbS53cml0ZV90ZXh0X2ZpbGUob3V0cHV0X2pzb25fcGF0aCwg
anNvbi5kdW1wcyhjb250ZW50cykpCisgICAgICAgIHJldHVybiBUcnVlCisKICAgICBkZWYgX3By
aW50X3N0YXR1cyhzZWxmLCB0ZXN0cywgZXhwZWN0ZWQsIHVuZXhwZWN0ZWQpOgogICAgICAgICBp
ZiBsZW4odGVzdHMpID09IGV4cGVjdGVkICsgdW5leHBlY3RlZDoKICAgICAgICAgICAgIHN0YXR1
cyA9ICJSYW4gJWQgdGVzdHMiICUgbGVuKHRlc3RzKQpAQCAtMTQ1LDEzICsxODQsMTUgQEAgY2xh
c3MgUGVyZlRlc3RzUnVubmVyKG9iamVjdCk6CiAKICAgICAgICAgcmV0dXJuIHVuZXhwZWN0ZWQK
IAotICAgIF9pbnNwZWN0b3JfcmVzdWx0X3JlZ2V4ID0gcmUuY29tcGlsZSgnXlJFU1VMVCAuKiQn
KQorICAgIF9pbnNwZWN0b3JfcmVzdWx0X3JlZ2V4ID0gcmUuY29tcGlsZShyJ15SRVNVTFRccyso
P1A8bmFtZT5bXj1dKylccyo9XHMrKD9QPHZhbHVlPlxkKyhcLlxkKyk/KVxzKig/UDx1bml0Plx3
KykkJykKIAogICAgIGRlZiBfcHJvY2Vzc19jaHJvbWl1bV9zdHlsZV90ZXN0X3Jlc3VsdChzZWxm
LCB0ZXN0LCBvdXRwdXQpOgogICAgICAgICB0ZXN0X2ZhaWxlZCA9IEZhbHNlCiAgICAgICAgIGdv
dF9hX3Jlc3VsdCA9IEZhbHNlCiAgICAgICAgIGZvciBsaW5lIGluIHJlLnNwbGl0KCdcbicsIG91
dHB1dC50ZXh0KToKLSAgICAgICAgICAgIGlmIHNlbGYuX2luc3BlY3Rvcl9yZXN1bHRfcmVnZXgu
bWF0Y2gobGluZSk6CisgICAgICAgICAgICByZXN1bHRMaW5lID0gc2VsZi5faW5zcGVjdG9yX3Jl
c3VsdF9yZWdleC5tYXRjaChsaW5lKQorICAgICAgICAgICAgaWYgcmVzdWx0TGluZToKKyAgICAg
ICAgICAgICAgICBzZWxmLl9yZXN1bHRzW3Jlc3VsdExpbmUuZ3JvdXAoJ25hbWUnKS5yZXBsYWNl
KCcgJywgJycpXSA9IGludChyZXN1bHRMaW5lLmdyb3VwKCd2YWx1ZScpKQogICAgICAgICAgICAg
ICAgIHNlbGYuX2J1aWxkYm90X291dHB1dC53cml0ZSgiJXNcbiIgJSBsaW5lKQogICAgICAgICAg
ICAgICAgIGdvdF9hX3Jlc3VsdCA9IFRydWUKICAgICAgICAgICAgIGVsaWYgbm90IGxlbihsaW5l
KSA9PSAwOgpAQCAtMTk0LDYgKzIzNSw3IEBAIGNsYXNzIFBlcmZUZXN0c1J1bm5lcihvYmplY3Qp
OgogCiAgICAgICAgIGlmIHRlc3RfZmFpbGVkIG9yIHNldChrZXlzKSAhPSBzZXQocmVzdWx0cy5r
ZXlzKCkpOgogICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgc2VsZi5fcmVzdWx0c1t0
ZXN0X25hbWVdID0gcmVzdWx0cwogICAgICAgICBzZWxmLl9idWlsZGJvdF9vdXRwdXQud3JpdGUo
J1JFU1VMVCAlczogJXM9ICVzIG1zXG4nICUgKGNhdGVnb3J5LCB0ZXN0X25hbWUsIHJlc3VsdHNb
J2F2ZyddKSkKICAgICAgICAgc2VsZi5fYnVpbGRib3Rfb3V0cHV0LndyaXRlKCcsICcuam9pbihb
JyVzPSAlcyBtcycgJSAoa2V5LCByZXN1bHRzW2tleV0pIGZvciBrZXkgaW4ga2V5c1sxOl1dKSAr
ICdcbicpCiAgICAgICAgIHJldHVybiBGYWxzZQpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9wZXJmb3JtYW5jZV90ZXN0cy9wZXJmdGVzdHNydW5uZXJfdW5pdHRlc3QucHkKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wZXJmb3JtYW5jZV90ZXN0cy9wZXJmdGVzdHNy
dW5uZXJfdW5pdHRlc3QucHkJKHJldmlzaW9uIDEwNTE4MikKKysrIFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvcGVyZm9ybWFuY2VfdGVzdHMvcGVyZnRlc3RzcnVubmVyX3VuaXR0ZXN0LnB5CSh3b3Jr
aW5nIGNvcHkpCkBAIC0yOSwyMCArMjksMTkgQEAKIAogIiIiVW5pdCB0ZXN0cyBmb3IgcnVuX3Bl
cmZfdGVzdHMuIiIiCiAKK2ltcG9ydCBqc29uCiBpbXBvcnQgdW5pdHRlc3QKIAogZnJvbSB3ZWJr
aXRweS5jb21tb24gaW1wb3J0IGFycmF5X3N0cmVhbQorZnJvbSB3ZWJraXRweS5jb21tb24uaG9z
dF9tb2NrIGltcG9ydCBNb2NrSG9zdAogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmZpbGVz
eXN0ZW1fbW9jayBpbXBvcnQgTW9ja0ZpbGVTeXN0ZW0KIGZyb20gd2Via2l0cHkubGF5b3V0X3Rl
c3RzLnBvcnQuZHJpdmVyIGltcG9ydCBEcml2ZXJJbnB1dCwgRHJpdmVyT3V0cHV0Citmcm9tIHdl
YmtpdHB5LmxheW91dF90ZXN0cy5wb3J0LnRlc3QgaW1wb3J0IFRlc3RQb3J0CiBmcm9tIHdlYmtp
dHB5LmxheW91dF90ZXN0cy52aWV3cyBpbXBvcnQgcHJpbnRpbmcKIGZyb20gd2Via2l0cHkucGVy
Zm9ybWFuY2VfdGVzdHMucGVyZnRlc3RzcnVubmVyIGltcG9ydCBQZXJmVGVzdHNSdW5uZXIKIAog
CiBjbGFzcyBNYWluVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgY2xhc3MgVGVzdFBvcnQ6
Ci0gICAgICAgIGRlZiBjcmVhdGVfZHJpdmVyKHNlbGYsIHdvcmtlcl9udW1iZXI9Tm9uZSk6Ci0g
ICAgICAgICAgICByZXR1cm4gTWFpblRlc3QuVGVzdERyaXZlcigpCi0KICAgICBjbGFzcyBUZXN0
RHJpdmVyOgogICAgICAgICBkZWYgcnVuX3Rlc3Qoc2VsZiwgZHJpdmVyX2lucHV0KToKICAgICAg
ICAgICAgIHRleHQgPSAnJwpAQCAtMTAzLDEwICsxMDIsMTkgQEAgbWF4IDExMjAKICAgICAgICAg
ZGVmIHN0b3Aoc2VsZik6CiAgICAgICAgICAgICAiIiJkbyBub3RoaW5nIiIiCiAKLSAgICBkZWYg
Y3JlYXRlX3J1bm5lcihzZWxmLCBidWlsZGJvdF9vdXRwdXQ9Tm9uZSk6CisgICAgZGVmIGNyZWF0
ZV9ydW5uZXIoc2VsZiwgYnVpbGRib3Rfb3V0cHV0PU5vbmUsIGFyZ3M9W10pOgogICAgICAgICBi
dWlsZGJvdF9vdXRwdXQgPSBidWlsZGJvdF9vdXRwdXQgb3IgYXJyYXlfc3RyZWFtLkFycmF5U3Ry
ZWFtKCkKICAgICAgICAgcmVndWxhcl9vdXRwdXQgPSBhcnJheV9zdHJlYW0uQXJyYXlTdHJlYW0o
KQotICAgICAgICByZXR1cm4gUGVyZlRlc3RzUnVubmVyKHJlZ3VsYXJfb3V0cHV0LCBidWlsZGJv
dF9vdXRwdXQsIGFyZ3M9W10pCisKKyAgICAgICAgb3B0aW9ucywgcGFyc2VkX2FyZ3MgPSBQZXJm
VGVzdHNSdW5uZXIuX3BhcnNlX2FyZ3MoYXJncykKKyAgICAgICAgdGVzdF9wb3J0ID0gVGVzdFBv
cnQoaG9zdD1Nb2NrSG9zdCgpLCBvcHRpb25zPW9wdGlvbnMpCisgICAgICAgIHRlc3RfcG9ydC5j
cmVhdGVfZHJpdmVyID0gbGFtYmRhIHdvcmtlcl9udW1iZXI9Tm9uZTogTWFpblRlc3QuVGVzdERy
aXZlcigpCisKKyAgICAgICAgcnVubmVyID0gUGVyZlRlc3RzUnVubmVyKHJlZ3VsYXJfb3V0cHV0
LCBidWlsZGJvdF9vdXRwdXQsIGFyZ3M9YXJncywgcG9ydD10ZXN0X3BvcnQpCisgICAgICAgIHJ1
bm5lci5faG9zdC5maWxlc3lzdGVtLm1heWJlX21ha2VfZGlyZWN0b3J5KHJ1bm5lci5fYmFzZV9w
YXRoLCAnaW5zcGVjdG9yJykKKyAgICAgICAgcnVubmVyLl9ob3N0LmZpbGVzeXN0ZW0ubWF5YmVf
bWFrZV9kaXJlY3RvcnkocnVubmVyLl9iYXNlX3BhdGgsICdCaW5kaW5ncycpCisgICAgICAgIHJ1
bm5lci5faG9zdC5maWxlc3lzdGVtLm1heWJlX21ha2VfZGlyZWN0b3J5KHJ1bm5lci5fYmFzZV9w
YXRoLCAnUGFyc2VyJykKKyAgICAgICAgcmV0dXJuIHJ1bm5lcgogCiAgICAgZGVmIHJ1bl90ZXN0
KHNlbGYsIHRlc3RfbmFtZSk6CiAgICAgICAgIHJ1bm5lciA9IHNlbGYuY3JlYXRlX3J1bm5lcigp
CkBAIC0xNDYsMTIgKzE1NCwxMCBAQCBtYXggMTEyMAogICAgIGRlZiB0ZXN0X3J1bl90ZXN0X3Nl
dChzZWxmKToKICAgICAgICAgYnVpbGRib3Rfb3V0cHV0ID0gYXJyYXlfc3RyZWFtLkFycmF5U3Ry
ZWFtKCkKICAgICAgICAgcnVubmVyID0gc2VsZi5jcmVhdGVfcnVubmVyKGJ1aWxkYm90X291dHB1
dCkKLSAgICAgICAgcnVubmVyLl9iYXNlX3BhdGggPSAnL3Rlc3QuY2hlY2tvdXQvUGVyZm9ybWFu
Y2VUZXN0cycKLSAgICAgICAgcG9ydCA9IE1haW5UZXN0LlRlc3RQb3J0KCkKICAgICAgICAgZGly
bmFtZSA9IHJ1bm5lci5fYmFzZV9wYXRoICsgJy9pbnNwZWN0b3IvJwogICAgICAgICB0ZXN0cyA9
IFtkaXJuYW1lICsgJ3Bhc3MuaHRtbCcsIGRpcm5hbWUgKyAnc2lsZW50Lmh0bWwnLCBkaXJuYW1l
ICsgJ2ZhaWxlZC5odG1sJywKICAgICAgICAgICAgIGRpcm5hbWUgKyAndG9uZ3VleS5odG1sJywg
ZGlybmFtZSArICd0aW1lb3V0Lmh0bWwnLCBkaXJuYW1lICsgJ2NyYXNoLmh0bWwnXQotICAgICAg
ICB1bmV4cGVjdGVkX3Jlc3VsdF9jb3VudCA9IHJ1bm5lci5fcnVuX3Rlc3RzX3NldCh0ZXN0cywg
cG9ydCkKKyAgICAgICAgdW5leHBlY3RlZF9yZXN1bHRfY291bnQgPSBydW5uZXIuX3J1bl90ZXN0
c19zZXQodGVzdHMsIHJ1bm5lci5fcG9ydCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh1bmV4
cGVjdGVkX3Jlc3VsdF9jb3VudCwgbGVuKHRlc3RzKSAtIDEpCiAgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwobGVuKGJ1aWxkYm90X291dHB1dC5nZXQoKSksIDEpCiAgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoYnVpbGRib3Rfb3V0cHV0LmdldCgpWzBdLCAnUkVTVUxUIGdyb3VwX25hbWU6IHRlc3Rf
bmFtZT0gNDIgbXNcbicpCkBAIC0xNTksMzUgKzE2NSw3MSBAQCBtYXggMTEyMAogICAgIGRlZiB0
ZXN0X3J1bl90ZXN0X3NldF9mb3JfcGFyc2VyX3Rlc3RzKHNlbGYpOgogICAgICAgICBidWlsZGJv
dF9vdXRwdXQgPSBhcnJheV9zdHJlYW0uQXJyYXlTdHJlYW0oKQogICAgICAgICBydW5uZXIgPSBz
ZWxmLmNyZWF0ZV9ydW5uZXIoYnVpbGRib3Rfb3V0cHV0KQotICAgICAgICBydW5uZXIuX2Jhc2Vf
cGF0aCA9ICcvdGVzdC5jaGVja291dC9QZXJmb3JtYW5jZVRlc3RzLycKLSAgICAgICAgcG9ydCA9
IE1haW5UZXN0LlRlc3RQb3J0KCkKLSAgICAgICAgdGVzdHMgPSBbcnVubmVyLl9iYXNlX3BhdGgg
KyAnQmluZGluZ3MvZXZlbnQtdGFyZ2V0LXdyYXBwZXIuaHRtbCcsIHJ1bm5lci5fYmFzZV9wYXRo
ICsgJ1BhcnNlci9zb21lLXBhcnNlci5odG1sJ10KLSAgICAgICAgdW5leHBlY3RlZF9yZXN1bHRf
Y291bnQgPSBydW5uZXIuX3J1bl90ZXN0c19zZXQodGVzdHMsIHBvcnQpCisgICAgICAgIHRlc3Rz
ID0gW3J1bm5lci5fYmFzZV9wYXRoICsgJy9CaW5kaW5ncy9ldmVudC10YXJnZXQtd3JhcHBlci5o
dG1sJywgcnVubmVyLl9iYXNlX3BhdGggKyAnL1BhcnNlci9zb21lLXBhcnNlci5odG1sJ10KKyAg
ICAgICAgdW5leHBlY3RlZF9yZXN1bHRfY291bnQgPSBydW5uZXIuX3J1bl90ZXN0c19zZXQodGVz
dHMsIHJ1bm5lci5fcG9ydCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh1bmV4cGVjdGVkX3Jl
c3VsdF9jb3VudCwgMCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWlsZGJvdF9vdXRwdXQu
Z2V0KClbMF0sICdSRVNVTFQgQmluZGluZ3M6IGV2ZW50LXRhcmdldC13cmFwcGVyPSAxNDg5LjA1
IG1zXG4nKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1aWxkYm90X291dHB1dC5nZXQoKVsx
XSwgJ21lZGlhbj0gMTQ4NyBtcywgc3RkZXY9IDE0LjQ2IG1zLCBtaW49IDE0NzEgbXMsIG1heD0g
MTUxMCBtc1xuJykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWlsZGJvdF9vdXRwdXQuZ2V0
KClbMl0sICdSRVNVTFQgUGFyc2VyOiBzb21lLXBhcnNlcj0gMTEwMCBtc1xuJykKICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChidWlsZGJvdF9vdXRwdXQuZ2V0KClbM10sICdtZWRpYW49IDExMDEg
bXMsIHN0ZGV2PSAxMSBtcywgbWluPSAxMDgwIG1zLCBtYXg9IDExMjAgbXNcbicpCiAKKyAgICBk
ZWYgdGVzdF9ydW5fdGVzdF9zZXRfd2l0aF9qc29uX291dHB1dChzZWxmKToKKyAgICAgICAgYnVp
bGRib3Rfb3V0cHV0ID0gYXJyYXlfc3RyZWFtLkFycmF5U3RyZWFtKCkKKyAgICAgICAgcnVubmVy
ID0gc2VsZi5jcmVhdGVfcnVubmVyKGJ1aWxkYm90X291dHB1dCwgYXJncz1bJy0tb3V0cHV0LWpz
b24tcGF0aD0vdGVzdC5jaGVja291dC9vdXRwdXQuanNvbiddKQorICAgICAgICBydW5uZXIuX2hv
c3QuZmlsZXN5c3RlbS5maWxlc1tydW5uZXIuX2Jhc2VfcGF0aCArICcvaW5zcGVjdG9yL3Bhc3Mu
aHRtbCddID0gVHJ1ZQorICAgICAgICBydW5uZXIuX2hvc3QuZmlsZXN5c3RlbS5maWxlc1tydW5u
ZXIuX2Jhc2VfcGF0aCArICcvQmluZGluZ3MvZXZlbnQtdGFyZ2V0LXdyYXBwZXIuaHRtbCddID0g
VHJ1ZQorICAgICAgICBydW5uZXIuX3RpbWVzdGFtcCA9IDEyMzQ1Njc4OQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHJ1bm5lci5ydW4oKSwgMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChs
ZW4oYnVpbGRib3Rfb3V0cHV0LmdldCgpKSwgMykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChi
dWlsZGJvdF9vdXRwdXQuZ2V0KClbMF0sICdSRVNVTFQgQmluZGluZ3M6IGV2ZW50LXRhcmdldC13
cmFwcGVyPSAxNDg5LjA1IG1zXG4nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1aWxkYm90
X291dHB1dC5nZXQoKVsxXSwgJ21lZGlhbj0gMTQ4NyBtcywgc3RkZXY9IDE0LjQ2IG1zLCBtaW49
IDE0NzEgbXMsIG1heD0gMTUxMCBtc1xuJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWls
ZGJvdF9vdXRwdXQuZ2V0KClbMl0sICdSRVNVTFQgZ3JvdXBfbmFtZTogdGVzdF9uYW1lPSA0MiBt
c1xuJykKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGpzb24ubG9hZHMocnVubmVyLl9ob3N0
LmZpbGVzeXN0ZW0uZmlsZXNbJy90ZXN0LmNoZWNrb3V0L291dHB1dC5qc29uJ10pLCB7CisgICAg
ICAgICAgICAidGltZXN0YW1wIjogMTIzNDU2Nzg5LCAicmVzdWx0cyI6CisgICAgICAgICAgICB7
ImV2ZW50LXRhcmdldC13cmFwcGVyIjogeyJtYXgiOiAiMTUxMCIsICJhdmciOiAiMTQ4OS4wNSIs
ICJtZWRpYW4iOiAiMTQ4NyIsICJtaW4iOiAiMTQ3MSIsICJzdGRldiI6ICIxNC40NiJ9LAorICAg
ICAgICAgICAgImdyb3VwX25hbWU6dGVzdF9uYW1lIjogNDJ9LAorICAgICAgICAgICAgInJldmlz
aW9uIjogMTIzNH0pCisKKyAgICBkZWYgdGVzdF9ydW5fdGVzdF9zZXRfd2l0aF9qc29uX3NvdXJj
ZShzZWxmKToKKyAgICAgICAgYnVpbGRib3Rfb3V0cHV0ID0gYXJyYXlfc3RyZWFtLkFycmF5U3Ry
ZWFtKCkKKyAgICAgICAgcnVubmVyID0gc2VsZi5jcmVhdGVfcnVubmVyKGJ1aWxkYm90X291dHB1
dCwgYXJncz1bJy0tb3V0cHV0LWpzb24tcGF0aD0vdGVzdC5jaGVja291dC9vdXRwdXQuanNvbics
CisgICAgICAgICAgICAnLS1zb3VyY2UtanNvbi1wYXRoPS90ZXN0LmNoZWNrb3V0L3NvdXJjZS5q
c29uJ10pCisgICAgICAgIHJ1bm5lci5faG9zdC5maWxlc3lzdGVtLmZpbGVzWycvdGVzdC5jaGVj
a291dC9zb3VyY2UuanNvbiddID0gJ3sia2V5IjogInZhbHVlIn0nCisgICAgICAgIHJ1bm5lci5f
aG9zdC5maWxlc3lzdGVtLmZpbGVzW3J1bm5lci5fYmFzZV9wYXRoICsgJy9pbnNwZWN0b3IvcGFz
cy5odG1sJ10gPSBUcnVlCisgICAgICAgIHJ1bm5lci5faG9zdC5maWxlc3lzdGVtLmZpbGVzW3J1
bm5lci5fYmFzZV9wYXRoICsgJy9CaW5kaW5ncy9ldmVudC10YXJnZXQtd3JhcHBlci5odG1sJ10g
PSBUcnVlCisgICAgICAgIHJ1bm5lci5fdGltZXN0YW1wID0gMTIzNDU2Nzg5CisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwocnVubmVyLnJ1bigpLCAwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGxlbihidWlsZGJvdF9vdXRwdXQuZ2V0KCkpLCAzKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGJ1aWxkYm90X291dHB1dC5nZXQoKVswXSwgJ1JFU1VMVCBCaW5kaW5nczogZXZlbnQtdGFyZ2V0
LXdyYXBwZXI9IDE0ODkuMDUgbXNcbicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnVpbGRi
b3Rfb3V0cHV0LmdldCgpWzFdLCAnbWVkaWFuPSAxNDg3IG1zLCBzdGRldj0gMTQuNDYgbXMsIG1p
bj0gMTQ3MSBtcywgbWF4PSAxNTEwIG1zXG4nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1
aWxkYm90X291dHB1dC5nZXQoKVsyXSwgJ1JFU1VMVCBncm91cF9uYW1lOiB0ZXN0X25hbWU9IDQy
IG1zXG4nKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoanNvbi5sb2FkcyhydW5uZXIuX2hv
c3QuZmlsZXN5c3RlbS5maWxlc1snL3Rlc3QuY2hlY2tvdXQvb3V0cHV0Lmpzb24nXSksIHsKKyAg
ICAgICAgICAgICJ0aW1lc3RhbXAiOiAxMjM0NTY3ODksICJyZXN1bHRzIjoKKyAgICAgICAgICAg
IHsiZXZlbnQtdGFyZ2V0LXdyYXBwZXIiOiB7Im1heCI6ICIxNTEwIiwgImF2ZyI6ICIxNDg5LjA1
IiwgIm1lZGlhbiI6ICIxNDg3IiwgIm1pbiI6ICIxNDcxIiwgInN0ZGV2IjogIjE0LjQ2In0sCisg
ICAgICAgICAgICAiZ3JvdXBfbmFtZTp0ZXN0X25hbWUiOiA0Mn0sCisgICAgICAgICAgICAicmV2
aXNpb24iOiAxMjM0LAorICAgICAgICAgICAgImtleSI6ICJ2YWx1ZSJ9KQorCiAgICAgZGVmIHRl
c3RfY29sbGVjdF90ZXN0cyhzZWxmKToKICAgICAgICAgcnVubmVyID0gc2VsZi5jcmVhdGVfcnVu
bmVyKCkKLSAgICAgICAgcnVubmVyLl9iYXNlX3BhdGggPSAnL3Rlc3QuY2hlY2tvdXQvUGVyZm9y
bWFuY2VUZXN0cycKLSAgICAgICAgZmlsZXN5c3RlbSA9IE1vY2tGaWxlU3lzdGVtKCkKLSAgICAg
ICAgZmlsZW5hbWUgPSBmaWxlc3lzdGVtLmpvaW4ocnVubmVyLl9iYXNlX3BhdGgsICdpbnNwZWN0
b3InLCAnYV9maWxlLmh0bWwnKQotICAgICAgICBmaWxlc3lzdGVtLm1heWJlX21ha2VfZGlyZWN0
b3J5KHJ1bm5lci5fYmFzZV9wYXRoLCAnaW5zcGVjdG9yJykKLSAgICAgICAgZmlsZXN5c3RlbS5m
aWxlc1tmaWxlbmFtZV0gPSAnYSBjb250ZW50JwotICAgICAgICBydW5uZXIuX2hvc3QuZmlsZXN5
c3RlbSA9IGZpbGVzeXN0ZW0KKyAgICAgICAgZmlsZW5hbWUgPSBydW5uZXIuX2hvc3QuZmlsZXN5
c3RlbS5qb2luKHJ1bm5lci5fYmFzZV9wYXRoLCAnaW5zcGVjdG9yJywgJ2FfZmlsZS5odG1sJykK
KyAgICAgICAgcnVubmVyLl9ob3N0LmZpbGVzeXN0ZW0uZmlsZXNbZmlsZW5hbWVdID0gJ2EgY29u
dGVudCcKICAgICAgICAgdGVzdHMgPSBydW5uZXIuX2NvbGxlY3RfdGVzdHMoKQogICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKGxlbih0ZXN0cyksIDEpCiAKICAgICBkZWYgdGVzdF9wYXJzZV9hcmdz
KHNlbGYpOgogICAgICAgICBydW5uZXIgPSBzZWxmLmNyZWF0ZV9ydW5uZXIoKQotICAgICAgICBv
cHRpb25zLCBhcmdzID0gcnVubmVyLl9wYXJzZV9hcmdzKFsKKyAgICAgICAgb3B0aW9ucywgYXJn
cyA9IFBlcmZUZXN0c1J1bm5lci5fcGFyc2VfYXJncyhbCiAgICAgICAgICAgICAgICAgJy0tdmVy
Ym9zZScsCiAgICAgICAgICAgICAgICAgJy0tYnVpbGQtZGlyZWN0b3J5PWZvbGRlcjQyJywKICAg
ICAgICAgICAgICAgICAnLS1wbGF0Zm9ybT1wbGF0Zm9ybTQyJywKICAgICAgICAgICAgICAgICAn
LS10aW1lLW91dC1tcz00MicsCisgICAgICAgICAgICAgICAgJy0tb3V0cHV0LWpzb24tcGF0aD1h
L291dHB1dC5qc29uJywKKyAgICAgICAgICAgICAgICAnLS1zb3VyY2UtanNvbi1wYXRoPWEvc291
cmNlLmpzb24nLAogICAgICAgICAgICAgICAgICctLWRlYnVnJywgJ2FuX2FyZyddKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKG9wdGlvbnMuYnVpbGQsIFRydWUpCiAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwob3B0aW9ucy52ZXJib3NlLCBUcnVlKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KG9wdGlvbnMuaGVscF9wcmludGluZywgTm9uZSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChv
cHRpb25zLmJ1aWxkX2RpcmVjdG9yeSwgJ2ZvbGRlcjQyJykKQEAgLTE5NSw2ICsyMzcsOCBAQCBt
YXggMTEyMAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9wdGlvbnMudGltZV9vdXRfbXMsICc0
MicpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3B0aW9ucy5jb25maWd1cmF0aW9uLCAnRGVi
dWcnKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9wdGlvbnMucHJpbnRfb3B0aW9ucywgTm9u
ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcHRpb25zLm91dHB1dF9qc29uX3BhdGgsICdh
L291dHB1dC5qc29uJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcHRpb25zLnNvdXJjZV9q
c29uX3BhdGgsICdhL3NvdXJjZS5qc29uJykKIAogCiBpZiBfX25hbWVfXyA9PSAnX19tYWluX18n
Ogo=
</data>

          </attachment>
      

    </bug>

</bugzilla>