<?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>37739</bug_id>
          
          <creation_ts>2010-04-16 17:36:44 -0700</creation_ts>
          <short_desc>new-run-webkit-tests does not report stderr output</short_desc>
          <delta_ts>2011-06-27 15:37:28 -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>All</rep_platform>
          <op_sys>All</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>58690</dependson>
    
    <dependson>58708</dependson>
          <blocked>34984</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Maciej Stachowiak">mjs</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>abarth</cc>
    
    <cc>dpranke</cc>
    
    <cc>eric</cc>
    
    <cc>lforschler</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>213531</commentid>
    <comment_count>0</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2010-04-16 17:36:44 -0700</bug_when>
    <thetext>new-run-webkit-tests does not report stderr output. This could make it slightly harder to diagnose failures.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213544</commentid>
    <comment_count>1</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-04-16 18:15:07 -0700</bug_when>
    <thetext>Yup. Note that the stderr output does get logged to the --verbose log (which has been sufficient for the Chromium tree), but I have no argument against adding this feature for better old-run-webkit-tests compatibility.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213545</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-16 18:18:01 -0700</bug_when>
    <thetext>old-run-webkit-tests keeps  a per-test stderr log.  We mostly ignore this log (a zillion tests print to stderr which shouldn&apos;t really).  However it&apos;s very useful for diagnosing failures (when lower system libraries log things).  Qt and Gtk use it for printing stack traces and all webkit versions log ASSERT failures there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214014</commentid>
    <comment_count>3</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-04-19 07:23:24 -0700</bug_when>
    <thetext>TestShell has stderr output going into the test results. Personally, I think this is better since it means that stderr output doesn&apos;t get ignored. Maybe DRT should do the same?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215420</commentid>
    <comment_count>4</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-04-21 11:22:19 -0700</bug_when>
    <thetext>*** Bug 37422 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>370271</commentid>
    <comment_count>5</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2011-03-20 21:00:37 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; TestShell has stderr output going into the test results. Personally, I think this is better since it means that stderr output doesn&apos;t get ignored. Maybe DRT should do the same?

We used to do this, but sometimes there are random changes in std err that we can&apos;t easily control, for example due to logging by new versions of Mac OS X system frameworks.

Nontheless, when a test does fail, stderr output is often useful to diagnose what happened.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>427807</commentid>
    <comment_count>6</comment_count>
      <attachid>98687</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-06-27 02:17:31 -0700</bug_when>
    <thetext>Created attachment 98687
Work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>427811</commentid>
    <comment_count>7</comment_count>
      <attachid>98690</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-06-27 02:27:33 -0700</bug_when>
    <thetext>Created attachment 98690
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>427812</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-06-27 02:28:18 -0700</bug_when>
    <thetext>I don&apos;t know how to wrote a test for this patch.  If someone would be willing to give me some pointers, I would very much like to write a test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>428069</commentid>
    <comment_count>9</comment_count>
      <attachid>98690</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-06-27 10:28:32 -0700</bug_when>
    <thetext>Comment on attachment 98690
Patch

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

I suspect it would be possible with on of the integration tests to test this.  There must be one which writes to a mock file system?

&gt; Tools/Scripts/webkitpy/layout_tests/layout_package/single_test_runner.py:282
&gt;      def _compare_output_with_reference(self, driver_output1, driver_output2):

I suspect this is an easy function to test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>428232</commentid>
    <comment_count>10</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-06-27 13:38:15 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; I don&apos;t know how to wrote a test for this patch.  If someone would be willing to give me some pointers, I would very much like to write a test.

There&apos;s perhaps three things to verify. The first is that the -stderr.txt file does get written to the output directory. The first is already being done (see test_stderr_is_saved() in run_webkit_tests_integrationtest).

The second is that some indicator was stuffed into the results.json file. I&apos;d probably modify the above test to verify that as well (you&apos;d have to read and take apart the results.json file).

The third is to verify that the results.html javascript will display the links properly if the entry is in the json file; I don&apos;t really know how we test that stuff, but it probably won&apos;t work right with the mock filesystem. Maybe Ojan is already testing this elsewhere?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>428251</commentid>
    <comment_count>11</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-06-27 13:52:36 -0700</bug_when>
    <thetext>Thanks!  I think I&apos;ve got at least a minimal test working.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>428259</commentid>
    <comment_count>12</comment_count>
      <attachid>98779</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-06-27 13:56:13 -0700</bug_when>
    <thetext>Created attachment 98779
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>428264</commentid>
    <comment_count>13</comment_count>
      <attachid>98779</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-06-27 14:00:45 -0700</bug_when>
    <thetext>Comment on attachment 98779
Patch

Does the crash actually affect any of the behavior? I would think it wouldn&apos;t, and you could reuse/modify the test I mentioned rather than adding a new test file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>428269</commentid>
    <comment_count>14</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-06-27 14:05:57 -0700</bug_when>
    <thetext>&gt; Does the crash actually affect any of the behavior? I would think it wouldn&apos;t, and you could reuse/modify the test I mentioned rather than adding a new test file.

My understanding is that I need an unexpected failure for the test to show up in unexpected.json.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>428271</commentid>
    <comment_count>15</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-06-27 14:06:12 -0700</bug_when>
    <thetext>unexpected_results.json</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>428279</commentid>
    <comment_count>16</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-06-27 14:13:22 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; unexpected_results.json

Ah. True.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>428282</commentid>
    <comment_count>17</comment_count>
      <attachid>98779</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-06-27 14:15:49 -0700</bug_when>
    <thetext>Comment on attachment 98779
Patch

I suppose technically you might want to verify that the stderr is showing up in full_results.json as well, but I&apos;m not actually sure if we care about that.

I had kinda lost track of how many different json files we were saving and still using.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>428284</commentid>
    <comment_count>18</comment_count>
      <attachid>98779</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-06-27 14:16:22 -0700</bug_when>
    <thetext>Comment on attachment 98779
Patch

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>428292</commentid>
    <comment_count>19</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-06-27 14:18:53 -0700</bug_when>
    <thetext>&gt; I suppose technically you might want to verify that the stderr is showing up in full_results.json as well, but I&apos;m not actually sure if we care about that.
&gt; 
&gt; I had kinda lost track of how many different json files we were saving and still using.

Yeah, the results blob of data is somewhat out of control.  That seems like something to worry about once we&apos;ve got the blocking issues fixed because it requires someone to wrap their mind around the global problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>428294</commentid>
    <comment_count>20</comment_count>
      <attachid>98779</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-06-27 14:20:04 -0700</bug_when>
    <thetext>Comment on attachment 98779
Patch

Clearing flags on attachment: 98779

Committed r89854: &lt;http://trac.webkit.org/changeset/89854&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>428295</commentid>
    <comment_count>21</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-06-27 14:20:09 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>428376</commentid>
    <comment_count>22</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2011-06-27 15:24:01 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; &gt; I suppose technically you might want to verify that the stderr is showing up in full_results.json as well, but I&apos;m not actually sure if we care about that.
&gt; &gt; 
&gt; &gt; I had kinda lost track of how many different json files we were saving and still using.
&gt; 
&gt; Yeah, the results blob of data is somewhat out of control.  That seems like something to worry about once we&apos;ve got the blocking issues fixed because it requires someone to wrap their mind around the global problem.

FWIW, I&apos;ve been trying to get us to get rid of unexpected_results.json and to only have full_results.json and incremental_results.json, both of which we need. unexpected_results.json is a subset of the data in full_results.json. There&apos;s no longer any benefit to having the former.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>428378</commentid>
    <comment_count>23</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-06-27 15:26:50 -0700</bug_when>
    <thetext>&gt; FWIW, I&apos;ve been trying to get us to get rid of unexpected_results.json and to only have full_results.json and incremental_results.json, both of which we need. unexpected_results.json is a subset of the data in full_results.json. There&apos;s no longer any benefit to having the former.

Sorry if I&apos;ve made your job slightly harder.  :-/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>428380</commentid>
    <comment_count>24</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-06-27 15:28:12 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; (In reply to comment #19)
&gt; &gt; &gt; I suppose technically you might want to verify that the stderr is showing up in full_results.json as well, but I&apos;m not actually sure if we care about that.
&gt; &gt; &gt; 
&gt; &gt; &gt; I had kinda lost track of how many different json files we were saving and still using.
&gt; &gt; 
&gt; &gt; Yeah, the results blob of data is somewhat out of control.  That seems like something to worry about once we&apos;ve got the blocking issues fixed because it requires someone to wrap their mind around the global problem.
&gt; 
&gt; FWIW, I&apos;ve been trying to get us to get rid of unexpected_results.json and to only have full_results.json and incremental_results.json, both of which we need. unexpected_results.json is a subset of the data in full_results.json. There&apos;s no longer any benefit to having the former.

That was what I was thinking, as well. It should be trivial to change the test to pull the data from full_results.json (and then we wouldn&apos;t need the unexpected result, either).

Ojan, we also have the test_times.json file, though, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>428391</commentid>
    <comment_count>25</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2011-06-27 15:37:28 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; Ojan, we also have the test_times.json file, though, right?

Lol. Yeah. We&apos;ll need to keep that one as well.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98687</attachid>
            <date>2011-06-27 02:17:31 -0700</date>
            <delta_ts>2011-06-27 02:27:29 -0700</delta_ts>
            <desc>Work in progress</desc>
            <filename>bug-37739-20110627021730.patch</filename>
            <type>text/plain</type>
            <size>6381</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdl
L21hbmFnZXIucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvbGF5b3V0X3BhY2thZ2UvbWFuYWdlci5weQkocmV2aXNpb24gODk3OTcpCisrKyBUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9tYW5hZ2VyLnB5
CSh3b3JraW5nIGNvcHkpCkBAIC0xMzIsNyArMTMyLDcgQEAgZGVmIHN1bW1hcml6ZV9yZXN1bHRz
KHBvcnRfb2JqLCBleHBlY3RhdAogICAgICAgICAgICAgY29udGludWUKIAogICAgICAgICB0ZXN0
X2RpY3QgPSB7fQotICAgICAgICBpZiBGYWxzZToKKyAgICAgICAgaWYgcmVzdWx0Lmhhc19zdGRl
cnI6CiAgICAgICAgICAgICB0ZXN0X2RpY3RbJ2hhc19zdGRlcnInXSA9IFRydWUKIAogICAgICAg
ICBpZiByZXN1bHRfdHlwZSA9PSB0ZXN0X2V4cGVjdGF0aW9ucy5QQVNTOgpJbmRleDogVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2Uvc2luZ2xlX3Rlc3Rf
cnVubmVyLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL2xheW91dF9wYWNrYWdlL3NpbmdsZV90ZXN0X3J1bm5lci5weQkocmV2aXNpb24gODk3OTcp
CisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9z
aW5nbGVfdGVzdF9ydW5uZXIucHkJKHdvcmtpbmcgY29weSkKQEAgLTE0MCw3ICsxNDAsNyBAQCBj
bGFzcyBTaW5nbGVUZXN0UnVubmVyOgogICAgICAgICAjIEZJWE1FOiBJdCB0aGUgdGVzdCBjcmFz
aGVkIG9yIHRpbWVkIG91dCwgaXQgbWlnaHQgYmUgYmV0dHRlciB0byBhdm9pZAogICAgICAgICAj
IHRvIHdyaXRlIG5ldyBiYXNlbGluZXMuCiAgICAgICAgIHNlbGYuX3NhdmVfYmFzZWxpbmVzKGRy
aXZlcl9vdXRwdXQpCi0gICAgICAgIHJldHVybiBUZXN0UmVzdWx0KHNlbGYuX2ZpbGVuYW1lLCBm
YWlsdXJlcywgZHJpdmVyX291dHB1dC50ZXN0X3RpbWUpCisgICAgICAgIHJldHVybiBUZXN0UmVz
dWx0KHNlbGYuX2ZpbGVuYW1lLCBmYWlsdXJlcywgZHJpdmVyX291dHB1dC50ZXN0X3RpbWUsIGRy
aXZlcl9vdXRwdXQuaGFzX3N0ZGVycigpKQogCiAgICAgZGVmIF9zYXZlX2Jhc2VsaW5lcyhzZWxm
LCBkcml2ZXJfb3V0cHV0KToKICAgICAgICAgIyBBbHRob3VnaCBhbGwgdGVzdF9zaGVsbC9EdW1w
UmVuZGVyVHJlZSBvdXRwdXQgc2hvdWxkIGJlIHV0Zi04LApAQCAtMjIwLDEzICsyMjAsMTMgQEAg
Y2xhc3MgU2luZ2xlVGVzdFJ1bm5lcjoKICAgICAgICAgaWYgZHJpdmVyX291dHB1dC5jcmFzaDoK
ICAgICAgICAgICAgICMgRG9uJ3QgY29udGludWUgYW55IG1vcmUgaWYgd2UgYWxyZWFkeSBoYXZl
IGEgY3Jhc2guCiAgICAgICAgICAgICAjIEluIGNhc2Ugb2YgdGltZW91dHMsIHdlIGNvbnRpbnVl
IHNpbmNlIHdlIHN0aWxsIHdhbnQgdG8gc2VlIHRoZSB0ZXh0IGFuZCBpbWFnZSBvdXRwdXQuCi0g
ICAgICAgICAgICByZXR1cm4gVGVzdFJlc3VsdChzZWxmLl9maWxlbmFtZSwgZmFpbHVyZXMsIGRy
aXZlcl9vdXRwdXQudGVzdF90aW1lKQorICAgICAgICAgICAgcmV0dXJuIFRlc3RSZXN1bHQoc2Vs
Zi5fZmlsZW5hbWUsIGZhaWx1cmVzLCBkcml2ZXJfb3V0cHV0LnRlc3RfdGltZSwgZHJpdmVyX291
dHB1dC5oYXNfc3RkZXJyKCkpCiAKICAgICAgICAgZmFpbHVyZXMuZXh0ZW5kKHNlbGYuX2NvbXBh
cmVfdGV4dChkcml2ZXJfb3V0cHV0LnRleHQsIGV4cGVjdGVkX2RyaXZlcl9vdXRwdXQudGV4dCkp
CiAgICAgICAgIGZhaWx1cmVzLmV4dGVuZChzZWxmLl9jb21wYXJlX2F1ZGlvKGRyaXZlcl9vdXRw
dXQuYXVkaW8sIGV4cGVjdGVkX2RyaXZlcl9vdXRwdXQuYXVkaW8pKQogICAgICAgICBpZiBzZWxm
Ll9vcHRpb25zLnBpeGVsX3Rlc3RzOgogICAgICAgICAgICAgZmFpbHVyZXMuZXh0ZW5kKHNlbGYu
X2NvbXBhcmVfaW1hZ2UoZHJpdmVyX291dHB1dCwgZXhwZWN0ZWRfZHJpdmVyX291dHB1dCkpCi0g
ICAgICAgIHJldHVybiBUZXN0UmVzdWx0KHNlbGYuX2ZpbGVuYW1lLCBmYWlsdXJlcywgZHJpdmVy
X291dHB1dC50ZXN0X3RpbWUpCisgICAgICAgIHJldHVybiBUZXN0UmVzdWx0KHNlbGYuX2ZpbGVu
YW1lLCBmYWlsdXJlcywgZHJpdmVyX291dHB1dC50ZXN0X3RpbWUsIGRyaXZlcl9vdXRwdXQuaGFz
X3N0ZGVycigpKQogCiAgICAgZGVmIF9jb21wYXJlX3RleHQoc2VsZiwgYWN0dWFsX3RleHQsIGV4
cGVjdGVkX3RleHQpOgogICAgICAgICBmYWlsdXJlcyA9IFtdCkBAIC0yODEsMTggKzI4MSwxOSBA
QCBjbGFzcyBTaW5nbGVUZXN0UnVubmVyOgogCiAgICAgZGVmIF9jb21wYXJlX291dHB1dF93aXRo
X3JlZmVyZW5jZShzZWxmLCBkcml2ZXJfb3V0cHV0MSwgZHJpdmVyX291dHB1dDIpOgogICAgICAg
ICB0b3RhbF90ZXN0X3RpbWUgPSBkcml2ZXJfb3V0cHV0MS50ZXN0X3RpbWUgKyBkcml2ZXJfb3V0
cHV0Mi50ZXN0X3RpbWUKKyAgICAgICAgaGFzX3N0ZGVyciA9IGRyaXZlcl9vdXRwdXQxLmhhc19z
dGRlcnIoKSBvciBkcml2ZXJfb3V0cHV0Mi5oYXNfc3RkZXJyKCkKICAgICAgICAgZmFpbHVyZXMg
PSBbXQogICAgICAgICBmYWlsdXJlcy5leHRlbmQoc2VsZi5faGFuZGxlX2Vycm9yKGRyaXZlcl9v
dXRwdXQxKSkKICAgICAgICAgaWYgZmFpbHVyZXM6CiAgICAgICAgICAgICAjIERvbid0IGNvbnRp
bnVlIGFueSBtb3JlIGlmIHdlIGFscmVhZHkgaGF2ZSBjcmFzaCBvciB0aW1lb3V0LgotICAgICAg
ICAgICAgcmV0dXJuIFRlc3RSZXN1bHQoc2VsZi5fZmlsZW5hbWUsIGZhaWx1cmVzLCB0b3RhbF90
ZXN0X3RpbWUpCisgICAgICAgICAgICByZXR1cm4gVGVzdFJlc3VsdChzZWxmLl9maWxlbmFtZSwg
ZmFpbHVyZXMsIHRvdGFsX3Rlc3RfdGltZSwgaGFzX3N0ZGVycikKICAgICAgICAgZmFpbHVyZXMu
ZXh0ZW5kKHNlbGYuX2hhbmRsZV9lcnJvcihkcml2ZXJfb3V0cHV0MiwgcmVmZXJlbmNlX2ZpbGVu
YW1lPXNlbGYuX3JlZmVyZW5jZV9maWxlbmFtZSkpCiAgICAgICAgIGlmIGZhaWx1cmVzOgotICAg
ICAgICAgICAgcmV0dXJuIFRlc3RSZXN1bHQoc2VsZi5fZmlsZW5hbWUsIGZhaWx1cmVzLCB0b3Rh
bF90ZXN0X3RpbWUpCisgICAgICAgICAgICByZXR1cm4gVGVzdFJlc3VsdChzZWxmLl9maWxlbmFt
ZSwgZmFpbHVyZXMsIHRvdGFsX3Rlc3RfdGltZSwgaGFzX3N0ZGVycikKIAogICAgICAgICBpZiBz
ZWxmLl9pc19taXNtYXRjaF9yZWZ0ZXN0OgogICAgICAgICAgICAgaWYgZHJpdmVyX291dHB1dDEu
aW1hZ2VfaGFzaCA9PSBkcml2ZXJfb3V0cHV0Mi5pbWFnZV9oYXNoOgogICAgICAgICAgICAgICAg
IGZhaWx1cmVzLmFwcGVuZCh0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVSZWZ0ZXN0TWlzbWF0Y2hEaWRO
b3RPY2N1cigpKQogICAgICAgICBlbGlmIGRyaXZlcl9vdXRwdXQxLmltYWdlX2hhc2ggIT0gZHJp
dmVyX291dHB1dDIuaW1hZ2VfaGFzaDoKICAgICAgICAgICAgIGZhaWx1cmVzLmFwcGVuZCh0ZXN0
X2ZhaWx1cmVzLkZhaWx1cmVSZWZ0ZXN0TWlzbWF0Y2goKSkKLSAgICAgICAgcmV0dXJuIFRlc3RS
ZXN1bHQoc2VsZi5fZmlsZW5hbWUsIGZhaWx1cmVzLCB0b3RhbF90ZXN0X3RpbWUpCisgICAgICAg
IHJldHVybiBUZXN0UmVzdWx0KHNlbGYuX2ZpbGVuYW1lLCBmYWlsdXJlcywgdG90YWxfdGVzdF90
aW1lLCBoYXNfc3RkZXJyKQpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvbGF5b3V0X3BhY2thZ2UvdGVzdF9yZXN1bHRfd3JpdGVyLnB5Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3Rlc3RfcmVz
dWx0X3dyaXRlci5weQkocmV2aXNpb24gODk3OTcpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS90ZXN0X3Jlc3VsdF93cml0ZXIucHkJKHdvcmtp
bmcgY29weSkKQEAgLTk5LDYgKzk5LDcgQEAgY2xhc3MgVGVzdFJlc3VsdFdyaXRlcihvYmplY3Qp
OgogICAgIEZJTEVOQU1FX1NVRkZJWF9BQ1RVQUwgPSAiLWFjdHVhbCIKICAgICBGSUxFTkFNRV9T
VUZGSVhfRVhQRUNURUQgPSAiLWV4cGVjdGVkIgogICAgIEZJTEVOQU1FX1NVRkZJWF9ESUZGID0g
Ii1kaWZmIgorICAgIEZJTEVOQU1FX1NVRkZJWF9TVERFUlIgPSAiLXN0ZGVyciIKICAgICBGSUxF
TkFNRV9TVUZGSVhfV0RJRkYgPSAiLXdkaWZmLmh0bWwiCiAgICAgRklMRU5BTUVfU1VGRklYX1BS
RVRUWV9QQVRDSCA9ICItcHJldHR5LWRpZmYuaHRtbCIKICAgICBGSUxFTkFNRV9TVUZGSVhfSU1B
R0VfRElGRiA9ICItZGlmZi5wbmciCkBAIC0xNjEsNyArMTYyLDcgQEAgY2xhc3MgVGVzdFJlc3Vs
dFdyaXRlcihvYmplY3QpOgogCiAgICAgZGVmIHdyaXRlX3N0ZGVycihzZWxmLCBlcnJvcik6CiAg
ICAgICAgIGZzID0gc2VsZi5fcG9ydC5fZmlsZXN5c3RlbQotICAgICAgICBmaWxlbmFtZSA9IHNl
bGYub3V0cHV0X2ZpbGVuYW1lKCItc3RkZXJyLnR4dCIpCisgICAgICAgIGZpbGVuYW1lID0gc2Vs
Zi5vdXRwdXRfZmlsZW5hbWUoc2VsZi5GSUxFTkFNRV9TVUZGSVhfU1RERVJSICsgIi50eHQiKQog
ICAgICAgICBmcy5tYXliZV9tYWtlX2RpcmVjdG9yeShmcy5kaXJuYW1lKGZpbGVuYW1lKSkKICAg
ICAgICAgZnMud3JpdGVfYmluYXJ5X2ZpbGUoZmlsZW5hbWUsIGVycm9yKQogCkluZGV4OiBUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS90ZXN0X3Jlc3Vs
dHMucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
bGF5b3V0X3BhY2thZ2UvdGVzdF9yZXN1bHRzLnB5CShyZXZpc2lvbiA4OTc5NykKKysrIFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3Rlc3RfcmVzdWx0
cy5weQkod29ya2luZyBjb3B5KQpAQCAtMzgsMTEgKzM4LDEyIEBAIGNsYXNzIFRlc3RSZXN1bHQo
b2JqZWN0KToKICAgICBkZWYgbG9hZHMoc3RyKToKICAgICAgICAgcmV0dXJuIGNQaWNrbGUubG9h
ZHMoc3RyKQogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGZpbGVuYW1lLCBmYWlsdXJlcz1Ob25l
LCB0ZXN0X3J1bl90aW1lPU5vbmUpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmaWxlbmFtZSwg
ZmFpbHVyZXM9Tm9uZSwgdGVzdF9ydW5fdGltZT1Ob25lLCBoYXNfc3RkZXJyPUZhbHNlKToKICAg
ICAgICAgIyBGSVhNRTogcy9maWxlbmFtZS9uYW1lIHRvIGJlIGNvbnNpc3RlbnQgd2l0aCB0aGUg
cmVzdCBvZiBsYXlvdXRfcGFja2FnZS4KICAgICAgICAgc2VsZi5maWxlbmFtZSA9IGZpbGVuYW1l
CiAgICAgICAgIHNlbGYuZmFpbHVyZXMgPSBmYWlsdXJlcyBvciBbXQogICAgICAgICBzZWxmLnRl
c3RfcnVuX3RpbWUgPSB0ZXN0X3J1bl90aW1lIG9yIDAKKyAgICAgICAgc2VsZi5oYXNfc3RkZXJy
ID0gaGFzX3N0ZGVycgogICAgICAgICAjIEZJWE1FOiBTZXR0aW5nIHRoaXMgaW4gdGhlIGNvbnN0
cnVjdG9yIG1ha2VzIHRoaXMgY2xhc3MgaGFyZCB0byBtdXRhdGUuCiAgICAgICAgIHNlbGYudHlw
ZSA9IHRlc3RfZmFpbHVyZXMuZGV0ZXJtaW5lX3Jlc3VsdF90eXBlKGZhaWx1cmVzKQogCkluZGV4
OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlLnB5
CShyZXZpc2lvbiA4OTc5OCkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3BvcnQvYmFzZS5weQkod29ya2luZyBjb3B5KQpAQCAtOTYyLDYgKzk2Miw5IEBAIGNsYXNzIERy
aXZlck91dHB1dChvYmplY3QpOgogICAgICAgICBzZWxmLnRpbWVvdXQgPSB0aW1lb3V0CiAgICAg
ICAgIHNlbGYuZXJyb3IgPSBlcnJvcgogCisgICAgZGVmIGhhc19zdGRlcnIoc2VsZik6CisgICAg
ICAgIHJldHVybiBib29sKHNlbGYuZXJyb3IpCisKIAogY2xhc3MgRHJpdmVyOgogICAgICIiIkFi
c3RyYWN0IGludGVyZmFjZSBmb3IgdGhlIER1bXBSZW5kZXJUcmVlIGludGVyZmFjZS4iIiIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98690</attachid>
            <date>2011-06-27 02:27:33 -0700</date>
            <delta_ts>2011-06-27 13:56:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-37739-20110627022732.patch</filename>
            <type>text/plain</type>
            <size>7393</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDg5ODA5KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMjAgQEAKKzIwMTEtMDYtMjcgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBuZXctcnVuLXdl
YmtpdC10ZXN0cyBkb2VzIG5vdCByZXBvcnQgc3RkZXJyIG91dHB1dAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzc3MzkKKworICAgICAgICBBbG1vc3Qg
YWxsIHRoZSBpbmZyYXN0cnVjdHVyZSBhcHBlYXJzIHRvIGJlIGluIHBsYWNlIHRvIHJlcG9ydCBz
dGRlcnIKKyAgICAgICAgaW4gcmVzdWx0cy5odG1sLiAgV2UganVzdCBuZWVkIHRvIHdpcmUgdXAg
YSBib29sIHRvIHRlbGwgcmVzdWx0cy5odG1sCisgICAgICAgIHRvIGNyZWF0ZSB0aGUgaHlwZXJs
aW5rLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3Bh
Y2thZ2UvbWFuYWdlci5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9sYXlvdXRfcGFja2FnZS9zaW5nbGVfdGVzdF9ydW5uZXIucHk6CisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvdGVzdF9yZXN1bHRfd3JpdGVy
LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNr
YWdlL3Rlc3RfcmVzdWx0cy5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L2Jhc2UucHk6CisKIDIwMTEtMDYtMjcgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJr
aXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCkluZGV4OiBUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9tYW5hZ2VyLnB5Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9w
YWNrYWdlL21hbmFnZXIucHkJKHJldmlzaW9uIDg5Nzk3KQorKysgVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvbWFuYWdlci5weQkod29ya2luZyBjb3B5
KQpAQCAtMTMyLDcgKzEzMiw3IEBAIGRlZiBzdW1tYXJpemVfcmVzdWx0cyhwb3J0X29iaiwgZXhw
ZWN0YXQKICAgICAgICAgICAgIGNvbnRpbnVlCiAKICAgICAgICAgdGVzdF9kaWN0ID0ge30KLSAg
ICAgICAgaWYgRmFsc2U6CisgICAgICAgIGlmIHJlc3VsdC5oYXNfc3RkZXJyOgogICAgICAgICAg
ICAgdGVzdF9kaWN0WydoYXNfc3RkZXJyJ10gPSBUcnVlCiAKICAgICAgICAgaWYgcmVzdWx0X3R5
cGUgPT0gdGVzdF9leHBlY3RhdGlvbnMuUEFTUzoKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3NpbmdsZV90ZXN0X3J1bm5lci5weQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFj
a2FnZS9zaW5nbGVfdGVzdF9ydW5uZXIucHkJKHJldmlzaW9uIDg5Nzk3KQorKysgVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2Uvc2luZ2xlX3Rlc3RfcnVu
bmVyLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0xNDAsNyArMTQwLDcgQEAgY2xhc3MgU2luZ2xlVGVz
dFJ1bm5lcjoKICAgICAgICAgIyBGSVhNRTogSXQgdGhlIHRlc3QgY3Jhc2hlZCBvciB0aW1lZCBv
dXQsIGl0IG1pZ2h0IGJlIGJldHR0ZXIgdG8gYXZvaWQKICAgICAgICAgIyB0byB3cml0ZSBuZXcg
YmFzZWxpbmVzLgogICAgICAgICBzZWxmLl9zYXZlX2Jhc2VsaW5lcyhkcml2ZXJfb3V0cHV0KQot
ICAgICAgICByZXR1cm4gVGVzdFJlc3VsdChzZWxmLl9maWxlbmFtZSwgZmFpbHVyZXMsIGRyaXZl
cl9vdXRwdXQudGVzdF90aW1lKQorICAgICAgICByZXR1cm4gVGVzdFJlc3VsdChzZWxmLl9maWxl
bmFtZSwgZmFpbHVyZXMsIGRyaXZlcl9vdXRwdXQudGVzdF90aW1lLCBkcml2ZXJfb3V0cHV0Lmhh
c19zdGRlcnIoKSkKIAogICAgIGRlZiBfc2F2ZV9iYXNlbGluZXMoc2VsZiwgZHJpdmVyX291dHB1
dCk6CiAgICAgICAgICMgQWx0aG91Z2ggYWxsIHRlc3Rfc2hlbGwvRHVtcFJlbmRlclRyZWUgb3V0
cHV0IHNob3VsZCBiZSB1dGYtOCwKQEAgLTIyMCwxMyArMjIwLDEzIEBAIGNsYXNzIFNpbmdsZVRl
c3RSdW5uZXI6CiAgICAgICAgIGlmIGRyaXZlcl9vdXRwdXQuY3Jhc2g6CiAgICAgICAgICAgICAj
IERvbid0IGNvbnRpbnVlIGFueSBtb3JlIGlmIHdlIGFscmVhZHkgaGF2ZSBhIGNyYXNoLgogICAg
ICAgICAgICAgIyBJbiBjYXNlIG9mIHRpbWVvdXRzLCB3ZSBjb250aW51ZSBzaW5jZSB3ZSBzdGls
bCB3YW50IHRvIHNlZSB0aGUgdGV4dCBhbmQgaW1hZ2Ugb3V0cHV0LgotICAgICAgICAgICAgcmV0
dXJuIFRlc3RSZXN1bHQoc2VsZi5fZmlsZW5hbWUsIGZhaWx1cmVzLCBkcml2ZXJfb3V0cHV0LnRl
c3RfdGltZSkKKyAgICAgICAgICAgIHJldHVybiBUZXN0UmVzdWx0KHNlbGYuX2ZpbGVuYW1lLCBm
YWlsdXJlcywgZHJpdmVyX291dHB1dC50ZXN0X3RpbWUsIGRyaXZlcl9vdXRwdXQuaGFzX3N0ZGVy
cigpKQogCiAgICAgICAgIGZhaWx1cmVzLmV4dGVuZChzZWxmLl9jb21wYXJlX3RleHQoZHJpdmVy
X291dHB1dC50ZXh0LCBleHBlY3RlZF9kcml2ZXJfb3V0cHV0LnRleHQpKQogICAgICAgICBmYWls
dXJlcy5leHRlbmQoc2VsZi5fY29tcGFyZV9hdWRpbyhkcml2ZXJfb3V0cHV0LmF1ZGlvLCBleHBl
Y3RlZF9kcml2ZXJfb3V0cHV0LmF1ZGlvKSkKICAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5waXhl
bF90ZXN0czoKICAgICAgICAgICAgIGZhaWx1cmVzLmV4dGVuZChzZWxmLl9jb21wYXJlX2ltYWdl
KGRyaXZlcl9vdXRwdXQsIGV4cGVjdGVkX2RyaXZlcl9vdXRwdXQpKQotICAgICAgICByZXR1cm4g
VGVzdFJlc3VsdChzZWxmLl9maWxlbmFtZSwgZmFpbHVyZXMsIGRyaXZlcl9vdXRwdXQudGVzdF90
aW1lKQorICAgICAgICByZXR1cm4gVGVzdFJlc3VsdChzZWxmLl9maWxlbmFtZSwgZmFpbHVyZXMs
IGRyaXZlcl9vdXRwdXQudGVzdF90aW1lLCBkcml2ZXJfb3V0cHV0Lmhhc19zdGRlcnIoKSkKIAog
ICAgIGRlZiBfY29tcGFyZV90ZXh0KHNlbGYsIGFjdHVhbF90ZXh0LCBleHBlY3RlZF90ZXh0KToK
ICAgICAgICAgZmFpbHVyZXMgPSBbXQpAQCAtMjgxLDE4ICsyODEsMTkgQEAgY2xhc3MgU2luZ2xl
VGVzdFJ1bm5lcjoKIAogICAgIGRlZiBfY29tcGFyZV9vdXRwdXRfd2l0aF9yZWZlcmVuY2Uoc2Vs
ZiwgZHJpdmVyX291dHB1dDEsIGRyaXZlcl9vdXRwdXQyKToKICAgICAgICAgdG90YWxfdGVzdF90
aW1lID0gZHJpdmVyX291dHB1dDEudGVzdF90aW1lICsgZHJpdmVyX291dHB1dDIudGVzdF90aW1l
CisgICAgICAgIGhhc19zdGRlcnIgPSBkcml2ZXJfb3V0cHV0MS5oYXNfc3RkZXJyKCkgb3IgZHJp
dmVyX291dHB1dDIuaGFzX3N0ZGVycigpCiAgICAgICAgIGZhaWx1cmVzID0gW10KICAgICAgICAg
ZmFpbHVyZXMuZXh0ZW5kKHNlbGYuX2hhbmRsZV9lcnJvcihkcml2ZXJfb3V0cHV0MSkpCiAgICAg
ICAgIGlmIGZhaWx1cmVzOgogICAgICAgICAgICAgIyBEb24ndCBjb250aW51ZSBhbnkgbW9yZSBp
ZiB3ZSBhbHJlYWR5IGhhdmUgY3Jhc2ggb3IgdGltZW91dC4KLSAgICAgICAgICAgIHJldHVybiBU
ZXN0UmVzdWx0KHNlbGYuX2ZpbGVuYW1lLCBmYWlsdXJlcywgdG90YWxfdGVzdF90aW1lKQorICAg
ICAgICAgICAgcmV0dXJuIFRlc3RSZXN1bHQoc2VsZi5fZmlsZW5hbWUsIGZhaWx1cmVzLCB0b3Rh
bF90ZXN0X3RpbWUsIGhhc19zdGRlcnIpCiAgICAgICAgIGZhaWx1cmVzLmV4dGVuZChzZWxmLl9o
YW5kbGVfZXJyb3IoZHJpdmVyX291dHB1dDIsIHJlZmVyZW5jZV9maWxlbmFtZT1zZWxmLl9yZWZl
cmVuY2VfZmlsZW5hbWUpKQogICAgICAgICBpZiBmYWlsdXJlczoKLSAgICAgICAgICAgIHJldHVy
biBUZXN0UmVzdWx0KHNlbGYuX2ZpbGVuYW1lLCBmYWlsdXJlcywgdG90YWxfdGVzdF90aW1lKQor
ICAgICAgICAgICAgcmV0dXJuIFRlc3RSZXN1bHQoc2VsZi5fZmlsZW5hbWUsIGZhaWx1cmVzLCB0
b3RhbF90ZXN0X3RpbWUsIGhhc19zdGRlcnIpCiAKICAgICAgICAgaWYgc2VsZi5faXNfbWlzbWF0
Y2hfcmVmdGVzdDoKICAgICAgICAgICAgIGlmIGRyaXZlcl9vdXRwdXQxLmltYWdlX2hhc2ggPT0g
ZHJpdmVyX291dHB1dDIuaW1hZ2VfaGFzaDoKICAgICAgICAgICAgICAgICBmYWlsdXJlcy5hcHBl
bmQodGVzdF9mYWlsdXJlcy5GYWlsdXJlUmVmdGVzdE1pc21hdGNoRGlkTm90T2NjdXIoKSkKICAg
ICAgICAgZWxpZiBkcml2ZXJfb3V0cHV0MS5pbWFnZV9oYXNoICE9IGRyaXZlcl9vdXRwdXQyLmlt
YWdlX2hhc2g6CiAgICAgICAgICAgICBmYWlsdXJlcy5hcHBlbmQodGVzdF9mYWlsdXJlcy5GYWls
dXJlUmVmdGVzdE1pc21hdGNoKCkpCi0gICAgICAgIHJldHVybiBUZXN0UmVzdWx0KHNlbGYuX2Zp
bGVuYW1lLCBmYWlsdXJlcywgdG90YWxfdGVzdF90aW1lKQorICAgICAgICByZXR1cm4gVGVzdFJl
c3VsdChzZWxmLl9maWxlbmFtZSwgZmFpbHVyZXMsIHRvdGFsX3Rlc3RfdGltZSwgaGFzX3N0ZGVy
cikKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNr
YWdlL3Rlc3RfcmVzdWx0X3dyaXRlci5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS90ZXN0X3Jlc3VsdF93cml0ZXIucHkJ
KHJldmlzaW9uIDg5Nzk3KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
bGF5b3V0X3BhY2thZ2UvdGVzdF9yZXN1bHRfd3JpdGVyLnB5CSh3b3JraW5nIGNvcHkpCkBAIC05
OSw2ICs5OSw3IEBAIGNsYXNzIFRlc3RSZXN1bHRXcml0ZXIob2JqZWN0KToKICAgICBGSUxFTkFN
RV9TVUZGSVhfQUNUVUFMID0gIi1hY3R1YWwiCiAgICAgRklMRU5BTUVfU1VGRklYX0VYUEVDVEVE
ID0gIi1leHBlY3RlZCIKICAgICBGSUxFTkFNRV9TVUZGSVhfRElGRiA9ICItZGlmZiIKKyAgICBG
SUxFTkFNRV9TVUZGSVhfU1RERVJSID0gIi1zdGRlcnIiCiAgICAgRklMRU5BTUVfU1VGRklYX1dE
SUZGID0gIi13ZGlmZi5odG1sIgogICAgIEZJTEVOQU1FX1NVRkZJWF9QUkVUVFlfUEFUQ0ggPSAi
LXByZXR0eS1kaWZmLmh0bWwiCiAgICAgRklMRU5BTUVfU1VGRklYX0lNQUdFX0RJRkYgPSAiLWRp
ZmYucG5nIgpAQCAtMTYxLDcgKzE2Miw3IEBAIGNsYXNzIFRlc3RSZXN1bHRXcml0ZXIob2JqZWN0
KToKIAogICAgIGRlZiB3cml0ZV9zdGRlcnIoc2VsZiwgZXJyb3IpOgogICAgICAgICBmcyA9IHNl
bGYuX3BvcnQuX2ZpbGVzeXN0ZW0KLSAgICAgICAgZmlsZW5hbWUgPSBzZWxmLm91dHB1dF9maWxl
bmFtZSgiLXN0ZGVyci50eHQiKQorICAgICAgICBmaWxlbmFtZSA9IHNlbGYub3V0cHV0X2ZpbGVu
YW1lKHNlbGYuRklMRU5BTUVfU1VGRklYX1NUREVSUiArICIudHh0IikKICAgICAgICAgZnMubWF5
YmVfbWFrZV9kaXJlY3RvcnkoZnMuZGlybmFtZShmaWxlbmFtZSkpCiAgICAgICAgIGZzLndyaXRl
X2JpbmFyeV9maWxlKGZpbGVuYW1lLCBlcnJvcikKIApJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvdGVzdF9yZXN1bHRzLnB5Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdl
L3Rlc3RfcmVzdWx0cy5weQkocmV2aXNpb24gODk3OTcpCisrKyBUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS90ZXN0X3Jlc3VsdHMucHkJKHdvcmtpbmcg
Y29weSkKQEAgLTM4LDExICszOCwxMiBAQCBjbGFzcyBUZXN0UmVzdWx0KG9iamVjdCk6CiAgICAg
ZGVmIGxvYWRzKHN0cik6CiAgICAgICAgIHJldHVybiBjUGlja2xlLmxvYWRzKHN0cikKIAotICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBmaWxlbmFtZSwgZmFpbHVyZXM9Tm9uZSwgdGVzdF9ydW5fdGlt
ZT1Ob25lKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZmlsZW5hbWUsIGZhaWx1cmVzPU5vbmUs
IHRlc3RfcnVuX3RpbWU9Tm9uZSwgaGFzX3N0ZGVycj1GYWxzZSk6CiAgICAgICAgICMgRklYTUU6
IHMvZmlsZW5hbWUvbmFtZSB0byBiZSBjb25zaXN0ZW50IHdpdGggdGhlIHJlc3Qgb2YgbGF5b3V0
X3BhY2thZ2UuCiAgICAgICAgIHNlbGYuZmlsZW5hbWUgPSBmaWxlbmFtZQogICAgICAgICBzZWxm
LmZhaWx1cmVzID0gZmFpbHVyZXMgb3IgW10KICAgICAgICAgc2VsZi50ZXN0X3J1bl90aW1lID0g
dGVzdF9ydW5fdGltZSBvciAwCisgICAgICAgIHNlbGYuaGFzX3N0ZGVyciA9IGhhc19zdGRlcnIK
ICAgICAgICAgIyBGSVhNRTogU2V0dGluZyB0aGlzIGluIHRoZSBjb25zdHJ1Y3RvciBtYWtlcyB0
aGlzIGNsYXNzIGhhcmQgdG8gbXV0YXRlLgogICAgICAgICBzZWxmLnR5cGUgPSB0ZXN0X2ZhaWx1
cmVzLmRldGVybWluZV9yZXN1bHRfdHlwZShmYWlsdXJlcykKIApJbmRleDogVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlLnB5Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weQkocmV2aXNpb24gODk3
OTgpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkJ
KHdvcmtpbmcgY29weSkKQEAgLTk2Miw2ICs5NjIsOSBAQCBjbGFzcyBEcml2ZXJPdXRwdXQob2Jq
ZWN0KToKICAgICAgICAgc2VsZi50aW1lb3V0ID0gdGltZW91dAogICAgICAgICBzZWxmLmVycm9y
ID0gZXJyb3IKIAorICAgIGRlZiBoYXNfc3RkZXJyKHNlbGYpOgorICAgICAgICByZXR1cm4gYm9v
bChzZWxmLmVycm9yKQorCiAKIGNsYXNzIERyaXZlcjoKICAgICAiIiJBYnN0cmFjdCBpbnRlcmZh
Y2UgZm9yIHRoZSBEdW1wUmVuZGVyVHJlZSBpbnRlcmZhY2UuIiIiCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98779</attachid>
            <date>2011-06-27 13:56:13 -0700</date>
            <delta_ts>2011-06-27 14:20:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-37739-20110627135612.patch</filename>
            <type>text/plain</type>
            <size>10158</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDg5ODQ4KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMjAgQEAKKzIwMTEtMDYtMjcgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBuZXctcnVuLXdl
YmtpdC10ZXN0cyBkb2VzIG5vdCByZXBvcnQgc3RkZXJyIG91dHB1dAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzc3MzkKKworICAgICAgICBBbG1vc3Qg
YWxsIHRoZSBpbmZyYXN0cnVjdHVyZSBhcHBlYXJzIHRvIGJlIGluIHBsYWNlIHRvIHJlcG9ydCBz
dGRlcnIKKyAgICAgICAgaW4gcmVzdWx0cy5odG1sLiAgV2UganVzdCBuZWVkIHRvIHdpcmUgdXAg
YSBib29sIHRvIHRlbGwgcmVzdWx0cy5odG1sCisgICAgICAgIHRvIGNyZWF0ZSB0aGUgaHlwZXJs
aW5rLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3Bh
Y2thZ2UvbWFuYWdlci5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9sYXlvdXRfcGFja2FnZS9zaW5nbGVfdGVzdF9ydW5uZXIucHk6CisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvdGVzdF9yZXN1bHRfd3JpdGVy
LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNr
YWdlL3Rlc3RfcmVzdWx0cy5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L2Jhc2UucHk6CisKIDIwMTEtMDYtMjcgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJl
dmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI4
OTgzNC4KSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJr
aXRfdGVzdHNfaW50ZWdyYXRpb250ZXN0LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHNfaW50ZWdyYXRpb250ZXN0LnB5
CShyZXZpc2lvbiA4OTg0OCkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3J1bl93ZWJraXRfdGVzdHNfaW50ZWdyYXRpb250ZXN0LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0z
NDgsNyArMzQ4LDcgQEAgY2xhc3MgTWFpblRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAg
ZGVmIHRlc3RfcnVuX3NpbmdseV9hY3R1YWxseV9ydW5zX3Rlc3RzKHNlbGYpOgogICAgICAgICBy
ZXMsIF8sIF8sIF8gPSBsb2dnaW5nX3J1bihbJy0tcnVuLXNpbmdseScsICdmYWlsdXJlcy91bmV4
cGVjdGVkJ10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlcywgNSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbHMocmVzLCA2KQogCiAgICAgZGVmIHRlc3Rfc2luZ2xlX2ZpbGUoc2VsZik6
CiAgICAgICAgICMgRklYTUU6IFdlIHNob3VsZCBjb25zaWRlciByZXBsYWNpbmcgbW9yZSBvZiB0
aGUgZ2V0X3Rlc3RzX3J1bigpLXN0eWxlIHRlc3RzCkBAIC0zOTgsMTMgKzM5OCwyMyBAQCBjbGFz
cyBNYWluVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKICAgICAgICAgIyBVcGRhdGUgdGhpcyBt
YWdpYyBudW1iZXIgaWYgeW91IGFkZCBhbiB1bmV4cGVjdGVkIHRlc3QgdG8gd2Via2l0cHkubGF5
b3V0X3Rlc3RzLnBvcnQudGVzdAogICAgICAgICAjIEZJWE1FOiBJdCdzIG5pY2UgdG8gaGF2ZSBh
IHJvdXRpbmUgaW4gcG9ydC90ZXN0LnB5IHRoYXQgcmV0dXJucyB0aGlzIG51bWJlci4KLSAgICAg
ICAgdW5leHBlY3RlZF90ZXN0c19jb3VudCA9IDUKKyAgICAgICAgdW5leHBlY3RlZF90ZXN0c19j
b3VudCA9IDYKIAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcywgdW5leHBlY3RlZF90ZXN0
c19jb3VudCkKICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShvdXQuZW1wdHkoKSkKICAgICAgICAg
c2VsZi5hc3NlcnRGYWxzZShlcnIuZW1wdHkoKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh1
c2VyLm9wZW5lZF91cmxzLCBbJy90bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9yZXN1bHRzLmh0bWwn
XSkKIAorICAgIGRlZiB0ZXN0X2NyYXNoX3dpdGhfc3RkZXJyKHNlbGYpOgorICAgICAgICBmcyA9
IHBvcnQudW5pdF90ZXN0X2ZpbGVzeXN0ZW0oKQorICAgICAgICByZXMsIGJ1aWxkYm90X291dHB1
dCwgcmVndWxhcl9vdXRwdXQsIHVzZXIgPSBsb2dnaW5nX3J1bihbCisgICAgICAgICAgICAgICAg
J2ZhaWx1cmVzL3VuZXhwZWN0ZWQvY3Jhc2gtd2l0aC1zdGRlcnIuaHRtbCcsCisgICAgICAgICAg
ICBdLAorICAgICAgICAgICAgdGVzdHNfaW5jbHVkZWQ9VHJ1ZSwKKyAgICAgICAgICAgIHJlY29y
ZF9yZXN1bHRzPVRydWUsCisgICAgICAgICAgICBmaWxlc3lzdGVtPWZzKQorICAgICAgICBzZWxm
LmFzc2VydFRydWUoZnMucmVhZF90ZXh0X2ZpbGUoJy90bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy91
bmV4cGVjdGVkX3Jlc3VsdHMuanNvbicpLmZpbmQoJ3siY3Jhc2gtd2l0aC1zdGRlcnIuaHRtbCI6
eyJleHBlY3RlZCI6IlBBU1MiLCJhY3R1YWwiOiJDUkFTSCIsImhhc19zdGRlcnIiOnRydWV9fScp
ICE9IC0xKQorCiAgICAgZGVmIHRlc3RfZXhpdF9hZnRlcl9uX2ZhaWx1cmVzX3VwbG9hZChzZWxm
KToKICAgICAgICAgZnMgPSBwb3J0LnVuaXRfdGVzdF9maWxlc3lzdGVtKCkKICAgICAgICAgcmVz
LCBidWlsZGJvdF9vdXRwdXQsIHJlZ3VsYXJfb3V0cHV0LCB1c2VyID0gbG9nZ2luZ19ydW4oWwpJ
bmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2Uv
bWFuYWdlci5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9sYXlvdXRfcGFja2FnZS9tYW5hZ2VyLnB5CShyZXZpc2lvbiA4OTg0OCkKKysrIFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL21hbmFnZXIucHkJ
KHdvcmtpbmcgY29weSkKQEAgLTEzMiw3ICsxMzIsNyBAQCBkZWYgc3VtbWFyaXplX3Jlc3VsdHMo
cG9ydF9vYmosIGV4cGVjdGF0CiAgICAgICAgICAgICBjb250aW51ZQogCiAgICAgICAgIHRlc3Rf
ZGljdCA9IHt9Ci0gICAgICAgIGlmIEZhbHNlOgorICAgICAgICBpZiByZXN1bHQuaGFzX3N0ZGVy
cjoKICAgICAgICAgICAgIHRlc3RfZGljdFsnaGFzX3N0ZGVyciddID0gVHJ1ZQogCiAgICAgICAg
IGlmIHJlc3VsdF90eXBlID09IHRlc3RfZXhwZWN0YXRpb25zLlBBU1M6CkluZGV4OiBUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9zaW5nbGVfdGVzdF9y
dW5uZXIucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvbGF5b3V0X3BhY2thZ2Uvc2luZ2xlX3Rlc3RfcnVubmVyLnB5CShyZXZpc2lvbiA4OTg0OCkK
KysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3Np
bmdsZV90ZXN0X3J1bm5lci5weQkod29ya2luZyBjb3B5KQpAQCAtMTQwLDcgKzE0MCw3IEBAIGNs
YXNzIFNpbmdsZVRlc3RSdW5uZXI6CiAgICAgICAgICMgRklYTUU6IEl0IHRoZSB0ZXN0IGNyYXNo
ZWQgb3IgdGltZWQgb3V0LCBpdCBtaWdodCBiZSBiZXR0dGVyIHRvIGF2b2lkCiAgICAgICAgICMg
dG8gd3JpdGUgbmV3IGJhc2VsaW5lcy4KICAgICAgICAgc2VsZi5fc2F2ZV9iYXNlbGluZXMoZHJp
dmVyX291dHB1dCkKLSAgICAgICAgcmV0dXJuIFRlc3RSZXN1bHQoc2VsZi5fZmlsZW5hbWUsIGZh
aWx1cmVzLCBkcml2ZXJfb3V0cHV0LnRlc3RfdGltZSkKKyAgICAgICAgcmV0dXJuIFRlc3RSZXN1
bHQoc2VsZi5fZmlsZW5hbWUsIGZhaWx1cmVzLCBkcml2ZXJfb3V0cHV0LnRlc3RfdGltZSwgZHJp
dmVyX291dHB1dC5oYXNfc3RkZXJyKCkpCiAKICAgICBkZWYgX3NhdmVfYmFzZWxpbmVzKHNlbGYs
IGRyaXZlcl9vdXRwdXQpOgogICAgICAgICAjIEFsdGhvdWdoIGFsbCB0ZXN0X3NoZWxsL0R1bXBS
ZW5kZXJUcmVlIG91dHB1dCBzaG91bGQgYmUgdXRmLTgsCkBAIC0yMjAsMTMgKzIyMCwxMyBAQCBj
bGFzcyBTaW5nbGVUZXN0UnVubmVyOgogICAgICAgICBpZiBkcml2ZXJfb3V0cHV0LmNyYXNoOgog
ICAgICAgICAgICAgIyBEb24ndCBjb250aW51ZSBhbnkgbW9yZSBpZiB3ZSBhbHJlYWR5IGhhdmUg
YSBjcmFzaC4KICAgICAgICAgICAgICMgSW4gY2FzZSBvZiB0aW1lb3V0cywgd2UgY29udGludWUg
c2luY2Ugd2Ugc3RpbGwgd2FudCB0byBzZWUgdGhlIHRleHQgYW5kIGltYWdlIG91dHB1dC4KLSAg
ICAgICAgICAgIHJldHVybiBUZXN0UmVzdWx0KHNlbGYuX2ZpbGVuYW1lLCBmYWlsdXJlcywgZHJp
dmVyX291dHB1dC50ZXN0X3RpbWUpCisgICAgICAgICAgICByZXR1cm4gVGVzdFJlc3VsdChzZWxm
Ll9maWxlbmFtZSwgZmFpbHVyZXMsIGRyaXZlcl9vdXRwdXQudGVzdF90aW1lLCBkcml2ZXJfb3V0
cHV0Lmhhc19zdGRlcnIoKSkKIAogICAgICAgICBmYWlsdXJlcy5leHRlbmQoc2VsZi5fY29tcGFy
ZV90ZXh0KGRyaXZlcl9vdXRwdXQudGV4dCwgZXhwZWN0ZWRfZHJpdmVyX291dHB1dC50ZXh0KSkK
ICAgICAgICAgZmFpbHVyZXMuZXh0ZW5kKHNlbGYuX2NvbXBhcmVfYXVkaW8oZHJpdmVyX291dHB1
dC5hdWRpbywgZXhwZWN0ZWRfZHJpdmVyX291dHB1dC5hdWRpbykpCiAgICAgICAgIGlmIHNlbGYu
X29wdGlvbnMucGl4ZWxfdGVzdHM6CiAgICAgICAgICAgICBmYWlsdXJlcy5leHRlbmQoc2VsZi5f
Y29tcGFyZV9pbWFnZShkcml2ZXJfb3V0cHV0LCBleHBlY3RlZF9kcml2ZXJfb3V0cHV0KSkKLSAg
ICAgICAgcmV0dXJuIFRlc3RSZXN1bHQoc2VsZi5fZmlsZW5hbWUsIGZhaWx1cmVzLCBkcml2ZXJf
b3V0cHV0LnRlc3RfdGltZSkKKyAgICAgICAgcmV0dXJuIFRlc3RSZXN1bHQoc2VsZi5fZmlsZW5h
bWUsIGZhaWx1cmVzLCBkcml2ZXJfb3V0cHV0LnRlc3RfdGltZSwgZHJpdmVyX291dHB1dC5oYXNf
c3RkZXJyKCkpCiAKICAgICBkZWYgX2NvbXBhcmVfdGV4dChzZWxmLCBhY3R1YWxfdGV4dCwgZXhw
ZWN0ZWRfdGV4dCk6CiAgICAgICAgIGZhaWx1cmVzID0gW10KQEAgLTI4MSwxOCArMjgxLDE5IEBA
IGNsYXNzIFNpbmdsZVRlc3RSdW5uZXI6CiAKICAgICBkZWYgX2NvbXBhcmVfb3V0cHV0X3dpdGhf
cmVmZXJlbmNlKHNlbGYsIGRyaXZlcl9vdXRwdXQxLCBkcml2ZXJfb3V0cHV0Mik6CiAgICAgICAg
IHRvdGFsX3Rlc3RfdGltZSA9IGRyaXZlcl9vdXRwdXQxLnRlc3RfdGltZSArIGRyaXZlcl9vdXRw
dXQyLnRlc3RfdGltZQorICAgICAgICBoYXNfc3RkZXJyID0gZHJpdmVyX291dHB1dDEuaGFzX3N0
ZGVycigpIG9yIGRyaXZlcl9vdXRwdXQyLmhhc19zdGRlcnIoKQogICAgICAgICBmYWlsdXJlcyA9
IFtdCiAgICAgICAgIGZhaWx1cmVzLmV4dGVuZChzZWxmLl9oYW5kbGVfZXJyb3IoZHJpdmVyX291
dHB1dDEpKQogICAgICAgICBpZiBmYWlsdXJlczoKICAgICAgICAgICAgICMgRG9uJ3QgY29udGlu
dWUgYW55IG1vcmUgaWYgd2UgYWxyZWFkeSBoYXZlIGNyYXNoIG9yIHRpbWVvdXQuCi0gICAgICAg
ICAgICByZXR1cm4gVGVzdFJlc3VsdChzZWxmLl9maWxlbmFtZSwgZmFpbHVyZXMsIHRvdGFsX3Rl
c3RfdGltZSkKKyAgICAgICAgICAgIHJldHVybiBUZXN0UmVzdWx0KHNlbGYuX2ZpbGVuYW1lLCBm
YWlsdXJlcywgdG90YWxfdGVzdF90aW1lLCBoYXNfc3RkZXJyKQogICAgICAgICBmYWlsdXJlcy5l
eHRlbmQoc2VsZi5faGFuZGxlX2Vycm9yKGRyaXZlcl9vdXRwdXQyLCByZWZlcmVuY2VfZmlsZW5h
bWU9c2VsZi5fcmVmZXJlbmNlX2ZpbGVuYW1lKSkKICAgICAgICAgaWYgZmFpbHVyZXM6Ci0gICAg
ICAgICAgICByZXR1cm4gVGVzdFJlc3VsdChzZWxmLl9maWxlbmFtZSwgZmFpbHVyZXMsIHRvdGFs
X3Rlc3RfdGltZSkKKyAgICAgICAgICAgIHJldHVybiBUZXN0UmVzdWx0KHNlbGYuX2ZpbGVuYW1l
LCBmYWlsdXJlcywgdG90YWxfdGVzdF90aW1lLCBoYXNfc3RkZXJyKQogCiAgICAgICAgIGlmIHNl
bGYuX2lzX21pc21hdGNoX3JlZnRlc3Q6CiAgICAgICAgICAgICBpZiBkcml2ZXJfb3V0cHV0MS5p
bWFnZV9oYXNoID09IGRyaXZlcl9vdXRwdXQyLmltYWdlX2hhc2g6CiAgICAgICAgICAgICAgICAg
ZmFpbHVyZXMuYXBwZW5kKHRlc3RfZmFpbHVyZXMuRmFpbHVyZVJlZnRlc3RNaXNtYXRjaERpZE5v
dE9jY3VyKCkpCiAgICAgICAgIGVsaWYgZHJpdmVyX291dHB1dDEuaW1hZ2VfaGFzaCAhPSBkcml2
ZXJfb3V0cHV0Mi5pbWFnZV9oYXNoOgogICAgICAgICAgICAgZmFpbHVyZXMuYXBwZW5kKHRlc3Rf
ZmFpbHVyZXMuRmFpbHVyZVJlZnRlc3RNaXNtYXRjaCgpKQotICAgICAgICByZXR1cm4gVGVzdFJl
c3VsdChzZWxmLl9maWxlbmFtZSwgZmFpbHVyZXMsIHRvdGFsX3Rlc3RfdGltZSkKKyAgICAgICAg
cmV0dXJuIFRlc3RSZXN1bHQoc2VsZi5fZmlsZW5hbWUsIGZhaWx1cmVzLCB0b3RhbF90ZXN0X3Rp
bWUsIGhhc19zdGRlcnIpCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9sYXlvdXRfcGFja2FnZS90ZXN0X3Jlc3VsdF93cml0ZXIucHkKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvdGVzdF9yZXN1
bHRfd3JpdGVyLnB5CShyZXZpc2lvbiA4OTg0OCkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3Rlc3RfcmVzdWx0X3dyaXRlci5weQkod29ya2lu
ZyBjb3B5KQpAQCAtOTksNiArOTksNyBAQCBjbGFzcyBUZXN0UmVzdWx0V3JpdGVyKG9iamVjdCk6
CiAgICAgRklMRU5BTUVfU1VGRklYX0FDVFVBTCA9ICItYWN0dWFsIgogICAgIEZJTEVOQU1FX1NV
RkZJWF9FWFBFQ1RFRCA9ICItZXhwZWN0ZWQiCiAgICAgRklMRU5BTUVfU1VGRklYX0RJRkYgPSAi
LWRpZmYiCisgICAgRklMRU5BTUVfU1VGRklYX1NUREVSUiA9ICItc3RkZXJyIgogICAgIEZJTEVO
QU1FX1NVRkZJWF9XRElGRiA9ICItd2RpZmYuaHRtbCIKICAgICBGSUxFTkFNRV9TVUZGSVhfUFJF
VFRZX1BBVENIID0gIi1wcmV0dHktZGlmZi5odG1sIgogICAgIEZJTEVOQU1FX1NVRkZJWF9JTUFH
RV9ESUZGID0gIi1kaWZmLnBuZyIKQEAgLTE2MSw3ICsxNjIsNyBAQCBjbGFzcyBUZXN0UmVzdWx0
V3JpdGVyKG9iamVjdCk6CiAKICAgICBkZWYgd3JpdGVfc3RkZXJyKHNlbGYsIGVycm9yKToKICAg
ICAgICAgZnMgPSBzZWxmLl9wb3J0Ll9maWxlc3lzdGVtCi0gICAgICAgIGZpbGVuYW1lID0gc2Vs
Zi5vdXRwdXRfZmlsZW5hbWUoIi1zdGRlcnIudHh0IikKKyAgICAgICAgZmlsZW5hbWUgPSBzZWxm
Lm91dHB1dF9maWxlbmFtZShzZWxmLkZJTEVOQU1FX1NVRkZJWF9TVERFUlIgKyAiLnR4dCIpCiAg
ICAgICAgIGZzLm1heWJlX21ha2VfZGlyZWN0b3J5KGZzLmRpcm5hbWUoZmlsZW5hbWUpKQogICAg
ICAgICBmcy53cml0ZV9iaW5hcnlfZmlsZShmaWxlbmFtZSwgZXJyb3IpCiAKSW5kZXg6IFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3Rlc3RfcmVzdWx0
cy5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9s
YXlvdXRfcGFja2FnZS90ZXN0X3Jlc3VsdHMucHkJKHJldmlzaW9uIDg5ODQ4KQorKysgVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvdGVzdF9yZXN1bHRz
LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0zOCwxMSArMzgsMTIgQEAgY2xhc3MgVGVzdFJlc3VsdChv
YmplY3QpOgogICAgIGRlZiBsb2FkcyhzdHIpOgogICAgICAgICByZXR1cm4gY1BpY2tsZS5sb2Fk
cyhzdHIpCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgZmlsZW5hbWUsIGZhaWx1cmVzPU5vbmUs
IHRlc3RfcnVuX3RpbWU9Tm9uZSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZpbGVuYW1lLCBm
YWlsdXJlcz1Ob25lLCB0ZXN0X3J1bl90aW1lPU5vbmUsIGhhc19zdGRlcnI9RmFsc2UpOgogICAg
ICAgICAjIEZJWE1FOiBzL2ZpbGVuYW1lL25hbWUgdG8gYmUgY29uc2lzdGVudCB3aXRoIHRoZSBy
ZXN0IG9mIGxheW91dF9wYWNrYWdlLgogICAgICAgICBzZWxmLmZpbGVuYW1lID0gZmlsZW5hbWUK
ICAgICAgICAgc2VsZi5mYWlsdXJlcyA9IGZhaWx1cmVzIG9yIFtdCiAgICAgICAgIHNlbGYudGVz
dF9ydW5fdGltZSA9IHRlc3RfcnVuX3RpbWUgb3IgMAorICAgICAgICBzZWxmLmhhc19zdGRlcnIg
PSBoYXNfc3RkZXJyCiAgICAgICAgICMgRklYTUU6IFNldHRpbmcgdGhpcyBpbiB0aGUgY29uc3Ry
dWN0b3IgbWFrZXMgdGhpcyBjbGFzcyBoYXJkIHRvIG11dGF0ZS4KICAgICAgICAgc2VsZi50eXBl
ID0gdGVzdF9mYWlsdXJlcy5kZXRlcm1pbmVfcmVzdWx0X3R5cGUoZmFpbHVyZXMpCiAKSW5kZXg6
IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkJ
KHJldmlzaW9uIDg5ODQ4KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC9iYXNlLnB5CSh3b3JraW5nIGNvcHkpCkBAIC05NjEsNiArOTYxLDkgQEAgY2xhc3MgRHJp
dmVyT3V0cHV0KG9iamVjdCk6CiAgICAgICAgIHNlbGYudGltZW91dCA9IHRpbWVvdXQKICAgICAg
ICAgc2VsZi5lcnJvciA9IGVycm9yCiAKKyAgICBkZWYgaGFzX3N0ZGVycihzZWxmKToKKyAgICAg
ICAgcmV0dXJuIGJvb2woc2VsZi5lcnJvcikKKwogCiBjbGFzcyBEcml2ZXI6CiAgICAgIiIiQWJz
dHJhY3QgaW50ZXJmYWNlIGZvciB0aGUgRHVtcFJlbmRlclRyZWUgaW50ZXJmYWNlLiIiIgpJbmRl
eDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC90ZXN0LnB5Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvdGVzdC5w
eQkocmV2aXNpb24gODk4NDgpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9wb3J0L3Rlc3QucHkJKHdvcmtpbmcgY29weSkKQEAgLTEzNyw2ICsxMzcsOCBAQCBkZWYgdW5p
dF90ZXN0X2xpc3QoKToKICAgICAgICAgICAgICAgZXhwZWN0ZWRfdGV4dD0iZm9vXHJcclxyXG4i
LCBhY3R1YWxfdGV4dD0iZm9vXG4iKQogICAgIHRlc3RzLmFkZCgnZmFpbHVyZXMvZXhwZWN0ZWQv
dGV4dC5odG1sJywgYWN0dWFsX3RleHQ9J3RleHRfZmFpbC1wbmcnKQogICAgIHRlc3RzLmFkZCgn
ZmFpbHVyZXMvdW5leHBlY3RlZC9jcmFzaC5odG1sJywgY3Jhc2g9VHJ1ZSkKKyAgICB0ZXN0cy5h
ZGQoJ2ZhaWx1cmVzL3VuZXhwZWN0ZWQvY3Jhc2gtd2l0aC1zdGRlcnIuaHRtbCcsIGNyYXNoPVRy
dWUsCisgICAgICAgICAgICAgIGVycm9yPSJtb2NrLXN0ZC1lcnJvci1vdXRwdXQiKQogICAgIHRl
c3RzLmFkZCgnZmFpbHVyZXMvdW5leHBlY3RlZC90ZXh0LWltYWdlLWNoZWNrc3VtLmh0bWwnLAog
ICAgICAgICAgICAgICBhY3R1YWxfdGV4dD0ndGV4dC1pbWFnZS1jaGVja3N1bV9mYWlsLXR4dCcs
CiAgICAgICAgICAgICAgIGFjdHVhbF9jaGVja3N1bT0ndGV4dC1pbWFnZS1jaGVja3N1bV9mYWls
LWNoZWNrc3VtJykK
</data>

          </attachment>
      

    </bug>

</bugzilla>