<?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>85410</bug_id>
          
          <creation_ts>2012-05-02 13:06:13 -0700</creation_ts>
          <short_desc>Need tests for PerfTestRunner.computeStatistics</short_desc>
          <delta_ts>2012-05-06 21:06:03 -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>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>
          <dependson>85435</dependson>
    
    <dependson>85770</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="Tom Zakrajsek">tomz</assigned_to>
          <cc>rniwa</cc>
    
    <cc>tomz</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>614576</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-02 13:06:13 -0700</bug_when>
    <thetext>Need tests for PerfTestRunner.computeStatistics
Requested by tomz on #webkit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>614583</commentid>
    <comment_count>1</comment_count>
      <attachid>139867</attachid>
    <who name="Tom Zakrajsek">tomz</who>
    <bug_when>2012-05-02 13:12:09 -0700</bug_when>
    <thetext>Created attachment 139867
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>614605</commentid>
    <comment_count>2</comment_count>
      <attachid>139867</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-05-02 13:29:18 -0700</bug_when>
    <thetext>Comment on attachment 139867
Patch

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

Thanks for the patch! I think we want one more iteration here.

&gt; LayoutTests/fast/harness/perf-runner-compute-statistics.html:6
&gt; +  &lt;script src=&quot;../../fast/js/resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
&gt; +  &lt;script src=&quot;../../../PerformanceTests/resources/runner.js&quot;&gt;&lt;/script&gt;
&gt; +  &lt;script type=&quot;text/javascript&quot;&gt;

I would prefer not indent script elements like this.

&gt; LayoutTests/fast/harness/perf-runner-compute-statistics.html:11
&gt; +    /** Find the minimum value in an array of numbers.
&gt; +     *
&gt; +     * @param array     input array of numbers
&gt; +     * @return          minimum value in array
&gt; +     */

We don&apos;t normally add per-function comment like this.
It makes the code more verbose than needed.

&gt; LayoutTests/fast/harness/perf-runner-compute-statistics.html:12
&gt; +    Array.min = function(array) {

You should probably check that Array doesn&apos;t already have min.

&gt; LayoutTests/fast/harness/perf-runner-compute-statistics.html:13
&gt; +      return Math.min.apply(Math, array);

Please use 4-space indentation.

&gt; LayoutTests/fast/harness/perf-runner-compute-statistics.html:33
&gt; +      array.sort( function(a,b) {return a - b;} );

Please add spaces between { and return, and ; and }

&gt; LayoutTests/fast/harness/perf-runner-compute-statistics.html:48
&gt; +      return Array.sum(array)/array.length;

Space needed around /.

&gt; LayoutTests/fast/harness/perf-runner-compute-statistics.html:58
&gt; +      for (var a in array) {

Please don&apos;t use one-letter variable name like a.

&gt; LayoutTests/fast/harness/perf-runner-compute-statistics.html:72
&gt; +      for (var a in array) {

Ditto.

&gt; LayoutTests/fast/harness/perf-runner-compute-statistics.html:95
&gt; +      for (var a in array) {

Ditto.

&gt; LayoutTests/fast/harness/perf-runner-compute-statistics.html:124
&gt; +    /** Ensure no latent divide by 0&apos;s for an odd number of elements. */

Instead of adding comment like this. It&apos;s probably more helpful to put it in debug().

&gt; LayoutTests/fast/harness/perf-runner-compute-statistics.html:138
&gt; +    /** This test will catch if any order dependencies in the data, such as
&gt; +     *  needing to be numerically sorted, are not resolved by the algorithm.
&gt; +     *  This variant covers an odd number of elements.
&gt; +     */

Ditto.

&gt; LayoutTests/fast/harness/perf-runner-compute-statistics.html:159
&gt; +    /** This test will catch if any order dependencies in the data, such as
&gt; +     *  needing to be numerically sorted, are not resolved by the algorithm.
&gt; +     *  This variant covers an odd number of elements, and negative values.
&gt; +     */

Ditto.

&gt; LayoutTests/fast/harness/perf-runner-compute-statistics.html:204
&gt; +  &lt;script type=&quot;text/javascript&quot;&gt;
&gt; +    // runner.js marks this as an async test so we need to call notifyDone.
&gt; +    layoutTestController.notifyDone();
&gt; +  &lt;/script&gt;

We can merge this into the script element above, no?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>614741</commentid>
    <comment_count>3</comment_count>
      <attachid>139898</attachid>
    <who name="Tom Zakrajsek">tomz</who>
    <bug_when>2012-05-02 15:50:01 -0700</bug_when>
    <thetext>Created attachment 139898
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>614743</commentid>
    <comment_count>4</comment_count>
      <attachid>139898</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-05-02 15:52:24 -0700</bug_when>
    <thetext>Comment on attachment 139898
Patch

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

&gt; LayoutTests/fast/harness/perftests/perf-runner-compute-statistics.html:15
&gt; +        // don&apos;t want side effects on the input array, so...

Please don&apos;t abbreviate &quot;original&quot;.

&gt; PerformanceTests/resources/runner.js:2
&gt; +// There are tests for computeStatistics() located in
&gt; +// LayoutTests/fast/harness/perftests

You can probably fit this in one line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>614764</commentid>
    <comment_count>5</comment_count>
    <who name="Tom Zakrajsek">tomz</who>
    <bug_when>2012-05-02 16:08:01 -0700</bug_when>
    <thetext>Committed r115905: &lt;http://trac.webkit.org/changeset/115905&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>614973</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-05-02 21:25:33 -0700</bug_when>
    <thetext>Reopen the bug since the patch was rolled out in http://trac.webkit.org/changeset/115917</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>615053</commentid>
    <comment_count>7</comment_count>
    <who name="Tom Zakrajsek">tomz</who>
    <bug_when>2012-05-02 23:43:04 -0700</bug_when>
    <thetext>Committed r115942: &lt;http://trac.webkit.org/changeset/115942&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617344</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-06 20:54:51 -0700</bug_when>
    <thetext>Re-opened since this is blocked by 85770</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617349</commentid>
    <comment_count>9</comment_count>
    <who name="Tom Zakrajsek">tomz</who>
    <bug_when>2012-05-06 21:06:03 -0700</bug_when>
    <thetext>This was reopened while testing &quot;rollout&quot; capability.  This fix was good and the rollout patch was cancelled after it was verified.  This bug remains fixed.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139867</attachid>
            <date>2012-05-02 13:12:09 -0700</date>
            <delta_ts>2012-05-02 15:49:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85410-20120502131207.patch</filename>
            <type>text/plain</type>
            <size>9957</size>
            <attacher name="Tom Zakrajsek">tomz</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1ODczCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggN2MxNzg4NDBiM2JiYjJiZmNlN2Nm
MzUxNzk5YzZhMzkxMGU2MjgxMy4uZjViNTg1OWFmN2Y1MDk2ZWI4ZWIyMTZlZjFkMTU5NjZiNjdj
MzQxNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTA1LTAyICBUb20gWmFrcmFqc2VrICA8
dG9tekBjb2RlYXVyb3JhLm9yZz4KKworICAgICAgICBOZWVkIHRlc3RzIGZvciBQZXJmVGVzdFJ1
bm5lci5jb21wdXRlU3RhdGlzdGljcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODU0MTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGZhc3QvaGFybmVzcy9wZXJmLXJ1bm5lci1jb21wdXRlLXN0YXRpc3Rp
Y3MtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2hhcm5lc3MvcGVyZi1ydW5u
ZXItY29tcHV0ZS1zdGF0aXN0aWNzLmh0bWw6IEFkZGVkLgorCiAyMDEyLTA1LTAyICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIE1hYyBtZWRpYSBlbmdp
bmUgZG9lc24ndCByZWNjb2duaXplIGNhblBsYXlUeXBlKCdhdWRpby93YXY7IGNvZGVjcz0xJykK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy9wZXJmLXJ1bm5lci1jb21wdXRl
LXN0YXRpc3RpY3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9oYXJuZXNzL3BlcmYt
cnVubmVyLWNvbXB1dGUtc3RhdGlzdGljcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjA2MDVk
MjIzMDJjODI2OThkYjY3YjhlMjlkYzNlMjNiYjQzOWI3NwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvaGFybmVzcy9wZXJmLXJ1bm5lci1jb21wdXRlLXN0YXRpc3RpY3MtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDQgQEAKK1RoaXMgdGVzdCB2ZXJpZmllcyBQZXJmVGVzdFJ1
bm5lci5jb21wdXRlU3RhdGlzdGljcygpLCBpbmNsdWRpbmc6IG1pbiwgbWF4LCBtZWRpYW4sIG1l
YW4sIHN1bSwgdmFyaWFuY2UsIGFuZCBzdGRldi4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCitQQVNTIHN0YXRzLm1pbiBpcyAwCitQQVNTIHN0YXRzLm1heCBpcyAwCitQQVNTIHN0YXRz
Lm1lZGlhbiBpcyAwCitQQVNTIHN0YXRzLm1lYW4gaXMgMAorUEFTUyBzdGF0cy5zdW0gaXMgMAor
UEFTUyBzdGF0cy52YXJpYW5jZSBpcyAwCitQQVNTIHN0YXRzLnN0ZGV2IGlzIDAKK1BBU1Mgc3Rh
dHMubWluIGlzIDEKK1BBU1Mgc3RhdHMubWF4IGlzIDIwCitQQVNTIHN0YXRzLm1lZGlhbiBpcyA1
CitQQVNTIHN0YXRzLm1lYW4gaXMgNy42CitQQVNTIHN0YXRzLnN1bSBpcyAzOAorUEFTUyBzdGF0
cy5taW4gaXMgMQorUEFTUyBzdGF0cy5tYXggaXMgMjAKK1BBU1Mgc3RhdHMubWVkaWFuIGlzIDUK
K1BBU1Mgc3RhdHMubWVhbiBpcyA3LjYKK1BBU1Mgc3RhdHMuc3VtIGlzIDM4CitQQVNTIHN0YXRz
LnZhcmlhbmNlIGlzIHdpdGhpbiAwLjAwMDEgb2YgNDguMjM5OTk5OTk5OTk5OTk1CitQQVNTIHN0
YXRzLnN0ZGV2IGlzIHdpdGhpbiAwLjAwMDEgb2YgNi45NDU1MDIxNDE2NzQxMzUKK1BBU1Mgc3Rh
dHMubWluIGlzIC0yMAorUEFTUyBzdGF0cy5tYXggaXMgLTEKK1BBU1Mgc3RhdHMubWVkaWFuIGlz
IC01CitQQVNTIHN0YXRzLm1lYW4gaXMgLTcuNgorUEFTUyBzdGF0cy5zdW0gaXMgLTM4CitQQVNT
IHN0YXRzLm1pbiBpcyAtMjAKK1BBU1Mgc3RhdHMubWF4IGlzIC0xCitQQVNTIHN0YXRzLm1lZGlh
biBpcyAtNQorUEFTUyBzdGF0cy5tZWFuIGlzIC03LjYKK1BBU1Mgc3RhdHMuc3VtIGlzIC0zOAor
UEFTUyBzdGF0cy52YXJpYW5jZSBpcyB3aXRoaW4gMC4wMDAxIG9mIDQ4LjIzOTk5OTk5OTk5OTk5
NQorUEFTUyBzdGF0cy5zdGRldiBpcyB3aXRoaW4gMC4wMDAxIG9mIDYuOTQ1NTAyMTQxNjc0MTM1
CitQQVNTIHN0YXRzLm1lZGlhbiBpcyAwCitQQVNTIHN0YXRzLm1lZGlhbiBpcyA1LjUKK1BBU1Mg
c3RhdHMubWVkaWFuIGlzIDUuNQorUEFTUyBzdGF0cy5tZWRpYW4gaXMgLTUuNQorUEFTUyBzdGF0
cy5tZWRpYW4gaXMgLTUuNQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy9wZXJmLXJ1
bm5lci1jb21wdXRlLXN0YXRpc3RpY3MuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy9w
ZXJmLXJ1bm5lci1jb21wdXRlLXN0YXRpc3RpY3MuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZjgzNmFjYzJl
ZTBlOTZmOTcyNjZlMDQ5NGNjNjk1YmVhOTE5Y2NhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9oYXJuZXNzL3BlcmYtcnVubmVyLWNvbXB1dGUtc3RhdGlzdGljcy5odG1sCkBA
IC0wLDAgKzEsMjA2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgIDxzY3Jp
cHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
CisgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9QZXJmb3JtYW5jZVRlc3RzL3Jlc291cmNlcy9ydW5u
ZXIuanMiPjwvc2NyaXB0PgorICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAg
LyoqIEZpbmQgdGhlIG1pbmltdW0gdmFsdWUgaW4gYW4gYXJyYXkgb2YgbnVtYmVycy4KKyAgICAg
KgorICAgICAqIEBwYXJhbSBhcnJheSAgICAgaW5wdXQgYXJyYXkgb2YgbnVtYmVycworICAgICAq
IEByZXR1cm4gICAgICAgICAgbWluaW11bSB2YWx1ZSBpbiBhcnJheQorICAgICAqLworICAgIEFy
cmF5Lm1pbiA9IGZ1bmN0aW9uKGFycmF5KSB7CisgICAgICByZXR1cm4gTWF0aC5taW4uYXBwbHko
TWF0aCwgYXJyYXkpOworICAgIH07CisKKyAgICAvKiogRmluZCB0aGUgbWF4aW11bSB2YWx1ZSBp
biBhbiBhcnJheSBvZiBudW1iZXJzLgorICAgICAqCisgICAgICogQHBhcmFtIGFycmF5ICAgICBp
bnB1dCBhcnJheSBvZiBudW1iZXJzCisgICAgICogQHJldHVybiAgICAgICAgICBtYXhpbXVtIHZh
bHVlIGluIGFycmF5CisgICAgICovCisgICAgQXJyYXkubWF4ID0gZnVuY3Rpb24oYXJyYXkpIHsK
KyAgICAgIHJldHVybiBNYXRoLm1heC5hcHBseShNYXRoLCBhcnJheSk7CisgICAgfTsKKworICAg
IC8qKiBGaW5kL2NhbGN1bGF0ZSB0aGUgbWVkaWFuIHZhbHVlIGluIGFuIGFycmF5IG9mIG51bWJl
cnMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYXJyYXkgICAgIGlucHV0IGFycmF5IG9mIG51bWJl
cnMKKyAgICAgKiBAcmV0dXJuICAgICAgICAgIG1hZGlhbiBvZiB0aGUgdmFsdWVzIGluIGFycmF5
CisgICAgICovCisgICAgQXJyYXkubWVkaWFuID0gZnVuY3Rpb24ob3JpZ0FycmF5KSB7CisgICAg
ICAvLyBkb24ndCB3YW50IHNpZGUgZWZmZWN0cyBvbiB0aGUgaW5wdXQgYXJyYXksIHNvLi4uCisg
ICAgICB2YXIgYXJyYXkgPSBvcmlnQXJyYXkuc2xpY2UoMCk7CisgICAgICBhcnJheS5zb3J0KCBm
dW5jdGlvbihhLGIpIHtyZXR1cm4gYSAtIGI7fSApOworICAgICAgdmFyIG1pZCA9IE1hdGguZmxv
b3IoYXJyYXkubGVuZ3RoLzIpOworICAgICAgaWYgKGFycmF5Lmxlbmd0aCAlIDIpIHsKKyAgICAg
ICAgcmV0dXJuIGFycmF5W21pZF07CisgICAgICB9IGVsc2UgeworICAgICAgICByZXR1cm4gKGFy
cmF5W21pZC0xXSArIGFycmF5W21pZF0pIC8gMi4wOworICAgICAgfQorICAgIH07CisKKyAgICAv
KiogQ2FsY3VsYXRlIHRoZSBtZWFuIHZhbHVlIG9mIGFuIGFycmF5IG9mIG51bWJlcnMuCisgICAg
ICoKKyAgICAgKiBAcGFyYW0gYXJyYXkgICAgIGlucHV0IGFycmF5IG9mIG51bWJlcnMKKyAgICAg
KiBAcmV0dXJuICAgICAgICAgIG1lYW4gb2YgdGhlIHZhbHVlcyBpbiBhcnJheQorICAgICAqLwor
ICAgIEFycmF5Lm1lYW4gPSBmdW5jdGlvbihhcnJheSkgeworICAgICAgcmV0dXJuIEFycmF5LnN1
bShhcnJheSkvYXJyYXkubGVuZ3RoOworICAgIH07CisKKyAgICAvKiogQ2FsY3VsYXRlIHRoZSBz
dW0gb2YgYW4gYXJyYXkgb2YgbnVtYmVycy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBhcnJheSAg
ICAgaW5wdXQgYXJyYXkgb2YgbnVtYmVycworICAgICAqIEByZXR1cm4gICAgICAgICAgc3VtIG9m
IHRoZSB2YWx1ZXMgaW4gYXJyYXkKKyAgICAgKi8KKyAgICBBcnJheS5zdW0gPSBmdW5jdGlvbihh
cnJheSkgeworICAgICAgdmFyIHRvdGFsID0gMDsKKyAgICAgIGZvciAodmFyIGEgaW4gYXJyYXkp
IHsKKyAgICAgICAgdG90YWwgKz0gYXJyYXlbYV07CisgICAgICB9OworICAgICAgcmV0dXJuIHRv
dGFsOworICAgIH07CisKKyAgICAvKiogQ2FsY3VsYXRlIHRoZSBzdGF0aXN0aWNhbCB2YXJpYW5j
ZSBvZiBhbiBhcnJheSBvZiBudW1iZXJzLgorICAgICAqCisgICAgICogQHBhcmFtIGFycmF5ICAg
ICBpbnB1dCBhcnJheSBvZiBudW1iZXJzCisgICAgICogQHJldHVybiAgICAgICAgICB2YXJpYW5j
ZSBvZiB0aGUgdmFsdWVzIGluIGFycmF5CisgICAgICovCisgICAgQXJyYXkudmFyaWFuY2UgPSBm
dW5jdGlvbihhcnJheSkgeworICAgICAgdmFyIG1lYW4gPSBBcnJheS5tZWFuKGFycmF5KTsKKyAg
ICAgIHZhciBhcnJheU9mU3F1YXJlZERpZmZzID0gW107CisgICAgICBmb3IgKHZhciBhIGluIGFy
cmF5KSB7CisgICAgICAgIHZhciBzcXVhcmVkRGlmZiA9IGFycmF5W2FdIC0gbWVhbjsKKyAgICAg
ICAgc3F1YXJlZERpZmYgKj0gc3F1YXJlZERpZmY7CisgICAgICAgIGFycmF5T2ZTcXVhcmVkRGlm
ZnMucHVzaChzcXVhcmVkRGlmZik7CisgICAgICB9OworICAgICAgcmV0dXJuIEFycmF5Lm1lYW4o
YXJyYXlPZlNxdWFyZWREaWZmcyk7CisgICAgfTsKKworICAgIC8qKiBDYWxjdWxhdGUgdGhlIHN0
YW5kYXJkIGRldmlhdGlvbiBvZiBhbiBhcnJheSBvZiBudW1iZXJzLgorICAgICAqCisgICAgICog
QHBhcmFtIGFycmF5ICAgICBpbnB1dCBhcnJheSBvZiBudW1iZXJzCisgICAgICogQHJldHVybiAg
ICAgICAgICBzdGFuZGFyZCBkZXZpYXRpb24gb2YgdGhlIHZhbHVlcyBpbiBhcnJheQorICAgICAq
LworICAgIEFycmF5LnN0ZGV2ID0gZnVuY3Rpb24oYXJyYXkpIHsKKyAgICAgIHJldHVybiBNYXRo
LnNxcnQoQXJyYXkudmFyaWFuY2UoYXJyYXkpKTsKKyAgICB9OworCisgICAgLyoqIERldGVybWlu
ZSBpZiBhbGwgZWxlbWVudHMgaW4gYW4gYXJyYXkgYXJlIG51bWJlcnMuCisgICAgICoKKyAgICAg
KiBAcGFyYW0gYXJyYXkgICAgIGlucHV0IGFycmF5CisgICAgICogQHJldHVybiAgICAgICAgICB0
cnVlIGlmIGFsbCBhcmUgbnVtYmVycywgZmFsc2Ugb3RoZXJ3aXNlCisgICAgICovCisgICAgQXJy
YXkuaXNOdW1lcmljID0gZnVuY3Rpb24oYXJyYXkpIHsKKyAgICAgIGZvciAodmFyIGEgaW4gYXJy
YXkpIHsKKyAgICAgICAgdmFyIG4gPSBhcnJheVthXTsKKyAgICAgICAgaWYgKCh0eXBlb2YgYXJy
YXlbYV0gIT09ICdudW1iZXInKSB8fCAgIWlzRmluaXRlKGFycmF5W2FdKSkgeworICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICB9OworICAgICAgcmV0dXJuIHRydWU7
CisgICAgfTsKKyAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPGRpdiBpZD0iZGVzY3Jp
cHRpb24iPjwvZGl2PgorCisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICBk
ZXNjcmlwdGlvbigiVGhpcyB0ZXN0IHZlcmlmaWVzIFBlcmZUZXN0UnVubmVyLmNvbXB1dGVTdGF0
aXN0aWNzKCksICIgKworICAgICAgICAgICAgICAgICJpbmNsdWRpbmc6IG1pbiwgbWF4LCBtZWRp
YW4sIG1lYW4sIHN1bSwgdmFyaWFuY2UsIGFuZCBzdGRldi4iKTsKKyAgPC9zY3JpcHQ+CisKKyAg
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiPgorICAgIHZhciBkYXRhID0gW107CisgICAgdmFyIHN0YXRzID0gW107CisKKyAgICAvLyAg
VGhlIGZvbGxvd2luZyBjYW4gYmUgdXNlZCBmb3IgZGVidWdnaW5nIHNwZWNpZmljIGNhc2VzLgor
ICAgIC8vZGVidWcoIiIpOworICAgIC8vZGVidWcoImRhdGEgPSAiICsgSlNPTi5zdHJpbmdpZnko
ZGF0YSkpOworICAgIC8vZGVidWcoInN0YXRzID0gWyIgKyBKU09OLnN0cmluZ2lmeShzdGF0cykg
KyAiXSIpOworCisgICAgLyoqIEVuc3VyZSBubyBsYXRlbnQgZGl2aWRlIGJ5IDAncyBmb3IgYW4g
b2RkIG51bWJlciBvZiBlbGVtZW50cy4gKi8KKyAgICBkYXRhID0gWzAsIDAsIDAsIDAsIDBdOwor
ICAgIHN0YXRzID0gUGVyZlRlc3RSdW5uZXIuY29tcHV0ZVN0YXRpc3RpY3MoZGF0YSk7CisgICAg
c2hvdWxkRXZhbHVhdGVUbygic3RhdHMubWluIiwgMCk7CisgICAgc2hvdWxkRXZhbHVhdGVUbygi
c3RhdHMubWF4IiwgMCk7CisgICAgc2hvdWxkRXZhbHVhdGVUbygic3RhdHMubWVkaWFuIiwgMCk7
CisgICAgc2hvdWxkRXZhbHVhdGVUbygic3RhdHMubWVhbiIsIDApOworICAgIHNob3VsZEV2YWx1
YXRlVG8oInN0YXRzLnN1bSIsIDApOworICAgIHNob3VsZEV2YWx1YXRlVG8oInN0YXRzLnZhcmlh
bmNlIiwgMCk7CisgICAgc2hvdWxkRXZhbHVhdGVUbygic3RhdHMuc3RkZXYiLCAwKTsKKworICAg
IC8qKiBUaGlzIHRlc3Qgd2lsbCBjYXRjaCBpZiBhbnkgb3JkZXIgZGVwZW5kZW5jaWVzIGluIHRo
ZSBkYXRhLCBzdWNoIGFzCisgICAgICogIG5lZWRpbmcgdG8gYmUgbnVtZXJpY2FsbHkgc29ydGVk
LCBhcmUgbm90IHJlc29sdmVkIGJ5IHRoZSBhbGdvcml0aG0uCisgICAgICogIFRoaXMgdmFyaWFu
dCBjb3ZlcnMgYW4gb2RkIG51bWJlciBvZiBlbGVtZW50cy4KKyAgICAgKi8KKyAgICBkYXRhID0g
WzEsIDEwLCAyLCAyMCwgNV07CisgICAgc3RhdHMgPSBQZXJmVGVzdFJ1bm5lci5jb21wdXRlU3Rh
dGlzdGljcyhkYXRhKTsKKyAgICAvLyBoYW5kIGNhbGN1bGF0ZWQKKyAgICBzaG91bGRFdmFsdWF0
ZVRvKCJzdGF0cy5taW4iLCAxKTsKKyAgICBzaG91bGRFdmFsdWF0ZVRvKCJzdGF0cy5tYXgiLCAy
MCk7CisgICAgc2hvdWxkRXZhbHVhdGVUbygic3RhdHMubWVkaWFuIiwgNSk7CisgICAgc2hvdWxk
RXZhbHVhdGVUbygic3RhdHMubWVhbiIsICgzOC81KSk7CisgICAgc2hvdWxkRXZhbHVhdGVUbygi
c3RhdHMuc3VtIiwgKDErMis1KzEwKzIwKSk7CisgICAgLy8gdXNpbmcgYWx0ZXJuYXRlIGltcGxl
bWVudGF0aW9uCisgICAgc2hvdWxkRXZhbHVhdGVUbygic3RhdHMubWluIiwgQXJyYXkubWluKGRh
dGEpKTsKKyAgICBzaG91bGRFdmFsdWF0ZVRvKCJzdGF0cy5tYXgiLCBBcnJheS5tYXgoZGF0YSkp
OworICAgIHNob3VsZEV2YWx1YXRlVG8oInN0YXRzLm1lZGlhbiIsIEFycmF5Lm1lZGlhbihkYXRh
KSk7CisgICAgc2hvdWxkRXZhbHVhdGVUbygic3RhdHMubWVhbiIsIEFycmF5Lm1lYW4oZGF0YSkp
OworICAgIHNob3VsZEV2YWx1YXRlVG8oInN0YXRzLnN1bSIsIEFycmF5LnN1bShkYXRhKSk7Cisg
ICAgc2hvdWxkQmVDbG9zZVRvKCJzdGF0cy52YXJpYW5jZSIsIEFycmF5LnZhcmlhbmNlKGRhdGEp
LCAwLjAwMDEpOworICAgIHNob3VsZEJlQ2xvc2VUbygic3RhdHMuc3RkZXYiLCBBcnJheS5zdGRl
dihkYXRhKSwgMC4wMDAxKTsKKworICAgIC8qKiBUaGlzIHRlc3Qgd2lsbCBjYXRjaCBpZiBhbnkg
b3JkZXIgZGVwZW5kZW5jaWVzIGluIHRoZSBkYXRhLCBzdWNoIGFzCisgICAgICogIG5lZWRpbmcg
dG8gYmUgbnVtZXJpY2FsbHkgc29ydGVkLCBhcmUgbm90IHJlc29sdmVkIGJ5IHRoZSBhbGdvcml0
aG0uCisgICAgICogIFRoaXMgdmFyaWFudCBjb3ZlcnMgYW4gb2RkIG51bWJlciBvZiBlbGVtZW50
cywgYW5kIG5lZ2F0aXZlIHZhbHVlcy4KKyAgICAgKi8KKyAgICBkYXRhID0gWy0xLCAtMTAsIC0y
LCAtMjAsIC01XTsKKyAgICBzdGF0cyA9IFBlcmZUZXN0UnVubmVyLmNvbXB1dGVTdGF0aXN0aWNz
KGRhdGEpOworICAgIC8vIGhhbmQgY2FsY3VsYXRlZAorICAgIHNob3VsZEV2YWx1YXRlVG8oInN0
YXRzLm1pbiIsIC0yMCk7CisgICAgc2hvdWxkRXZhbHVhdGVUbygic3RhdHMubWF4IiwgLTEpOwor
ICAgIHNob3VsZEV2YWx1YXRlVG8oInN0YXRzLm1lZGlhbiIsIC01KTsKKyAgICBzaG91bGRFdmFs
dWF0ZVRvKCJzdGF0cy5tZWFuIiwgKC0zOC81KSk7CisgICAgc2hvdWxkRXZhbHVhdGVUbygic3Rh
dHMuc3VtIiwgKC0xLTItNS0xMC0yMCkpOworICAgIC8vIHVzaW5nIGFsdGVybmF0ZSBpbXBsZW1l
bnRhdGlvbgorICAgIHNob3VsZEV2YWx1YXRlVG8oInN0YXRzLm1pbiIsIEFycmF5Lm1pbihkYXRh
KSk7CisgICAgc2hvdWxkRXZhbHVhdGVUbygic3RhdHMubWF4IiwgQXJyYXkubWF4KGRhdGEpKTsK
KyAgICBzaG91bGRFdmFsdWF0ZVRvKCJzdGF0cy5tZWRpYW4iLCBBcnJheS5tZWRpYW4oZGF0YSkp
OworICAgIHNob3VsZEV2YWx1YXRlVG8oInN0YXRzLm1lYW4iLCBBcnJheS5tZWFuKGRhdGEpKTsK
KyAgICBzaG91bGRFdmFsdWF0ZVRvKCJzdGF0cy5zdW0iLCBBcnJheS5zdW0oZGF0YSkpOworICAg
IHNob3VsZEJlQ2xvc2VUbygic3RhdHMudmFyaWFuY2UiLCBBcnJheS52YXJpYW5jZShkYXRhKSwg
MC4wMDAxKTsKKyAgICBzaG91bGRCZUNsb3NlVG8oInN0YXRzLnN0ZGV2IiwgQXJyYXkuc3RkZXYo
ZGF0YSksIDAuMDAwMSk7CisKKyAgICAvKiogRW5zdXJlIG5vIGxhdGVudCBkaXZpZGUgYnkgMCdz
IGZvciBhbiBldmVuIG51bWJlciBvZiBlbGVtZW50cy4gKi8KKyAgICBkYXRhID0gWzAsIDAsIDAs
IDBdOworICAgIHN0YXRzID0gUGVyZlRlc3RSdW5uZXIuY29tcHV0ZVN0YXRpc3RpY3MoZGF0YSk7
CisgICAgc2hvdWxkRXZhbHVhdGVUbygic3RhdHMubWVkaWFuIiwgMCk7CisKKyAgICAvKiogVGhp
cyB0ZXN0IHZlcmlmaWVzIHRoYXQgbWVkaWFuIGlzIGhhbmRsZWQgY29ycmVjdGx5IGZvcgorICAg
ICAqICBhbiBldmVuIG51bWJlciBvZiBlbGVtZW50cy4KKyAgICAgKi8KKyAgICBkYXRhID0gWzEs
IDEwLCAyLCAyMCwgNSwgNl07CisgICAgc3RhdHMgPSBQZXJmVGVzdFJ1bm5lci5jb21wdXRlU3Rh
dGlzdGljcyhkYXRhKTsKKyAgICBzaG91bGRFdmFsdWF0ZVRvKCJzdGF0cy5tZWRpYW4iLCA1LjUp
OworICAgIHNob3VsZEV2YWx1YXRlVG8oInN0YXRzLm1lZGlhbiIsIEFycmF5Lm1lZGlhbihkYXRh
KSk7CisKKyAgICAvKiogVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgbWVkaWFuIGlzIGhhbmRsZWQg
Y29ycmVjdGx5IGZvcgorICAgICAqICBhbiBldmVuIG51bWJlciBvZiBlbGVtZW50cywgaW5jbHVk
aW5nIG5lZ2F0aXZlIG51bWJlcnMuCisgICAgICovCisgICAgZGF0YSA9IFstMSwgLTEwLCAtMiwg
LTIwLCAtNSwgLTZdOworICAgIHN0YXRzID0gUGVyZlRlc3RSdW5uZXIuY29tcHV0ZVN0YXRpc3Rp
Y3MoZGF0YSk7CisgICAgc2hvdWxkRXZhbHVhdGVUbygic3RhdHMubWVkaWFuIiwgLTUuNSk7Cisg
ICAgc2hvdWxkRXZhbHVhdGVUbygic3RhdHMubWVkaWFuIiwgQXJyYXkubWVkaWFuKGRhdGEpKTsK
KyAgPC9zY3JpcHQ+CisKKyAgPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisKKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiPgorICAgIC8vIHJ1bm5lci5qcyBtYXJrcyB0aGlzIGFzIGFuIGFzeW5jIHRlc3Qgc28gd2Ug
bmVlZCB0byBjYWxsIG5vdGlmeURvbmUuCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5
RG9uZSgpOworICA8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139898</attachid>
            <date>2012-05-02 15:50:01 -0700</date>
            <delta_ts>2012-05-02 15:53:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85410-20120502154959.patch</filename>
            <type>text/plain</type>
            <size>10574</size>
            <attacher name="Tom Zakrajsek">tomz</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1ODk4CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggM2Y3NDQzZmFjNjgwY2UyMTYxNDY4
ODkwMWU0Mjg2MjU0MmNkZDAwNS4uZjg3YzEyZWYxYTFhNWU5N2M3Njk5ZTA0NjFkODVjZTc1ZDdm
ZTZlNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTA1LTAyICBUb20gWmFrcmFqc2VrICA8
dG9tekBjb2RlYXVyb3JhLm9yZz4KKworICAgICAgICBOZWVkIHRlc3RzIGZvciBQZXJmVGVzdFJ1
bm5lci5jb21wdXRlU3RhdGlzdGljcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODU0MTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGZhc3QvaGFybmVzcy9wZXJmdGVzdHMvcGVyZi1ydW5uZXItY29tcHV0
ZS1zdGF0aXN0aWNzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9oYXJuZXNz
L3BlcmZ0ZXN0cy9wZXJmLXJ1bm5lci1jb21wdXRlLXN0YXRpc3RpY3MuaHRtbDogQWRkZWQuCisK
IDIwMTItMDUtMDIgIEFkYW0gS2xlaW4gIDxhZGFta0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
Q2hpbGRsaXN0IG11dGF0aW9ucyBpbiBzaGFkb3cgRE9NIHNob3VsZCBiZSBvYnNlcnZhYmxlIHdp
dGggTXV0YXRpb25PYnNlcnZlcnMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGFybmVz
cy9wZXJmdGVzdHMvcGVyZi1ydW5uZXItY29tcHV0ZS1zdGF0aXN0aWNzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy9wZXJmdGVzdHMvcGVyZi1ydW5uZXItY29tcHV0ZS1z
dGF0aXN0aWNzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOWZjMjA1ZTZjYTM0NzQzNGVjZDU0
NDg4NmU0MzFkNmE3ZDdlNjAyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9o
YXJuZXNzL3BlcmZ0ZXN0cy9wZXJmLXJ1bm5lci1jb21wdXRlLXN0YXRpc3RpY3MtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNjggQEAKK1RoaXMgdGVzdCB2ZXJpZmllcyBQZXJmVGVzdFJ1bm5lci5j
b21wdXRlU3RhdGlzdGljcygpLCBpbmNsdWRpbmc6IG1pbiwgbWF4LCBtZWRpYW4sIG1lYW4sIHN1
bSwgdmFyaWFuY2UsIGFuZCBzdGRldi4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCitF
bnN1cmUgbm8gbGF0ZW50IGRpdmlkZSBieSAwJ3MgZm9yIGFuIG9kZCBudW1iZXIgb2YgZWxlbWVu
dHMuCitkYXRhID0gWzAsMCwwLDAsMF0KK1BBU1Mgc3RhdHMubWluIGlzIDAKK1BBU1Mgc3RhdHMu
bWF4IGlzIDAKK1BBU1Mgc3RhdHMubWVkaWFuIGlzIDAKK1BBU1Mgc3RhdHMubWVhbiBpcyAwCitQ
QVNTIHN0YXRzLnN1bSBpcyAwCitQQVNTIHN0YXRzLnZhcmlhbmNlIGlzIDAKK1BBU1Mgc3RhdHMu
c3RkZXYgaXMgMAorCitUaGlzIHRlc3Qgd2lsbCBjYXRjaCBpZiBhbnkgb3JkZXIgZGVwZW5kZW5j
aWVzIGluIHRoZSBkYXRhLCBzdWNoIGFzCituZWVkaW5nIHRvIGJlIG51bWVyaWNhbGx5IHNvcnRl
ZCwgYXJlIG5vdCByZXNvbHZlZCBieSB0aGUgYWxnb3JpdGhtLgorVGhpcyB2YXJpYW50IGNvdmVy
cyBhbiBvZGQgbnVtYmVyIG9mIGVsZW1lbnRzLgorZGF0YSA9IFsxLDEwLDIsMjAsNV0KK1BBU1Mg
c3RhdHMubWluIGlzIDEKK1BBU1Mgc3RhdHMubWF4IGlzIDIwCitQQVNTIHN0YXRzLm1lZGlhbiBp
cyA1CitQQVNTIHN0YXRzLm1lYW4gaXMgNy42CitQQVNTIHN0YXRzLnN1bSBpcyAzOAorUEFTUyBz
dGF0cy5taW4gaXMgMQorUEFTUyBzdGF0cy5tYXggaXMgMjAKK1BBU1Mgc3RhdHMubWVkaWFuIGlz
IDUKK1BBU1Mgc3RhdHMubWVhbiBpcyA3LjYKK1BBU1Mgc3RhdHMuc3VtIGlzIDM4CitQQVNTIHN0
YXRzLnZhcmlhbmNlIGlzIHdpdGhpbiAwLjAwMDEgb2YgNDguMjM5OTk5OTk5OTk5OTk1CitQQVNT
IHN0YXRzLnN0ZGV2IGlzIHdpdGhpbiAwLjAwMDEgb2YgNi45NDU1MDIxNDE2NzQxMzUKKworVGhp
cyB0ZXN0IHdpbGwgY2F0Y2ggaWYgYW55IG9yZGVyIGRlcGVuZGVuY2llcyBpbiB0aGUgZGF0YSwg
c3VjaCBhcworbmVlZGluZyB0byBiZSBudW1lcmljYWxseSBzb3J0ZWQsIGFyZSBub3QgcmVzb2x2
ZWQgYnkgdGhlIGFsZ29yaXRobS4KK1RoaXMgdmFyaWFudCBjb3ZlcnMgYW4gb2RkIG51bWJlciBv
ZiBlbGVtZW50cywgYW5kIG5lZ2F0aXZlIHZhbHVlcy4KK2RhdGEgPSBbLTEsLTEwLC0yLC0yMCwt
NV0KK1BBU1Mgc3RhdHMubWluIGlzIC0yMAorUEFTUyBzdGF0cy5tYXggaXMgLTEKK1BBU1Mgc3Rh
dHMubWVkaWFuIGlzIC01CitQQVNTIHN0YXRzLm1lYW4gaXMgLTcuNgorUEFTUyBzdGF0cy5zdW0g
aXMgLTM4CitQQVNTIHN0YXRzLm1pbiBpcyAtMjAKK1BBU1Mgc3RhdHMubWF4IGlzIC0xCitQQVNT
IHN0YXRzLm1lZGlhbiBpcyAtNQorUEFTUyBzdGF0cy5tZWFuIGlzIC03LjYKK1BBU1Mgc3RhdHMu
c3VtIGlzIC0zOAorUEFTUyBzdGF0cy52YXJpYW5jZSBpcyB3aXRoaW4gMC4wMDAxIG9mIDQ4LjIz
OTk5OTk5OTk5OTk5NQorUEFTUyBzdGF0cy5zdGRldiBpcyB3aXRoaW4gMC4wMDAxIG9mIDYuOTQ1
NTAyMTQxNjc0MTM1CisKK0Vuc3VyZSBubyBsYXRlbnQgZGl2aWRlIGJ5IDAncyBmb3IgYW4gZXZl
biBudW1iZXIgb2YgZWxlbWVudHMuCitkYXRhID0gWzAsMCwwLDBdCitQQVNTIHN0YXRzLm1lZGlh
biBpcyAwCisKK1RoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IG1lZGlhbiBpcyBoYW5kbGVkIGNvcnJl
Y3RseSBmb3IKK2FuIGV2ZW4gbnVtYmVyIG9mIGVsZW1lbnRzLgorZGF0YSA9IFsxLDEwLDIsMjAs
NSw2XQorUEFTUyBzdGF0cy5tZWRpYW4gaXMgNS41CitQQVNTIHN0YXRzLm1lZGlhbiBpcyA1LjUK
KworVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgbWVkaWFuIGlzIGhhbmRsZWQgY29ycmVjdGx5IGZv
cgorYW4gZXZlbiBudW1iZXIgb2YgZWxlbWVudHMsIGluY2x1ZGluZyBuZWdhdGl2ZSBudW1iZXJz
LgorZGF0YSA9IFstMSwtMTAsLTIsLTIwLC01LC02XQorUEFTUyBzdGF0cy5tZWRpYW4gaXMgLTUu
NQorUEFTUyBzdGF0cy5tZWRpYW4gaXMgLTUuNQorCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9o
YXJuZXNzL3BlcmZ0ZXN0cy9wZXJmLXJ1bm5lci1jb21wdXRlLXN0YXRpc3RpY3MuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvaGFybmVzcy9wZXJmdGVzdHMvcGVyZi1ydW5uZXItY29tcHV0ZS1zdGF0
aXN0aWNzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2I3NDlhOTRlYTNlZmNhY2NiZjc2MmQ2NjJiODM0NDMy
N2QwM2NiZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy9wZXJm
dGVzdHMvcGVyZi1ydW5uZXItY29tcHV0ZS1zdGF0aXN0aWNzLmh0bWwKQEAgLTAsMCArMSwxNTMg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vLi4vUGVyZm9ybWFuY2VUZXN0cy9yZXNvdXJjZXMvcnVubmVyLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KK3ZhciBhbHRlcm5hdGVDb21w
dXRlU3RhdGlzdGljcyA9IHsKKyAgICBtaW46IGZ1bmN0aW9uKGFycmF5KSB7CisgICAgICAgIHJl
dHVybiBNYXRoLm1pbi5hcHBseShNYXRoLCBhcnJheSk7CisgICAgfSwKKyAgICBtYXg6IGZ1bmN0
aW9uKGFycmF5KSB7CisgICAgICAgIHJldHVybiBNYXRoLm1heC5hcHBseShNYXRoLCBhcnJheSk7
CisgICAgfSwKKyAgICBtZWRpYW46IGZ1bmN0aW9uKG9yaWdEYXRhKSB7CisgICAgICAgIC8vIGRv
bid0IHdhbnQgc2lkZSBlZmZlY3RzIG9uIHRoZSBpbnB1dCBhcnJheSwgc28uLi4KKyAgICAgICAg
dmFyIGFycmF5ID0gb3JpZ0RhdGEuc2xpY2UoMCk7CisgICAgICAgIGFycmF5LnNvcnQoZnVuY3Rp
b24oYSxiKSB7IHJldHVybiBhIC0gYjsgfSk7CisgICAgICAgIHZhciBtaWQgPSBNYXRoLmZsb29y
KGFycmF5Lmxlbmd0aCAvIDIpOworICAgICAgICBpZiAoYXJyYXkubGVuZ3RoICUgMikKKyAgICAg
ICAgICAgIHJldHVybiBhcnJheVttaWRdOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXR1
cm4gKGFycmF5W21pZC0xXSArIGFycmF5W21pZF0pIC8gMjsKKyAgICB9LAorICAgIG1lYW46IGZ1
bmN0aW9uKGFycmF5KSB7CisgICAgICAgIHJldHVybiBhbHRlcm5hdGVDb21wdXRlU3RhdGlzdGlj
cy5zdW0oYXJyYXkpL2FycmF5Lmxlbmd0aDsKKyAgICB9LAorICAgIHN1bTogZnVuY3Rpb24oYXJy
YXkpIHsKKyAgICAgICAgdmFyIHRvdGFsID0gMDsKKyAgICAgICAgZm9yICh2YXIgaW5kZXggaW4g
YXJyYXkpCisgICAgICAgICAgICB0b3RhbCArPSBhcnJheVtpbmRleF07CisgICAgICAgIHJldHVy
biB0b3RhbDsKKyAgICB9LAorICAgIHZhcmlhbmNlOiBmdW5jdGlvbihhcnJheSkgeworICAgICAg
ICB2YXIgbWVhbiA9IGFsdGVybmF0ZUNvbXB1dGVTdGF0aXN0aWNzLm1lYW4oYXJyYXkpOworICAg
ICAgICB2YXIgYXJyYXlPZlNxdWFyZWREaWZmcyA9IFtdOworICAgICAgICBmb3IgKHZhciBpbmRl
eCBpbiBhcnJheSkgeworICAgICAgICAgICAgdmFyIHNxdWFyZWREaWZmID0gYXJyYXlbaW5kZXhd
IC0gbWVhbjsKKyAgICAgICAgICAgIHNxdWFyZWREaWZmICo9IHNxdWFyZWREaWZmOworICAgICAg
ICAgICAgYXJyYXlPZlNxdWFyZWREaWZmcy5wdXNoKHNxdWFyZWREaWZmKTsKKyAgICAgICAgfTsK
KyAgICAgICAgcmV0dXJuIGFsdGVybmF0ZUNvbXB1dGVTdGF0aXN0aWNzLm1lYW4oYXJyYXlPZlNx
dWFyZWREaWZmcyk7CisgICAgfSwKKyAgICBzdGRldjogZnVuY3Rpb24oYXJyYXkpIHsKKyAgICAg
ICAgcmV0dXJuIE1hdGguc3FydChhbHRlcm5hdGVDb21wdXRlU3RhdGlzdGljcy52YXJpYW5jZShh
cnJheSkpOworICAgIH0KK307Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorCis8ZGl2IGlk
PSJkZXNjcmlwdGlvbiI+PC9kaXY+CisKKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4K
K2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgdmVyaWZpZXMgUGVyZlRlc3RSdW5uZXIuY29tcHV0ZVN0
YXRpc3RpY3MoKSwgIiArCisgICAgICAgICAgICAiaW5jbHVkaW5nOiBtaW4sIG1heCwgbWVkaWFu
LCBtZWFuLCBzdW0sIHZhcmlhbmNlLCBhbmQgc3RkZXYuIik7Cis8L3NjcmlwdD4KKworPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KK3Zh
ciBkYXRhID0gW107Cit2YXIgc3RhdHMgPSBbXTsKKworZGF0YSA9IFswLCAwLCAwLCAwLCAwXTsK
K2RlYnVnKCJFbnN1cmUgbm8gbGF0ZW50IGRpdmlkZSBieSAwJ3MgZm9yIGFuIG9kZCBudW1iZXIg
b2YgZWxlbWVudHMuIik7CitkZWJ1ZygiZGF0YSA9ICIgKyBKU09OLnN0cmluZ2lmeShkYXRhKSk7
CitzdGF0cyA9IFBlcmZUZXN0UnVubmVyLmNvbXB1dGVTdGF0aXN0aWNzKGRhdGEpOworc2hvdWxk
RXZhbHVhdGVUbygic3RhdHMubWluIiwgMCk7CitzaG91bGRFdmFsdWF0ZVRvKCJzdGF0cy5tYXgi
LCAwKTsKK3Nob3VsZEV2YWx1YXRlVG8oInN0YXRzLm1lZGlhbiIsIDApOworc2hvdWxkRXZhbHVh
dGVUbygic3RhdHMubWVhbiIsIDApOworc2hvdWxkRXZhbHVhdGVUbygic3RhdHMuc3VtIiwgMCk7
CitzaG91bGRFdmFsdWF0ZVRvKCJzdGF0cy52YXJpYW5jZSIsIDApOworc2hvdWxkRXZhbHVhdGVU
bygic3RhdHMuc3RkZXYiLCAwKTsKK2RlYnVnKCIiKTsKKworZGF0YSA9IFsxLCAxMCwgMiwgMjAs
IDVdOworZGVidWcoIlRoaXMgdGVzdCB3aWxsIGNhdGNoIGlmIGFueSBvcmRlciBkZXBlbmRlbmNp
ZXMgaW4gdGhlIGRhdGEsIHN1Y2ggYXMiKTsKK2RlYnVnKCJuZWVkaW5nIHRvIGJlIG51bWVyaWNh
bGx5IHNvcnRlZCwgYXJlIG5vdCByZXNvbHZlZCBieSB0aGUgYWxnb3JpdGhtLiIpOworZGVidWco
IlRoaXMgdmFyaWFudCBjb3ZlcnMgYW4gb2RkIG51bWJlciBvZiBlbGVtZW50cy4iKTsKK2RlYnVn
KCJkYXRhID0gIiArIEpTT04uc3RyaW5naWZ5KGRhdGEpKTsKK3N0YXRzID0gUGVyZlRlc3RSdW5u
ZXIuY29tcHV0ZVN0YXRpc3RpY3MoZGF0YSk7CisvLyBoYW5kIGNhbGN1bGF0ZWQKK3Nob3VsZEV2
YWx1YXRlVG8oInN0YXRzLm1pbiIsIDEpOworc2hvdWxkRXZhbHVhdGVUbygic3RhdHMubWF4Iiwg
MjApOworc2hvdWxkRXZhbHVhdGVUbygic3RhdHMubWVkaWFuIiwgNSk7CitzaG91bGRFdmFsdWF0
ZVRvKCJzdGF0cy5tZWFuIiwgKDM4LzUpKTsKK3Nob3VsZEV2YWx1YXRlVG8oInN0YXRzLnN1bSIs
ICgxKzIrNSsxMCsyMCkpOworLy8gdXNpbmcgYWx0ZXJuYXRlIGltcGxlbWVudGF0aW9uCitzaG91
bGRFdmFsdWF0ZVRvKCJzdGF0cy5taW4iLCBhbHRlcm5hdGVDb21wdXRlU3RhdGlzdGljcy5taW4o
ZGF0YSkpOworc2hvdWxkRXZhbHVhdGVUbygic3RhdHMubWF4IiwgYWx0ZXJuYXRlQ29tcHV0ZVN0
YXRpc3RpY3MubWF4KGRhdGEpKTsKK3Nob3VsZEV2YWx1YXRlVG8oInN0YXRzLm1lZGlhbiIsIGFs
dGVybmF0ZUNvbXB1dGVTdGF0aXN0aWNzLm1lZGlhbihkYXRhKSk7CitzaG91bGRFdmFsdWF0ZVRv
KCJzdGF0cy5tZWFuIiwgYWx0ZXJuYXRlQ29tcHV0ZVN0YXRpc3RpY3MubWVhbihkYXRhKSk7Citz
aG91bGRFdmFsdWF0ZVRvKCJzdGF0cy5zdW0iLCBhbHRlcm5hdGVDb21wdXRlU3RhdGlzdGljcy5z
dW0oZGF0YSkpOworc2hvdWxkQmVDbG9zZVRvKCJzdGF0cy52YXJpYW5jZSIsIGFsdGVybmF0ZUNv
bXB1dGVTdGF0aXN0aWNzLnZhcmlhbmNlKGRhdGEpLCAwLjAwMDEpOworc2hvdWxkQmVDbG9zZVRv
KCJzdGF0cy5zdGRldiIsIGFsdGVybmF0ZUNvbXB1dGVTdGF0aXN0aWNzLnN0ZGV2KGRhdGEpLCAw
LjAwMDEpOworZGVidWcoIiIpOworCitkYXRhID0gWy0xLCAtMTAsIC0yLCAtMjAsIC01XTsKK2Rl
YnVnKCJUaGlzIHRlc3Qgd2lsbCBjYXRjaCBpZiBhbnkgb3JkZXIgZGVwZW5kZW5jaWVzIGluIHRo
ZSBkYXRhLCBzdWNoIGFzIik7CitkZWJ1ZygibmVlZGluZyB0byBiZSBudW1lcmljYWxseSBzb3J0
ZWQsIGFyZSBub3QgcmVzb2x2ZWQgYnkgdGhlIGFsZ29yaXRobS4iKTsKK2RlYnVnKCJUaGlzIHZh
cmlhbnQgY292ZXJzIGFuIG9kZCBudW1iZXIgb2YgZWxlbWVudHMsIGFuZCBuZWdhdGl2ZSB2YWx1
ZXMuIik7CitkZWJ1ZygiZGF0YSA9ICIgKyBKU09OLnN0cmluZ2lmeShkYXRhKSk7CitzdGF0cyA9
IFBlcmZUZXN0UnVubmVyLmNvbXB1dGVTdGF0aXN0aWNzKGRhdGEpOworLy8gaGFuZCBjYWxjdWxh
dGVkCitzaG91bGRFdmFsdWF0ZVRvKCJzdGF0cy5taW4iLCAtMjApOworc2hvdWxkRXZhbHVhdGVU
bygic3RhdHMubWF4IiwgLTEpOworc2hvdWxkRXZhbHVhdGVUbygic3RhdHMubWVkaWFuIiwgLTUp
Oworc2hvdWxkRXZhbHVhdGVUbygic3RhdHMubWVhbiIsICgtMzgvNSkpOworc2hvdWxkRXZhbHVh
dGVUbygic3RhdHMuc3VtIiwgKC0xLTItNS0xMC0yMCkpOworLy8gdXNpbmcgYWx0ZXJuYXRlIGlt
cGxlbWVudGF0aW9uCitzaG91bGRFdmFsdWF0ZVRvKCJzdGF0cy5taW4iLCBhbHRlcm5hdGVDb21w
dXRlU3RhdGlzdGljcy5taW4oZGF0YSkpOworc2hvdWxkRXZhbHVhdGVUbygic3RhdHMubWF4Iiwg
YWx0ZXJuYXRlQ29tcHV0ZVN0YXRpc3RpY3MubWF4KGRhdGEpKTsKK3Nob3VsZEV2YWx1YXRlVG8o
InN0YXRzLm1lZGlhbiIsIGFsdGVybmF0ZUNvbXB1dGVTdGF0aXN0aWNzLm1lZGlhbihkYXRhKSk7
CitzaG91bGRFdmFsdWF0ZVRvKCJzdGF0cy5tZWFuIiwgYWx0ZXJuYXRlQ29tcHV0ZVN0YXRpc3Rp
Y3MubWVhbihkYXRhKSk7CitzaG91bGRFdmFsdWF0ZVRvKCJzdGF0cy5zdW0iLCBhbHRlcm5hdGVD
b21wdXRlU3RhdGlzdGljcy5zdW0oZGF0YSkpOworc2hvdWxkQmVDbG9zZVRvKCJzdGF0cy52YXJp
YW5jZSIsIGFsdGVybmF0ZUNvbXB1dGVTdGF0aXN0aWNzLnZhcmlhbmNlKGRhdGEpLCAwLjAwMDEp
Oworc2hvdWxkQmVDbG9zZVRvKCJzdGF0cy5zdGRldiIsIGFsdGVybmF0ZUNvbXB1dGVTdGF0aXN0
aWNzLnN0ZGV2KGRhdGEpLCAwLjAwMDEpOworZGVidWcoIiIpOworCitkYXRhID0gWzAsIDAsIDAs
IDBdOworZGVidWcoIkVuc3VyZSBubyBsYXRlbnQgZGl2aWRlIGJ5IDAncyBmb3IgYW4gZXZlbiBu
dW1iZXIgb2YgZWxlbWVudHMuIik7CitkZWJ1ZygiZGF0YSA9ICIgKyBKU09OLnN0cmluZ2lmeShk
YXRhKSk7CitzdGF0cyA9IFBlcmZUZXN0UnVubmVyLmNvbXB1dGVTdGF0aXN0aWNzKGRhdGEpOwor
c2hvdWxkRXZhbHVhdGVUbygic3RhdHMubWVkaWFuIiwgMCk7CitkZWJ1ZygiIik7CisKK2RhdGEg
PSBbMSwgMTAsIDIsIDIwLCA1LCA2XTsKK2RlYnVnKCJUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCBt
ZWRpYW4gaXMgaGFuZGxlZCBjb3JyZWN0bHkgZm9yIik7CitkZWJ1ZygiYW4gZXZlbiBudW1iZXIg
b2YgZWxlbWVudHMuIik7CitkZWJ1ZygiZGF0YSA9ICIgKyBKU09OLnN0cmluZ2lmeShkYXRhKSk7
CitzdGF0cyA9IFBlcmZUZXN0UnVubmVyLmNvbXB1dGVTdGF0aXN0aWNzKGRhdGEpOworc2hvdWxk
RXZhbHVhdGVUbygic3RhdHMubWVkaWFuIiwgNS41KTsKK3Nob3VsZEV2YWx1YXRlVG8oInN0YXRz
Lm1lZGlhbiIsIGFsdGVybmF0ZUNvbXB1dGVTdGF0aXN0aWNzLm1lZGlhbihkYXRhKSk7CitkZWJ1
ZygiIik7CisKK2RhdGEgPSBbLTEsIC0xMCwgLTIsIC0yMCwgLTUsIC02XTsKK2RlYnVnKCJUaGlz
IHRlc3QgdmVyaWZpZXMgdGhhdCBtZWRpYW4gaXMgaGFuZGxlZCBjb3JyZWN0bHkgZm9yIik7Citk
ZWJ1ZygiYW4gZXZlbiBudW1iZXIgb2YgZWxlbWVudHMsIGluY2x1ZGluZyBuZWdhdGl2ZSBudW1i
ZXJzLiIpOworZGVidWcoImRhdGEgPSAiICsgSlNPTi5zdHJpbmdpZnkoZGF0YSkpOworc3RhdHMg
PSBQZXJmVGVzdFJ1bm5lci5jb21wdXRlU3RhdGlzdGljcyhkYXRhKTsKK3Nob3VsZEV2YWx1YXRl
VG8oInN0YXRzLm1lZGlhbiIsIC01LjUpOworc2hvdWxkRXZhbHVhdGVUbygic3RhdHMubWVkaWFu
IiwgYWx0ZXJuYXRlQ29tcHV0ZVN0YXRpc3RpY3MubWVkaWFuKGRhdGEpKTsKK2RlYnVnKCIiKTsK
KworLy8gcnVubmVyLmpzIG1hcmtzIHRoaXMgYXMgYW4gYXN5bmMgdGVzdCBzbyB3ZSBuZWVkIHRv
IGNhbGwgbm90aWZ5RG9uZS4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworPC9zY3JpcHQ+CisKKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VM
b2cgYi9QZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZwppbmRleCAxYjczNDUwYTdiODI1NTcwMmUy
YTQ1MjM4ZTliN2RkMjJiMmJlNmJjLi44MWVlMDFhYWEzNTE5YzNmNzVjYTlhZjFiOGY4ZjZhZGYw
ZmUyY2M2IDEwMDY0NAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZworKysgYi9QZXJm
b3JtYW5jZVRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDEyLTA1LTAyICBUb20g
WmFrcmFqc2VrICA8dG9tekBjb2RlYXVyb3JhLm9yZz4KKworICAgICAgICBOZWVkIHRlc3RzIGZv
ciBQZXJmVGVzdFJ1bm5lci5jb21wdXRlU3RhdGlzdGljcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU0MTAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHJlc291cmNlcy9ydW5uZXIuanM6CisKIDIwMTIt
MDQtMjkgIFRvbSBaYWtyYWpzZWsgIDx0b216QGNvZGVhdXJvcmEub3JnPgogCiAgICAgICAgIFBl
cmZUZXN0UnVubmVyLmNvbXB1dGVTdGF0aXN0aWNzIGluY29ycmVjdGx5IGNhbGN1bGF0ZXMgbWlu
LCBtYXggYW5kIG1lZGlhbgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9yZXNvdXJjZXMv
cnVubmVyLmpzIGIvUGVyZm9ybWFuY2VUZXN0cy9yZXNvdXJjZXMvcnVubmVyLmpzCmluZGV4IDcx
MGQ5M2I3YjYxZDJhNDU0MWU4MTUzZjY5MWM5ZTM0Y2MzNjMyMWEuLjJmN2Y4NGMyZDIzYzhlZGE4
MGE2ZGMzNDgwMTc0OWYzMDJkM2VjNzQgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvcmVz
b3VyY2VzL3J1bm5lci5qcworKysgYi9QZXJmb3JtYW5jZVRlc3RzL3Jlc291cmNlcy9ydW5uZXIu
anMKQEAgLTEsMyArMSw1IEBACisvLyBUaGVyZSBhcmUgdGVzdHMgZm9yIGNvbXB1dGVTdGF0aXN0
aWNzKCkgbG9jYXRlZCBpbgorLy8gTGF5b3V0VGVzdHMvZmFzdC9oYXJuZXNzL3BlcmZ0ZXN0cwog
CiB2YXIgUGVyZlRlc3RSdW5uZXIgPSB7fTsKIAo=
</data>
<flag name="review"
          id="145629"
          type_id="1"
          status="+"
          setter="rniwa"
    />
    <flag name="commit-queue"
          id="145630"
          type_id="3"
          status="-"
          setter="tomz"
    />
          </attachment>
      

    </bug>

</bugzilla>