<?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>107701</bug_id>
          
          <creation_ts>2013-01-23 09:46:44 -0800</creation_ts>
          <short_desc>Canvas and DOM go out of sync</short_desc>
          <delta_ts>2013-03-04 14:18:55 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</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>http://jsfiddle.net/pV2ud/10/</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>sugoi</reporter>
          <assigned_to>sugoi</assigned_to>
          <cc>buildbot</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>jamesr</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>rniwa</cc>
    
    <cc>senorblanco</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>814278</commentid>
    <comment_count>0</comment_count>
    <who name="">sugoi</who>
    <bug_when>2013-01-23 09:46:44 -0800</bug_when>
    <thetext>This bug was reported in Chromium as Issue 169024, but it was reproduced in other browsers, so it&apos;s not a Chromium specific bug.

Go to the provided URL and drag the green square using the mouse. The red square will lag behind even though it should be in sync with the green square.
Removing the line &quot;overflow: hidden;&quot; from the &quot;overlay&quot; element solves the issue, so the &quot;overflow: hidden;&quot; line triggers this issue somehow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814285</commentid>
    <comment_count>1</comment_count>
      <attachid>184256</attachid>
    <who name="">sugoi</who>
    <bug_when>2013-01-23 09:53:02 -0800</bug_when>
    <thetext>Created attachment 184256
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814353</commentid>
    <comment_count>2</comment_count>
      <attachid>184256</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-23 10:48:25 -0800</bug_when>
    <thetext>Comment on attachment 184256
Patch

Attachment 184256 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16073324

New failing tests:
svg/custom/text-xy-updates-SVGList.xhtml
svg/dynamic-updates/SVGUseElement-svgdom-href1-prop.html
svg/dynamic-updates/SVGUseElement-dom-href1-attr.html
svg/custom/circle-move-invalidation.svg
svg/custom/mask-invalidation.svg
fast/repaint/search-field-cancel.html
fast/repaint/moving-shadow-on-path.html
svg/transforms/animated-path-inside-transformed-html.xhtml
fast/repaint/inline-relative-positioned.html
svg/repaint/repaint-webkit-svg-shadow-container.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814383</commentid>
    <comment_count>3</comment_count>
    <who name="">sugoi</who>
    <bug_when>2013-01-23 11:08:41 -0800</bug_when>
    <thetext>I don&apos;t know whether or not it&apos;s the correct fix, but it does fix the issue. So, basically, here&apos;s the problem I found :

There are 2 different codepaths to doing a relayout :
1 ) If you have overflow:visible, then you may write anywhere in your parent&apos;s canvas, so your parent has to relayout too.
- Doing a relayout all the way up will trigger a relayout of the RenderView object and this will work because everything gets to have a relayout. So here, FrameView::scheduleRelayout() is called from RenderObject::scheduleRelayout(), which was called from RenderObject::markContainingBlocksForLayout().

2 ) In any other overflow mode, you clip your content to your own canvas, so no need for your parent to relayout, so we stop there. 
- So since we stop early in RenderObject::markContainingBlocksForLayout(), when we get to RenderObject::scheduleRelayout(), we&apos;ll actually call FrameView::scheduleRelayoutOfSubtree(). The fix I wrote is inside that function. It seems it wasn&apos;t recursively marking contained objects for relayout when m_layoutSchedulingEnabled is true, for some reason.

If the fix isn&apos;t the appropriate fix, please explain how the m_layoutSchedulingEnabled logic should work.

Thanks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814527</commentid>
    <comment_count>4</comment_count>
      <attachid>184256</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2013-01-23 12:50:35 -0800</bug_when>
    <thetext>Comment on attachment 184256
Patch

One of the things that might be great is your fiddle converted into a layout test.

Also, the fix looks wrong -- you&apos;re simply invalidating &quot;the whole thing&quot;. But I defer to paint experts to guide you here :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814537</commentid>
    <comment_count>5</comment_count>
    <who name="">sugoi</who>
    <bug_when>2013-01-23 13:00:53 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 184256 [details])
&gt; One of the things that might be great is your fiddle converted into a layout test.

I have a layout test locally, I&apos;ll add it as soon as I know that it validates the &quot;proper&quot; fix.

&gt; Also, the fix looks wrong -- you&apos;re simply invalidating &quot;the whole thing&quot;. But I defer to paint experts to guide you here :)

I&apos;m not sure I follow you about invalidating &quot;the whole thing&quot;. The path where m_layoutSchedulingEnabled is true is the only path not calling &quot;markContainingBlocksForLayout&quot;. Does that mean that when m_layoutSchedulingEnabled is false, we always invalidate &quot;the whole thing&quot; ?

Also, at the point where this function is called, m_layoutRoot points to the current object (in the reference URL, it would be pointing to the bottom right canvas of the page), which is the root of the subtree and we do want to invalidate the subtree, I believe, since we&apos;re about to render it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814821</commentid>
    <comment_count>6</comment_count>
      <attachid>184256</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-01-23 16:44:03 -0800</bug_when>
    <thetext>Comment on attachment 184256
Patch

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

&gt; Source/WebCore/page/FrameView.cpp:2258
&gt; +        m_layoutRoot-&gt;markContainingBlocksForLayout(false);

this basically disables the subtree relayout optimization.

The idea of the subtree layout optimization is it&apos;s applied when the only layout we need to do is within the subtree.  In your test case, likely one of the following is true:

1.) The subtree is incorrectly rooted (too low in the tree)
2.) The subtree optimization shouldn&apos;t be used in this instance
3.) The subtree optimization is correct, but something else is awry

I would wager it&apos;s 3.  This call will cover up many sins by causing us to relayout and reinvalidation pretty much the entire world every frame.

I think you should try to back out to the narrowest point that&apos;s misbehaving.  Perhaps something isn&apos;t marked as needing layout that should, or perhaps everything is being laid out correctly but something isn&apos;t generating correct invalidations (aka repaints in the RenderObject world)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818095</commentid>
    <comment_count>7</comment_count>
    <who name="">sugoi</who>
    <bug_when>2013-01-28 14:17:56 -0800</bug_when>
    <thetext>Ok, at this point, I&apos;m stuck, I need the input of someone more knowledgeable than me on the compositing tree.

It seems that the compositing tree is incompatible with partial (subtree) layout updates. Here&apos;s why :

When we call WebCore::RenderLayerModelObject::styleDidChange(), here&apos;s what happens :

1)
WebCore::RenderLayerModelObject::styleDidChange
WebCore::RenderObject::styleDidChange
WebCore::RenderObject::setNeedsPositionedMovementLayout
WebCore::RenderObject::markContainingBlocksForLayout
WebCore::RenderObject::scheduleRelayout 
WebCore::FrameView::scheduleRelayoutOfSubtree

2)
WebCore::RenderLayerModelObject::styleDidChange (same call as stack trace 1)
WebCore::RenderLayer::styleChanged
WebCore::RenderLayerCompositor::updateLayerCompositingState
WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration
...
-&gt; Eventually, we read a position value here and set the layer position

Unfortunately, the layer position is not updated yet. It will be in the next FrameView::layout() call when, after updating the position value by calling layout on the subtree root, we&apos;ll call &quot;updateLayerPositionsAfterLayout()&quot;. That call has to happen before the we call updateLayerCompositingState(), otherwise, the layer position will be wrong.

I also get a weird behavior when I&apos;m debugging a page that shows this bug. When I refresh it multiple times, I get different results, as if the timers were sometimes getting triggered in a different order.

I don&apos;t want to implement a solution where I&apos;d call layout(), then updateLayerCompositingState(), then layout(), then updateLayerCompositingState() again, since that would be obviously sub-optimal.

I&apos;ll wait for someone to chime in and give me some sort of explanation about the expected relationship between the layout operation and the compositing tree before I continue my investigation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819117</commentid>
    <comment_count>8</comment_count>
      <attachid>185271</attachid>
    <who name="">sugoi</who>
    <bug_when>2013-01-29 11:12:08 -0800</bug_when>
    <thetext>Created attachment 185271
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819126</commentid>
    <comment_count>9</comment_count>
    <who name="">sugoi</who>
    <bug_when>2013-01-29 11:24:26 -0800</bug_when>
    <thetext>Ok, I tried this new patch to fix the issue. The original fix was breaking the subtree optimization, as James pointed out, so I tried to find something less aggressive, but the current fix may still be too much for what we need, I&apos;ll let the reviewers decide.

In this version of the fix, only accelerated compositing is affected and it is only affected when a layout call using the subtree optimization causes a layer to move. In that specific case, the position of all layers gets updated so that we don&apos;t miss any update before computing the compositing tree. It is slightly redundant, because the subtree will get its position updated twice, potentially, but it&apos;s probably better than to update the whole tree more frequently since we use the result of the 1st call to updateLayerPositionsAfterLayout() in order to know if a top layer call is necessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819128</commentid>
    <comment_count>10</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-01-29 11:25:52 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; Ok, at this point, I&apos;m stuck, I need the input of someone more knowledgeable than me on the compositing tree.
&gt; 
&gt; It seems that the compositing tree is incompatible with partial (subtree) layout updates. Here&apos;s why :
&gt; 
&gt; When we call WebCore::RenderLayerModelObject::styleDidChange(), here&apos;s what happens :
&gt; 
&gt; 1)
&gt; WebCore::RenderLayerModelObject::styleDidChange
&gt; WebCore::RenderObject::styleDidChange
&gt; WebCore::RenderObject::setNeedsPositionedMovementLayout
&gt; WebCore::RenderObject::markContainingBlocksForLayout
&gt; WebCore::RenderObject::scheduleRelayout 
&gt; WebCore::FrameView::scheduleRelayoutOfSubtree
&gt; 
&gt; 2)
&gt; WebCore::RenderLayerModelObject::styleDidChange (same call as stack trace 1)
&gt; WebCore::RenderLayer::styleChanged
&gt; WebCore::RenderLayerCompositor::updateLayerCompositingState
&gt; WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration
&gt; ...
&gt; -&gt; Eventually, we read a position value here and set the layer position

This part sounds wrong; if we&apos;re inside styleChanged (and there&apos;s a pending layout), then we can&apos;t rely on any geometry information (since layout might change it). The code does do this right now, but what should happen is a subsequent compositing layer update after the next layout should fix it.  Is that happening?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819129</commentid>
    <comment_count>11</comment_count>
      <attachid>185271</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-01-29 11:27:28 -0800</bug_when>
    <thetext>Comment on attachment 185271
Patch

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

&gt; Source/WebCore/page/FrameView.cpp:1256
&gt; +    if (subtree &amp;&amp; positionChanged) {
&gt; +        RenderObject* topRoot = document-&gt;renderer();
&gt; +        if (topRoot) {
&gt; +            RenderLayer* topLayer = topRoot-&gt;enclosingLayer();
&gt; +            topLayer-&gt;updateLayerPositionsAfterLayout(rootRenderer(this)-&gt;layer(),
&gt; +                updateLayerPositionFlags(topLayer, false, m_doFullRepaint));
&gt; +        }
&gt; +    }

This doesnt&apos; seem compositing-related. We rely on RenderLayer positions for invalidation etc too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819143</commentid>
    <comment_count>12</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-01-29 11:44:56 -0800</bug_when>
    <thetext>Ah, the bug here is that
  layer = root-&gt;enclosingLayer();
in FrameView::layout() doesn&apos;t go high enough up the tree in this case; it needs to find the enclosing stacking container.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819181</commentid>
    <comment_count>13</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-01-29 12:12:00 -0800</bug_when>
    <thetext>So that should be

layer = root-&gt;enclosingLayer()-&gt; enclosingStackingContainer();</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820224</commentid>
    <comment_count>14</comment_count>
      <attachid>185509</attachid>
    <who name="">sugoi</who>
    <bug_when>2013-01-30 08:27:55 -0800</bug_when>
    <thetext>Created attachment 185509
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820229</commentid>
    <comment_count>15</comment_count>
    <who name="">sugoi</who>
    <bug_when>2013-01-30 08:34:45 -0800</bug_when>
    <thetext>I tried to use Simon&apos;s solution, but it did not fix the issue. In the cases I&apos;ve tested, unless we start at the document&apos;s root&apos;s layer, the bug is still present. The proposed solution works in the cases I&apos;ve tested with and, unless calling updateLayerPositionsAfterLayout() on the top layer is a terribly time consuming operation, I think/hope this fix could be acceptable, because I currently have no alternative solution :) I&apos;ll investigate more if this doesn&apos;t work for you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820252</commentid>
    <comment_count>16</comment_count>
      <attachid>185509</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-01-30 09:12:33 -0800</bug_when>
    <thetext>Comment on attachment 185509
Patch

Attachment 185509 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16218587

New failing tests:
fast/canvas/canvas-overflow-hidden-animation.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820260</commentid>
    <comment_count>17</comment_count>
      <attachid>185509</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-01-30 09:19:21 -0800</bug_when>
    <thetext>Comment on attachment 185509
Patch

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

&gt; Source/WebCore/page/FrameView.cpp:1197
&gt; -        layer = root-&gt;enclosingLayer();
&gt; +        layer = document-&gt;renderer()-&gt;enclosingLayer();

This is wrong.

You want layer = root-&gt;enclosingLayer()-&gt;enclosingStackingContainer().

&gt; LayoutTests/ChangeLog:11
&gt; +        * fast/canvas/canvas-overflow-hidden-animation.html: Added.

This test is not automatic or self-testing. It needs to detect the incorrect condition without the patch (either with some self-check, or by comparing against a reference).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820267</commentid>
    <comment_count>18</comment_count>
      <attachid>185509</attachid>
    <who name="">sugoi</who>
    <bug_when>2013-01-30 09:37:36 -0800</bug_when>
    <thetext>Comment on attachment 185509
Patch

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

&gt;&gt; Source/WebCore/page/FrameView.cpp:1197
&gt;&gt; +        layer = document-&gt;renderer()-&gt;enclosingLayer();
&gt; 
&gt; This is wrong.
&gt; 
&gt; You want layer = root-&gt;enclosingLayer()-&gt;enclosingStackingContainer().

I agree that this is not what we discussed yesterday, but as I mentioned in the comments, &quot;layer = root-&gt;enclosingLayer()-&gt;enclosingStackingContainer()&quot; does not fix the issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820273</commentid>
    <comment_count>19</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-01-30 09:42:45 -0800</bug_when>
    <thetext>Hm, interesting. We should figure out why it does not work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820326</commentid>
    <comment_count>20</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-01-30 10:55:37 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; I tried to use Simon&apos;s solution, but it did not fix the issue. In the cases I&apos;ve tested, unless we start at the document&apos;s root&apos;s layer, the bug is still present. The proposed solution works in the cases I&apos;ve tested with and, unless calling updateLayerPositionsAfterLayout() on the top layer is a terribly time consuming operation, I think/hope this fix could be acceptable, because I currently have no alternative solution :) I&apos;ll investigate more if this doesn&apos;t work for you.

You should use showLayerTree() in the debugger to see what&apos;s different between the layer tree between an update from the root, and an update from the enclosingStackingContainer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820349</commentid>
    <comment_count>21</comment_count>
    <who name="">sugoi</who>
    <bug_when>2013-01-30 11:25:36 -0800</bug_when>
    <thetext>Using showLayerTree() shows that both trees (the good one and the bad one) are identical after calling updateCompositingLayersAfterLayout(). There must be something (like a redraw or an invalidation) triggered only by calling updateCompositingLayersAfterLayout() on the top layer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820491</commentid>
    <comment_count>22</comment_count>
      <attachid>185551</attachid>
    <who name="">sugoi</who>
    <bug_when>2013-01-30 13:34:45 -0800</bug_when>
    <thetext>Created attachment 185551
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820495</commentid>
    <comment_count>23</comment_count>
    <who name="">sugoi</who>
    <bug_when>2013-01-30 13:39:02 -0800</bug_when>
    <thetext>So I have a new proposal for the fix. I was expecting this new code, or something equivalent, to be done within RenderLayerCompositor::updateCompositingLayers() somewhere, but it seems like there&apos;s no guarantee of that happening, so I added it directly in RenderLayer::updateLayerPositionsAfterLayout() since similar code is executed within RenderLayer::updateLayerPositions()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820505</commentid>
    <comment_count>24</comment_count>
      <attachid>185551</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-01-30 13:49:44 -0800</bug_when>
    <thetext>Comment on attachment 185551
Patch

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

&gt; Source/WebCore/rendering/RenderLayer.cpp:386
&gt; +#if USE(ACCELERATED_COMPOSITING)
&gt; +    if ((flags &amp; UpdateCompositingLayers) &amp;&amp; rootLayer &amp;&amp; (rootLayer != this) &amp;&amp; rootLayer-&gt;isComposited()) {
&gt; +        RenderLayerBacking::UpdateAfterLayoutFlags updateFlags = RenderLayerBacking::CompositingChildrenOnly;
&gt; +        if (flags &amp; NeedsFullRepaintInBacking)
&gt; +            updateFlags |= RenderLayerBacking::NeedsFullRepaint;
&gt; +        if (flags &amp; IsCompositingUpdateRoot)
&gt; +            updateFlags |= RenderLayerBacking::IsUpdateRoot;
&gt; +        rootLayer-&gt;backing()-&gt;updateAfterLayout(updateFlags);
&gt; +    }

What does this do that the later updateCompositingLayersAfterLayout() call in FrameView::layout() does not?

Your changelog needs to convince me that you understand the underlying cause for this bug. This feels like wallpapering over the cracks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821475</commentid>
    <comment_count>25</comment_count>
      <attachid>185769</attachid>
    <who name="">sugoi</who>
    <bug_when>2013-01-31 06:22:36 -0800</bug_when>
    <thetext>Created attachment 185769
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821479</commentid>
    <comment_count>26</comment_count>
      <attachid>185769</attachid>
    <who name="">sugoi</who>
    <bug_when>2013-01-31 06:28:01 -0800</bug_when>
    <thetext>Comment on attachment 185769
Patch

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

&gt; Source/WebCore/rendering/RenderLayer.cpp:380
&gt; +        if (RenderLayer* compLayer = enclosingCompositingLayer()) {

@smfr: You were right, the enclosingCompositingLayer() function returns the proper layer, no need to use the root layer directly. They were probably the same in my test cases, which is why these cases required the root layer (also, I didn&apos;t know about the enclosingCompositingLayer() function), but this code also fixes the issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821538</commentid>
    <comment_count>27</comment_count>
      <attachid>185769</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-01-31 08:11:16 -0800</bug_when>
    <thetext>Comment on attachment 185769
Patch

Attachment 185769 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16251416

New failing tests:
fast/canvas/canvas-overflow-hidden-animation.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821574</commentid>
    <comment_count>28</comment_count>
      <attachid>185769</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-01-31 09:12:16 -0800</bug_when>
    <thetext>Comment on attachment 185769
Patch

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

&gt; Source/WebCore/rendering/RenderLayer.cpp:390
&gt; +#if USE(ACCELERATED_COMPOSITING)
&gt; +    if ((flags &amp; UpdateCompositingLayers) &amp;&amp; (rootLayer != this)) {
&gt; +        if (RenderLayer* compLayer = enclosingCompositingLayer()) {
&gt; +            RenderLayerBacking::UpdateAfterLayoutFlags updateFlags =
&gt; +                RenderLayerBacking::CompositingChildrenOnly;
&gt; +            if (flags &amp; NeedsFullRepaintInBacking)
&gt; +                updateFlags |= RenderLayerBacking::NeedsFullRepaint;
&gt; +            if (flags &amp; IsCompositingUpdateRoot)
&gt; +                updateFlags |= RenderLayerBacking::IsUpdateRoot;
&gt; +            compLayer-&gt;backing()-&gt;updateAfterLayout(updateFlags);
&gt; +        }
&gt; +    }
&gt; +#endif

Does it not work just to start the updateLayerPositions() at the enclosingCompositingLayer()? I think add new updateAfterLayout() calls here is going to result in extra work in many more cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821608</commentid>
    <comment_count>29</comment_count>
    <who name="">sugoi</who>
    <bug_when>2013-01-31 10:06:16 -0800</bug_when>
    <thetext>(In reply to comment #28)
&gt; (From update of attachment 185769 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=185769&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderLayer.cpp:390
&gt; &gt; +#if USE(ACCELERATED_COMPOSITING)
&gt; &gt; +    if ((flags &amp; UpdateCompositingLayers) &amp;&amp; (rootLayer != this)) {
&gt; &gt; +        if (RenderLayer* compLayer = enclosingCompositingLayer()) {
&gt; &gt; +            RenderLayerBacking::UpdateAfterLayoutFlags updateFlags =
&gt; &gt; +                RenderLayerBacking::CompositingChildrenOnly;
&gt; &gt; +            if (flags &amp; NeedsFullRepaintInBacking)
&gt; &gt; +                updateFlags |= RenderLayerBacking::NeedsFullRepaint;
&gt; &gt; +            if (flags &amp; IsCompositingUpdateRoot)
&gt; &gt; +                updateFlags |= RenderLayerBacking::IsUpdateRoot;
&gt; &gt; +            compLayer-&gt;backing()-&gt;updateAfterLayout(updateFlags);
&gt; &gt; +        }
&gt; &gt; +    }
&gt; &gt; +#endif
&gt; 
&gt; Does it not work just to start the updateLayerPositions() at the enclosingCompositingLayer()? I think add new updateAfterLayout() calls here is going to result in extra work in many more cases.

Sure, it should work, but since this added code is called within updateLayerPositions(), around line 463, I thought it would be less costly to just call these lines rather than the whole function. I can easily change it to call the whole function, but I don&apos;t fully understand how that would affect performance positively.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821746</commentid>
    <comment_count>30</comment_count>
      <attachid>185769</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-31 11:24:50 -0800</bug_when>
    <thetext>Comment on attachment 185769
Patch

Attachment 185769 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16273326

New failing tests:
platform/chromium/virtual/gpu/fast/canvas/canvas-overflow-hidden-animation.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821785</commentid>
    <comment_count>31</comment_count>
    <who name="">sugoi</who>
    <bug_when>2013-01-31 11:52:41 -0800</bug_when>
    <thetext>I redid my tests after seeing the failures and I made a mistake while doing my last tests. The current patch (using enclosingCompositingLayer()) doesn&apos;t work. Only the 4th patch, using the root layer, works, so it seems I&apos;m back to patch number 4 as the latest working solution.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821804</commentid>
    <comment_count>32</comment_count>
      <attachid>185769</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-31 12:05:14 -0800</bug_when>
    <thetext>Comment on attachment 185769
Patch

Attachment 185769 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16269354

New failing tests:
platform/chromium/virtual/gpu/fast/canvas/canvas-overflow-hidden-animation.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821880</commentid>
    <comment_count>33</comment_count>
      <attachid>185846</attachid>
    <who name="">sugoi</who>
    <bug_when>2013-01-31 13:12:42 -0800</bug_when>
    <thetext>Created attachment 185846
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821883</commentid>
    <comment_count>34</comment_count>
    <who name="">sugoi</who>
    <bug_when>2013-01-31 13:18:11 -0800</bug_when>
    <thetext>This new patch only does the missing geometry update for the current compositor, only for composited children and nothing else, so it may be a bit more efficient then the previous patch, and this also fixes the issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832333</commentid>
    <comment_count>35</comment_count>
      <attachid>188179</attachid>
    <who name="">sugoi</who>
    <bug_when>2013-02-13 14:13:40 -0800</bug_when>
    <thetext>Created attachment 188179
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832342</commentid>
    <comment_count>36</comment_count>
    <who name="">sugoi</who>
    <bug_when>2013-02-13 14:22:01 -0800</bug_when>
    <thetext>I found a way to fix the bug using the enclosingStackingContainer().

The issue was that, even if we would use the enclosingStackingContainer() as the root of the update inside RenderLayer, if that container isn&apos;t itself composited, it wouldn&apos;t trigger any updates in the accelerated compositing section, which is why the original solution using enclosingStackingContainer() failed.

We do need to update from the enclosingStackingContainer() because only a stacking container can update the Z Order lists inside RenderLayerCompositor::updateCompositingDescendantGeometry() and these need to be updated, even on a subtree relayout.

The current fix should hopefully be less costly than the original proposition, but still do the proper updates.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838815</commentid>
    <comment_count>37</comment_count>
      <attachid>188179</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-02-21 14:04:10 -0800</bug_when>
    <thetext>Comment on attachment 188179
Patch

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

&gt; Source/WebCore/rendering/RenderLayerBacking.cpp:465
&gt;          if (flags &amp; IsUpdateRoot) {
&gt;              updateGraphicsLayerGeometry();
&gt;              layerCompositor-&gt;updateRootLayerPosition();
&gt; +            RenderLayer* stackingContainer = m_owningLayer-&gt;enclosingStackingContainer();
&gt; +            if (!layerCompositor-&gt;compositingLayersNeedRebuild() &amp;&amp; stackingContainer &amp;&amp; (stackingContainer != m_owningLayer))
&gt; +                layerCompositor-&gt;updateCompositingDescendantGeometry(stackingContainer, stackingContainer, flags &amp; CompositingChildrenOnly);

So for the root layer, this will do both the updateCompositingDescendantGeometry() a few lines above, and then do another update from the SC ancestor?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838822</commentid>
    <comment_count>38</comment_count>
    <who name="">sugoi</who>
    <bug_when>2013-02-21 14:08:11 -0800</bug_when>
    <thetext>&gt; So for the root layer, this will do both the updateCompositingDescendantGeometry() a few lines above, and then do another update from the SC ancestor?

I don&apos;t think so, it won&apos;t do anything if stackingContainer == m_owningLayer, so if m_owningLayer is root, then its stacking container should either be itself or NULL (I don&apos;t know if NULL is possible for the root layer).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838828</commentid>
    <comment_count>39</comment_count>
    <who name="">sugoi</who>
    <bug_when>2013-02-21 14:11:36 -0800</bug_when>
    <thetext>(In reply to comment #38)
&gt; &gt; So for the root layer, this will do both the updateCompositingDescendantGeometry() a few lines above, and then do another update from the SC ancestor?
&gt; 
&gt; I don&apos;t think so, it won&apos;t do anything if stackingContainer == m_owningLayer, so if m_owningLayer is root, then its stacking container should either be itself or NULL (I don&apos;t know if NULL is possible for the root layer).

But if you meant root as in m_owningLayer which is not the root layer, then yes, what you said is correct. Note that this is already the case as this function is called recursively from leaves to root, so updateCompositingDescendantGeometry() is already called in that fashion (children first, parents afterwards).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838829</commentid>
    <comment_count>40</comment_count>
    <who name="">sugoi</who>
    <bug_when>2013-02-21 14:14:19 -0800</bug_when>
    <thetext>What I&apos;m describing is from the line :

backing()-&gt;updateAfterLayout(updateFlags);

(approximately line 464 in file RenderLayer.cpp)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846770</commentid>
    <comment_count>41</comment_count>
    <who name="">sugoi</who>
    <bug_when>2013-03-04 13:13:50 -0800</bug_when>
    <thetext>Friendly ping to reviewers. There&apos;s been no activity on this cl for more than a week, now. It&apos;s only 3 lines of code :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846773</commentid>
    <comment_count>42</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-03-04 13:16:06 -0800</bug_when>
    <thetext>jamesr or smfr are your best reviewers.  I would need someone to bring me up to speed on current RenderLayer thinking before reviewing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846814</commentid>
    <comment_count>43</comment_count>
      <attachid>188179</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-03-04 13:47:28 -0800</bug_when>
    <thetext>Comment on attachment 188179
Patch

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

&gt;&gt; Source/WebCore/rendering/RenderLayerBacking.cpp:465
&gt;&gt; +                layerCompositor-&gt;updateCompositingDescendantGeometry(stackingContainer, stackingContainer, flags &amp; CompositingChildrenOnly);
&gt; 
&gt; So for the root layer, this will do both the updateCompositingDescendantGeometry() a few lines above, and then do another update from the SC ancestor?

Actually I think this is fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846845</commentid>
    <comment_count>44</comment_count>
      <attachid>188179</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-04 14:18:48 -0800</bug_when>
    <thetext>Comment on attachment 188179
Patch

Clearing flags on attachment: 188179

Committed r144674: &lt;http://trac.webkit.org/changeset/144674&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846846</commentid>
    <comment_count>45</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-04 14:18:55 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184256</attachid>
            <date>2013-01-23 09:53:02 -0800</date>
            <delta_ts>2013-01-29 11:12:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107701-20130123124954.patch</filename>
            <type>text/plain</type>
            <size>1419</size>
            <attacher>sugoi</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0MDUzOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDEzLTAxLTIzICBBbGV4aXMg
SGV0dSAgPHN1Z29pQGNocm9taXVtLm9yZz4KKworICAgICAgICBDYW52YXMgYW5kIERPTSBnbyBv
dXQgb2Ygc3luYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTA3NzAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzIChPT1BTISkuCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnNjaGVkdWxlUmVsYXlvdXRPZlN1YnRyZWUp
OgorCisgICAgICAgIE1hZGUgc3VyZSBhbGwgZWxlbWVudCB3aXRoaW4gcm9vdCBhcmUgbWFya2Vk
IGZvciBsYXlvdXQuCisKIDIwMTMtMDEtMjMgIEFuZHJleSBMdXNobmlrb3YgIDxsdXNobmlrb3ZA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IHJlbW92ZSBpbnZpc2libGVM
aW5lUm93IGNvZGUgZnJvbSBwYWludExpbmVzIERURSBtZXRob2QKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAJKHJldmlzaW9uIDE0MDUzNykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjI1NSw2ICsyMjU1LDcgQEAgdm9pZCBG
cmFtZVZpZXc6OnNjaGVkdWxlUmVsYXlvdXRPZlN1YnRyZQogICAgICAgICBpbnQgZGVsYXkgPSBt
X2ZyYW1lLT5kb2N1bWVudCgpLT5taW5pbXVtTGF5b3V0RGVsYXkoKTsKICAgICAgICAgbV9sYXlv
dXRSb290ID0gcmVsYXlvdXRSb290OwogICAgICAgICBBU1NFUlQoIW1fbGF5b3V0Um9vdC0+Y29u
dGFpbmVyKCkgfHwgIW1fbGF5b3V0Um9vdC0+Y29udGFpbmVyKCktPm5lZWRzTGF5b3V0KCkpOwor
ICAgICAgICBtX2xheW91dFJvb3QtPm1hcmtDb250YWluaW5nQmxvY2tzRm9yTGF5b3V0KGZhbHNl
KTsKICAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRJbnZhbGlkYXRlTGF5b3V0
KG1fZnJhbWUuZ2V0KCkpOwogICAgICAgICBtX2RlbGF5ZWRMYXlvdXQgPSBkZWxheSAhPSAwOwog
ICAgICAgICBtX2xheW91dFRpbWVyLnN0YXJ0T25lU2hvdChkZWxheSAqIDAuMDAxKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185271</attachid>
            <date>2013-01-29 11:12:08 -0800</date>
            <delta_ts>2013-01-30 08:27:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107701-20130129140854.patch</filename>
            <type>text/plain</type>
            <size>8086</size>
            <attacher>sugoi</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0MTEzMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBACisyMDEzLTAxLTI5ICBBbGV4aXMg
SGV0dSAgPHN1Z29pQGNocm9taXVtLm9yZz4KKworICAgICAgICBDYW52YXMgYW5kIERPTSBnbyBv
dXQgb2Ygc3luYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTA3NzAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGVzdDogZmFzdC9jYW52YXMvY2FudmFzLW92ZXJmbG93LWhpZGRlbi1hbmltYXRpb24uaHRt
bAorCisgICAgICAgIEZvciBhY2NlbGVyYXRlZCBjb21wb3NpdGluZywgdGhlcmUgaXMgYXBwYXJl
bnRseSBhIG1pc3NpbmcgdXBkYXRlIG9mCisgICAgICAgIGxheWVyIHBvc2l0aW9ucyB3aGVuIHVw
ZGF0aW5nIG9ubHkgYSBzdWJ0cmVlLiBJIGFkZGVkIGFuIHVwZGF0ZSBvZiB0aGUKKyAgICAgICAg
cm9vdCBsYXllciBwb3NpdGlvbiB3aGVuIGEgbGF5ZXIgaW5zaWRlIHRoZSBzdWJ0cmVlIGhhcyBt
b3ZlZCB0byBtYWtlCisgICAgICAgIHN1cmUgdGhlIGNvbXBvc2l0aW5nIHRyZWUgcmVjZWl2ZXMg
dGhlIHVwZGF0ZWQgbGF5ZXIgcG9zaXRpb25zLgorCisgICAgICAgICogcGFnZS9GcmFtZVZpZXcu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpsYXlvdXQpOgorICAgICAgICBBZGRl
ZCBhbiBleHRyYSBzdGVwIHNwZWNpZmljYWxseSBmb3IgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcg
c28gdGhhdAorICAgICAgICBhbGwgbGF5ZXJzIGdldCBwcm9wZXJseSB1cGRhdGVkIHdoZW4gYSBs
YXllciBtb3Zlcy4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVwZGF0ZUxheWVyUG9zaXRpb25zQWZ0ZXJMYXlvdXQp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVwZGF0ZUxheWVyUG9zaXRpb25zKToK
KyAgICAgICAgQWRkZWQgYSBib29sIHJldHVybiB2YWx1ZSB0byBpbmRpY2F0ZSB3aGV0aGVyIHRo
ZSBwb3NpdGlvbiBoYXMgY2hhbmdlZAorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5o
OgorICAgICAgICAoUmVuZGVyTGF5ZXIpOgorICAgICAgICBNb2RpZmllZCB0aGUgZGVjbGFyYXRp
b25zIHRvIG1hdGNoIHRoZSBjcHAgZmlsZQorCiAyMDEzLTAxLTI5ICBFbGxpb3R0IFNwcmVobiAg
PGVzcHJlaG5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIE1vdmUgRWxlbWVudFNoYWRvdyBjcmVh
dGlvbiB0byBFbGVtZW50UmFyZURhdGEKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVW
aWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAJ
KHJldmlzaW9uIDE0MTEzMykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTIzOCwxMSArMTIzOCwyMiBAQCB2b2lkIEZyYW1lVmlldzo6bGF5
b3V0KGJvb2wgYWxsb3dTdWJ0cmVlCiAgICAgICAgIHJvb3QtPnZpZXcoKS0+cmVwYWludCgpOyAv
LyBGSVhNRTogVGhpcyBpc24ndCByZWFsbHkgcmlnaHQsIHNpbmNlIHRoZSBSZW5kZXJWaWV3IGRv
ZXNuJ3QgZnVsbHkgZW5jb21wYXNzIHRoZSB2aXNpYmxlQ29udGVudFJlY3QoKS4gSXQganVzdCBo
YXBwZW5zCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0byB3b3JrIG91dCBt
b3N0IG9mIHRoZSB0aW1lLCBzaW5jZSBmaXJzdCBsYXlvdXRzIGFuZCBwcmludGluZyBkb24ndCBo
YXZlIHlvdSBzY3JvbGxlZCBhbnl3aGVyZS4KIAorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKKyAgICBib29sIHBvc2l0aW9uQ2hhbmdlZCA9CisjZW5kaWYKICAgICBsYXllci0+dXBk
YXRlTGF5ZXJQb3NpdGlvbnNBZnRlckxheW91dChyb290UmVuZGVyZXIodGhpcyktPmxheWVyKCks
IHVwZGF0ZUxheWVyUG9zaXRpb25GbGFncyhsYXllciwgc3VidHJlZSwgbV9kb0Z1bGxSZXBhaW50
KSk7CiAKICAgICBlbmREZWZlcnJlZFJlcGFpbnRzKCk7CiAKICNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCisgICAgaWYgKHN1YnRyZWUgJiYgcG9zaXRpb25DaGFuZ2VkKSB7CisgICAg
ICAgIFJlbmRlck9iamVjdCogdG9wUm9vdCA9IGRvY3VtZW50LT5yZW5kZXJlcigpOworICAgICAg
ICBpZiAodG9wUm9vdCkgeworICAgICAgICAgICAgUmVuZGVyTGF5ZXIqIHRvcExheWVyID0gdG9w
Um9vdC0+ZW5jbG9zaW5nTGF5ZXIoKTsKKyAgICAgICAgICAgIHRvcExheWVyLT51cGRhdGVMYXll
clBvc2l0aW9uc0FmdGVyTGF5b3V0KHJvb3RSZW5kZXJlcih0aGlzKS0+bGF5ZXIoKSwKKyAgICAg
ICAgICAgICAgICB1cGRhdGVMYXllclBvc2l0aW9uRmxhZ3ModG9wTGF5ZXIsIGZhbHNlLCBtX2Rv
RnVsbFJlcGFpbnQpKTsKKyAgICAgICAgfQorICAgIH0KICAgICB1cGRhdGVDb21wb3NpdGluZ0xh
eWVyc0FmdGVyTGF5b3V0KCk7CiAjZW5kaWYKICAgICAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmNwcAkocmV2aXNpb24gMTQxMTMzKQorKysgU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzY5LDE5ICsz
NjksMjAgQEAgTGF5b3V0UG9pbnQgUmVuZGVyTGF5ZXI6OmNvbXB1dGVPZmZzZXRGcgogICAgIHJl
dHVybiBvZmZzZXQ7CiB9CiAKLXZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZUxheWVyUG9zaXRpb25z
QWZ0ZXJMYXlvdXQoY29uc3QgUmVuZGVyTGF5ZXIqIHJvb3RMYXllciwgVXBkYXRlTGF5ZXJQb3Np
dGlvbnNGbGFncyBmbGFncykKK2Jvb2wgUmVuZGVyTGF5ZXI6OnVwZGF0ZUxheWVyUG9zaXRpb25z
QWZ0ZXJMYXlvdXQoY29uc3QgUmVuZGVyTGF5ZXIqIHJvb3RMYXllciwgVXBkYXRlTGF5ZXJQb3Np
dGlvbnNGbGFncyBmbGFncykKIHsKICAgICBSZW5kZXJHZW9tZXRyeU1hcCBnZW9tZXRyeU1hcChV
c2VUcmFuc2Zvcm1zKTsKICAgICBpZiAodGhpcyAhPSByb290TGF5ZXIpCiAgICAgICAgIGdlb21l
dHJ5TWFwLnB1c2hNYXBwaW5nc1RvQW5jZXN0b3IocGFyZW50KCksIDApOwotICAgIHVwZGF0ZUxh
eWVyUG9zaXRpb25zKCZnZW9tZXRyeU1hcCwgZmxhZ3MpOworICAgIHJldHVybiB1cGRhdGVMYXll
clBvc2l0aW9ucygmZ2VvbWV0cnlNYXAsIGZsYWdzKTsKIH0KIAotdm9pZCBSZW5kZXJMYXllcjo6
dXBkYXRlTGF5ZXJQb3NpdGlvbnMoUmVuZGVyR2VvbWV0cnlNYXAqIGdlb21ldHJ5TWFwLCBVcGRh
dGVMYXllclBvc2l0aW9uc0ZsYWdzIGZsYWdzKQorYm9vbCBSZW5kZXJMYXllcjo6dXBkYXRlTGF5
ZXJQb3NpdGlvbnMoUmVuZGVyR2VvbWV0cnlNYXAqIGdlb21ldHJ5TWFwLCBVcGRhdGVMYXllclBv
c2l0aW9uc0ZsYWdzIGZsYWdzKQogewotICAgIHVwZGF0ZUxheWVyUG9zaXRpb24oKTsgLy8gRm9y
IHJlbHBvc2l0aW9uZWQgbGF5ZXJzIG9yIG5vbi1wb3NpdGlvbmVkIGxheWVycywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgIC8vIHdlIG5lZWQgdG8ga2VlcCBpbiBzeW5jLCBzaW5jZSB3ZSBt
YXkgaGF2ZSBzaGlmdGVkIHJlbGF0aXZlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0
byBvdXIgcGFyZW50IGxheWVyLgorICAgIC8vIEZvciByZWxwb3NpdGlvbmVkIGxheWVycyBvciBu
b24tcG9zaXRpb25lZCBsYXllcnMsIHdlIG5lZWQgdG8ga2VlcCBpbiBzeW5jLCBzaW5jZSB3ZSBt
YXkKKyAgICAvLyBoYXZlIHNoaWZ0ZWQgcmVsYXRpdmUgdG8gb3VyIHBhcmVudCBsYXllci4KKyAg
ICBib29sIHBvc2l0aW9uQ2hhbmdlZCA9IHVwZGF0ZUxheWVyUG9zaXRpb24oKTsKKwogICAgIGlm
IChnZW9tZXRyeU1hcCkKICAgICAgICAgZ2VvbWV0cnlNYXAtPnB1c2hNYXBwaW5nc1RvQW5jZXN0
b3IodGhpcywgcGFyZW50KCkpOwogCkBAIC00NTIsNyArNDUzLDcgQEAgdm9pZCBSZW5kZXJMYXll
cjo6dXBkYXRlTGF5ZXJQb3NpdGlvbnMoUgogICAgICAgICBmbGFncyB8PSBVcGRhdGVQYWdpbmF0
aW9uOwogCiAgICAgZm9yIChSZW5kZXJMYXllciogY2hpbGQgPSBmaXJzdENoaWxkKCk7IGNoaWxk
OyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKQotICAgICAgICBjaGlsZC0+dXBkYXRlTGF5
ZXJQb3NpdGlvbnMoZ2VvbWV0cnlNYXAsIGZsYWdzKTsKKyAgICAgICAgcG9zaXRpb25DaGFuZ2Vk
IHw9IGNoaWxkLT51cGRhdGVMYXllclBvc2l0aW9ucyhnZW9tZXRyeU1hcCwgZmxhZ3MpOwogCiAj
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmICgoZmxhZ3MgJiBVcGRhdGVD
b21wb3NpdGluZ0xheWVycykgJiYgaXNDb21wb3NpdGVkKCkpIHsKQEAgLTQ3Niw2ICs0NzcsOCBA
QCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVMYXllclBvc2l0aW9ucyhSCiAKICAgICBpZiAoZ2Vv
bWV0cnlNYXApCiAgICAgICAgIGdlb21ldHJ5TWFwLT5wb3BNYXBwaW5nc1RvQW5jZXN0b3IocGFy
ZW50KCkpOworCisgICAgcmV0dXJuIHBvc2l0aW9uQ2hhbmdlZDsKIH0KIAogTGF5b3V0UmVjdCBS
ZW5kZXJMYXllcjo6cmVwYWludFJlY3RJbmNsdWRpbmdOb25Db21wb3NpdGluZ0Rlc2NlbmRhbnRz
KCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCShyZXZp
c2lvbiAxNDExMzMpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAko
d29ya2luZyBjb3B5KQpAQCAtNDAyLDcgKzQwMiw3IEBAIHB1YmxpYzoKICAgICB0eXBlZGVmIHVu
c2lnbmVkIFVwZGF0ZUxheWVyUG9zaXRpb25zRmxhZ3M7CiAgICAgc3RhdGljIGNvbnN0IFVwZGF0
ZUxheWVyUG9zaXRpb25zRmxhZ3MgZGVmYXVsdEZsYWdzID0gQ2hlY2tGb3JSZXBhaW50IHwgSXND
b21wb3NpdGluZ1VwZGF0ZVJvb3QgfCBVcGRhdGVDb21wb3NpdGluZ0xheWVyczsKIAotICAgIHZv
aWQgdXBkYXRlTGF5ZXJQb3NpdGlvbnNBZnRlckxheW91dChjb25zdCBSZW5kZXJMYXllciogcm9v
dExheWVyLCBVcGRhdGVMYXllclBvc2l0aW9uc0ZsYWdzKTsKKyAgICBib29sIHVwZGF0ZUxheWVy
UG9zaXRpb25zQWZ0ZXJMYXlvdXQoY29uc3QgUmVuZGVyTGF5ZXIqIHJvb3RMYXllciwgVXBkYXRl
TGF5ZXJQb3NpdGlvbnNGbGFncyk7CiAKICAgICB2b2lkIHVwZGF0ZUxheWVyUG9zaXRpb25zQWZ0
ZXJPdmVyZmxvd1Njcm9sbCgpOwogICAgIHZvaWQgdXBkYXRlTGF5ZXJQb3NpdGlvbnNBZnRlckRv
Y3VtZW50U2Nyb2xsKCk7CkBAIC04MTMsNyArODEzLDcgQEAgcHJpdmF0ZToKICAgICAvLyBSZXR1
cm5zIHRydWUgaWYgdGhlIHBvc2l0aW9uIGNoYW5nZWQuCiAgICAgYm9vbCB1cGRhdGVMYXllclBv
c2l0aW9uKCk7CiAKLSAgICB2b2lkIHVwZGF0ZUxheWVyUG9zaXRpb25zKFJlbmRlckdlb21ldHJ5
TWFwKiA9IDAsIFVwZGF0ZUxheWVyUG9zaXRpb25zRmxhZ3MgPSBkZWZhdWx0RmxhZ3MpOworICAg
IGJvb2wgdXBkYXRlTGF5ZXJQb3NpdGlvbnMoUmVuZGVyR2VvbWV0cnlNYXAqID0gMCwgVXBkYXRl
TGF5ZXJQb3NpdGlvbnNGbGFncyA9IGRlZmF1bHRGbGFncyk7CiAKICAgICBlbnVtIFVwZGF0ZUxh
eWVyUG9zaXRpb25zQWZ0ZXJTY3JvbGxGbGFnIHsKICAgICAgICAgTm9GbGFnID0gMCwKSW5kZXg6
IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHJldmlzaW9uIDE0MTEzMykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEzLTAxLTI5ICBBbGV4aXMgSGV0dSAgPHN1Z29pQGNo
cm9taXVtLm9yZz4KKworICAgICAgICBDYW52YXMgYW5kIERPTSBnbyBvdXQgb2Ygc3luYworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA3NzAxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgYSBuZXcg
bGF5b3V0IHRlc3QgZm9yIG1vdmluZyBhbiBvYmplY3QgKGEgZGl2KSB3aXRoaW4gYSBkaXYgdGhh
dAorICAgICAgICBoYXMgdGhlICJvdmVyZmxvdzpoaWRkZW4iIHByb3BlcnR5LgorCisgICAgICAg
ICogZmFzdC9jYW52YXMvY2FudmFzLW92ZXJmbG93LWhpZGRlbi1hbmltYXRpb24uaHRtbDogQWRk
ZWQuCisKIDIwMTMtMDEtMjkgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgQWRkIGJhY2sgdGVzdCBleHBlY3RhdGlvbnMgdGhhdCBnb3QgZXJyb25lb3VzbHkgcmVt
b3ZlZCBpbiByMTQwOTgxLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLW92
ZXJmbG93LWhpZGRlbi1hbmltYXRpb24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2NhbnZhcy9jYW52YXMtb3ZlcmZsb3ctaGlkZGVuLWFuaW1hdGlvbi5odG1sCShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLW92ZXJmbG93LWhpZGRlbi1h
bmltYXRpb24uaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1OSBAQAorPCFkb2N0eXBlIGh0
bWw+Cis8aHRtbD4KKyAgPGhlYWQ+CisgIDxzdHlsZT4KKyNjYW52YXMgeworICB3aWR0aDogMzAw
cHg7CisgIGhlaWdodDogMzAwcHg7CisgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgbGVmdDogMHB4
OworICB0b3A6IDBweDsKK30KKworI292ZXJsYXkgeworICB3aWR0aDogMzAwcHg7CisgIGhlaWdo
dDogMzAwcHg7CisgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgbGVmdDogMHB4OworICB0b3A6IDBw
eDsKKyAgb3ZlcmZsb3c6IGhpZGRlbjsKK30KKworI2ZvbGxvd2VyIHsKKyAgcG9zaXRpb246IGFi
c29sdXRlOworICBsZWZ0OiA1MHB4OworICB0b3A6IDUwcHg7CisgIHdpZHRoOiA1MHB4OworICBo
ZWlnaHQ6IDUwcHg7CisgIGJhY2tncm91bmQtY29sb3I6ICMwMEZGMDA7Cit9CisgIDwvc3R5bGU+
CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgIDxjYW52YXMgaWQ9ImNhbnZhcyI+PC9jYW52YXM+Cisg
IDxkaXYgaWQ9Im92ZXJsYXkiPjxkaXYgaWQ9ImZvbGxvd2VyIj48L2Rpdj48L2Rpdj4KKyAgICA8
c2NyaXB0PgordmFyIGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMiKTsK
K2NhbnZhcy53aWR0aCA9IDMwMDsKK2NhbnZhcy5oZWlnaHQgPSAzMDA7CisKK3ZhciBjdHggPSBj
YW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKK2N0eC5maWxsU3R5bGUgPSAiI0ZGMDAwMCI7CisKK3Zh
ciBmb2xsb3dlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmb2xsb3dlciIpOworCitkcmF3
TG9vcCA9IGZ1bmN0aW9uKCkgeworICAvLyB1cGRhdGUgdGhlIGZvbGxvd2VyCisgIGZvbGxvd2Vy
LnN0eWxlLmxlZnQgPSAiMHB4IjsKKyAgZm9sbG93ZXIuc3R5bGUudG9wICA9ICIwcHgiOworICAK
KyAgLy8gZHJhdyB0aGUgb2JqZWN0CisgIGN0eC5jbGVhclJlY3QoMCwgMCwgMzAwLCAzMDApOwor
ICBjdHguZmlsbFJlY3QoMCwgMCwgNTAsIDUwKTsKK307CisKK3dpbmRvdy5zZXRUaW1lb3V0KGRy
YXdMb29wLCAwKTsKKyAgICA8L3NjcmlwdD4KKyAgPC9ib2R5PgorPC9odG1sPgorCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185509</attachid>
            <date>2013-01-30 08:27:55 -0800</date>
            <delta_ts>2013-01-30 13:34:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107701-20130130112440.patch</filename>
            <type>text/plain</type>
            <size>3513</size>
            <attacher>sugoi</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0MTI3MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDEzLTAxLTMwICBBbGV4aXMg
SGV0dSAgPHN1Z29pQGNocm9taXVtLm9yZz4KKworICAgICAgICBDYW52YXMgYW5kIERPTSBnbyBv
dXQgb2Ygc3luYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTA3NzAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGVzdDogZmFzdC9jYW52YXMvY2FudmFzLW92ZXJmbG93LWhpZGRlbi1hbmltYXRpb24uaHRt
bAorCisgICAgICAgIFRoZXJlIGlzIGFwcGFyZW50bHkgYSBtaXNzaW5nIHVwZGF0ZSBvZiBsYXll
ciBwb3NpdGlvbnMgd2hlbiB1cGRhdGluZworICAgICAgICBvbmx5IGEgc3VidHJlZS4gSSBhZGRl
ZCBhbiB1cGRhdGUgb2YgdGhlIHJvb3QgbGF5ZXIgcG9zaXRpb24gd2hlbiBhCisgICAgICAgIGxh
eWVyIGlzIGluc2lkZSB0aGUgc3VidHJlZSB0byBtYWtlIHN1cmUgYWxsIGxheWVyIHBvc2l0aW9u
cyBhcmUKKyAgICAgICAgcHJvcGVybHkgdXBkYXRlZC4KKworICAgICAgICAqIHBhZ2UvRnJhbWVW
aWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6bGF5b3V0KToKKyAgICAgICAg
VXNlIHRoZSBkb2N1bWVudCByb290IGluc3RlYWQgb2YgdGhlIHN1YnRyZWUgcm9vdCB0byBnZXQg
dGhlIGxheWVyLgorICAgICAgICBUaGlzIGlzIG5vb3Agd2hlbiBub3QgaW4gdGhlIHN1YnRyZWUg
Y2FzZS4KKwogMjAxMy0wMS0zMCAgRXVnZW5lIEtseXVjaG5pa292ICA8ZXVzdGFzQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBTY3JpcHQgUHJvZmlsZXI6IE1ha2UgcHJv
ZmlsZXIgb3V0cHV0IHR5cGVkLgpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAkocmV2
aXNpb24gMTQxMjcwKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMTk0LDcgKzExOTQsNyBAQCB2b2lkIEZyYW1lVmlldzo6bGF5b3V0KGJv
b2wgYWxsb3dTdWJ0cmVlCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICBsYXll
ciA9IHJvb3QtPmVuY2xvc2luZ0xheWVyKCk7CisgICAgICAgIGxheWVyID0gZG9jdW1lbnQtPnJl
bmRlcmVyKCktPmVuY2xvc2luZ0xheWVyKCk7CiAKICAgICAgICAgbV9hY3Rpb25TY2hlZHVsZXIt
PnBhdXNlKCk7CiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0MTI3MykKKysrIExheW91dFRlc3RzL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEzLTAxLTMwICBBbGV4
aXMgSGV0dSAgPHN1Z29pQGNocm9taXVtLm9yZz4KKworICAgICAgICBDYW52YXMgYW5kIERPTSBn
byBvdXQgb2Ygc3luYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTA3NzAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkZWQgYSBuZXcgbGF5b3V0IHRlc3QgZm9yIG1vdmluZyBhbiBvYmplY3QgKGEgZGl2
KSB3aXRoaW4gYSBkaXYgdGhhdAorICAgICAgICBoYXMgdGhlICJvdmVyZmxvdzpoaWRkZW4iIHBy
b3BlcnR5LgorCisgICAgICAgICogZmFzdC9jYW52YXMvY2FudmFzLW92ZXJmbG93LWhpZGRlbi1h
bmltYXRpb24uaHRtbDogQWRkZWQuCisKIDIwMTMtMDEtMzAgIEp1c3NpIEt1a2tvbmVuICA8anVz
c2kua3Vra29uZW5AaW50ZWwuY29tPgogCiAgICAgICAgIFtFRkxdIFVucmV2aWV3ZWQgZ2FyZGVu
aW5nCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtb3ZlcmZsb3ctaGlkZGVu
LWFuaW1hdGlvbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL2Nh
bnZhcy1vdmVyZmxvdy1oaWRkZW4tYW5pbWF0aW9uLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtb3ZlcmZsb3ctaGlkZGVuLWFuaW1hdGlvbi5odG1s
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU5IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgor
ICA8aGVhZD4KKyAgPHN0eWxlPgorI2NhbnZhcyB7CisgIHdpZHRoOiAzMDBweDsKKyAgaGVpZ2h0
OiAzMDBweDsKKyAgcG9zaXRpb246IGFic29sdXRlOworICBsZWZ0OiAwcHg7CisgIHRvcDogMHB4
OworfQorCisjb3ZlcmxheSB7CisgIHdpZHRoOiAzMDBweDsKKyAgaGVpZ2h0OiAzMDBweDsKKyAg
cG9zaXRpb246IGFic29sdXRlOworICBsZWZ0OiAwcHg7CisgIHRvcDogMHB4OworICBvdmVyZmxv
dzogaGlkZGVuOworfQorCisjZm9sbG93ZXIgeworICBwb3NpdGlvbjogYWJzb2x1dGU7CisgIGxl
ZnQ6IDUwcHg7CisgIHRvcDogNTBweDsKKyAgd2lkdGg6IDUwcHg7CisgIGhlaWdodDogNTBweDsK
KyAgYmFja2dyb3VuZC1jb2xvcjogIzAwRkYwMDsKK30KKyAgPC9zdHlsZT4KKyAgPC9oZWFkPgor
ICA8Ym9keT4KKyAgPGNhbnZhcyBpZD0iY2FudmFzIj48L2NhbnZhcz4KKyAgPGRpdiBpZD0ib3Zl
cmxheSI+PGRpdiBpZD0iZm9sbG93ZXIiPjwvZGl2PjwvZGl2PgorICAgIDxzY3JpcHQ+Cit2YXIg
Y2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhcyIpOworY2FudmFzLndpZHRo
ID0gMzAwOworY2FudmFzLmhlaWdodCA9IDMwMDsKKwordmFyIGN0eCA9IGNhbnZhcy5nZXRDb250
ZXh0KCIyZCIpOworY3R4LmZpbGxTdHlsZSA9ICIjRkYwMDAwIjsKKwordmFyIGZvbGxvd2VyID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvbGxvd2VyIik7CisKK2RyYXdMb29wID0gZnVuY3Rp
b24oKSB7CisgIC8vIHVwZGF0ZSB0aGUgZm9sbG93ZXIKKyAgZm9sbG93ZXIuc3R5bGUubGVmdCA9
ICIwcHgiOworICBmb2xsb3dlci5zdHlsZS50b3AgID0gIjBweCI7CisgIAorICAvLyBkcmF3IHRo
ZSBvYmplY3QKKyAgY3R4LmNsZWFyUmVjdCgwLCAwLCAzMDAsIDMwMCk7CisgIGN0eC5maWxsUmVj
dCgwLCAwLCA1MCwgNTApOworfTsKKword2luZG93LnNldFRpbWVvdXQoZHJhd0xvb3AsIDApOwor
ICAgIDwvc2NyaXB0PgorICA8L2JvZHk+Cis8L2h0bWw+CisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185551</attachid>
            <date>2013-01-30 13:34:45 -0800</date>
            <delta_ts>2013-01-31 06:22:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107701-20130130163129.patch</filename>
            <type>text/plain</type>
            <size>5745</size>
            <attacher>sugoi</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0MTMwMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDEzLTAxLTMwICBBbGV4aXMg
SGV0dSAgPHN1Z29pQGNocm9taXVtLm9yZz4KKworICAgICAgICBDYW52YXMgYW5kIERPTSBnbyBv
dXQgb2Ygc3luYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTA3NzAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGVzdDogZmFzdC9jYW52YXMvY2FudmFzLW92ZXJmbG93LWhpZGRlbi1hbmltYXRpb24uaHRt
bAorCisgICAgICAgIEFkZGVkIGEgcm9vdCBsYXllciB1cGRhdGUgb2YgdGhlIGNvbXBvc2l0aW5n
IHRyZWUgYWZ0ZXIgbGF5b3V0IHRvIHNvbHZlCisgICAgICAgIHRoZSBpc3N1ZS4KKworICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
YXllcjo6dXBkYXRlTGF5ZXJQb3NpdGlvbnNBZnRlckxheW91dCk6CisgICAgICAgIEFkZGVkIGNv
ZGUgZm9yIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIG9ubHkgdGhhdCB3aWxsIHVwZGF0ZSB0aGUK
KyAgICAgICAgY29tcG9zaXRpbmcgdHJlZSBwcm9wZXJseSBmcm9tIHRoZSByb290IGxheWVyIGFm
dGVyIGEgc3VidHJlZSBsYXlvdXQuCisKIDIwMTMtMDEtMzAgIFBoaWxpcCBSb2dlcnMgIDxwZHJA
Z29vZ2xlLmNvbT4KIAogICAgICAgICBUcmFjayBzY2FsZSBhbmQgem9vbSB0b2dldGhlciB3aGVu
IGRyYXdpbmcgU1ZHIGltYWdlcwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuY3BwCShyZXZpc2lvbiAxNDEyNzApCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNzUsNiArMzc1LDE2IEBAIHZvaWQg
UmVuZGVyTGF5ZXI6OnVwZGF0ZUxheWVyUG9zaXRpb25zQWYKICAgICBpZiAodGhpcyAhPSByb290
TGF5ZXIpCiAgICAgICAgIGdlb21ldHJ5TWFwLnB1c2hNYXBwaW5nc1RvQW5jZXN0b3IocGFyZW50
KCksIDApOwogICAgIHVwZGF0ZUxheWVyUG9zaXRpb25zKCZnZW9tZXRyeU1hcCwgZmxhZ3MpOwor
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAgICBpZiAoKGZsYWdzICYgVXBkYXRl
Q29tcG9zaXRpbmdMYXllcnMpICYmIHJvb3RMYXllciAmJiAocm9vdExheWVyICE9IHRoaXMpICYm
IHJvb3RMYXllci0+aXNDb21wb3NpdGVkKCkpIHsKKyAgICAgICAgUmVuZGVyTGF5ZXJCYWNraW5n
OjpVcGRhdGVBZnRlckxheW91dEZsYWdzIHVwZGF0ZUZsYWdzID0gUmVuZGVyTGF5ZXJCYWNraW5n
OjpDb21wb3NpdGluZ0NoaWxkcmVuT25seTsKKyAgICAgICAgaWYgKGZsYWdzICYgTmVlZHNGdWxs
UmVwYWludEluQmFja2luZykKKyAgICAgICAgICAgIHVwZGF0ZUZsYWdzIHw9IFJlbmRlckxheWVy
QmFja2luZzo6TmVlZHNGdWxsUmVwYWludDsKKyAgICAgICAgaWYgKGZsYWdzICYgSXNDb21wb3Np
dGluZ1VwZGF0ZVJvb3QpCisgICAgICAgICAgICB1cGRhdGVGbGFncyB8PSBSZW5kZXJMYXllckJh
Y2tpbmc6OklzVXBkYXRlUm9vdDsKKyAgICAgICAgcm9vdExheWVyLT5iYWNraW5nKCktPnVwZGF0
ZUFmdGVyTGF5b3V0KHVwZGF0ZUZsYWdzKTsKKyAgICB9CisjZW5kaWYKIH0KIAogdm9pZCBSZW5k
ZXJMYXllcjo6dXBkYXRlTGF5ZXJQb3NpdGlvbnMoUmVuZGVyR2VvbWV0cnlNYXAqIGdlb21ldHJ5
TWFwLCBVcGRhdGVMYXllclBvc2l0aW9uc0ZsYWdzIGZsYWdzKQpJbmRleDogTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24g
MTQxMzAzKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTggQEAKKzIwMTMtMDEtMzAgIEFsZXhpcyBIZXR1ICA8c3Vnb2lAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIENhbnZhcyBhbmQgRE9NIGdvIG91dCBvZiBzeW5jCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc3MDEKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBhIG5ldyBsYXlvdXQgdGVzdCBm
b3IgbW92aW5nIGFuIG9iamVjdCAoYSBkaXYpIHdpdGhpbiBhIGRpdiB0aGF0CisgICAgICAgIGhh
cyB0aGUgIm92ZXJmbG93OmhpZGRlbiIgcHJvcGVydHkuCisKKyAgICAgICAgKiBmYXN0L2NhbnZh
cy9jYW52YXMtb3ZlcmZsb3ctaGlkZGVuLWFuaW1hdGlvbi5odG1sOiBBZGRlZC4KKworICAgICAg
ICAqIGZhc3QvY2FudmFzL2NhbnZhcy1vdmVyZmxvdy1oaWRkZW4tYW5pbWF0aW9uLWV4cGVjdGVk
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL2NhbnZhcy1vdmVyZmxvdy1oaWRk
ZW4tYW5pbWF0aW9uLmh0bWw6IEFkZGVkLgorCiAyMDEzLTAxLTMwICBQaGlsaXAgUm9nZXJzICA8
cGRyQGdvb2dsZS5jb20+CiAKICAgICAgICAgVHJhY2sgc2NhbGUgYW5kIHpvb20gdG9nZXRoZXIg
d2hlbiBkcmF3aW5nIFNWRyBpbWFnZXMKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL2Nh
bnZhcy1vdmVyZmxvdy1oaWRkZW4tYW5pbWF0aW9uLWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLW92ZXJmbG93LWhpZGRlbi1hbmltYXRp
b24tZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFz
L2NhbnZhcy1vdmVyZmxvdy1oaWRkZW4tYW5pbWF0aW9uLWV4cGVjdGVkLmh0bWwJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsNjMgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgor
ICA8c3R5bGU+CisjY2FudmFzIHsKKyAgd2lkdGg6IDMwMHB4OworICBoZWlnaHQ6IDMwMHB4Owor
ICBwb3NpdGlvbjogYWJzb2x1dGU7CisgIGxlZnQ6IDBweDsKKyAgdG9wOiAwcHg7Cit9CisKKyNv
dmVybGF5IHsKKyAgd2lkdGg6IDMwMHB4OworICBoZWlnaHQ6IDMwMHB4OworICBwb3NpdGlvbjog
YWJzb2x1dGU7CisgIGxlZnQ6IDBweDsKKyAgdG9wOiAwcHg7CisgIG92ZXJmbG93OiBoaWRkZW47
Cit9CisKKyNmb2xsb3dlciB7CisgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgbGVmdDogMHB4Owor
ICB0b3A6IDBweDsKKyAgd2lkdGg6IDUwcHg7CisgIGhlaWdodDogNTBweDsKKyAgYmFja2dyb3Vu
ZC1jb2xvcjogIzAwRkYwMDsKK30KKyAgPC9zdHlsZT4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAg
PGNhbnZhcyBpZD0iY2FudmFzIj48L2NhbnZhcz4KKyAgPGRpdiBpZD0ib3ZlcmxheSI+PGRpdiBp
ZD0iZm9sbG93ZXIiPjwvZGl2PjwvZGl2PgorICAgIDxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKKyAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cit9CisKK3ZhciBjYW52YXMg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2FudmFzIik7CitjYW52YXMud2lkdGggPSAzMDA7
CitjYW52YXMuaGVpZ2h0ID0gMzAwOworCit2YXIgY3R4ID0gY2FudmFzLmdldENvbnRleHQoIjJk
Iik7CitjdHguZmlsbFN0eWxlID0gIiNGRjAwMDAiOworCit2YXIgZm9sbG93ZXIgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiZm9sbG93ZXIiKTsKKworZHJhd0xvb3AgPSBmdW5jdGlvbigpIHsK
KyAgLy8gZHJhdyB0aGUgb2JqZWN0CisgIGN0eC5jbGVhclJlY3QoMCwgMCwgMzAwLCAzMDApOwor
ICBjdHguZmlsbFJlY3QoMCwgMCwgNTAsIDUwKTsKKworICBpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKKyAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgfQorfTsKKword2luZG93LnNldFRp
bWVvdXQoZHJhd0xvb3AsIDApOworICAgIDwvc2NyaXB0PgorICA8L2JvZHk+Cis8L2h0bWw+CisK
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1vdmVyZmxvdy1oaWRkZW4tYW5p
bWF0aW9uLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFz
LW92ZXJmbG93LWhpZGRlbi1hbmltYXRpb24uaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1vdmVyZmxvdy1oaWRkZW4tYW5pbWF0aW9uLmh0bWwJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsNjcgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisgIDxo
ZWFkPgorICA8c3R5bGU+CisjY2FudmFzIHsKKyAgd2lkdGg6IDMwMHB4OworICBoZWlnaHQ6IDMw
MHB4OworICBwb3NpdGlvbjogYWJzb2x1dGU7CisgIGxlZnQ6IDBweDsKKyAgdG9wOiAwcHg7Cit9
CisKKyNvdmVybGF5IHsKKyAgd2lkdGg6IDMwMHB4OworICBoZWlnaHQ6IDMwMHB4OworICBwb3Np
dGlvbjogYWJzb2x1dGU7CisgIGxlZnQ6IDBweDsKKyAgdG9wOiAwcHg7CisgIG92ZXJmbG93OiBo
aWRkZW47Cit9CisKKyNmb2xsb3dlciB7CisgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgbGVmdDog
NTBweDsKKyAgdG9wOiA1MHB4OworICB3aWR0aDogNTBweDsKKyAgaGVpZ2h0OiA1MHB4OworICBi
YWNrZ3JvdW5kLWNvbG9yOiAjMDBGRjAwOworfQorICA8L3N0eWxlPgorICA8L2hlYWQ+CisgIDxi
b2R5PgorICA8Y2FudmFzIGlkPSJjYW52YXMiPjwvY2FudmFzPgorICA8ZGl2IGlkPSJvdmVybGF5
Ij48ZGl2IGlkPSJmb2xsb3dlciI+PC9kaXY+PC9kaXY+CisgICAgPHNjcmlwdD4KK2lmICh3aW5k
b3cudGVzdFJ1bm5lcikgeworICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KKwordmFy
IGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMiKTsKK2NhbnZhcy53aWR0
aCA9IDMwMDsKK2NhbnZhcy5oZWlnaHQgPSAzMDA7CisKK3ZhciBjdHggPSBjYW52YXMuZ2V0Q29u
dGV4dCgiMmQiKTsKK2N0eC5maWxsU3R5bGUgPSAiI0ZGMDAwMCI7CisKK3ZhciBmb2xsb3dlciA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmb2xsb3dlciIpOworCitkcmF3TG9vcCA9IGZ1bmN0
aW9uKCkgeworICAvLyB1cGRhdGUgdGhlIGZvbGxvd2VyCisgIGZvbGxvd2VyLnN0eWxlLmxlZnQg
PSAiMHB4IjsKKyAgZm9sbG93ZXIuc3R5bGUudG9wICA9ICIwcHgiOworICAKKyAgLy8gZHJhdyB0
aGUgb2JqZWN0CisgIGN0eC5jbGVhclJlY3QoMCwgMCwgMzAwLCAzMDApOworICBjdHguZmlsbFJl
Y3QoMCwgMCwgNTAsIDUwKTsKKworICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgfQorfTsKKword2luZG93LnNldFRpbWVvdXQoZHJhd0xv
b3AsIDApOworICAgIDwvc2NyaXB0PgorICA8L2JvZHk+Cis8L2h0bWw+CisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185769</attachid>
            <date>2013-01-31 06:22:36 -0800</date>
            <delta_ts>2013-01-31 13:12:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107701-20130131091920.patch</filename>
            <type>text/plain</type>
            <size>5824</size>
            <attacher>sugoi</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0MTQxNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDEzLTAxLTMxICBBbGV4aXMg
SGV0dSAgPHN1Z29pQGNocm9taXVtLm9yZz4KKworICAgICAgICBDYW52YXMgYW5kIERPTSBnbyBv
dXQgb2Ygc3luYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTA3NzAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGVzdDogZmFzdC9jYW52YXMvY2FudmFzLW92ZXJmbG93LWhpZGRlbi1hbmltYXRpb24uaHRt
bAorCisgICAgICAgIEFkZGVkIGFuIGVuY2xvc2luZyBjb21wb3NpdGluZyBsYXllciB1cGRhdGUg
b2YgdGhlIGNvbXBvc2l0aW5nIHRyZWUKKyAgICAgICAgYWZ0ZXIgbGF5b3V0IHRvIHNvbHZlIHRo
ZSBpc3N1ZS4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJMYXllcjo6dXBkYXRlTGF5ZXJQb3NpdGlvbnNBZnRlckxheW91dCk6
CisgICAgICAgIEFkZGVkIGNvZGUgZm9yIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIG9ubHkgdGhh
dCB3aWxsIHVwZGF0ZSB0aGUKKyAgICAgICAgY29tcG9zaXRpbmcgdHJlZSBwcm9wZXJseSBmcm9t
IHRoZSBlbmNsb3NpbmcgY29tcG9zaXRpbmcgbGF5ZXIgYWZ0ZXIKKyAgICAgICAgYSBzdWJ0cmVl
IGxheW91dC4KKwogMjAxMy0wMS0zMSAgQW5kcmV5IEFkYWlraW4gIDxhYW5kcmV5QGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBFeGNlcHRpb24gaW4gSGVhcFNuYXBzaG90
Vmlldy5qcwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCShy
ZXZpc2lvbiAxNDEyNzApCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNzUsNiArMzc1LDE5IEBAIHZvaWQgUmVuZGVyTGF5ZXI6
OnVwZGF0ZUxheWVyUG9zaXRpb25zQWYKICAgICBpZiAodGhpcyAhPSByb290TGF5ZXIpCiAgICAg
ICAgIGdlb21ldHJ5TWFwLnB1c2hNYXBwaW5nc1RvQW5jZXN0b3IocGFyZW50KCksIDApOwogICAg
IHVwZGF0ZUxheWVyUG9zaXRpb25zKCZnZW9tZXRyeU1hcCwgZmxhZ3MpOworI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKKyAgICBpZiAoKGZsYWdzICYgVXBkYXRlQ29tcG9zaXRpbmdM
YXllcnMpICYmIChyb290TGF5ZXIgIT0gdGhpcykpIHsKKyAgICAgICAgaWYgKFJlbmRlckxheWVy
KiBjb21wTGF5ZXIgPSBlbmNsb3NpbmdDb21wb3NpdGluZ0xheWVyKCkpIHsKKyAgICAgICAgICAg
IFJlbmRlckxheWVyQmFja2luZzo6VXBkYXRlQWZ0ZXJMYXlvdXRGbGFncyB1cGRhdGVGbGFncyA9
CisgICAgICAgICAgICAgICAgUmVuZGVyTGF5ZXJCYWNraW5nOjpDb21wb3NpdGluZ0NoaWxkcmVu
T25seTsKKyAgICAgICAgICAgIGlmIChmbGFncyAmIE5lZWRzRnVsbFJlcGFpbnRJbkJhY2tpbmcp
CisgICAgICAgICAgICAgICAgdXBkYXRlRmxhZ3MgfD0gUmVuZGVyTGF5ZXJCYWNraW5nOjpOZWVk
c0Z1bGxSZXBhaW50OworICAgICAgICAgICAgaWYgKGZsYWdzICYgSXNDb21wb3NpdGluZ1VwZGF0
ZVJvb3QpCisgICAgICAgICAgICAgICAgdXBkYXRlRmxhZ3MgfD0gUmVuZGVyTGF5ZXJCYWNraW5n
OjpJc1VwZGF0ZVJvb3Q7CisgICAgICAgICAgICBjb21wTGF5ZXItPmJhY2tpbmcoKS0+dXBkYXRl
QWZ0ZXJMYXlvdXQodXBkYXRlRmxhZ3MpOworICAgICAgICB9CisgICAgfQorI2VuZGlmCiB9CiAK
IHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZUxheWVyUG9zaXRpb25zKFJlbmRlckdlb21ldHJ5TWFw
KiBnZW9tZXRyeU1hcCwgVXBkYXRlTGF5ZXJQb3NpdGlvbnNGbGFncyBmbGFncykKSW5kZXg6IExh
eW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDE0MTQxNSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDE2IEBACisyMDEzLTAxLTMxICBBbGV4aXMgSGV0dSAgPHN1Z29pQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBDYW52YXMgYW5kIERPTSBnbyBvdXQgb2Ygc3luYworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA3NzAxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgYSBuZXcgbGF5
b3V0IHRlc3QgZm9yIG1vdmluZyBhbiBvYmplY3QgKGEgZGl2KSB3aXRoaW4gYSBkaXYgdGhhdAor
ICAgICAgICBoYXMgdGhlICJvdmVyZmxvdzpoaWRkZW4iIHByb3BlcnR5LgorCisgICAgICAgICog
ZmFzdC9jYW52YXMvY2FudmFzLW92ZXJmbG93LWhpZGRlbi1hbmltYXRpb24tZXhwZWN0ZWQuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9jYW52YXMvY2FudmFzLW92ZXJmbG93LWhpZGRlbi1h
bmltYXRpb24uaHRtbDogQWRkZWQuCisKIDIwMTMtMDEtMzEgIEFuZHJleSBMdXNobmlrb3YgIDxs
dXNobmlrb3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGRvIG5vdCBz
ZXQgYW55IHRleHRDb250ZW50IGluIG92ZXJsYXkgaGlnaGxpZ2h0IHNwYW5zCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtb3ZlcmZsb3ctaGlkZGVuLWFuaW1hdGlvbi1leHBl
Y3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1v
dmVyZmxvdy1oaWRkZW4tYW5pbWF0aW9uLWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtb3ZlcmZsb3ctaGlkZGVuLWFuaW1hdGlvbi1l
eHBlY3RlZC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYzIEBACis8IWRvY3R5cGUgaHRt
bD4KKzxodG1sPgorICA8aGVhZD4KKyAgPHN0eWxlPgorI2NhbnZhcyB7CisgIHdpZHRoOiAzMDBw
eDsKKyAgaGVpZ2h0OiAzMDBweDsKKyAgcG9zaXRpb246IGFic29sdXRlOworICBsZWZ0OiAwcHg7
CisgIHRvcDogMHB4OworfQorCisjb3ZlcmxheSB7CisgIHdpZHRoOiAzMDBweDsKKyAgaGVpZ2h0
OiAzMDBweDsKKyAgcG9zaXRpb246IGFic29sdXRlOworICBsZWZ0OiAwcHg7CisgIHRvcDogMHB4
OworICBvdmVyZmxvdzogaGlkZGVuOworfQorCisjZm9sbG93ZXIgeworICBwb3NpdGlvbjogYWJz
b2x1dGU7CisgIGxlZnQ6IDBweDsKKyAgdG9wOiAwcHg7CisgIHdpZHRoOiA1MHB4OworICBoZWln
aHQ6IDUwcHg7CisgIGJhY2tncm91bmQtY29sb3I6ICMwMEZGMDA7Cit9CisgIDwvc3R5bGU+Cisg
IDwvaGVhZD4KKyAgPGJvZHk+CisgIDxjYW52YXMgaWQ9ImNhbnZhcyI+PC9jYW52YXM+CisgIDxk
aXYgaWQ9Im92ZXJsYXkiPjxkaXYgaWQ9ImZvbGxvd2VyIj48L2Rpdj48L2Rpdj4KKyAgICA8c2Ny
aXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9u
ZSgpOworfQorCit2YXIgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhcyIp
OworY2FudmFzLndpZHRoID0gMzAwOworY2FudmFzLmhlaWdodCA9IDMwMDsKKwordmFyIGN0eCA9
IGNhbnZhcy5nZXRDb250ZXh0KCIyZCIpOworY3R4LmZpbGxTdHlsZSA9ICIjRkYwMDAwIjsKKwor
dmFyIGZvbGxvd2VyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvbGxvd2VyIik7CisKK2Ry
YXdMb29wID0gZnVuY3Rpb24oKSB7CisgIC8vIGRyYXcgdGhlIG9iamVjdAorICBjdHguY2xlYXJS
ZWN0KDAsIDAsIDMwMCwgMzAwKTsKKyAgY3R4LmZpbGxSZWN0KDAsIDAsIDUwLCA1MCk7CisKKyAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cisg
IH0KK307CisKK3dpbmRvdy5zZXRUaW1lb3V0KGRyYXdMb29wLCAwKTsKKyAgICA8L3NjcmlwdD4K
KyAgPC9ib2R5PgorPC9odG1sPgorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52
YXMtb3ZlcmZsb3ctaGlkZGVuLWFuaW1hdGlvbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1vdmVyZmxvdy1oaWRkZW4tYW5pbWF0aW9uLmh0bWwJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtb3ZlcmZsb3ctaGlk
ZGVuLWFuaW1hdGlvbi5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDY3IEBACis8IWRvY3R5
cGUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgPHN0eWxlPgorI2NhbnZhcyB7CisgIHdpZHRo
OiAzMDBweDsKKyAgaGVpZ2h0OiAzMDBweDsKKyAgcG9zaXRpb246IGFic29sdXRlOworICBsZWZ0
OiAwcHg7CisgIHRvcDogMHB4OworfQorCisjb3ZlcmxheSB7CisgIHdpZHRoOiAzMDBweDsKKyAg
aGVpZ2h0OiAzMDBweDsKKyAgcG9zaXRpb246IGFic29sdXRlOworICBsZWZ0OiAwcHg7CisgIHRv
cDogMHB4OworICBvdmVyZmxvdzogaGlkZGVuOworfQorCisjZm9sbG93ZXIgeworICBwb3NpdGlv
bjogYWJzb2x1dGU7CisgIGxlZnQ6IDUwcHg7CisgIHRvcDogNTBweDsKKyAgd2lkdGg6IDUwcHg7
CisgIGhlaWdodDogNTBweDsKKyAgYmFja2dyb3VuZC1jb2xvcjogIzAwRkYwMDsKK30KKyAgPC9z
dHlsZT4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgPGNhbnZhcyBpZD0iY2FudmFzIj48L2NhbnZh
cz4KKyAgPGRpdiBpZD0ib3ZlcmxheSI+PGRpdiBpZD0iZm9sbG93ZXIiPjwvZGl2PjwvZGl2Pgor
ICAgIDxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgdGVzdFJ1bm5lci53YWl0
VW50aWxEb25lKCk7Cit9CisKK3ZhciBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
Y2FudmFzIik7CitjYW52YXMud2lkdGggPSAzMDA7CitjYW52YXMuaGVpZ2h0ID0gMzAwOworCit2
YXIgY3R4ID0gY2FudmFzLmdldENvbnRleHQoIjJkIik7CitjdHguZmlsbFN0eWxlID0gIiNGRjAw
MDAiOworCit2YXIgZm9sbG93ZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZm9sbG93ZXIi
KTsKKworZHJhd0xvb3AgPSBmdW5jdGlvbigpIHsKKyAgLy8gdXBkYXRlIHRoZSBmb2xsb3dlcgor
ICBmb2xsb3dlci5zdHlsZS5sZWZ0ID0gIjBweCI7CisgIGZvbGxvd2VyLnN0eWxlLnRvcCAgPSAi
MHB4IjsKKyAgCisgIC8vIGRyYXcgdGhlIG9iamVjdAorICBjdHguY2xlYXJSZWN0KDAsIDAsIDMw
MCwgMzAwKTsKKyAgY3R4LmZpbGxSZWN0KDAsIDAsIDUwLCA1MCk7CisKKyAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgIH0KK307CisKK3dp
bmRvdy5zZXRUaW1lb3V0KGRyYXdMb29wLCAwKTsKKyAgICA8L3NjcmlwdD4KKyAgPC9ib2R5Pgor
PC9odG1sPgorCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185846</attachid>
            <date>2013-01-31 13:12:42 -0800</date>
            <delta_ts>2013-02-13 14:13:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107701-20130131160925.patch</filename>
            <type>text/plain</type>
            <size>5659</size>
            <attacher>sugoi</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0MTQ3MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDEzLTAxLTMxICBBbGV4aXMg
SGV0dSAgPHN1Z29pQGNocm9taXVtLm9yZz4KKworICAgICAgICBDYW52YXMgYW5kIERPTSBnbyBv
dXQgb2Ygc3luYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTA3NzAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGVzdDogZmFzdC9jYW52YXMvY2FudmFzLW92ZXJmbG93LWhpZGRlbi1hbmltYXRpb24uaHRt
bAorCisgICAgICAgIEFkZGVkIGFuIHVwZGF0ZSBvZiB0aGUgY3VycmVudCBjb21wb3NpdG9yIGZy
b20gaXRzIHJvb3QgYWZ0ZXIgdGhlCisgICAgICAgIGxheW91dCBpcyBkb25lIHRvIHNvbHZlIHRo
ZSBpc3N1ZS4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJMYXllcjo6dXBkYXRlTGF5ZXJQb3NpdGlvbnNBZnRlckxheW91dCk6
CisgICAgICAgIEFkZGVkIGNvZGUgZm9yIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIG9ubHkgdGhh
dCB3aWxsIHVwZGF0ZSB0aGUKKyAgICAgICAgY29tcG9zaXRpbmcgdHJlZSBwcm9wZXJseSBmcm9t
IHRoZSByb290IG9mIHRoZSBjb21wb3NpdG9yIGFmdGVyIGEKKyAgICAgICAgc3VidHJlZSBsYXlv
dXQuCisKIDIwMTMtMDEtMzEgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAog
ICAgICAgICBVc2UgT1MoKSBhbmQgUExBVEZPUk0oKSBtYWNyb3MgaW4gV2ViQ29yZVByZWZpeC5o
IGZvciByZWFkYWJpbGl0eQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuY3BwCShyZXZpc2lvbiAxNDE0NzApCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNzUsNiArMzc1LDE2IEBAIHZvaWQgUmVu
ZGVyTGF5ZXI6OnVwZGF0ZUxheWVyUG9zaXRpb25zQWYKICAgICBpZiAodGhpcyAhPSByb290TGF5
ZXIpCiAgICAgICAgIGdlb21ldHJ5TWFwLnB1c2hNYXBwaW5nc1RvQW5jZXN0b3IocGFyZW50KCks
IDApOwogICAgIHVwZGF0ZUxheWVyUG9zaXRpb25zKCZnZW9tZXRyeU1hcCwgZmxhZ3MpOworI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAgICBpZiAoKGZsYWdzICYgVXBkYXRlQ29t
cG9zaXRpbmdMYXllcnMpICYmICh0aGlzICE9IHJvb3RMYXllcikpIHsKKyAgICAgICAgaWYgKFJl
bmRlckxheWVyQ29tcG9zaXRvciogbGF5ZXJDb21wb3NpdG9yID0gY29tcG9zaXRvcigpKSB7Cisg
ICAgICAgICAgICBpZiAoIWxheWVyQ29tcG9zaXRvci0+Y29tcG9zaXRpbmdMYXllcnNOZWVkUmVi
dWlsZCgpKSB7CisgICAgICAgICAgICAgICAgUmVuZGVyTGF5ZXIqIGxheWVyID0gbGF5ZXJDb21w
b3NpdG9yLT5yb290UmVuZGVyTGF5ZXIoKTsKKyAgICAgICAgICAgICAgICBsYXllckNvbXBvc2l0
b3ItPnVwZGF0ZUNvbXBvc2l0aW5nRGVzY2VuZGFudEdlb21ldHJ5KGxheWVyLCBsYXllciwgdHJ1
ZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisjZW5kaWYKIH0KIAogdm9pZCBS
ZW5kZXJMYXllcjo6dXBkYXRlTGF5ZXJQb3NpdGlvbnMoUmVuZGVyR2VvbWV0cnlNYXAqIGdlb21l
dHJ5TWFwLCBVcGRhdGVMYXllclBvc2l0aW9uc0ZsYWdzIGZsYWdzKQpJbmRleDogTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNp
b24gMTQxNDcyKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTYgQEAKKzIwMTMtMDEtMzEgIEFsZXhpcyBIZXR1ICA8c3Vnb2lAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIENhbnZhcyBhbmQgRE9NIGdvIG91dCBvZiBzeW5jCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc3MDEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBhIG5ldyBsYXlvdXQgdGVz
dCBmb3IgbW92aW5nIGFuIG9iamVjdCAoYSBkaXYpIHdpdGhpbiBhIGRpdiB0aGF0CisgICAgICAg
IGhhcyB0aGUgIm92ZXJmbG93OmhpZGRlbiIgcHJvcGVydHkuCisKKyAgICAgICAgKiBmYXN0L2Nh
bnZhcy9jYW52YXMtb3ZlcmZsb3ctaGlkZGVuLWFuaW1hdGlvbi1leHBlY3RlZC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy9jYW52YXMtb3ZlcmZsb3ctaGlkZGVuLWFuaW1hdGlv
bi5odG1sOiBBZGRlZC4KKwogMjAxMy0wMS0zMSAgUm91c2xhbiBTb2xvbWFraGluICA8cm91c2xh
bkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBFeHBlY3Qgc3BlbGxjaGVjayB0
byB3b3JrIGZvciBleGFjdGx5LXNlbGVjdGVkIG11bHRpLXdvcmQgbWlzc3BlbGxpbmdzCkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtb3ZlcmZsb3ctaGlkZGVuLWFuaW1hdGlv
bi1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL2Nh
bnZhcy1vdmVyZmxvdy1oaWRkZW4tYW5pbWF0aW9uLWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtb3ZlcmZsb3ctaGlkZGVuLWFuaW1h
dGlvbi1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYzIEBACis8IWRvY3R5
cGUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgPHN0eWxlPgorI2NhbnZhcyB7CisgIHdpZHRo
OiAzMDBweDsKKyAgaGVpZ2h0OiAzMDBweDsKKyAgcG9zaXRpb246IGFic29sdXRlOworICBsZWZ0
OiAwcHg7CisgIHRvcDogMHB4OworfQorCisjb3ZlcmxheSB7CisgIHdpZHRoOiAzMDBweDsKKyAg
aGVpZ2h0OiAzMDBweDsKKyAgcG9zaXRpb246IGFic29sdXRlOworICBsZWZ0OiAwcHg7CisgIHRv
cDogMHB4OworICBvdmVyZmxvdzogaGlkZGVuOworfQorCisjZm9sbG93ZXIgeworICBwb3NpdGlv
bjogYWJzb2x1dGU7CisgIGxlZnQ6IDBweDsKKyAgdG9wOiAwcHg7CisgIHdpZHRoOiA1MHB4Owor
ICBoZWlnaHQ6IDUwcHg7CisgIGJhY2tncm91bmQtY29sb3I6ICMwMEZGMDA7Cit9CisgIDwvc3R5
bGU+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgIDxjYW52YXMgaWQ9ImNhbnZhcyI+PC9jYW52YXM+
CisgIDxkaXYgaWQ9Im92ZXJsYXkiPjxkaXYgaWQ9ImZvbGxvd2VyIj48L2Rpdj48L2Rpdj4KKyAg
ICA8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgIHRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOworfQorCit2YXIgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNh
bnZhcyIpOworY2FudmFzLndpZHRoID0gMzAwOworY2FudmFzLmhlaWdodCA9IDMwMDsKKwordmFy
IGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCIyZCIpOworY3R4LmZpbGxTdHlsZSA9ICIjRkYwMDAw
IjsKKwordmFyIGZvbGxvd2VyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvbGxvd2VyIik7
CisKK2RyYXdMb29wID0gZnVuY3Rpb24oKSB7CisgIC8vIGRyYXcgdGhlIG9iamVjdAorICBjdHgu
Y2xlYXJSZWN0KDAsIDAsIDMwMCwgMzAwKTsKKyAgY3R4LmZpbGxSZWN0KDAsIDAsIDUwLCA1MCk7
CisKKyAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25l
KCk7CisgIH0KK307CisKK3dpbmRvdy5zZXRUaW1lb3V0KGRyYXdMb29wLCAwKTsKKyAgICA8L3Nj
cmlwdD4KKyAgPC9ib2R5PgorPC9odG1sPgorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZh
cy9jYW52YXMtb3ZlcmZsb3ctaGlkZGVuLWFuaW1hdGlvbi5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1vdmVyZmxvdy1oaWRkZW4tYW5pbWF0aW9uLmh0
bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtb3ZlcmZs
b3ctaGlkZGVuLWFuaW1hdGlvbi5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDY3IEBACis8
IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgPHN0eWxlPgorI2NhbnZhcyB7Cisg
IHdpZHRoOiAzMDBweDsKKyAgaGVpZ2h0OiAzMDBweDsKKyAgcG9zaXRpb246IGFic29sdXRlOwor
ICBsZWZ0OiAwcHg7CisgIHRvcDogMHB4OworfQorCisjb3ZlcmxheSB7CisgIHdpZHRoOiAzMDBw
eDsKKyAgaGVpZ2h0OiAzMDBweDsKKyAgcG9zaXRpb246IGFic29sdXRlOworICBsZWZ0OiAwcHg7
CisgIHRvcDogMHB4OworICBvdmVyZmxvdzogaGlkZGVuOworfQorCisjZm9sbG93ZXIgeworICBw
b3NpdGlvbjogYWJzb2x1dGU7CisgIGxlZnQ6IDUwcHg7CisgIHRvcDogNTBweDsKKyAgd2lkdGg6
IDUwcHg7CisgIGhlaWdodDogNTBweDsKKyAgYmFja2dyb3VuZC1jb2xvcjogIzAwRkYwMDsKK30K
KyAgPC9zdHlsZT4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgPGNhbnZhcyBpZD0iY2FudmFzIj48
L2NhbnZhcz4KKyAgPGRpdiBpZD0ib3ZlcmxheSI+PGRpdiBpZD0iZm9sbG93ZXIiPjwvZGl2Pjwv
ZGl2PgorICAgIDxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7Cit9CisKK3ZhciBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiY2FudmFzIik7CitjYW52YXMud2lkdGggPSAzMDA7CitjYW52YXMuaGVpZ2h0ID0gMzAw
OworCit2YXIgY3R4ID0gY2FudmFzLmdldENvbnRleHQoIjJkIik7CitjdHguZmlsbFN0eWxlID0g
IiNGRjAwMDAiOworCit2YXIgZm9sbG93ZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZm9s
bG93ZXIiKTsKKworZHJhd0xvb3AgPSBmdW5jdGlvbigpIHsKKyAgLy8gdXBkYXRlIHRoZSBmb2xs
b3dlcgorICBmb2xsb3dlci5zdHlsZS5sZWZ0ID0gIjBweCI7CisgIGZvbGxvd2VyLnN0eWxlLnRv
cCAgPSAiMHB4IjsKKyAgCisgIC8vIGRyYXcgdGhlIG9iamVjdAorICBjdHguY2xlYXJSZWN0KDAs
IDAsIDMwMCwgMzAwKTsKKyAgY3R4LmZpbGxSZWN0KDAsIDAsIDUwLCA1MCk7CisKKyAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgIH0KK307
CisKK3dpbmRvdy5zZXRUaW1lb3V0KGRyYXdMb29wLCAwKTsKKyAgICA8L3NjcmlwdD4KKyAgPC9i
b2R5PgorPC9odG1sPgorCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188179</attachid>
            <date>2013-02-13 14:13:40 -0800</date>
            <delta_ts>2013-03-04 14:18:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107701-20130213171009.patch</filename>
            <type>text/plain</type>
            <size>5481</size>
            <attacher>sugoi</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0Mjc5NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDEzLTAyLTEzICBBbGV4aXMg
SGV0dSAgPHN1Z29pQGNocm9taXVtLm9yZz4KKworICAgICAgICBDYW52YXMgYW5kIERPTSBnbyBv
dXQgb2Ygc3luYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTA3NzAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGVzdDogZmFzdC9jYW52YXMvY2FudmFzLW92ZXJmbG93LWhpZGRlbi1hbmltYXRpb24uaHRt
bAorCisgICAgICAgIEFkZGVkIGFuIHVwZGF0ZSBvZiB0aGUgY3VycmVudCBjb21wb3NpdG9yIGZy
b20gdGhlIGxheWVyJ3Mgc3RhY2tpbmcKKyAgICAgICAgY29udGFpbmVyIHdoZW4gdGhlIGxheWVy
IGl0c2VsZiBpc24ndCBhIHN0YWNraW5nIGNvbnRhaW5lci4KKworICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJC
YWNraW5nOjp1cGRhdGVBZnRlckxheW91dCk6CisgICAgICAgIEFkZGVkIGFuIHVwZGF0ZSBvZiB0
aGUgc3RhY2tpbmcgY29udGFpbmVyIG9mIHRoZSBvd25pbmcgbGF5ZXIgb2YgdGhlCisgICAgICAg
IGxheWVyIGJhY2tpbmcgd2hlbiB0aGUgb3duaW5nIGxheWVyIGlzbid0IGEgc3RhY2tpbmcgY29u
dGFpbmVyIGl0c2VsZi4KKwogMjAxMy0wMi0xMyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQu
b3JnPgogCiAgICAgICAgIENsZWFuIHVwIHNvbWUgc3R5bGUgbml0cyBpbiBIVE1MUHJlbG9hZFNj
YW5uZXIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJh
Y2tpbmcuY3BwCShyZXZpc2lvbiAxNDI3ODIpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJCYWNraW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDYwLDYgKzQ2MCw5IEBA
IHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVBZnRlckxheW8KICAgICAgICAgaWYgKGZs
YWdzICYgSXNVcGRhdGVSb290KSB7CiAgICAgICAgICAgICB1cGRhdGVHcmFwaGljc0xheWVyR2Vv
bWV0cnkoKTsKICAgICAgICAgICAgIGxheWVyQ29tcG9zaXRvci0+dXBkYXRlUm9vdExheWVyUG9z
aXRpb24oKTsKKyAgICAgICAgICAgIFJlbmRlckxheWVyKiBzdGFja2luZ0NvbnRhaW5lciA9IG1f
b3duaW5nTGF5ZXItPmVuY2xvc2luZ1N0YWNraW5nQ29udGFpbmVyKCk7CisgICAgICAgICAgICBp
ZiAoIWxheWVyQ29tcG9zaXRvci0+Y29tcG9zaXRpbmdMYXllcnNOZWVkUmVidWlsZCgpICYmIHN0
YWNraW5nQ29udGFpbmVyICYmIChzdGFja2luZ0NvbnRhaW5lciAhPSBtX293bmluZ0xheWVyKSkK
KyAgICAgICAgICAgICAgICBsYXllckNvbXBvc2l0b3ItPnVwZGF0ZUNvbXBvc2l0aW5nRGVzY2Vu
ZGFudEdlb21ldHJ5KHN0YWNraW5nQ29udGFpbmVyLCBzdGFja2luZ0NvbnRhaW5lciwgZmxhZ3Mg
JiBDb21wb3NpdGluZ0NoaWxkcmVuT25seSk7CiAgICAgICAgIH0KICAgICB9CiAgICAgCkluZGV4
OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCShyZXZpc2lvbiAxNDI3OTYpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAxMy0wMi0xMyAgQWxleGlzIEhldHUgIDxzdWdvaUBj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ2FudmFzIGFuZCBET00gZ28gb3V0IG9mIHN5bmMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNzcwMQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIGEgbmV3
IGxheW91dCB0ZXN0IGZvciBtb3ZpbmcgYW4gb2JqZWN0IChhIGRpdikgd2l0aGluIGEgZGl2IHRo
YXQKKyAgICAgICAgaGFzIHRoZSAib3ZlcmZsb3c6aGlkZGVuIiBwcm9wZXJ0eS4KKworICAgICAg
ICAqIGZhc3QvY2FudmFzL2NhbnZhcy1vdmVyZmxvdy1oaWRkZW4tYW5pbWF0aW9uLWV4cGVjdGVk
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL2NhbnZhcy1vdmVyZmxvdy1oaWRk
ZW4tYW5pbWF0aW9uLmh0bWw6IEFkZGVkLgorCiAyMDEzLTAyLTEzICBMZXZpIFdlaW50cmF1YiAg
PGxldml3QGNocm9taXVtLm9yZz4KIAogICAgICAgICBCaWRpLUlzb2xhdGVkIGlubGluZXMgY2Fu
IGNhdXNlIHN1YnNlcXVlbnQgY29udGVudCB0byBub3QgYmUgcmVuZGVyZWQKSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1vdmVyZmxvdy1oaWRkZW4tYW5pbWF0aW9uLWV4cGVj
dGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLW92
ZXJmbG93LWhpZGRlbi1hbmltYXRpb24tZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMCkKKysrIExh
eW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1vdmVyZmxvdy1oaWRkZW4tYW5pbWF0aW9uLWV4
cGVjdGVkLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjMgQEAKKzwhZG9jdHlwZSBodG1s
PgorPGh0bWw+CisgIDxoZWFkPgorICA8c3R5bGU+CisjY2FudmFzIHsKKyAgd2lkdGg6IDMwMHB4
OworICBoZWlnaHQ6IDMwMHB4OworICBwb3NpdGlvbjogYWJzb2x1dGU7CisgIGxlZnQ6IDBweDsK
KyAgdG9wOiAwcHg7Cit9CisKKyNvdmVybGF5IHsKKyAgd2lkdGg6IDMwMHB4OworICBoZWlnaHQ6
IDMwMHB4OworICBwb3NpdGlvbjogYWJzb2x1dGU7CisgIGxlZnQ6IDBweDsKKyAgdG9wOiAwcHg7
CisgIG92ZXJmbG93OiBoaWRkZW47Cit9CisKKyNmb2xsb3dlciB7CisgIHBvc2l0aW9uOiBhYnNv
bHV0ZTsKKyAgbGVmdDogMHB4OworICB0b3A6IDBweDsKKyAgd2lkdGg6IDUwcHg7CisgIGhlaWdo
dDogNTBweDsKKyAgYmFja2dyb3VuZC1jb2xvcjogIzAwRkYwMDsKK30KKyAgPC9zdHlsZT4KKyAg
PC9oZWFkPgorICA8Ym9keT4KKyAgPGNhbnZhcyBpZD0iY2FudmFzIj48L2NhbnZhcz4KKyAgPGRp
diBpZD0ib3ZlcmxheSI+PGRpdiBpZD0iZm9sbG93ZXIiPjwvZGl2PjwvZGl2PgorICAgIDxzY3Jp
cHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25l
KCk7Cit9CisKK3ZhciBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2FudmFzIik7
CitjYW52YXMud2lkdGggPSAzMDA7CitjYW52YXMuaGVpZ2h0ID0gMzAwOworCit2YXIgY3R4ID0g
Y2FudmFzLmdldENvbnRleHQoIjJkIik7CitjdHguZmlsbFN0eWxlID0gIiNGRjAwMDAiOworCit2
YXIgZm9sbG93ZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZm9sbG93ZXIiKTsKKworZHJh
d0xvb3AgPSBmdW5jdGlvbigpIHsKKyAgLy8gZHJhdyB0aGUgb2JqZWN0CisgIGN0eC5jbGVhclJl
Y3QoMCwgMCwgMzAwLCAzMDApOworICBjdHguZmlsbFJlY3QoMCwgMCwgNTAsIDUwKTsKKworICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAg
fQorfTsKKword2luZG93LnNldFRpbWVvdXQoZHJhd0xvb3AsIDApOworICAgIDwvc2NyaXB0Pgor
ICA8L2JvZHk+Cis8L2h0bWw+CisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZh
cy1vdmVyZmxvdy1oaWRkZW4tYW5pbWF0aW9uLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9jYW52YXMvY2FudmFzLW92ZXJmbG93LWhpZGRlbi1hbmltYXRpb24uaHRtbAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1vdmVyZmxvdy1oaWRk
ZW4tYW5pbWF0aW9uLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjcgQEAKKzwhZG9jdHlw
ZSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgorICA8c3R5bGU+CisjY2FudmFzIHsKKyAgd2lkdGg6
IDMwMHB4OworICBoZWlnaHQ6IDMwMHB4OworICBwb3NpdGlvbjogYWJzb2x1dGU7CisgIGxlZnQ6
IDBweDsKKyAgdG9wOiAwcHg7Cit9CisKKyNvdmVybGF5IHsKKyAgd2lkdGg6IDMwMHB4OworICBo
ZWlnaHQ6IDMwMHB4OworICBwb3NpdGlvbjogYWJzb2x1dGU7CisgIGxlZnQ6IDBweDsKKyAgdG9w
OiAwcHg7CisgIG92ZXJmbG93OiBoaWRkZW47Cit9CisKKyNmb2xsb3dlciB7CisgIHBvc2l0aW9u
OiBhYnNvbHV0ZTsKKyAgbGVmdDogNTBweDsKKyAgdG9wOiA1MHB4OworICB3aWR0aDogNTBweDsK
KyAgaGVpZ2h0OiA1MHB4OworICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBGRjAwOworfQorICA8L3N0
eWxlPgorICA8L2hlYWQ+CisgIDxib2R5PgorICA8Y2FudmFzIGlkPSJjYW52YXMiPjwvY2FudmFz
PgorICA8ZGl2IGlkPSJvdmVybGF5Ij48ZGl2IGlkPSJmb2xsb3dlciI+PC9kaXY+PC9kaXY+Cisg
ICAgPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICB0ZXN0UnVubmVyLndhaXRV
bnRpbERvbmUoKTsKK30KKwordmFyIGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJj
YW52YXMiKTsKK2NhbnZhcy53aWR0aCA9IDMwMDsKK2NhbnZhcy5oZWlnaHQgPSAzMDA7CisKK3Zh
ciBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKK2N0eC5maWxsU3R5bGUgPSAiI0ZGMDAw
MCI7CisKK3ZhciBmb2xsb3dlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmb2xsb3dlciIp
OworCitkcmF3TG9vcCA9IGZ1bmN0aW9uKCkgeworICAvLyB1cGRhdGUgdGhlIGZvbGxvd2VyCisg
IGZvbGxvd2VyLnN0eWxlLmxlZnQgPSAiMHB4IjsKKyAgZm9sbG93ZXIuc3R5bGUudG9wICA9ICIw
cHgiOworICAKKyAgLy8gZHJhdyB0aGUgb2JqZWN0CisgIGN0eC5jbGVhclJlY3QoMCwgMCwgMzAw
LCAzMDApOworICBjdHguZmlsbFJlY3QoMCwgMCwgNTAsIDUwKTsKKworICBpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgfQorfTsKKword2lu
ZG93LnNldFRpbWVvdXQoZHJhd0xvb3AsIDApOworICAgIDwvc2NyaXB0PgorICA8L2JvZHk+Cis8
L2h0bWw+CisK
</data>

          </attachment>
      

    </bug>

</bugzilla>