<?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>70564</bug_id>
          
          <creation_ts>2011-10-20 16:54:53 -0700</creation_ts>
          <short_desc>[Chromium] Make root layer always opaque</short_desc>
          <delta_ts>2011-12-06 12:17:22 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Dana Jansens">danakj</reporter>
          <assigned_to name="Dana Jansens">danakj</assigned_to>
          <cc>backer</cc>
    
    <cc>cc-bugs</cc>
    
    <cc>jamesr</cc>
    
    <cc>piman</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>wjmaclean</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>488001</commentid>
    <comment_count>0</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2011-10-20 16:54:53 -0700</bug_when>
    <thetext>[Chromium] Make root layer always opaque</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>488006</commentid>
    <comment_count>1</comment_count>
      <attachid>111875</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2011-10-20 17:06:49 -0700</bug_when>
    <thetext>Created attachment 111875
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>488009</commentid>
    <comment_count>2</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2011-10-20 17:10:16 -0700</bug_when>
    <thetext>Attempt to make the root layer marked as opaque, for #70085.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>488024</commentid>
    <comment_count>3</comment_count>
      <attachid>111875</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-10-20 17:26:07 -0700</bug_when>
    <thetext>Comment on attachment 111875
Patch

I&apos;d rather we set the bit instead of overriding what &apos;opaque()&apos; returns.  Can you look at where we set the &quot;NonComposited&quot; bit and call setOpaque() there instead (http://google.com/codesearch#OAMlx_jo-ck/src/third_party/WebKit/Source/WebCore/platform/graphics/chromium/NonCompositedContentHost.cpp&amp;q=setIsNonCompo&amp;exact_package=chromium&amp;l=45)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>488350</commentid>
    <comment_count>4</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2011-10-21 06:38:34 -0700</bug_when>
    <thetext>Here&apos;s why I thought it would be better to override opaque() instead:  If we set the bit for a NonComposited surface, we will have have to put checks in the code in every other place that unsets the bit to check if it&apos;s NonComposited.  And that makes more special case code than we have now. Am I wrong about this?

If not, we could check isNonComposited() rather than !m_parent in opaque().

I had thought you meant to remove the NonCompositedLayer entirely when you talked about removing special cases, but I guess that wasn&apos;t your intent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>488564</commentid>
    <comment_count>5</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-10-21 12:38:17 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Here&apos;s why I thought it would be better to override opaque() instead:  If we set the bit for a NonComposited surface, we will have have to put checks in the code in every other place that unsets the bit to check if it&apos;s NonComposited.  And that makes more special case code than we have now. Am I wrong about this?
&gt; 
&gt; If not, we could check isNonComposited() rather than !m_parent in opaque().
&gt; 
&gt; I had thought you meant to remove the NonCompositedLayer entirely when you talked about removing special cases, but I guess that wasn&apos;t your intent.

Sorry, I wasn&apos;t expressive enough.

The current state of the world is that we have a NonCompositedContentHost object that hosts a GraphicsLayer and so, indirectly, a LayerChromium.  We want this LayerChromium to have some special behaviors (blending disabled, no border texels).  The way that is done today is by setting a special flag on the LayerChromium which is then propagated through the system and used in various places.

I think this is wrong and we should instead have NonCompositedContentHost set the more relevant bits for the behaviors it wants.  For example, to disable blending it should just set the opaque bit and then the compositor would know to disable blending.  Similarly we should be able to detect when we need border texels without relying on this bit (although that&apos;s a separate issue).

So my feedback is this: change NonCompositedContentHost to set the opaque bit correctly on its LayerChromium and then use that to control blending instead of the isNonCompositedContent() bit.  You shouldn&apos;t be messing around with how isOpaque() works, that should definitely still just be a bool on LayerChromium that works in the normal way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512092</commentid>
    <comment_count>6</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2011-11-30 13:46:17 -0800</bug_when>
    <thetext>One question: should a root layer that is rotated 45 degrees have blending enabled to anti-alias its edges?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512145</commentid>
    <comment_count>7</comment_count>
      <attachid>117277</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2011-11-30 14:41:46 -0800</bug_when>
    <thetext>Created attachment 117277
Patch

I didn&apos;t change the blending decision in this patch, because the blending decision in LayerRenderChromium needs to be made based on rotation transform, and I&apos;m not clear if this should affect non-composited layers or how. Bug #72965 adds some functions to decide if a layer is being drawn opaque, and they could be used if the decision should be the same for noncompositing opaque layers as for other opaque layers. There are no tests for this right now, since the opaque flag is overridden by isNonComposited still, so layout tests won&apos;t see any change. I could make a unit test but I&apos;m not sure it&apos;s possible to properly instantiate a NonCompositedContentHost in a unit test since it touches non-chromium WebCore stuff, is it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512215</commentid>
    <comment_count>8</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-30 16:18:59 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; One question: should a root layer that is rotated 45 degrees have blending enabled to anti-alias its edges?

We don&apos;t support rotating the root layer or edge AA&apos;ing it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512216</commentid>
    <comment_count>9</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-30 16:20:48 -0800</bug_when>
    <thetext>Sorry for being thick but why can&apos;t we just call GraphicsLayer::setContentsOpaque() from NonCompositedContentHost?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512221</commentid>
    <comment_count>10</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-30 16:30:25 -0800</bug_when>
    <thetext>Example: http://google.com/codesearch#OAMlx_jo-ck/src/third_party/WebKit/Source/WebKit2/WebProcess/WebPage/ca/LayerTreeHostCA.cpp&amp;q=setContentsOpaque&amp;ct=rc&amp;exact_package=chromium&amp;cd=14&amp;sq=&amp;l=68</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512751</commentid>
    <comment_count>11</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2011-12-01 07:22:29 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; Sorry for being thick but why can&apos;t we just call GraphicsLayer::setContentsOpaque() from NonCompositedContentHost?

Hm. I thought we can&apos;t because the RenderLayerBacking will be setting contentsOpaque true/false based on the contents. But perhaps there is no backing since it is non-composited. I will read more code and verify this, thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512788</commentid>
    <comment_count>12</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2011-12-01 08:22:40 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #9)
&gt; &gt; Sorry for being thick but why can&apos;t we just call GraphicsLayer::setContentsOpaque() from NonCompositedContentHost?
&gt; 
&gt; Hm. I thought we can&apos;t because the RenderLayerBacking will be setting contentsOpaque true/false based on the contents. But perhaps there is no backing since it is non-composited. I will read more code and verify this, thanks.

So the non-composited content host does have a backing.
RenderLayerCompositor::updateBacking() creates the NonCompositingContentHost, via RenderLayerCompositor::enableCompositingMode(). Then it creates a backing for it via RenderLayer::ensureBacking().

So, if we can know the NCCH will have contents that cause it to be set opaque in RenderLayerBacking eventually (eg. solid background color, background-clip:border-box), I can just add a call in NCCH to setContentsOpaque(true) until the RenderLayerBacking stuff lands, and then remove it. I am not sure how to verify this one though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512868</commentid>
    <comment_count>13</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2011-12-01 10:05:48 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; So, if we can know the NCCH will have contents that cause it to be set opaque in RenderLayerBacking eventually (eg. solid background color, background-clip:border-box), I can just add a call in NCCH to setContentsOpaque(true) until the RenderLayerBacking stuff lands, and then remove it.

The NCCH has a background color of 0, which is transparent. I am guessing this is the default color given to things which cannot be styled. This makes the RenderLayerBacking mark the GraphicsLayer as non-opaque, over-riding the flag set in the NCCH constructor.

It would be possible to change the color on the NCCH, though I think this is easier. Maybe you know something more about the situation also, so what do you think of this all?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512987</commentid>
    <comment_count>14</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-12-01 12:21:29 -0800</bug_when>
    <thetext>The NCCH&apos;s GraphicsLayer does not have any associated RenderLayerBacking. I&apos;m a bit surprised that RenderLayerCompositor can manipulate it at all. Can you show a callstack of RLB overriding the opaque flag? I wonder if we&apos;re confusing some layers somewhere.

The GraphicsLayer tree should look something like this:

(A) GraphicsLayer - NonCompositedContentHost
  (B) GraphicsLayer - root of composited tree

RLC/RLB should only be messing with GraphicsLayer (B) and below. The GraphicsLayerClient for (A) is the NonCompositedContentHost</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513011</commentid>
    <comment_count>15</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2011-12-01 12:51:30 -0800</bug_when>
    <thetext>Wall of text incoming.

Here&apos;s backtrace for creating the NCCH:
#0  WebCore::NonCompositedContentHost::create (contentPaint=...) at ../../third_party/WebKit/Source/WebCore/platform/graphics/chromium/NonCompositedContentHost.h:51
#1  0x00007f907f77be4a in WebKit::WebViewImpl::setIsAcceleratedCompositingActive (this=0x7f906f7ddc80, active=true) at ../../third_party/WebKit/Source/WebKit/chromium/src/WebViewImpl.cpp:2857
#2  0x00007f907f77b439 in WebKit::WebViewImpl::setRootGraphicsLayer (this=0x7f906f7ddc80, layer=0x7f906f8f8200) at ../../third_party/WebKit/Source/WebKit/chromium/src/WebViewImpl.cpp:2717
#3  0x00007f907f6b2e5b in WebKit::ChromeClientImpl::attachRootGraphicsLayer (this=0x7f906f7ddcd0, frame=0x7f90737b2800, graphicsLayer=0x7f906f8f8200) at ../../third_party/WebKit/Source/WebKit/chromium/src/ChromeClientImpl.cpp:813
#4  0x00007f90803ac8c6 in WebCore::RenderLayerCompositor::attachRootLayer (this=0x7f906f7bfe70, attachment=WebCore::RenderLayerCompositor::RootLayerAttachedViaChromeClient)
    at ../../third_party/WebKit/Source/WebCore/rendering/RenderLayerCompositor.cpp:1957
#5  0x00007f90803ac348 in WebCore::RenderLayerCompositor::ensureRootLayer (this=0x7f906f7bfe70) at ../../third_party/WebKit/Source/WebCore/rendering/RenderLayerCompositor.cpp:1897
#6  0x00007f90803a5a6f in WebCore::RenderLayerCompositor::enableCompositingMode (this=0x7f906f7bfe70, enable=true) at ../../third_party/WebKit/Source/WebCore/rendering/RenderLayerCompositor.cpp:127
#7  0x00007f90803a64ac in WebCore::RenderLayerCompositor::updateBacking (this=0x7f906f7bfe70, layer=0x7f906f7f2178, shouldRepaint=WebCore::RenderLayerCompositor::CompositingChangeRepaintNow)
    at ../../third_party/WebKit/Source/WebCore/rendering/RenderLayerCompositor.cpp:354
#8  0x00007f90803a677b in WebCore::RenderLayerCompositor::updateLayerCompositingState (this=0x7f906f7bfe70, layer=0x7f906f7f2178, shouldRepaint=WebCore::RenderLayerCompositor::CompositingChangeRepaintNow)
    at ../../third_party/WebKit/Source/WebCore/rendering/RenderLayerCompositor.cpp:424
#9  0x00007f908039665e in WebCore::RenderLayer::styleChanged (this=0x7f906f7f2178, oldStyle=0x0) at ../../third_party/WebKit/Source/WebCore/rendering/RenderLayer.cpp:4296

The RenderLayer is 0x7f906f7f2178.

Here&apos;s the backtrace for creating the RLB on the same layer:
#0  WebCore::RenderLayer::ensureBacking (this=0x7f906f7f2178) at ../../third_party/WebKit/Source/WebCore/rendering/RenderLayer.cpp:3867
#1  0x00007f90803a651e in WebCore::RenderLayerCompositor::updateBacking (this=0x7f906f7bfe70, layer=0x7f906f7f2178, shouldRepaint=WebCore::RenderLayerCompositor::CompositingChangeRepaintNow)
    at ../../third_party/WebKit/Source/WebCore/rendering/RenderLayerCompositor.cpp:366
#2  0x00007f90803a677b in WebCore::RenderLayerCompositor::updateLayerCompositingState (this=0x7f906f7bfe70, layer=0x7f906f7f2178, shouldRepaint=WebCore::RenderLayerCompositor::CompositingChangeRepaintNow)
    at ../../third_party/WebKit/Source/WebCore/rendering/RenderLayerCompositor.cpp:424
#3  0x00007f908039665e in WebCore::RenderLayer::styleChanged (this=0x7f906f7f2178, oldStyle=0x0) at ../../third_party/WebKit/Source/WebCore/rendering/RenderLayer.cpp:4296

Here&apos;s the backtrace setting opaque in the backing owned by that same layer:
#0  WebCore::GraphicsLayerChromium::setContentsOpaque (this=0x7f906f8f8e00, opaque=false) at ../../third_party/WebKit/Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp:262
#1  0x00007f90803a1d62 in WebCore::RenderLayerBacking::updateContentsOpaque (this=0x7f906aff0850, opaqueRegion=...) at ../../third_party/WebKit/Source/WebCore/rendering/RenderLayerBacking.cpp:1009
#2  0x00007f908039e6e0 in WebCore::RenderLayerBacking::updateCompositedBounds (this=0x7f906aff0850) at ../../third_party/WebKit/Source/WebCore/rendering/RenderLayerBacking.cpp:236
#3  0x00007f90803a8d7a in WebCore::RenderLayerCompositor::rebuildCompositingLayerTree (this=0x7f906f7bfe70, layer=0x7f906f7f2178, compositingState=..., childLayersOfEnclosingLayer=...)
    at ../../third_party/WebKit/Source/WebCore/rendering/RenderLayerCompositor.cpp:948
#4  0x00007f90803a9112 in WebCore::RenderLayerCompositor::rebuildCompositingLayerTree (this=0x7f906f7bfe70, layer=0x7f906f7f22d8, compositingState=..., childLayersOfEnclosingLayer=...)
    at ../../third_party/WebKit/Source/WebCore/rendering/RenderLayerCompositor.cpp:1009
#5  0x00007f90803a9112 in WebCore::RenderLayerCompositor::rebuildCompositingLayerTree (this=0x7f906f7bfe70, layer=0x7f906f7f29b8, compositingState=..., childLayersOfEnclosingLayer=...)
    at ../../third_party/WebKit/Source/WebCore/rendering/RenderLayerCompositor.cpp:1009
#6  0x00007f90803a62eb in WebCore::RenderLayerCompositor::updateCompositingLayers (this=0x7f906f7bfe70, updateType=WebCore::CompositingUpdateAfterLayoutOrStyleChange, updateRoot=0x7f906f7f29b8)
    at ../../third_party/WebKit/Source/WebCore/rendering/RenderLayerCompositor.cpp:318

Here you can see the owning layer matches:
(gdb) frame 1
#1  0x00007f90803a1d62 in WebCore::RenderLayerBacking::updateContentsOpaque (this=0x7f906aff0850, opaqueRegion=...) at ../../third_party/WebKit/Source/WebCore/rendering/RenderLayerBacking.cpp:1009
1009	    m_graphicsLayer-&gt;setContentsOpaque(layerRegion.isEmpty());
(gdb) print m_owningLayer
$7 = (WebCore::RenderLayer *) 0x7f906f7f2178

It does the updateCompositedBounds here because the layer has a backing. I am not sure what the other layers are in the rebuildCompositingLayerTree callstack, or if that is important information.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513219</commentid>
    <comment_count>16</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-12-01 15:58:14 -0800</bug_when>
    <thetext>007f908039665e in WebCore::RenderLayer::styleChanged (this=0x7f906f7f2178, oldStyle=0x0) at ../../third_party/WebKit/Source/WebCore/rendering/RenderLayer.cpp:4296
&gt; 
&gt; Here&apos;s the backtrace setting opaque in the backing owned by that same layer:
&gt; #0  WebCore::GraphicsLayerChromium::setContentsOpaque (this=0x7f906f8f8e00, opaque=false) at ../../third_party/WebKit/Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp:262
&gt; #1  0x00007f90803a1d62 in WebCore::RenderLayerBacking::updateContentsOpaque (this=0x7f906aff0850, opaqueRegion=...) at ../../third_party/WebKit/Source/WebCore/rendering/RenderLayerBacking.cpp:1009
&gt; #2  0x00007f908039e6e0 in WebCore::RenderLayerBacking::updateCompositedBounds (this=0x7f906aff0850) at ../../third_party/WebKit/Source/WebCore/rendering/RenderLayerBacking.cpp:236
&gt; #3  0x00007f90803a8d7a in WebCore::RenderLayerCompositor::rebuildCompositingLayerTree (this=0x7f906f7bfe70, layer=0x7f906f7f2178, compositingState=..., childLayersOfEnclosingLayer=...)
&gt;     at ../../third_party/WebKit/Source/WebCore/rendering/RenderLayerCompositor.cpp:948

This part of the callstack (in particular RenderLayerBacking::updateContentsOpaque) does not exist in my checkout. Do you have some other patches applied locally? I think this code needs to be aware of the frameview.

Are you sure this is pushing to the NCCH::m_graphicsLayer? Remember that the GraphicsLayer and RenderLayerBacking trees are *not* isomorphic.

If that&apos;s the case, this leads me to believe that we probably shouldn&apos;t do anything at all in NonCompositedContentHost. We should just rely on the normal contents opaque setting logic to detect opaque FrameViews correctly and set the contentsOpaque bit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513879</commentid>
    <comment_count>17</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2011-12-02 10:02:58 -0800</bug_when>
    <thetext>If we move contentsOpaque (or whatever other incarnation) to CCLayerDelegate, as brought up in bug #72964, I think we can dodge this whole bullet, at least for this CL. We can just set the opaque flag directly on the LayerChromium then and there is no conflict to worry about.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>515913</commentid>
    <comment_count>18</comment_count>
      <attachid>118051</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2011-12-06 07:52:48 -0800</bug_when>
    <thetext>Created attachment 118051
Patch

Just sets the opaque flag, and uses it to avoid blending. The backing can avoid conflicting with this by not setting contentsOpaque when drawsContent is false.

The NCCH flag is still used to decide to use the opaque shader program or not. I think we should use the methods in bug #72965 to make that decision instead. I don&apos;t want to start duplicating the logic from LRC for checking &quot;draw this opaque&quot; over here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516063</commentid>
    <comment_count>19</comment_count>
      <attachid>118051</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-12-06 11:23:01 -0800</bug_when>
    <thetext>Comment on attachment 118051
Patch

R=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516139</commentid>
    <comment_count>20</comment_count>
      <attachid>118051</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-06 12:17:17 -0800</bug_when>
    <thetext>Comment on attachment 118051
Patch

Clearing flags on attachment: 118051

Committed r102164: &lt;http://trac.webkit.org/changeset/102164&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516140</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-06 12:17:22 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111875</attachid>
            <date>2011-10-20 17:06:49 -0700</date>
            <delta_ts>2011-11-30 14:41:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70564-20111020200648.patch</filename>
            <type>text/plain</type>
            <size>2216</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTgwMjcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjYThjZGMzNDMyMDljMjg1
ZDNjZmUzMjQyZGQ5ZWVmOGIwMDRmZTJjLi4wZmYwZmUwNTJiZTZmZTAwYWU2ZmYyMjM4YTIyZmVk
NzEwYjZjZDg0IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMTAtMjAgIERhbmEg
SmFuc2VucyAgPGRhbmFrakBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtXSBNYWtl
IHJvb3QgbGF5ZXIgYWx3YXlzIG9wYXF1ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NzA1NjQKKworICAgICAgICBSZXZpZXdlZCBieSBKYW1lcyBSb2Jp
bnNvbi4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21p
dW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDaHJvbWl1bTo6b3BhcXVlKTogUmV0dXJu
IHRydWUgaWYgdGhlIGxheWVyIGlzIGEgcm9vdCBsYXllciAoaWUuIGhhcyBubyBwYXJlbnQpLgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uaDoKKwog
MjAxMS0xMC0yMCAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSRUdSRVNTSU9OIChyOTY4MjMpOiBDb250ZXh0dWFsIG1lbnUgY2xvc2VzIGltbWVkaWF0ZWx5
IHdoZW4gY29udHJvbC1jbGlja2luZyBpbiBGbGFzaCBwbHVnLWluCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0u
Y3BwCmluZGV4IGJlOGU3OTA2ZmNkMzIzNjIzZjRkNWQ5MTk3MDFiNzBlY2RlMGE5YmUuLjJlMzE3
ZTllYzA1NTVlODMxZDYzZjYyNTQyMTZiNjg4MmM4OTM0N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0u
Y3BwCkBAIC0yNzQsNiArMjc0LDExIEBAIHZvaWQgTGF5ZXJDaHJvbWl1bTo6cmVzZXROZWVkc0Rp
c3BsYXkoKQogICAgIG1fZGlydHlSZWN0ID0gRmxvYXRSZWN0KCk7CiB9CiAKK2Jvb2wgTGF5ZXJD
aHJvbWl1bTo6b3BhcXVlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9vcGFxdWUgfHwgIW1fcGFy
ZW50OworfQorCiB2b2lkIExheWVyQ2hyb21pdW06OnB1c2hQcm9wZXJ0aWVzVG8oQ0NMYXllcklt
cGwqIGxheWVyKQogewogICAgIGxheWVyLT5zZXRBbmNob3JQb2ludChtX2FuY2hvclBvaW50KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xh
eWVyQ2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0xheWVyQ2hyb21pdW0uaAppbmRleCBjZWRmMmVjNTIwMTllNWI1ZTc4ZmQyNjhlYTE1YzliYzk2
NTMxOGU5Li5hMjI2MWYzNDA4NDkwNjdlYjM3ZDcxZWQyZDc3NjE4NmI3NjM4YmNmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9t
aXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5
ZXJDaHJvbWl1bS5oCkBAIC0xMTMsNyArMTEzLDcgQEAgcHVibGljOgogICAgIGZsb2F0IG9wYWNp
dHkoKSBjb25zdCB7IHJldHVybiBtX29wYWNpdHk7IH0KIAogICAgIHZvaWQgc2V0T3BhcXVlKGJv
b2wgb3BhcXVlKSB7IG1fb3BhcXVlID0gb3BhcXVlOyBzZXROZWVkc0NvbW1pdCgpOyB9Ci0gICAg
Ym9vbCBvcGFxdWUoKSBjb25zdCB7IHJldHVybiBtX29wYXF1ZTsgfQorICAgIGJvb2wgb3BhcXVl
KCkgY29uc3Q7CiAKICAgICB2b2lkIHNldFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0
aW9uKSB7IG1fcG9zaXRpb24gPSBwb3NpdGlvbjsgIHNldE5lZWRzQ29tbWl0KCk7IH0KICAgICBG
bG9hdFBvaW50IHBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9wb3NpdGlvbjsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117277</attachid>
            <date>2011-11-30 14:41:46 -0800</date>
            <delta_ts>2011-12-06 07:52:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70564-20111130174144.patch</filename>
            <type>text/plain</type>
            <size>4368</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxNTM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmYwZTczMGQ4MTFiMGRj
YmJjYjY2OTg0ZWE5ZGI4ZTYzNzg3OGM2MC4uNmMzMmU4MWVjZmViN2Y2NDc0MmNhYWFjZTdkZTFi
ZDk4N2U1MGM0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDExLTExLTMwICBEYW5h
IEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gTWFr
ZSByb290IGxheWVyIGFsd2F5cyBvcGFxdWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTcwNTY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xh
eWVyQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNocm9taXVt
OjpHcmFwaGljc0xheWVyQ2hyb21pdW0pOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXll
ckNocm9taXVtOjp1cGRhdGVDb250ZW50c09wYXF1ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0xheWVyQ2hyb21pdW06OnNldEZvcmNlQ29udGVudHNPcGFxdWUpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpOb25Db21wb3NpdGVkQ29udGVudEhvc3Q6Ok5vbkNvbXBv
c2l0ZWRDb250ZW50SG9zdCk6CisKIDIwMTEtMTEtMzAgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hv
cnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgZHggY2F1c2VzIG5vbi1CTVAgY2hhcmFjdGVycyB0
byBmYWlsIHRvIHJlbmRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAKaW5k
ZXggNGJlYWE1MjU1Y2E2Mjg4MzlmYTQ3YmFkNjVlNjE0YjZmYzU1MTc1OC4uZDQ0YmNiYTNjOGUz
NWNhZjhjYzhmMmM1ZGIzMGE5MWVjMWQyOTc2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVy
Q2hyb21pdW0uY3BwCkBAIC03Myw2ICs3Myw3IEBAIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6R3Jh
cGhpY3NMYXllckNocm9taXVtKEdyYXBoaWNzTGF5ZXJDbGllbnQqIGNsaWVudCkKICAgICAsIG1f
Y29udGVudHNMYXllclB1cnBvc2UoTm9Db250ZW50c0xheWVyKQogICAgICwgbV9jb250ZW50c0xh
eWVySGFzQmFja2dyb3VuZENvbG9yKGZhbHNlKQogICAgICwgbV9pblNldENoaWxkcmVuKGZhbHNl
KQorICAgICwgbV9mb3JjZUNvbnRlbnRzT3BhcXVlKGZhbHNlKQogewogICAgIG1fbGF5ZXIgPSBD
b250ZW50TGF5ZXJDaHJvbWl1bTo6Y3JlYXRlKHRoaXMpOwogCkBAIC01NDMsNyArNTQ0LDcgQEAg
dm9pZCBHcmFwaGljc0xheWVyQ2hyb21pdW06OnVwZGF0ZU1hc2tzVG9Cb3VuZHMoKQogCiB2b2lk
IEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6dXBkYXRlQ29udGVudHNPcGFxdWUoKQogewotICAgIG1f
bGF5ZXItPnNldE9wYXF1ZShtX2NvbnRlbnRzT3BhcXVlKTsKKyAgICBtX2xheWVyLT5zZXRPcGFx
dWUobV9jb250ZW50c09wYXF1ZSB8fCBtX2ZvcmNlQ29udGVudHNPcGFxdWUpOwogfQogCiB2b2lk
IEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6dXBkYXRlQmFja2ZhY2VWaXNpYmlsaXR5KCkKQEAgLTY4
NSw2ICs2ODYsMTUgQEAgZmxvYXQgR3JhcGhpY3NMYXllckNocm9taXVtOjpjb250ZW50c1NjYWxl
KCkgY29uc3QKICAgICByZXR1cm4gMTsKIH0KIAordm9pZCBHcmFwaGljc0xheWVyQ2hyb21pdW06
OnNldEZvcmNlQ29udGVudHNPcGFxdWUoYm9vbCBmb3JjZUNvbnRlbnRzT3BhcXVlKQoreworICAg
IGlmIChmb3JjZUNvbnRlbnRzT3BhcXVlID09IG1fZm9yY2VDb250ZW50c09wYXF1ZSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgbV9mb3JjZUNvbnRlbnRzT3BhcXVlID0gZm9yY2VDb250ZW50c09w
YXF1ZTsKKyAgICB1cGRhdGVDb250ZW50c09wYXF1ZSgpOworfQorCiAvLyBUaGlzIGZ1bmN0aW9u
IHNpbXBseSBtaW1pY3MgdGhlIG9wZXJhdGlvbiBvZiBHcmFwaGljc0xheWVyQ0EKIHZvaWQgR3Jh
cGhpY3NMYXllckNocm9taXVtOjp1cGRhdGVPcGFjaXR5T25MYXllcigpCiB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVy
Q2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dy
YXBoaWNzTGF5ZXJDaHJvbWl1bS5oCmluZGV4IGIwNWQwN2JmNjM3YmY1Y2ZlMGU0YmVjNGUzOTNk
YmE3YjBjMDNkZjIuLjkyYWViMTc3ZDJjODg4YjU1ZjgyZjllZjMxNTU1ZmExOWMyODJlZTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBo
aWNzTGF5ZXJDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5oCkBAIC0xMDEsNiArMTAxLDggQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKEdyYXBoaWNzQ29udGV4dCYsIGNv
bnN0IEludFJlY3QmIGNsaXApOwogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlTeW5jUmVxdWlyZWQo
KTsKIAorICAgIHZvaWQgc2V0Rm9yY2VDb250ZW50c09wYXF1ZShib29sKTsKKwogcHJpdmF0ZToK
ICAgICB2b2lkIHVwZGF0ZU9wYWNpdHlPbkxheWVyKCk7CiAKQEAgLTE0Nyw2ICsxNDksNyBAQCBw
cml2YXRlOgogICAgIENvbnRlbnRzTGF5ZXJQdXJwb3NlIG1fY29udGVudHNMYXllclB1cnBvc2U7
CiAgICAgYm9vbCBtX2NvbnRlbnRzTGF5ZXJIYXNCYWNrZ3JvdW5kQ29sb3IgOiAxOwogICAgIGJv
b2wgbV9pblNldENoaWxkcmVuOworICAgIGJvb2wgbV9mb3JjZUNvbnRlbnRzT3BhcXVlOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL05vbkNvbXBvc2l0ZWRDb250
ZW50SG9zdC5jcHAKaW5kZXggYmM2YTJhNDk3ODI4ZWIyOTFlOTg5N2ViMWJiMTIyMjA3MGE0YTJh
My4uZjJkNjhiNTNjN2NmYzI2NmQ2MTBiNDI1MWY4OGYwMDQzY2Q1NGI3MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTm9uQ29tcG9zaXRlZENv
bnRlbnRIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9Ob25Db21wb3NpdGVkQ29udGVudEhvc3QuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAKICNp
bmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJHcmFwaGljc0xheWVyLmgiCisjaW5jbHVk
ZSAiR3JhcGhpY3NMYXllckNocm9taXVtLmgiCiAjaW5jbHVkZSAiTGF5ZXJDaHJvbWl1bS5oIgog
I2luY2x1ZGUgIkxheWVyUGFpbnRlckNocm9taXVtLmgiCiAKQEAgLTQzLDYgKzQ0LDkgQEAgTm9u
Q29tcG9zaXRlZENvbnRlbnRIb3N0OjpOb25Db21wb3NpdGVkQ29udGVudEhvc3QoUGFzc093blB0
cjxMYXllclBhaW50ZXJDaHJvbWkKICNlbmRpZgogICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0RHJh
d3NDb250ZW50KHRydWUpOwogICAgIG1fZ3JhcGhpY3NMYXllci0+cGxhdGZvcm1MYXllcigpLT5z
ZXRJc05vbkNvbXBvc2l0ZWRDb250ZW50KHRydWUpOworCisgICAgR3JhcGhpY3NMYXllckNocm9t
aXVtKiBncmFwaGljc0xheWVyQ2hyb21pdW0gPSBzdGF0aWNfY2FzdDxHcmFwaGljc0xheWVyQ2hy
b21pdW0qPihtX2dyYXBoaWNzTGF5ZXIuZ2V0KCkpOworICAgIGdyYXBoaWNzTGF5ZXJDaHJvbWl1
bS0+c2V0Rm9yY2VDb250ZW50c09wYXF1ZSh0cnVlKTsKIH0KIAogTm9uQ29tcG9zaXRlZENvbnRl
bnRIb3N0Ojp+Tm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0KCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118051</attachid>
            <date>2011-12-06 07:52:48 -0800</date>
            <delta_ts>2011-12-06 12:17:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70564-20111206105247.patch</filename>
            <type>text/plain</type>
            <size>2725</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyMDE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGNhN2M2NjlmMDE5YzAy
NWQ5ZTZmNmI3NzkwMTkzYWZlZGFlZTRkZi4uMjMwOGUzNDM1YzEzMzU1OWFiNGEyZThkZGMyNjNj
MGM0MjllYzhhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDExLTEyLTA2ICBEYW5h
IEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gTWFr
ZSByb290IGxheWVyIGFsd2F5cyBvcGFxdWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTcwNTY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Ob25Db21wb3Np
dGVkQ29udGVudEhvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9uQ29tcG9zaXRlZENvbnRl
bnRIb3N0OjpOb25Db21wb3NpdGVkQ29udGVudEhvc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDVGlsZWRMYXllckltcGwuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q0NUaWxlZExheWVySW1wbDo6ZHJhdyk6CisKIDIwMTEtMTItMDUgIFBldGVyIEJldmVybG9v
ICA8cGV0ZXJAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gQWRkIEFuZHJvaWQg
a2V5Y29kZXMgYW5kIGJ1aWxkIExpbnV4IGNsaXBib2FyZC9maWxlc3lzdGVtIGZpbGVzLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTm9uQ29t
cG9zaXRlZENvbnRlbnRIb3N0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5jcHAKaW5kZXggYmM2YTJhNDk3ODI4
ZWIyOTFlOTg5N2ViMWJiMTIyMjA3MGE0YTJhMy4uMTlhMDY1MjA1ZTRlMDEzYzAzZTMzNzMxMWI1
NTdhNTlmZDgwYzBjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Ob25Db21wb3NpdGVkQ29udGVudEhvc3Qu
Y3BwCkBAIC00Myw2ICs0Myw3IEBAIE5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdDo6Tm9uQ29tcG9z
aXRlZENvbnRlbnRIb3N0KFBhc3NPd25QdHI8TGF5ZXJQYWludGVyQ2hyb21pCiAjZW5kaWYKICAg
ICBtX2dyYXBoaWNzTGF5ZXItPnNldERyYXdzQ29udGVudCh0cnVlKTsKICAgICBtX2dyYXBoaWNz
TGF5ZXItPnBsYXRmb3JtTGF5ZXIoKS0+c2V0SXNOb25Db21wb3NpdGVkQ29udGVudCh0cnVlKTsK
KyAgICBtX2dyYXBoaWNzTGF5ZXItPnBsYXRmb3JtTGF5ZXIoKS0+c2V0T3BhcXVlKHRydWUpOwog
fQogCiBOb25Db21wb3NpdGVkQ29udGVudEhvc3Q6On5Ob25Db21wb3NpdGVkQ29udGVudEhvc3Qo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NUaWxlZExheWVySW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ1RpbGVkTGF5ZXJJbXBsLmNwcAppbmRleCA1MTFkODVmN2FlNDE4YTA3
M2VjZThlOTJmZTIwZjRhNTgxZGM4ZjgyLi40OWQxZGYzZmQ4YmUzYzg5MGMwNmYwNWFlNzVlZTk1
MTdlNzk3YzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ1RpbGVkTGF5ZXJJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RpbGVkTGF5ZXJJbXBsLmNwcApAQCAtMTM4LDEw
ICsxMzgsNiBAQCB2b2lkIENDVGlsZWRMYXllckltcGw6OmRyYXcoTGF5ZXJSZW5kZXJlckNocm9t
aXVtKiBsYXllclJlbmRlcmVyKQogICAgICAgICBsYXllclF1YWQuaW5mbGF0ZUFudGlBbGlhc2lu
Z0Rpc3RhbmNlKCk7CiAgICAgfQogCi0gICAgR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQgPSBs
YXllclJlbmRlcmVyLT5jb250ZXh0KCk7Ci0gICAgaWYgKGlzTm9uQ29tcG9zaXRlZENvbnRlbnQo
KSkKLSAgICAgICAgR0xDKGNvbnRleHQsIGNvbnRleHQtPmRpc2FibGUoR3JhcGhpY3NDb250ZXh0
M0Q6OkJMRU5EKSk7Ci0KICAgICBzd2l0Y2ggKG1fc2FtcGxlZFRleGVsRm9ybWF0KSB7CiAgICAg
Y2FzZSBMYXllclRleHR1cmVVcGRhdGVyOjpTYW1wbGVkVGV4ZWxGb3JtYXRSR0JBOgogICAgICAg
ICBpZiAodXNlQUEpIHsKQEAgLTE3NCw5ICsxNzAsNiBAQCB2b2lkIENDVGlsZWRMYXllckltcGw6
OmRyYXcoTGF5ZXJSZW5kZXJlckNocm9taXVtKiBsYXllclJlbmRlcmVyKQogICAgIGRlZmF1bHQ6
CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KLQotICAgIGlmIChpc05vbkNv
bXBvc2l0ZWRDb250ZW50KCkpCi0gICAgICAgIEdMQyhjb250ZXh0LCBjb250ZXh0LT5lbmFibGUo
R3JhcGhpY3NDb250ZXh0M0Q6OkJMRU5EKSk7CiB9CiAKIHZvaWQgQ0NUaWxlZExheWVySW1wbDo6
c2V0VGlsaW5nRGF0YShjb25zdCBDQ0xheWVyVGlsaW5nRGF0YSYgdGlsZXIpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>