<?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>99800</bug_id>
          
          <creation_ts>2012-10-18 20:13:39 -0700</creation_ts>
          <short_desc>Dromaeo should report individual test result</short_desc>
          <delta_ts>2012-12-04 09:42:45 -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>97510</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>abarth</cc>
    
    <cc>dpranke</cc>
    
    <cc>eae</cc>
    
    <cc>eric</cc>
    
    <cc>mjs</cc>
    
    <cc>morrita</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>745927</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-10-18 20:13:39 -0700</bug_when>
    <thetext>Right now, Dromaeo repeats runs within subtests and report the aggregation of results from subtests. This alienates Dromaoe tests from other performance tests and prevents us from making the test more configurable for the bug 97510.

We can mitigate the problem by reporting individual result for each subtest, and then summing each record to compute the aggregated result for each run.

Say we have subtests t_1, t_2, ... t_n for some test t. Right now, Dromaeo measures 5 runs for t_1, t_2, ... t_n, and computes statistics (stdev, etc...) for each subtest t_i with i=1, ..., n. At the end of the day, we&apos;ll get n results, each of which contains mean, median, min, max, &amp; stdev. I&apos;d like to modify Dromaeo slightly so that it&apos;ll also report individual values it obtained in each run as &quot;times&quot;. So for each t_i, we&apos;ll have times(t_i), which is a tuple with 5 values; e.g. (1, 2, 3, 4, 5). In total, we&apos;ll have 5n values for t. Then, I can compute the sum of times(t_i)[j] over i=1...n; this value represents a run of the aggregated test t. This is going to make Dromaeo tests behave like any other performance tests that report multiple runs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745930</commentid>
    <comment_count>1</comment_count>
      <attachid>169539</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-10-18 20:22:15 -0700</bug_when>
    <thetext>Created attachment 169539
Work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746606</commentid>
    <comment_count>2</comment_count>
      <attachid>169688</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-10-19 13:46:45 -0700</bug_when>
    <thetext>Created attachment 169688
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746740</commentid>
    <comment_count>3</comment_count>
      <attachid>169688</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-19 16:20:17 -0700</bug_when>
    <thetext>Comment on attachment 169688
Patch

Attachment 169688 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14457610

New failing tests:
fast/harness/perftests/runs-per-second-log.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781821</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-12-03 13:32:02 -0800</bug_when>
    <thetext>Ping reviewers. This patch is crucial in making other improvements to the perf. test harness.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781830</commentid>
    <comment_count>5</comment_count>
      <attachid>169688</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-12-03 13:39:55 -0800</bug_when>
    <thetext>Comment on attachment 169688
Patch

Looks reasonable to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782391</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-12-04 02:01:40 -0800</bug_when>
    <thetext>Committed r136492: &lt;http://trac.webkit.org/changeset/136492&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782624</commentid>
    <comment_count>7</comment_count>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2012-12-04 09:42:45 -0800</bug_when>
    <thetext>These tests fail on chromium, please fix or rollout.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169539</attachid>
            <date>2012-10-18 20:22:15 -0700</date>
            <delta_ts>2012-10-19 13:46:40 -0700</delta_ts>
            <desc>Work in progress</desc>
            <filename>fix99800</filename>
            <type>text/plain</type>
            <size>5609</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvRHJvbWFlby9yZXNvdXJjZXMvZHJvbWFlby93ZWIvd2Vi
cnVubmVyLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1hbmNlVGVzdHMvRHJvbWFlby9yZXNvdXJj
ZXMvZHJvbWFlby93ZWIvd2VicnVubmVyLmpzCShyZXZpc2lvbiAxMzE4MjgpCisrKyBQZXJmb3Jt
YW5jZVRlc3RzL0Ryb21hZW8vcmVzb3VyY2VzL2Ryb21hZW8vd2ViL3dlYnJ1bm5lci5qcwkod29y
a2luZyBjb3B5KQpAQCAtMTM5LDYgKzEzOSw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZGF0YS52ZXJzaW9uID0gdGVzdFZlcnNpb25zW2N1cklEXTsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLm5hbWUgPSB0aXRsZTsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLnNjYWxlID0gbnVtOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEudGltZXMgPSB0aW1l
czsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dU
ZXN0KGRhdGEpOwogICAgICAgICAgICAgICAgICAgICAgICAgCkluZGV4OiBQZXJmb3JtYW5jZVRl
c3RzL0Ryb21hZW8vcmVzb3VyY2VzL2Ryb21hZW9ydW5uZXIuanMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gUGVy
Zm9ybWFuY2VUZXN0cy9Ecm9tYWVvL3Jlc291cmNlcy9kcm9tYWVvcnVubmVyLmpzCShyZXZpc2lv
biAxMzE4MjgpCisrKyBQZXJmb3JtYW5jZVRlc3RzL0Ryb21hZW8vcmVzb3VyY2VzL2Ryb21hZW9y
dW5uZXIuanMJKHdvcmtpbmcgY29weSkKQEAgLTIsMzAgKzIsMTAgQEAKICAgICAgdmFyIERSVCAg
PSB7CiAgICAgICAgICBiYXNlVVJMOiAiLi9yZXNvdXJjZXMvZHJvbWFlby93ZWIvaW5kZXguaHRt
bCIsCiAKLSAgICAgICAgIGNvbXB1dGVTY29yZXM6IGZ1bmN0aW9uIChyZXN1bHRzKSB7Ci0gICAg
ICAgICAgICAgdmFyIG1lYW4gPSAwLCBtaW4gPSAwLCBtYXggPSAwLCBzdGRldiA9IDAsIHZhcnN1
bSA9IDA7Ci0KLSAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlc3VsdHMubGVuZ3Ro
OyArK2kpIHsKLSAgICAgICAgICAgICAgICAgdmFyIGl0ZW0gPSByZXN1bHRzW2ldOwotICAgICAg
ICAgICAgICAgICBtZWFuICs9IGl0ZW0ubWVhbjsKLSAgICAgICAgICAgICAgICAgbWluICs9IGl0
ZW0ubWluOwotICAgICAgICAgICAgICAgICBtYXggKz0gaXRlbS5tYXg7Ci0gICAgICAgICAgICAg
ICAgIHZhcnN1bSArPSBpdGVtLmRldmlhdGlvbiAqIGl0ZW0uZGV2aWF0aW9uOwotICAgICAgICAg
ICAgIH0KLQotICAgICAgICAgICAgIHJldHVybiB7Ci0gICAgICAgICAgICAgICAgIG1lZGlhbjog
MCwKLSAgICAgICAgICAgICAgICAgbWVhbjogbWVhbiwKLSAgICAgICAgICAgICAgICAgbWluOiBt
aW4sCi0gICAgICAgICAgICAgICAgIG1heDogbWF4LAotICAgICAgICAgICAgICAgICBzdGRldjog
TWF0aC5zcXJ0KHZhcnN1bSksCi0gICAgICAgICAgICAgICAgIHVuaXQ6ICJydW5zL3MiCi0gICAg
ICAgICAgICAgfTsKLSAgICAgICAgIH0sCi0KICAgICAgICAgIHNldHVwOiBmdW5jdGlvbih0ZXN0
TmFtZSkgeworICAgICAgICAgICAgIHZhciBydW5Db3VudCA9IDU7CiAgICAgICAgICAgICAgdmFy
IGlmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOwotICAgICAgICAgICAg
IHZhciB1cmwgPSBEUlQuYmFzZVVSTCArICI/IiArIHRlc3ROYW1lOworICAgICAgICAgICAgIHZh
ciB1cmwgPSBEUlQuYmFzZVVSTCArICI/IiArIHRlc3ROYW1lICsgJyZudW1UZXN0cz0nICsgcnVu
Q291bnQ7CiAgICAgICAgICAgICAgaWZyYW1lLnNldEF0dHJpYnV0ZSgic3JjIiwgdXJsKTsKICAg
ICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZSk7CiAgICAgICAgICAg
ICAgaWZyYW1lLmFkZEV2ZW50TGlzdGVuZXIoCkBAIC0zNCw2ICsxNCw4IEBACiAgICAgICAgICAg
ICAgICAgICAgICBEUlQudGFyZ2V0V2luZG93ID0gaWZyYW1lLmNvbnRlbnREb2N1bWVudC5kZWZh
dWx0VmlldzsKICAgICAgICAgICAgICAgICAgfSk7CiAKKyAgICAgICAgICAgICBQZXJmVGVzdFJ1
bm5lci5wcmVwYXJlVG9NZWFzdXJlVmFsdWVzQXN5bmMoe3J1bkNvdW50OiBydW5Db3VudCwgbm9N
ZW1vcnlNZWFzdXJlbWVudDogdHJ1ZSwgdW5pdDogJ3J1bnMvcyd9KTsKKwogICAgICAgICAgICAg
IHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKAogICAgICAgICAgICAgICAgICAibWVzc2FnZSIsCiAg
ICAgICAgICAgICAgICAgIGZ1bmN0aW9uKGV2ZW50KSB7CkBAIC01NiwxOCArMzgsMjEgQEAKICAg
ICAgICAgIH0sCiAKICAgICAgICAgIHByb2dyZXNzOiBmdW5jdGlvbihtZXNzYWdlKSB7Ci0gICAg
ICAgICAgICAgaWYgKG1lc3NhZ2Uuc3RhdHVzLnNjb3JlKQotICAgICAgICAgICAgICAgICBEUlQu
bG9nKG1lc3NhZ2Uuc3RhdHVzLnNjb3JlLm1lYW4pOworICAgICAgICAgICAgIHZhciBzY29yZSA9
IG1lc3NhZ2Uuc3RhdHVzLnNjb3JlOworICAgICAgICAgICAgIGlmIChzY29yZSkKKyAgICAgICAg
ICAgICAgICAgRFJULmxvZyhzY29yZS5uYW1lICsgJzogWycgKyBzY29yZS50aW1lcy5qb2luKCcs
ICcpICsgJ10nKTsKICAgICAgICAgIH0sCiAKICAgICAgICAgIHRlYXJkb3duOiBmdW5jdGlvbihk
YXRhKSB7Ci0gICAgICAgICAgICAgdmFyIHNjb3JlcyA9IERSVC5jb21wdXRlU2NvcmVzKGRhdGEu
cmVzdWx0KTsKLSAgICAgICAgICAgICBQZXJmVGVzdFJ1bm5lci5wcmludFN0YXRpc3RpY3Moc2Nv
cmVzLCAiVGltZToiKTsKLSAgICAgICAgICAgICBQZXJmVGVzdFJ1bm5lci5nZXRBbmRQcmludE1l
bW9yeVN0YXRpc3RpY3MoKTsKLSAgICAgICAgICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlv
bigpIHsKLSAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICAgfSwgMCk7
CisgICAgICAgICAgICAgdmFyIHRlc3RzID0gZGF0YS5yZXN1bHQ7CisgICAgICAgICAgICAgdmFy
IHRpbWVzID0gW107CisgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXN0cy5sZW5n
dGg7ICsraSkgeworICAgICAgICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHRlc3RzW2ld
LnRpbWVzLmxlbmd0aDsgKytqKQorICAgICAgICAgICAgICAgICAgICAgdGltZXNbal0gPSAodGlt
ZXNbal0gfHwgMCkgKyB0ZXN0c1tpXS50aW1lc1tqXTsKKyAgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRpbWVzLmxlbmd0aDsgKytpKQorICAgICAgICAg
ICAgICAgICBQZXJmVGVzdFJ1bm5lci5tZWFzdXJlVmFsdWVBc3luYyh0aW1lc1tpXSk7CiAgICAg
ICAgICB9LAogCiAgICAgICAgICB0YXJnZXREZWxlZ2F0ZU9mOiBmdW5jdGlvbihmdW5jdGlvbk5h
bWUpIHsKSW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvcmVzb3VyY2VzL3J1bm5lci5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBQZXJmb3JtYW5jZVRlc3RzL3Jlc291cmNlcy9ydW5uZXIuanMJKHJldmlzaW9uIDEz
MTgyOCkKKysrIFBlcmZvcm1hbmNlVGVzdHMvcmVzb3VyY2VzL3J1bm5lci5qcwkod29ya2luZyBj
b3B5KQpAQCAtMTA0LDIyICsxMDQsMjIgQEAKICAgICAgICAgdGhpcy5sb2coIm1heCAiICsgc3Rh
dGlzdGljcy5tYXggKyAiICIgKyBzdGF0aXN0aWNzLnVuaXQpOwogICAgIH0KIAotICAgIFBlcmZU
ZXN0UnVubmVyLmdldFVzZWRNYWxsb2NIZWFwID0gZnVuY3Rpb24oKSB7CisgICAgZnVuY3Rpb24g
Z2V0VXNlZE1hbGxvY0hlYXAoKSB7CiAgICAgICAgIHZhciBzdGF0cyA9IHdpbmRvdy5pbnRlcm5h
bHMubWFsbG9jU3RhdGlzdGljcygpOwogICAgICAgICByZXR1cm4gc3RhdHMuY29tbWl0dGVkVk1C
eXRlcyAtIHN0YXRzLmZyZWVMaXN0Qnl0ZXM7CiAgICAgfQogCi0gICAgUGVyZlRlc3RSdW5uZXIu
Z2V0VXNlZEpTSGVhcCA9IGZ1bmN0aW9uKCkgeworICAgIGZ1bmN0aW9uIGdldFVzZWRKU0hlYXAo
KSB7CiAgICAgICAgIHJldHVybiBjb25zb2xlLm1lbW9yeS51c2VkSlNIZWFwU2l6ZTsKICAgICB9
CiAKICAgICBQZXJmVGVzdFJ1bm5lci5nZXRBbmRQcmludE1lbW9yeVN0YXRpc3RpY3MgPSBmdW5j
dGlvbigpIHsKICAgICAgICAgaWYgKCF3aW5kb3cuaW50ZXJuYWxzKQogICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICB2YXIganNNZW1vcnlTdGF0cyA9IFBlcmZUZXN0UnVubmVyLmNvbXB1dGVT
dGF0aXN0aWNzKFtQZXJmVGVzdFJ1bm5lci5nZXRVc2VkSlNIZWFwKCldLCAiYnl0ZXMiKTsKKyAg
ICAgICAgdmFyIGpzTWVtb3J5U3RhdHMgPSBQZXJmVGVzdFJ1bm5lci5jb21wdXRlU3RhdGlzdGlj
cyhbZ2V0VXNlZEpTSGVhcCgpXSwgImJ5dGVzIik7CiAgICAgICAgIFBlcmZUZXN0UnVubmVyLnBy
aW50U3RhdGlzdGljcyhqc01lbW9yeVN0YXRzLCAiSlMgSGVhcDoiKTsKIAotICAgICAgICB2YXIg
bWFsbG9jTWVtb3J5U3RhdHMgPSBQZXJmVGVzdFJ1bm5lci5jb21wdXRlU3RhdGlzdGljcyhbUGVy
ZlRlc3RSdW5uZXIuZ2V0VXNlZE1hbGxvY0hlYXAoKV0sICJieXRlcyIpOworICAgICAgICB2YXIg
bWFsbG9jTWVtb3J5U3RhdHMgPSBQZXJmVGVzdFJ1bm5lci5jb21wdXRlU3RhdGlzdGljcyhbZ2V0
VXNlZE1hbGxvY0hlYXAoKV0sICJieXRlcyIpOwogICAgICAgICBQZXJmVGVzdFJ1bm5lci5wcmlu
dFN0YXRpc3RpY3MobWFsbG9jTWVtb3J5U3RhdHMsICJNYWxsb2M6Iik7CiAgICAgfQogCkBAIC0y
MDYsOSArMjA2LDkgQEAKICAgICAgICAgICAgIFBlcmZUZXN0UnVubmVyLmxvZygiSWdub3Jpbmcg
d2FybS11cCBydW4gKCIgKyBsYWJlbGVkUmVzdWx0ICsgIikiKTsKICAgICAgICAgZWxzZSB7CiAg
ICAgICAgICAgICByZXN1bHRzLnB1c2gobWVhc3VyZWRWYWx1ZSk7Ci0gICAgICAgICAgICBpZiAo
d2luZG93LmludGVybmFscykgewotICAgICAgICAgICAgICAgIGpzSGVhcFJlc3VsdHMucHVzaChQ
ZXJmVGVzdFJ1bm5lci5nZXRVc2VkSlNIZWFwKCkpOwotICAgICAgICAgICAgICAgIG1hbGxvY0hl
YXBSZXN1bHRzLnB1c2goUGVyZlRlc3RSdW5uZXIuZ2V0VXNlZE1hbGxvY0hlYXAoKSk7CisgICAg
ICAgICAgICBpZiAod2luZG93LmludGVybmFscyAmJiAhdGVzdC5ub01lbW9yeU1lYXN1cmVtZW50
KSB7CisgICAgICAgICAgICAgICAganNIZWFwUmVzdWx0cy5wdXNoKGdldFVzZWRKU0hlYXAoKSk7
CisgICAgICAgICAgICAgICAgbWFsbG9jSGVhcFJlc3VsdHMucHVzaChnZXRVc2VkTWFsbG9jSGVh
cCgpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIFBlcmZUZXN0UnVubmVyLmxvZyhsYWJl
bGVkUmVzdWx0KTsKICAgICAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169688</attachid>
            <date>2012-10-19 13:46:45 -0700</date>
            <delta_ts>2012-12-03 13:39:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99800-20121019134530.patch</filename>
            <type>text/plain</type>
            <size>13889</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1h
bmNlVGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMzE5MzUpCisrKyBQZXJmb3JtYW5jZVRlc3Rz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQzIEBACisyMDEyLTEwLTE5ICBS
eW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIERyb21hZW8gc2hvdWxk
IHJlcG9ydCBpbmRpdmlkdWFsIHRlc3QgcmVzdWx0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTgwMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE1hZGUgb25lIHNtYWxsIG1vZGlmaWNhdGlvbiB0byBEcm9h
bWVvJ3Mgd2VicnVubmVyLmpzIHNvIHRoYXQgaXQgcmVwb3J0cyBpbmRpdmlkdWFsIHJ1bnMvcyB2
YWx1ZXMKKyAgICAgICAgZm9yIGVhY2ggc3VidGVzdC4gVGhpcyBhbGxvd3MgdXMgdG8gY29tcHV0
ZSB0aGUgYWdncmVnYXRlZCBydW4vcyBmb3IgZWFjaCBpdGVyYXRpb24gbGlrZSBvdGhlcgorICAg
ICAgICBwZXJmb3JtYW5jZSB0ZXN0cy4KKworICAgICAgICBBbHNvIHN0b3AgbWVhc3VyaW5nIG1l
bW9yeSB1c2FnZSBpbiBEcm9tYWVvIHRlc3RzIGJlY2F1c2Ugc29tZSBEcm9tYWVvIHRlc3RzIChl
LmcuIGpzbGliLW1vZGlmeS1qcXVlcnkpCisgICAgICAgIGhhdmUgdW5yZWFsaXN0aWMgbWVtb3J5
IHVzYWdlLCBhbmQgbWVhc3VyaW5nIHRoZW0gYXQgdGhlIHRpbWUgb2YgdGVhcmRvd24gZG9lc24n
dCBtYWtlIG11Y2ggc2Vuc2UuCisKKyAgICAgICAgKiBBbmltYXRpb24vYmFsbHMuaHRtbDogRml4
ZWQgdHlwbzogbWVhc3VyZVZhbHVlQXluYy4KKyAgICAgICAgKiBEcm9tYWVvL3Jlc291cmNlcy9k
cm9tYWVvL3dlYi93ZWJydW5uZXIuanM6CisKKyAgICAgICAgKiBEcm9tYWVvL3Jlc291cmNlcy9k
cm9tYWVvcnVubmVyLmpzOgorICAgICAgICAoRFJULnNldHVwKTogQ2FsbCBwcmVwYXJlVG9NZWFz
dXJlVmFsdWVzQXN5bmMgc28gdGhhdCBEUlQudGVhcmRvd24gY2FuIHVzZSBtZWF1c3JlVmFsdWVB
c3luYywgYW5kIGxvZworICAgICAgICAiUnVubmluZyA1IHRpbWVzIi4gU2luY2UgdGhlIGxvZyBj
b250YWluZXIgd2lsbCBiZSBpbnNlcnRlZCBiZWZvcmUgaWZyYW1lLCB3ZSBuZWVkIHRvIGV4cGxp
Y2l0bHkgaW5zZXJ0CisgICAgICAgIHRoZSBpZnJhbWUgYXMgdGhlIGZpcnN0IGNoaWxkIG9mIHRo
ZSBib2R5IGVsZW1lbnQgdG8gYXZvaWQgbG9ncyBmcm9tIGFmZmVjdGluZyB0aGUgaWZyYW1lJ3Mg
cG9zaXRpb24uCisgICAgICAgIEFsc28gc3BlY2lmeSB0aGUgbnVtYmVyIG9mIGl0ZXJhdGlvbnMg
YnkgY2FsbGluZyBQZXJmVGVzdFJ1bm5lci5ydW5Db3VudCgpIHNvIHRoYXQgd2UgbWF5IGFkanVz
dCB0aGUgbnVtYmVyCisgICAgICAgIG9mIGl0ZXJhdGlvbnMgaW4gUGVyZlRlc3RSdW5uZXIuCisK
KyAgICAgICAgKERSVC5wcm9ncmVzcyk6IExvZyBpbmRpdmlkdWFsIG1lYXN1cmVtZW50IGZvciBl
YWNoIHN1YnRlc3QuCisgICAgICAgIChEUlQudGVhcmRvd24pOiBDb21wdXRlIHRoZSBhZ2dyZWdh
dGVkIHJlc3VsdCBmb3IgZWFjaCBpdGVyYXRpb24sIGFuZCBsb2cgdGhlbSB1c2luZyBtZWFzdXJl
VmFsdWVBc3luYy4KKworICAgICAgICAqIHJlc291cmNlcy9ydW5uZXIuanM6CisgICAgICAgIChQ
ZXJmVGVzdFJ1bm5lci5sb2dTdGF0aXN0aWNzKTogTWVyZ2VkIHByaW50U3RhdGlzdGljcyBzaW5j
ZSBpdCdzIG5vIGxvbmdlciBuZWVkZWQgYWZ0ZXIgcjEzMTYzOC4KKyAgICAgICAgKFBlcmZUZXN0
UnVubmVyKTogUmVtb3ZlZCBnZXRBbmRQcmludE1lbW9yeVN0YXRpc3RpY3Mgc2luY2UgaXQgd2Fz
IHVzZWQgb25seSBpbiBEcm9tYWVvIHRlc3RzIGJ1dAorICAgICAgICB3ZSBubyBsb25nZXIgbWVh
c3VyZSBtZW1vcnkgdXNhZ2UgaW4gRHJvbWFlbyB0ZXN0cy4KKworICAgICAgICAoc3RhcnQpOiBJ
bmNyZW1lbnQgY29tcGxldGVkUnVucyBmcm9tIC0xIHRvIDAgZm9yIERyb21hZW8gdGVzdHMgd2hl
cmUgd2UgZG9uJ3Qgd2FudCB0byBpZ25vcmUgdGhlIGluaXRpYWwKKyAgICAgICAgbWVhc3VyZW1l
bnQuIE5vdGUgdGhhdCBpZ25vcmVXYXJtVXBBbmRMb2cgaWdub3JlcyB0aGUgbWVhc3VyZW1lbnRz
IGZvciB3aGljaCBjb21wbGV0ZWRSdW5zIGlzIG5lZ2F0aXZlLgorCisgICAgICAgIChpZ25vcmVX
YXJtVXBBbmRMb2cpOiBXZSBkb24ndCBtZWFzdXJlIG1lbW9yeSB1c2FnZSBpbiBEcm9tYWVvIHRl
c3RzLiBTZWUgYWJvdmUuCisgICAgICAgIChQZXJmVGVzdFJ1bm5lci5ydW5Db3VudCk6IEFkZGVk
LiBUaGlzIGFic3RyYWN0aW9uIGFsbG93cyB1cyB0byBhdXRvLWFkanVzdCB0aGUgbnVtYmVyIG9m
IGl0ZXJhdGlvbnMgZnJvbQorICAgICAgICBydW4tcGVyZi10ZXN0cyBpbiBuZWFyIGZ1dHVyZS4K
KyAgICAgICAgKFBlcmZUZXN0UnVubmVyLm1lYXN1cmVWYWx1ZUFzeW5jKTogUmVuYW1lZCBmcm9t
IG1lYXN1cmVWYWx1ZUF5bmMuCisKIDIwMTItMTAtMTcgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgQnVtcCB1cCB0aGUgbnVtYmVyIG9mIGl0ZXJhdGlvbnMgb2Yg
aHRtbDUtZnVsbC1yZW5kZXIgdG8gNQpJbmRleDogUGVyZm9ybWFuY2VUZXN0cy9BbmltYXRpb24v
YmFsbHMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBQZXJmb3JtYW5jZVRlc3RzL0FuaW1hdGlvbi9iYWxs
cy5odG1sCShyZXZpc2lvbiAxMzE4NDgpCisrKyBQZXJmb3JtYW5jZVRlc3RzL0FuaW1hdGlvbi9i
YWxscy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xNDAsNyArMTQwLDcgQEAKICAgICAgICAgICAg
IHZhciBmcmFtZVJhdGVWYWwgPSBGUkFNRVNfUEVSX1RJTUVSX1JFQURJTkcgKiAxMDAwIC8gKChj
dXJyVGltZSAtIGZyYW1lVGltZXNbMF0pIC8gKGZyYW1lVGltZXMubGVuZ3RoIC0gMSkpOwogCiAg
ICAgICAgICAgICBpZiAoIWlzTmFOKGZyYW1lUmF0ZVZhbCkpCi0gICAgICAgICAgICAgICAgUGVy
ZlRlc3RSdW5uZXIubWVhc3VyZVZhbHVlQXluYyhmcmFtZVJhdGVWYWwpOworICAgICAgICAgICAg
ICAgIFBlcmZUZXN0UnVubmVyLm1lYXN1cmVWYWx1ZUFzeW5jKGZyYW1lUmF0ZVZhbCk7CiAgICAg
ICAgIH0KICAgICB9CiAKSW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvRHJvbWFlby9yZXNvdXJjZXMv
ZHJvbWFlb3J1bm5lci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBQZXJmb3JtYW5jZVRlc3RzL0Ryb21hZW8v
cmVzb3VyY2VzL2Ryb21hZW9ydW5uZXIuanMJKHJldmlzaW9uIDEzMTg0OCkKKysrIFBlcmZvcm1h
bmNlVGVzdHMvRHJvbWFlby9yZXNvdXJjZXMvZHJvbWFlb3J1bm5lci5qcwkod29ya2luZyBjb3B5
KQpAQCAtMiwzMiArMiwxMyBAQAogICAgICB2YXIgRFJUICA9IHsKICAgICAgICAgIGJhc2VVUkw6
ICIuL3Jlc291cmNlcy9kcm9tYWVvL3dlYi9pbmRleC5odG1sIiwKIAotICAgICAgICAgY29tcHV0
ZVNjb3JlczogZnVuY3Rpb24gKHJlc3VsdHMpIHsKLSAgICAgICAgICAgICB2YXIgbWVhbiA9IDAs
IG1pbiA9IDAsIG1heCA9IDAsIHN0ZGV2ID0gMCwgdmFyc3VtID0gMDsKLQotICAgICAgICAgICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgcmVzdWx0cy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAg
ICAgICB2YXIgaXRlbSA9IHJlc3VsdHNbaV07Ci0gICAgICAgICAgICAgICAgIG1lYW4gKz0gaXRl
bS5tZWFuOwotICAgICAgICAgICAgICAgICBtaW4gKz0gaXRlbS5taW47Ci0gICAgICAgICAgICAg
ICAgIG1heCArPSBpdGVtLm1heDsKLSAgICAgICAgICAgICAgICAgdmFyc3VtICs9IGl0ZW0uZGV2
aWF0aW9uICogaXRlbS5kZXZpYXRpb247Ci0gICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAg
cmV0dXJuIHsKLSAgICAgICAgICAgICAgICAgbWVkaWFuOiAwLAotICAgICAgICAgICAgICAgICBt
ZWFuOiBtZWFuLAotICAgICAgICAgICAgICAgICBtaW46IG1pbiwKLSAgICAgICAgICAgICAgICAg
bWF4OiBtYXgsCi0gICAgICAgICAgICAgICAgIHN0ZGV2OiBNYXRoLnNxcnQodmFyc3VtKSwKLSAg
ICAgICAgICAgICAgICAgdW5pdDogInJ1bnMvcyIKLSAgICAgICAgICAgICB9OwotICAgICAgICAg
fSwKLQogICAgICAgICAgc2V0dXA6IGZ1bmN0aW9uKHRlc3ROYW1lKSB7CisgICAgICAgICAgICAg
UGVyZlRlc3RSdW5uZXIucHJlcGFyZVRvTWVhc3VyZVZhbHVlc0FzeW5jKHtydW5Db3VudDogNSwg
ZG9Ob3RNZWFzdXJlTWVtb3J5VXNhZ2U6IHRydWUsIGRvTm90SWdub3JlSW5pdGlhbFJ1bjogdHJ1
ZSwgdW5pdDogJ3J1bnMvcyd9KTsKKwogICAgICAgICAgICAgIHZhciBpZnJhbWUgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKLSAgICAgICAgICAgICB2YXIgdXJsID0gRFJULmJh
c2VVUkwgKyAiPyIgKyB0ZXN0TmFtZTsKKyAgICAgICAgICAgICB2YXIgdXJsID0gRFJULmJhc2VV
UkwgKyAiPyIgKyB0ZXN0TmFtZSArICcmbnVtVGVzdHM9JyArIFBlcmZUZXN0UnVubmVyLnJ1bkNv
dW50KCk7CiAgICAgICAgICAgICAgaWZyYW1lLnNldEF0dHJpYnV0ZSgic3JjIiwgdXJsKTsKLSAg
ICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZSk7CisgICAgICAgICAg
ICAgZG9jdW1lbnQuYm9keS5pbnNlcnRCZWZvcmUoaWZyYW1lLCBkb2N1bWVudC5ib2R5LmZpcnN0
Q2hpbGQpOwogICAgICAgICAgICAgIGlmcmFtZS5hZGRFdmVudExpc3RlbmVyKAogICAgICAgICAg
ICAgICAgICAibG9hZCIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgICAgRFJULnRh
cmdldERvY3VtZW50ID0gaWZyYW1lLmNvbnRlbnREb2N1bWVudDsKQEAgLTU2LDE4ICszNywyNSBA
QAogICAgICAgICAgfSwKIAogICAgICAgICAgcHJvZ3Jlc3M6IGZ1bmN0aW9uKG1lc3NhZ2UpIHsK
LSAgICAgICAgICAgICBpZiAobWVzc2FnZS5zdGF0dXMuc2NvcmUpCi0gICAgICAgICAgICAgICAg
IERSVC5sb2cobWVzc2FnZS5zdGF0dXMuc2NvcmUubWVhbik7CisgICAgICAgICAgICAgdmFyIHNj
b3JlID0gbWVzc2FnZS5zdGF0dXMuc2NvcmU7CisgICAgICAgICAgICAgaWYgKHNjb3JlKQorICAg
ICAgICAgICAgICAgICBEUlQubG9nKHNjb3JlLm5hbWUgKyAnOiBbJyArIHNjb3JlLnRpbWVzLmpv
aW4oJywgJykgKyAnXScpOwogICAgICAgICAgfSwKIAogICAgICAgICAgdGVhcmRvd246IGZ1bmN0
aW9uKGRhdGEpIHsKLSAgICAgICAgICAgICB2YXIgc2NvcmVzID0gRFJULmNvbXB1dGVTY29yZXMo
ZGF0YS5yZXN1bHQpOwotICAgICAgICAgICAgIFBlcmZUZXN0UnVubmVyLnByaW50U3RhdGlzdGlj
cyhzY29yZXMsICJUaW1lOiIpOwotICAgICAgICAgICAgIFBlcmZUZXN0UnVubmVyLmdldEFuZFBy
aW50TWVtb3J5U3RhdGlzdGljcygpOwotICAgICAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1
bmN0aW9uKCkgewotICAgICAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAg
ICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgICB9
LCAwKTsKKyAgICAgICAgICAgICBQZXJmVGVzdFJ1bm5lci5sb2coJycpOworCisgICAgICAgICAg
ICAgdmFyIHRlc3RzID0gZGF0YS5yZXN1bHQ7CisgICAgICAgICAgICAgdmFyIHRpbWVzID0gW107
CisgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXN0cy5sZW5ndGg7ICsraSkgewor
ICAgICAgICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHRlc3RzW2ldLnRpbWVzLmxlbmd0
aDsgKytqKSB7CisgICAgICAgICAgICAgICAgICAgICB2YXIgcnVuc1BlclNlY29uZCA9IHRlc3Rz
W2ldLnRpbWVzW2pdOworICAgICAgICAgICAgICAgICAgICAgdGltZXNbal0gPSAodGltZXNbal0g
fHwgMCkgKyAxIC8gcnVuc1BlclNlY29uZDsKKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGltZXMubGVuZ3RoOyAr
K2kpCisgICAgICAgICAgICAgICAgIFBlcmZUZXN0UnVubmVyLm1lYXN1cmVWYWx1ZUFzeW5jKDEg
LyB0aW1lc1tpXSk7CiAgICAgICAgICB9LAogCiAgICAgICAgICB0YXJnZXREZWxlZ2F0ZU9mOiBm
dW5jdGlvbihmdW5jdGlvbk5hbWUpIHsKSW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvRHJvbWFlby9y
ZXNvdXJjZXMvZHJvbWFlby93ZWIvd2VicnVubmVyLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1h
bmNlVGVzdHMvRHJvbWFlby9yZXNvdXJjZXMvZHJvbWFlby93ZWIvd2VicnVubmVyLmpzCShyZXZp
c2lvbiAxMzE4NDgpCisrKyBQZXJmb3JtYW5jZVRlc3RzL0Ryb21hZW8vcmVzb3VyY2VzL2Ryb21h
ZW8vd2ViL3dlYnJ1bm5lci5qcwkod29ya2luZyBjb3B5KQpAQCAtMTM5LDYgKzEzOSw3IEBACiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS52ZXJzaW9uID0gdGVz
dFZlcnNpb25zW2N1cklEXTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBkYXRhLm5hbWUgPSB0aXRsZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBkYXRhLnNjYWxlID0gbnVtOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGRhdGEudGltZXMgPSB0aW1lczsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBsb2dUZXN0KGRhdGEpOwogICAgICAgICAgICAgICAgICAgICAg
ICAgCkluZGV4OiBQZXJmb3JtYW5jZVRlc3RzL3Jlc291cmNlcy9ydW5uZXIuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gUGVyZm9ybWFuY2VUZXN0cy9yZXNvdXJjZXMvcnVubmVyLmpzCShyZXZpc2lvbiAxMzE4
NDgpCisrKyBQZXJmb3JtYW5jZVRlc3RzL3Jlc291cmNlcy9ydW5uZXIuanMJKHdvcmtpbmcgY29w
eSkKQEAgLTg5LDEwICs4OSw2IEBAIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogCiAgICAgUGVy
ZlRlc3RSdW5uZXIubG9nU3RhdGlzdGljcyA9IGZ1bmN0aW9uICh2YWx1ZXMsIHVuaXQsIHRpdGxl
KSB7CiAgICAgICAgIHZhciBzdGF0aXN0aWNzID0gdGhpcy5jb21wdXRlU3RhdGlzdGljcyh2YWx1
ZXMsIHVuaXQpOwotICAgICAgICB0aGlzLnByaW50U3RhdGlzdGljcyhzdGF0aXN0aWNzLCB0aXRs
ZSk7Ci0gICAgfQotCi0gICAgUGVyZlRlc3RSdW5uZXIucHJpbnRTdGF0aXN0aWNzID0gZnVuY3Rp
b24gKHN0YXRpc3RpY3MsIHRpdGxlKSB7CiAgICAgICAgIHRoaXMubG9nKCIiKTsKICAgICAgICAg
dGhpcy5sb2codGl0bGUpOwogICAgICAgICBpZiAoc3RhdGlzdGljcy52YWx1ZXMpCkBAIC0xMDQs
MjUgKzEwMCwxNSBAQCBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAgdGhpcy5sb2co
Im1heCAiICsgc3RhdGlzdGljcy5tYXggKyAiICIgKyBzdGF0aXN0aWNzLnVuaXQpOwogICAgIH0K
IAotICAgIFBlcmZUZXN0UnVubmVyLmdldFVzZWRNYWxsb2NIZWFwID0gZnVuY3Rpb24oKSB7Cisg
ICAgZnVuY3Rpb24gZ2V0VXNlZE1hbGxvY0hlYXAoKSB7CiAgICAgICAgIHZhciBzdGF0cyA9IHdp
bmRvdy5pbnRlcm5hbHMubWFsbG9jU3RhdGlzdGljcygpOwogICAgICAgICByZXR1cm4gc3RhdHMu
Y29tbWl0dGVkVk1CeXRlcyAtIHN0YXRzLmZyZWVMaXN0Qnl0ZXM7CiAgICAgfQogCi0gICAgUGVy
ZlRlc3RSdW5uZXIuZ2V0VXNlZEpTSGVhcCA9IGZ1bmN0aW9uKCkgeworICAgIGZ1bmN0aW9uIGdl
dFVzZWRKU0hlYXAoKSB7CiAgICAgICAgIHJldHVybiBjb25zb2xlLm1lbW9yeS51c2VkSlNIZWFw
U2l6ZTsKICAgICB9CiAKLSAgICBQZXJmVGVzdFJ1bm5lci5nZXRBbmRQcmludE1lbW9yeVN0YXRp
c3RpY3MgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgaWYgKCF3aW5kb3cuaW50ZXJuYWxzKQotICAg
ICAgICAgICAgcmV0dXJuOwotICAgICAgICB2YXIganNNZW1vcnlTdGF0cyA9IFBlcmZUZXN0UnVu
bmVyLmNvbXB1dGVTdGF0aXN0aWNzKFtQZXJmVGVzdFJ1bm5lci5nZXRVc2VkSlNIZWFwKCldLCAi
Ynl0ZXMiKTsKLSAgICAgICAgUGVyZlRlc3RSdW5uZXIucHJpbnRTdGF0aXN0aWNzKGpzTWVtb3J5
U3RhdHMsICJKUyBIZWFwOiIpOwotCi0gICAgICAgIHZhciBtYWxsb2NNZW1vcnlTdGF0cyA9IFBl
cmZUZXN0UnVubmVyLmNvbXB1dGVTdGF0aXN0aWNzKFtQZXJmVGVzdFJ1bm5lci5nZXRVc2VkTWFs
bG9jSGVhcCgpXSwgImJ5dGVzIik7Ci0gICAgICAgIFBlcmZUZXN0UnVubmVyLnByaW50U3RhdGlz
dGljcyhtYWxsb2NNZW1vcnlTdGF0cywgIk1hbGxvYzoiKTsKLSAgICB9Ci0KICAgICBQZXJmVGVz
dFJ1bm5lci5nYyA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgaWYgKHdpbmRvdy5HQ0NvbnRyb2xs
ZXIpCiAgICAgICAgICAgICB3aW5kb3cuR0NDb250cm9sbGVyLmNvbGxlY3QoKTsKQEAgLTE3MCw2
ICsxNTYsOCBAQCBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAgcnVuQ291bnQgPSB0
ZXN0LnJ1bkNvdW50IHx8IDIwOwogICAgICAgICBsb2dMaW5lcyA9IHdpbmRvdy50ZXN0UnVubmVy
ID8gW10gOiBudWxsOwogICAgICAgICBQZXJmVGVzdFJ1bm5lci5sb2coIlJ1bm5pbmcgIiArIHJ1
bkNvdW50ICsgIiB0aW1lcyIpOworICAgICAgICBpZiAodGVzdC5kb05vdElnbm9yZUluaXRpYWxS
dW4pCisgICAgICAgICAgICBjb21wbGV0ZWRSdW5zKys7CiAgICAgICAgIGlmIChydW5uZXIpCiAg
ICAgICAgICAgICBzY2hlZHVsZU5leHRSdW4ocnVubmVyKTsKICAgICB9CkBAIC0yMDYsOSArMTk0
LDkgQEAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgICAgICBQZXJmVGVzdFJ1bm5l
ci5sb2coIklnbm9yaW5nIHdhcm0tdXAgcnVuICgiICsgbGFiZWxlZFJlc3VsdCArICIpIik7CiAg
ICAgICAgIGVsc2UgewogICAgICAgICAgICAgcmVzdWx0cy5wdXNoKG1lYXN1cmVkVmFsdWUpOwot
ICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKLSAgICAgICAgICAgICAgICBqc0hl
YXBSZXN1bHRzLnB1c2goUGVyZlRlc3RSdW5uZXIuZ2V0VXNlZEpTSGVhcCgpKTsKLSAgICAgICAg
ICAgICAgICBtYWxsb2NIZWFwUmVzdWx0cy5wdXNoKFBlcmZUZXN0UnVubmVyLmdldFVzZWRNYWxs
b2NIZWFwKCkpOworICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMgJiYgIWN1cnJlbnRU
ZXN0LmRvTm90TWVhc3VyZU1lbW9yeVVzYWdlKSB7CisgICAgICAgICAgICAgICAganNIZWFwUmVz
dWx0cy5wdXNoKGdldFVzZWRKU0hlYXAoKSk7CisgICAgICAgICAgICAgICAgbWFsbG9jSGVhcFJl
c3VsdHMucHVzaChnZXRVc2VkTWFsbG9jSGVhcCgpKTsKICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIFBlcmZUZXN0UnVubmVyLmxvZyhsYWJlbGVkUmVzdWx0KTsKICAgICAgICAgfQpAQCAtMjM1
LDEyICsyMjMsMTYgQEAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgICAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICB9CiAKKyAgICBQZXJmVGVzdFJ1bm5lci5ydW5Db3Vu
dCA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgcmV0dXJuIHJ1bkNvdW50OworICAgIH0KKwogICAg
IFBlcmZUZXN0UnVubmVyLnByZXBhcmVUb01lYXN1cmVWYWx1ZXNBc3luYyA9IGZ1bmN0aW9uICh0
ZXN0KSB7CiAgICAgICAgIFBlcmZUZXN0UnVubmVyLnVuaXQgPSB0ZXN0LnVuaXQ7CiAgICAgICAg
IHN0YXJ0KHRlc3QpOwogICAgIH0KIAotICAgIFBlcmZUZXN0UnVubmVyLm1lYXN1cmVWYWx1ZUF5
bmMgPSBmdW5jdGlvbiAobWVhc3VyZWRWYWx1ZSkgeworICAgIFBlcmZUZXN0UnVubmVyLm1lYXN1
cmVWYWx1ZUFzeW5jID0gZnVuY3Rpb24gKG1lYXN1cmVkVmFsdWUpIHsKICAgICAgICAgY29tcGxl
dGVkUnVucysrOwogCiAgICAgICAgIHRyeSB7CkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMzE5MzUpCisrKyBUb29scy9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0xMC0xOSAgUnlvc3Vr
ZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBEcm9tYWVvIHNob3VsZCByZXBv
cnQgaW5kaXZpZHVhbCB0ZXN0IHJlc3VsdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTk4MDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBJZ25vcmUgc3VidGVzdCByZXN1bHRzIHNwaXQgb3V0IGJ5IERyb21h
ZW8gdGVzdHMuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BlcmZvcm1hbmNlX3Rlc3Rz
L3BlcmZ0ZXN0LnB5OgorICAgICAgICAoUGVyZlRlc3QpOiBBZGRlZCBhIGxpbmUgdG8gaWdub3Jl
LgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcGVyZm9ybWFuY2VfdGVzdHMvcGVyZnRlc3Rf
dW5pdHRlc3QucHk6CisgICAgICAgIChNYWluVGVzdC50ZXN0X3BhcnNlX291dHB1dF93aXRoX3N1
YnRlc3RzKTogQWRkZWQuCisKIDIwMTItMDktMDggIEFscGhhIExhbSAgPGhjbGFtQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIEltcGxlbWVudCBkZWZlcnJlZCBpbWFnZSBkZWNv
ZGluZwpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wZXJmb3JtYW5jZV90ZXN0cy9wZXJm
dGVzdC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BlcmZvcm1hbmNl
X3Rlc3RzL3BlcmZ0ZXN0LnB5CShyZXZpc2lvbiAxMzE4NDgpCisrKyBUb29scy9TY3JpcHRzL3dl
YmtpdHB5L3BlcmZvcm1hbmNlX3Rlc3RzL3BlcmZ0ZXN0LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0x
MDIsNyArMTAyLDEwIEBAIGNsYXNzIFBlcmZUZXN0KG9iamVjdCk6CiAgICAgICAgIHJlLmNvbXBp
bGUocmUuZXNjYXBlKCIiImZyYW1lICI8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMC0tPi0tPiIg
LSBoYXMgMSBvbnVubG9hZCBoYW5kbGVyKHMpIiIiKSksCiAgICAgICAgIHJlLmNvbXBpbGUocmUu
ZXNjYXBlKCIiImZyYW1lICI8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMC0tPi88IS0tZnJhbWUw
LS0+LS0+IiAtIGhhcyAxIG9udW5sb2FkIGhhbmRsZXIocykiIiIpKSwKICAgICAgICAgIyBGb2xs
b3dpbmcgaXMgZm9yIGh0bWw1Lmh0bWwKLSAgICAgICAgcmUuY29tcGlsZShyZS5lc2NhcGUoIiIi
QmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVj
cy93ZWItYXBwcy9jdXJyZW50LXdvcmsvIiIiKSldCisgICAgICAgIHJlLmNvbXBpbGUocmUuZXNj
YXBlKCIiIkJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwOi8vd3d3LndoYXR3Zy5v
cmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrLyIiIikpLAorICAgICAgICAjIERyb21hZW8g
cmVwb3J0cyB2YWx1ZXMgZm9yIHN1YnRlc3RzLiBJZ25vcmUgdGhlbSBmb3Igbm93LgorICAgICAg
ICByZS5jb21waWxlKHInKD9QPG5hbWU+LispOiBcWyg/UDx2YWx1ZXM+KFxkKyguXGQrKT8sXHMr
KSpcZCsoLlxkKyk/KVxdJyksCisgICAgXQogCiAgICAgZGVmIF9zaG91bGRfaWdub3JlX2xpbmVf
aW5fcGFyc2VyX3Rlc3RfcmVzdWx0KHNlbGYsIGxpbmUpOgogICAgICAgICBpZiBub3QgbGluZToK
SW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcGVyZm9ybWFuY2VfdGVzdHMvcGVyZnRlc3Rf
dW5pdHRlc3QucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wZXJmb3Jt
YW5jZV90ZXN0cy9wZXJmdGVzdF91bml0dGVzdC5weQkocmV2aXNpb24gMTMxODQ4KQorKysgVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9wZXJmb3JtYW5jZV90ZXN0cy9wZXJmdGVzdF91bml0dGVzdC5w
eQkod29ya2luZyBjb3B5KQpAQCAtOTksNiArOTksMzMgQEAgY2xhc3MgTWFpblRlc3QodW5pdHRl
c3QuVGVzdENhc2UpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFjdHVhbF9zdGRlcnIsICcn
KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFjdHVhbF9sb2dzLCAnc29tZS11bnJlY29nbml6
YWJsZS1saW5lXG4nKQogCisgICAgZGVmIHRlc3RfcGFyc2Vfb3V0cHV0X3dpdGhfc3VidGVzdHMo
c2VsZik6CisgICAgICAgIG91dHB1dCA9IERyaXZlck91dHB1dCgnXG4nLmpvaW4oWworICAgICAg
ICAgICAgJ1J1bm5pbmcgMjAgdGltZXMnLAorICAgICAgICAgICAgJ3NvbWUgdGVzdDogWzEsIDIs
IDMsIDQsIDVdJywKKyAgICAgICAgICAgICdvdGhlciB0ZXN0ID0gZWxzZTogWzYsIDcsIDgsIDks
IDEwXScsCisgICAgICAgICAgICAnJywKKyAgICAgICAgICAgICdUaW1lOicsCisgICAgICAgICAg
ICAndmFsdWVzIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwg
MTUsIDE2LCAxNywgMTgsIDE5IG1zJywKKyAgICAgICAgICAgICdhdmcgMTEwMCBtcycsCisgICAg
ICAgICAgICAnbWVkaWFuIDExMDEgbXMnLAorICAgICAgICAgICAgJ3N0ZGV2IDExIG1zJywKKyAg
ICAgICAgICAgICdtaW4gMTA4MCBtcycsCisgICAgICAgICAgICAnbWF4IDExMjAgbXMnXSksIGlt
YWdlPU5vbmUsIGltYWdlX2hhc2g9Tm9uZSwgYXVkaW89Tm9uZSkKKyAgICAgICAgb3V0cHV0X2Nh
cHR1cmUgPSBPdXRwdXRDYXB0dXJlKCkKKyAgICAgICAgb3V0cHV0X2NhcHR1cmUuY2FwdHVyZV9v
dXRwdXQoKQorICAgICAgICB0cnk6CisgICAgICAgICAgICB0ZXN0ID0gUGVyZlRlc3QoTm9uZSwg
J3NvbWUtdGVzdCcsICcvcGF0aC9zb21lLWRpci9zb21lLXRlc3QnKQorICAgICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCh0ZXN0LnBhcnNlX291dHB1dChvdXRwdXQpLAorICAgICAgICAgICAgICAg
IHsnc29tZS10ZXN0JzogeydhdmcnOiAxMTAwLjAsICdtZWRpYW4nOiAxMTAxLjAsICdtaW4nOiAx
MDgwLjAsICdtYXgnOiAxMTIwLjAsICdzdGRldic6IDExLjAsICd1bml0JzogJ21zJywKKyAgICAg
ICAgICAgICAgICAgICAgJ3ZhbHVlcyc6IFtpIGZvciBpIGluIHJhbmdlKDEsIDIwKV19fSkKKyAg
ICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGFjdHVhbF9zdGRv
dXQsIGFjdHVhbF9zdGRlcnIsIGFjdHVhbF9sb2dzID0gb3V0cHV0X2NhcHR1cmUucmVzdG9yZV9v
dXRwdXQoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFjdHVhbF9zdGRvdXQsICcnKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGFjdHVhbF9zdGRlcnIsICcnKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGFjdHVhbF9sb2dzLCAnUkVTVUxUIHNvbWUtdGVzdD0gMTEwMC4wIG1zXG5tZWRp
YW49IDExMDEuMCBtcywgc3RkZXY9IDExLjAgbXMsIG1pbj0gMTA4MC4wIG1zLCBtYXg9IDExMjAu
MCBtc1xuJykKKwogCiBjbGFzcyBUZXN0UGFnZUxvYWRpbmdQZXJmVGVzdCh1bml0dGVzdC5UZXN0
Q2FzZSk6CiAgICAgY2xhc3MgTW9ja0RyaXZlcihvYmplY3QpOgo=
</data>
<flag name="review"
          id="183069"
          type_id="1"
          status="+"
          setter="eric"
    />
    <flag name="commit-queue"
          id="183106"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
      

    </bug>

</bugzilla>