<?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>51357</bug_id>
          
          <creation_ts>2010-12-20 15:25:13 -0800</creation_ts>
          <short_desc>REGRESSION (r66428/r71892): Crash after assertion failure (!m_reachedTerminalState) in ResourceLoader::didCancel()</short_desc>
          <delta_ts>2011-04-22 15:52:16 -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>Page Loading</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.6</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, Regression</keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>hamaji</cc>
    
    <cc>japhet</cc>
    
    <cc>koivisto</cc>
    
    <cc>mihaip</cc>
    
    <cc>rtenneti</cc>
    
    <cc>thestig</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>324605</commentid>
    <comment_count>0</comment_count>
      <attachid>77044</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-12-20 15:25:13 -0800</bug_when>
    <thetext>Created attachment 77044
test case (will ASSERT)

Steps to reproduce:
1) Disable pop-up blocker.
2) Open attached test case.
3) When a print dialog appears, click Cancel.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324644</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-12-20 16:34:18 -0800</bug_when>
    <thetext>The problem is that main resource can finish loading during execution of its own MainResourceLoader::didCancel():

    frameLoader()-&gt;receivedMainResourceError(error, true);
    ResourceLoader::didCancel(error);

Here, receivedMainResourceError() indirectly starts printing, and load finishes while a print sheet is displayed. Naturally, ResourceLoader::didCancel() isn&apos;t happy about the load being half-canceled and half-finished.

One may think (as I did) that adding PageGroupLoadDeferrer in Chrome::print() would solve this, but DocumentLoader doesn&apos;t have its MainResourceLoader pointer at this point any more, so deferring the page doesn&apos;t defer its main resource.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>338548</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-01-22 01:54:13 -0800</bug_when>
    <thetext>Actually, this crashes nightlies.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>338549</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-01-22 01:54:40 -0800</bug_when>
    <thetext>&lt;rdar://problem/8903430&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>338607</commentid>
    <comment_count>4</comment_count>
    <who name="raman tenneti">rtenneti</who>
    <bug_when>2011-01-22 10:50:22 -0800</bug_when>
    <thetext>*** Bug 52945 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>338611</commentid>
    <comment_count>5</comment_count>
    <who name="raman tenneti">rtenneti</who>
    <bug_when>2011-01-22 10:59:14 -0800</bug_when>
    <thetext>Opening the attached file crashes with Google chrome 8.0.552.237. thanks much.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>338651</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-01-22 15:21:17 -0800</bug_when>
    <thetext>This crash started with r71892. Before that, the print dialog didn&apos;t appear at all, which was a bug introduced in r66428.

Sounds like a proper fix would involve improving deferred window.print() behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363854</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-03-07 23:36:24 -0800</bug_when>
    <thetext>I have this in the debugger.  Looking a potential solutions...


#15	0x100fc4d3a in CallDelegate at WebDelegateImplementationCaching.mm:103
#16	0x100fc4def in CallUIDelegate at WebDelegateImplementationCaching.mm:439
#17	0x100fb4b79 in WebChromeClient::print at WebChromeClient.mm:662
#18	0x10164ebbc in WebCore::Chrome::print at Chrome.cpp:422
#19	0x1018b4c0d in WebCore::DOMWindow::print at DOMWindow.cpp:943
#20	0x1018b4c3d in WebCore::DOMWindow::finishedLoading at DOMWindow.cpp:1623
#21	0x1017f6cf2 in WebCore::DocumentLoader::updateLoading at DocumentLoader.cpp:376
#22	0x1017f6ef0 in WebCore::DocumentLoader::setPrimaryLoadComplete at DocumentLoader.cpp:426
#23	0x101978d95 in WebCore::FrameLoader::mainReceivedCompleteError at FrameLoader.cpp:3302
#24	0x1017f73cb in WebCore::DocumentLoader::mainReceivedError at DocumentLoader.cpp:205
#25	0x101976626 in WebCore::FrameLoader::receivedMainResourceError at FrameLoader.cpp:2841
#26	0x101e9f513 in WebCore::MainResourceLoader::didCancel at MainResourceLoader.cpp:110
#27	0x1020f85c5 in WebCore::ResourceLoader::cancel at ResourceLoader.cpp:381
#28	0x1020f8220 in WebCore::ResourceLoader::cancel at ResourceLoader.cpp:371
#29	0x1017f8658 in WebCore::DocumentLoader::stopLoading at DocumentLoader.cpp:248
#30	0x1019734dc in WebCore::FrameLoader::stopAllLoaders at FrameLoader.cpp:1717
#31	0x101978bfa in WebCore::FrameLoader::stopForUserCancel at FrameLoader.cpp:1735
#32	0x100fd56c8 in -[WebFrame stopLoading] at WebFrame.mm:1573
#33	0x1010857c3 in -[WebView(WebIBActions) stopLoading:] at WebView.mm:4197
#34	0x10008522f in ??
#35	0x100fb3bc8 in WebChromeClient::closeWindowSoon at WebChromeClient.mm:479
#36	0x10164eb3c in WebCore::Chrome::closeWindowSoon at Chrome.cpp:280
#37	0x1018b4df5 in WebCore::DOMWindow::close at DOMWindow.cpp:926
#38	0x101c37e84 in WebCore::jsDOMWindowPrototypeFunctionClose at JSDOMWindow.cpp:9274</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363874</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-03-08 00:42:11 -0800</bug_when>
    <thetext>Apparently this is a top crash:
http://code.google.com/p/chromium/issues/detail?id=63783</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363879</commentid>
    <comment_count>9</comment_count>
      <attachid>85033</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-03-08 00:54:14 -0800</bug_when>
    <thetext>Created attachment 85033
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363880</commentid>
    <comment_count>10</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-03-08 00:55:09 -0800</bug_when>
    <thetext>I&apos;m not entirely sure this is the right fix.  It&apos;s somewhat of a targeted fix.  Maybe something more general is better?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363944</commentid>
    <comment_count>11</comment_count>
      <attachid>85033</attachid>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2011-03-08 06:30:23 -0800</bug_when>
    <thetext>Comment on attachment 85033
Patch

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

&gt; LayoutTests/printing/print-close-crash.html:10
&gt; +w.print();

Based on previous patches around window.print(), it&apos;s not supported by the DRT, so I&apos;m not sure this layout test is actually testing anything:

http://trac.webkit.org/changeset/66428
http://trac.webkit.org/changeset/71892</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363974</commentid>
    <comment_count>12</comment_count>
      <attachid>85033</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-03-08 08:37:32 -0800</bug_when>
    <thetext>Comment on attachment 85033
Patch

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

&gt; Source/WebCore/page/DOMWindow.cpp:1632
&gt; +        m_printTimer.stop();
&gt; +        m_printTimer.startOneShot(0);

There is no need to call stop before start on a Timer. Calling any version of start automatically cancels any previously-scheduler timer as stop does.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363983</commentid>
    <comment_count>13</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-03-08 09:15:54 -0800</bug_when>
    <thetext>What will this do if window.close() is called right after window.print()? It&apos;s pretty common for Web pages to call window.open()/print()/close() in one script. I&apos;m not sure if a timer will result in correct behavior.

Please also try less practical variations of this (e.g. setTimeout(&quot;window.close()&quot;, 0); calling window.close() before window.print(); opening a separate window or not; testing whether the whole page actually gets parsed before printing). I&apos;ve been getting some crashes and assertion failures even without your patch - although my build is old, and some may have been fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363992</commentid>
    <comment_count>14</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-03-08 09:29:52 -0800</bug_when>
    <thetext>Also, interaction with any work performed in onload could cause incompatibilities, perhaps even practical ones.

It seems like we&apos;re adding layers of patches without fully understanding what other browsers do, and without support from HTML5. Unsurprisingly, this hasn&apos;t worked so well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364102</commentid>
    <comment_count>15</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-03-08 12:28:16 -0800</bug_when>
    <thetext>&gt; Based on previous patches around window.print(), it&apos;s not supported by the DRT, so I&apos;m not sure this layout test is actually testing anything:

I&apos;ll try running it without the patch to check.

&gt; There is no need to call stop before start on a Timer. Calling any version of start automatically cancels any previously-scheduler timer as stop does.

Ok.  I was modeling this off other code that does this, but that code is probably confused.

&gt; What will this do if window.close() is called right after window.print()? It&apos;s pretty common for Web pages to call window.open()/print()/close() in one script. I&apos;m not sure if a timer will result in correct behavior.

That&apos;s the test case for this bug.  It seems to fix the problem.

&gt; Please also try less practical variations of this (e.g. setTimeout(&quot;window.close()&quot;, 0); calling window.close() before window.print(); opening a separate window or not; testing whether the whole page actually gets parsed before printing). I&apos;ve been getting some crashes and assertion failures even without your patch - although my build is old, and some may have been fixed.

Hum...  I&apos;m not entirely sure what you have in mind here.  The issue in this bug is that calling DOMWindow::print synchronously from inside a load cancel spins an event loop and leaves the loader in an inconsistent state.  This patch just makes the call async so we don&apos;t spin an event loop inside the cancel handler.

Do you mean there are other bugs we should try to address at the same time?

&gt; Also, interaction with any work performed in onload could cause incompatibilities, perhaps even practical ones.

That&apos;s certainly possible.  Do you have a suggestion for another approach to fixing this bug?  We might want to try the fix and see if we have compat problems.

&gt; It seems like we&apos;re adding layers of patches without fully understanding what other browsers do, and without support from HTML5. Unsurprisingly, this hasn&apos;t worked so well.

I definitely get that sense too.  Unfortunately, we don&apos;t even seem to have good test coverage of the changes we&apos;re making.  I certainly don&apos;t have global understanding of how this all should work...  How do you think we should proceed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364119</commentid>
    <comment_count>16</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-03-08 12:58:25 -0800</bug_when>
    <thetext>As mentioned in comment 1, my initial thought was to add PageGroupLoadDeferrer - maybe there is a way to make it work, after all? Right now, I do not remember why it seemed like that it could help, I could be just wrong.

&gt; That&apos;s the test case for this bug.

I confused two cases, sorry. The test is for the common case where a separate window is opened, but I was thinking about an inline script in a document that&apos;s being loaded?

&lt;body&gt;
aaa
&lt;script&gt;
window.print();
window.close();
&lt;/script&gt;
bbb
&lt;/body&gt;

&gt; Do you mean there are other bugs we should try to address at the same time?

I was more concerned about the possibility of further diverging from other browsers and introducing new bugs.

The patch has an r+, so you should feel free to land it at your discretion. It would be good to investigate this more deeply, and I planned to work on this bug fairly soon myself. Since this is largely about interaction between loader and parser, you could be an even better person to investigate, if you have the interest.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364123</commentid>
    <comment_count>17</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2011-03-08 13:05:25 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; &lt;script&gt;
&gt; window.print();
&gt; window.close();
&gt; &lt;/script&gt;

Since we were already deferring print during loading (with http://trac.webkit.org/changeset/66428), even before this patch the window.close() would run before window.print().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364158</commentid>
    <comment_count>18</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-03-08 14:26:38 -0800</bug_when>
    <thetext>The tricky part is that window.close() indirectly calls finishedLoading(), so printing still happens before close() actually closes the window.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365033</commentid>
    <comment_count>19</comment_count>
      <attachid>85033</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-03-10 00:42:53 -0800</bug_when>
    <thetext>Comment on attachment 85033
Patch

It turns out the test case doesn&apos;t work in DRT.  I&apos;ve left it in the patch, but added manual test too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365036</commentid>
    <comment_count>20</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-03-10 00:57:06 -0800</bug_when>
    <thetext>&gt; I confused two cases, sorry. The test is for the common case where a separate window is opened, but I was thinking about an inline script in a document that&apos;s being loaded?
&gt; 
&gt; &lt;body&gt;
&gt; aaa
&gt; &lt;script&gt;
&gt; window.print();
&gt; window.close();
&gt; &lt;/script&gt;
&gt; bbb
&gt; &lt;/body&gt;

That test case seems to work fine.  I haven&apos;t included it in the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365037</commentid>
    <comment_count>21</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-03-10 00:58:31 -0800</bug_when>
    <thetext>As much as I feel bad about piling onto this code without fully understanding all the cases, I&apos;m tempted by the siren song of fixing this particular crash.  I&apos;m going to land this patch (with the added test).  Alexey, if you&apos;d be willing to work on this system more, I&apos;m sure everyone would be appreciative.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365038</commentid>
    <comment_count>22</comment_count>
      <attachid>85294</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-03-10 01:00:16 -0800</bug_when>
    <thetext>Created attachment 85294
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365678</commentid>
    <comment_count>23</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-03-10 17:04:34 -0800</bug_when>
    <thetext>I agree that this patch improves the situation by fixing a top crasher. I won&apos;t be able to justify it to myself investigating behavior differences any time soon - unless this patch causes some horrible regression :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365801</commentid>
    <comment_count>24</comment_count>
      <attachid>85294</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-10 21:07:39 -0800</bug_when>
    <thetext>Comment on attachment 85294
Patch for landing

Clearing flags on attachment: 85294

Committed r80812: &lt;http://trac.webkit.org/changeset/80812&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365802</commentid>
    <comment_count>25</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-10 21:07:44 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>391172</commentid>
    <comment_count>26</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-04-22 15:52:16 -0700</bug_when>
    <thetext>This did cause a horrible regression, so I&apos;m re-fixing this in a different way in bug 59241.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>77044</attachid>
            <date>2010-12-20 15:25:13 -0800</date>
            <delta_ts>2010-12-20 15:25:13 -0800</delta_ts>
            <desc>test case (will ASSERT)</desc>
            <filename>test.html</filename>
            <type>text/html</type>
            <size>83</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">PHNjcmlwdD4KdmFyIHcgPSB3aW5kb3cub3BlbigiZGF0YTp0ZXh0L2h0bWwsZm9vIik7CncucHJp
bnQoKTsKdy5jbG9zZSgpOwo8L3NjcmlwdD4=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85033</attachid>
            <date>2011-03-08 00:54:14 -0800</date>
            <delta_ts>2011-03-10 01:00:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-51357-20110308005412.patch</filename>
            <type>text/plain</type>
            <size>5010</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgwNTQ4KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMDMtMDggIEFkYW0gQmFy
dGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBSRUdSRVNTSU9OIChyNjY0MjgvcjcxODkyKTogQ3Jhc2ggYWZ0ZXIg
YXNzZXJ0aW9uIGZhaWx1cmUgKCFtX3JlYWNoZWRUZXJtaW5hbFN0YXRlKSBpbiBSZXNvdXJjZUxv
YWRlcjo6ZGlkQ2FuY2VsKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTUxMzU3CisKKyAgICAgICAgUHJldmlvdXNseSwgd2Ugd291bGQgdHJ5IHRvIHBy
aW50IGZyb20gYSBjYWxsc3RhY2sgdGhhdCBkaWRuJ3Qgd2FudCBhCisgICAgICAgIG5lc3RlZCBl
dmVudCBsb29wLCBsZWFkaW5nIHRvIHJlLWVudHJhbmN5IHByb2JsZW1zLiAgSW4gdGhpcyBwYXRj
aCwgd2UKKyAgICAgICAgY29tcGxldGUgdGhlIHByaW50IGNhbGwgYXN5bmNocm9ub3VzbHksIGdp
dmluZyB1cyBhIGNsZWFuIHN0YWNrIG9uCisgICAgICAgIHdoaWNoIHRvIHJ1biB0aGUgbmVzdGVk
IGV2ZW50IGxvb3AuCisKKyAgICAgICAgVGVzdDogcHJpbnRpbmcvcHJpbnQtY2xvc2UtY3Jhc2gu
aHRtbAorCisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RE9NV2luZG93OjpET01XaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojpwcmlu
dCk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnByaW50VGltZXJGaXJlZCk6CisgICAg
ICAgICogcGFnZS9ET01XaW5kb3cuaDoKKwogMjAxMS0wMy0wOCAgQWxlamFuZHJvIEcuIENhc3Ry
byAgPGFsZXhAaWdhbGlhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5z
b24uCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCShyZXZpc2lvbiA4MDUzOCkKKysr
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzk0
LDYgKzM5NCw3IEBAIGJvb2wgRE9NV2luZG93OjpjYW5TaG93TW9kYWxEaWFsb2dOb3coY28KIERP
TVdpbmRvdzo6RE9NV2luZG93KEZyYW1lKiBmcmFtZSkKICAgICA6IG1fc2hvdWxkUHJpbnRXaGVu
RmluaXNoZWRMb2FkaW5nKGZhbHNlKQogICAgICwgbV9mcmFtZShmcmFtZSkKKyAgICAsIG1fcHJp
bnRUaW1lcih0aGlzLCAmRE9NV2luZG93OjpwcmludFRpbWVyRmlyZWQpCiB7CiB9CiAKQEAgLTk0
Myw2ICs5NDQsMTIgQEAgdm9pZCBET01XaW5kb3c6OnByaW50KCkKICAgICBwYWdlLT5jaHJvbWUo
KS0+cHJpbnQobV9mcmFtZSk7CiB9CiAKK3ZvaWQgRE9NV2luZG93OjpwcmludFRpbWVyRmlyZWQo
VGltZXI8RE9NV2luZG93PiogdGltZXIpCit7CisgICAgQVNTRVJUX1VOVVNFRCh0aW1lciwgdGlt
ZXIgPT0gJm1fcHJpbnRUaW1lcik7CisgICAgcHJpbnQoKTsKK30KKwogdm9pZCBET01XaW5kb3c6
OnN0b3AoKQogewogICAgIGlmICghbV9mcmFtZSkKQEAgLTE2MjAsNyArMTYyNyw5IEBAIHZvaWQg
RE9NV2luZG93OjpmaW5pc2hlZExvYWRpbmcoKQogewogICAgIGlmIChtX3Nob3VsZFByaW50V2hl
bkZpbmlzaGVkTG9hZGluZykgewogICAgICAgICBtX3Nob3VsZFByaW50V2hlbkZpbmlzaGVkTG9h
ZGluZyA9IGZhbHNlOwotICAgICAgICBwcmludCgpOworCisgICAgICAgIG1fcHJpbnRUaW1lci5z
dG9wKCk7CisgICAgICAgIG1fcHJpbnRUaW1lci5zdGFydE9uZVNob3QoMCk7CiAgICAgfQogfQog
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgJKHJldmlzaW9uIDgwNTM4KQorKysgU291cmNl
L1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBA
QAogI2luY2x1ZGUgIktVUkwuaCIKICNpbmNsdWRlICJNZXNzYWdlUG9ydC5oIgogI2luY2x1ZGUg
IlNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSAiVGltZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCkBAIC00MzMsNiArNDM0LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2
aXJ0dWFsIEV2ZW50VGFyZ2V0RGF0YSogZXZlbnRUYXJnZXREYXRhKCk7CiAgICAgICAgIHZpcnR1
YWwgRXZlbnRUYXJnZXREYXRhKiBlbnN1cmVFdmVudFRhcmdldERhdGEoKTsKIAorICAgICAgICB2
b2lkIHByaW50VGltZXJGaXJlZChUaW1lcjxET01XaW5kb3c+Kik7CisKICAgICAgICAgc3RhdGlj
IEZyYW1lKiBjcmVhdGVXaW5kb3coY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IEF0b21p
Y1N0cmluZyYgZnJhbWVOYW1lLCBjb25zdCBXaW5kb3dGZWF0dXJlcyYsCiAgICAgICAgICAgICBE
T01XaW5kb3cqIGFjdGl2ZVdpbmRvdywgRnJhbWUqIGZpcnN0RnJhbWUsIEZyYW1lKiBvcGVuZXJG
cmFtZSwKICAgICAgICAgICAgIFByZXBhcmVEaWFsb2dGdW5jdGlvbiA9IDAsIHZvaWQqIGZ1bmN0
aW9uQ29udGV4dCA9IDApOwpAQCAtNDU4LDYgKzQ2MSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgbXV0YWJsZSBSZWZQdHI8TG9jYXRpb24+IG1fbG9jYXRpb247CiAgICAgICAgIG11
dGFibGUgUmVmUHRyPFN0eWxlTWVkaWE+IG1fbWVkaWE7CiAKKyAgICAgICAgVGltZXI8RE9NV2lu
ZG93PiBtX3ByaW50VGltZXI7CisKICAgICAgICAgRXZlbnRUYXJnZXREYXRhIG1fZXZlbnRUYXJn
ZXREYXRhOwogCiAgICAgICAgIFN0cmluZyBtX3N0YXR1czsKSW5kZXg6IExheW91dFRlc3RzL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDgw
NTQ4KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MTUgQEAKKzIwMTEtMDMtMDggIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSRUdSRVNTSU9OIChy
NjY0MjgvcjcxODkyKTogQ3Jhc2ggYWZ0ZXIgYXNzZXJ0aW9uIGZhaWx1cmUgKCFtX3JlYWNoZWRU
ZXJtaW5hbFN0YXRlKSBpbiBSZXNvdXJjZUxvYWRlcjo6ZGlkQ2FuY2VsKCkKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUxMzU3CisKKyAgICAgICAgVGVz
dCB0aGF0IHdlIGRvbid0IGNyYXNoIHdoZW4gY2FsbGluZyBjbG9zZSBpbW1lZGF0ZWx5IGFmdGVy
IHByaW50LgorCisgICAgICAgICogcHJpbnRpbmcvcHJpbnQtY2xvc2UtY3Jhc2gtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBwcmludGluZy9wcmludC1jbG9zZS1jcmFzaC5odG1sOiBB
ZGRlZC4KKwogMjAxMS0wMy0wOCAgWmFuIERvYmVyc2VrICA8emFuZG9iZXJzZWtAZ21haWwuY29t
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KSW5kZXg6IExheW91dFRl
c3RzL3ByaW50aW5nL3ByaW50LWNsb3NlLWNyYXNoLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9wcmludGluZy9wcmludC1jbG9zZS1jcmFzaC1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wcmludGluZy9wcmludC1jbG9zZS1jcmFzaC1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEgQEAKK1RoaXMgdGVzdCBwYXNzZXMgaWYg
aXQgZG9lc24ndCBjcmFzaC4KSW5kZXg6IExheW91dFRlc3RzL3ByaW50aW5nL3ByaW50LWNsb3Nl
LWNyYXNoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcHJpbnRpbmcvcHJpbnQtY2xv
c2UtY3Jhc2guaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3ByaW50aW5nL3ByaW50
LWNsb3NlLWNyYXNoLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTggQEAKKzxzY3JpcHQ+
CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCgpOworICAgIC8vIER1bXBSZW5kZXJUcmVlIHJlcXVpcmVzIHdhaXRV
bnRpbERvbmUgZm9yIHRoaXMgdGVzdCBldmVuIHRob3VnaCBpdCdzIG5vdCBuZWVkZWQuCisgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIGxheW91dFRlc3RDb250
cm9sbGVyLnNldENhbk9wZW5XaW5kb3dzKCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0
Q2xvc2VSZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRlKHRydWUpOworfQordmFyIHcgPSB3aW5k
b3cub3BlbigiZGF0YTp0ZXh0L2h0bWwsZm9vIik7Cit3LnByaW50KCk7Cit3LmNsb3NlKCk7CisK
K3dpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9
Cis8L3NjcmlwdD4KK1RoaXMgdGVzdCBwYXNzZXMgaWYgaXQgZG9lc24ndCBjcmFzaC4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85294</attachid>
            <date>2011-03-10 01:00:16 -0800</date>
            <delta_ts>2011-03-10 21:07:39 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-51357-20110310010015.patch</filename>
            <type>text/plain</type>
            <size>5448</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgwNjk2KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMDMtMTAgIEFkYW0gQmFy
dGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxl
ci4KKworICAgICAgICBSRUdSRVNTSU9OIChyNjY0MjgvcjcxODkyKTogQ3Jhc2ggYWZ0ZXIgYXNz
ZXJ0aW9uIGZhaWx1cmUgKCFtX3JlYWNoZWRUZXJtaW5hbFN0YXRlKSBpbiBSZXNvdXJjZUxvYWRl
cjo6ZGlkQ2FuY2VsKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTUxMzU3CisKKyAgICAgICAgUHJldmlvdXNseSwgd2Ugd291bGQgdHJ5IHRvIHByaW50
IGZyb20gYSBjYWxsc3RhY2sgdGhhdCBkaWRuJ3Qgd2FudCBhCisgICAgICAgIG5lc3RlZCBldmVu
dCBsb29wLCBsZWFkaW5nIHRvIHJlLWVudHJhbmN5IHByb2JsZW1zLiAgSW4gdGhpcyBwYXRjaCwg
d2UKKyAgICAgICAgY29tcGxldGUgdGhlIHByaW50IGNhbGwgYXN5bmNocm9ub3VzbHksIGdpdmlu
ZyB1cyBhIGNsZWFuIHN0YWNrIG9uCisgICAgICAgIHdoaWNoIHRvIHJ1biB0aGUgbmVzdGVkIGV2
ZW50IGxvb3AuCisKKyAgICAgICAgVGVzdDogcHJpbnRpbmcvcHJpbnQtY2xvc2UtY3Jhc2guaHRt
bAorCisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9N
V2luZG93OjpET01XaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpwcmludCk6
CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnByaW50VGltZXJGaXJlZCk6CisgICAgICAg
ICogcGFnZS9ET01XaW5kb3cuaDoKKwogMjAxMS0wMy0xMCAgT2phbiBWYWZhaSAgPG9qYW5AY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpJbmRleDogU291
cmNlL1dlYkNvcmUvbWFudWFsLXRlc3RzL3ByaW50LWFmdGVyLXdpbmRvdy1jbG9zZS5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL21hbnVhbC10ZXN0cy9wcmludC1hZnRlci13aW5k
b3ctY2xvc2UuaHRtbAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL21hbnVhbC10ZXN0
cy9wcmludC1hZnRlci13aW5kb3ctY2xvc2UuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw4
IEBACis8c2NyaXB0PgorZnVuY3Rpb24gY3Jhc2goKSB7CisgICAgdmFyIHcgPSB3aW5kb3cub3Bl
bigiZGF0YTp0ZXh0L2h0bWwsZm9vIik7CisgICAgdy5wcmludCgpOworICAgIHcuY2xvc2UoKTsK
K30KKzwvc2NyaXB0PgorPGJ1dHRvbiBvbmNsaWNrPSJjcmFzaCgpIj5DcmFzaDwvYnV0dG9uPgpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAkocmV2aXNpb24gODA2OTYpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5NCw2ICsz
OTQsNyBAQCBib29sIERPTVdpbmRvdzo6Y2FuU2hvd01vZGFsRGlhbG9nTm93KGNvCiBET01XaW5k
b3c6OkRPTVdpbmRvdyhGcmFtZSogZnJhbWUpCiAgICAgOiBtX3Nob3VsZFByaW50V2hlbkZpbmlz
aGVkTG9hZGluZyhmYWxzZSkKICAgICAsIG1fZnJhbWUoZnJhbWUpCisgICAgLCBtX3ByaW50VGlt
ZXIodGhpcywgJkRPTVdpbmRvdzo6cHJpbnRUaW1lckZpcmVkKQogewogfQogCkBAIC05NDMsNiAr
OTQ0LDEyIEBAIHZvaWQgRE9NV2luZG93OjpwcmludCgpCiAgICAgcGFnZS0+Y2hyb21lKCktPnBy
aW50KG1fZnJhbWUpOwogfQogCit2b2lkIERPTVdpbmRvdzo6cHJpbnRUaW1lckZpcmVkKFRpbWVy
PERPTVdpbmRvdz4qIHRpbWVyKQoreworICAgIEFTU0VSVF9VTlVTRUQodGltZXIsIHRpbWVyID09
ICZtX3ByaW50VGltZXIpOworICAgIHByaW50KCk7Cit9CisKIHZvaWQgRE9NV2luZG93OjpzdG9w
KCkKIHsKICAgICBpZiAoIW1fZnJhbWUpCkBAIC0xNjIwLDcgKzE2MjcsOSBAQCB2b2lkIERPTVdp
bmRvdzo6ZmluaXNoZWRMb2FkaW5nKCkKIHsKICAgICBpZiAobV9zaG91bGRQcmludFdoZW5GaW5p
c2hlZExvYWRpbmcpIHsKICAgICAgICAgbV9zaG91bGRQcmludFdoZW5GaW5pc2hlZExvYWRpbmcg
PSBmYWxzZTsKLSAgICAgICAgcHJpbnQoKTsKKworICAgICAgICBtX3ByaW50VGltZXIuc3RvcCgp
OworICAgICAgICBtX3ByaW50VGltZXIuc3RhcnRPbmVTaG90KDApOwogICAgIH0KIH0KIApJbmRl
eDogU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCShyZXZpc2lvbiA4MDY5NikKKysrIFNvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKICNp
bmNsdWRlICJLVVJMLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVBvcnQuaCIKICNpbmNsdWRlICJTZWN1
cml0eU9yaWdpbi5oIgorI2luY2x1ZGUgIlRpbWVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IApAQCAtNDMzLDYgKzQzNCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVh
bCBFdmVudFRhcmdldERhdGEqIGV2ZW50VGFyZ2V0RGF0YSgpOwogICAgICAgICB2aXJ0dWFsIEV2
ZW50VGFyZ2V0RGF0YSogZW5zdXJlRXZlbnRUYXJnZXREYXRhKCk7CiAKKyAgICAgICAgdm9pZCBw
cmludFRpbWVyRmlyZWQoVGltZXI8RE9NV2luZG93PiopOworCiAgICAgICAgIHN0YXRpYyBGcmFt
ZSogY3JlYXRlV2luZG93KGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBBdG9taWNTdHJp
bmcmIGZyYW1lTmFtZSwgY29uc3QgV2luZG93RmVhdHVyZXMmLAogICAgICAgICAgICAgRE9NV2lu
ZG93KiBhY3RpdmVXaW5kb3csIEZyYW1lKiBmaXJzdEZyYW1lLCBGcmFtZSogb3BlbmVyRnJhbWUs
CiAgICAgICAgICAgICBQcmVwYXJlRGlhbG9nRnVuY3Rpb24gPSAwLCB2b2lkKiBmdW5jdGlvbkNv
bnRleHQgPSAwKTsKQEAgLTQ1OCw2ICs0NjEsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIG11dGFibGUgUmVmUHRyPExvY2F0aW9uPiBtX2xvY2F0aW9uOwogICAgICAgICBtdXRhYmxl
IFJlZlB0cjxTdHlsZU1lZGlhPiBtX21lZGlhOwogCisgICAgICAgIFRpbWVyPERPTVdpbmRvdz4g
bV9wcmludFRpbWVyOworCiAgICAgICAgIEV2ZW50VGFyZ2V0RGF0YSBtX2V2ZW50VGFyZ2V0RGF0
YTsKIAogICAgICAgICBTdHJpbmcgbV9zdGF0dXM7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA4MDY5NikK
KysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBA
CisyMDExLTAzLTEwICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgUkVHUkVTU0lPTiAocjY2NDI4L3I3
MTg5Mik6IENyYXNoIGFmdGVyIGFzc2VydGlvbiBmYWlsdXJlICghbV9yZWFjaGVkVGVybWluYWxT
dGF0ZSkgaW4gUmVzb3VyY2VMb2FkZXI6OmRpZENhbmNlbCgpCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MTM1NworCisgICAgICAgIFRlc3QgdGhhdCB3
ZSBkb24ndCBjcmFzaCB3aGVuIGNhbGxpbmcgY2xvc2UgaW1tZWRhdGVseSBhZnRlciBwcmludC4K
KworICAgICAgICAqIHByaW50aW5nL3ByaW50LWNsb3NlLWNyYXNoLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogcHJpbnRpbmcvcHJpbnQtY2xvc2UtY3Jhc2guaHRtbDogQWRkZWQuCisK
IDIwMTEtMDMtMTAgIE9qYW4gVmFmYWkgIDxvamFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KSW5kZXg6IExheW91dFRlc3RzL3ByaW50aW5nL3ByaW50
LWNsb3NlLWNyYXNoLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wcmlu
dGluZy9wcmludC1jbG9zZS1jcmFzaC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9wcmludGluZy9wcmludC1jbG9zZS1jcmFzaC1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEgQEAKK1RoaXMgdGVzdCBwYXNzZXMgaWYgaXQgZG9lc24ndCBjcmFzaC4K
SW5kZXg6IExheW91dFRlc3RzL3ByaW50aW5nL3ByaW50LWNsb3NlLWNyYXNoLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvcHJpbnRpbmcvcHJpbnQtY2xvc2UtY3Jhc2guaHRtbAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL3ByaW50aW5nL3ByaW50LWNsb3NlLWNyYXNoLmh0bWwJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTggQEAKKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OworICAgIC8vIER1bXBSZW5kZXJUcmVlIHJlcXVpcmVzIHdhaXRVbnRpbERvbmUgZm9yIHRoaXMg
dGVzdCBldmVuIHRob3VnaCBpdCdzIG5vdCBuZWVkZWQuCisgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIud2FpdFVudGlsRG9uZSgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldENhbk9wZW5X
aW5kb3dzKCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Q2xvc2VSZW1haW5pbmdXaW5k
b3dzV2hlbkNvbXBsZXRlKHRydWUpOworfQordmFyIHcgPSB3aW5kb3cub3BlbigiZGF0YTp0ZXh0
L2h0bWwsZm9vIik7Cit3LnByaW50KCk7Cit3LmNsb3NlKCk7CisKK3dpbmRvdy5vbmxvYWQgPSBm
dW5jdGlvbigpIHsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9Cis8L3NjcmlwdD4KK1RoaXMg
dGVzdCBwYXNzZXMgaWYgaXQgZG9lc24ndCBjcmFzaC4K
</data>

          </attachment>
      

    </bug>

</bugzilla>