<?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>90858</bug_id>
          
          <creation_ts>2012-07-10 01:56:32 -0700</creation_ts>
          <short_desc>JSHeap and FastMallocStatistics based memory measurement for performance-tests</short_desc>
          <delta_ts>2012-08-09 23:44:19 -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>91274</dependson>
    
    <dependson>92479</dependson>
    
    <dependson>92498</dependson>
          <blocked>78984</blocked>
    
    <blocked>93617</blocked>
    
    <blocked>93690</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Zoltan Horvath">zoltan</reporter>
          <assigned_to name="Zoltan Horvath">zoltan</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>benjamin</cc>
    
    <cc>dino</cc>
    
    <cc>dpranke</cc>
    
    <cc>fmalita</cc>
    
    <cc>ojan</cc>
    
    <cc>olivier.blin</cc>
    
    <cc>rniwa</cc>
    
    <cc>skyul</cc>
    
    <cc>slewis</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>665575</commentid>
    <comment_count>0</comment_count>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2012-07-10 01:56:32 -0700</bug_when>
    <thetext>This bug is for the discussion of the FastMallocStatistics based memory measurement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>676704</commentid>
    <comment_count>1</comment_count>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2012-07-24 05:44:02 -0700</bug_when>
    <thetext>I&apos;m ready with the solution, I would wait with the upload until the work in bug #91274 is going to be finished.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>680357</commentid>
    <comment_count>2</comment_count>
      <attachid>154885</attachid>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2012-07-27 02:42:35 -0700</bug_when>
    <thetext>Created attachment 154885
proposed patch

First approach, it uses

usedJSHeapSize + FastMallocStatistics.reservedVMBytes - FastMallocStatistics.freeListBytes

formula to calculate the memory consumption.

I&apos;m waiting for your comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>680372</commentid>
    <comment_count>3</comment_count>
    <who name="Olivier Blin">olivier.blin</who>
    <bug_when>2012-07-27 02:55:47 -0700</bug_when>
    <thetext>Shouldn&apos;t you use &quot;committedVMBytes - freeListBytes&quot; instead of &quot;reservedVMBytes - freeListBytes&quot; for FastMalloc stats?

reservedVMBytes does not reflect the current memory usage, since some pieces of this virtual memory range could have been returned to the system. reservedVMBytes is the max of the memory usage during the lifetime of FastMalloc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>680389</commentid>
    <comment_count>4</comment_count>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2012-07-27 03:12:27 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Shouldn&apos;t you use &quot;committedVMBytes - freeListBytes&quot; instead of &quot;reservedVMBytes - freeListBytes&quot; for FastMalloc stats?
&gt; 
&gt; reservedVMBytes does not reflect the current memory usage, since some pieces of this virtual memory range could have been returned to the system. reservedVMBytes is the max of the memory usage during the lifetime of FastMalloc.

statistics.reservedVMBytes = static_cast&lt;size_t&gt;(pageheap-&gt;SystemBytes());
statistics.committedVMBytes = statistics.reservedVMBytes - pageheap-&gt;ReturnedBytes();

As I experienced committed and reserved gives the same results usually. (I haven&apos;t seen any cases when it&apos;s not.) 
I used reserved memory because it&apos;s not sure that it has been returned to the system already, so I think it can represent the memory usage during the test run more nicer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>680430</commentid>
    <comment_count>5</comment_count>
    <who name="Olivier Blin">olivier.blin</who>
    <bug_when>2012-07-27 04:23:34 -0700</bug_when>
    <thetext>If you have some unreferenced objects and wait for the scavenger thread to wake up, you will see that it releases memory.
reservedVMBytes is more like a high watermark of the mapped memory, committedVMBytes is the amount currently allocated by FastMalloc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>680435</commentid>
    <comment_count>6</comment_count>
      <attachid>154902</attachid>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2012-07-27 04:31:19 -0700</bug_when>
    <thetext>Created attachment 154902
proposed patch

(In reply to comment #5)
&gt; If you have some unreferenced objects and wait for the scavenger thread to wake up, you will see that it releases memory.
&gt; reservedVMBytes is more like a high watermark of the mapped memory, committedVMBytes is the amount currently allocated by FastMalloc.

Okay, I modified, I hope this improve the quality of the measurement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681466</commentid>
    <comment_count>7</comment_count>
      <attachid>154902</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-07-28 12:48:29 -0700</bug_when>
    <thetext>Comment on attachment 154902
proposed patch

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

&gt; PerformanceTests/resources/runner.js:101
&gt; +    this.log(&quot;avg &quot; + performaceStats.mean + &quot; &quot; + performaceStats.unit + &quot; &quot; + Math.round(memoryStats.mean) + &quot; &quot; + memoryStats.unit);
&gt; +    this.log(&quot;median &quot; + performaceStats.median + &quot; &quot; + performaceStats.unit + &quot; &quot; + Math.round(memoryStats.median) + &quot; &quot; + memoryStats.unit);
&gt; +    this.log(&quot;stdev &quot; + performaceStats.stdev + &quot; &quot; + performaceStats.unit + &quot; &quot; + Math.round(memoryStats.stdev) + &quot; &quot; + memoryStats.unit);
&gt; +    this.log(&quot;min &quot; + performaceStats.min + &quot; &quot; + performaceStats.unit + &quot; &quot; + Math.round(memoryStats.min) + &quot; &quot; + memoryStats.unit);
&gt; +    this.log(&quot;max &quot; + performaceStats.max + &quot; &quot; + performaceStats.unit + &quot; &quot; + Math.round(memoryStats.max) + &quot; &quot; + memoryStats.unit);

It&apos;s probably better to print each value separately.

&gt; PerformanceTests/resources/runner.js:160
&gt; +PerfTestRunner.getHEAPResult = function() {

Why ALL CAPS?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681468</commentid>
    <comment_count>8</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-07-28 13:24:39 -0700</bug_when>
    <thetext>To clarify, what the output I&apos;m proposing is something like:

Result:
avg: ~ runs/s
median: ~ runs/s
min: ~ runs/s
max: ~ run/s
stdev: ~ run/s

Memory Usage:
avg: ~ bytes
median: ~ bytes
min: ~ bytes
max: ~ bytes
stdev: ~ run/s

By the way, one of improvements I&apos;ve wanted to make for a while is to report individual value separately so that we may apply different aggregate method on perf-o-matic (e.g. use median as the metric instead of mean).

Also, we should figure out how to display this result on perf-o-matic. My current take is that we can wait until porting https://github.com/mozilla/datazilla.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682937</commentid>
    <comment_count>9</comment_count>
      <attachid>155500</attachid>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2012-07-31 05:14:07 -0700</bug_when>
    <thetext>Created attachment 155500
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682938</commentid>
    <comment_count>10</comment_count>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2012-07-31 05:16:04 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; To clarify, what the output I&apos;m proposing is something like:
&gt; 
&gt; Result:
&gt; avg: ~ runs/s
&gt; median: ~ runs/s
&gt; min: ~ runs/s
&gt; max: ~ run/s
&gt; stdev: ~ run/s
&gt; 
&gt; Memory Usage:
&gt; avg: ~ bytes
&gt; median: ~ bytes
&gt; min: ~ bytes
&gt; max: ~ bytes
&gt; stdev: ~ run/s

I modified the js output for format like this.

The output of run-perf-tests looks like this now:

Running 1 tests
Running CSS/CSSPropertySetterGetter.html (1 of 1)
RESULT CSS: CSSPropertySetterGetter= 3561.87966478 runs/s
median= 3532.47349043 runs/s, stdev= 170.302053338 runs/s, min= 3232.32323232 runs/s, max= 3840.0 runs/s
RESULT Memory UsageCSS: CSSPropertySetterGetter= 21043333 bytes
median= 21040944 bytes, stdev= 6005 bytes, min= 21036488 bytes, max= 21055272 bytes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682939</commentid>
    <comment_count>11</comment_count>
      <attachid>155501</attachid>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2012-07-31 05:16:35 -0700</bug_when>
    <thetext>Created attachment 155501
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682940</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-31 05:18:19 -0700</bug_when>
    <thetext>Attachment 155501 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;PerformanceTests/ChangeLog&apos;, u&apos;Performance...&quot; exit_code: 1
Tools/Scripts/webkitpy/performance_tests/perftest.py:140:  indentation is not a multiple of four  [pep8/E111] [5]
Tools/Scripts/webkitpy/performance_tests/perftest.py:141:  indentation is not a multiple of four  [pep8/E111] [5]
Total errors found: 2 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682949</commentid>
    <comment_count>13</comment_count>
      <attachid>155506</attachid>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2012-07-31 05:33:02 -0700</bug_when>
    <thetext>Created attachment 155506
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683538</commentid>
    <comment_count>14</comment_count>
      <attachid>155506</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-07-31 15:36:36 -0700</bug_when>
    <thetext>Comment on attachment 155506
proposed patch

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

&gt; PerformanceTests/resources/runner.js:165
&gt; +    var stats = window.internals.fastMallocStatistics();
&gt; +    return console.memory.usedJSHeapSize + stats.committedVMBytes - stats.freeListBytes;

I would report these values separately so that we can tell where the memory is going.

&gt; Tools/Scripts/webkitpy/performance_tests/perftest.py:157
&gt; +        memory_test_name = &quot;Memory Usage &quot; + test_name

The current console output comes from Chromium perf bots:
RESULT CSS: CSSPropertySetterGetter= 3561.87966478 runs/s

And the convention there is to put vm_page, etc... at the end as in:
RESULT CSS: CSSPropertySetterGetter= 3561.87966478 runs/s
RESULT CSS: CSSPropertySetterGetter: VMPage = 3561.87966478 runs/s
(or RESULT CSS: CSSPropertySetterGetter_VMPage = 3561.87966478 runs/s but let&apos;s avoid underscored names)
etc...

So it&apos;s probably nice to match the format here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686509</commentid>
    <comment_count>15</comment_count>
      <attachid>155506</attachid>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2012-08-03 03:19:29 -0700</bug_when>
    <thetext>Comment on attachment 155506
proposed patch

Removing r?, since I need to improve the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>689305</commentid>
    <comment_count>16</comment_count>
      <attachid>156983</attachid>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2012-08-07 13:04:15 -0700</bug_when>
    <thetext>Created attachment 156983
proposed patch

This patch required https://bugs.webkit.org/show_bug.cgi?id=92498.

Sample output:

zoltan@csk:~/prog/local/WebKit$ xvfb-run -a Tools/Scripts/run-perf-tests --platform=qt PerformanceTests/CSS/CSSPropertySetterGetter.html 
Running 1 tests
Running CSS/CSSPropertySetterGetter.html (1 of 1)
RESULT CSS: CSSPropertySetterGetter= 2617.03817956 runs/s
median= 2616.35220126 runs/s, stdev= 8.50363628361 runs/s, min= 2600.0 runs/s, max= 2636.24841572 runs/s
RESULT CSS: CSSPropertySetterGetter: JSHeap= 55847.2 bytes
median= 55944.0 bytes, stdev= 931.431242766 bytes, min= 53208.0 bytes, max= 57144.0 bytes
RESULT CSS: CSSPropertySetterGetter: FastMallocHeap= 10815834.0 bytes
median= 11024064.0 bytes, stdev= 625807.636386 bytes, min= 8929600.0 bytes, max= 11029152.0 bytes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>689309</commentid>
    <comment_count>17</comment_count>
      <attachid>156985</attachid>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2012-08-07 13:06:34 -0700</bug_when>
    <thetext>Created attachment 156985
sample modification for fps tests

If you liked this approach then we need to modify some fps tests (like in the attached file) to produce memory results.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>689339</commentid>
    <comment_count>18</comment_count>
      <attachid>156983</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-08-07 13:39:46 -0700</bug_when>
    <thetext>Comment on attachment 156983
proposed patch

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

&gt; PerformanceTests/resources/runner.js:126
&gt; +        this.logStatistics(this._results, this.unit, &quot;Performance:&quot;);

It&apos;s probably to call this &quot;Time&quot; because fps, runs/s, ms, are all about time and frequency.

&gt; PerformanceTests/resources/runner.js:128
&gt; +        this.logStatistics(this._jsHeapResults, &quot;bytes&quot;, &quot;JS heap usage:&quot;);
&gt; +        this.logStatistics(this._fastMallocHeapResults, &quot;bytes&quot;, &quot;FastMalloc heap usage:&quot;);

I would call these &quot;JS Heap&quot; and &quot;FastMalloc&quot; since the fact that these numbers are &quot;usage&quot; is quite self-evident.

&gt; PerformanceTests/resources/runner.js:175
&gt; +// This function is to be used in fps based performance tests

I don&apos;t think this comment is accurate; it could be used on other tests as well.

&gt; Tools/Scripts/webkitpy/performance_tests/perftest.py:128
&gt; +        actual_result_class = &quot;&quot;

Prefix &quot;actual&quot; is somewhat confusing because there isn&apos;t &quot;expected&quot; result class or anything.

&gt; Tools/Scripts/webkitpy/performance_tests/perftest.py:136
&gt; +            tmp_result_class = result_class_regex.match(line)
&gt; +            if tmp_result_class:

I would call this result_class_match. Also, if you&apos;re sticking with tmp_, then please spell out temp_.

&gt; Tools/Scripts/webkitpy/performance_tests/perftest.py:154
&gt; +                if actual_result_class == self._result_classes[0]:
&gt; +                    performance_results[&apos;unit&apos;] = unit
&gt; +                    performance_results[key] = value
&gt; +                elif actual_result_class == self._result_classes[1]:
&gt; +                    js_memory_results[&apos;unit&apos;] = unit
&gt; +                    js_memory_results[key] = value
&gt; +                elif actual_result_class == self._result_classes[2]:
&gt; +                    fastmalloc_memory_results[&apos;unit&apos;] = unit
&gt; +                    fastmalloc_memory_results[key] = value

Can we use a dictionary of dictionaries here so that we can just do
results[result_class][&apos;unit&apos;] = unit
results[result_class][key] = key
?

&gt; Tools/Scripts/webkitpy/performance_tests/perftest.py:168
&gt; +        self.output_statistics(test_name + &quot;: FastMallocHeap&quot;, fastmalloc_memory_results, description_string)

I don&apos;t think we need to have Heap postfix for FastMalloc because we don&apos;t use fast malloc for non-heap memory allocation.

&gt; Tools/Scripts/webkitpy/performance_tests/perftest.py:176
&gt; +        _log.info(&apos;, &apos;.join([&apos;%s= %s %s&apos; % (key, results[key], unit) for key in self._statistics_keys[1:5]]))

Why do we need to limit at :5?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>690039</commentid>
    <comment_count>19</comment_count>
      <attachid>157145</attachid>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2012-08-08 01:19:11 -0700</bug_when>
    <thetext>Created attachment 157145
proposed patch

(In reply to comment #18)
&gt; (From update of attachment 156983 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=156983&amp;action=review
&gt; 
&gt; &gt; PerformanceTests/resources/runner.js:126
&gt; &gt; +        this.logStatistics(this._results, this.unit, &quot;Performance:&quot;);
&gt; 
&gt; It&apos;s probably to call this &quot;Time&quot; because fps, runs/s, ms, are all about time and frequency.

Fixed.

&gt; &gt; PerformanceTests/resources/runner.js:128
&gt; &gt; +        this.logStatistics(this._jsHeapResults, &quot;bytes&quot;, &quot;JS heap usage:&quot;);
&gt; &gt; +        this.logStatistics(this._fastMallocHeapResults, &quot;bytes&quot;, &quot;FastMalloc heap usage:&quot;);
&gt; 
&gt; I would call these &quot;JS Heap&quot; and &quot;FastMalloc&quot; since the fact that these numbers are &quot;usage&quot; is quite self-evident.

Fixed.

&gt; &gt; PerformanceTests/resources/runner.js:175
&gt; &gt; +// This function is to be used in fps based performance tests
&gt; 
&gt; I don&apos;t think this comment is accurate; it could be used on other tests as well.

Removed.

&gt; &gt; Tools/Scripts/webkitpy/performance_tests/perftest.py:128
&gt; &gt; +        actual_result_class = &quot;&quot;
&gt; 
&gt; Prefix &quot;actual&quot; is somewhat confusing because there isn&apos;t &quot;expected&quot; result class or anything.

Fixed.
 
&gt; &gt; Tools/Scripts/webkitpy/performance_tests/perftest.py:136
&gt; &gt; +            tmp_result_class = result_class_regex.match(line)
&gt; &gt; +            if tmp_result_class:
&gt; 
&gt; I would call this result_class_match. Also, if you&apos;re sticking with tmp_, then please spell out temp_.

Done.

&gt; Can we use a dictionary of dictionaries here so that we can just do
&gt; results[result_class][&apos;unit&apos;] = unit
&gt; results[result_class][key] = key
&gt; ?

You are absolutely right. Fixed.
 
&gt; &gt; Tools/Scripts/webkitpy/performance_tests/perftest.py:168
&gt; &gt; +        self.output_statistics(test_name + &quot;: FastMallocHeap&quot;, fastmalloc_memory_results, description_string)
&gt; 
&gt; I don&apos;t think we need to have Heap postfix for FastMalloc because we don&apos;t use fast malloc for non-heap memory allocation.

Fixed.

&gt; &gt; Tools/Scripts/webkitpy/performance_tests/perftest.py:176
&gt; &gt; +        _log.info(&apos;, &apos;.join([&apos;%s= %s %s&apos; % (key, results[key], unit) for key in self._statistics_keys[1:5]]))
&gt; 
&gt; Why do we need to limit at :5?

Because I put unit into statistics_keys and I don&apos;t want to print it twice.

Thanks for the review, new patch is uploaded.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>690102</commentid>
    <comment_count>20</comment_count>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2012-08-08 03:10:10 -0700</bug_when>
    <thetext>I need to remove the following parts of the patch (don&apos;t cq it please):
old mode 100644
new mode 100755</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>690523</commentid>
    <comment_count>21</comment_count>
      <attachid>157145</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-08-08 11:09:15 -0700</bug_when>
    <thetext>Comment on attachment 157145
proposed patch

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

&gt; PerformanceTests/resources/runner.js:95
&gt; +PerfTestRunner.printStatistics = function (statistics, description) {
&gt;      this.log(&quot;&quot;);
&gt; +    this.log(description);

We probably want to call this &quot;title&quot; or &quot;label&quot; instead of description because there&apos;s a separate test-wide description we print.

&gt; Tools/Scripts/webkitpy/performance_tests/perftest.py:157
&gt; +        self.output_statistics(test_name + &quot;: JSHeap&quot;, results[self._result_classes[1]], description_string)
&gt; +        self.output_statistics(test_name + &quot;: FastMalloc&quot;, results[self._result_classes[2]], description_string)

output_statistics will replace &quot;/&quot; by &quot;: &quot; so you can just use / here instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>690536</commentid>
    <comment_count>22</comment_count>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2012-08-08 11:25:18 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; (From update of attachment 157145 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=157145&amp;action=review
&gt; 
&gt; &gt; PerformanceTests/resources/runner.js:95
&gt; &gt; +PerfTestRunner.printStatistics = function (statistics, description) {
&gt; &gt;      this.log(&quot;&quot;);
&gt; &gt; +    this.log(description);
&gt; 
&gt; We probably want to call this &quot;title&quot; or &quot;label&quot; instead of description because there&apos;s a separate test-wide description we print.
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/performance_tests/perftest.py:157
&gt; &gt; +        self.output_statistics(test_name + &quot;: JSHeap&quot;, results[self._result_classes[1]], description_string)
&gt; &gt; +        self.output_statistics(test_name + &quot;: FastMalloc&quot;, results[self._result_classes[2]], description_string)
&gt; 
&gt; output_statistics will replace &quot;/&quot; by &quot;: &quot; so you can just use / here instead.

Right! I will fix before land. Please review bug #92498 also, since we need to enable accessing console.memory for the measurements.

I will file a patch in the morning for the tests like Animation/balls.html to not break the measurements.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>690758</commentid>
    <comment_count>23</comment_count>
      <attachid>157145</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-08-08 14:41:44 -0700</bug_when>
    <thetext>Comment on attachment 157145
proposed patch

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

&gt; PerformanceTests/resources/runner.js:167
&gt; +    var stats = window.internals.fastMallocStatistics();

We need to check that &quot;internals&quot; is available. Subsequently, you need to check the existence of heap results, etc... in runLoop.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>690762</commentid>
    <comment_count>24</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-08-08 14:43:29 -0700</bug_when>
    <thetext>Before landing, make sure the calls to internals do not prevent manual running of the tests. See: https://bugs.webkit.org/show_bug.cgi?id=93527</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691486</commentid>
    <comment_count>25</comment_count>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2012-08-09 09:13:11 -0700</bug_when>
    <thetext>Fixed. I&apos;m ready to land it, waiting for bug #93617.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691499</commentid>
    <comment_count>26</comment_count>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2012-08-09 09:22:57 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/125178</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691583</commentid>
    <comment_count>27</comment_count>
    <who name="Florin Malita">fmalita</who>
    <bug_when>2012-08-09 10:49:02 -0700</bug_when>
    <thetext>I&apos;m seeing perf-related failures after this:

http://build.webkit.org/builders/Chromium%20Linux%20Release%20%28Perf%29/builds/4638/steps/perf-test/logs/stdio
http://build.webkit.org/builders/Chromium%20Mac%20Release%20%28Tests%29/builds/21581/steps/webkitpy-test/logs/stdio

  Uploaded JSON but got a bad response:
  The payload doesn&apos;t contain results or results are malformed
  program finished with exit code 252

  Running the tests ...
  [965/1574] webkitpy.performance_tests.perftest_unittest.MainTest.test_parse_output erred:
    Traceback (most recent call last):
      File &quot;/Volumes/data/b/WebKit-BuildSlave/chromium-mac-release-tests/build/Tools/Scripts/webkitpy/performance_tests/perftest_unittest.py&quot;, line 61, in test_parse_output
        self.assertEqual(test.parse_output(output),
      File &quot;/Volumes/data/b/WebKit-BuildSlave/chromium-mac-release-tests/build/Tools/Scripts/webkitpy/performance_tests/perftest.py&quot;, line 143, in parse_output
        results[result_class][&apos;unit&apos;] = unit
    KeyError: &apos;&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691615</commentid>
    <comment_count>28</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-08-09 11:08:53 -0700</bug_when>
    <thetext>Ugh... this broke perf tests. We can&apos;t include memory info in the results json file because neither results page nor perf-o-matic support that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691624</commentid>
    <comment_count>29</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-08-09 11:28:15 -0700</bug_when>
    <thetext>Build fix landed in http://trac.webkit.org/changeset/125188.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691668</commentid>
    <comment_count>30</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2012-08-09 12:06:11 -0700</bug_when>
    <thetext>I&apos;m still seeing perf test failures after 125188:

http://build.webkit.org/results/Apple%20Lion%20Release%20WK1%20(Tests)/r125188%20(2165)/results.html

Is this expected?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691714</commentid>
    <comment_count>31</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-08-09 13:01:29 -0700</bug_when>
    <thetext>(In reply to comment #30)
&gt; I&apos;m still seeing perf test failures after 125188:
&gt; 
&gt; http://build.webkit.org/results/Apple%20Lion%20Release%20WK1%20(Tests)/r125188%20(2165)/results.html
&gt; 
&gt; Is this expected?

Yeah, that test needs to be fixed. Done in http://trac.webkit.org/changeset/125194.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691732</commentid>
    <comment_count>32</comment_count>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2012-08-09 13:13:09 -0700</bug_when>
    <thetext>Landed, fixed, closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>154885</attachid>
            <date>2012-07-27 02:42:35 -0700</date>
            <delta_ts>2012-07-27 04:31:19 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>perftestmemory_20120727.patch</filename>
            <type>text/plain</type>
            <size>7556</size>
            <attacher name="Zoltan Horvath">zoltan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nIGIvUGVyZm9ybWFuY2VUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggYzI5OWQyYy4uNTljOGIzNCAxMDA2NDQKLS0tIGEvUGVyZm9ybWFu
Y2VUZXN0cy9DaGFuZ2VMb2cKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAxMi0wNy0yNyAgWm9sdGFuIEhvcnZhdGggIDx6b2x0YW5Ad2Via2l0Lm9y
Zz4KKworICAgICAgICBKU0hFQVAgYW5kIEZhc3RNYWxsb2NTdGF0aXN0aWNzIGJhc2VkIG1lbW9y
eSBtZWFzdXJlbWVudCBmb3IgcGVyZm9ybWFuY2UtdGVzdHMKKyAgICAgICAgW1F0XWh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MDg1OAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1lYXN1cmUgdGhlIG1lbW9yeSB1c2FnZSBv
ZiB0aGUgcGVyZm9ybWFuY2V0ZXN0cyB0aHJvdWdoIHRoZSB3aW5kb3dzLm1lbW9yeS51c2VkSlNI
ZWFwU2l6ZSBvYmplY3QgYW5kCisgICAgICAgIHRoZSB3aW5kb3cuaW50ZXJuYWxzLmZhc3RNYWxs
b2NTdGF0aXN0aWNzKCkgZnVuY3Rpb24gY2FsbC4KKworICAgICAgICAqIHJlc291cmNlcy9ydW5u
ZXIuanM6CisgICAgICAgIChQZXJmVGVzdFJ1bm5lci5sb2dTdGF0aXN0aWNzKToKKyAgICAgICAg
KFBlcmZUZXN0UnVubmVyLnByaW50U3RhdGlzdGljcyk6CisgICAgICAgIChQZXJmVGVzdFJ1bm5l
ci5nZXRIRUFQUmVzdWx0KToKKyAgICAgICAgKFBlcmZUZXN0UnVubmVyLmlnbm9yZVdhcm1VcEFu
ZExvZyk6CisgICAgICAgIChQZXJmVGVzdFJ1bm5lci5pbml0QW5kU3RhcnRMb29wKToKKwogMjAx
Mi0wNy0yNiAgQXJuYXVkIFJlbmV2aWVyICA8YS5yZW5ldmllckBzaXNhLnNhbXN1bmcuY29tPgog
CiAgICAgICAgIGNvbnN0cnVjdGluZyBUeXBlZEFycmF5IGZyb20gYW5vdGhlciBUeXBlZEFycmF5
IGlzIHNsb3cKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvcmVzb3VyY2VzL3J1bm5lci5q
cyBiL1BlcmZvcm1hbmNlVGVzdHMvcmVzb3VyY2VzL3J1bm5lci5qcwpvbGQgbW9kZSAxMDA2NDQK
bmV3IG1vZGUgMTAwNzU1CmluZGV4IDI1MWE3YzQuLjgyNzRjMTIKLS0tIGEvUGVyZm9ybWFuY2VU
ZXN0cy9yZXNvdXJjZXMvcnVubmVyLmpzCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvcmVzb3VyY2Vz
L3J1bm5lci5qcwpAQCAtODUsMTkgKzg1LDIwIEBAIFBlcmZUZXN0UnVubmVyLmNvbXB1dGVTdGF0
aXN0aWNzID0gZnVuY3Rpb24gKHRpbWVzLCB1bml0KSB7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0K
IAotUGVyZlRlc3RSdW5uZXIubG9nU3RhdGlzdGljcyA9IGZ1bmN0aW9uICh0aW1lcykgeworUGVy
ZlRlc3RSdW5uZXIubG9nU3RhdGlzdGljcyA9IGZ1bmN0aW9uICh0aW1lcywgdW5pdCwgbWVtb3J5
LCBtZW1vcnlVbml0KSB7CiAgICAgdGhpcy5sb2coIiIpOwotICAgIHZhciBzdGF0aXN0aWNzID0g
dGhpcy5jb21wdXRlU3RhdGlzdGljcyh0aW1lcywgdGhpcy51bml0KTsKLSAgICB0aGlzLnByaW50
U3RhdGlzdGljcyhzdGF0aXN0aWNzKTsKKyAgICB2YXIgcGVyZm9ybWFjZVN0YXRpc3RpY3MgPSB0
aGlzLmNvbXB1dGVTdGF0aXN0aWNzKHRpbWVzLCB1bml0KTsKKyAgICB2YXIgbWVtb3J5U3RhdGlz
dGljcyA9IHRoaXMuY29tcHV0ZVN0YXRpc3RpY3MobWVtb3J5LCBtZW1vcnlVbml0KTsKKyAgICB0
aGlzLnByaW50U3RhdGlzdGljcyhwZXJmb3JtYWNlU3RhdGlzdGljcywgbWVtb3J5U3RhdGlzdGlj
cyk7CiB9CiAKLVBlcmZUZXN0UnVubmVyLnByaW50U3RhdGlzdGljcyA9IGZ1bmN0aW9uIChzdGF0
aXN0aWNzKSB7CitQZXJmVGVzdFJ1bm5lci5wcmludFN0YXRpc3RpY3MgPSBmdW5jdGlvbiAocGVy
Zm9ybWFjZVN0YXRzLCBtZW1vcnlTdGF0cykgewogICAgIHRoaXMubG9nKCIiKTsKLSAgICB0aGlz
LmxvZygiYXZnICIgKyBzdGF0aXN0aWNzLm1lYW4gKyAiICIgKyBzdGF0aXN0aWNzLnVuaXQpOwot
ICAgIHRoaXMubG9nKCJtZWRpYW4gIiArIHN0YXRpc3RpY3MubWVkaWFuICsgIiAiICsgc3RhdGlz
dGljcy51bml0KTsKLSAgICB0aGlzLmxvZygic3RkZXYgIiArIHN0YXRpc3RpY3Muc3RkZXYgKyAi
ICIgKyBzdGF0aXN0aWNzLnVuaXQpOwotICAgIHRoaXMubG9nKCJtaW4gIiArIHN0YXRpc3RpY3Mu
bWluICsgIiAiICsgc3RhdGlzdGljcy51bml0KTsKLSAgICB0aGlzLmxvZygibWF4ICIgKyBzdGF0
aXN0aWNzLm1heCArICIgIiArIHN0YXRpc3RpY3MudW5pdCk7CisgICAgdGhpcy5sb2coImF2ZyAi
ICsgcGVyZm9ybWFjZVN0YXRzLm1lYW4gKyAiICIgKyBwZXJmb3JtYWNlU3RhdHMudW5pdCArICIg
IiArIE1hdGgucm91bmQobWVtb3J5U3RhdHMubWVhbikgKyAiICIgKyBtZW1vcnlTdGF0cy51bml0
KTsKKyAgICB0aGlzLmxvZygibWVkaWFuICIgKyBwZXJmb3JtYWNlU3RhdHMubWVkaWFuICsgIiAi
ICsgcGVyZm9ybWFjZVN0YXRzLnVuaXQgKyAiICIgKyBNYXRoLnJvdW5kKG1lbW9yeVN0YXRzLm1l
ZGlhbikgKyAiICIgKyBtZW1vcnlTdGF0cy51bml0KTsKKyAgICB0aGlzLmxvZygic3RkZXYgIiAr
IHBlcmZvcm1hY2VTdGF0cy5zdGRldiArICIgIiArIHBlcmZvcm1hY2VTdGF0cy51bml0ICsgIiAi
ICsgTWF0aC5yb3VuZChtZW1vcnlTdGF0cy5zdGRldikgKyAiICIgKyBtZW1vcnlTdGF0cy51bml0
KTsKKyAgICB0aGlzLmxvZygibWluICIgKyBwZXJmb3JtYWNlU3RhdHMubWluICsgIiAiICsgcGVy
Zm9ybWFjZVN0YXRzLnVuaXQgKyAiICIgKyBNYXRoLnJvdW5kKG1lbW9yeVN0YXRzLm1pbikgKyAi
ICIgKyBtZW1vcnlTdGF0cy51bml0KTsKKyAgICB0aGlzLmxvZygibWF4ICIgKyBwZXJmb3JtYWNl
U3RhdHMubWF4ICsgIiAiICsgcGVyZm9ybWFjZVN0YXRzLnVuaXQgKyAiICIgKyBNYXRoLnJvdW5k
KG1lbW9yeVN0YXRzLm1heCkgKyAiICIgKyBtZW1vcnlTdGF0cy51bml0KTsKIH0KIAogUGVyZlRl
c3RSdW5uZXIuZ2MgPSBmdW5jdGlvbiAoKSB7CkBAIC0xMjMsNyArMTI0LDcgQEAgUGVyZlRlc3RS
dW5uZXIuX3J1bkxvb3AgPSBmdW5jdGlvbiAoKSB7CiAgICAgfSBlbHNlIHsKICAgICAgICAgaWYg
KHRoaXMuX2Rlc2NyaXB0aW9uKQogICAgICAgICAgICAgdGhpcy5sb2coIkRlc2NyaXB0aW9uOiAi
ICsgdGhpcy5fZGVzY3JpcHRpb24pOwotICAgICAgICB0aGlzLmxvZ1N0YXRpc3RpY3ModGhpcy5f
cmVzdWx0cyk7CisgICAgICAgIHRoaXMubG9nU3RhdGlzdGljcyh0aGlzLl9yZXN1bHRzLCB0aGlz
LnVuaXQsIHRoaXMuX21lbW9yeVJlc3VsdHMsICJieXRlcyIpOwogICAgICAgICBpZiAodGhpcy5f
bG9nTGluZXMpIHsKICAgICAgICAgICAgIHZhciBsb2dMaW5lcyA9IHRoaXMuX2xvZ0xpbmVzOwog
ICAgICAgICAgICAgdGhpcy5fbG9nTGluZXMgPSBudWxsOwpAQCAtMTU2LDYgKzE1NywxMSBAQCBQ
ZXJmVGVzdFJ1bm5lci5fcnVubmVyID0gZnVuY3Rpb24gKCkgewogICAgIHRoaXMuX3J1bkxvb3Ao
KTsKIH0KIAorUGVyZlRlc3RSdW5uZXIuZ2V0SEVBUFJlc3VsdCA9IGZ1bmN0aW9uKCkgeworICAg
IHZhciBzdGF0cyA9IHdpbmRvdy5pbnRlcm5hbHMuZmFzdE1hbGxvY1N0YXRpc3RpY3MoKTsKKyAg
ICByZXR1cm4gY29uc29sZS5tZW1vcnkudXNlZEpTSGVhcFNpemUgKyBzdGF0cy5yZXNlcnZlZFZN
Qnl0ZXMgLSBzdGF0cy5mcmVlTGlzdEJ5dGVzOworfQorCiBQZXJmVGVzdFJ1bm5lci5pZ25vcmVX
YXJtVXBBbmRMb2cgPSBmdW5jdGlvbiAocmVzdWx0KSB7CiAgICAgdGhpcy5fY29tcGxldGVkUnVu
cysrOwogCkBAIC0xNjQsNiArMTcwLDcgQEAgUGVyZlRlc3RSdW5uZXIuaWdub3JlV2FybVVwQW5k
TG9nID0gZnVuY3Rpb24gKHJlc3VsdCkgewogICAgICAgICB0aGlzLmxvZygiSWdub3Jpbmcgd2Fy
bS11cCBydW4gKCIgKyBsYWJlbGVkUmVzdWx0ICsgIikiKTsKICAgICBlbHNlIHsKICAgICAgICAg
dGhpcy5fcmVzdWx0cy5wdXNoKHJlc3VsdCk7CisgICAgICAgIHRoaXMuX21lbW9yeVJlc3VsdHMu
cHVzaCh0aGlzLmdldEhFQVBSZXN1bHQoKSk7CiAgICAgICAgIHRoaXMubG9nKGxhYmVsZWRSZXN1
bHQpOwogICAgIH0KIH0KQEAgLTE3Miw2ICsxNzksNyBAQCBQZXJmVGVzdFJ1bm5lci5pbml0QW5k
U3RhcnRMb29wID0gZnVuY3Rpb24oKSB7CiAgICAgdGhpcy5fY29tcGxldGVkUnVucyA9IC0xOwog
ICAgIHRoaXMuY3VzdG9tUnVuRnVuY3Rpb24gPSBudWxsOwogICAgIHRoaXMuX3Jlc3VsdHMgPSBb
XTsKKyAgICB0aGlzLl9tZW1vcnlSZXN1bHRzID0gW107CiAgICAgdGhpcy5fbG9nTGluZXMgPSB3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIgPyBbXSA6IG51bGw7CiAgICAgdGhpcy5sb2coIlJ1
bm5pbmcgIiArIHRoaXMuX3J1bkNvdW50ICsgIiB0aW1lcyIpOwogICAgIHRoaXMuX3J1bkxvb3Ao
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA3
MjhkZThhLi5hNjg4OTEyIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDctMjcgIFpvbHRhbiBIb3J2YXRoICA8
em9sdGFuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSlNIRUFQIGFuZCBGYXN0TWFsbG9jU3RhdGlz
dGljcyBiYXNlZCBtZW1vcnkgbWVhc3VyZW1lbnQgZm9yIHBlcmZvcm1hbmNlLXRlc3RzCisgICAg
ICAgIFtRdF1odHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTA4NTgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNZWFzdXJlIHRo
ZSBtZW1vcnkgdXNhZ2Ugb2YgdGhlIHBlcmZvcm1hbmNldGVzdHMgdGhyb3VnaCB0aGUgd2luZG93
cy5tZW1vcnkudXNlZEpTSGVhcFNpemUgb2JqZWN0IGFuZAorICAgICAgICB0aGUgd2luZG93Lmlu
dGVybmFscy5mYXN0TWFsbG9jU3RhdGlzdGljcygpIGZ1bmN0aW9uIGNhbGwuCisKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L3BlcmZvcm1hbmNlX3Rlc3RzL3BlcmZ0ZXN0LnB5OgorICAgICAg
ICAoUGVyZlRlc3QucGFyc2Vfb3V0cHV0KToKKwogMjAxMi0wNy0yNyAgQ3NhYmEgT3N6dHJvZ29u
w6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF1bV0syXSBSRUdSRVNTSU9OKHIx
MTkxMjcpOiByZXNldHRpbmcgd2luZG93LmludGVybmFscyBzZXR0aW5ncyBiZXR3ZWVuIHRlc3Rz
IGRvZXNuJ3Qgd29yayBwcm9wZXJseQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9wZXJmb3JtYW5jZV90ZXN0cy9wZXJmdGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
cGVyZm9ybWFuY2VfdGVzdHMvcGVyZnRlc3QucHkKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEw
MDc1NQppbmRleCA4YWFjNzhmLi4xMzQxNzg4Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
cGVyZm9ybWFuY2VfdGVzdHMvcGVyZnRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9wZXJmb3JtYW5jZV90ZXN0cy9wZXJmdGVzdC5weQpAQCAtMTE3LDEwICsxMTcsMTIgQEAgY2xh
c3MgUGVyZlRlc3Qob2JqZWN0KToKICAgICAgICAgZ290X2FfcmVzdWx0ID0gRmFsc2UKICAgICAg
ICAgdGVzdF9mYWlsZWQgPSBGYWxzZQogICAgICAgICByZXN1bHRzID0ge30KLSAgICAgICAgc2Nv
cmVfcmVnZXggPSByZS5jb21waWxlKHInXig/UDxrZXk+JyArIHInfCcuam9pbihzZWxmLl9zdGF0
aXN0aWNzX2tleXMpICsgcicpXHMrKD9QPHZhbHVlPlswLTlcLl0rKVxzKig/UDx1bml0Pi4qKScp
CisgICAgICAgIG1lbW9yeV9yZXN1bHRzID0ge30KKyAgICAgICAgc2NvcmVfcmVnZXggPSByZS5j
b21waWxlKHInXig/UDxrZXk+JyArIHInfCcuam9pbihzZWxmLl9zdGF0aXN0aWNzX2tleXMpICsg
cicpXHMrKD9QPHZhbHVlPlswLTlcLl0rKVxzKyg/UDx1bml0Pi4qKVxzKyg/UDxtZW1vcnlWYWx1
ZT5bMC05XC5dKylccysoP1A8bWVtb3J5VW5pdD4uKiknKQogICAgICAgICBkZXNjcmlwdGlvbl9y
ZWdleCA9IHJlLmNvbXBpbGUocideRGVzY3JpcHRpb246ICg/UDxkZXNjcmlwdGlvbj4uKikkJywg
cmUuSUdOT1JFQ0FTRSkKICAgICAgICAgZGVzY3JpcHRpb25fc3RyaW5nID0gIiIKICAgICAgICAg
dW5pdCA9ICJtcyIKKyAgICAgICAgbWVtb3J5X3VuaXQgPSAiYnl0ZXMiCiAKICAgICAgICAgZm9y
IGxpbmUgaW4gcmUuc3BsaXQoJ1xuJywgb3V0cHV0LnRleHQpOgogICAgICAgICAgICAgZGVzY3Jp
cHRpb24gPSBkZXNjcmlwdGlvbl9yZWdleC5tYXRjaChsaW5lKQpAQCAtMTMxLDkgKzEzMywxMyBA
QCBjbGFzcyBQZXJmVGVzdChvYmplY3QpOgogICAgICAgICAgICAgc2NvcmUgPSBzY29yZV9yZWdl
eC5tYXRjaChsaW5lKQogICAgICAgICAgICAgaWYgc2NvcmU6CiAgICAgICAgICAgICAgICAgcmVz
dWx0c1tzY29yZS5ncm91cCgna2V5JyldID0gZmxvYXQoc2NvcmUuZ3JvdXAoJ3ZhbHVlJykpCisg
ICAgICAgICAgICAgICAgbWVtb3J5X3Jlc3VsdHNbc2NvcmUuZ3JvdXAoJ2tleScpXSA9IHNjb3Jl
Lmdyb3VwKCdtZW1vcnlWYWx1ZScpCiAgICAgICAgICAgICAgICAgaWYgc2NvcmUuZ3JvdXAoJ3Vu
aXQnKToKICAgICAgICAgICAgICAgICAgICAgdW5pdCA9IHNjb3JlLmdyb3VwKCd1bml0JykKLSAg
ICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAg
ICAgICAgICAgICAgIGlmIHNjb3JlLmdyb3VwKCdtZW1vcnlVbml0Jyk6CisgICAgICAgICAgICAg
ICAgICAgIG1lbW9yeV91bml0ID0gc2NvcmUuZ3JvdXAoJ21lbW9yeVVuaXQnKQorICAgICAgICAg
ICAgICAgICAgICBjb250aW51ZQogCiAgICAgICAgICAgICBpZiBub3Qgc2VsZi5fc2hvdWxkX2ln
bm9yZV9saW5lX2luX3BhcnNlcl90ZXN0X3Jlc3VsdChsaW5lKToKICAgICAgICAgICAgICAgICB0
ZXN0X2ZhaWxlZCA9IFRydWUKQEAgLTE0MywxMSArMTQ5LDE1IEBAIGNsYXNzIFBlcmZUZXN0KG9i
amVjdCk6CiAgICAgICAgICAgICByZXR1cm4gTm9uZQogCiAgICAgICAgIHJlc3VsdHNbJ3VuaXQn
XSA9IHVuaXQKKyAgICAgICAgbWVtb3J5X3Jlc3VsdHNbJ3VuaXQnXSA9IG1lbW9yeV91bml0CiAK
ICAgICAgICAgdGVzdF9uYW1lID0gcmUuc3ViKHInXC5cdyskJywgJycsIHNlbGYuX3Rlc3RfbmFt
ZSkKKyAgICAgICAgbWVtb3J5X3Rlc3RfbmFtZSA9ICJNZW1vcnkgIiArIHRlc3RfbmFtZQorCiAg
ICAgICAgIHNlbGYub3V0cHV0X3N0YXRpc3RpY3ModGVzdF9uYW1lLCByZXN1bHRzLCBkZXNjcmlw
dGlvbl9zdHJpbmcpCisgICAgICAgIHNlbGYub3V0cHV0X3N0YXRpc3RpY3MobWVtb3J5X3Rlc3Rf
bmFtZSwgbWVtb3J5X3Jlc3VsdHMsIGRlc2NyaXB0aW9uX3N0cmluZykKIAotICAgICAgICByZXR1
cm4ge3Rlc3RfbmFtZTogcmVzdWx0c30KKyAgICAgICAgcmV0dXJuIHt0ZXN0X25hbWU6IHJlc3Vs
dHMsIG1lbW9yeV90ZXN0X25hbWU6IG1lbW9yeV9yZXN1bHRzfQogCiAgICAgZGVmIG91dHB1dF9z
dGF0aXN0aWNzKHNlbGYsIHRlc3RfbmFtZSwgcmVzdWx0cywgZGVzY3JpcHRpb25fc3RyaW5nKToK
ICAgICAgICAgdW5pdCA9IHJlc3VsdHNbJ3VuaXQnXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>154902</attachid>
            <date>2012-07-27 04:31:19 -0700</date>
            <delta_ts>2012-07-31 05:14:07 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>perftestmemory_20120727_2.patch</filename>
            <type>text/plain</type>
            <size>7549</size>
            <attacher name="Zoltan Horvath">zoltan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nIGIvUGVyZm9ybWFuY2VUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggYzI5OWQyYy4uNTljOGIzNCAxMDA2NDQKLS0tIGEvUGVyZm9ybWFu
Y2VUZXN0cy9DaGFuZ2VMb2cKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAxMi0wNy0yNyAgWm9sdGFuIEhvcnZhdGggIDx6b2x0YW5Ad2Via2l0Lm9y
Zz4KKworICAgICAgICBKU0hFQVAgYW5kIEZhc3RNYWxsb2NTdGF0aXN0aWNzIGJhc2VkIG1lbW9y
eSBtZWFzdXJlbWVudCBmb3IgcGVyZm9ybWFuY2UtdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwODU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWVhc3VyZSB0aGUgbWVtb3J5IHVzYWdlIG9mIHRo
ZSBwZXJmb3JtYW5jZXRlc3RzIHRocm91Z2ggdGhlIHdpbmRvd3MubWVtb3J5LnVzZWRKU0hlYXBT
aXplIG9iamVjdCBhbmQKKyAgICAgICAgdGhlIHdpbmRvdy5pbnRlcm5hbHMuZmFzdE1hbGxvY1N0
YXRpc3RpY3MoKSBmdW5jdGlvbiBjYWxsLgorCisgICAgICAgICogcmVzb3VyY2VzL3J1bm5lci5q
czoKKyAgICAgICAgKFBlcmZUZXN0UnVubmVyLmxvZ1N0YXRpc3RpY3MpOgorICAgICAgICAoUGVy
ZlRlc3RSdW5uZXIucHJpbnRTdGF0aXN0aWNzKToKKyAgICAgICAgKFBlcmZUZXN0UnVubmVyLmdl
dEhFQVBSZXN1bHQpOgorICAgICAgICAoUGVyZlRlc3RSdW5uZXIuaWdub3JlV2FybVVwQW5kTG9n
KToKKyAgICAgICAgKFBlcmZUZXN0UnVubmVyLmluaXRBbmRTdGFydExvb3ApOgorCiAyMDEyLTA3
LTI2ICBBcm5hdWQgUmVuZXZpZXIgIDxhLnJlbmV2aWVyQHNpc2Euc2Ftc3VuZy5jb20+CiAKICAg
ICAgICAgY29uc3RydWN0aW5nIFR5cGVkQXJyYXkgZnJvbSBhbm90aGVyIFR5cGVkQXJyYXkgaXMg
c2xvdwpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9yZXNvdXJjZXMvcnVubmVyLmpzIGIv
UGVyZm9ybWFuY2VUZXN0cy9yZXNvdXJjZXMvcnVubmVyLmpzCm9sZCBtb2RlIDEwMDY0NApuZXcg
bW9kZSAxMDA3NTUKaW5kZXggMjUxYTdjNC4uMDQ1YTU1ZAotLS0gYS9QZXJmb3JtYW5jZVRlc3Rz
L3Jlc291cmNlcy9ydW5uZXIuanMKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9yZXNvdXJjZXMvcnVu
bmVyLmpzCkBAIC04NSwxOSArODUsMjAgQEAgUGVyZlRlc3RSdW5uZXIuY29tcHV0ZVN0YXRpc3Rp
Y3MgPSBmdW5jdGlvbiAodGltZXMsIHVuaXQpIHsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1Q
ZXJmVGVzdFJ1bm5lci5sb2dTdGF0aXN0aWNzID0gZnVuY3Rpb24gKHRpbWVzKSB7CitQZXJmVGVz
dFJ1bm5lci5sb2dTdGF0aXN0aWNzID0gZnVuY3Rpb24gKHRpbWVzLCB1bml0LCBtZW1vcnksIG1l
bW9yeVVuaXQpIHsKICAgICB0aGlzLmxvZygiIik7Ci0gICAgdmFyIHN0YXRpc3RpY3MgPSB0aGlz
LmNvbXB1dGVTdGF0aXN0aWNzKHRpbWVzLCB0aGlzLnVuaXQpOwotICAgIHRoaXMucHJpbnRTdGF0
aXN0aWNzKHN0YXRpc3RpY3MpOworICAgIHZhciBwZXJmb3JtYWNlU3RhdGlzdGljcyA9IHRoaXMu
Y29tcHV0ZVN0YXRpc3RpY3ModGltZXMsIHVuaXQpOworICAgIHZhciBtZW1vcnlTdGF0aXN0aWNz
ID0gdGhpcy5jb21wdXRlU3RhdGlzdGljcyhtZW1vcnksIG1lbW9yeVVuaXQpOworICAgIHRoaXMu
cHJpbnRTdGF0aXN0aWNzKHBlcmZvcm1hY2VTdGF0aXN0aWNzLCBtZW1vcnlTdGF0aXN0aWNzKTsK
IH0KIAotUGVyZlRlc3RSdW5uZXIucHJpbnRTdGF0aXN0aWNzID0gZnVuY3Rpb24gKHN0YXRpc3Rp
Y3MpIHsKK1BlcmZUZXN0UnVubmVyLnByaW50U3RhdGlzdGljcyA9IGZ1bmN0aW9uIChwZXJmb3Jt
YWNlU3RhdHMsIG1lbW9yeVN0YXRzKSB7CiAgICAgdGhpcy5sb2coIiIpOwotICAgIHRoaXMubG9n
KCJhdmcgIiArIHN0YXRpc3RpY3MubWVhbiArICIgIiArIHN0YXRpc3RpY3MudW5pdCk7Ci0gICAg
dGhpcy5sb2coIm1lZGlhbiAiICsgc3RhdGlzdGljcy5tZWRpYW4gKyAiICIgKyBzdGF0aXN0aWNz
LnVuaXQpOwotICAgIHRoaXMubG9nKCJzdGRldiAiICsgc3RhdGlzdGljcy5zdGRldiArICIgIiAr
IHN0YXRpc3RpY3MudW5pdCk7Ci0gICAgdGhpcy5sb2coIm1pbiAiICsgc3RhdGlzdGljcy5taW4g
KyAiICIgKyBzdGF0aXN0aWNzLnVuaXQpOwotICAgIHRoaXMubG9nKCJtYXggIiArIHN0YXRpc3Rp
Y3MubWF4ICsgIiAiICsgc3RhdGlzdGljcy51bml0KTsKKyAgICB0aGlzLmxvZygiYXZnICIgKyBw
ZXJmb3JtYWNlU3RhdHMubWVhbiArICIgIiArIHBlcmZvcm1hY2VTdGF0cy51bml0ICsgIiAiICsg
TWF0aC5yb3VuZChtZW1vcnlTdGF0cy5tZWFuKSArICIgIiArIG1lbW9yeVN0YXRzLnVuaXQpOwor
ICAgIHRoaXMubG9nKCJtZWRpYW4gIiArIHBlcmZvcm1hY2VTdGF0cy5tZWRpYW4gKyAiICIgKyBw
ZXJmb3JtYWNlU3RhdHMudW5pdCArICIgIiArIE1hdGgucm91bmQobWVtb3J5U3RhdHMubWVkaWFu
KSArICIgIiArIG1lbW9yeVN0YXRzLnVuaXQpOworICAgIHRoaXMubG9nKCJzdGRldiAiICsgcGVy
Zm9ybWFjZVN0YXRzLnN0ZGV2ICsgIiAiICsgcGVyZm9ybWFjZVN0YXRzLnVuaXQgKyAiICIgKyBN
YXRoLnJvdW5kKG1lbW9yeVN0YXRzLnN0ZGV2KSArICIgIiArIG1lbW9yeVN0YXRzLnVuaXQpOwor
ICAgIHRoaXMubG9nKCJtaW4gIiArIHBlcmZvcm1hY2VTdGF0cy5taW4gKyAiICIgKyBwZXJmb3Jt
YWNlU3RhdHMudW5pdCArICIgIiArIE1hdGgucm91bmQobWVtb3J5U3RhdHMubWluKSArICIgIiAr
IG1lbW9yeVN0YXRzLnVuaXQpOworICAgIHRoaXMubG9nKCJtYXggIiArIHBlcmZvcm1hY2VTdGF0
cy5tYXggKyAiICIgKyBwZXJmb3JtYWNlU3RhdHMudW5pdCArICIgIiArIE1hdGgucm91bmQobWVt
b3J5U3RhdHMubWF4KSArICIgIiArIG1lbW9yeVN0YXRzLnVuaXQpOwogfQogCiBQZXJmVGVzdFJ1
bm5lci5nYyA9IGZ1bmN0aW9uICgpIHsKQEAgLTEyMyw3ICsxMjQsNyBAQCBQZXJmVGVzdFJ1bm5l
ci5fcnVuTG9vcCA9IGZ1bmN0aW9uICgpIHsKICAgICB9IGVsc2UgewogICAgICAgICBpZiAodGhp
cy5fZGVzY3JpcHRpb24pCiAgICAgICAgICAgICB0aGlzLmxvZygiRGVzY3JpcHRpb246ICIgKyB0
aGlzLl9kZXNjcmlwdGlvbik7Ci0gICAgICAgIHRoaXMubG9nU3RhdGlzdGljcyh0aGlzLl9yZXN1
bHRzKTsKKyAgICAgICAgdGhpcy5sb2dTdGF0aXN0aWNzKHRoaXMuX3Jlc3VsdHMsIHRoaXMudW5p
dCwgdGhpcy5fbWVtb3J5UmVzdWx0cywgImJ5dGVzIik7CiAgICAgICAgIGlmICh0aGlzLl9sb2dM
aW5lcykgewogICAgICAgICAgICAgdmFyIGxvZ0xpbmVzID0gdGhpcy5fbG9nTGluZXM7CiAgICAg
ICAgICAgICB0aGlzLl9sb2dMaW5lcyA9IG51bGw7CkBAIC0xNTYsNiArMTU3LDExIEBAIFBlcmZU
ZXN0UnVubmVyLl9ydW5uZXIgPSBmdW5jdGlvbiAoKSB7CiAgICAgdGhpcy5fcnVuTG9vcCgpOwog
fQogCitQZXJmVGVzdFJ1bm5lci5nZXRIRUFQUmVzdWx0ID0gZnVuY3Rpb24oKSB7CisgICAgdmFy
IHN0YXRzID0gd2luZG93LmludGVybmFscy5mYXN0TWFsbG9jU3RhdGlzdGljcygpOworICAgIHJl
dHVybiBjb25zb2xlLm1lbW9yeS51c2VkSlNIZWFwU2l6ZSArIHN0YXRzLmNvbW1pdHRlZFZNQnl0
ZXMgLSBzdGF0cy5mcmVlTGlzdEJ5dGVzOworfQorCiBQZXJmVGVzdFJ1bm5lci5pZ25vcmVXYXJt
VXBBbmRMb2cgPSBmdW5jdGlvbiAocmVzdWx0KSB7CiAgICAgdGhpcy5fY29tcGxldGVkUnVucysr
OwogCkBAIC0xNjQsNiArMTcwLDcgQEAgUGVyZlRlc3RSdW5uZXIuaWdub3JlV2FybVVwQW5kTG9n
ID0gZnVuY3Rpb24gKHJlc3VsdCkgewogICAgICAgICB0aGlzLmxvZygiSWdub3Jpbmcgd2FybS11
cCBydW4gKCIgKyBsYWJlbGVkUmVzdWx0ICsgIikiKTsKICAgICBlbHNlIHsKICAgICAgICAgdGhp
cy5fcmVzdWx0cy5wdXNoKHJlc3VsdCk7CisgICAgICAgIHRoaXMuX21lbW9yeVJlc3VsdHMucHVz
aCh0aGlzLmdldEhFQVBSZXN1bHQoKSk7CiAgICAgICAgIHRoaXMubG9nKGxhYmVsZWRSZXN1bHQp
OwogICAgIH0KIH0KQEAgLTE3Miw2ICsxNzksNyBAQCBQZXJmVGVzdFJ1bm5lci5pbml0QW5kU3Rh
cnRMb29wID0gZnVuY3Rpb24oKSB7CiAgICAgdGhpcy5fY29tcGxldGVkUnVucyA9IC0xOwogICAg
IHRoaXMuY3VzdG9tUnVuRnVuY3Rpb24gPSBudWxsOwogICAgIHRoaXMuX3Jlc3VsdHMgPSBbXTsK
KyAgICB0aGlzLl9tZW1vcnlSZXN1bHRzID0gW107CiAgICAgdGhpcy5fbG9nTGluZXMgPSB3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIgPyBbXSA6IG51bGw7CiAgICAgdGhpcy5sb2coIlJ1bm5p
bmcgIiArIHRoaXMuX3J1bkNvdW50ICsgIiB0aW1lcyIpOwogICAgIHRoaXMuX3J1bkxvb3AoKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA3Mjhk
ZThhLi5hNjg4OTEyIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDctMjcgIFpvbHRhbiBIb3J2YXRoICA8em9s
dGFuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSlNIRUFQIGFuZCBGYXN0TWFsbG9jU3RhdGlzdGlj
cyBiYXNlZCBtZW1vcnkgbWVhc3VyZW1lbnQgZm9yIHBlcmZvcm1hbmNlLXRlc3RzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MDg1OAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1lYXN1cmUgdGhlIG1lbW9y
eSB1c2FnZSBvZiB0aGUgcGVyZm9ybWFuY2V0ZXN0cyB0aHJvdWdoIHRoZSB3aW5kb3dzLm1lbW9y
eS51c2VkSlNIZWFwU2l6ZSBvYmplY3QgYW5kCisgICAgICAgIHRoZSB3aW5kb3cuaW50ZXJuYWxz
LmZhc3RNYWxsb2NTdGF0aXN0aWNzKCkgZnVuY3Rpb24gY2FsbC4KKworICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvcGVyZm9ybWFuY2VfdGVzdHMvcGVyZnRlc3QucHk6CisgICAgICAgIChQZXJm
VGVzdC5wYXJzZV9vdXRwdXQpOgorCiAyMDEyLTA3LTI3ICBDc2FiYSBPc3p0cm9nb27DoWMgIDxv
c3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1F0XVtXSzJdIFJFR1JFU1NJT04ocjExOTEyNyk6
IHJlc2V0dGluZyB3aW5kb3cuaW50ZXJuYWxzIHNldHRpbmdzIGJldHdlZW4gdGVzdHMgZG9lc24n
dCB3b3JrIHByb3Blcmx5CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BlcmZv
cm1hbmNlX3Rlc3RzL3BlcmZ0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wZXJmb3Jt
YW5jZV90ZXN0cy9wZXJmdGVzdC5weQpvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1Cmlu
ZGV4IDhhYWM3OGYuLjEzNDE3ODgKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wZXJmb3Jt
YW5jZV90ZXN0cy9wZXJmdGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BlcmZv
cm1hbmNlX3Rlc3RzL3BlcmZ0ZXN0LnB5CkBAIC0xMTcsMTAgKzExNywxMiBAQCBjbGFzcyBQZXJm
VGVzdChvYmplY3QpOgogICAgICAgICBnb3RfYV9yZXN1bHQgPSBGYWxzZQogICAgICAgICB0ZXN0
X2ZhaWxlZCA9IEZhbHNlCiAgICAgICAgIHJlc3VsdHMgPSB7fQotICAgICAgICBzY29yZV9yZWdl
eCA9IHJlLmNvbXBpbGUocideKD9QPGtleT4nICsgcid8Jy5qb2luKHNlbGYuX3N0YXRpc3RpY3Nf
a2V5cykgKyByJylccysoP1A8dmFsdWU+WzAtOVwuXSspXHMqKD9QPHVuaXQ+LiopJykKKyAgICAg
ICAgbWVtb3J5X3Jlc3VsdHMgPSB7fQorICAgICAgICBzY29yZV9yZWdleCA9IHJlLmNvbXBpbGUo
cideKD9QPGtleT4nICsgcid8Jy5qb2luKHNlbGYuX3N0YXRpc3RpY3Nfa2V5cykgKyByJylccyso
P1A8dmFsdWU+WzAtOVwuXSspXHMrKD9QPHVuaXQ+LiopXHMrKD9QPG1lbW9yeVZhbHVlPlswLTlc
Ll0rKVxzKyg/UDxtZW1vcnlVbml0Pi4qKScpCiAgICAgICAgIGRlc2NyaXB0aW9uX3JlZ2V4ID0g
cmUuY29tcGlsZShyJ15EZXNjcmlwdGlvbjogKD9QPGRlc2NyaXB0aW9uPi4qKSQnLCByZS5JR05P
UkVDQVNFKQogICAgICAgICBkZXNjcmlwdGlvbl9zdHJpbmcgPSAiIgogICAgICAgICB1bml0ID0g
Im1zIgorICAgICAgICBtZW1vcnlfdW5pdCA9ICJieXRlcyIKIAogICAgICAgICBmb3IgbGluZSBp
biByZS5zcGxpdCgnXG4nLCBvdXRwdXQudGV4dCk6CiAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9
IGRlc2NyaXB0aW9uX3JlZ2V4Lm1hdGNoKGxpbmUpCkBAIC0xMzEsOSArMTMzLDEzIEBAIGNsYXNz
IFBlcmZUZXN0KG9iamVjdCk6CiAgICAgICAgICAgICBzY29yZSA9IHNjb3JlX3JlZ2V4Lm1hdGNo
KGxpbmUpCiAgICAgICAgICAgICBpZiBzY29yZToKICAgICAgICAgICAgICAgICByZXN1bHRzW3Nj
b3JlLmdyb3VwKCdrZXknKV0gPSBmbG9hdChzY29yZS5ncm91cCgndmFsdWUnKSkKKyAgICAgICAg
ICAgICAgICBtZW1vcnlfcmVzdWx0c1tzY29yZS5ncm91cCgna2V5JyldID0gc2NvcmUuZ3JvdXAo
J21lbW9yeVZhbHVlJykKICAgICAgICAgICAgICAgICBpZiBzY29yZS5ncm91cCgndW5pdCcpOgog
ICAgICAgICAgICAgICAgICAgICB1bml0ID0gc2NvcmUuZ3JvdXAoJ3VuaXQnKQotICAgICAgICAg
ICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAg
ICAgICAgaWYgc2NvcmUuZ3JvdXAoJ21lbW9yeVVuaXQnKToKKyAgICAgICAgICAgICAgICAgICAg
bWVtb3J5X3VuaXQgPSBzY29yZS5ncm91cCgnbWVtb3J5VW5pdCcpCisgICAgICAgICAgICAgICAg
ICAgIGNvbnRpbnVlCiAKICAgICAgICAgICAgIGlmIG5vdCBzZWxmLl9zaG91bGRfaWdub3JlX2xp
bmVfaW5fcGFyc2VyX3Rlc3RfcmVzdWx0KGxpbmUpOgogICAgICAgICAgICAgICAgIHRlc3RfZmFp
bGVkID0gVHJ1ZQpAQCAtMTQzLDExICsxNDksMTUgQEAgY2xhc3MgUGVyZlRlc3Qob2JqZWN0KToK
ICAgICAgICAgICAgIHJldHVybiBOb25lCiAKICAgICAgICAgcmVzdWx0c1sndW5pdCddID0gdW5p
dAorICAgICAgICBtZW1vcnlfcmVzdWx0c1sndW5pdCddID0gbWVtb3J5X3VuaXQKIAogICAgICAg
ICB0ZXN0X25hbWUgPSByZS5zdWIocidcLlx3KyQnLCAnJywgc2VsZi5fdGVzdF9uYW1lKQorICAg
ICAgICBtZW1vcnlfdGVzdF9uYW1lID0gIk1lbW9yeSAiICsgdGVzdF9uYW1lCisKICAgICAgICAg
c2VsZi5vdXRwdXRfc3RhdGlzdGljcyh0ZXN0X25hbWUsIHJlc3VsdHMsIGRlc2NyaXB0aW9uX3N0
cmluZykKKyAgICAgICAgc2VsZi5vdXRwdXRfc3RhdGlzdGljcyhtZW1vcnlfdGVzdF9uYW1lLCBt
ZW1vcnlfcmVzdWx0cywgZGVzY3JpcHRpb25fc3RyaW5nKQogCi0gICAgICAgIHJldHVybiB7dGVz
dF9uYW1lOiByZXN1bHRzfQorICAgICAgICByZXR1cm4ge3Rlc3RfbmFtZTogcmVzdWx0cywgbWVt
b3J5X3Rlc3RfbmFtZTogbWVtb3J5X3Jlc3VsdHN9CiAKICAgICBkZWYgb3V0cHV0X3N0YXRpc3Rp
Y3Moc2VsZiwgdGVzdF9uYW1lLCByZXN1bHRzLCBkZXNjcmlwdGlvbl9zdHJpbmcpOgogICAgICAg
ICB1bml0ID0gcmVzdWx0c1sndW5pdCddCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155500</attachid>
            <date>2012-07-31 05:14:07 -0700</date>
            <delta_ts>2012-07-31 05:16:35 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>perftestmemory_20120731.patch</filename>
            <type>text/plain</type>
            <size>7120</size>
            <attacher name="Zoltan Horvath">zoltan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nIGIvUGVyZm9ybWFuY2VUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggMGVlYzc1MC4uOWE1MDY4MCAxMDA2NDQKLS0tIGEvUGVyZm9ybWFu
Y2VUZXN0cy9DaGFuZ2VMb2cKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAxMi0wNy0zMCAgWm9sdGFuIEhvcnZhdGggIDx6b2x0YW5Ad2Via2l0Lm9y
Zz4KKworICAgICAgICBKU0hlYXAgYW5kIEZhc3RNYWxsb2NTdGF0aXN0aWNzIGJhc2VkIG1lbW9y
eSBtZWFzdXJlbWVudCBmb3IgcGVyZm9ybWFuY2UtdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwODU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWVhc3VyZSB0aGUgbWVtb3J5IHVzYWdlIG9mIHRo
ZSBwZXJmb3JtYW5jZXRlc3RzIHRocm91Z2ggdGhlIHdpbmRvd3MubWVtb3J5LnVzZWRKU0hlYXBT
aXplIG9iamVjdCBhbmQKKyAgICAgICAgdGhlIHdpbmRvdy5pbnRlcm5hbHMuZmFzdE1hbGxvY1N0
YXRpc3RpY3MoKSBmdW5jdGlvbiBjYWxsLgorCisgICAgICAgICogcmVzb3VyY2VzL3J1bm5lci5q
czoKKyAgICAgICAgKFBlcmZUZXN0UnVubmVyLmxvZ1N0YXRpc3RpY3MpOgorICAgICAgICAoUGVy
ZlRlc3RSdW5uZXIucHJpbnRTdGF0aXN0aWNzKToKKyAgICAgICAgKFBlcmZUZXN0UnVubmVyLmdl
dEhFQVBSZXN1bHQpOgorICAgICAgICAoUGVyZlRlc3RSdW5uZXIuaWdub3JlV2FybVVwQW5kTG9n
KToKKyAgICAgICAgKFBlcmZUZXN0UnVubmVyLmluaXRBbmRTdGFydExvb3ApOgorCiAyMDEyLTA3
LTI4ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIHJ1bi1wZXJm
LXRlc3RzIHNob3VsZCBnZW5lcmF0ZSBhIHJlc3VsdHMgcGFnZQpkaWZmIC0tZ2l0IGEvUGVyZm9y
bWFuY2VUZXN0cy9yZXNvdXJjZXMvcnVubmVyLmpzIGIvUGVyZm9ybWFuY2VUZXN0cy9yZXNvdXJj
ZXMvcnVubmVyLmpzCm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKaW5kZXggMjUxYTdj
NC4uNmQwYTA0MwotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL3Jlc291cmNlcy9ydW5uZXIuanMKKysr
IGIvUGVyZm9ybWFuY2VUZXN0cy9yZXNvdXJjZXMvcnVubmVyLmpzCkBAIC04NSwxNCArODUsMTgg
QEAgUGVyZlRlc3RSdW5uZXIuY29tcHV0ZVN0YXRpc3RpY3MgPSBmdW5jdGlvbiAodGltZXMsIHVu
aXQpIHsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1QZXJmVGVzdFJ1bm5lci5sb2dTdGF0aXN0
aWNzID0gZnVuY3Rpb24gKHRpbWVzKSB7CitQZXJmVGVzdFJ1bm5lci5sb2dTdGF0aXN0aWNzID0g
ZnVuY3Rpb24gKHRpbWVzLCB1bml0LCBtZW1vcnksIG1lbW9yeVVuaXQpIHsKICAgICB0aGlzLmxv
ZygiIik7Ci0gICAgdmFyIHN0YXRpc3RpY3MgPSB0aGlzLmNvbXB1dGVTdGF0aXN0aWNzKHRpbWVz
LCB0aGlzLnVuaXQpOwotICAgIHRoaXMucHJpbnRTdGF0aXN0aWNzKHN0YXRpc3RpY3MpOworICAg
IHZhciBwZXJmb3JtYW5jZVN0YXRpc3RpY3MgPSB0aGlzLmNvbXB1dGVTdGF0aXN0aWNzKHRpbWVz
LCB1bml0KTsKKyAgICB2YXIgbWVtb3J5U3RhdGlzdGljcyA9IHRoaXMuY29tcHV0ZVN0YXRpc3Rp
Y3MobWVtb3J5LCBtZW1vcnlVbml0KTsKKyAgICB0aGlzLmxvZygiXG5SZXN1bHRzOiAiKTsKKyAg
ICB0aGlzLnByaW50U3RhdGlzdGljcyhwZXJmb3JtYW5jZVN0YXRpc3RpY3MpOworICAgIHRoaXMu
bG9nKCJcbk1lbW9yeSBVc2FnZToiKTsKKyAgICB0aGlzLnByaW50U3RhdGlzdGljcyhtZW1vcnlT
dGF0aXN0aWNzKTsKKwogfQogCiBQZXJmVGVzdFJ1bm5lci5wcmludFN0YXRpc3RpY3MgPSBmdW5j
dGlvbiAoc3RhdGlzdGljcykgewotICAgIHRoaXMubG9nKCIiKTsKICAgICB0aGlzLmxvZygiYXZn
ICIgKyBzdGF0aXN0aWNzLm1lYW4gKyAiICIgKyBzdGF0aXN0aWNzLnVuaXQpOwogICAgIHRoaXMu
bG9nKCJtZWRpYW4gIiArIHN0YXRpc3RpY3MubWVkaWFuICsgIiAiICsgc3RhdGlzdGljcy51bml0
KTsKICAgICB0aGlzLmxvZygic3RkZXYgIiArIHN0YXRpc3RpY3Muc3RkZXYgKyAiICIgKyBzdGF0
aXN0aWNzLnVuaXQpOwpAQCAtMTIzLDcgKzEyNyw3IEBAIFBlcmZUZXN0UnVubmVyLl9ydW5Mb29w
ID0gZnVuY3Rpb24gKCkgewogICAgIH0gZWxzZSB7CiAgICAgICAgIGlmICh0aGlzLl9kZXNjcmlw
dGlvbikKICAgICAgICAgICAgIHRoaXMubG9nKCJEZXNjcmlwdGlvbjogIiArIHRoaXMuX2Rlc2Ny
aXB0aW9uKTsKLSAgICAgICAgdGhpcy5sb2dTdGF0aXN0aWNzKHRoaXMuX3Jlc3VsdHMpOworICAg
ICAgICB0aGlzLmxvZ1N0YXRpc3RpY3ModGhpcy5fcmVzdWx0cywgdGhpcy51bml0LCB0aGlzLl9t
ZW1vcnlSZXN1bHRzLCAiYnl0ZXMiKTsKICAgICAgICAgaWYgKHRoaXMuX2xvZ0xpbmVzKSB7CiAg
ICAgICAgICAgICB2YXIgbG9nTGluZXMgPSB0aGlzLl9sb2dMaW5lczsKICAgICAgICAgICAgIHRo
aXMuX2xvZ0xpbmVzID0gbnVsbDsKQEAgLTE1Niw2ICsxNjAsMTEgQEAgUGVyZlRlc3RSdW5uZXIu
X3J1bm5lciA9IGZ1bmN0aW9uICgpIHsKICAgICB0aGlzLl9ydW5Mb29wKCk7CiB9CiAKK1BlcmZU
ZXN0UnVubmVyLmdldEhlYXBSZXN1bHQgPSBmdW5jdGlvbigpIHsKKyAgICB2YXIgc3RhdHMgPSB3
aW5kb3cuaW50ZXJuYWxzLmZhc3RNYWxsb2NTdGF0aXN0aWNzKCk7CisgICAgcmV0dXJuIGNvbnNv
bGUubWVtb3J5LnVzZWRKU0hlYXBTaXplICsgc3RhdHMuY29tbWl0dGVkVk1CeXRlcyAtIHN0YXRz
LmZyZWVMaXN0Qnl0ZXM7Cit9CisKIFBlcmZUZXN0UnVubmVyLmlnbm9yZVdhcm1VcEFuZExvZyA9
IGZ1bmN0aW9uIChyZXN1bHQpIHsKICAgICB0aGlzLl9jb21wbGV0ZWRSdW5zKys7CiAKQEAgLTE2
NCw2ICsxNzMsNyBAQCBQZXJmVGVzdFJ1bm5lci5pZ25vcmVXYXJtVXBBbmRMb2cgPSBmdW5jdGlv
biAocmVzdWx0KSB7CiAgICAgICAgIHRoaXMubG9nKCJJZ25vcmluZyB3YXJtLXVwIHJ1biAoIiAr
IGxhYmVsZWRSZXN1bHQgKyAiKSIpOwogICAgIGVsc2UgewogICAgICAgICB0aGlzLl9yZXN1bHRz
LnB1c2gocmVzdWx0KTsKKyAgICAgICAgdGhpcy5fbWVtb3J5UmVzdWx0cy5wdXNoKHRoaXMuZ2V0
SGVhcFJlc3VsdCgpKTsKICAgICAgICAgdGhpcy5sb2cobGFiZWxlZFJlc3VsdCk7CiAgICAgfQog
fQpAQCAtMTcyLDYgKzE4Miw3IEBAIFBlcmZUZXN0UnVubmVyLmluaXRBbmRTdGFydExvb3AgPSBm
dW5jdGlvbigpIHsKICAgICB0aGlzLl9jb21wbGV0ZWRSdW5zID0gLTE7CiAgICAgdGhpcy5jdXN0
b21SdW5GdW5jdGlvbiA9IG51bGw7CiAgICAgdGhpcy5fcmVzdWx0cyA9IFtdOworICAgIHRoaXMu
X21lbW9yeVJlc3VsdHMgPSBbXTsKICAgICB0aGlzLl9sb2dMaW5lcyA9IHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlciA/IFtdIDogbnVsbDsKICAgICB0aGlzLmxvZygiUnVubmluZyAiICsgdGhp
cy5fcnVuQ291bnQgKyAiIHRpbWVzIik7CiAgICAgdGhpcy5fcnVuTG9vcCgpOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGNkOGVkNzkuLmJjZmVm
NDAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNiBAQAorMjAxMi0wNy0zMCAgWm9sdGFuIEhvcnZhdGggIDx6b2x0YW5Ad2Via2l0
Lm9yZz4KKworICAgICAgICBKU0hlYXAgYW5kIEZhc3RNYWxsb2NTdGF0aXN0aWNzIGJhc2VkIG1l
bW9yeSBtZWFzdXJlbWVudCBmb3IgcGVyZm9ybWFuY2UtdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwODU4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWVhc3VyZSB0aGUgbWVtb3J5IHVzYWdlIG9m
IHRoZSBwZXJmb3JtYW5jZXRlc3RzIHRocm91Z2ggdGhlIHdpbmRvd3MubWVtb3J5LnVzZWRKU0hl
YXBTaXplIG9iamVjdCBhbmQKKyAgICAgICAgdGhlIHdpbmRvdy5pbnRlcm5hbHMuZmFzdE1hbGxv
Y1N0YXRpc3RpY3MoKSBmdW5jdGlvbiBjYWxsLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS9wZXJmb3JtYW5jZV90ZXN0cy9wZXJmdGVzdC5weToKKyAgICAgICAgKFBlcmZUZXN0LnBhcnNl
X291dHB1dCk6CisKIDIwMTItMDctMzAgIE1pa2hhaWwgUG96ZG55YWtvdiAgPG1pa2hhaWwucG96
ZG55YWtvdkBpbnRlbC5jb20+CiAKICAgICAgICAgW0VGTF1bV1RSXSBFbmZvcmNlIFNISUZUIG1v
ZGlmaWVyIHRvIHVwcGVyIGNhc2Uga2V5cyBpbiBldmVudCBzZW5kZXIuCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3BlcmZvcm1hbmNlX3Rlc3RzL3BlcmZ0ZXN0LnB5IGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9wZXJmb3JtYW5jZV90ZXN0cy9wZXJmdGVzdC5weQpvbGQgbW9k
ZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmluZGV4IDhhYWM3OGYuLmZlNzcyODMKLS0tIGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9wZXJmb3JtYW5jZV90ZXN0cy9wZXJmdGVzdC5weQorKysgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3BlcmZvcm1hbmNlX3Rlc3RzL3BlcmZ0ZXN0LnB5CkBAIC05
NSw2ICs5NSw3IEBAIGNsYXNzIFBlcmZUZXN0KG9iamVjdCk6CiAgICAgICAgIHJlLmNvbXBpbGUo
cideUnVubmluZyBcZCsgdGltZXMkJyksCiAgICAgICAgIHJlLmNvbXBpbGUocideSWdub3Jpbmcg
d2FybS11cCAnKSwKICAgICAgICAgcmUuY29tcGlsZShyJ15JbmZvOicpLAorICAgICAgICByZS5j
b21waWxlKHInXlJlc3VsdHM6fE1lbW9yeSBVc2FnZTonKSwKICAgICAgICAgcmUuY29tcGlsZShy
J15cZCsoLlxkKyk/KFxzKihydW5zXC9zfG1zfGZwcykpPyQnKSwKICAgICAgICAgIyBGb2xsb3dp
bmcgYXJlIGZvciBoYW5kbGUgZXhpc3RpbmcgdGVzdCBsaWtlIERyb21hZW8KICAgICAgICAgcmUu
Y29tcGlsZShyZS5lc2NhcGUoIiIibWFpbiBmcmFtZSAtIGhhcyAxIG9udW5sb2FkIGhhbmRsZXIo
cykiIiIpKSwKQEAgLTExNywxMCArMTE4LDEyIEBAIGNsYXNzIFBlcmZUZXN0KG9iamVjdCk6CiAg
ICAgICAgIGdvdF9hX3Jlc3VsdCA9IEZhbHNlCiAgICAgICAgIHRlc3RfZmFpbGVkID0gRmFsc2UK
ICAgICAgICAgcmVzdWx0cyA9IHt9CisgICAgICAgIG1lbW9yeV9yZXN1bHRzID0ge30KICAgICAg
ICAgc2NvcmVfcmVnZXggPSByZS5jb21waWxlKHInXig/UDxrZXk+JyArIHInfCcuam9pbihzZWxm
Ll9zdGF0aXN0aWNzX2tleXMpICsgcicpXHMrKD9QPHZhbHVlPlswLTlcLl0rKVxzKig/UDx1bml0
Pi4qKScpCiAgICAgICAgIGRlc2NyaXB0aW9uX3JlZ2V4ID0gcmUuY29tcGlsZShyJ15EZXNjcmlw
dGlvbjogKD9QPGRlc2NyaXB0aW9uPi4qKSQnLCByZS5JR05PUkVDQVNFKQogICAgICAgICBkZXNj
cmlwdGlvbl9zdHJpbmcgPSAiIgotICAgICAgICB1bml0ID0gIm1zIgorICAgICAgICBwZXJmb3Jt
YW5jZV91bml0ID0gIm1zIgorICAgICAgICBtZW1vcnlfdW5pdCA9ICJieXRlcyIKIAogICAgICAg
ICBmb3IgbGluZSBpbiByZS5zcGxpdCgnXG4nLCBvdXRwdXQudGV4dCk6CiAgICAgICAgICAgICBk
ZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uX3JlZ2V4Lm1hdGNoKGxpbmUpCkBAIC0xMzAsOSArMTMz
LDE0IEBAIGNsYXNzIFBlcmZUZXN0KG9iamVjdCk6CiAKICAgICAgICAgICAgIHNjb3JlID0gc2Nv
cmVfcmVnZXgubWF0Y2gobGluZSkKICAgICAgICAgICAgIGlmIHNjb3JlOgotICAgICAgICAgICAg
ICAgIHJlc3VsdHNbc2NvcmUuZ3JvdXAoJ2tleScpXSA9IGZsb2F0KHNjb3JlLmdyb3VwKCd2YWx1
ZScpKQotICAgICAgICAgICAgICAgIGlmIHNjb3JlLmdyb3VwKCd1bml0Jyk6Ci0gICAgICAgICAg
ICAgICAgICAgIHVuaXQgPSBzY29yZS5ncm91cCgndW5pdCcpCisgICAgICAgICAgICAgICAga2V5
ID0gc2NvcmUuZ3JvdXAoJ2tleScpCisgICAgICAgICAgICAgICAgdmFsdWUgPSBmbG9hdChzY29y
ZS5ncm91cCgndmFsdWUnKSkKKyAgICAgICAgICAgICAgICB1bml0ID0gc2NvcmUuZ3JvdXAoJ3Vu
aXQnKQorICAgICAgICAgICAgICAgIGlmIHVuaXQgIT0gbWVtb3J5X3VuaXQ6CisgICAgICAgICAg
ICAgICAgICAgcGVyZm9ybWFuY2VfdW5pdCA9IHVuaXQKKyAgICAgICAgICAgICAgICAgICByZXN1
bHRzW2tleV0gPSB2YWx1ZQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAg
ICAgIG1lbW9yeV9yZXN1bHRzW2tleV0gPSBpbnQodmFsdWUpCiAgICAgICAgICAgICAgICAgY29u
dGludWUKIAogICAgICAgICAgICAgaWYgbm90IHNlbGYuX3Nob3VsZF9pZ25vcmVfbGluZV9pbl9w
YXJzZXJfdGVzdF9yZXN1bHQobGluZSk6CkBAIC0xNDIsMTIgKzE1MCwxNiBAQCBjbGFzcyBQZXJm
VGVzdChvYmplY3QpOgogICAgICAgICBpZiB0ZXN0X2ZhaWxlZCBvciBzZXQoc2VsZi5fc3RhdGlz
dGljc19rZXlzKSAhPSBzZXQocmVzdWx0cy5rZXlzKCkpOgogICAgICAgICAgICAgcmV0dXJuIE5v
bmUKIAotICAgICAgICByZXN1bHRzWyd1bml0J10gPSB1bml0CisgICAgICAgIHJlc3VsdHNbJ3Vu
aXQnXSA9IHBlcmZvcm1hbmNlX3VuaXQKKyAgICAgICAgbWVtb3J5X3Jlc3VsdHNbJ3VuaXQnXSA9
IG1lbW9yeV91bml0CiAKICAgICAgICAgdGVzdF9uYW1lID0gcmUuc3ViKHInXC5cdyskJywgJycs
IHNlbGYuX3Rlc3RfbmFtZSkKKyAgICAgICAgbWVtb3J5X3Rlc3RfbmFtZSA9ICJNZW1vcnkgVXNh
Z2UiICsgdGVzdF9uYW1lCisKICAgICAgICAgc2VsZi5vdXRwdXRfc3RhdGlzdGljcyh0ZXN0X25h
bWUsIHJlc3VsdHMsIGRlc2NyaXB0aW9uX3N0cmluZykKKyAgICAgICAgc2VsZi5vdXRwdXRfc3Rh
dGlzdGljcyhtZW1vcnlfdGVzdF9uYW1lLCBtZW1vcnlfcmVzdWx0cywgZGVzY3JpcHRpb25fc3Ry
aW5nKQogCi0gICAgICAgIHJldHVybiB7dGVzdF9uYW1lOiByZXN1bHRzfQorICAgICAgICByZXR1
cm4ge3Rlc3RfbmFtZTogcmVzdWx0cywgbWVtb3J5X3Rlc3RfbmFtZTogbWVtb3J5X3Jlc3VsdHN9
CiAKICAgICBkZWYgb3V0cHV0X3N0YXRpc3RpY3Moc2VsZiwgdGVzdF9uYW1lLCByZXN1bHRzLCBk
ZXNjcmlwdGlvbl9zdHJpbmcpOgogICAgICAgICB1bml0ID0gcmVzdWx0c1sndW5pdCddCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155501</attachid>
            <date>2012-07-31 05:16:35 -0700</date>
            <delta_ts>2012-07-31 05:33:02 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>perftestmemory_20120731.patch</filename>
            <type>text/plain</type>
            <size>7121</size>
            <attacher name="Zoltan Horvath">zoltan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nIGIvUGVyZm9ybWFuY2VUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggMGVlYzc1MC4uOWE1MDY4MCAxMDA2NDQKLS0tIGEvUGVyZm9ybWFu
Y2VUZXN0cy9DaGFuZ2VMb2cKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAxMi0wNy0zMCAgWm9sdGFuIEhvcnZhdGggIDx6b2x0YW5Ad2Via2l0Lm9y
Zz4KKworICAgICAgICBKU0hlYXAgYW5kIEZhc3RNYWxsb2NTdGF0aXN0aWNzIGJhc2VkIG1lbW9y
eSBtZWFzdXJlbWVudCBmb3IgcGVyZm9ybWFuY2UtdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwODU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWVhc3VyZSB0aGUgbWVtb3J5IHVzYWdlIG9mIHRo
ZSBwZXJmb3JtYW5jZXRlc3RzIHRocm91Z2ggdGhlIHdpbmRvd3MubWVtb3J5LnVzZWRKU0hlYXBT
aXplIG9iamVjdCBhbmQKKyAgICAgICAgdGhlIHdpbmRvdy5pbnRlcm5hbHMuZmFzdE1hbGxvY1N0
YXRpc3RpY3MoKSBmdW5jdGlvbiBjYWxsLgorCisgICAgICAgICogcmVzb3VyY2VzL3J1bm5lci5q
czoKKyAgICAgICAgKFBlcmZUZXN0UnVubmVyLmxvZ1N0YXRpc3RpY3MpOgorICAgICAgICAoUGVy
ZlRlc3RSdW5uZXIucHJpbnRTdGF0aXN0aWNzKToKKyAgICAgICAgKFBlcmZUZXN0UnVubmVyLmdl
dEhFQVBSZXN1bHQpOgorICAgICAgICAoUGVyZlRlc3RSdW5uZXIuaWdub3JlV2FybVVwQW5kTG9n
KToKKyAgICAgICAgKFBlcmZUZXN0UnVubmVyLmluaXRBbmRTdGFydExvb3ApOgorCiAyMDEyLTA3
LTI4ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIHJ1bi1wZXJm
LXRlc3RzIHNob3VsZCBnZW5lcmF0ZSBhIHJlc3VsdHMgcGFnZQpkaWZmIC0tZ2l0IGEvUGVyZm9y
bWFuY2VUZXN0cy9yZXNvdXJjZXMvcnVubmVyLmpzIGIvUGVyZm9ybWFuY2VUZXN0cy9yZXNvdXJj
ZXMvcnVubmVyLmpzCm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKaW5kZXggMjUxYTdj
NC4uNmQwYTA0MwotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL3Jlc291cmNlcy9ydW5uZXIuanMKKysr
IGIvUGVyZm9ybWFuY2VUZXN0cy9yZXNvdXJjZXMvcnVubmVyLmpzCkBAIC04NSwxNCArODUsMTgg
QEAgUGVyZlRlc3RSdW5uZXIuY29tcHV0ZVN0YXRpc3RpY3MgPSBmdW5jdGlvbiAodGltZXMsIHVu
aXQpIHsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1QZXJmVGVzdFJ1bm5lci5sb2dTdGF0aXN0
aWNzID0gZnVuY3Rpb24gKHRpbWVzKSB7CitQZXJmVGVzdFJ1bm5lci5sb2dTdGF0aXN0aWNzID0g
ZnVuY3Rpb24gKHRpbWVzLCB1bml0LCBtZW1vcnksIG1lbW9yeVVuaXQpIHsKICAgICB0aGlzLmxv
ZygiIik7Ci0gICAgdmFyIHN0YXRpc3RpY3MgPSB0aGlzLmNvbXB1dGVTdGF0aXN0aWNzKHRpbWVz
LCB0aGlzLnVuaXQpOwotICAgIHRoaXMucHJpbnRTdGF0aXN0aWNzKHN0YXRpc3RpY3MpOworICAg
IHZhciBwZXJmb3JtYW5jZVN0YXRpc3RpY3MgPSB0aGlzLmNvbXB1dGVTdGF0aXN0aWNzKHRpbWVz
LCB1bml0KTsKKyAgICB2YXIgbWVtb3J5U3RhdGlzdGljcyA9IHRoaXMuY29tcHV0ZVN0YXRpc3Rp
Y3MobWVtb3J5LCBtZW1vcnlVbml0KTsKKyAgICB0aGlzLmxvZygiXG5SZXN1bHRzOiAiKTsKKyAg
ICB0aGlzLnByaW50U3RhdGlzdGljcyhwZXJmb3JtYW5jZVN0YXRpc3RpY3MpOworICAgIHRoaXMu
bG9nKCJcbk1lbW9yeSBVc2FnZToiKTsKKyAgICB0aGlzLnByaW50U3RhdGlzdGljcyhtZW1vcnlT
dGF0aXN0aWNzKTsKKwogfQogCiBQZXJmVGVzdFJ1bm5lci5wcmludFN0YXRpc3RpY3MgPSBmdW5j
dGlvbiAoc3RhdGlzdGljcykgewotICAgIHRoaXMubG9nKCIiKTsKICAgICB0aGlzLmxvZygiYXZn
ICIgKyBzdGF0aXN0aWNzLm1lYW4gKyAiICIgKyBzdGF0aXN0aWNzLnVuaXQpOwogICAgIHRoaXMu
bG9nKCJtZWRpYW4gIiArIHN0YXRpc3RpY3MubWVkaWFuICsgIiAiICsgc3RhdGlzdGljcy51bml0
KTsKICAgICB0aGlzLmxvZygic3RkZXYgIiArIHN0YXRpc3RpY3Muc3RkZXYgKyAiICIgKyBzdGF0
aXN0aWNzLnVuaXQpOwpAQCAtMTIzLDcgKzEyNyw3IEBAIFBlcmZUZXN0UnVubmVyLl9ydW5Mb29w
ID0gZnVuY3Rpb24gKCkgewogICAgIH0gZWxzZSB7CiAgICAgICAgIGlmICh0aGlzLl9kZXNjcmlw
dGlvbikKICAgICAgICAgICAgIHRoaXMubG9nKCJEZXNjcmlwdGlvbjogIiArIHRoaXMuX2Rlc2Ny
aXB0aW9uKTsKLSAgICAgICAgdGhpcy5sb2dTdGF0aXN0aWNzKHRoaXMuX3Jlc3VsdHMpOworICAg
ICAgICB0aGlzLmxvZ1N0YXRpc3RpY3ModGhpcy5fcmVzdWx0cywgdGhpcy51bml0LCB0aGlzLl9t
ZW1vcnlSZXN1bHRzLCAiYnl0ZXMiKTsKICAgICAgICAgaWYgKHRoaXMuX2xvZ0xpbmVzKSB7CiAg
ICAgICAgICAgICB2YXIgbG9nTGluZXMgPSB0aGlzLl9sb2dMaW5lczsKICAgICAgICAgICAgIHRo
aXMuX2xvZ0xpbmVzID0gbnVsbDsKQEAgLTE1Niw2ICsxNjAsMTEgQEAgUGVyZlRlc3RSdW5uZXIu
X3J1bm5lciA9IGZ1bmN0aW9uICgpIHsKICAgICB0aGlzLl9ydW5Mb29wKCk7CiB9CiAKK1BlcmZU
ZXN0UnVubmVyLmdldEhlYXBSZXN1bHQgPSBmdW5jdGlvbigpIHsKKyAgICB2YXIgc3RhdHMgPSB3
aW5kb3cuaW50ZXJuYWxzLmZhc3RNYWxsb2NTdGF0aXN0aWNzKCk7CisgICAgcmV0dXJuIGNvbnNv
bGUubWVtb3J5LnVzZWRKU0hlYXBTaXplICsgc3RhdHMuY29tbWl0dGVkVk1CeXRlcyAtIHN0YXRz
LmZyZWVMaXN0Qnl0ZXM7Cit9CisKIFBlcmZUZXN0UnVubmVyLmlnbm9yZVdhcm1VcEFuZExvZyA9
IGZ1bmN0aW9uIChyZXN1bHQpIHsKICAgICB0aGlzLl9jb21wbGV0ZWRSdW5zKys7CiAKQEAgLTE2
NCw2ICsxNzMsNyBAQCBQZXJmVGVzdFJ1bm5lci5pZ25vcmVXYXJtVXBBbmRMb2cgPSBmdW5jdGlv
biAocmVzdWx0KSB7CiAgICAgICAgIHRoaXMubG9nKCJJZ25vcmluZyB3YXJtLXVwIHJ1biAoIiAr
IGxhYmVsZWRSZXN1bHQgKyAiKSIpOwogICAgIGVsc2UgewogICAgICAgICB0aGlzLl9yZXN1bHRz
LnB1c2gocmVzdWx0KTsKKyAgICAgICAgdGhpcy5fbWVtb3J5UmVzdWx0cy5wdXNoKHRoaXMuZ2V0
SGVhcFJlc3VsdCgpKTsKICAgICAgICAgdGhpcy5sb2cobGFiZWxlZFJlc3VsdCk7CiAgICAgfQog
fQpAQCAtMTcyLDYgKzE4Miw3IEBAIFBlcmZUZXN0UnVubmVyLmluaXRBbmRTdGFydExvb3AgPSBm
dW5jdGlvbigpIHsKICAgICB0aGlzLl9jb21wbGV0ZWRSdW5zID0gLTE7CiAgICAgdGhpcy5jdXN0
b21SdW5GdW5jdGlvbiA9IG51bGw7CiAgICAgdGhpcy5fcmVzdWx0cyA9IFtdOworICAgIHRoaXMu
X21lbW9yeVJlc3VsdHMgPSBbXTsKICAgICB0aGlzLl9sb2dMaW5lcyA9IHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlciA/IFtdIDogbnVsbDsKICAgICB0aGlzLmxvZygiUnVubmluZyAiICsgdGhp
cy5fcnVuQ291bnQgKyAiIHRpbWVzIik7CiAgICAgdGhpcy5fcnVuTG9vcCgpOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGNkOGVkNzkuLmJjZmVm
NDAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNiBAQAorMjAxMi0wNy0zMCAgWm9sdGFuIEhvcnZhdGggIDx6b2x0YW5Ad2Via2l0
Lm9yZz4KKworICAgICAgICBKU0hlYXAgYW5kIEZhc3RNYWxsb2NTdGF0aXN0aWNzIGJhc2VkIG1l
bW9yeSBtZWFzdXJlbWVudCBmb3IgcGVyZm9ybWFuY2UtdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwODU4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWVhc3VyZSB0aGUgbWVtb3J5IHVzYWdlIG9m
IHRoZSBwZXJmb3JtYW5jZXRlc3RzIHRocm91Z2ggdGhlIHdpbmRvd3MubWVtb3J5LnVzZWRKU0hl
YXBTaXplIG9iamVjdCBhbmQKKyAgICAgICAgdGhlIHdpbmRvdy5pbnRlcm5hbHMuZmFzdE1hbGxv
Y1N0YXRpc3RpY3MoKSBmdW5jdGlvbiBjYWxsLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS9wZXJmb3JtYW5jZV90ZXN0cy9wZXJmdGVzdC5weToKKyAgICAgICAgKFBlcmZUZXN0LnBhcnNl
X291dHB1dCk6CisKIDIwMTItMDctMzAgIE1pa2hhaWwgUG96ZG55YWtvdiAgPG1pa2hhaWwucG96
ZG55YWtvdkBpbnRlbC5jb20+CiAKICAgICAgICAgW0VGTF1bV1RSXSBFbmZvcmNlIFNISUZUIG1v
ZGlmaWVyIHRvIHVwcGVyIGNhc2Uga2V5cyBpbiBldmVudCBzZW5kZXIuCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3BlcmZvcm1hbmNlX3Rlc3RzL3BlcmZ0ZXN0LnB5IGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9wZXJmb3JtYW5jZV90ZXN0cy9wZXJmdGVzdC5weQpvbGQgbW9k
ZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmluZGV4IDhhYWM3OGYuLmJlYTlkZmUKLS0tIGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9wZXJmb3JtYW5jZV90ZXN0cy9wZXJmdGVzdC5weQorKysgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3BlcmZvcm1hbmNlX3Rlc3RzL3BlcmZ0ZXN0LnB5CkBAIC05
NSw2ICs5NSw3IEBAIGNsYXNzIFBlcmZUZXN0KG9iamVjdCk6CiAgICAgICAgIHJlLmNvbXBpbGUo
cideUnVubmluZyBcZCsgdGltZXMkJyksCiAgICAgICAgIHJlLmNvbXBpbGUocideSWdub3Jpbmcg
d2FybS11cCAnKSwKICAgICAgICAgcmUuY29tcGlsZShyJ15JbmZvOicpLAorICAgICAgICByZS5j
b21waWxlKHInXlJlc3VsdHM6fE1lbW9yeSBVc2FnZTonKSwKICAgICAgICAgcmUuY29tcGlsZShy
J15cZCsoLlxkKyk/KFxzKihydW5zXC9zfG1zfGZwcykpPyQnKSwKICAgICAgICAgIyBGb2xsb3dp
bmcgYXJlIGZvciBoYW5kbGUgZXhpc3RpbmcgdGVzdCBsaWtlIERyb21hZW8KICAgICAgICAgcmUu
Y29tcGlsZShyZS5lc2NhcGUoIiIibWFpbiBmcmFtZSAtIGhhcyAxIG9udW5sb2FkIGhhbmRsZXIo
cykiIiIpKSwKQEAgLTExNywxMCArMTE4LDEyIEBAIGNsYXNzIFBlcmZUZXN0KG9iamVjdCk6CiAg
ICAgICAgIGdvdF9hX3Jlc3VsdCA9IEZhbHNlCiAgICAgICAgIHRlc3RfZmFpbGVkID0gRmFsc2UK
ICAgICAgICAgcmVzdWx0cyA9IHt9CisgICAgICAgIG1lbW9yeV9yZXN1bHRzID0ge30KICAgICAg
ICAgc2NvcmVfcmVnZXggPSByZS5jb21waWxlKHInXig/UDxrZXk+JyArIHInfCcuam9pbihzZWxm
Ll9zdGF0aXN0aWNzX2tleXMpICsgcicpXHMrKD9QPHZhbHVlPlswLTlcLl0rKVxzKig/UDx1bml0
Pi4qKScpCiAgICAgICAgIGRlc2NyaXB0aW9uX3JlZ2V4ID0gcmUuY29tcGlsZShyJ15EZXNjcmlw
dGlvbjogKD9QPGRlc2NyaXB0aW9uPi4qKSQnLCByZS5JR05PUkVDQVNFKQogICAgICAgICBkZXNj
cmlwdGlvbl9zdHJpbmcgPSAiIgotICAgICAgICB1bml0ID0gIm1zIgorICAgICAgICBwZXJmb3Jt
YW5jZV91bml0ID0gIm1zIgorICAgICAgICBtZW1vcnlfdW5pdCA9ICJieXRlcyIKIAogICAgICAg
ICBmb3IgbGluZSBpbiByZS5zcGxpdCgnXG4nLCBvdXRwdXQudGV4dCk6CiAgICAgICAgICAgICBk
ZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uX3JlZ2V4Lm1hdGNoKGxpbmUpCkBAIC0xMzAsOSArMTMz
LDE0IEBAIGNsYXNzIFBlcmZUZXN0KG9iamVjdCk6CiAKICAgICAgICAgICAgIHNjb3JlID0gc2Nv
cmVfcmVnZXgubWF0Y2gobGluZSkKICAgICAgICAgICAgIGlmIHNjb3JlOgotICAgICAgICAgICAg
ICAgIHJlc3VsdHNbc2NvcmUuZ3JvdXAoJ2tleScpXSA9IGZsb2F0KHNjb3JlLmdyb3VwKCd2YWx1
ZScpKQotICAgICAgICAgICAgICAgIGlmIHNjb3JlLmdyb3VwKCd1bml0Jyk6Ci0gICAgICAgICAg
ICAgICAgICAgIHVuaXQgPSBzY29yZS5ncm91cCgndW5pdCcpCisgICAgICAgICAgICAgICAga2V5
ID0gc2NvcmUuZ3JvdXAoJ2tleScpCisgICAgICAgICAgICAgICAgdmFsdWUgPSBmbG9hdChzY29y
ZS5ncm91cCgndmFsdWUnKSkKKyAgICAgICAgICAgICAgICB1bml0ID0gc2NvcmUuZ3JvdXAoJ3Vu
aXQnKQorICAgICAgICAgICAgICAgIGlmIHVuaXQgIT0gbWVtb3J5X3VuaXQ6CisgICAgICAgICAg
ICAgICAgICAgcGVyZm9ybWFuY2VfdW5pdCA9IHVuaXQKKyAgICAgICAgICAgICAgICAgICByZXN1
bHRzW2tleV0gPSB2YWx1ZQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAg
ICAgIG1lbW9yeV9yZXN1bHRzW2tleV0gPSBpbnQodmFsdWUpCiAgICAgICAgICAgICAgICAgY29u
dGludWUKIAogICAgICAgICAgICAgaWYgbm90IHNlbGYuX3Nob3VsZF9pZ25vcmVfbGluZV9pbl9w
YXJzZXJfdGVzdF9yZXN1bHQobGluZSk6CkBAIC0xNDIsMTIgKzE1MCwxNiBAQCBjbGFzcyBQZXJm
VGVzdChvYmplY3QpOgogICAgICAgICBpZiB0ZXN0X2ZhaWxlZCBvciBzZXQoc2VsZi5fc3RhdGlz
dGljc19rZXlzKSAhPSBzZXQocmVzdWx0cy5rZXlzKCkpOgogICAgICAgICAgICAgcmV0dXJuIE5v
bmUKIAotICAgICAgICByZXN1bHRzWyd1bml0J10gPSB1bml0CisgICAgICAgIHJlc3VsdHNbJ3Vu
aXQnXSA9IHBlcmZvcm1hbmNlX3VuaXQKKyAgICAgICAgbWVtb3J5X3Jlc3VsdHNbJ3VuaXQnXSA9
IG1lbW9yeV91bml0CiAKICAgICAgICAgdGVzdF9uYW1lID0gcmUuc3ViKHInXC5cdyskJywgJycs
IHNlbGYuX3Rlc3RfbmFtZSkKKyAgICAgICAgbWVtb3J5X3Rlc3RfbmFtZSA9ICJNZW1vcnkgVXNh
Z2UgIiArIHRlc3RfbmFtZQorCiAgICAgICAgIHNlbGYub3V0cHV0X3N0YXRpc3RpY3ModGVzdF9u
YW1lLCByZXN1bHRzLCBkZXNjcmlwdGlvbl9zdHJpbmcpCisgICAgICAgIHNlbGYub3V0cHV0X3N0
YXRpc3RpY3MobWVtb3J5X3Rlc3RfbmFtZSwgbWVtb3J5X3Jlc3VsdHMsIGRlc2NyaXB0aW9uX3N0
cmluZykKIAotICAgICAgICByZXR1cm4ge3Rlc3RfbmFtZTogcmVzdWx0c30KKyAgICAgICAgcmV0
dXJuIHt0ZXN0X25hbWU6IHJlc3VsdHMsIG1lbW9yeV90ZXN0X25hbWU6IG1lbW9yeV9yZXN1bHRz
fQogCiAgICAgZGVmIG91dHB1dF9zdGF0aXN0aWNzKHNlbGYsIHRlc3RfbmFtZSwgcmVzdWx0cywg
ZGVzY3JpcHRpb25fc3RyaW5nKToKICAgICAgICAgdW5pdCA9IHJlc3VsdHNbJ3VuaXQnXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155506</attachid>
            <date>2012-07-31 05:33:02 -0700</date>
            <delta_ts>2012-08-07 13:04:15 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>perftestmemory_20120731.patch</filename>
            <type>text/plain</type>
            <size>7123</size>
            <attacher name="Zoltan Horvath">zoltan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nIGIvUGVyZm9ybWFuY2VUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggMGVlYzc1MC4uOWE1MDY4MCAxMDA2NDQKLS0tIGEvUGVyZm9ybWFu
Y2VUZXN0cy9DaGFuZ2VMb2cKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAxMi0wNy0zMCAgWm9sdGFuIEhvcnZhdGggIDx6b2x0YW5Ad2Via2l0Lm9y
Zz4KKworICAgICAgICBKU0hlYXAgYW5kIEZhc3RNYWxsb2NTdGF0aXN0aWNzIGJhc2VkIG1lbW9y
eSBtZWFzdXJlbWVudCBmb3IgcGVyZm9ybWFuY2UtdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwODU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWVhc3VyZSB0aGUgbWVtb3J5IHVzYWdlIG9mIHRo
ZSBwZXJmb3JtYW5jZXRlc3RzIHRocm91Z2ggdGhlIHdpbmRvd3MubWVtb3J5LnVzZWRKU0hlYXBT
aXplIG9iamVjdCBhbmQKKyAgICAgICAgdGhlIHdpbmRvdy5pbnRlcm5hbHMuZmFzdE1hbGxvY1N0
YXRpc3RpY3MoKSBmdW5jdGlvbiBjYWxsLgorCisgICAgICAgICogcmVzb3VyY2VzL3J1bm5lci5q
czoKKyAgICAgICAgKFBlcmZUZXN0UnVubmVyLmxvZ1N0YXRpc3RpY3MpOgorICAgICAgICAoUGVy
ZlRlc3RSdW5uZXIucHJpbnRTdGF0aXN0aWNzKToKKyAgICAgICAgKFBlcmZUZXN0UnVubmVyLmdl
dEhFQVBSZXN1bHQpOgorICAgICAgICAoUGVyZlRlc3RSdW5uZXIuaWdub3JlV2FybVVwQW5kTG9n
KToKKyAgICAgICAgKFBlcmZUZXN0UnVubmVyLmluaXRBbmRTdGFydExvb3ApOgorCiAyMDEyLTA3
LTI4ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIHJ1bi1wZXJm
LXRlc3RzIHNob3VsZCBnZW5lcmF0ZSBhIHJlc3VsdHMgcGFnZQpkaWZmIC0tZ2l0IGEvUGVyZm9y
bWFuY2VUZXN0cy9yZXNvdXJjZXMvcnVubmVyLmpzIGIvUGVyZm9ybWFuY2VUZXN0cy9yZXNvdXJj
ZXMvcnVubmVyLmpzCm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKaW5kZXggMjUxYTdj
NC4uNmQwYTA0MwotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL3Jlc291cmNlcy9ydW5uZXIuanMKKysr
IGIvUGVyZm9ybWFuY2VUZXN0cy9yZXNvdXJjZXMvcnVubmVyLmpzCkBAIC04NSwxNCArODUsMTgg
QEAgUGVyZlRlc3RSdW5uZXIuY29tcHV0ZVN0YXRpc3RpY3MgPSBmdW5jdGlvbiAodGltZXMsIHVu
aXQpIHsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1QZXJmVGVzdFJ1bm5lci5sb2dTdGF0aXN0
aWNzID0gZnVuY3Rpb24gKHRpbWVzKSB7CitQZXJmVGVzdFJ1bm5lci5sb2dTdGF0aXN0aWNzID0g
ZnVuY3Rpb24gKHRpbWVzLCB1bml0LCBtZW1vcnksIG1lbW9yeVVuaXQpIHsKICAgICB0aGlzLmxv
ZygiIik7Ci0gICAgdmFyIHN0YXRpc3RpY3MgPSB0aGlzLmNvbXB1dGVTdGF0aXN0aWNzKHRpbWVz
LCB0aGlzLnVuaXQpOwotICAgIHRoaXMucHJpbnRTdGF0aXN0aWNzKHN0YXRpc3RpY3MpOworICAg
IHZhciBwZXJmb3JtYW5jZVN0YXRpc3RpY3MgPSB0aGlzLmNvbXB1dGVTdGF0aXN0aWNzKHRpbWVz
LCB1bml0KTsKKyAgICB2YXIgbWVtb3J5U3RhdGlzdGljcyA9IHRoaXMuY29tcHV0ZVN0YXRpc3Rp
Y3MobWVtb3J5LCBtZW1vcnlVbml0KTsKKyAgICB0aGlzLmxvZygiXG5SZXN1bHRzOiAiKTsKKyAg
ICB0aGlzLnByaW50U3RhdGlzdGljcyhwZXJmb3JtYW5jZVN0YXRpc3RpY3MpOworICAgIHRoaXMu
bG9nKCJcbk1lbW9yeSBVc2FnZToiKTsKKyAgICB0aGlzLnByaW50U3RhdGlzdGljcyhtZW1vcnlT
dGF0aXN0aWNzKTsKKwogfQogCiBQZXJmVGVzdFJ1bm5lci5wcmludFN0YXRpc3RpY3MgPSBmdW5j
dGlvbiAoc3RhdGlzdGljcykgewotICAgIHRoaXMubG9nKCIiKTsKICAgICB0aGlzLmxvZygiYXZn
ICIgKyBzdGF0aXN0aWNzLm1lYW4gKyAiICIgKyBzdGF0aXN0aWNzLnVuaXQpOwogICAgIHRoaXMu
bG9nKCJtZWRpYW4gIiArIHN0YXRpc3RpY3MubWVkaWFuICsgIiAiICsgc3RhdGlzdGljcy51bml0
KTsKICAgICB0aGlzLmxvZygic3RkZXYgIiArIHN0YXRpc3RpY3Muc3RkZXYgKyAiICIgKyBzdGF0
aXN0aWNzLnVuaXQpOwpAQCAtMTIzLDcgKzEyNyw3IEBAIFBlcmZUZXN0UnVubmVyLl9ydW5Mb29w
ID0gZnVuY3Rpb24gKCkgewogICAgIH0gZWxzZSB7CiAgICAgICAgIGlmICh0aGlzLl9kZXNjcmlw
dGlvbikKICAgICAgICAgICAgIHRoaXMubG9nKCJEZXNjcmlwdGlvbjogIiArIHRoaXMuX2Rlc2Ny
aXB0aW9uKTsKLSAgICAgICAgdGhpcy5sb2dTdGF0aXN0aWNzKHRoaXMuX3Jlc3VsdHMpOworICAg
ICAgICB0aGlzLmxvZ1N0YXRpc3RpY3ModGhpcy5fcmVzdWx0cywgdGhpcy51bml0LCB0aGlzLl9t
ZW1vcnlSZXN1bHRzLCAiYnl0ZXMiKTsKICAgICAgICAgaWYgKHRoaXMuX2xvZ0xpbmVzKSB7CiAg
ICAgICAgICAgICB2YXIgbG9nTGluZXMgPSB0aGlzLl9sb2dMaW5lczsKICAgICAgICAgICAgIHRo
aXMuX2xvZ0xpbmVzID0gbnVsbDsKQEAgLTE1Niw2ICsxNjAsMTEgQEAgUGVyZlRlc3RSdW5uZXIu
X3J1bm5lciA9IGZ1bmN0aW9uICgpIHsKICAgICB0aGlzLl9ydW5Mb29wKCk7CiB9CiAKK1BlcmZU
ZXN0UnVubmVyLmdldEhlYXBSZXN1bHQgPSBmdW5jdGlvbigpIHsKKyAgICB2YXIgc3RhdHMgPSB3
aW5kb3cuaW50ZXJuYWxzLmZhc3RNYWxsb2NTdGF0aXN0aWNzKCk7CisgICAgcmV0dXJuIGNvbnNv
bGUubWVtb3J5LnVzZWRKU0hlYXBTaXplICsgc3RhdHMuY29tbWl0dGVkVk1CeXRlcyAtIHN0YXRz
LmZyZWVMaXN0Qnl0ZXM7Cit9CisKIFBlcmZUZXN0UnVubmVyLmlnbm9yZVdhcm1VcEFuZExvZyA9
IGZ1bmN0aW9uIChyZXN1bHQpIHsKICAgICB0aGlzLl9jb21wbGV0ZWRSdW5zKys7CiAKQEAgLTE2
NCw2ICsxNzMsNyBAQCBQZXJmVGVzdFJ1bm5lci5pZ25vcmVXYXJtVXBBbmRMb2cgPSBmdW5jdGlv
biAocmVzdWx0KSB7CiAgICAgICAgIHRoaXMubG9nKCJJZ25vcmluZyB3YXJtLXVwIHJ1biAoIiAr
IGxhYmVsZWRSZXN1bHQgKyAiKSIpOwogICAgIGVsc2UgewogICAgICAgICB0aGlzLl9yZXN1bHRz
LnB1c2gocmVzdWx0KTsKKyAgICAgICAgdGhpcy5fbWVtb3J5UmVzdWx0cy5wdXNoKHRoaXMuZ2V0
SGVhcFJlc3VsdCgpKTsKICAgICAgICAgdGhpcy5sb2cobGFiZWxlZFJlc3VsdCk7CiAgICAgfQog
fQpAQCAtMTcyLDYgKzE4Miw3IEBAIFBlcmZUZXN0UnVubmVyLmluaXRBbmRTdGFydExvb3AgPSBm
dW5jdGlvbigpIHsKICAgICB0aGlzLl9jb21wbGV0ZWRSdW5zID0gLTE7CiAgICAgdGhpcy5jdXN0
b21SdW5GdW5jdGlvbiA9IG51bGw7CiAgICAgdGhpcy5fcmVzdWx0cyA9IFtdOworICAgIHRoaXMu
X21lbW9yeVJlc3VsdHMgPSBbXTsKICAgICB0aGlzLl9sb2dMaW5lcyA9IHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlciA/IFtdIDogbnVsbDsKICAgICB0aGlzLmxvZygiUnVubmluZyAiICsgdGhp
cy5fcnVuQ291bnQgKyAiIHRpbWVzIik7CiAgICAgdGhpcy5fcnVuTG9vcCgpOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGNkOGVkNzkuLmJjZmVm
NDAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNiBAQAorMjAxMi0wNy0zMCAgWm9sdGFuIEhvcnZhdGggIDx6b2x0YW5Ad2Via2l0
Lm9yZz4KKworICAgICAgICBKU0hlYXAgYW5kIEZhc3RNYWxsb2NTdGF0aXN0aWNzIGJhc2VkIG1l
bW9yeSBtZWFzdXJlbWVudCBmb3IgcGVyZm9ybWFuY2UtdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwODU4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWVhc3VyZSB0aGUgbWVtb3J5IHVzYWdlIG9m
IHRoZSBwZXJmb3JtYW5jZXRlc3RzIHRocm91Z2ggdGhlIHdpbmRvd3MubWVtb3J5LnVzZWRKU0hl
YXBTaXplIG9iamVjdCBhbmQKKyAgICAgICAgdGhlIHdpbmRvdy5pbnRlcm5hbHMuZmFzdE1hbGxv
Y1N0YXRpc3RpY3MoKSBmdW5jdGlvbiBjYWxsLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS9wZXJmb3JtYW5jZV90ZXN0cy9wZXJmdGVzdC5weToKKyAgICAgICAgKFBlcmZUZXN0LnBhcnNl
X291dHB1dCk6CisKIDIwMTItMDctMzAgIE1pa2hhaWwgUG96ZG55YWtvdiAgPG1pa2hhaWwucG96
ZG55YWtvdkBpbnRlbC5jb20+CiAKICAgICAgICAgW0VGTF1bV1RSXSBFbmZvcmNlIFNISUZUIG1v
ZGlmaWVyIHRvIHVwcGVyIGNhc2Uga2V5cyBpbiBldmVudCBzZW5kZXIuCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3BlcmZvcm1hbmNlX3Rlc3RzL3BlcmZ0ZXN0LnB5IGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9wZXJmb3JtYW5jZV90ZXN0cy9wZXJmdGVzdC5weQpvbGQgbW9k
ZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmluZGV4IDhhYWM3OGYuLjhjNGNjMTYKLS0tIGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9wZXJmb3JtYW5jZV90ZXN0cy9wZXJmdGVzdC5weQorKysgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3BlcmZvcm1hbmNlX3Rlc3RzL3BlcmZ0ZXN0LnB5CkBAIC05
NSw2ICs5NSw3IEBAIGNsYXNzIFBlcmZUZXN0KG9iamVjdCk6CiAgICAgICAgIHJlLmNvbXBpbGUo
cideUnVubmluZyBcZCsgdGltZXMkJyksCiAgICAgICAgIHJlLmNvbXBpbGUocideSWdub3Jpbmcg
d2FybS11cCAnKSwKICAgICAgICAgcmUuY29tcGlsZShyJ15JbmZvOicpLAorICAgICAgICByZS5j
b21waWxlKHInXlJlc3VsdHM6fE1lbW9yeSBVc2FnZTonKSwKICAgICAgICAgcmUuY29tcGlsZShy
J15cZCsoLlxkKyk/KFxzKihydW5zXC9zfG1zfGZwcykpPyQnKSwKICAgICAgICAgIyBGb2xsb3dp
bmcgYXJlIGZvciBoYW5kbGUgZXhpc3RpbmcgdGVzdCBsaWtlIERyb21hZW8KICAgICAgICAgcmUu
Y29tcGlsZShyZS5lc2NhcGUoIiIibWFpbiBmcmFtZSAtIGhhcyAxIG9udW5sb2FkIGhhbmRsZXIo
cykiIiIpKSwKQEAgLTExNywxMCArMTE4LDEyIEBAIGNsYXNzIFBlcmZUZXN0KG9iamVjdCk6CiAg
ICAgICAgIGdvdF9hX3Jlc3VsdCA9IEZhbHNlCiAgICAgICAgIHRlc3RfZmFpbGVkID0gRmFsc2UK
ICAgICAgICAgcmVzdWx0cyA9IHt9CisgICAgICAgIG1lbW9yeV9yZXN1bHRzID0ge30KICAgICAg
ICAgc2NvcmVfcmVnZXggPSByZS5jb21waWxlKHInXig/UDxrZXk+JyArIHInfCcuam9pbihzZWxm
Ll9zdGF0aXN0aWNzX2tleXMpICsgcicpXHMrKD9QPHZhbHVlPlswLTlcLl0rKVxzKig/UDx1bml0
Pi4qKScpCiAgICAgICAgIGRlc2NyaXB0aW9uX3JlZ2V4ID0gcmUuY29tcGlsZShyJ15EZXNjcmlw
dGlvbjogKD9QPGRlc2NyaXB0aW9uPi4qKSQnLCByZS5JR05PUkVDQVNFKQogICAgICAgICBkZXNj
cmlwdGlvbl9zdHJpbmcgPSAiIgotICAgICAgICB1bml0ID0gIm1zIgorICAgICAgICBwZXJmb3Jt
YW5jZV91bml0ID0gIm1zIgorICAgICAgICBtZW1vcnlfdW5pdCA9ICJieXRlcyIKIAogICAgICAg
ICBmb3IgbGluZSBpbiByZS5zcGxpdCgnXG4nLCBvdXRwdXQudGV4dCk6CiAgICAgICAgICAgICBk
ZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uX3JlZ2V4Lm1hdGNoKGxpbmUpCkBAIC0xMzAsOSArMTMz
LDE0IEBAIGNsYXNzIFBlcmZUZXN0KG9iamVjdCk6CiAKICAgICAgICAgICAgIHNjb3JlID0gc2Nv
cmVfcmVnZXgubWF0Y2gobGluZSkKICAgICAgICAgICAgIGlmIHNjb3JlOgotICAgICAgICAgICAg
ICAgIHJlc3VsdHNbc2NvcmUuZ3JvdXAoJ2tleScpXSA9IGZsb2F0KHNjb3JlLmdyb3VwKCd2YWx1
ZScpKQotICAgICAgICAgICAgICAgIGlmIHNjb3JlLmdyb3VwKCd1bml0Jyk6Ci0gICAgICAgICAg
ICAgICAgICAgIHVuaXQgPSBzY29yZS5ncm91cCgndW5pdCcpCisgICAgICAgICAgICAgICAga2V5
ID0gc2NvcmUuZ3JvdXAoJ2tleScpCisgICAgICAgICAgICAgICAgdmFsdWUgPSBmbG9hdChzY29y
ZS5ncm91cCgndmFsdWUnKSkKKyAgICAgICAgICAgICAgICB1bml0ID0gc2NvcmUuZ3JvdXAoJ3Vu
aXQnKQorICAgICAgICAgICAgICAgIGlmIHVuaXQgIT0gbWVtb3J5X3VuaXQ6CisgICAgICAgICAg
ICAgICAgICAgIHBlcmZvcm1hbmNlX3VuaXQgPSB1bml0CisgICAgICAgICAgICAgICAgICAgIHJl
c3VsdHNba2V5XSA9IHZhbHVlCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAg
ICAgICAgbWVtb3J5X3Jlc3VsdHNba2V5XSA9IGludCh2YWx1ZSkKICAgICAgICAgICAgICAgICBj
b250aW51ZQogCiAgICAgICAgICAgICBpZiBub3Qgc2VsZi5fc2hvdWxkX2lnbm9yZV9saW5lX2lu
X3BhcnNlcl90ZXN0X3Jlc3VsdChsaW5lKToKQEAgLTE0MiwxMiArMTUwLDE2IEBAIGNsYXNzIFBl
cmZUZXN0KG9iamVjdCk6CiAgICAgICAgIGlmIHRlc3RfZmFpbGVkIG9yIHNldChzZWxmLl9zdGF0
aXN0aWNzX2tleXMpICE9IHNldChyZXN1bHRzLmtleXMoKSk6CiAgICAgICAgICAgICByZXR1cm4g
Tm9uZQogCi0gICAgICAgIHJlc3VsdHNbJ3VuaXQnXSA9IHVuaXQKKyAgICAgICAgcmVzdWx0c1sn
dW5pdCddID0gcGVyZm9ybWFuY2VfdW5pdAorICAgICAgICBtZW1vcnlfcmVzdWx0c1sndW5pdCdd
ID0gbWVtb3J5X3VuaXQKIAogICAgICAgICB0ZXN0X25hbWUgPSByZS5zdWIocidcLlx3KyQnLCAn
Jywgc2VsZi5fdGVzdF9uYW1lKQorICAgICAgICBtZW1vcnlfdGVzdF9uYW1lID0gIk1lbW9yeSBV
c2FnZSAiICsgdGVzdF9uYW1lCisKICAgICAgICAgc2VsZi5vdXRwdXRfc3RhdGlzdGljcyh0ZXN0
X25hbWUsIHJlc3VsdHMsIGRlc2NyaXB0aW9uX3N0cmluZykKKyAgICAgICAgc2VsZi5vdXRwdXRf
c3RhdGlzdGljcyhtZW1vcnlfdGVzdF9uYW1lLCBtZW1vcnlfcmVzdWx0cywgZGVzY3JpcHRpb25f
c3RyaW5nKQogCi0gICAgICAgIHJldHVybiB7dGVzdF9uYW1lOiByZXN1bHRzfQorICAgICAgICBy
ZXR1cm4ge3Rlc3RfbmFtZTogcmVzdWx0cywgbWVtb3J5X3Rlc3RfbmFtZTogbWVtb3J5X3Jlc3Vs
dHN9CiAKICAgICBkZWYgb3V0cHV0X3N0YXRpc3RpY3Moc2VsZiwgdGVzdF9uYW1lLCByZXN1bHRz
LCBkZXNjcmlwdGlvbl9zdHJpbmcpOgogICAgICAgICB1bml0ID0gcmVzdWx0c1sndW5pdCddCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156983</attachid>
            <date>2012-08-07 13:04:15 -0700</date>
            <delta_ts>2012-08-08 01:19:11 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>fastmallocjsheapinfobasedmemorymeasure.patch</filename>
            <type>text/plain</type>
            <size>9737</size>
            <attacher name="Zoltan Horvath">zoltan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nIGIvUGVyZm9ybWFuY2VUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggZGU0MDg5Ny4uMGViN2NiYSAxMDA2NDQKLS0tIGEvUGVyZm9ybWFu
Y2VUZXN0cy9DaGFuZ2VMb2cKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAxMi0wOC0wNyAgWm9sdGFuIEhvcnZhdGggIDx6b2x0YW5Ad2Via2l0Lm9y
Zz4KKworICAgICAgICBKU0hlYXAgYW5kIEZhc3RNYWxsb2NTdGF0aXN0aWNzIGJhc2VkIG1lbW9y
eSBtZWFzdXJlbWVudCBmb3IgcGVyZm9ybWFuY2UtdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwODU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWVhc3VyZSB0aGUgbWVtb3J5IHVzYWdlIG9mIHRo
ZSBwZXJmb3JtYW5jZXRlc3RzIHdpdGggdGhlIGhlbHAgb2YgdGhlIHdpbmRvd3MubWVtb3J5LnVz
ZWRKU0hlYXBTaXplCisgICAgICAgIG9iamVjdCBhbmQgdGhlIHdpbmRvdy5pbnRlcm5hbHMuZmFz
dE1hbGxvY1N0YXRpc3RpY3MoKSBmdW5jdGlvbiBjYWxsLgorCisgICAgICAgICogcmVzb3VyY2Vz
L3J1bm5lci5qczoKKyAgICAgICAgKFBlcmZUZXN0UnVubmVyLmxvZ1N0YXRpc3RpY3MpOgorICAg
ICAgICAoUGVyZlRlc3RSdW5uZXIucHJpbnRTdGF0aXN0aWNzKToKKyAgICAgICAgKFBlcmZUZXN0
UnVubmVyLnN0b3JlSGVhcFJlc3VsdHMpOgorICAgICAgICAoUGVyZlRlc3RSdW5uZXIuZ2V0VXNl
ZEZhc3RNYWxsb2NIZWFwKToKKyAgICAgICAgKFBlcmZUZXN0UnVubmVyLmdldFVzZWRKU0hlYXAp
OgorICAgICAgICAoUGVyZlRlc3RSdW5uZXIuZ2V0QW5kUHJpbnRNZW1vcnlTdGF0aXN0aWNzKToK
KyAgICAgICAgKFBlcmZUZXN0UnVubmVyLmlnbm9yZVdhcm1VcEFuZExvZyk6CisgICAgICAgIChQ
ZXJmVGVzdFJ1bm5lci5pbml0QW5kU3RhcnRMb29wKToKKwogMjAxMi0wOC0wNiAgUnlvc3VrZSBO
aXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBydW4td2Via2l0LXRlc3RzIHNob3Vs
ZCBoYXZlIGFiaWxpdHkgdG8gYWRkIGRlc2NyaXB0aW9uIHRvIGl0cyBKU09OIG91dHB1dApkaWZm
IC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9yZXNvdXJjZXMvcnVubmVyLmpzIGIvUGVyZm9ybWFu
Y2VUZXN0cy9yZXNvdXJjZXMvcnVubmVyLmpzCm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3
NTUKaW5kZXggOWIyN2Y5YS4uMDhlNjE1MwotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL3Jlc291cmNl
cy9ydW5uZXIuanMKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9yZXNvdXJjZXMvcnVubmVyLmpzCkBA
IC04NSwxNCArODUsMTQgQEAgUGVyZlRlc3RSdW5uZXIuY29tcHV0ZVN0YXRpc3RpY3MgPSBmdW5j
dGlvbiAodGltZXMsIHVuaXQpIHsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1QZXJmVGVzdFJ1
bm5lci5sb2dTdGF0aXN0aWNzID0gZnVuY3Rpb24gKHRpbWVzKSB7Ci0gICAgdGhpcy5sb2coIiIp
OwotICAgIHZhciBzdGF0aXN0aWNzID0gdGhpcy5jb21wdXRlU3RhdGlzdGljcyh0aW1lcywgdGhp
cy51bml0KTsKLSAgICB0aGlzLnByaW50U3RhdGlzdGljcyhzdGF0aXN0aWNzKTsKK1BlcmZUZXN0
UnVubmVyLmxvZ1N0YXRpc3RpY3MgPSBmdW5jdGlvbiAodmFsdWVzLCB1bml0LCBkZXNjcmlwdGlv
bikgeworICAgIHZhciBzdGF0aXN0aWNzID0gdGhpcy5jb21wdXRlU3RhdGlzdGljcyh2YWx1ZXMs
IHVuaXQpOworICAgIHRoaXMucHJpbnRTdGF0aXN0aWNzKHN0YXRpc3RpY3MsIGRlc2NyaXB0aW9u
KTsKIH0KIAotUGVyZlRlc3RSdW5uZXIucHJpbnRTdGF0aXN0aWNzID0gZnVuY3Rpb24gKHN0YXRp
c3RpY3MpIHsKK1BlcmZUZXN0UnVubmVyLnByaW50U3RhdGlzdGljcyA9IGZ1bmN0aW9uIChzdGF0
aXN0aWNzLCBkZXNjcmlwdGlvbikgewogICAgIHRoaXMubG9nKCIiKTsKKyAgICB0aGlzLmxvZyhk
ZXNjcmlwdGlvbik7CiAgICAgdGhpcy5sb2coImF2ZyAiICsgc3RhdGlzdGljcy5tZWFuICsgIiAi
ICsgc3RhdGlzdGljcy51bml0KTsKICAgICB0aGlzLmxvZygibWVkaWFuICIgKyBzdGF0aXN0aWNz
Lm1lZGlhbiArICIgIiArIHN0YXRpc3RpY3MudW5pdCk7CiAgICAgdGhpcy5sb2coInN0ZGV2ICIg
KyBzdGF0aXN0aWNzLnN0ZGV2ICsgIiAiICsgc3RhdGlzdGljcy51bml0KTsKQEAgLTEyMyw3ICsx
MjMsOSBAQCBQZXJmVGVzdFJ1bm5lci5fcnVuTG9vcCA9IGZ1bmN0aW9uICgpIHsKICAgICB9IGVs
c2UgewogICAgICAgICBpZiAodGhpcy5fZGVzY3JpcHRpb24pCiAgICAgICAgICAgICB0aGlzLmxv
ZygiRGVzY3JpcHRpb246ICIgKyB0aGlzLl9kZXNjcmlwdGlvbik7Ci0gICAgICAgIHRoaXMubG9n
U3RhdGlzdGljcyh0aGlzLl9yZXN1bHRzKTsKKyAgICAgICAgdGhpcy5sb2dTdGF0aXN0aWNzKHRo
aXMuX3Jlc3VsdHMsIHRoaXMudW5pdCwgIlBlcmZvcm1hbmNlOiIpOworICAgICAgICB0aGlzLmxv
Z1N0YXRpc3RpY3ModGhpcy5fanNIZWFwUmVzdWx0cywgImJ5dGVzIiwgIkpTIGhlYXAgdXNhZ2U6
Iik7CisgICAgICAgIHRoaXMubG9nU3RhdGlzdGljcyh0aGlzLl9mYXN0TWFsbG9jSGVhcFJlc3Vs
dHMsICJieXRlcyIsICJGYXN0TWFsbG9jIGhlYXAgdXNhZ2U6Iik7CiAgICAgICAgIGlmICh0aGlz
Ll9sb2dMaW5lcykgewogICAgICAgICAgICAgdmFyIGxvZ0xpbmVzID0gdGhpcy5fbG9nTGluZXM7
CiAgICAgICAgICAgICB0aGlzLl9sb2dMaW5lcyA9IG51bGw7CkBAIC0xNTYsNiArMTU4LDI5IEBA
IFBlcmZUZXN0UnVubmVyLl9ydW5uZXIgPSBmdW5jdGlvbiAoKSB7CiAgICAgdGhpcy5fcnVuTG9v
cCgpOwogfQogCitQZXJmVGVzdFJ1bm5lci5zdG9yZUhlYXBSZXN1bHRzID0gZnVuY3Rpb24oKSB7
CisgICAgdGhpcy5fanNIZWFwUmVzdWx0cy5wdXNoKHRoaXMuZ2V0VXNlZEpTSGVhcCgpKTsKKyAg
ICB0aGlzLl9mYXN0TWFsbG9jSGVhcFJlc3VsdHMucHVzaCh0aGlzLmdldFVzZWRGYXN0TWFsbG9j
SGVhcCgpKTsKK30KKworUGVyZlRlc3RSdW5uZXIuZ2V0VXNlZEZhc3RNYWxsb2NIZWFwID0gZnVu
Y3Rpb24oKSB7CisgICAgdmFyIHN0YXRzID0gd2luZG93LmludGVybmFscy5mYXN0TWFsbG9jU3Rh
dGlzdGljcygpOworICAgIHJldHVybiBzdGF0cy5jb21taXR0ZWRWTUJ5dGVzIC0gc3RhdHMuZnJl
ZUxpc3RCeXRlczsKK30KKworUGVyZlRlc3RSdW5uZXIuZ2V0VXNlZEpTSGVhcCA9IGZ1bmN0aW9u
KCkgeworICAgIHJldHVybiBjb25zb2xlLm1lbW9yeS51c2VkSlNIZWFwU2l6ZTsKK30KKworLy8g
VGhpcyBmdW5jdGlvbiBpcyB0byBiZSB1c2VkIGluIGZwcyBiYXNlZCBwZXJmb3JtYW5jZSB0ZXN0
cworUGVyZlRlc3RSdW5uZXIuZ2V0QW5kUHJpbnRNZW1vcnlTdGF0aXN0aWNzID0gZnVuY3Rpb24o
KSB7CisgICAgdmFyIGpzTWVtb3J5U3RhdHMgPSBQZXJmVGVzdFJ1bm5lci5jb21wdXRlU3RhdGlz
dGljcyhbUGVyZlRlc3RSdW5uZXIuZ2V0VXNlZEpTSGVhcCgpXSwgImJ5dGVzIik7CisgICAgUGVy
ZlRlc3RSdW5uZXIucHJpbnRTdGF0aXN0aWNzKGpzTWVtb3J5U3RhdHMsICJKUyBoZWFwIHVzYWdl
OiIpOworCisgICAgdmFyIGZhc3RNYWxsb2NNZW1vcnlTdGF0cyA9IFBlcmZUZXN0UnVubmVyLmNv
bXB1dGVTdGF0aXN0aWNzKFtQZXJmVGVzdFJ1bm5lci5nZXRVc2VkRmFzdE1hbGxvY0hlYXAoKV0s
ICJieXRlcyIpOworICAgIFBlcmZUZXN0UnVubmVyLnByaW50U3RhdGlzdGljcyhmYXN0TWFsbG9j
TWVtb3J5U3RhdHMsICJGYXN0TWFsbG9jIGhlYXAgdXNhZ2U6Iik7Cit9CisKIFBlcmZUZXN0UnVu
bmVyLmlnbm9yZVdhcm1VcEFuZExvZyA9IGZ1bmN0aW9uIChyZXN1bHQpIHsKICAgICB0aGlzLl9j
b21wbGV0ZWRSdW5zKys7CiAKQEAgLTE2NCw2ICsxODksNyBAQCBQZXJmVGVzdFJ1bm5lci5pZ25v
cmVXYXJtVXBBbmRMb2cgPSBmdW5jdGlvbiAocmVzdWx0KSB7CiAgICAgICAgIHRoaXMubG9nKCJJ
Z25vcmluZyB3YXJtLXVwIHJ1biAoIiArIGxhYmVsZWRSZXN1bHQgKyAiKSIpOwogICAgIGVsc2Ug
ewogICAgICAgICB0aGlzLl9yZXN1bHRzLnB1c2gocmVzdWx0KTsKKyAgICAgICAgdGhpcy5zdG9y
ZUhlYXBSZXN1bHRzKCk7CiAgICAgICAgIHRoaXMubG9nKGxhYmVsZWRSZXN1bHQpOwogICAgIH0K
IH0KQEAgLTE3Miw2ICsxOTgsOCBAQCBQZXJmVGVzdFJ1bm5lci5pbml0QW5kU3RhcnRMb29wID0g
ZnVuY3Rpb24oKSB7CiAgICAgdGhpcy5fY29tcGxldGVkUnVucyA9IC0xOwogICAgIHRoaXMuY3Vz
dG9tUnVuRnVuY3Rpb24gPSBudWxsOwogICAgIHRoaXMuX3Jlc3VsdHMgPSBbXTsKKyAgICB0aGlz
Ll9qc0hlYXBSZXN1bHRzID0gW107CisgICAgdGhpcy5fZmFzdE1hbGxvY0hlYXBSZXN1bHRzID0g
W107CiAgICAgdGhpcy5fbG9nTGluZXMgPSB3aW5kb3cudGVzdFJ1bm5lciA/IFtdIDogbnVsbDsK
ICAgICB0aGlzLmxvZygiUnVubmluZyAiICsgdGhpcy5fcnVuQ291bnQgKyAiIHRpbWVzIik7CiAg
ICAgdGhpcy5fcnVuTG9vcCgpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IDUzMmQ1YzguLjE2YjViYmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5n
ZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMi0wOC0wNyAg
Wm9sdGFuIEhvcnZhdGggIDx6b2x0YW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBKU0hlYXAgYW5k
IEZhc3RNYWxsb2NTdGF0aXN0aWNzIGJhc2VkIG1lbW9yeSBtZWFzdXJlbWVudCBmb3IgcGVyZm9y
bWFuY2UtdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTkwODU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTWVhc3VyZSB0aGUgbWVtb3J5IHVzYWdlIG9mIHRoZSBwZXJmb3JtYW5jZXRlc3RzIHdpdGgg
dGhlIGhlbHAgb2YgdGhlIHdpbmRvd3MubWVtb3J5LnVzZWRKU0hlYXBTaXplIAorICAgICAgICBv
YmplY3QgYW5kIHRoZSB3aW5kb3cuaW50ZXJuYWxzLmZhc3RNYWxsb2NTdGF0aXN0aWNzKCkgZnVu
Y3Rpb24gY2FsbC4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcGVyZm9ybWFuY2VfdGVz
dHMvcGVyZnRlc3QucHk6CisgICAgICAgIChQZXJmVGVzdCk6CisgICAgICAgIChQZXJmVGVzdC5w
YXJzZV9vdXRwdXQpOgorICAgICAgICAoUGVyZlRlc3Qub3V0cHV0X3N0YXRpc3RpY3MpOgorCiAy
MDEyLTA4LTA3ICBObydhbSBSb3NlbnRoYWwgIDxub2FtLnJvc2VudGhhbEBub2tpYS5jb20+CiAK
ICAgICAgICAgW1F0XSBNYWtlIGl0IHBvc3NpYmxlIHRvIGJ1aWxkIHdpdGhvdXQgUXRRdWljawpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wZXJmb3JtYW5jZV90ZXN0cy9wZXJm
dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcGVyZm9ybWFuY2VfdGVzdHMvcGVyZnRl
c3QucHkKaW5kZXggOGFhYzc4Zi4uYTY0MzkyMSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9wZXJmb3JtYW5jZV90ZXN0cy9wZXJmdGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3BlcmZvcm1hbmNlX3Rlc3RzL3BlcmZ0ZXN0LnB5CkBAIC0xMDMsOCArMTAzLDYg
QEAgY2xhc3MgUGVyZlRlc3Qob2JqZWN0KToKICAgICAgICAgIyBGb2xsb3dpbmcgaXMgZm9yIGh0
bWw1Lmh0bWwKICAgICAgICAgcmUuY29tcGlsZShyZS5lc2NhcGUoIiIiQmxvY2tlZCBhY2Nlc3Mg
dG8gZXh0ZXJuYWwgVVJMIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJy
ZW50LXdvcmsvIiIiKSldCiAKLSAgICBfc3RhdGlzdGljc19rZXlzID0gWydhdmcnLCAnbWVkaWFu
JywgJ3N0ZGV2JywgJ21pbicsICdtYXgnXQotCiAgICAgZGVmIF9zaG91bGRfaWdub3JlX2xpbmVf
aW5fcGFyc2VyX3Rlc3RfcmVzdWx0KHNlbGYsIGxpbmUpOgogICAgICAgICBpZiBub3QgbGluZToK
ICAgICAgICAgICAgIHJldHVybiBUcnVlCkBAIC0xMTMsNDggKzExMSw2OSBAQCBjbGFzcyBQZXJm
VGVzdChvYmplY3QpOgogICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCiAgICAgICAgIHJldHVy
biBGYWxzZQogCisgICAgX3N0YXRpc3RpY3Nfa2V5cyA9IFsnYXZnJywgJ21lZGlhbicsICdzdGRl
dicsICdtaW4nLCAnbWF4JywgJ3VuaXQnXQorICAgIF9yZXN1bHRfY2xhc3NlcyA9IFsnUGVyZm9y
bWFuY2U6JywgJ0pTIGhlYXAgdXNhZ2U6JywgJ0Zhc3RNYWxsb2MgaGVhcCB1c2FnZTonXQorCiAg
ICAgZGVmIHBhcnNlX291dHB1dChzZWxmLCBvdXRwdXQpOgogICAgICAgICBnb3RfYV9yZXN1bHQg
PSBGYWxzZQogICAgICAgICB0ZXN0X2ZhaWxlZCA9IEZhbHNlCi0gICAgICAgIHJlc3VsdHMgPSB7
fQorICAgICAgICBwZXJmb3JtYW5jZV9yZXN1bHRzID0ge30KKyAgICAgICAganNfbWVtb3J5X3Jl
c3VsdHMgPSB7fQorICAgICAgICBmYXN0bWFsbG9jX21lbW9yeV9yZXN1bHRzID0ge30KICAgICAg
ICAgc2NvcmVfcmVnZXggPSByZS5jb21waWxlKHInXig/UDxrZXk+JyArIHInfCcuam9pbihzZWxm
Ll9zdGF0aXN0aWNzX2tleXMpICsgcicpXHMrKD9QPHZhbHVlPlswLTlcLl0rKVxzKig/UDx1bml0
Pi4qKScpCiAgICAgICAgIGRlc2NyaXB0aW9uX3JlZ2V4ID0gcmUuY29tcGlsZShyJ15EZXNjcmlw
dGlvbjogKD9QPGRlc2NyaXB0aW9uPi4qKSQnLCByZS5JR05PUkVDQVNFKQogICAgICAgICBkZXNj
cmlwdGlvbl9zdHJpbmcgPSAiIgotICAgICAgICB1bml0ID0gIm1zIgorICAgICAgICByZXN1bHRf
Y2xhc3NfcmVnZXggPSByZS5jb21waWxlKHInXig/UDxyZXN1bHRjbGFzcz4nICsgcid8Jy5qb2lu
KHNlbGYuX3Jlc3VsdF9jbGFzc2VzKSArICcpJykKIAorICAgICAgICBhY3R1YWxfcmVzdWx0X2Ns
YXNzID0gIiIKICAgICAgICAgZm9yIGxpbmUgaW4gcmUuc3BsaXQoJ1xuJywgb3V0cHV0LnRleHQp
OgogICAgICAgICAgICAgZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbl9yZWdleC5tYXRjaChsaW5l
KQogICAgICAgICAgICAgaWYgZGVzY3JpcHRpb246CiAgICAgICAgICAgICAgICAgZGVzY3JpcHRp
b25fc3RyaW5nID0gZGVzY3JpcHRpb24uZ3JvdXAoJ2Rlc2NyaXB0aW9uJykKICAgICAgICAgICAg
ICAgICBjb250aW51ZQogCisgICAgICAgICAgICB0bXBfcmVzdWx0X2NsYXNzID0gcmVzdWx0X2Ns
YXNzX3JlZ2V4Lm1hdGNoKGxpbmUpCisgICAgICAgICAgICBpZiB0bXBfcmVzdWx0X2NsYXNzOgor
ICAgICAgICAgICAgICAgIGFjdHVhbF9yZXN1bHRfY2xhc3MgPSB0bXBfcmVzdWx0X2NsYXNzLmdy
b3VwKCdyZXN1bHRjbGFzcycpCisgICAgICAgICAgICAgICAgY29udGludWUKKwogICAgICAgICAg
ICAgc2NvcmUgPSBzY29yZV9yZWdleC5tYXRjaChsaW5lKQogICAgICAgICAgICAgaWYgc2NvcmU6
Ci0gICAgICAgICAgICAgICAgcmVzdWx0c1tzY29yZS5ncm91cCgna2V5JyldID0gZmxvYXQoc2Nv
cmUuZ3JvdXAoJ3ZhbHVlJykpCi0gICAgICAgICAgICAgICAgaWYgc2NvcmUuZ3JvdXAoJ3VuaXQn
KToKLSAgICAgICAgICAgICAgICAgICAgdW5pdCA9IHNjb3JlLmdyb3VwKCd1bml0JykKKyAgICAg
ICAgICAgICAgICBrZXkgPSBzY29yZS5ncm91cCgna2V5JykKKyAgICAgICAgICAgICAgICB2YWx1
ZSA9IGZsb2F0KHNjb3JlLmdyb3VwKCd2YWx1ZScpKQorICAgICAgICAgICAgICAgIHVuaXQgPSBz
Y29yZS5ncm91cCgndW5pdCcpCisKKyAgICAgICAgICAgICAgICBpZiBhY3R1YWxfcmVzdWx0X2Ns
YXNzID09IHNlbGYuX3Jlc3VsdF9jbGFzc2VzWzBdOgorICAgICAgICAgICAgICAgICAgICBwZXJm
b3JtYW5jZV9yZXN1bHRzWyd1bml0J10gPSB1bml0CisgICAgICAgICAgICAgICAgICAgIHBlcmZv
cm1hbmNlX3Jlc3VsdHNba2V5XSA9IHZhbHVlCisgICAgICAgICAgICAgICAgZWxpZiBhY3R1YWxf
cmVzdWx0X2NsYXNzID09IHNlbGYuX3Jlc3VsdF9jbGFzc2VzWzFdOgorICAgICAgICAgICAgICAg
ICAgICBqc19tZW1vcnlfcmVzdWx0c1sndW5pdCddID0gdW5pdAorICAgICAgICAgICAgICAgICAg
ICBqc19tZW1vcnlfcmVzdWx0c1trZXldID0gdmFsdWUKKyAgICAgICAgICAgICAgICBlbGlmIGFj
dHVhbF9yZXN1bHRfY2xhc3MgPT0gc2VsZi5fcmVzdWx0X2NsYXNzZXNbMl06CisgICAgICAgICAg
ICAgICAgICAgIGZhc3RtYWxsb2NfbWVtb3J5X3Jlc3VsdHNbJ3VuaXQnXSA9IHVuaXQKKyAgICAg
ICAgICAgICAgICAgICAgZmFzdG1hbGxvY19tZW1vcnlfcmVzdWx0c1trZXldID0gdmFsdWUKICAg
ICAgICAgICAgICAgICBjb250aW51ZQogCiAgICAgICAgICAgICBpZiBub3Qgc2VsZi5fc2hvdWxk
X2lnbm9yZV9saW5lX2luX3BhcnNlcl90ZXN0X3Jlc3VsdChsaW5lKToKICAgICAgICAgICAgICAg
ICB0ZXN0X2ZhaWxlZCA9IFRydWUKICAgICAgICAgICAgICAgICBfbG9nLmVycm9yKGxpbmUpCiAK
LSAgICAgICAgaWYgdGVzdF9mYWlsZWQgb3Igc2V0KHNlbGYuX3N0YXRpc3RpY3Nfa2V5cykgIT0g
c2V0KHJlc3VsdHMua2V5cygpKToKKyAgICAgICAgaWYgdGVzdF9mYWlsZWQgb3Igc2V0KHNlbGYu
X3N0YXRpc3RpY3Nfa2V5cykgIT0gc2V0KHBlcmZvcm1hbmNlX3Jlc3VsdHMua2V5cygpKToKICAg
ICAgICAgICAgIHJldHVybiBOb25lCiAKLSAgICAgICAgcmVzdWx0c1sndW5pdCddID0gdW5pdAot
CiAgICAgICAgIHRlc3RfbmFtZSA9IHJlLnN1YihyJ1wuXHcrJCcsICcnLCBzZWxmLl90ZXN0X25h
bWUpCi0gICAgICAgIHNlbGYub3V0cHV0X3N0YXRpc3RpY3ModGVzdF9uYW1lLCByZXN1bHRzLCBk
ZXNjcmlwdGlvbl9zdHJpbmcpCiAKLSAgICAgICAgcmV0dXJuIHt0ZXN0X25hbWU6IHJlc3VsdHN9
CisgICAgICAgIHNlbGYub3V0cHV0X3N0YXRpc3RpY3ModGVzdF9uYW1lLCBwZXJmb3JtYW5jZV9y
ZXN1bHRzLCBkZXNjcmlwdGlvbl9zdHJpbmcpCisgICAgICAgIHNlbGYub3V0cHV0X3N0YXRpc3Rp
Y3ModGVzdF9uYW1lICsgIjogSlNIZWFwIiwganNfbWVtb3J5X3Jlc3VsdHMsIGRlc2NyaXB0aW9u
X3N0cmluZykKKyAgICAgICAgc2VsZi5vdXRwdXRfc3RhdGlzdGljcyh0ZXN0X25hbWUgKyAiOiBG
YXN0TWFsbG9jSGVhcCIsIGZhc3RtYWxsb2NfbWVtb3J5X3Jlc3VsdHMsIGRlc2NyaXB0aW9uX3N0
cmluZykKKyAgICAgICAgcmV0dXJuIHt0ZXN0X25hbWU6IHBlcmZvcm1hbmNlX3Jlc3VsdHN9CiAK
ICAgICBkZWYgb3V0cHV0X3N0YXRpc3RpY3Moc2VsZiwgdGVzdF9uYW1lLCByZXN1bHRzLCBkZXNj
cmlwdGlvbl9zdHJpbmcpOgogICAgICAgICB1bml0ID0gcmVzdWx0c1sndW5pdCddCiAgICAgICAg
IGlmIGRlc2NyaXB0aW9uX3N0cmluZzoKICAgICAgICAgICAgIF9sb2cuaW5mbygnREVTQ1JJUFRJ
T046ICVzJyAlIGRlc2NyaXB0aW9uX3N0cmluZykKICAgICAgICAgX2xvZy5pbmZvKCdSRVNVTFQg
JXM9ICVzICVzJyAlICh0ZXN0X25hbWUucmVwbGFjZSgnLycsICc6ICcpLCByZXN1bHRzWydhdmcn
XSwgdW5pdCkpCi0gICAgICAgIF9sb2cuaW5mbygnLCAnLmpvaW4oWyclcz0gJXMgJXMnICUgKGtl
eSwgcmVzdWx0c1trZXldLCB1bml0KSBmb3Iga2V5IGluIHNlbGYuX3N0YXRpc3RpY3Nfa2V5c1sx
Ol1dKSkKKyAgICAgICAgX2xvZy5pbmZvKCcsICcuam9pbihbJyVzPSAlcyAlcycgJSAoa2V5LCBy
ZXN1bHRzW2tleV0sIHVuaXQpIGZvciBrZXkgaW4gc2VsZi5fc3RhdGlzdGljc19rZXlzWzE6NV1d
KSkKIAogCiBjbGFzcyBDaHJvbWl1bVN0eWxlUGVyZlRlc3QoUGVyZlRlc3QpOgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156985</attachid>
            <date>2012-08-07 13:06:34 -0700</date>
            <delta_ts>2012-08-07 13:06:34 -0700</delta_ts>
            <desc>sample modification for fps tests</desc>
            <filename>balls.diff</filename>
            <type>text/plain</type>
            <size>636</size>
            <attacher name="Zoltan Horvath">zoltan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbWF0aW9uL2JhbGxzLmh0bWwgYi9QZXJm
b3JtYW5jZVRlc3RzL0FuaW1hdGlvbi9iYWxscy5odG1sCmluZGV4IDZiNzlmMTkuLmUwNDhjMTYg
MTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbWF0aW9uL2JhbGxzLmh0bWwKKysrIGIv
UGVyZm9ybWFuY2VUZXN0cy9BbmltYXRpb24vYmFsbHMuaHRtbApAQCAtMjUyLDcgKzI1Miw4IEBA
CiAgICAgICAgIHZhciBzdGF0cyA9IFBlcmZUZXN0UnVubmVyLmNvbXB1dGVTdGF0aXN0aWNzKGZy
YW1lUmF0ZXMsICJmcHMiKTsKICAgICAgICAgc3RhdGlzdGljcy5wdXNoKHN0YXRzKTsKIAotICAg
ICAgICBQZXJmVGVzdFJ1bm5lci5wcmludFN0YXRpc3RpY3Moc3RhdHMpOworICAgICAgICBQZXJm
VGVzdFJ1bm5lci5wcmludFN0YXRpc3RpY3Moc3RhdHMsICJQZXJmb3JtYW5jZToiKTsKKyAgICAg
ICAgUGVyZlRlc3RSdW5uZXIuZ2V0QW5kUHJpbnRNZW1vcnlTdGF0aXN0aWNzKCk7CiAKICAgICAg
ICAgaWYgKCsrcnVuIDwgTUFYX1JVTlMpIHsKICAgICAgICAgICAgIFBlcmZUZXN0UnVubmVyLmxv
ZygiPGJyPj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PTxicj4iKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157145</attachid>
            <date>2012-08-08 01:19:11 -0700</date>
            <delta_ts>2012-08-08 14:41:44 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>fastmallocjsheapinfobasedmemorymeasure.patch</filename>
            <type>text/plain</type>
            <size>9159</size>
            <attacher name="Zoltan Horvath">zoltan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nIGIvUGVyZm9ybWFuY2VUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggZGU0MDg5Ny4uMGViN2NiYSAxMDA2NDQKLS0tIGEvUGVyZm9ybWFu
Y2VUZXN0cy9DaGFuZ2VMb2cKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAxMi0wOC0wNyAgWm9sdGFuIEhvcnZhdGggIDx6b2x0YW5Ad2Via2l0Lm9y
Zz4KKworICAgICAgICBKU0hlYXAgYW5kIEZhc3RNYWxsb2NTdGF0aXN0aWNzIGJhc2VkIG1lbW9y
eSBtZWFzdXJlbWVudCBmb3IgcGVyZm9ybWFuY2UtdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwODU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWVhc3VyZSB0aGUgbWVtb3J5IHVzYWdlIG9mIHRo
ZSBwZXJmb3JtYW5jZXRlc3RzIHdpdGggdGhlIGhlbHAgb2YgdGhlIHdpbmRvd3MubWVtb3J5LnVz
ZWRKU0hlYXBTaXplCisgICAgICAgIG9iamVjdCBhbmQgdGhlIHdpbmRvdy5pbnRlcm5hbHMuZmFz
dE1hbGxvY1N0YXRpc3RpY3MoKSBmdW5jdGlvbiBjYWxsLgorCisgICAgICAgICogcmVzb3VyY2Vz
L3J1bm5lci5qczoKKyAgICAgICAgKFBlcmZUZXN0UnVubmVyLmxvZ1N0YXRpc3RpY3MpOgorICAg
ICAgICAoUGVyZlRlc3RSdW5uZXIucHJpbnRTdGF0aXN0aWNzKToKKyAgICAgICAgKFBlcmZUZXN0
UnVubmVyLnN0b3JlSGVhcFJlc3VsdHMpOgorICAgICAgICAoUGVyZlRlc3RSdW5uZXIuZ2V0VXNl
ZEZhc3RNYWxsb2NIZWFwKToKKyAgICAgICAgKFBlcmZUZXN0UnVubmVyLmdldFVzZWRKU0hlYXAp
OgorICAgICAgICAoUGVyZlRlc3RSdW5uZXIuZ2V0QW5kUHJpbnRNZW1vcnlTdGF0aXN0aWNzKToK
KyAgICAgICAgKFBlcmZUZXN0UnVubmVyLmlnbm9yZVdhcm1VcEFuZExvZyk6CisgICAgICAgIChQ
ZXJmVGVzdFJ1bm5lci5pbml0QW5kU3RhcnRMb29wKToKKwogMjAxMi0wOC0wNiAgUnlvc3VrZSBO
aXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBydW4td2Via2l0LXRlc3RzIHNob3Vs
ZCBoYXZlIGFiaWxpdHkgdG8gYWRkIGRlc2NyaXB0aW9uIHRvIGl0cyBKU09OIG91dHB1dApkaWZm
IC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9yZXNvdXJjZXMvcnVubmVyLmpzIGIvUGVyZm9ybWFu
Y2VUZXN0cy9yZXNvdXJjZXMvcnVubmVyLmpzCm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3
NTUKaW5kZXggOWIyN2Y5YS4uMmIwNjRhMAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL3Jlc291cmNl
cy9ydW5uZXIuanMKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9yZXNvdXJjZXMvcnVubmVyLmpzCkBA
IC04NSwxNCArODUsMTQgQEAgUGVyZlRlc3RSdW5uZXIuY29tcHV0ZVN0YXRpc3RpY3MgPSBmdW5j
dGlvbiAodGltZXMsIHVuaXQpIHsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1QZXJmVGVzdFJ1
bm5lci5sb2dTdGF0aXN0aWNzID0gZnVuY3Rpb24gKHRpbWVzKSB7Ci0gICAgdGhpcy5sb2coIiIp
OwotICAgIHZhciBzdGF0aXN0aWNzID0gdGhpcy5jb21wdXRlU3RhdGlzdGljcyh0aW1lcywgdGhp
cy51bml0KTsKLSAgICB0aGlzLnByaW50U3RhdGlzdGljcyhzdGF0aXN0aWNzKTsKK1BlcmZUZXN0
UnVubmVyLmxvZ1N0YXRpc3RpY3MgPSBmdW5jdGlvbiAodmFsdWVzLCB1bml0LCBkZXNjcmlwdGlv
bikgeworICAgIHZhciBzdGF0aXN0aWNzID0gdGhpcy5jb21wdXRlU3RhdGlzdGljcyh2YWx1ZXMs
IHVuaXQpOworICAgIHRoaXMucHJpbnRTdGF0aXN0aWNzKHN0YXRpc3RpY3MsIGRlc2NyaXB0aW9u
KTsKIH0KIAotUGVyZlRlc3RSdW5uZXIucHJpbnRTdGF0aXN0aWNzID0gZnVuY3Rpb24gKHN0YXRp
c3RpY3MpIHsKK1BlcmZUZXN0UnVubmVyLnByaW50U3RhdGlzdGljcyA9IGZ1bmN0aW9uIChzdGF0
aXN0aWNzLCBkZXNjcmlwdGlvbikgewogICAgIHRoaXMubG9nKCIiKTsKKyAgICB0aGlzLmxvZyhk
ZXNjcmlwdGlvbik7CiAgICAgdGhpcy5sb2coImF2ZyAiICsgc3RhdGlzdGljcy5tZWFuICsgIiAi
ICsgc3RhdGlzdGljcy51bml0KTsKICAgICB0aGlzLmxvZygibWVkaWFuICIgKyBzdGF0aXN0aWNz
Lm1lZGlhbiArICIgIiArIHN0YXRpc3RpY3MudW5pdCk7CiAgICAgdGhpcy5sb2coInN0ZGV2ICIg
KyBzdGF0aXN0aWNzLnN0ZGV2ICsgIiAiICsgc3RhdGlzdGljcy51bml0KTsKQEAgLTEyMyw3ICsx
MjMsOSBAQCBQZXJmVGVzdFJ1bm5lci5fcnVuTG9vcCA9IGZ1bmN0aW9uICgpIHsKICAgICB9IGVs
c2UgewogICAgICAgICBpZiAodGhpcy5fZGVzY3JpcHRpb24pCiAgICAgICAgICAgICB0aGlzLmxv
ZygiRGVzY3JpcHRpb246ICIgKyB0aGlzLl9kZXNjcmlwdGlvbik7Ci0gICAgICAgIHRoaXMubG9n
U3RhdGlzdGljcyh0aGlzLl9yZXN1bHRzKTsKKyAgICAgICAgdGhpcy5sb2dTdGF0aXN0aWNzKHRo
aXMuX3Jlc3VsdHMsIHRoaXMudW5pdCwgIlRpbWU6Iik7CisgICAgICAgIHRoaXMubG9nU3RhdGlz
dGljcyh0aGlzLl9qc0hlYXBSZXN1bHRzLCAiYnl0ZXMiLCAiSlMgSGVhcDoiKTsKKyAgICAgICAg
dGhpcy5sb2dTdGF0aXN0aWNzKHRoaXMuX2Zhc3RNYWxsb2NIZWFwUmVzdWx0cywgImJ5dGVzIiwg
IkZhc3RNYWxsb2M6Iik7CiAgICAgICAgIGlmICh0aGlzLl9sb2dMaW5lcykgewogICAgICAgICAg
ICAgdmFyIGxvZ0xpbmVzID0gdGhpcy5fbG9nTGluZXM7CiAgICAgICAgICAgICB0aGlzLl9sb2dM
aW5lcyA9IG51bGw7CkBAIC0xNTYsNiArMTU4LDI4IEBAIFBlcmZUZXN0UnVubmVyLl9ydW5uZXIg
PSBmdW5jdGlvbiAoKSB7CiAgICAgdGhpcy5fcnVuTG9vcCgpOwogfQogCitQZXJmVGVzdFJ1bm5l
ci5zdG9yZUhlYXBSZXN1bHRzID0gZnVuY3Rpb24oKSB7CisgICAgdGhpcy5fanNIZWFwUmVzdWx0
cy5wdXNoKHRoaXMuZ2V0VXNlZEpTSGVhcCgpKTsKKyAgICB0aGlzLl9mYXN0TWFsbG9jSGVhcFJl
c3VsdHMucHVzaCh0aGlzLmdldFVzZWRGYXN0TWFsbG9jSGVhcCgpKTsKK30KKworUGVyZlRlc3RS
dW5uZXIuZ2V0VXNlZEZhc3RNYWxsb2NIZWFwID0gZnVuY3Rpb24oKSB7CisgICAgdmFyIHN0YXRz
ID0gd2luZG93LmludGVybmFscy5mYXN0TWFsbG9jU3RhdGlzdGljcygpOworICAgIHJldHVybiBz
dGF0cy5jb21taXR0ZWRWTUJ5dGVzIC0gc3RhdHMuZnJlZUxpc3RCeXRlczsKK30KKworUGVyZlRl
c3RSdW5uZXIuZ2V0VXNlZEpTSGVhcCA9IGZ1bmN0aW9uKCkgeworICAgIHJldHVybiBjb25zb2xl
Lm1lbW9yeS51c2VkSlNIZWFwU2l6ZTsKK30KKworUGVyZlRlc3RSdW5uZXIuZ2V0QW5kUHJpbnRN
ZW1vcnlTdGF0aXN0aWNzID0gZnVuY3Rpb24oKSB7CisgICAgdmFyIGpzTWVtb3J5U3RhdHMgPSBQ
ZXJmVGVzdFJ1bm5lci5jb21wdXRlU3RhdGlzdGljcyhbUGVyZlRlc3RSdW5uZXIuZ2V0VXNlZEpT
SGVhcCgpXSwgImJ5dGVzIik7CisgICAgUGVyZlRlc3RSdW5uZXIucHJpbnRTdGF0aXN0aWNzKGpz
TWVtb3J5U3RhdHMsICJKUyBIZWFwOiIpOworCisgICAgdmFyIGZhc3RNYWxsb2NNZW1vcnlTdGF0
cyA9IFBlcmZUZXN0UnVubmVyLmNvbXB1dGVTdGF0aXN0aWNzKFtQZXJmVGVzdFJ1bm5lci5nZXRV
c2VkRmFzdE1hbGxvY0hlYXAoKV0sICJieXRlcyIpOworICAgIFBlcmZUZXN0UnVubmVyLnByaW50
U3RhdGlzdGljcyhmYXN0TWFsbG9jTWVtb3J5U3RhdHMsICJGYXN0TWFsbG9jOiIpOworfQorCiBQ
ZXJmVGVzdFJ1bm5lci5pZ25vcmVXYXJtVXBBbmRMb2cgPSBmdW5jdGlvbiAocmVzdWx0KSB7CiAg
ICAgdGhpcy5fY29tcGxldGVkUnVucysrOwogCkBAIC0xNjQsNiArMTg4LDcgQEAgUGVyZlRlc3RS
dW5uZXIuaWdub3JlV2FybVVwQW5kTG9nID0gZnVuY3Rpb24gKHJlc3VsdCkgewogICAgICAgICB0
aGlzLmxvZygiSWdub3Jpbmcgd2FybS11cCBydW4gKCIgKyBsYWJlbGVkUmVzdWx0ICsgIikiKTsK
ICAgICBlbHNlIHsKICAgICAgICAgdGhpcy5fcmVzdWx0cy5wdXNoKHJlc3VsdCk7CisgICAgICAg
IHRoaXMuc3RvcmVIZWFwUmVzdWx0cygpOwogICAgICAgICB0aGlzLmxvZyhsYWJlbGVkUmVzdWx0
KTsKICAgICB9CiB9CkBAIC0xNzIsNiArMTk3LDggQEAgUGVyZlRlc3RSdW5uZXIuaW5pdEFuZFN0
YXJ0TG9vcCA9IGZ1bmN0aW9uKCkgewogICAgIHRoaXMuX2NvbXBsZXRlZFJ1bnMgPSAtMTsKICAg
ICB0aGlzLmN1c3RvbVJ1bkZ1bmN0aW9uID0gbnVsbDsKICAgICB0aGlzLl9yZXN1bHRzID0gW107
CisgICAgdGhpcy5fanNIZWFwUmVzdWx0cyA9IFtdOworICAgIHRoaXMuX2Zhc3RNYWxsb2NIZWFw
UmVzdWx0cyA9IFtdOwogICAgIHRoaXMuX2xvZ0xpbmVzID0gd2luZG93LnRlc3RSdW5uZXIgPyBb
XSA6IG51bGw7CiAgICAgdGhpcy5sb2coIlJ1bm5pbmcgIiArIHRoaXMuX3J1bkNvdW50ICsgIiB0
aW1lcyIpOwogICAgIHRoaXMuX3J1bkxvb3AoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxv
ZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA1MzJkNWM4Li40YThhZDZiIDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIw
MTItMDgtMDcgIFpvbHRhbiBIb3J2YXRoICA8em9sdGFuQHdlYmtpdC5vcmc+CisKKyAgICAgICAg
SlNIZWFwIGFuZCBGYXN0TWFsbG9jU3RhdGlzdGljcyBiYXNlZCBtZW1vcnkgbWVhc3VyZW1lbnQg
Zm9yIHBlcmZvcm1hbmNlLXRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD05MDg1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE1lYXN1cmUgdGhlIG1lbW9yeSB1c2FnZSBvZiB0aGUgcGVyZm9ybWFuY2V0
ZXN0cyB3aXRoIHRoZSBoZWxwIG9mIHRoZSB3aW5kb3dzLm1lbW9yeS51c2VkSlNIZWFwU2l6ZQor
ICAgICAgICBvYmplY3QgYW5kIHRoZSB3aW5kb3cuaW50ZXJuYWxzLmZhc3RNYWxsb2NTdGF0aXN0
aWNzKCkgZnVuY3Rpb24gY2FsbC4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcGVyZm9y
bWFuY2VfdGVzdHMvcGVyZnRlc3QucHk6CisgICAgICAgIChQZXJmVGVzdCk6CisgICAgICAgIChQ
ZXJmVGVzdC5wYXJzZV9vdXRwdXQpOgorICAgICAgICAoUGVyZlRlc3Qub3V0cHV0X3N0YXRpc3Rp
Y3MpOgorCiAyMDEyLTA4LTA3ICBObydhbSBSb3NlbnRoYWwgIDxub2FtLnJvc2VudGhhbEBub2tp
YS5jb20+CiAKICAgICAgICAgW1F0XSBNYWtlIGl0IHBvc3NpYmxlIHRvIGJ1aWxkIHdpdGhvdXQg
UXRRdWljawpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wZXJmb3JtYW5jZV90
ZXN0cy9wZXJmdGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcGVyZm9ybWFuY2VfdGVz
dHMvcGVyZnRlc3QucHkKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQppbmRleCA4YWFj
NzhmLi5iZDYwM2QwCi0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcGVyZm9ybWFuY2VfdGVz
dHMvcGVyZnRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wZXJmb3JtYW5jZV90
ZXN0cy9wZXJmdGVzdC5weQpAQCAtMTAzLDggKzEwMyw2IEBAIGNsYXNzIFBlcmZUZXN0KG9iamVj
dCk6CiAgICAgICAgICMgRm9sbG93aW5nIGlzIGZvciBodG1sNS5odG1sCiAgICAgICAgIHJlLmNv
bXBpbGUocmUuZXNjYXBlKCIiIkJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwOi8v
d3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrLyIiIikpXQogCi0gICAg
X3N0YXRpc3RpY3Nfa2V5cyA9IFsnYXZnJywgJ21lZGlhbicsICdzdGRldicsICdtaW4nLCAnbWF4
J10KLQogICAgIGRlZiBfc2hvdWxkX2lnbm9yZV9saW5lX2luX3BhcnNlcl90ZXN0X3Jlc3VsdChz
ZWxmLCBsaW5lKToKICAgICAgICAgaWYgbm90IGxpbmU6CiAgICAgICAgICAgICByZXR1cm4gVHJ1
ZQpAQCAtMTEzLDQwICsxMTEsNTAgQEAgY2xhc3MgUGVyZlRlc3Qob2JqZWN0KToKICAgICAgICAg
ICAgICAgICByZXR1cm4gVHJ1ZQogICAgICAgICByZXR1cm4gRmFsc2UKIAorICAgIF9zdGF0aXN0
aWNzX2tleXMgPSBbJ2F2ZycsICdtZWRpYW4nLCAnc3RkZXYnLCAnbWluJywgJ21heCcsICd1bml0
J10KKyAgICBfcmVzdWx0X2NsYXNzZXMgPSBbJ1RpbWU6JywgJ0pTIEhlYXA6JywgJ0Zhc3RNYWxs
b2M6J10KKwogICAgIGRlZiBwYXJzZV9vdXRwdXQoc2VsZiwgb3V0cHV0KToKICAgICAgICAgZ290
X2FfcmVzdWx0ID0gRmFsc2UKICAgICAgICAgdGVzdF9mYWlsZWQgPSBGYWxzZQotICAgICAgICBy
ZXN1bHRzID0ge30KKyAgICAgICAgcmVzdWx0cyA9IGRpY3QoWyhuYW1lLCBkaWN0KCkpIGZvciBu
YW1lIGluIHNlbGYuX3Jlc3VsdF9jbGFzc2VzXSkKICAgICAgICAgc2NvcmVfcmVnZXggPSByZS5j
b21waWxlKHInXig/UDxrZXk+JyArIHInfCcuam9pbihzZWxmLl9zdGF0aXN0aWNzX2tleXMpICsg
cicpXHMrKD9QPHZhbHVlPlswLTlcLl0rKVxzKig/UDx1bml0Pi4qKScpCiAgICAgICAgIGRlc2Ny
aXB0aW9uX3JlZ2V4ID0gcmUuY29tcGlsZShyJ15EZXNjcmlwdGlvbjogKD9QPGRlc2NyaXB0aW9u
Pi4qKSQnLCByZS5JR05PUkVDQVNFKQogICAgICAgICBkZXNjcmlwdGlvbl9zdHJpbmcgPSAiIgot
ICAgICAgICB1bml0ID0gIm1zIgorICAgICAgICByZXN1bHRfY2xhc3NfcmVnZXggPSByZS5jb21w
aWxlKHInXig/UDxyZXN1bHRjbGFzcz4nICsgcid8Jy5qb2luKHNlbGYuX3Jlc3VsdF9jbGFzc2Vz
KSArICcpJykKIAorICAgICAgICByZXN1bHRfY2xhc3MgPSAiIgogICAgICAgICBmb3IgbGluZSBp
biByZS5zcGxpdCgnXG4nLCBvdXRwdXQudGV4dCk6CiAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9
IGRlc2NyaXB0aW9uX3JlZ2V4Lm1hdGNoKGxpbmUpCiAgICAgICAgICAgICBpZiBkZXNjcmlwdGlv
bjoKICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbl9zdHJpbmcgPSBkZXNjcmlwdGlvbi5ncm91
cCgnZGVzY3JpcHRpb24nKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAKKyAgICAgICAgICAg
IHJlc3VsdF9jbGFzc19tYXRjaCA9IHJlc3VsdF9jbGFzc19yZWdleC5tYXRjaChsaW5lKQorICAg
ICAgICAgICAgaWYgcmVzdWx0X2NsYXNzX21hdGNoOgorICAgICAgICAgICAgICAgIHJlc3VsdF9j
bGFzcyA9IHJlc3VsdF9jbGFzc19tYXRjaC5ncm91cCgncmVzdWx0Y2xhc3MnKQorICAgICAgICAg
ICAgICAgIGNvbnRpbnVlCisKICAgICAgICAgICAgIHNjb3JlID0gc2NvcmVfcmVnZXgubWF0Y2go
bGluZSkKICAgICAgICAgICAgIGlmIHNjb3JlOgotICAgICAgICAgICAgICAgIHJlc3VsdHNbc2Nv
cmUuZ3JvdXAoJ2tleScpXSA9IGZsb2F0KHNjb3JlLmdyb3VwKCd2YWx1ZScpKQotICAgICAgICAg
ICAgICAgIGlmIHNjb3JlLmdyb3VwKCd1bml0Jyk6Ci0gICAgICAgICAgICAgICAgICAgIHVuaXQg
PSBzY29yZS5ncm91cCgndW5pdCcpCisgICAgICAgICAgICAgICAga2V5ID0gc2NvcmUuZ3JvdXAo
J2tleScpCisgICAgICAgICAgICAgICAgdmFsdWUgPSBmbG9hdChzY29yZS5ncm91cCgndmFsdWUn
KSkKKyAgICAgICAgICAgICAgICB1bml0ID0gc2NvcmUuZ3JvdXAoJ3VuaXQnKQorICAgICAgICAg
ICAgICAgIHJlc3VsdHNbcmVzdWx0X2NsYXNzXVsndW5pdCddID0gdW5pdAorICAgICAgICAgICAg
ICAgIHJlc3VsdHNbcmVzdWx0X2NsYXNzXVtrZXldID0gdmFsdWUKICAgICAgICAgICAgICAgICBj
b250aW51ZQogCiAgICAgICAgICAgICBpZiBub3Qgc2VsZi5fc2hvdWxkX2lnbm9yZV9saW5lX2lu
X3BhcnNlcl90ZXN0X3Jlc3VsdChsaW5lKToKICAgICAgICAgICAgICAgICB0ZXN0X2ZhaWxlZCA9
IFRydWUKICAgICAgICAgICAgICAgICBfbG9nLmVycm9yKGxpbmUpCiAKLSAgICAgICAgaWYgdGVz
dF9mYWlsZWQgb3Igc2V0KHNlbGYuX3N0YXRpc3RpY3Nfa2V5cykgIT0gc2V0KHJlc3VsdHMua2V5
cygpKToKKyAgICAgICAgaWYgdGVzdF9mYWlsZWQgb3Igc2V0KHNlbGYuX3N0YXRpc3RpY3Nfa2V5
cykgIT0gc2V0KHJlc3VsdHNbc2VsZi5fcmVzdWx0X2NsYXNzZXNbMF1dLmtleXMoKSk6CiAgICAg
ICAgICAgICByZXR1cm4gTm9uZQogCi0gICAgICAgIHJlc3VsdHNbJ3VuaXQnXSA9IHVuaXQKLQog
ICAgICAgICB0ZXN0X25hbWUgPSByZS5zdWIocidcLlx3KyQnLCAnJywgc2VsZi5fdGVzdF9uYW1l
KQotICAgICAgICBzZWxmLm91dHB1dF9zdGF0aXN0aWNzKHRlc3RfbmFtZSwgcmVzdWx0cywgZGVz
Y3JpcHRpb25fc3RyaW5nKQotCisgICAgICAgIHNlbGYub3V0cHV0X3N0YXRpc3RpY3ModGVzdF9u
YW1lLCByZXN1bHRzW3NlbGYuX3Jlc3VsdF9jbGFzc2VzWzBdXSwgZGVzY3JpcHRpb25fc3RyaW5n
KQorICAgICAgICBzZWxmLm91dHB1dF9zdGF0aXN0aWNzKHRlc3RfbmFtZSArICI6IEpTSGVhcCIs
IHJlc3VsdHNbc2VsZi5fcmVzdWx0X2NsYXNzZXNbMV1dLCBkZXNjcmlwdGlvbl9zdHJpbmcpCisg
ICAgICAgIHNlbGYub3V0cHV0X3N0YXRpc3RpY3ModGVzdF9uYW1lICsgIjogRmFzdE1hbGxvYyIs
IHJlc3VsdHNbc2VsZi5fcmVzdWx0X2NsYXNzZXNbMl1dLCBkZXNjcmlwdGlvbl9zdHJpbmcpCiAg
ICAgICAgIHJldHVybiB7dGVzdF9uYW1lOiByZXN1bHRzfQogCiAgICAgZGVmIG91dHB1dF9zdGF0
aXN0aWNzKHNlbGYsIHRlc3RfbmFtZSwgcmVzdWx0cywgZGVzY3JpcHRpb25fc3RyaW5nKToKQEAg
LTE1NCw3ICsxNjIsNyBAQCBjbGFzcyBQZXJmVGVzdChvYmplY3QpOgogICAgICAgICBpZiBkZXNj
cmlwdGlvbl9zdHJpbmc6CiAgICAgICAgICAgICBfbG9nLmluZm8oJ0RFU0NSSVBUSU9OOiAlcycg
JSBkZXNjcmlwdGlvbl9zdHJpbmcpCiAgICAgICAgIF9sb2cuaW5mbygnUkVTVUxUICVzPSAlcyAl
cycgJSAodGVzdF9uYW1lLnJlcGxhY2UoJy8nLCAnOiAnKSwgcmVzdWx0c1snYXZnJ10sIHVuaXQp
KQotICAgICAgICBfbG9nLmluZm8oJywgJy5qb2luKFsnJXM9ICVzICVzJyAlIChrZXksIHJlc3Vs
dHNba2V5XSwgdW5pdCkgZm9yIGtleSBpbiBzZWxmLl9zdGF0aXN0aWNzX2tleXNbMTpdXSkpCisg
ICAgICAgIF9sb2cuaW5mbygnLCAnLmpvaW4oWyclcz0gJXMgJXMnICUgKGtleSwgcmVzdWx0c1tr
ZXldLCB1bml0KSBmb3Iga2V5IGluIHNlbGYuX3N0YXRpc3RpY3Nfa2V5c1sxOjVdXSkpCiAKIAog
Y2xhc3MgQ2hyb21pdW1TdHlsZVBlcmZUZXN0KFBlcmZUZXN0KToK
</data>
<flag name="review"
          id="166981"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
      

    </bug>

</bugzilla>