<?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>71038</bug_id>
          
          <creation_ts>2011-10-27 11:20:42 -0700</creation_ts>
          <short_desc>[chromium] Implicitly skip render surfaces that won&apos;t be drawn</short_desc>
          <delta_ts>2011-11-22 18:29:07 -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>
          <dependson>71150</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adrienne Walker">enne</reporter>
          <assigned_to name="Adrienne Walker">enne</assigned_to>
          <cc>cc-bugs</cc>
    
    <cc>enne</cc>
    
    <cc>jamesr</cc>
    
    <cc>shawnsingh</cc>
    
    <cc>vangelis</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>491750</commentid>
    <comment_count>0</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2011-10-27 11:20:42 -0700</bug_when>
    <thetext>[chromium] Implicitly skip render surfaces that won&apos;t be drawn</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491755</commentid>
    <comment_count>1</comment_count>
      <attachid>112714</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2011-10-27 11:23:07 -0700</bug_when>
    <thetext>Created attachment 112714
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491757</commentid>
    <comment_count>2</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2011-10-27 11:24:12 -0700</bug_when>
    <thetext>Just a quick low-priority cleanup patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491781</commentid>
    <comment_count>3</comment_count>
      <attachid>112714</attachid>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2011-10-27 11:50:13 -0700</bug_when>
    <thetext>Comment on attachment 112714
Patch


Looks good to me, with one minor nit...


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

&gt; Source/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp:318
&gt;          renderSurface-&gt;setSkipsDraw(true);

Looking at CCRenderSurface::prepareContentsTexture, seems like we should remove this setSkipsDraw here (and the one inside the if-statement, too).  The logic inside the CCRenderSurface is already doing it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491790</commentid>
    <comment_count>4</comment_count>
      <attachid>112719</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2011-10-27 11:59:33 -0700</bug_when>
    <thetext>Created attachment 112719
Remove unnecessary skipsDraw</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491831</commentid>
    <comment_count>5</comment_count>
      <attachid>112719</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-10-27 12:37:21 -0700</bug_when>
    <thetext>Comment on attachment 112719
Remove unnecessary skipsDraw

R=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491856</commentid>
    <comment_count>6</comment_count>
      <attachid>112719</attachid>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2011-10-27 13:09:23 -0700</bug_when>
    <thetext>Comment on attachment 112719
Remove unnecessary skipsDraw

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

&gt; Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:256
&gt; +        if (!renderSurface-&gt;drawOpacity())

I think we could further short-circuit this by checking the opacity before even creating the render surface.

&gt; Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:385
&gt; +        renderSurfaceLayerList.removeLast();

What if we clear the layer&apos;s RS so we don&apos;t have layer&apos;s pointing to empty RS&apos;s ?  That way also we won&apos;t have to check for empty RS&apos;s on line 366.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491893</commentid>
    <comment_count>7</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2011-10-27 13:46:42 -0700</bug_when>
    <thetext>Enne and I discussed offline, it also seems that the skipsDraw flag inside of the CCRenderSurface is unnecessary too, and that change could be part of this patch, too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492150</commentid>
    <comment_count>8</comment_count>
      <attachid>112793</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2011-10-27 17:53:04 -0700</bug_when>
    <thetext>Created attachment 112793
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492152</commentid>
    <comment_count>9</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2011-10-27 17:56:00 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Created an attachment (id=112793) [details]
&gt; Patch

Sorry to toss away the R+.  I implemented both of Vangelis&apos;s suggestions, because they sounded great.

Shawn: removing the skipsDraw flag from CCRenderSurface sounded good, but end up being possible.  It looks like it gets used in CCRenderSurface to specify that a render surface couldn&apos;t get reserved just like it&apos;s used for TiledLayerChromium.  If you can think of a better way to clean that up, you&apos;re welcome to have at it in a different patch.  :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492645</commentid>
    <comment_count>10</comment_count>
      <attachid>112793</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-28 13:45:15 -0700</bug_when>
    <thetext>Comment on attachment 112793
Patch

Clearing flags on attachment: 112793

Committed r98757: &lt;http://trac.webkit.org/changeset/98757&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492646</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-28 13:45:19 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492847</commentid>
    <comment_count>12</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2011-10-28 18:03:00 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; All reviewed patches have been landed.  Closing bug.

Did we notice https://bugs.webkit.org/show_bug.cgi?id=71150 ...  should we re-open this bug?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492850</commentid>
    <comment_count>13</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2011-10-28 18:07:03 -0700</bug_when>
    <thetext>I saw it.  Just hadn&apos;t reopened this yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504546</commentid>
    <comment_count>14</comment_count>
      <attachid>115521</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2011-11-16 21:50:25 -0800</bug_when>
    <thetext>Created attachment 115521
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504548</commentid>
    <comment_count>15</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2011-11-16 21:52:06 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; Created an attachment (id=115521) [details]
&gt; Patch

Now with more passing tests.  The only changes from before are that the render surface is not cleared for the root layer (we make this check elsewhere) and I updated a test that was depending on a render surface being created to do some other tests, but that render surface was getting removed because its only child had no bounds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504591</commentid>
    <comment_count>16</comment_count>
      <attachid>115521</attachid>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2011-11-16 23:27:47 -0800</bug_when>
    <thetext>Comment on attachment 115521
Patch

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

&gt; Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:245
&gt; +        if (!drawOpacity)

Wouldn&apos;t it be simpler to have a check for layer-&gt;opacity() == 0 at the very top of this function and early out before we do any further calculations?

&gt; Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:383
&gt; +    if (layer-&gt;renderSurface() &amp;&amp; !layer-&gt;renderSurface()-&gt;layerList().size()) {

Won&apos;t the RS by definition contain in its layer list at least the layer that triggered its creation?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504913</commentid>
    <comment_count>17</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2011-11-17 09:20:47 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; (From update of attachment 115521 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=115521&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:245
&gt; &gt; +        if (!drawOpacity)
&gt; 
&gt; Wouldn&apos;t it be simpler to have a check for layer-&gt;opacity() == 0 at the very top of this function and early out before we do any further calculations?

I&apos;m not sure it ends up being simpler, but I&apos;m open to suggestions.

You can only early out if the layer creates a render surface; if not, you still have to process all of its descendants.  And, the transform math that you want to skip sometimes determines whether or not a render surface is created: masking to bounds only does if the transform is not a scale or translation.

(Although, I wonder if that means that layers that draw content and mask to bounds will apply their opacity differently to their children.  That sounds like a bug, but maybe in WebKit no clipping layers have opacity != 1 and so we haven&apos;t ever triggered that?)

&gt; &gt; Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:383
&gt; &gt; +    if (layer-&gt;renderSurface() &amp;&amp; !layer-&gt;renderSurface()-&gt;layerList().size()) {
&gt; 
&gt; Won&apos;t the RS by definition contain in its layer list at least the layer that triggered its creation?

That&apos;s not the case anymore if that layer doesn&apos;t get drawn.  There&apos;s a layerShouldBeSkipped() check before inserting any layer into a render surface list.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504934</commentid>
    <comment_count>18</comment_count>
      <attachid>115521</attachid>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2011-11-17 09:51:55 -0800</bug_when>
    <thetext>Comment on attachment 115521
Patch

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

&gt;&gt;&gt; Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:245
&gt;&gt;&gt; +        if (!drawOpacity)
&gt;&gt; 
&gt;&gt; Wouldn&apos;t it be simpler to have a check for layer-&gt;opacity() == 0 at the very top of this function and early out before we do any further calculations?
&gt; 
&gt; I&apos;m not sure it ends up being simpler, but I&apos;m open to suggestions.
&gt; 
&gt; You can only early out if the layer creates a render surface; if not, you still have to process all of its descendants.  And, the transform math that you want to skip sometimes determines whether or not a render surface is created: masking to bounds only does if the transform is not a scale or translation.
&gt; 
&gt; (Although, I wonder if that means that layers that draw content and mask to bounds will apply their opacity differently to their children.  That sounds like a bug, but maybe in WebKit no clipping layers have opacity != 1 and so we haven&apos;t ever triggered that?)

A layer&apos;s opacity is applied to the layer and all its descendants.  So if a layer has opacity 0 then there&apos;s no need to process the descendants.  At least that&apos;s the way I understand it.

A layer with opacity &lt; 1 always creates a render surface unless it has a preserves3D property, in which case we don&apos;t want to flatten out its descendants into a render surface.  Regardless though, its opacity will affect them.

&gt;&gt;&gt; Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:383
&gt;&gt;&gt; +    if (layer-&gt;renderSurface() &amp;&amp; !layer-&gt;renderSurface()-&gt;layerList().size()) {
&gt;&gt; 
&gt;&gt; Won&apos;t the RS by definition contain in its layer list at least the layer that triggered its creation?
&gt; 
&gt; That&apos;s not the case anymore if that layer doesn&apos;t get drawn.  There&apos;s a layerShouldBeSkipped() check before inserting any layer into a render surface list.

You&apos;re right!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504951</commentid>
    <comment_count>19</comment_count>
      <attachid>115614</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2011-11-17 10:15:26 -0800</bug_when>
    <thetext>Created attachment 115614
Earlier opacity checks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504976</commentid>
    <comment_count>20</comment_count>
      <attachid>115614</attachid>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2011-11-17 10:33:09 -0800</bug_when>
    <thetext>Comment on attachment 115614
Earlier opacity checks

Unofficially looks good to me, except for one minor nit.


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

&gt; Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:121
&gt;      typedef Vector&lt;RefPtr&lt;LayerType&gt; &gt; LayerList;
&gt; +
&gt; +    float drawOpacity = layer-&gt;opacity();
&gt; +    if (layer-&gt;parent() &amp;&amp; layer-&gt;parent()-&gt;preserves3D())
&gt; +        drawOpacity *= layer-&gt;parent()-&gt;drawOpacity();
&gt; +    // The opacity of a layer always applies to its children (either implicitly
&gt; +    // via a render surface or explicitly if the parent preserves 3D), so the
&gt; +    // entire subtree can be skipped if this layer is fully transparent.
&gt; +    if (!drawOpacity)
&gt; +        return;
&gt; +

Would it be OK to move this to below the big comment?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504979</commentid>
    <comment_count>21</comment_count>
      <attachid>115618</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2011-11-17 10:36:21 -0800</bug_when>
    <thetext>Created attachment 115618
Move code below comment</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505120</commentid>
    <comment_count>22</comment_count>
      <attachid>115618</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-17 12:51:35 -0800</bug_when>
    <thetext>Comment on attachment 115618
Move code below comment

R=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505126</commentid>
    <comment_count>23</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2011-11-17 13:01:24 -0800</bug_when>
    <thetext>Committed r100660: &lt;http://trac.webkit.org/changeset/100660&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507896</commentid>
    <comment_count>24</comment_count>
      <attachid>115618</attachid>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2011-11-22 18:29:07 -0800</bug_when>
    <thetext>Comment on attachment 115618
Move code below comment

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

&gt; Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:197
&gt; +    if (!drawOpacity)

Sorry, somewhat of a delayed comment... 
You don&apos;t need to calculate the drawOpacity.  It&apos;s sufficient to check and early out if layer-&gt;opacity() == 0 . 
In this case drawOpacity == 0 only if layer-&gt;opacity() == 0 . parent-&gt;drawOpacity() will never be zero because it it were, we would have pruned the recursion at the parent and not descended to this layer.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112714</attachid>
            <date>2011-10-27 11:23:07 -0700</date>
            <delta_ts>2011-10-27 11:59:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71038-20111027112306.patch</filename>
            <type>text/plain</type>
            <size>8616</size>
            <attacher name="Adrienne Walker">enne</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg1OTAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2NzE5YzEwYzJhMzhiMzQ5
NmIyMjEzZmRiNzM5ZDJmY2Q3ZGE5OTYzLi5kNDBmNmM2ZGVjNWQ2MWI2OGQ3MWI5ZTNkYjA0NDcy
MTExM2U0ZDcwIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTEtMTAtMjcgIEFkcmll
bm5lIFdhbGtlciAgPGVubmVAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIEltcGxp
Y2l0bHkgc2tpcCByZW5kZXIgc3VyZmFjZXMgdGhhdCB3b24ndCBiZSBkcmF3bgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEwMzgKKworICAgICAgICBS
YXRoZXIgdGhhbiBoYXZpbmcgcmVkdW5kYW50IGNoZWNrcyBpbiB0aHJlZSBwbGFjZXMgZm9yIGhv
dyB0byB3YWxrCisgICAgICAgIHRocm91Z2ggYSByZW5kZXIgc3VyZmFjZSBsaXN0LCBpbnN0ZWFk
IGRvbid0IGFkZCByZW5kZXIgc3VyZmFjZXMgdGhhdAorICAgICAgICBkb24ndCBuZWVkIHRvIGdl
dCByZW5kZXJlZCB0byB0aGUgcmVuZGVyIHN1cmZhY2UgbGlzdC4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIGxheW91
dCB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVu
ZGVyZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXllclJlbmRlcmVyQ2hyb21p
dW06OmRyYXdMYXllcnNPbnRvUmVuZGVyU3VyZmFjZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDQ0xheWVyVHJlZUhvc3Q6OnBhaW50TGF5ZXJDb250ZW50cyk6CisgICAgICAgIChXZWJDb3Jl
OjpDQ0xheWVyVHJlZUhvc3Q6OnVwZGF0ZUNvbXBvc2l0b3JSZXNvdXJjZXMpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdENvbW1vbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpjYWxjdWxhdGVEcmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxpdHlJ
bnRlcm5hbCk6CisKIDIwMTEtMTAtMjcgIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgog
CiAgICAgICAgIFJlZ2VuZXJhdGUgV2ViQ29yZSdzIExvY2FsaXphYmxlLnN0cmluZ3MgZmlsZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5
ZXJSZW5kZXJlckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAKaW5kZXggYmVlMjZlNmM5MTFiNDkx
NWRhY2MxNjZiN2UyMGM3OWM4MGQwMzZjOC4uYTc5NmQ5OWZiNTBlMmYxNDA3MzY3NjE1M2E1YjVj
YTU2NWM1ODgwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwCkBAIC0z
MTIsMTYgKzMxMiwxMSBAQCB2b2lkIExheWVyUmVuZGVyZXJDaHJvbWl1bTo6ZHJhd0xheWVyc09u
dG9SZW5kZXJTdXJmYWNlcyhDQ0xheWVySW1wbCogcm9vdERyYXdMYQogICAgICAgICBDQ0xheWVy
SW1wbCogcmVuZGVyU3VyZmFjZUxheWVyID0gcmVuZGVyU3VyZmFjZUxheWVyTGlzdFtzdXJmYWNl
SW5kZXhdLmdldCgpOwogICAgICAgICBDQ1JlbmRlclN1cmZhY2UqIHJlbmRlclN1cmZhY2UgPSBy
ZW5kZXJTdXJmYWNlTGF5ZXItPnJlbmRlclN1cmZhY2UoKTsKICAgICAgICAgQVNTRVJUKHJlbmRl
clN1cmZhY2UpOworICAgICAgICBBU1NFUlQocmVuZGVyU3VyZmFjZS0+bGF5ZXJMaXN0KCkuc2l6
ZSgpKTsKKyAgICAgICAgQVNTRVJUKHJlbmRlclN1cmZhY2UtPmRyYXdPcGFjaXR5KCkpOwogCiAg
ICAgICAgIHJlbmRlclN1cmZhY2UtPnNldFNraXBzRHJhdyh0cnVlKTsKIAotICAgICAgICBpZiAo
IXJlbmRlclN1cmZhY2UtPmxheWVyTGlzdCgpLnNpemUoKSkKLSAgICAgICAgICAgIGNvbnRpbnVl
OwotCi0gICAgICAgIC8vIFNraXAgY29tcGxldGVseSB0cmFuc3BhcmVudCByZW5kZXIgc3VyZmFj
ZXMuCi0gICAgICAgIGlmICghcmVuZGVyU3VyZmFjZS0+ZHJhd09wYWNpdHkoKSkKLSAgICAgICAg
ICAgIGNvbnRpbnVlOwotCiAgICAgICAgIGlmICh1c2VSZW5kZXJTdXJmYWNlKHJlbmRlclN1cmZh
Y2UpKSB7CiAgICAgICAgICAgICByZW5kZXJTdXJmYWNlLT5zZXRTa2lwc0RyYXcoZmFsc2UpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ0xheWVyVHJlZUhvc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcAppbmRleCA0MThkNTI5OGQxMDZiOWZlZGU3
Y2JlMWI0YTRhMzAwYTUwYjllY2NhLi4xMjI4OWFiODNiMGQ3NmU4YzA1ZmMzNDZhNmUyNjNjMTk1
YmQzNWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAKQEAgLTMzMCwxNCArMzMw
LDggQEAgdm9pZCBDQ0xheWVyVHJlZUhvc3Q6OnBhaW50TGF5ZXJDb250ZW50cyhjb25zdCBMYXll
ckxpc3QmIHJlbmRlclN1cmZhY2VMYXllckxpc3QKICAgICAgICAgTGF5ZXJDaHJvbWl1bSogcmVu
ZGVyU3VyZmFjZUxheWVyID0gcmVuZGVyU3VyZmFjZUxheWVyTGlzdFtzdXJmYWNlSW5kZXhdLmdl
dCgpOwogICAgICAgICBSZW5kZXJTdXJmYWNlQ2hyb21pdW0qIHJlbmRlclN1cmZhY2UgPSByZW5k
ZXJTdXJmYWNlTGF5ZXItPnJlbmRlclN1cmZhY2UoKTsKICAgICAgICAgQVNTRVJUKHJlbmRlclN1
cmZhY2UpOwotCi0gICAgICAgIC8vIFJlbmRlciBzdXJmYWNlcyB3aG9zZSBkcmF3YWJsZSBhcmVh
IGhhcyB6ZXJvIHdpZHRoIG9yIGhlaWdodAotICAgICAgICAvLyB3aWxsIGhhdmUgbm8gbGF5ZXJz
IGFzc29jaWF0ZWQgd2l0aCB0aGVtIGFuZCBzaG91bGQgYmUgc2tpcHBlZC4KLSAgICAgICAgaWYg
KCFyZW5kZXJTdXJmYWNlLT5sYXllckxpc3QoKS5zaXplKCkpCi0gICAgICAgICAgICBjb250aW51
ZTsKLQotICAgICAgICBpZiAoIXJlbmRlclN1cmZhY2UtPmRyYXdPcGFjaXR5KCkpCi0gICAgICAg
ICAgICBjb250aW51ZTsKKyAgICAgICAgQVNTRVJUKHJlbmRlclN1cmZhY2UtPmxheWVyTGlzdCgp
LnNpemUoKSk7CisgICAgICAgIEFTU0VSVChyZW5kZXJTdXJmYWNlLT5kcmF3T3BhY2l0eSgpKTsK
IAogICAgICAgICByZW5kZXJTdXJmYWNlTGF5ZXItPnNldExheWVyVHJlZUhvc3QodGhpcyk7CiAg
ICAgICAgIHBhaW50TWFza0FuZFJlcGxpY2FGb3JSZW5kZXJTdXJmYWNlKHJlbmRlclN1cmZhY2VM
YXllcik7CkBAIC0zNzAsOSArMzY0LDggQEAgdm9pZCBDQ0xheWVyVHJlZUhvc3Q6OnVwZGF0ZUNv
bXBvc2l0b3JSZXNvdXJjZXMoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQsIENDVGUKICAgICAg
ICAgTGF5ZXJDaHJvbWl1bSogcmVuZGVyU3VyZmFjZUxheWVyID0gbV91cGRhdGVMaXN0W3N1cmZh
Y2VJbmRleF0uZ2V0KCk7CiAgICAgICAgIFJlbmRlclN1cmZhY2VDaHJvbWl1bSogcmVuZGVyU3Vy
ZmFjZSA9IHJlbmRlclN1cmZhY2VMYXllci0+cmVuZGVyU3VyZmFjZSgpOwogICAgICAgICBBU1NF
UlQocmVuZGVyU3VyZmFjZSk7Ci0KLSAgICAgICAgaWYgKCFyZW5kZXJTdXJmYWNlLT5sYXllckxp
c3QoKS5zaXplKCkgfHwgIXJlbmRlclN1cmZhY2UtPmRyYXdPcGFjaXR5KCkpCi0gICAgICAgICAg
ICBjb250aW51ZTsKKyAgICAgICAgQVNTRVJUKHJlbmRlclN1cmZhY2UtPmxheWVyTGlzdCgpLnNp
emUoKSk7CisgICAgICAgIEFTU0VSVChyZW5kZXJTdXJmYWNlLT5kcmF3T3BhY2l0eSgpKTsKIAog
ICAgICAgICBpZiAocmVuZGVyU3VyZmFjZUxheWVyLT5tYXNrTGF5ZXIoKSkKICAgICAgICAgICAg
IHVwZGF0ZUNvbXBvc2l0b3JSZXNvdXJjZXMocmVuZGVyU3VyZmFjZUxheWVyLT5tYXNrTGF5ZXIo
KSwgY29udGV4dCwgdXBkYXRlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RDb21tb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0Q29t
bW9uLmNwcAppbmRleCAwNzAwOGUwMjkwYjI0NjY4NjJiMTU0NzZlZmIyODQxMTI5Y2QzNDljLi4z
ODY2MGI5Mjg0MTAxMTUzMjIzNjc1NTcxMjlmOWJkYTJkZjcwZjMzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RD
b21tb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDTGF5ZXJUcmVlSG9zdENvbW1vbi5jcHAKQEAgLTIzNCw3ICsyMzQsOSBAQCBzdGF0aWMg
dm9pZCBjYWxjdWxhdGVEcmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxpdHlJbnRlcm5hbChMYXllclR5
cGUqIGxheWVyLCBMYXllcgogICAgIGlmICh1c2VTdXJmYWNlRm9yTWFza2luZyB8fCB1c2VTdXJm
YWNlRm9yUmVmbGVjdGlvbiB8fCB1c2VTdXJmYWNlRm9yRmxhdERlc2NlbmRhbnRzIHx8ICgodXNl
U3VyZmFjZUZvckNsaXBwaW5nIHx8IHVzZVN1cmZhY2VGb3JPcGFjaXR5KSAmJiBsYXllci0+ZGVz
Y2VuZGFudERyYXdzQ29udGVudCgpKSkgewogICAgICAgICBpZiAoIWxheWVyLT5yZW5kZXJTdXJm
YWNlKCkpCiAgICAgICAgICAgICBsYXllci0+Y3JlYXRlUmVuZGVyU3VyZmFjZSgpOworCiAgICAg
ICAgIFJlbmRlclN1cmZhY2VUeXBlKiByZW5kZXJTdXJmYWNlID0gbGF5ZXItPnJlbmRlclN1cmZh
Y2UoKTsKKyAgICAgICAgcmVuZGVyU3VyZmFjZS0+Y2xlYXJMYXllckxpc3QoKTsKIAogICAgICAg
ICAvLyBUaGUgb3JpZ2luIG9mIHRoZSBuZXcgc3VyZmFjZSBpcyB0aGUgdXBwZXIgbGVmdCBjb3Ju
ZXIgb2YgdGhlIGxheWVyLgogICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBkcmF3VHJhbnNm
b3JtOwpAQCAtMjUwLDYgKzI1MiwxMCBAQCBzdGF0aWMgdm9pZCBjYWxjdWxhdGVEcmF3VHJhbnNm
b3Jtc0FuZFZpc2liaWxpdHlJbnRlcm5hbChMYXllclR5cGUqIGxheWVyLCBMYXllcgogICAgICAg
ICByZW5kZXJTdXJmYWNlLT5zZXREcmF3T3BhY2l0eShkcmF3T3BhY2l0eSk7CiAgICAgICAgIGxh
eWVyLT5zZXREcmF3T3BhY2l0eSgxKTsKIAorICAgICAgICAvLyBJZiB0aGlzIHJlbmRlciBzdXJm
YWNlIGlzbid0IGRyYXduLCB3ZSBjYW4gYWxzbyBza2lwIGl0cyBjaGlsZHJlbi4KKyAgICAgICAg
aWYgKCFyZW5kZXJTdXJmYWNlLT5kcmF3T3BhY2l0eSgpKQorICAgICAgICAgICAgcmV0dXJuOwor
CiAgICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGxheWVyT3JpZ2luVHJhbnNmb3JtID0gY29t
YmluZWRUcmFuc2Zvcm07CiAgICAgICAgIGxheWVyT3JpZ2luVHJhbnNmb3JtLnRyYW5zbGF0ZTNk
KC0wLjUgKiBib3VuZHMud2lkdGgoKSwgLTAuNSAqIGJvdW5kcy5oZWlnaHQoKSwgMCk7CiAgICAg
ICAgIHJlbmRlclN1cmZhY2UtPnNldE9yaWdpblRyYW5zZm9ybShsYXllck9yaWdpblRyYW5zZm9y
bSk7CkBAIC0yNjIsOCArMjY4LDYgQEAgc3RhdGljIHZvaWQgY2FsY3VsYXRlRHJhd1RyYW5zZm9y
bXNBbmRWaXNpYmlsaXR5SW50ZXJuYWwoTGF5ZXJUeXBlKiBsYXllciwgTGF5ZXIKICAgICAgICAg
Ly8gc3VyZmFjZSBhbmQgaXMgdGhlcmVmb3JlIGV4cHJlc3NlZCBpbiB0aGUgcGFyZW50J3MgY29v
cmRpbmF0ZSBzeXN0ZW0uCiAgICAgICAgIHJlbmRlclN1cmZhY2UtPnNldFNjaXNzb3JSZWN0KGxh
eWVyLT5wYXJlbnQoKSA/IGxheWVyLT5wYXJlbnQoKS0+c2Npc3NvclJlY3QoKSA6IGxheWVyLT5z
Y2lzc29yUmVjdCgpKTsKIAotICAgICAgICByZW5kZXJTdXJmYWNlLT5jbGVhckxheWVyTGlzdCgp
OwotCiAgICAgICAgIGlmIChsYXllci0+bWFza0xheWVyKCkpIHsKICAgICAgICAgICAgIHJlbmRl
clN1cmZhY2UtPnNldE1hc2tMYXllcihsYXllci0+bWFza0xheWVyKCkpOwogICAgICAgICAgICAg
bGF5ZXItPm1hc2tMYXllcigpLT5zZXRUYXJnZXRSZW5kZXJTdXJmYWNlKHJlbmRlclN1cmZhY2Up
OwpAQCAtMzU5LDExICszNjMsMTMgQEAgc3RhdGljIHZvaWQgY2FsY3VsYXRlRHJhd1RyYW5zZm9y
bXNBbmRWaXNpYmlsaXR5SW50ZXJuYWwoTGF5ZXJUeXBlKiBsYXllciwgTGF5ZXIKICAgICAgICAg
Y2FsY3VsYXRlRHJhd1RyYW5zZm9ybXNBbmRWaXNpYmlsaXR5SW50ZXJuYWw8TGF5ZXJUeXBlLCBS
ZW5kZXJTdXJmYWNlVHlwZSwgTGF5ZXJTb3J0ZXI+KGNoaWxkLCByb290TGF5ZXIsIHN1YmxheWVy
TWF0cml4LCBuZXh0SGllcmFyY2h5TWF0cml4LCByZW5kZXJTdXJmYWNlTGF5ZXJMaXN0LCBkZXNj
ZW5kYW50cywgbGF5ZXJTb3J0ZXIsIG1heFRleHR1cmVTaXplKTsKIAogICAgICAgICBpZiAoY2hp
bGQtPnJlbmRlclN1cmZhY2UoKSkgewotICAgICAgICAgICAgUmVuZGVyU3VyZmFjZVR5cGUqIGNo
aWxkUmVuZGVyU3VyZmFjZSA9IGNoaWxkLT5yZW5kZXJTdXJmYWNlKCk7Ci0gICAgICAgICAgICBJ
bnRSZWN0IGRyYXdhYmxlQ29udGVudFJlY3QgPSBsYXllci0+ZHJhd2FibGVDb250ZW50UmVjdCgp
OwotICAgICAgICAgICAgZHJhd2FibGVDb250ZW50UmVjdC51bml0ZShlbmNsb3NpbmdJbnRSZWN0
KGNoaWxkUmVuZGVyU3VyZmFjZS0+ZHJhd2FibGVDb250ZW50UmVjdCgpKSk7Ci0gICAgICAgICAg
ICBsYXllci0+c2V0RHJhd2FibGVDb250ZW50UmVjdChkcmF3YWJsZUNvbnRlbnRSZWN0KTsKLSAg
ICAgICAgICAgIGRlc2NlbmRhbnRzLmFwcGVuZChjaGlsZCk7CisgICAgICAgICAgICBpZiAoY2hp
bGQtPnJlbmRlclN1cmZhY2UoKS0+bGF5ZXJMaXN0KCkuc2l6ZSgpKSB7CisgICAgICAgICAgICAg
ICAgUmVuZGVyU3VyZmFjZVR5cGUqIGNoaWxkUmVuZGVyU3VyZmFjZSA9IGNoaWxkLT5yZW5kZXJT
dXJmYWNlKCk7CisgICAgICAgICAgICAgICAgSW50UmVjdCBkcmF3YWJsZUNvbnRlbnRSZWN0ID0g
bGF5ZXItPmRyYXdhYmxlQ29udGVudFJlY3QoKTsKKyAgICAgICAgICAgICAgICBkcmF3YWJsZUNv
bnRlbnRSZWN0LnVuaXRlKGVuY2xvc2luZ0ludFJlY3QoY2hpbGRSZW5kZXJTdXJmYWNlLT5kcmF3
YWJsZUNvbnRlbnRSZWN0KCkpKTsKKyAgICAgICAgICAgICAgICBsYXllci0+c2V0RHJhd2FibGVD
b250ZW50UmVjdChkcmF3YWJsZUNvbnRlbnRSZWN0KTsKKyAgICAgICAgICAgICAgICBkZXNjZW5k
YW50cy5hcHBlbmQoY2hpbGQpOworICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UgewogICAg
ICAgICAgICAgSW50UmVjdCBkcmF3YWJsZUNvbnRlbnRSZWN0ID0gbGF5ZXItPmRyYXdhYmxlQ29u
dGVudFJlY3QoKTsKICAgICAgICAgICAgIGRyYXdhYmxlQ29udGVudFJlY3QudW5pdGUoY2hpbGQt
PmRyYXdhYmxlQ29udGVudFJlY3QoKSk7CkBAIC0zNzEsNiArMzc3LDE5IEBAIHN0YXRpYyB2b2lk
IGNhbGN1bGF0ZURyYXdUcmFuc2Zvcm1zQW5kVmlzaWJpbGl0eUludGVybmFsKExheWVyVHlwZSog
bGF5ZXIsIExheWVyCiAgICAgICAgIH0KICAgICB9CiAKKyAgICBpZiAobGF5ZXItPnJlbmRlclN1
cmZhY2UoKSAmJiAhbGF5ZXItPnJlbmRlclN1cmZhY2UoKS0+bGF5ZXJMaXN0KCkuc2l6ZSgpKSB7
CisgICAgICAgIC8vIElmIGEgcmVuZGVyIHN1cmZhY2UgaGFzIG5vIGxheWVyIGxpc3QsIHRoZW4g
aXQgYW5kIG5vbmUgb2YgaXRzCisgICAgICAgIC8vIGNoaWxkcmVuIG5lZWRlZCB0byBnZXQgZHJh
d24uIFRoZXJlZm9yZSwgaXQgc2hvdWxkIGJlIHRoZSBsYXN0IGxheWVyCisgICAgICAgIC8vIGlu
IHRoZSByZW5kZXIgc3VyZmFjZSBsaXN0IGFuZCB3ZSBjYW4gdHJpdmlhbGx5IHJlbW92ZSBpdC4K
KyAgICAgICAgQVNTRVJUKHJlbmRlclN1cmZhY2VMYXllckxpc3QubGFzdCgpID09IGxheWVyKTsK
KyAgICAgICAgcmVuZGVyU3VyZmFjZUxheWVyTGlzdC5yZW1vdmVMYXN0KCk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICAvLyBJZiBuZWl0aGVyIHRoaXMgbGF5ZXIgbm9yIGFueSBvZiBp
dHMgY2hpbGRyZW4gd2VyZSBhZGRlZCwgZWFybHkgb3V0LgorICAgIGlmIChzb3J0aW5nU3RhcnRJ
bmRleCA9PSBkZXNjZW5kYW50cy5zaXplKCkpCisgICAgICAgIHJldHVybjsKKwogICAgIGlmIChs
YXllci0+bWFza3NUb0JvdW5kcygpIHx8IHVzZVN1cmZhY2VGb3JNYXNraW5nKSB7CiAgICAgICAg
IEludFJlY3QgZHJhd2FibGVDb250ZW50UmVjdCA9IGxheWVyLT5kcmF3YWJsZUNvbnRlbnRSZWN0
KCk7CiAgICAgICAgIGRyYXdhYmxlQ29udGVudFJlY3QuaW50ZXJzZWN0KHRyYW5zZm9ybWVkTGF5
ZXJSZWN0KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112719</attachid>
            <date>2011-10-27 11:59:33 -0700</date>
            <delta_ts>2011-10-27 17:52:57 -0700</delta_ts>
            <desc>Remove unnecessary skipsDraw</desc>
            <filename>bug-71038-20111027115932.patch</filename>
            <type>text/plain</type>
            <size>8838</size>
            <attacher name="Adrienne Walker">enne</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg1OTAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2NzE5YzEwYzJhMzhiMzQ5
NmIyMjEzZmRiNzM5ZDJmY2Q3ZGE5OTYzLi5kNDBmNmM2ZGVjNWQ2MWI2OGQ3MWI5ZTNkYjA0NDcy
MTExM2U0ZDcwIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTEtMTAtMjcgIEFkcmll
bm5lIFdhbGtlciAgPGVubmVAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIEltcGxp
Y2l0bHkgc2tpcCByZW5kZXIgc3VyZmFjZXMgdGhhdCB3b24ndCBiZSBkcmF3bgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEwMzgKKworICAgICAgICBS
YXRoZXIgdGhhbiBoYXZpbmcgcmVkdW5kYW50IGNoZWNrcyBpbiB0aHJlZSBwbGFjZXMgZm9yIGhv
dyB0byB3YWxrCisgICAgICAgIHRocm91Z2ggYSByZW5kZXIgc3VyZmFjZSBsaXN0LCBpbnN0ZWFk
IGRvbid0IGFkZCByZW5kZXIgc3VyZmFjZXMgdGhhdAorICAgICAgICBkb24ndCBuZWVkIHRvIGdl
dCByZW5kZXJlZCB0byB0aGUgcmVuZGVyIHN1cmZhY2UgbGlzdC4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIGxheW91
dCB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVu
ZGVyZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXllclJlbmRlcmVyQ2hyb21p
dW06OmRyYXdMYXllcnNPbnRvUmVuZGVyU3VyZmFjZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDQ0xheWVyVHJlZUhvc3Q6OnBhaW50TGF5ZXJDb250ZW50cyk6CisgICAgICAgIChXZWJDb3Jl
OjpDQ0xheWVyVHJlZUhvc3Q6OnVwZGF0ZUNvbXBvc2l0b3JSZXNvdXJjZXMpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdENvbW1vbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpjYWxjdWxhdGVEcmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxpdHlJ
bnRlcm5hbCk6CisKIDIwMTEtMTAtMjcgIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgog
CiAgICAgICAgIFJlZ2VuZXJhdGUgV2ViQ29yZSdzIExvY2FsaXphYmxlLnN0cmluZ3MgZmlsZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5
ZXJSZW5kZXJlckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAKaW5kZXggYmVlMjZlNmM5MTFiNDkx
NWRhY2MxNjZiN2UyMGM3OWM4MGQwMzZjOC4uNzgyYjkyMGE0MDhjNzcxMjYzMDI2ZjhkMDFhOTk3
NTk3MGZiNDYwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwCkBAIC0z
MTIsMTkgKzMxMiwxMCBAQCB2b2lkIExheWVyUmVuZGVyZXJDaHJvbWl1bTo6ZHJhd0xheWVyc09u
dG9SZW5kZXJTdXJmYWNlcyhDQ0xheWVySW1wbCogcm9vdERyYXdMYQogICAgICAgICBDQ0xheWVy
SW1wbCogcmVuZGVyU3VyZmFjZUxheWVyID0gcmVuZGVyU3VyZmFjZUxheWVyTGlzdFtzdXJmYWNl
SW5kZXhdLmdldCgpOwogICAgICAgICBDQ1JlbmRlclN1cmZhY2UqIHJlbmRlclN1cmZhY2UgPSBy
ZW5kZXJTdXJmYWNlTGF5ZXItPnJlbmRlclN1cmZhY2UoKTsKICAgICAgICAgQVNTRVJUKHJlbmRl
clN1cmZhY2UpOwotCi0gICAgICAgIHJlbmRlclN1cmZhY2UtPnNldFNraXBzRHJhdyh0cnVlKTsK
LQotICAgICAgICBpZiAoIXJlbmRlclN1cmZhY2UtPmxheWVyTGlzdCgpLnNpemUoKSkKLSAgICAg
ICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgIC8vIFNraXAgY29tcGxldGVseSB0cmFuc3BhcmVu
dCByZW5kZXIgc3VyZmFjZXMuCi0gICAgICAgIGlmICghcmVuZGVyU3VyZmFjZS0+ZHJhd09wYWNp
dHkoKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBBU1NFUlQocmVuZGVyU3VyZmFj
ZS0+bGF5ZXJMaXN0KCkuc2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHJlbmRlclN1cmZhY2UtPmRy
YXdPcGFjaXR5KCkpOwogCiAgICAgICAgIGlmICh1c2VSZW5kZXJTdXJmYWNlKHJlbmRlclN1cmZh
Y2UpKSB7Ci0gICAgICAgICAgICByZW5kZXJTdXJmYWNlLT5zZXRTa2lwc0RyYXcoZmFsc2UpOwot
CiAgICAgICAgICAgICBpZiAocmVuZGVyU3VyZmFjZUxheWVyICE9IHJvb3REcmF3TGF5ZXIpIHsK
ICAgICAgICAgICAgICAgICBHTEMobV9jb250ZXh0LmdldCgpLCBtX2NvbnRleHQtPmRpc2FibGUo
R3JhcGhpY3NDb250ZXh0M0Q6OlNDSVNTT1JfVEVTVCkpOwogICAgICAgICAgICAgICAgIEdMQyht
X2NvbnRleHQuZ2V0KCksIG1fY29udGV4dC0+Y2xlYXJDb2xvcigwLCAwLCAwLCAwKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xh
eWVyVHJlZUhvc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcAppbmRleCA0MThkNTI5OGQxMDZiOWZlZGU3Y2JlMWI0
YTRhMzAwYTUwYjllY2NhLi4xMjI4OWFiODNiMGQ3NmU4YzA1ZmMzNDZhNmUyNjNjMTk1YmQzNWZi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ0xheWVyVHJlZUhvc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAKQEAgLTMzMCwxNCArMzMwLDggQEAg
dm9pZCBDQ0xheWVyVHJlZUhvc3Q6OnBhaW50TGF5ZXJDb250ZW50cyhjb25zdCBMYXllckxpc3Qm
IHJlbmRlclN1cmZhY2VMYXllckxpc3QKICAgICAgICAgTGF5ZXJDaHJvbWl1bSogcmVuZGVyU3Vy
ZmFjZUxheWVyID0gcmVuZGVyU3VyZmFjZUxheWVyTGlzdFtzdXJmYWNlSW5kZXhdLmdldCgpOwog
ICAgICAgICBSZW5kZXJTdXJmYWNlQ2hyb21pdW0qIHJlbmRlclN1cmZhY2UgPSByZW5kZXJTdXJm
YWNlTGF5ZXItPnJlbmRlclN1cmZhY2UoKTsKICAgICAgICAgQVNTRVJUKHJlbmRlclN1cmZhY2Up
OwotCi0gICAgICAgIC8vIFJlbmRlciBzdXJmYWNlcyB3aG9zZSBkcmF3YWJsZSBhcmVhIGhhcyB6
ZXJvIHdpZHRoIG9yIGhlaWdodAotICAgICAgICAvLyB3aWxsIGhhdmUgbm8gbGF5ZXJzIGFzc29j
aWF0ZWQgd2l0aCB0aGVtIGFuZCBzaG91bGQgYmUgc2tpcHBlZC4KLSAgICAgICAgaWYgKCFyZW5k
ZXJTdXJmYWNlLT5sYXllckxpc3QoKS5zaXplKCkpCi0gICAgICAgICAgICBjb250aW51ZTsKLQot
ICAgICAgICBpZiAoIXJlbmRlclN1cmZhY2UtPmRyYXdPcGFjaXR5KCkpCi0gICAgICAgICAgICBj
b250aW51ZTsKKyAgICAgICAgQVNTRVJUKHJlbmRlclN1cmZhY2UtPmxheWVyTGlzdCgpLnNpemUo
KSk7CisgICAgICAgIEFTU0VSVChyZW5kZXJTdXJmYWNlLT5kcmF3T3BhY2l0eSgpKTsKIAogICAg
ICAgICByZW5kZXJTdXJmYWNlTGF5ZXItPnNldExheWVyVHJlZUhvc3QodGhpcyk7CiAgICAgICAg
IHBhaW50TWFza0FuZFJlcGxpY2FGb3JSZW5kZXJTdXJmYWNlKHJlbmRlclN1cmZhY2VMYXllcik7
CkBAIC0zNzAsOSArMzY0LDggQEAgdm9pZCBDQ0xheWVyVHJlZUhvc3Q6OnVwZGF0ZUNvbXBvc2l0
b3JSZXNvdXJjZXMoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQsIENDVGUKICAgICAgICAgTGF5
ZXJDaHJvbWl1bSogcmVuZGVyU3VyZmFjZUxheWVyID0gbV91cGRhdGVMaXN0W3N1cmZhY2VJbmRl
eF0uZ2V0KCk7CiAgICAgICAgIFJlbmRlclN1cmZhY2VDaHJvbWl1bSogcmVuZGVyU3VyZmFjZSA9
IHJlbmRlclN1cmZhY2VMYXllci0+cmVuZGVyU3VyZmFjZSgpOwogICAgICAgICBBU1NFUlQocmVu
ZGVyU3VyZmFjZSk7Ci0KLSAgICAgICAgaWYgKCFyZW5kZXJTdXJmYWNlLT5sYXllckxpc3QoKS5z
aXplKCkgfHwgIXJlbmRlclN1cmZhY2UtPmRyYXdPcGFjaXR5KCkpCi0gICAgICAgICAgICBjb250
aW51ZTsKKyAgICAgICAgQVNTRVJUKHJlbmRlclN1cmZhY2UtPmxheWVyTGlzdCgpLnNpemUoKSk7
CisgICAgICAgIEFTU0VSVChyZW5kZXJTdXJmYWNlLT5kcmF3T3BhY2l0eSgpKTsKIAogICAgICAg
ICBpZiAocmVuZGVyU3VyZmFjZUxheWVyLT5tYXNrTGF5ZXIoKSkKICAgICAgICAgICAgIHVwZGF0
ZUNvbXBvc2l0b3JSZXNvdXJjZXMocmVuZGVyU3VyZmFjZUxheWVyLT5tYXNrTGF5ZXIoKSwgY29u
dGV4dCwgdXBkYXRlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RDb21tb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0Q29tbW9uLmNw
cAppbmRleCAwNzAwOGUwMjkwYjI0NjY4NjJiMTU0NzZlZmIyODQxMTI5Y2QzNDljLi4zODY2MGI5
Mjg0MTAxMTUzMjIzNjc1NTcxMjlmOWJkYTJkZjcwZjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RDb21tb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
TGF5ZXJUcmVlSG9zdENvbW1vbi5jcHAKQEAgLTIzNCw3ICsyMzQsOSBAQCBzdGF0aWMgdm9pZCBj
YWxjdWxhdGVEcmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxpdHlJbnRlcm5hbChMYXllclR5cGUqIGxh
eWVyLCBMYXllcgogICAgIGlmICh1c2VTdXJmYWNlRm9yTWFza2luZyB8fCB1c2VTdXJmYWNlRm9y
UmVmbGVjdGlvbiB8fCB1c2VTdXJmYWNlRm9yRmxhdERlc2NlbmRhbnRzIHx8ICgodXNlU3VyZmFj
ZUZvckNsaXBwaW5nIHx8IHVzZVN1cmZhY2VGb3JPcGFjaXR5KSAmJiBsYXllci0+ZGVzY2VuZGFu
dERyYXdzQ29udGVudCgpKSkgewogICAgICAgICBpZiAoIWxheWVyLT5yZW5kZXJTdXJmYWNlKCkp
CiAgICAgICAgICAgICBsYXllci0+Y3JlYXRlUmVuZGVyU3VyZmFjZSgpOworCiAgICAgICAgIFJl
bmRlclN1cmZhY2VUeXBlKiByZW5kZXJTdXJmYWNlID0gbGF5ZXItPnJlbmRlclN1cmZhY2UoKTsK
KyAgICAgICAgcmVuZGVyU3VyZmFjZS0+Y2xlYXJMYXllckxpc3QoKTsKIAogICAgICAgICAvLyBU
aGUgb3JpZ2luIG9mIHRoZSBuZXcgc3VyZmFjZSBpcyB0aGUgdXBwZXIgbGVmdCBjb3JuZXIgb2Yg
dGhlIGxheWVyLgogICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBkcmF3VHJhbnNmb3JtOwpA
QCAtMjUwLDYgKzI1MiwxMCBAQCBzdGF0aWMgdm9pZCBjYWxjdWxhdGVEcmF3VHJhbnNmb3Jtc0Fu
ZFZpc2liaWxpdHlJbnRlcm5hbChMYXllclR5cGUqIGxheWVyLCBMYXllcgogICAgICAgICByZW5k
ZXJTdXJmYWNlLT5zZXREcmF3T3BhY2l0eShkcmF3T3BhY2l0eSk7CiAgICAgICAgIGxheWVyLT5z
ZXREcmF3T3BhY2l0eSgxKTsKIAorICAgICAgICAvLyBJZiB0aGlzIHJlbmRlciBzdXJmYWNlIGlz
bid0IGRyYXduLCB3ZSBjYW4gYWxzbyBza2lwIGl0cyBjaGlsZHJlbi4KKyAgICAgICAgaWYgKCFy
ZW5kZXJTdXJmYWNlLT5kcmF3T3BhY2l0eSgpKQorICAgICAgICAgICAgcmV0dXJuOworCiAgICAg
ICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGxheWVyT3JpZ2luVHJhbnNmb3JtID0gY29tYmluZWRU
cmFuc2Zvcm07CiAgICAgICAgIGxheWVyT3JpZ2luVHJhbnNmb3JtLnRyYW5zbGF0ZTNkKC0wLjUg
KiBib3VuZHMud2lkdGgoKSwgLTAuNSAqIGJvdW5kcy5oZWlnaHQoKSwgMCk7CiAgICAgICAgIHJl
bmRlclN1cmZhY2UtPnNldE9yaWdpblRyYW5zZm9ybShsYXllck9yaWdpblRyYW5zZm9ybSk7CkBA
IC0yNjIsOCArMjY4LDYgQEAgc3RhdGljIHZvaWQgY2FsY3VsYXRlRHJhd1RyYW5zZm9ybXNBbmRW
aXNpYmlsaXR5SW50ZXJuYWwoTGF5ZXJUeXBlKiBsYXllciwgTGF5ZXIKICAgICAgICAgLy8gc3Vy
ZmFjZSBhbmQgaXMgdGhlcmVmb3JlIGV4cHJlc3NlZCBpbiB0aGUgcGFyZW50J3MgY29vcmRpbmF0
ZSBzeXN0ZW0uCiAgICAgICAgIHJlbmRlclN1cmZhY2UtPnNldFNjaXNzb3JSZWN0KGxheWVyLT5w
YXJlbnQoKSA/IGxheWVyLT5wYXJlbnQoKS0+c2Npc3NvclJlY3QoKSA6IGxheWVyLT5zY2lzc29y
UmVjdCgpKTsKIAotICAgICAgICByZW5kZXJTdXJmYWNlLT5jbGVhckxheWVyTGlzdCgpOwotCiAg
ICAgICAgIGlmIChsYXllci0+bWFza0xheWVyKCkpIHsKICAgICAgICAgICAgIHJlbmRlclN1cmZh
Y2UtPnNldE1hc2tMYXllcihsYXllci0+bWFza0xheWVyKCkpOwogICAgICAgICAgICAgbGF5ZXIt
Pm1hc2tMYXllcigpLT5zZXRUYXJnZXRSZW5kZXJTdXJmYWNlKHJlbmRlclN1cmZhY2UpOwpAQCAt
MzU5LDExICszNjMsMTMgQEAgc3RhdGljIHZvaWQgY2FsY3VsYXRlRHJhd1RyYW5zZm9ybXNBbmRW
aXNpYmlsaXR5SW50ZXJuYWwoTGF5ZXJUeXBlKiBsYXllciwgTGF5ZXIKICAgICAgICAgY2FsY3Vs
YXRlRHJhd1RyYW5zZm9ybXNBbmRWaXNpYmlsaXR5SW50ZXJuYWw8TGF5ZXJUeXBlLCBSZW5kZXJT
dXJmYWNlVHlwZSwgTGF5ZXJTb3J0ZXI+KGNoaWxkLCByb290TGF5ZXIsIHN1YmxheWVyTWF0cml4
LCBuZXh0SGllcmFyY2h5TWF0cml4LCByZW5kZXJTdXJmYWNlTGF5ZXJMaXN0LCBkZXNjZW5kYW50
cywgbGF5ZXJTb3J0ZXIsIG1heFRleHR1cmVTaXplKTsKIAogICAgICAgICBpZiAoY2hpbGQtPnJl
bmRlclN1cmZhY2UoKSkgewotICAgICAgICAgICAgUmVuZGVyU3VyZmFjZVR5cGUqIGNoaWxkUmVu
ZGVyU3VyZmFjZSA9IGNoaWxkLT5yZW5kZXJTdXJmYWNlKCk7Ci0gICAgICAgICAgICBJbnRSZWN0
IGRyYXdhYmxlQ29udGVudFJlY3QgPSBsYXllci0+ZHJhd2FibGVDb250ZW50UmVjdCgpOwotICAg
ICAgICAgICAgZHJhd2FibGVDb250ZW50UmVjdC51bml0ZShlbmNsb3NpbmdJbnRSZWN0KGNoaWxk
UmVuZGVyU3VyZmFjZS0+ZHJhd2FibGVDb250ZW50UmVjdCgpKSk7Ci0gICAgICAgICAgICBsYXll
ci0+c2V0RHJhd2FibGVDb250ZW50UmVjdChkcmF3YWJsZUNvbnRlbnRSZWN0KTsKLSAgICAgICAg
ICAgIGRlc2NlbmRhbnRzLmFwcGVuZChjaGlsZCk7CisgICAgICAgICAgICBpZiAoY2hpbGQtPnJl
bmRlclN1cmZhY2UoKS0+bGF5ZXJMaXN0KCkuc2l6ZSgpKSB7CisgICAgICAgICAgICAgICAgUmVu
ZGVyU3VyZmFjZVR5cGUqIGNoaWxkUmVuZGVyU3VyZmFjZSA9IGNoaWxkLT5yZW5kZXJTdXJmYWNl
KCk7CisgICAgICAgICAgICAgICAgSW50UmVjdCBkcmF3YWJsZUNvbnRlbnRSZWN0ID0gbGF5ZXIt
PmRyYXdhYmxlQ29udGVudFJlY3QoKTsKKyAgICAgICAgICAgICAgICBkcmF3YWJsZUNvbnRlbnRS
ZWN0LnVuaXRlKGVuY2xvc2luZ0ludFJlY3QoY2hpbGRSZW5kZXJTdXJmYWNlLT5kcmF3YWJsZUNv
bnRlbnRSZWN0KCkpKTsKKyAgICAgICAgICAgICAgICBsYXllci0+c2V0RHJhd2FibGVDb250ZW50
UmVjdChkcmF3YWJsZUNvbnRlbnRSZWN0KTsKKyAgICAgICAgICAgICAgICBkZXNjZW5kYW50cy5h
cHBlbmQoY2hpbGQpOworICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UgewogICAgICAgICAg
ICAgSW50UmVjdCBkcmF3YWJsZUNvbnRlbnRSZWN0ID0gbGF5ZXItPmRyYXdhYmxlQ29udGVudFJl
Y3QoKTsKICAgICAgICAgICAgIGRyYXdhYmxlQ29udGVudFJlY3QudW5pdGUoY2hpbGQtPmRyYXdh
YmxlQ29udGVudFJlY3QoKSk7CkBAIC0zNzEsNiArMzc3LDE5IEBAIHN0YXRpYyB2b2lkIGNhbGN1
bGF0ZURyYXdUcmFuc2Zvcm1zQW5kVmlzaWJpbGl0eUludGVybmFsKExheWVyVHlwZSogbGF5ZXIs
IExheWVyCiAgICAgICAgIH0KICAgICB9CiAKKyAgICBpZiAobGF5ZXItPnJlbmRlclN1cmZhY2Uo
KSAmJiAhbGF5ZXItPnJlbmRlclN1cmZhY2UoKS0+bGF5ZXJMaXN0KCkuc2l6ZSgpKSB7CisgICAg
ICAgIC8vIElmIGEgcmVuZGVyIHN1cmZhY2UgaGFzIG5vIGxheWVyIGxpc3QsIHRoZW4gaXQgYW5k
IG5vbmUgb2YgaXRzCisgICAgICAgIC8vIGNoaWxkcmVuIG5lZWRlZCB0byBnZXQgZHJhd24uIFRo
ZXJlZm9yZSwgaXQgc2hvdWxkIGJlIHRoZSBsYXN0IGxheWVyCisgICAgICAgIC8vIGluIHRoZSBy
ZW5kZXIgc3VyZmFjZSBsaXN0IGFuZCB3ZSBjYW4gdHJpdmlhbGx5IHJlbW92ZSBpdC4KKyAgICAg
ICAgQVNTRVJUKHJlbmRlclN1cmZhY2VMYXllckxpc3QubGFzdCgpID09IGxheWVyKTsKKyAgICAg
ICAgcmVuZGVyU3VyZmFjZUxheWVyTGlzdC5yZW1vdmVMYXN0KCk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICAvLyBJZiBuZWl0aGVyIHRoaXMgbGF5ZXIgbm9yIGFueSBvZiBpdHMgY2hp
bGRyZW4gd2VyZSBhZGRlZCwgZWFybHkgb3V0LgorICAgIGlmIChzb3J0aW5nU3RhcnRJbmRleCA9
PSBkZXNjZW5kYW50cy5zaXplKCkpCisgICAgICAgIHJldHVybjsKKwogICAgIGlmIChsYXllci0+
bWFza3NUb0JvdW5kcygpIHx8IHVzZVN1cmZhY2VGb3JNYXNraW5nKSB7CiAgICAgICAgIEludFJl
Y3QgZHJhd2FibGVDb250ZW50UmVjdCA9IGxheWVyLT5kcmF3YWJsZUNvbnRlbnRSZWN0KCk7CiAg
ICAgICAgIGRyYXdhYmxlQ29udGVudFJlY3QuaW50ZXJzZWN0KHRyYW5zZm9ybWVkTGF5ZXJSZWN0
KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112793</attachid>
            <date>2011-10-27 17:53:04 -0700</date>
            <delta_ts>2011-11-16 21:50:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71038-20111027175303.patch</filename>
            <type>text/plain</type>
            <size>8088</size>
            <attacher name="Adrienne Walker">enne</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg1OTAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2NzE5YzEwYzJhMzhiMzQ5
NmIyMjEzZmRiNzM5ZDJmY2Q3ZGE5OTYzLi5kNDBmNmM2ZGVjNWQ2MWI2OGQ3MWI5ZTNkYjA0NDcy
MTExM2U0ZDcwIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTEtMTAtMjcgIEFkcmll
bm5lIFdhbGtlciAgPGVubmVAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIEltcGxp
Y2l0bHkgc2tpcCByZW5kZXIgc3VyZmFjZXMgdGhhdCB3b24ndCBiZSBkcmF3bgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEwMzgKKworICAgICAgICBS
YXRoZXIgdGhhbiBoYXZpbmcgcmVkdW5kYW50IGNoZWNrcyBpbiB0aHJlZSBwbGFjZXMgZm9yIGhv
dyB0byB3YWxrCisgICAgICAgIHRocm91Z2ggYSByZW5kZXIgc3VyZmFjZSBsaXN0LCBpbnN0ZWFk
IGRvbid0IGFkZCByZW5kZXIgc3VyZmFjZXMgdGhhdAorICAgICAgICBkb24ndCBuZWVkIHRvIGdl
dCByZW5kZXJlZCB0byB0aGUgcmVuZGVyIHN1cmZhY2UgbGlzdC4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIGxheW91
dCB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVu
ZGVyZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXllclJlbmRlcmVyQ2hyb21p
dW06OmRyYXdMYXllcnNPbnRvUmVuZGVyU3VyZmFjZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDQ0xheWVyVHJlZUhvc3Q6OnBhaW50TGF5ZXJDb250ZW50cyk6CisgICAgICAgIChXZWJDb3Jl
OjpDQ0xheWVyVHJlZUhvc3Q6OnVwZGF0ZUNvbXBvc2l0b3JSZXNvdXJjZXMpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdENvbW1vbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpjYWxjdWxhdGVEcmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxpdHlJ
bnRlcm5hbCk6CisKIDIwMTEtMTAtMjcgIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgog
CiAgICAgICAgIFJlZ2VuZXJhdGUgV2ViQ29yZSdzIExvY2FsaXphYmxlLnN0cmluZ3MgZmlsZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5
ZXJSZW5kZXJlckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAKaW5kZXggYmVlMjZlNmM5MTFiNDkx
NWRhY2MxNjZiN2UyMGM3OWM4MGQwMzZjOC4uNzgyYjkyMGE0MDhjNzcxMjYzMDI2ZjhkMDFhOTk3
NTk3MGZiNDYwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwCkBAIC0z
MTIsMTkgKzMxMiwxMCBAQCB2b2lkIExheWVyUmVuZGVyZXJDaHJvbWl1bTo6ZHJhd0xheWVyc09u
dG9SZW5kZXJTdXJmYWNlcyhDQ0xheWVySW1wbCogcm9vdERyYXdMYQogICAgICAgICBDQ0xheWVy
SW1wbCogcmVuZGVyU3VyZmFjZUxheWVyID0gcmVuZGVyU3VyZmFjZUxheWVyTGlzdFtzdXJmYWNl
SW5kZXhdLmdldCgpOwogICAgICAgICBDQ1JlbmRlclN1cmZhY2UqIHJlbmRlclN1cmZhY2UgPSBy
ZW5kZXJTdXJmYWNlTGF5ZXItPnJlbmRlclN1cmZhY2UoKTsKICAgICAgICAgQVNTRVJUKHJlbmRl
clN1cmZhY2UpOwotCi0gICAgICAgIHJlbmRlclN1cmZhY2UtPnNldFNraXBzRHJhdyh0cnVlKTsK
LQotICAgICAgICBpZiAoIXJlbmRlclN1cmZhY2UtPmxheWVyTGlzdCgpLnNpemUoKSkKLSAgICAg
ICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgIC8vIFNraXAgY29tcGxldGVseSB0cmFuc3BhcmVu
dCByZW5kZXIgc3VyZmFjZXMuCi0gICAgICAgIGlmICghcmVuZGVyU3VyZmFjZS0+ZHJhd09wYWNp
dHkoKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBBU1NFUlQocmVuZGVyU3VyZmFj
ZS0+bGF5ZXJMaXN0KCkuc2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHJlbmRlclN1cmZhY2UtPmRy
YXdPcGFjaXR5KCkpOwogCiAgICAgICAgIGlmICh1c2VSZW5kZXJTdXJmYWNlKHJlbmRlclN1cmZh
Y2UpKSB7Ci0gICAgICAgICAgICByZW5kZXJTdXJmYWNlLT5zZXRTa2lwc0RyYXcoZmFsc2UpOwot
CiAgICAgICAgICAgICBpZiAocmVuZGVyU3VyZmFjZUxheWVyICE9IHJvb3REcmF3TGF5ZXIpIHsK
ICAgICAgICAgICAgICAgICBHTEMobV9jb250ZXh0LmdldCgpLCBtX2NvbnRleHQtPmRpc2FibGUo
R3JhcGhpY3NDb250ZXh0M0Q6OlNDSVNTT1JfVEVTVCkpOwogICAgICAgICAgICAgICAgIEdMQyht
X2NvbnRleHQuZ2V0KCksIG1fY29udGV4dC0+Y2xlYXJDb2xvcigwLCAwLCAwLCAwKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xh
eWVyVHJlZUhvc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcAppbmRleCA0MThkNTI5OGQxMDZiOWZlZGU3Y2JlMWI0
YTRhMzAwYTUwYjllY2NhLi4xMjI4OWFiODNiMGQ3NmU4YzA1ZmMzNDZhNmUyNjNjMTk1YmQzNWZi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ0xheWVyVHJlZUhvc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAKQEAgLTMzMCwxNCArMzMwLDggQEAg
dm9pZCBDQ0xheWVyVHJlZUhvc3Q6OnBhaW50TGF5ZXJDb250ZW50cyhjb25zdCBMYXllckxpc3Qm
IHJlbmRlclN1cmZhY2VMYXllckxpc3QKICAgICAgICAgTGF5ZXJDaHJvbWl1bSogcmVuZGVyU3Vy
ZmFjZUxheWVyID0gcmVuZGVyU3VyZmFjZUxheWVyTGlzdFtzdXJmYWNlSW5kZXhdLmdldCgpOwog
ICAgICAgICBSZW5kZXJTdXJmYWNlQ2hyb21pdW0qIHJlbmRlclN1cmZhY2UgPSByZW5kZXJTdXJm
YWNlTGF5ZXItPnJlbmRlclN1cmZhY2UoKTsKICAgICAgICAgQVNTRVJUKHJlbmRlclN1cmZhY2Up
OwotCi0gICAgICAgIC8vIFJlbmRlciBzdXJmYWNlcyB3aG9zZSBkcmF3YWJsZSBhcmVhIGhhcyB6
ZXJvIHdpZHRoIG9yIGhlaWdodAotICAgICAgICAvLyB3aWxsIGhhdmUgbm8gbGF5ZXJzIGFzc29j
aWF0ZWQgd2l0aCB0aGVtIGFuZCBzaG91bGQgYmUgc2tpcHBlZC4KLSAgICAgICAgaWYgKCFyZW5k
ZXJTdXJmYWNlLT5sYXllckxpc3QoKS5zaXplKCkpCi0gICAgICAgICAgICBjb250aW51ZTsKLQot
ICAgICAgICBpZiAoIXJlbmRlclN1cmZhY2UtPmRyYXdPcGFjaXR5KCkpCi0gICAgICAgICAgICBj
b250aW51ZTsKKyAgICAgICAgQVNTRVJUKHJlbmRlclN1cmZhY2UtPmxheWVyTGlzdCgpLnNpemUo
KSk7CisgICAgICAgIEFTU0VSVChyZW5kZXJTdXJmYWNlLT5kcmF3T3BhY2l0eSgpKTsKIAogICAg
ICAgICByZW5kZXJTdXJmYWNlTGF5ZXItPnNldExheWVyVHJlZUhvc3QodGhpcyk7CiAgICAgICAg
IHBhaW50TWFza0FuZFJlcGxpY2FGb3JSZW5kZXJTdXJmYWNlKHJlbmRlclN1cmZhY2VMYXllcik7
CkBAIC0zNzAsOSArMzY0LDggQEAgdm9pZCBDQ0xheWVyVHJlZUhvc3Q6OnVwZGF0ZUNvbXBvc2l0
b3JSZXNvdXJjZXMoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQsIENDVGUKICAgICAgICAgTGF5
ZXJDaHJvbWl1bSogcmVuZGVyU3VyZmFjZUxheWVyID0gbV91cGRhdGVMaXN0W3N1cmZhY2VJbmRl
eF0uZ2V0KCk7CiAgICAgICAgIFJlbmRlclN1cmZhY2VDaHJvbWl1bSogcmVuZGVyU3VyZmFjZSA9
IHJlbmRlclN1cmZhY2VMYXllci0+cmVuZGVyU3VyZmFjZSgpOwogICAgICAgICBBU1NFUlQocmVu
ZGVyU3VyZmFjZSk7Ci0KLSAgICAgICAgaWYgKCFyZW5kZXJTdXJmYWNlLT5sYXllckxpc3QoKS5z
aXplKCkgfHwgIXJlbmRlclN1cmZhY2UtPmRyYXdPcGFjaXR5KCkpCi0gICAgICAgICAgICBjb250
aW51ZTsKKyAgICAgICAgQVNTRVJUKHJlbmRlclN1cmZhY2UtPmxheWVyTGlzdCgpLnNpemUoKSk7
CisgICAgICAgIEFTU0VSVChyZW5kZXJTdXJmYWNlLT5kcmF3T3BhY2l0eSgpKTsKIAogICAgICAg
ICBpZiAocmVuZGVyU3VyZmFjZUxheWVyLT5tYXNrTGF5ZXIoKSkKICAgICAgICAgICAgIHVwZGF0
ZUNvbXBvc2l0b3JSZXNvdXJjZXMocmVuZGVyU3VyZmFjZUxheWVyLT5tYXNrTGF5ZXIoKSwgY29u
dGV4dCwgdXBkYXRlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RDb21tb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0Q29tbW9uLmNw
cAppbmRleCAwNzAwOGUwMjkwYjI0NjY4NjJiMTU0NzZlZmIyODQxMTI5Y2QzNDljLi45NDI3NDlk
MWE2NmYwZWNhYzk2NGIwMDk0NDhiYmUwMzI5OTZhNWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RDb21tb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
TGF5ZXJUcmVlSG9zdENvbW1vbi5jcHAKQEAgLTIzMiw5ICsyMzIsMjAgQEAgc3RhdGljIHZvaWQg
Y2FsY3VsYXRlRHJhd1RyYW5zZm9ybXNBbmRWaXNpYmlsaXR5SW50ZXJuYWwoTGF5ZXJUeXBlKiBs
YXllciwgTGF5ZXIKICAgICBib29sIHVzZVN1cmZhY2VGb3JSZWZsZWN0aW9uID0gbGF5ZXItPnJl
cGxpY2FMYXllcigpOwogICAgIGJvb2wgdXNlU3VyZmFjZUZvckZsYXREZXNjZW5kYW50cyA9IGxh
eWVyLT5wYXJlbnQoKSAmJiBsYXllci0+cGFyZW50KCktPnByZXNlcnZlczNEKCkgJiYgIWxheWVy
LT5wcmVzZXJ2ZXMzRCgpICYmIGxheWVyLT5kZXNjZW5kYW50RHJhd3NDb250ZW50KCk7CiAgICAg
aWYgKHVzZVN1cmZhY2VGb3JNYXNraW5nIHx8IHVzZVN1cmZhY2VGb3JSZWZsZWN0aW9uIHx8IHVz
ZVN1cmZhY2VGb3JGbGF0RGVzY2VuZGFudHMgfHwgKCh1c2VTdXJmYWNlRm9yQ2xpcHBpbmcgfHwg
dXNlU3VyZmFjZUZvck9wYWNpdHkpICYmIGxheWVyLT5kZXNjZW5kYW50RHJhd3NDb250ZW50KCkp
KSB7CisgICAgICAgIC8vIExheWVyJ3Mgb3BhY2l0eSB3aWxsIGJlIGFwcGxpZWQgd2hlbiBkcmF3
aW5nIHRoZSByZW5kZXIgc3VyZmFjZS4KKyAgICAgICAgZmxvYXQgZHJhd09wYWNpdHkgPSBsYXll
ci0+b3BhY2l0eSgpOworICAgICAgICBpZiAobGF5ZXItPnBhcmVudCgpICYmIGxheWVyLT5wYXJl
bnQoKS0+cHJlc2VydmVzM0QoKSkKKyAgICAgICAgICAgIGRyYXdPcGFjaXR5ICo9IGxheWVyLT5w
YXJlbnQoKS0+ZHJhd09wYWNpdHkoKTsKKworICAgICAgICAvLyBJZiB0aGlzIHJlbmRlciBzdXJm
YWNlIGlzbid0IGRyYXduLCB3ZSBjYW4gYWxzbyBza2lwIGl0cyBjaGlsZHJlbi4KKyAgICAgICAg
aWYgKCFkcmF3T3BhY2l0eSkKKyAgICAgICAgICAgIHJldHVybjsKKwogICAgICAgICBpZiAoIWxh
eWVyLT5yZW5kZXJTdXJmYWNlKCkpCiAgICAgICAgICAgICBsYXllci0+Y3JlYXRlUmVuZGVyU3Vy
ZmFjZSgpOworCiAgICAgICAgIFJlbmRlclN1cmZhY2VUeXBlKiByZW5kZXJTdXJmYWNlID0gbGF5
ZXItPnJlbmRlclN1cmZhY2UoKTsKKyAgICAgICAgcmVuZGVyU3VyZmFjZS0+Y2xlYXJMYXllckxp
c3QoKTsKIAogICAgICAgICAvLyBUaGUgb3JpZ2luIG9mIHRoZSBuZXcgc3VyZmFjZSBpcyB0aGUg
dXBwZXIgbGVmdCBjb3JuZXIgb2YgdGhlIGxheWVyLgogICAgICAgICBUcmFuc2Zvcm1hdGlvbk1h
dHJpeCBkcmF3VHJhbnNmb3JtOwpAQCAtMjQzLDEwICsyNTQsNiBAQCBzdGF0aWMgdm9pZCBjYWxj
dWxhdGVEcmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxpdHlJbnRlcm5hbChMYXllclR5cGUqIGxheWVy
LCBMYXllcgogCiAgICAgICAgIHRyYW5zZm9ybWVkTGF5ZXJSZWN0ID0gSW50UmVjdCgwLCAwLCBi
b3VuZHMud2lkdGgoKSwgYm91bmRzLmhlaWdodCgpKTsKIAotICAgICAgICAvLyBMYXllcidzIG9w
YWNpdHkgd2lsbCBiZSBhcHBsaWVkIHdoZW4gZHJhd2luZyB0aGUgcmVuZGVyIHN1cmZhY2UuCi0g
ICAgICAgIGZsb2F0IGRyYXdPcGFjaXR5ID0gbGF5ZXItPm9wYWNpdHkoKTsKLSAgICAgICAgaWYg
KGxheWVyLT5wYXJlbnQoKSAmJiBsYXllci0+cGFyZW50KCktPnByZXNlcnZlczNEKCkpCi0gICAg
ICAgICAgICBkcmF3T3BhY2l0eSAqPSBsYXllci0+cGFyZW50KCktPmRyYXdPcGFjaXR5KCk7CiAg
ICAgICAgIHJlbmRlclN1cmZhY2UtPnNldERyYXdPcGFjaXR5KGRyYXdPcGFjaXR5KTsKICAgICAg
ICAgbGF5ZXItPnNldERyYXdPcGFjaXR5KDEpOwogCkBAIC0yNjIsOCArMjY5LDYgQEAgc3RhdGlj
IHZvaWQgY2FsY3VsYXRlRHJhd1RyYW5zZm9ybXNBbmRWaXNpYmlsaXR5SW50ZXJuYWwoTGF5ZXJU
eXBlKiBsYXllciwgTGF5ZXIKICAgICAgICAgLy8gc3VyZmFjZSBhbmQgaXMgdGhlcmVmb3JlIGV4
cHJlc3NlZCBpbiB0aGUgcGFyZW50J3MgY29vcmRpbmF0ZSBzeXN0ZW0uCiAgICAgICAgIHJlbmRl
clN1cmZhY2UtPnNldFNjaXNzb3JSZWN0KGxheWVyLT5wYXJlbnQoKSA/IGxheWVyLT5wYXJlbnQo
KS0+c2Npc3NvclJlY3QoKSA6IGxheWVyLT5zY2lzc29yUmVjdCgpKTsKIAotICAgICAgICByZW5k
ZXJTdXJmYWNlLT5jbGVhckxheWVyTGlzdCgpOwotCiAgICAgICAgIGlmIChsYXllci0+bWFza0xh
eWVyKCkpIHsKICAgICAgICAgICAgIHJlbmRlclN1cmZhY2UtPnNldE1hc2tMYXllcihsYXllci0+
bWFza0xheWVyKCkpOwogICAgICAgICAgICAgbGF5ZXItPm1hc2tMYXllcigpLT5zZXRUYXJnZXRS
ZW5kZXJTdXJmYWNlKHJlbmRlclN1cmZhY2UpOwpAQCAtMzcxLDYgKzM3NiwyMCBAQCBzdGF0aWMg
dm9pZCBjYWxjdWxhdGVEcmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxpdHlJbnRlcm5hbChMYXllclR5
cGUqIGxheWVyLCBMYXllcgogICAgICAgICB9CiAgICAgfQogCisgICAgaWYgKGxheWVyLT5yZW5k
ZXJTdXJmYWNlKCkgJiYgIWxheWVyLT5yZW5kZXJTdXJmYWNlKCktPmxheWVyTGlzdCgpLnNpemUo
KSkgeworICAgICAgICAvLyBJZiBhIHJlbmRlciBzdXJmYWNlIGhhcyBubyBsYXllciBsaXN0LCB0
aGVuIGl0IGFuZCBub25lIG9mIGl0cworICAgICAgICAvLyBjaGlsZHJlbiBuZWVkZWQgdG8gZ2V0
IGRyYXduLiBUaGVyZWZvcmUsIGl0IHNob3VsZCBiZSB0aGUgbGFzdCBsYXllcgorICAgICAgICAv
LyBpbiB0aGUgcmVuZGVyIHN1cmZhY2UgbGlzdCBhbmQgd2UgY2FuIHRyaXZpYWxseSByZW1vdmUg
aXQuCisgICAgICAgIEFTU0VSVChyZW5kZXJTdXJmYWNlTGF5ZXJMaXN0Lmxhc3QoKSA9PSBsYXll
cik7CisgICAgICAgIHJlbmRlclN1cmZhY2VMYXllckxpc3QucmVtb3ZlTGFzdCgpOworICAgICAg
ICBsYXllci0+Y2xlYXJSZW5kZXJTdXJmYWNlKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICAvLyBJZiBuZWl0aGVyIHRoaXMgbGF5ZXIgbm9yIGFueSBvZiBpdHMgY2hpbGRyZW4gd2Vy
ZSBhZGRlZCwgZWFybHkgb3V0LgorICAgIGlmIChzb3J0aW5nU3RhcnRJbmRleCA9PSBkZXNjZW5k
YW50cy5zaXplKCkpCisgICAgICAgIHJldHVybjsKKwogICAgIGlmIChsYXllci0+bWFza3NUb0Jv
dW5kcygpIHx8IHVzZVN1cmZhY2VGb3JNYXNraW5nKSB7CiAgICAgICAgIEludFJlY3QgZHJhd2Fi
bGVDb250ZW50UmVjdCA9IGxheWVyLT5kcmF3YWJsZUNvbnRlbnRSZWN0KCk7CiAgICAgICAgIGRy
YXdhYmxlQ29udGVudFJlY3QuaW50ZXJzZWN0KHRyYW5zZm9ybWVkTGF5ZXJSZWN0KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115521</attachid>
            <date>2011-11-16 21:50:25 -0800</date>
            <delta_ts>2011-11-17 10:15:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71038-20111116215024.patch</filename>
            <type>text/plain</type>
            <size>9958</size>
            <attacher name="Adrienne Walker">enne</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAwNTYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGQ4NDhlODI0YjNjNTA3
ZWU0YjFjMWNhMDM3N2VmNzExMmI0NDA0Yi4uN2M0YTllNzcxZTg5ZTM0Mjk4NzM1NTBlZGE5MWYy
N2JlYTFkZTIwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDExLTExLTE3ICBBZHJp
ZW5uZSBXYWxrZXIgIDxlbm5lQGdvb2dsZS5jb20+CisKKyAgICAgICAgW2Nocm9taXVtXSBJbXBs
aWNpdGx5IHNraXAgcmVuZGVyIHN1cmZhY2VzIHRoYXQgd29uJ3QgYmUgZHJhd24KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMDM4CisKKyAgICAgICAg
UmF0aGVyIHRoYW4gaGF2aW5nIHJlZHVuZGFudCBjaGVja3MgaW4gdGhyZWUgcGxhY2VzIGZvciBo
b3cgdG8gd2FsaworICAgICAgICB0aHJvdWdoIGEgcmVuZGVyIHN1cmZhY2UgbGlzdCwgaW5zdGVh
ZCBkb24ndCBhZGQgcmVuZGVyIHN1cmZhY2VzIHRoYXQKKyAgICAgICAgZG9uJ3QgbmVlZCB0byBn
ZXQgcmVuZGVyZWQgdG8gdGhlIHJlbmRlciBzdXJmYWNlIGxpc3QuCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyBsYXlv
dXQgdGVzdHMgYW5kIHVuaXQgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5
ZXJSZW5kZXJlckNocm9taXVtOjpkcmF3TGF5ZXJzT250b1JlbmRlclN1cmZhY2VzKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0OjpwYWludExheWVyQ29udGVudHMpOgor
ICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0Ojp1cGRhdGVDb21wb3NpdG9yUmVzb3Vy
Y2VzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJl
ZUhvc3RDb21tb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y2FsY3VsYXRlRHJhd1RyYW5zZm9y
bXNBbmRWaXNpYmlsaXR5SW50ZXJuYWwpOgorCiAyMDExLTExLTE2ICBEZWFuIEphY2tzb24gIDxk
aW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBEcm9wU2hhZG93RmlsdGVyT3BlcmF0aW9uIHZpb2xh
dGVzIHBsYXRmb3JtIGlzb2xhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBlMjA3
NDE3MWEyNzU1OTg1ZTYyYzFiY2U0ZDNkMWQ4NDA3ZDBjMTYzLi5jNTdkMDY5MzNiN2YxNjY5OGEx
NjgwMGRmNmM5NTBkYWNkNmJhMmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE1IEBACisyMDExLTExLTE3ICBBZHJpZW5uZSBXYWxrZXIgIDxlbm5lQGdvb2dsZS5jb20+
CisKKyAgICAgICAgW2Nocm9taXVtXSBJbXBsaWNpdGx5IHNraXAgcmVuZGVyIHN1cmZhY2VzIHRo
YXQgd29uJ3QgYmUgZHJhd24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTcxMDM4CisKKyAgICAgICAgVXBkYXRlIGEgdGVzdCB0aGF0IGRlcGVuZHMgb24g
YSBsYXllciBub3QgZ2V0dGluZyByZW1vdmVkLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogdGVzdHMvQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpURVNUKToKKwogMjAxMS0xMS0xMSAgQWRyaWVubmUgV2Fs
a2VyICA8ZW5uZUBnb29nbGUuY29tPgogCiAgICAgICAgIFtjaHJvbWl1bV0gRXhwb3NlIG1vY2sg
c2Nyb2xsYmFycyB0byB3aW5kb3cuaW50ZXJuYWxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNo
cm9taXVtLmNwcAppbmRleCBmNmM2MmVlOTE2OWVhYWRlMzFjZWE1NjE5YWNhOGMwYTJjMGI4Yjcz
Li4wYmQ2ZGJjMzg5NmFlNGEwNzcxOWE0ZWE0YTNjY2U3MzU5MjczZTA0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hy
b21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAKQEAgLTMxOCwxOSArMzE4LDEwIEBAIHZvaWQgTGF5
ZXJSZW5kZXJlckNocm9taXVtOjpkcmF3TGF5ZXJzT250b1JlbmRlclN1cmZhY2VzKENDTGF5ZXJJ
bXBsKiByb290RHJhd0xhCiAgICAgICAgIENDTGF5ZXJJbXBsKiByZW5kZXJTdXJmYWNlTGF5ZXIg
PSByZW5kZXJTdXJmYWNlTGF5ZXJMaXN0W3N1cmZhY2VJbmRleF0uZ2V0KCk7CiAgICAgICAgIEND
UmVuZGVyU3VyZmFjZSogcmVuZGVyU3VyZmFjZSA9IHJlbmRlclN1cmZhY2VMYXllci0+cmVuZGVy
U3VyZmFjZSgpOwogICAgICAgICBBU1NFUlQocmVuZGVyU3VyZmFjZSk7Ci0KLSAgICAgICAgcmVu
ZGVyU3VyZmFjZS0+c2V0U2tpcHNEcmF3KHRydWUpOwotCi0gICAgICAgIGlmICghcmVuZGVyU3Vy
ZmFjZS0+bGF5ZXJMaXN0KCkuc2l6ZSgpKQotICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAg
ICAgLy8gU2tpcCBjb21wbGV0ZWx5IHRyYW5zcGFyZW50IHJlbmRlciBzdXJmYWNlcy4KLSAgICAg
ICAgaWYgKCFyZW5kZXJTdXJmYWNlLT5kcmF3T3BhY2l0eSgpKQotICAgICAgICAgICAgY29udGlu
dWU7CisgICAgICAgIEFTU0VSVChyZW5kZXJTdXJmYWNlLT5sYXllckxpc3QoKS5zaXplKCkpOwor
ICAgICAgICBBU1NFUlQocmVuZGVyU3VyZmFjZS0+ZHJhd09wYWNpdHkoKSk7CiAKICAgICAgICAg
aWYgKHVzZVJlbmRlclN1cmZhY2UocmVuZGVyU3VyZmFjZSkpIHsKLSAgICAgICAgICAgIHJlbmRl
clN1cmZhY2UtPnNldFNraXBzRHJhdyhmYWxzZSk7Ci0KICAgICAgICAgICAgIGlmIChyZW5kZXJT
dXJmYWNlTGF5ZXIgIT0gcm9vdERyYXdMYXllcikgewogICAgICAgICAgICAgICAgIEdMQyhtX2Nv
bnRleHQuZ2V0KCksIG1fY29udGV4dC0+ZGlzYWJsZShHcmFwaGljc0NvbnRleHQzRDo6U0NJU1NP
Ul9URVNUKSk7CiAgICAgICAgICAgICAgICAgR0xDKG1fY29udGV4dC5nZXQoKSwgbV9jb250ZXh0
LT5jbGVhckNvbG9yKDAsIDAsIDAsIDApKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3Bw
CmluZGV4IDYzNzIyYjlkZTMzMDRkNGU0M2U4YzBmMDJmZTJmNTEzODQ4ZjJjZWIuLjQ5OGU5MTdk
ZDBiM2M2Nzc0YjEyMzBlMTMxNGQ4ZjU1MWI1ZTE0NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRy
ZWVIb3N0LmNwcApAQCAtMzcxLDE0ICszNzEsOCBAQCB2b2lkIENDTGF5ZXJUcmVlSG9zdDo6cGFp
bnRMYXllckNvbnRlbnRzKGNvbnN0IExheWVyTGlzdCYgcmVuZGVyU3VyZmFjZUxheWVyTGlzdAog
ICAgICAgICBMYXllckNocm9taXVtKiByZW5kZXJTdXJmYWNlTGF5ZXIgPSByZW5kZXJTdXJmYWNl
TGF5ZXJMaXN0W3N1cmZhY2VJbmRleF0uZ2V0KCk7CiAgICAgICAgIFJlbmRlclN1cmZhY2VDaHJv
bWl1bSogcmVuZGVyU3VyZmFjZSA9IHJlbmRlclN1cmZhY2VMYXllci0+cmVuZGVyU3VyZmFjZSgp
OwogICAgICAgICBBU1NFUlQocmVuZGVyU3VyZmFjZSk7Ci0KLSAgICAgICAgLy8gUmVuZGVyIHN1
cmZhY2VzIHdob3NlIGRyYXdhYmxlIGFyZWEgaGFzIHplcm8gd2lkdGggb3IgaGVpZ2h0Ci0gICAg
ICAgIC8vIHdpbGwgaGF2ZSBubyBsYXllcnMgYXNzb2NpYXRlZCB3aXRoIHRoZW0gYW5kIHNob3Vs
ZCBiZSBza2lwcGVkLgotICAgICAgICBpZiAoIXJlbmRlclN1cmZhY2UtPmxheWVyTGlzdCgpLnNp
emUoKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgIGlmICghcmVuZGVyU3VyZmFj
ZS0+ZHJhd09wYWNpdHkoKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBBU1NFUlQo
cmVuZGVyU3VyZmFjZS0+bGF5ZXJMaXN0KCkuc2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHJlbmRl
clN1cmZhY2UtPmRyYXdPcGFjaXR5KCkpOwogCiAgICAgICAgIHJlbmRlclN1cmZhY2VMYXllci0+
c2V0TGF5ZXJUcmVlSG9zdCh0aGlzKTsKICAgICAgICAgcGFpbnRNYXNrQW5kUmVwbGljYUZvclJl
bmRlclN1cmZhY2UocmVuZGVyU3VyZmFjZUxheWVyKTsKQEAgLTQwOSw5ICs0MDMsOCBAQCB2b2lk
IENDTGF5ZXJUcmVlSG9zdDo6dXBkYXRlQ29tcG9zaXRvclJlc291cmNlcyhHcmFwaGljc0NvbnRl
eHQzRCogY29udGV4dCwgQ0NUZQogICAgICAgICBMYXllckNocm9taXVtKiByZW5kZXJTdXJmYWNl
TGF5ZXIgPSBtX3VwZGF0ZUxpc3Rbc3VyZmFjZUluZGV4XS5nZXQoKTsKICAgICAgICAgUmVuZGVy
U3VyZmFjZUNocm9taXVtKiByZW5kZXJTdXJmYWNlID0gcmVuZGVyU3VyZmFjZUxheWVyLT5yZW5k
ZXJTdXJmYWNlKCk7CiAgICAgICAgIEFTU0VSVChyZW5kZXJTdXJmYWNlKTsKLQotICAgICAgICBp
ZiAoIXJlbmRlclN1cmZhY2UtPmxheWVyTGlzdCgpLnNpemUoKSB8fCAhcmVuZGVyU3VyZmFjZS0+
ZHJhd09wYWNpdHkoKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBBU1NFUlQocmVu
ZGVyU3VyZmFjZS0+bGF5ZXJMaXN0KCkuc2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHJlbmRlclN1
cmZhY2UtPmRyYXdPcGFjaXR5KCkpOwogCiAgICAgICAgIGlmIChyZW5kZXJTdXJmYWNlTGF5ZXIt
Pm1hc2tMYXllcigpKQogICAgICAgICAgICAgdXBkYXRlQ29tcG9zaXRvclJlc291cmNlcyhyZW5k
ZXJTdXJmYWNlTGF5ZXItPm1hc2tMYXllcigpLCBjb250ZXh0LCB1cGRhdGVyKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJU
cmVlSG9zdENvbW1vbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RDb21tb24uY3BwCmluZGV4IDNlNzUwZjhjMWMzYzYyOGEy
YmViZmMxMDE0M2FhMzFhN2I4NjExNjkuLmRmZGJjMzJkZWY5MjM3YjZlOTNlMWRlNDQ5NTcxYmMz
NzQ3NDljMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdENvbW1vbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0Q29tbW9uLmNwcApA
QCAtMjM2LDkgKzIzNiwyMCBAQCBzdGF0aWMgdm9pZCBjYWxjdWxhdGVEcmF3VHJhbnNmb3Jtc0Fu
ZFZpc2liaWxpdHlJbnRlcm5hbChMYXllclR5cGUqIGxheWVyLCBMYXllcgogICAgIGJvb2wgdXNl
U3VyZmFjZUZvclJlZmxlY3Rpb24gPSBsYXllci0+cmVwbGljYUxheWVyKCk7CiAgICAgYm9vbCB1
c2VTdXJmYWNlRm9yRmxhdERlc2NlbmRhbnRzID0gbGF5ZXItPnBhcmVudCgpICYmIGxheWVyLT5w
YXJlbnQoKS0+cHJlc2VydmVzM0QoKSAmJiAhbGF5ZXItPnByZXNlcnZlczNEKCkgJiYgbGF5ZXIt
PmRlc2NlbmRhbnREcmF3c0NvbnRlbnQoKTsKICAgICBpZiAodXNlU3VyZmFjZUZvck1hc2tpbmcg
fHwgdXNlU3VyZmFjZUZvclJlZmxlY3Rpb24gfHwgdXNlU3VyZmFjZUZvckZsYXREZXNjZW5kYW50
cyB8fCAoKHVzZVN1cmZhY2VGb3JDbGlwcGluZyB8fCB1c2VTdXJmYWNlRm9yT3BhY2l0eSkgJiYg
bGF5ZXItPmRlc2NlbmRhbnREcmF3c0NvbnRlbnQoKSkpIHsKKyAgICAgICAgLy8gTGF5ZXIncyBv
cGFjaXR5IHdpbGwgYmUgYXBwbGllZCB3aGVuIGRyYXdpbmcgdGhlIHJlbmRlciBzdXJmYWNlLgor
ICAgICAgICBmbG9hdCBkcmF3T3BhY2l0eSA9IGxheWVyLT5vcGFjaXR5KCk7CisgICAgICAgIGlm
IChsYXllci0+cGFyZW50KCkgJiYgbGF5ZXItPnBhcmVudCgpLT5wcmVzZXJ2ZXMzRCgpKQorICAg
ICAgICAgICAgZHJhd09wYWNpdHkgKj0gbGF5ZXItPnBhcmVudCgpLT5kcmF3T3BhY2l0eSgpOwor
CisgICAgICAgIC8vIElmIHRoaXMgcmVuZGVyIHN1cmZhY2UgaXNuJ3QgZHJhd24sIHdlIGNhbiBh
bHNvIHNraXAgaXRzIGNoaWxkcmVuLgorICAgICAgICBpZiAoIWRyYXdPcGFjaXR5KQorICAgICAg
ICAgICAgcmV0dXJuOworCiAgICAgICAgIGlmICghbGF5ZXItPnJlbmRlclN1cmZhY2UoKSkKICAg
ICAgICAgICAgIGxheWVyLT5jcmVhdGVSZW5kZXJTdXJmYWNlKCk7CisKICAgICAgICAgUmVuZGVy
U3VyZmFjZVR5cGUqIHJlbmRlclN1cmZhY2UgPSBsYXllci0+cmVuZGVyU3VyZmFjZSgpOworICAg
ICAgICByZW5kZXJTdXJmYWNlLT5jbGVhckxheWVyTGlzdCgpOwogCiAgICAgICAgIC8vIFRoZSBv
cmlnaW4gb2YgdGhlIG5ldyBzdXJmYWNlIGlzIHRoZSB1cHBlciBsZWZ0IGNvcm5lciBvZiB0aGUg
bGF5ZXIuCiAgICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGRyYXdUcmFuc2Zvcm07CkBAIC0y
NDcsMTAgKzI1OCw2IEBAIHN0YXRpYyB2b2lkIGNhbGN1bGF0ZURyYXdUcmFuc2Zvcm1zQW5kVmlz
aWJpbGl0eUludGVybmFsKExheWVyVHlwZSogbGF5ZXIsIExheWVyCiAKICAgICAgICAgdHJhbnNm
b3JtZWRMYXllclJlY3QgPSBJbnRSZWN0KDAsIDAsIGJvdW5kcy53aWR0aCgpLCBib3VuZHMuaGVp
Z2h0KCkpOwogCi0gICAgICAgIC8vIExheWVyJ3Mgb3BhY2l0eSB3aWxsIGJlIGFwcGxpZWQgd2hl
biBkcmF3aW5nIHRoZSByZW5kZXIgc3VyZmFjZS4KLSAgICAgICAgZmxvYXQgZHJhd09wYWNpdHkg
PSBsYXllci0+b3BhY2l0eSgpOwotICAgICAgICBpZiAobGF5ZXItPnBhcmVudCgpICYmIGxheWVy
LT5wYXJlbnQoKS0+cHJlc2VydmVzM0QoKSkKLSAgICAgICAgICAgIGRyYXdPcGFjaXR5ICo9IGxh
eWVyLT5wYXJlbnQoKS0+ZHJhd09wYWNpdHkoKTsKICAgICAgICAgcmVuZGVyU3VyZmFjZS0+c2V0
RHJhd09wYWNpdHkoZHJhd09wYWNpdHkpOwogICAgICAgICBsYXllci0+c2V0RHJhd09wYWNpdHko
MSk7CiAKQEAgLTI2Niw4ICsyNzMsNiBAQCBzdGF0aWMgdm9pZCBjYWxjdWxhdGVEcmF3VHJhbnNm
b3Jtc0FuZFZpc2liaWxpdHlJbnRlcm5hbChMYXllclR5cGUqIGxheWVyLCBMYXllcgogICAgICAg
ICAvLyBzdXJmYWNlIGFuZCBpcyB0aGVyZWZvcmUgZXhwcmVzc2VkIGluIHRoZSBwYXJlbnQncyBj
b29yZGluYXRlIHN5c3RlbS4KICAgICAgICAgcmVuZGVyU3VyZmFjZS0+c2V0Q2xpcFJlY3QobGF5
ZXItPnBhcmVudCgpID8gbGF5ZXItPnBhcmVudCgpLT5jbGlwUmVjdCgpIDogbGF5ZXItPmNsaXBS
ZWN0KCkpOwogCi0gICAgICAgIHJlbmRlclN1cmZhY2UtPmNsZWFyTGF5ZXJMaXN0KCk7Ci0KICAg
ICAgICAgaWYgKGxheWVyLT5tYXNrTGF5ZXIoKSkgewogICAgICAgICAgICAgcmVuZGVyU3VyZmFj
ZS0+c2V0TWFza0xheWVyKGxheWVyLT5tYXNrTGF5ZXIoKSk7CiAgICAgICAgICAgICBsYXllci0+
bWFza0xheWVyKCktPnNldFRhcmdldFJlbmRlclN1cmZhY2UocmVuZGVyU3VyZmFjZSk7CkBAIC0z
NzUsNiArMzgwLDIyIEBAIHN0YXRpYyB2b2lkIGNhbGN1bGF0ZURyYXdUcmFuc2Zvcm1zQW5kVmlz
aWJpbGl0eUludGVybmFsKExheWVyVHlwZSogbGF5ZXIsIExheWVyCiAgICAgICAgIH0KICAgICB9
CiAKKyAgICBpZiAobGF5ZXItPnJlbmRlclN1cmZhY2UoKSAmJiAhbGF5ZXItPnJlbmRlclN1cmZh
Y2UoKS0+bGF5ZXJMaXN0KCkuc2l6ZSgpKSB7CisgICAgICAgIC8vIElmIGEgcmVuZGVyIHN1cmZh
Y2UgaGFzIG5vIGxheWVyIGxpc3QsIHRoZW4gaXQgYW5kIG5vbmUgb2YgaXRzCisgICAgICAgIC8v
IGNoaWxkcmVuIG5lZWRlZCB0byBnZXQgZHJhd24uIFRoZXJlZm9yZSwgaXQgc2hvdWxkIGJlIHRo
ZSBsYXN0IGxheWVyCisgICAgICAgIC8vIGluIHRoZSByZW5kZXIgc3VyZmFjZSBsaXN0IGFuZCB3
ZSBjYW4gdHJpdmlhbGx5IHJlbW92ZSBpdC4KKyAgICAgICAgaWYgKGxheWVyICE9IHJvb3RMYXll
cikgeworICAgICAgICAgICAgQVNTRVJUKHJlbmRlclN1cmZhY2VMYXllckxpc3QubGFzdCgpID09
IGxheWVyKTsKKyAgICAgICAgICAgIHJlbmRlclN1cmZhY2VMYXllckxpc3QucmVtb3ZlTGFzdCgp
OworICAgICAgICAgICAgbGF5ZXItPmNsZWFyUmVuZGVyU3VyZmFjZSgpOworICAgICAgICB9Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBJZiBuZWl0aGVyIHRoaXMgbGF5ZXIgbm9y
IGFueSBvZiBpdHMgY2hpbGRyZW4gd2VyZSBhZGRlZCwgZWFybHkgb3V0LgorICAgIGlmIChzb3J0
aW5nU3RhcnRJbmRleCA9PSBkZXNjZW5kYW50cy5zaXplKCkpCisgICAgICAgIHJldHVybjsKKwog
ICAgIGlmIChsYXllci0+bWFza3NUb0JvdW5kcygpIHx8IHVzZVN1cmZhY2VGb3JNYXNraW5nKSB7
CiAgICAgICAgIEludFJlY3QgZHJhd2FibGVDb250ZW50UmVjdCA9IGxheWVyLT5kcmF3YWJsZUNv
bnRlbnRSZWN0KCk7CiAgICAgICAgIGRyYXdhYmxlQ29udGVudFJlY3QuaW50ZXJzZWN0KHRyYW5z
Zm9ybWVkTGF5ZXJSZWN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVz
dHMvQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QuY3BwCmluZGV4IGJkNWE3NDliNzcyZmQz
OTlmYWE4YzdkZjg3YzQ1NTg0NmI4MDA3YzEuLmM5YTJmYzY1MTMyNTY2YjQyNjNhMDA2ODhmNTdj
M2Y1MjdiMTYxYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NM
YXllclRyZWVIb3N0Q29tbW9uVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9DQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LmNwcApAQCAtMzEyLDYgKzMxMiw3IEBAIFRF
U1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5VHJhbnNmb3Jtc0ZvclNpbmdsZVJl
bmRlclN1cmZhY2UpCiAKICAgICBzZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5nKHBhcmVudC5n
ZXQoKSwgcGFyZW50TGF5ZXJUcmFuc2Zvcm0sIHBhcmVudFN1YmxheWVyTWF0cml4LCBGbG9hdFBv
aW50KDAuMjVmLCAwLjI1ZiksIEZsb2F0UG9pbnQoMi41ZiwgMy4wZiksIEludFNpemUoMTAsIDEy
KSwgZmFsc2UpOwogICAgIHNldExheWVyUHJvcGVydGllc0ZvclRlc3RpbmcoY2hpbGQuZ2V0KCks
IGlkZW50aXR5TWF0cml4LCBpZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgwLjBmLCAwLjBmKSwg
RmxvYXRQb2ludCgwLjBmLCAwLjBmKSwgSW50U2l6ZSgxNiwgMTgpLCBmYWxzZSk7CisgICAgc2V0
TGF5ZXJQcm9wZXJ0aWVzRm9yVGVzdGluZyhncmFuZENoaWxkLmdldCgpLCBpZGVudGl0eU1hdHJp
eCwgaWRlbnRpdHlNYXRyaXgsIEZsb2F0UG9pbnQoMC4wZiwgMC4wZiksIEZsb2F0UG9pbnQoLTAu
NWYsIC0wLjVmKSwgSW50U2l6ZSgxLCAxKSwgZmFsc2UpOwogICAgIGV4ZWN1dGVDYWxjdWxhdGVE
cmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxpdHkocGFyZW50LmdldCgpKTsKIAogICAgIC8vIFJlbmRl
ciBzdXJmYWNlIHNob3VsZCBoYXZlIGJlZW4gY3JlYXRlZCBub3cuCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115614</attachid>
            <date>2011-11-17 10:15:26 -0800</date>
            <delta_ts>2011-11-17 10:36:18 -0800</delta_ts>
            <desc>Earlier opacity checks</desc>
            <filename>bug-71038-20111117101525.patch</filename>
            <type>text/plain</type>
            <size>11204</size>
            <attacher name="Adrienne Walker">enne</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAwNTYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGQ4NDhlODI0YjNjNTA3
ZWU0YjFjMWNhMDM3N2VmNzExMmI0NDA0Yi4uN2M0YTllNzcxZTg5ZTM0Mjk4NzM1NTBlZGE5MWYy
N2JlYTFkZTIwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDExLTExLTE3ICBBZHJp
ZW5uZSBXYWxrZXIgIDxlbm5lQGdvb2dsZS5jb20+CisKKyAgICAgICAgW2Nocm9taXVtXSBJbXBs
aWNpdGx5IHNraXAgcmVuZGVyIHN1cmZhY2VzIHRoYXQgd29uJ3QgYmUgZHJhd24KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMDM4CisKKyAgICAgICAg
UmF0aGVyIHRoYW4gaGF2aW5nIHJlZHVuZGFudCBjaGVja3MgaW4gdGhyZWUgcGxhY2VzIGZvciBo
b3cgdG8gd2FsaworICAgICAgICB0aHJvdWdoIGEgcmVuZGVyIHN1cmZhY2UgbGlzdCwgaW5zdGVh
ZCBkb24ndCBhZGQgcmVuZGVyIHN1cmZhY2VzIHRoYXQKKyAgICAgICAgZG9uJ3QgbmVlZCB0byBn
ZXQgcmVuZGVyZWQgdG8gdGhlIHJlbmRlciBzdXJmYWNlIGxpc3QuCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyBsYXlv
dXQgdGVzdHMgYW5kIHVuaXQgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5
ZXJSZW5kZXJlckNocm9taXVtOjpkcmF3TGF5ZXJzT250b1JlbmRlclN1cmZhY2VzKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0OjpwYWludExheWVyQ29udGVudHMpOgor
ICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0Ojp1cGRhdGVDb21wb3NpdG9yUmVzb3Vy
Y2VzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJl
ZUhvc3RDb21tb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y2FsY3VsYXRlRHJhd1RyYW5zZm9y
bXNBbmRWaXNpYmlsaXR5SW50ZXJuYWwpOgorCiAyMDExLTExLTE2ICBEZWFuIEphY2tzb24gIDxk
aW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBEcm9wU2hhZG93RmlsdGVyT3BlcmF0aW9uIHZpb2xh
dGVzIHBsYXRmb3JtIGlzb2xhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBlMjA3
NDE3MWEyNzU1OTg1ZTYyYzFiY2U0ZDNkMWQ4NDA3ZDBjMTYzLi5jNTdkMDY5MzNiN2YxNjY5OGEx
NjgwMGRmNmM5NTBkYWNkNmJhMmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE1IEBACisyMDExLTExLTE3ICBBZHJpZW5uZSBXYWxrZXIgIDxlbm5lQGdvb2dsZS5jb20+
CisKKyAgICAgICAgW2Nocm9taXVtXSBJbXBsaWNpdGx5IHNraXAgcmVuZGVyIHN1cmZhY2VzIHRo
YXQgd29uJ3QgYmUgZHJhd24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTcxMDM4CisKKyAgICAgICAgVXBkYXRlIGEgdGVzdCB0aGF0IGRlcGVuZHMgb24g
YSBsYXllciBub3QgZ2V0dGluZyByZW1vdmVkLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogdGVzdHMvQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpURVNUKToKKwogMjAxMS0xMS0xMSAgQWRyaWVubmUgV2Fs
a2VyICA8ZW5uZUBnb29nbGUuY29tPgogCiAgICAgICAgIFtjaHJvbWl1bV0gRXhwb3NlIG1vY2sg
c2Nyb2xsYmFycyB0byB3aW5kb3cuaW50ZXJuYWxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNo
cm9taXVtLmNwcAppbmRleCBmNmM2MmVlOTE2OWVhYWRlMzFjZWE1NjE5YWNhOGMwYTJjMGI4Yjcz
Li4wYmQ2ZGJjMzg5NmFlNGEwNzcxOWE0ZWE0YTNjY2U3MzU5MjczZTA0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hy
b21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAKQEAgLTMxOCwxOSArMzE4LDEwIEBAIHZvaWQgTGF5
ZXJSZW5kZXJlckNocm9taXVtOjpkcmF3TGF5ZXJzT250b1JlbmRlclN1cmZhY2VzKENDTGF5ZXJJ
bXBsKiByb290RHJhd0xhCiAgICAgICAgIENDTGF5ZXJJbXBsKiByZW5kZXJTdXJmYWNlTGF5ZXIg
PSByZW5kZXJTdXJmYWNlTGF5ZXJMaXN0W3N1cmZhY2VJbmRleF0uZ2V0KCk7CiAgICAgICAgIEND
UmVuZGVyU3VyZmFjZSogcmVuZGVyU3VyZmFjZSA9IHJlbmRlclN1cmZhY2VMYXllci0+cmVuZGVy
U3VyZmFjZSgpOwogICAgICAgICBBU1NFUlQocmVuZGVyU3VyZmFjZSk7Ci0KLSAgICAgICAgcmVu
ZGVyU3VyZmFjZS0+c2V0U2tpcHNEcmF3KHRydWUpOwotCi0gICAgICAgIGlmICghcmVuZGVyU3Vy
ZmFjZS0+bGF5ZXJMaXN0KCkuc2l6ZSgpKQotICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAg
ICAgLy8gU2tpcCBjb21wbGV0ZWx5IHRyYW5zcGFyZW50IHJlbmRlciBzdXJmYWNlcy4KLSAgICAg
ICAgaWYgKCFyZW5kZXJTdXJmYWNlLT5kcmF3T3BhY2l0eSgpKQotICAgICAgICAgICAgY29udGlu
dWU7CisgICAgICAgIEFTU0VSVChyZW5kZXJTdXJmYWNlLT5sYXllckxpc3QoKS5zaXplKCkpOwor
ICAgICAgICBBU1NFUlQocmVuZGVyU3VyZmFjZS0+ZHJhd09wYWNpdHkoKSk7CiAKICAgICAgICAg
aWYgKHVzZVJlbmRlclN1cmZhY2UocmVuZGVyU3VyZmFjZSkpIHsKLSAgICAgICAgICAgIHJlbmRl
clN1cmZhY2UtPnNldFNraXBzRHJhdyhmYWxzZSk7Ci0KICAgICAgICAgICAgIGlmIChyZW5kZXJT
dXJmYWNlTGF5ZXIgIT0gcm9vdERyYXdMYXllcikgewogICAgICAgICAgICAgICAgIEdMQyhtX2Nv
bnRleHQuZ2V0KCksIG1fY29udGV4dC0+ZGlzYWJsZShHcmFwaGljc0NvbnRleHQzRDo6U0NJU1NP
Ul9URVNUKSk7CiAgICAgICAgICAgICAgICAgR0xDKG1fY29udGV4dC5nZXQoKSwgbV9jb250ZXh0
LT5jbGVhckNvbG9yKDAsIDAsIDAsIDApKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3Bw
CmluZGV4IDYzNzIyYjlkZTMzMDRkNGU0M2U4YzBmMDJmZTJmNTEzODQ4ZjJjZWIuLjQ5OGU5MTdk
ZDBiM2M2Nzc0YjEyMzBlMTMxNGQ4ZjU1MWI1ZTE0NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRy
ZWVIb3N0LmNwcApAQCAtMzcxLDE0ICszNzEsOCBAQCB2b2lkIENDTGF5ZXJUcmVlSG9zdDo6cGFp
bnRMYXllckNvbnRlbnRzKGNvbnN0IExheWVyTGlzdCYgcmVuZGVyU3VyZmFjZUxheWVyTGlzdAog
ICAgICAgICBMYXllckNocm9taXVtKiByZW5kZXJTdXJmYWNlTGF5ZXIgPSByZW5kZXJTdXJmYWNl
TGF5ZXJMaXN0W3N1cmZhY2VJbmRleF0uZ2V0KCk7CiAgICAgICAgIFJlbmRlclN1cmZhY2VDaHJv
bWl1bSogcmVuZGVyU3VyZmFjZSA9IHJlbmRlclN1cmZhY2VMYXllci0+cmVuZGVyU3VyZmFjZSgp
OwogICAgICAgICBBU1NFUlQocmVuZGVyU3VyZmFjZSk7Ci0KLSAgICAgICAgLy8gUmVuZGVyIHN1
cmZhY2VzIHdob3NlIGRyYXdhYmxlIGFyZWEgaGFzIHplcm8gd2lkdGggb3IgaGVpZ2h0Ci0gICAg
ICAgIC8vIHdpbGwgaGF2ZSBubyBsYXllcnMgYXNzb2NpYXRlZCB3aXRoIHRoZW0gYW5kIHNob3Vs
ZCBiZSBza2lwcGVkLgotICAgICAgICBpZiAoIXJlbmRlclN1cmZhY2UtPmxheWVyTGlzdCgpLnNp
emUoKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgIGlmICghcmVuZGVyU3VyZmFj
ZS0+ZHJhd09wYWNpdHkoKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBBU1NFUlQo
cmVuZGVyU3VyZmFjZS0+bGF5ZXJMaXN0KCkuc2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHJlbmRl
clN1cmZhY2UtPmRyYXdPcGFjaXR5KCkpOwogCiAgICAgICAgIHJlbmRlclN1cmZhY2VMYXllci0+
c2V0TGF5ZXJUcmVlSG9zdCh0aGlzKTsKICAgICAgICAgcGFpbnRNYXNrQW5kUmVwbGljYUZvclJl
bmRlclN1cmZhY2UocmVuZGVyU3VyZmFjZUxheWVyKTsKQEAgLTQwOSw5ICs0MDMsOCBAQCB2b2lk
IENDTGF5ZXJUcmVlSG9zdDo6dXBkYXRlQ29tcG9zaXRvclJlc291cmNlcyhHcmFwaGljc0NvbnRl
eHQzRCogY29udGV4dCwgQ0NUZQogICAgICAgICBMYXllckNocm9taXVtKiByZW5kZXJTdXJmYWNl
TGF5ZXIgPSBtX3VwZGF0ZUxpc3Rbc3VyZmFjZUluZGV4XS5nZXQoKTsKICAgICAgICAgUmVuZGVy
U3VyZmFjZUNocm9taXVtKiByZW5kZXJTdXJmYWNlID0gcmVuZGVyU3VyZmFjZUxheWVyLT5yZW5k
ZXJTdXJmYWNlKCk7CiAgICAgICAgIEFTU0VSVChyZW5kZXJTdXJmYWNlKTsKLQotICAgICAgICBp
ZiAoIXJlbmRlclN1cmZhY2UtPmxheWVyTGlzdCgpLnNpemUoKSB8fCAhcmVuZGVyU3VyZmFjZS0+
ZHJhd09wYWNpdHkoKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBBU1NFUlQocmVu
ZGVyU3VyZmFjZS0+bGF5ZXJMaXN0KCkuc2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHJlbmRlclN1
cmZhY2UtPmRyYXdPcGFjaXR5KCkpOwogCiAgICAgICAgIGlmIChyZW5kZXJTdXJmYWNlTGF5ZXIt
Pm1hc2tMYXllcigpKQogICAgICAgICAgICAgdXBkYXRlQ29tcG9zaXRvclJlc291cmNlcyhyZW5k
ZXJTdXJmYWNlTGF5ZXItPm1hc2tMYXllcigpLCBjb250ZXh0LCB1cGRhdGVyKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJU
cmVlSG9zdENvbW1vbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RDb21tb24uY3BwCmluZGV4IDNlNzUwZjhjMWMzYzYyOGEy
YmViZmMxMDE0M2FhMzFhN2I4NjExNjkuLmZlYTlhMTIyMTRjNDNlNDI3MDEwZGMxMmFlZGQzNGZk
ZDE2YWY3OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdENvbW1vbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0Q29tbW9uLmNwcApA
QCAtMTA5LDYgKzEwOSwxNiBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBMYXllclR5cGUsIHR5cGVuYW1l
IFJlbmRlclN1cmZhY2VUeXBlLCB0eXBlbmFtZSBMYXllclNvcnRlcj4KIHN0YXRpYyB2b2lkIGNh
bGN1bGF0ZURyYXdUcmFuc2Zvcm1zQW5kVmlzaWJpbGl0eUludGVybmFsKExheWVyVHlwZSogbGF5
ZXIsIExheWVyVHlwZSogcm9vdExheWVyLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgcGFy
ZW50TWF0cml4LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgZnVsbEhpZXJhcmNoeU1hdHJp
eCwgVmVjdG9yPFJlZlB0cjxMYXllclR5cGU+ID4mIHJlbmRlclN1cmZhY2VMYXllckxpc3QsIFZl
Y3RvcjxSZWZQdHI8TGF5ZXJUeXBlPiA+JiBsYXllckxpc3QsIExheWVyU29ydGVyKiBsYXllclNv
cnRlciwgaW50IG1heFRleHR1cmVTaXplKQogewogICAgIHR5cGVkZWYgVmVjdG9yPFJlZlB0cjxM
YXllclR5cGU+ID4gTGF5ZXJMaXN0OworCisgICAgZmxvYXQgZHJhd09wYWNpdHkgPSBsYXllci0+
b3BhY2l0eSgpOworICAgIGlmIChsYXllci0+cGFyZW50KCkgJiYgbGF5ZXItPnBhcmVudCgpLT5w
cmVzZXJ2ZXMzRCgpKQorICAgICAgICBkcmF3T3BhY2l0eSAqPSBsYXllci0+cGFyZW50KCktPmRy
YXdPcGFjaXR5KCk7CisgICAgLy8gVGhlIG9wYWNpdHkgb2YgYSBsYXllciBhbHdheXMgYXBwbGll
cyB0byBpdHMgY2hpbGRyZW4gKGVpdGhlciBpbXBsaWNpdGx5CisgICAgLy8gdmlhIGEgcmVuZGVy
IHN1cmZhY2Ugb3IgZXhwbGljaXRseSBpZiB0aGUgcGFyZW50IHByZXNlcnZlcyAzRCksIHNvIHRo
ZQorICAgIC8vIGVudGlyZSBzdWJ0cmVlIGNhbiBiZSBza2lwcGVkIGlmIHRoaXMgbGF5ZXIgaXMg
ZnVsbHkgdHJhbnNwYXJlbnQuCisgICAgaWYgKCFkcmF3T3BhY2l0eSkKKyAgICAgICAgcmV0dXJu
OworCiAgICAgLy8gVGhpcyBmdW5jdGlvbiBjb21wdXRlcyB0aGUgbmV3IG1hdHJpeCB0cmFuc2Zv
cm1hdGlvbnMgcmVjdXJzaXZlbHkgZm9yIHRoaXMKICAgICAvLyBsYXllciBhbmQgYWxsIGl0cyBk
ZXNjZW5kYW50cy4gSXQgYWxzbyBjb21wdXRlcyB0aGUgYXBwcm9wcmlhdGUgcmVuZGVyIHN1cmZh
Y2VzLgogICAgIC8vIFNvbWUgaW1wb3J0YW50IHBvaW50cyB0byByZW1lbWJlcjoKQEAgLTIzOCw3
ICsyNDgsOSBAQCBzdGF0aWMgdm9pZCBjYWxjdWxhdGVEcmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxp
dHlJbnRlcm5hbChMYXllclR5cGUqIGxheWVyLCBMYXllcgogICAgIGlmICh1c2VTdXJmYWNlRm9y
TWFza2luZyB8fCB1c2VTdXJmYWNlRm9yUmVmbGVjdGlvbiB8fCB1c2VTdXJmYWNlRm9yRmxhdERl
c2NlbmRhbnRzIHx8ICgodXNlU3VyZmFjZUZvckNsaXBwaW5nIHx8IHVzZVN1cmZhY2VGb3JPcGFj
aXR5KSAmJiBsYXllci0+ZGVzY2VuZGFudERyYXdzQ29udGVudCgpKSkgewogICAgICAgICBpZiAo
IWxheWVyLT5yZW5kZXJTdXJmYWNlKCkpCiAgICAgICAgICAgICBsYXllci0+Y3JlYXRlUmVuZGVy
U3VyZmFjZSgpOworCiAgICAgICAgIFJlbmRlclN1cmZhY2VUeXBlKiByZW5kZXJTdXJmYWNlID0g
bGF5ZXItPnJlbmRlclN1cmZhY2UoKTsKKyAgICAgICAgcmVuZGVyU3VyZmFjZS0+Y2xlYXJMYXll
ckxpc3QoKTsKIAogICAgICAgICAvLyBUaGUgb3JpZ2luIG9mIHRoZSBuZXcgc3VyZmFjZSBpcyB0
aGUgdXBwZXIgbGVmdCBjb3JuZXIgb2YgdGhlIGxheWVyLgogICAgICAgICBUcmFuc2Zvcm1hdGlv
bk1hdHJpeCBkcmF3VHJhbnNmb3JtOwpAQCAtMjQ3LDEwICsyNTksNiBAQCBzdGF0aWMgdm9pZCBj
YWxjdWxhdGVEcmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxpdHlJbnRlcm5hbChMYXllclR5cGUqIGxh
eWVyLCBMYXllcgogCiAgICAgICAgIHRyYW5zZm9ybWVkTGF5ZXJSZWN0ID0gSW50UmVjdCgwLCAw
LCBib3VuZHMud2lkdGgoKSwgYm91bmRzLmhlaWdodCgpKTsKIAotICAgICAgICAvLyBMYXllcidz
IG9wYWNpdHkgd2lsbCBiZSBhcHBsaWVkIHdoZW4gZHJhd2luZyB0aGUgcmVuZGVyIHN1cmZhY2Uu
Ci0gICAgICAgIGZsb2F0IGRyYXdPcGFjaXR5ID0gbGF5ZXItPm9wYWNpdHkoKTsKLSAgICAgICAg
aWYgKGxheWVyLT5wYXJlbnQoKSAmJiBsYXllci0+cGFyZW50KCktPnByZXNlcnZlczNEKCkpCi0g
ICAgICAgICAgICBkcmF3T3BhY2l0eSAqPSBsYXllci0+cGFyZW50KCktPmRyYXdPcGFjaXR5KCk7
CiAgICAgICAgIHJlbmRlclN1cmZhY2UtPnNldERyYXdPcGFjaXR5KGRyYXdPcGFjaXR5KTsKICAg
ICAgICAgbGF5ZXItPnNldERyYXdPcGFjaXR5KDEpOwogCkBAIC0yNjYsOCArMjc0LDYgQEAgc3Rh
dGljIHZvaWQgY2FsY3VsYXRlRHJhd1RyYW5zZm9ybXNBbmRWaXNpYmlsaXR5SW50ZXJuYWwoTGF5
ZXJUeXBlKiBsYXllciwgTGF5ZXIKICAgICAgICAgLy8gc3VyZmFjZSBhbmQgaXMgdGhlcmVmb3Jl
IGV4cHJlc3NlZCBpbiB0aGUgcGFyZW50J3MgY29vcmRpbmF0ZSBzeXN0ZW0uCiAgICAgICAgIHJl
bmRlclN1cmZhY2UtPnNldENsaXBSZWN0KGxheWVyLT5wYXJlbnQoKSA/IGxheWVyLT5wYXJlbnQo
KS0+Y2xpcFJlY3QoKSA6IGxheWVyLT5jbGlwUmVjdCgpKTsKIAotICAgICAgICByZW5kZXJTdXJm
YWNlLT5jbGVhckxheWVyTGlzdCgpOwotCiAgICAgICAgIGlmIChsYXllci0+bWFza0xheWVyKCkp
IHsKICAgICAgICAgICAgIHJlbmRlclN1cmZhY2UtPnNldE1hc2tMYXllcihsYXllci0+bWFza0xh
eWVyKCkpOwogICAgICAgICAgICAgbGF5ZXItPm1hc2tMYXllcigpLT5zZXRUYXJnZXRSZW5kZXJT
dXJmYWNlKHJlbmRlclN1cmZhY2UpOwpAQCAtMjgyLDEyICsyODgsOSBAQCBzdGF0aWMgdm9pZCBj
YWxjdWxhdGVEcmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxpdHlJbnRlcm5hbChMYXllclR5cGUqIGxh
eWVyLCBMYXllcgogICAgICAgICBsYXllci0+c2V0RHJhd1RyYW5zZm9ybShjb21iaW5lZFRyYW5z
Zm9ybSk7CiAgICAgICAgIHRyYW5zZm9ybWVkTGF5ZXJSZWN0ID0gZW5jbG9zaW5nSW50UmVjdChs
YXllci0+ZHJhd1RyYW5zZm9ybSgpLm1hcFJlY3QobGF5ZXJSZWN0KSk7CiAKLSAgICAgICAgbGF5
ZXItPnNldERyYXdPcGFjaXR5KGxheWVyLT5vcGFjaXR5KCkpOworICAgICAgICBsYXllci0+c2V0
RHJhd09wYWNpdHkoZHJhd09wYWNpdHkpOwogCiAgICAgICAgIGlmIChsYXllci0+cGFyZW50KCkp
IHsKLSAgICAgICAgICAgIGlmIChsYXllci0+cGFyZW50KCktPnByZXNlcnZlczNEKCkpCi0gICAg
ICAgICAgICAgICBsYXllci0+c2V0RHJhd09wYWNpdHkobGF5ZXItPmRyYXdPcGFjaXR5KCkgKiBs
YXllci0+cGFyZW50KCktPmRyYXdPcGFjaXR5KCkpOwotCiAgICAgICAgICAgICAvLyBMYXllcnMg
aW5oZXJpdCB0aGUgY2xpcCByZWN0IGZyb20gdGhlaXIgcGFyZW50LgogICAgICAgICAgICAgbGF5
ZXItPnNldENsaXBSZWN0KGxheWVyLT5wYXJlbnQoKS0+Y2xpcFJlY3QoKSk7CiAgICAgICAgICAg
ICBpZiAobGF5ZXItPnBhcmVudCgpLT51c2VzTGF5ZXJDbGlwcGluZygpKQpAQCAtMzc1LDYgKzM3
OCwyMiBAQCBzdGF0aWMgdm9pZCBjYWxjdWxhdGVEcmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxpdHlJ
bnRlcm5hbChMYXllclR5cGUqIGxheWVyLCBMYXllcgogICAgICAgICB9CiAgICAgfQogCisgICAg
aWYgKGxheWVyLT5yZW5kZXJTdXJmYWNlKCkgJiYgIWxheWVyLT5yZW5kZXJTdXJmYWNlKCktPmxh
eWVyTGlzdCgpLnNpemUoKSkgeworICAgICAgICAvLyBJZiBhIHJlbmRlciBzdXJmYWNlIGhhcyBu
byBsYXllciBsaXN0LCB0aGVuIGl0IGFuZCBub25lIG9mIGl0cworICAgICAgICAvLyBjaGlsZHJl
biBuZWVkZWQgdG8gZ2V0IGRyYXduLiBUaGVyZWZvcmUsIGl0IHNob3VsZCBiZSB0aGUgbGFzdCBs
YXllcgorICAgICAgICAvLyBpbiB0aGUgcmVuZGVyIHN1cmZhY2UgbGlzdCBhbmQgd2UgY2FuIHRy
aXZpYWxseSByZW1vdmUgaXQuCisgICAgICAgIGlmIChsYXllciAhPSByb290TGF5ZXIpIHsKKyAg
ICAgICAgICAgIEFTU0VSVChyZW5kZXJTdXJmYWNlTGF5ZXJMaXN0Lmxhc3QoKSA9PSBsYXllcik7
CisgICAgICAgICAgICByZW5kZXJTdXJmYWNlTGF5ZXJMaXN0LnJlbW92ZUxhc3QoKTsKKyAgICAg
ICAgICAgIGxheWVyLT5jbGVhclJlbmRlclN1cmZhY2UoKTsKKyAgICAgICAgfQorICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgLy8gSWYgbmVpdGhlciB0aGlzIGxheWVyIG5vciBhbnkgb2Yg
aXRzIGNoaWxkcmVuIHdlcmUgYWRkZWQsIGVhcmx5IG91dC4KKyAgICBpZiAoc29ydGluZ1N0YXJ0
SW5kZXggPT0gZGVzY2VuZGFudHMuc2l6ZSgpKQorICAgICAgICByZXR1cm47CisKICAgICBpZiAo
bGF5ZXItPm1hc2tzVG9Cb3VuZHMoKSB8fCB1c2VTdXJmYWNlRm9yTWFza2luZykgewogICAgICAg
ICBJbnRSZWN0IGRyYXdhYmxlQ29udGVudFJlY3QgPSBsYXllci0+ZHJhd2FibGVDb250ZW50UmVj
dCgpOwogICAgICAgICBkcmF3YWJsZUNvbnRlbnRSZWN0LmludGVyc2VjdCh0cmFuc2Zvcm1lZExh
eWVyUmVjdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5
ZXJUcmVlSG9zdENvbW1vblRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9D
Q0xheWVyVHJlZUhvc3RDb21tb25UZXN0LmNwcAppbmRleCBiZDVhNzQ5Yjc3MmZkMzk5ZmFhOGM3
ZGY4N2M0NTU4NDZiODAwN2MxLi5jOWEyZmM2NTEzMjU2NmI0MjYzYTAwNjg4ZjU3YzNmNTI3YjE2
MWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVl
SG9zdENvbW1vblRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NM
YXllclRyZWVIb3N0Q29tbW9uVGVzdC5jcHAKQEAgLTMxMiw2ICszMTIsNyBAQCBURVNUKENDTGF5
ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeVRyYW5zZm9ybXNGb3JTaW5nbGVSZW5kZXJTdXJm
YWNlKQogCiAgICAgc2V0TGF5ZXJQcm9wZXJ0aWVzRm9yVGVzdGluZyhwYXJlbnQuZ2V0KCksIHBh
cmVudExheWVyVHJhbnNmb3JtLCBwYXJlbnRTdWJsYXllck1hdHJpeCwgRmxvYXRQb2ludCgwLjI1
ZiwgMC4yNWYpLCBGbG9hdFBvaW50KDIuNWYsIDMuMGYpLCBJbnRTaXplKDEwLCAxMiksIGZhbHNl
KTsKICAgICBzZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5nKGNoaWxkLmdldCgpLCBpZGVudGl0
eU1hdHJpeCwgaWRlbnRpdHlNYXRyaXgsIEZsb2F0UG9pbnQoMC4wZiwgMC4wZiksIEZsb2F0UG9p
bnQoMC4wZiwgMC4wZiksIEludFNpemUoMTYsIDE4KSwgZmFsc2UpOworICAgIHNldExheWVyUHJv
cGVydGllc0ZvclRlc3RpbmcoZ3JhbmRDaGlsZC5nZXQoKSwgaWRlbnRpdHlNYXRyaXgsIGlkZW50
aXR5TWF0cml4LCBGbG9hdFBvaW50KDAuMGYsIDAuMGYpLCBGbG9hdFBvaW50KC0wLjVmLCAtMC41
ZiksIEludFNpemUoMSwgMSksIGZhbHNlKTsKICAgICBleGVjdXRlQ2FsY3VsYXRlRHJhd1RyYW5z
Zm9ybXNBbmRWaXNpYmlsaXR5KHBhcmVudC5nZXQoKSk7CiAKICAgICAvLyBSZW5kZXIgc3VyZmFj
ZSBzaG91bGQgaGF2ZSBiZWVuIGNyZWF0ZWQgbm93Lgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115618</attachid>
            <date>2011-11-17 10:36:21 -0800</date>
            <delta_ts>2011-11-22 18:29:06 -0800</delta_ts>
            <desc>Move code below comment</desc>
            <filename>bug-71038-20111117103620.patch</filename>
            <type>text/plain</type>
            <size>11548</size>
            <attacher name="Adrienne Walker">enne</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAwNTYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGQ4NDhlODI0YjNjNTA3
ZWU0YjFjMWNhMDM3N2VmNzExMmI0NDA0Yi4uN2M0YTllNzcxZTg5ZTM0Mjk4NzM1NTBlZGE5MWYy
N2JlYTFkZTIwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDExLTExLTE3ICBBZHJp
ZW5uZSBXYWxrZXIgIDxlbm5lQGdvb2dsZS5jb20+CisKKyAgICAgICAgW2Nocm9taXVtXSBJbXBs
aWNpdGx5IHNraXAgcmVuZGVyIHN1cmZhY2VzIHRoYXQgd29uJ3QgYmUgZHJhd24KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMDM4CisKKyAgICAgICAg
UmF0aGVyIHRoYW4gaGF2aW5nIHJlZHVuZGFudCBjaGVja3MgaW4gdGhyZWUgcGxhY2VzIGZvciBo
b3cgdG8gd2FsaworICAgICAgICB0aHJvdWdoIGEgcmVuZGVyIHN1cmZhY2UgbGlzdCwgaW5zdGVh
ZCBkb24ndCBhZGQgcmVuZGVyIHN1cmZhY2VzIHRoYXQKKyAgICAgICAgZG9uJ3QgbmVlZCB0byBn
ZXQgcmVuZGVyZWQgdG8gdGhlIHJlbmRlciBzdXJmYWNlIGxpc3QuCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyBsYXlv
dXQgdGVzdHMgYW5kIHVuaXQgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5
ZXJSZW5kZXJlckNocm9taXVtOjpkcmF3TGF5ZXJzT250b1JlbmRlclN1cmZhY2VzKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0OjpwYWludExheWVyQ29udGVudHMpOgor
ICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0Ojp1cGRhdGVDb21wb3NpdG9yUmVzb3Vy
Y2VzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJl
ZUhvc3RDb21tb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y2FsY3VsYXRlRHJhd1RyYW5zZm9y
bXNBbmRWaXNpYmlsaXR5SW50ZXJuYWwpOgorCiAyMDExLTExLTE2ICBEZWFuIEphY2tzb24gIDxk
aW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBEcm9wU2hhZG93RmlsdGVyT3BlcmF0aW9uIHZpb2xh
dGVzIHBsYXRmb3JtIGlzb2xhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBlMjA3
NDE3MWEyNzU1OTg1ZTYyYzFiY2U0ZDNkMWQ4NDA3ZDBjMTYzLi5jNTdkMDY5MzNiN2YxNjY5OGEx
NjgwMGRmNmM5NTBkYWNkNmJhMmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE1IEBACisyMDExLTExLTE3ICBBZHJpZW5uZSBXYWxrZXIgIDxlbm5lQGdvb2dsZS5jb20+
CisKKyAgICAgICAgW2Nocm9taXVtXSBJbXBsaWNpdGx5IHNraXAgcmVuZGVyIHN1cmZhY2VzIHRo
YXQgd29uJ3QgYmUgZHJhd24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTcxMDM4CisKKyAgICAgICAgVXBkYXRlIGEgdGVzdCB0aGF0IGRlcGVuZHMgb24g
YSBsYXllciBub3QgZ2V0dGluZyByZW1vdmVkLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogdGVzdHMvQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpURVNUKToKKwogMjAxMS0xMS0xMSAgQWRyaWVubmUgV2Fs
a2VyICA8ZW5uZUBnb29nbGUuY29tPgogCiAgICAgICAgIFtjaHJvbWl1bV0gRXhwb3NlIG1vY2sg
c2Nyb2xsYmFycyB0byB3aW5kb3cuaW50ZXJuYWxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNo
cm9taXVtLmNwcAppbmRleCBmNmM2MmVlOTE2OWVhYWRlMzFjZWE1NjE5YWNhOGMwYTJjMGI4Yjcz
Li4wYmQ2ZGJjMzg5NmFlNGEwNzcxOWE0ZWE0YTNjY2U3MzU5MjczZTA0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hy
b21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAKQEAgLTMxOCwxOSArMzE4LDEwIEBAIHZvaWQgTGF5
ZXJSZW5kZXJlckNocm9taXVtOjpkcmF3TGF5ZXJzT250b1JlbmRlclN1cmZhY2VzKENDTGF5ZXJJ
bXBsKiByb290RHJhd0xhCiAgICAgICAgIENDTGF5ZXJJbXBsKiByZW5kZXJTdXJmYWNlTGF5ZXIg
PSByZW5kZXJTdXJmYWNlTGF5ZXJMaXN0W3N1cmZhY2VJbmRleF0uZ2V0KCk7CiAgICAgICAgIEND
UmVuZGVyU3VyZmFjZSogcmVuZGVyU3VyZmFjZSA9IHJlbmRlclN1cmZhY2VMYXllci0+cmVuZGVy
U3VyZmFjZSgpOwogICAgICAgICBBU1NFUlQocmVuZGVyU3VyZmFjZSk7Ci0KLSAgICAgICAgcmVu
ZGVyU3VyZmFjZS0+c2V0U2tpcHNEcmF3KHRydWUpOwotCi0gICAgICAgIGlmICghcmVuZGVyU3Vy
ZmFjZS0+bGF5ZXJMaXN0KCkuc2l6ZSgpKQotICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAg
ICAgLy8gU2tpcCBjb21wbGV0ZWx5IHRyYW5zcGFyZW50IHJlbmRlciBzdXJmYWNlcy4KLSAgICAg
ICAgaWYgKCFyZW5kZXJTdXJmYWNlLT5kcmF3T3BhY2l0eSgpKQotICAgICAgICAgICAgY29udGlu
dWU7CisgICAgICAgIEFTU0VSVChyZW5kZXJTdXJmYWNlLT5sYXllckxpc3QoKS5zaXplKCkpOwor
ICAgICAgICBBU1NFUlQocmVuZGVyU3VyZmFjZS0+ZHJhd09wYWNpdHkoKSk7CiAKICAgICAgICAg
aWYgKHVzZVJlbmRlclN1cmZhY2UocmVuZGVyU3VyZmFjZSkpIHsKLSAgICAgICAgICAgIHJlbmRl
clN1cmZhY2UtPnNldFNraXBzRHJhdyhmYWxzZSk7Ci0KICAgICAgICAgICAgIGlmIChyZW5kZXJT
dXJmYWNlTGF5ZXIgIT0gcm9vdERyYXdMYXllcikgewogICAgICAgICAgICAgICAgIEdMQyhtX2Nv
bnRleHQuZ2V0KCksIG1fY29udGV4dC0+ZGlzYWJsZShHcmFwaGljc0NvbnRleHQzRDo6U0NJU1NP
Ul9URVNUKSk7CiAgICAgICAgICAgICAgICAgR0xDKG1fY29udGV4dC5nZXQoKSwgbV9jb250ZXh0
LT5jbGVhckNvbG9yKDAsIDAsIDAsIDApKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3Bw
CmluZGV4IDYzNzIyYjlkZTMzMDRkNGU0M2U4YzBmMDJmZTJmNTEzODQ4ZjJjZWIuLjQ5OGU5MTdk
ZDBiM2M2Nzc0YjEyMzBlMTMxNGQ4ZjU1MWI1ZTE0NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRy
ZWVIb3N0LmNwcApAQCAtMzcxLDE0ICszNzEsOCBAQCB2b2lkIENDTGF5ZXJUcmVlSG9zdDo6cGFp
bnRMYXllckNvbnRlbnRzKGNvbnN0IExheWVyTGlzdCYgcmVuZGVyU3VyZmFjZUxheWVyTGlzdAog
ICAgICAgICBMYXllckNocm9taXVtKiByZW5kZXJTdXJmYWNlTGF5ZXIgPSByZW5kZXJTdXJmYWNl
TGF5ZXJMaXN0W3N1cmZhY2VJbmRleF0uZ2V0KCk7CiAgICAgICAgIFJlbmRlclN1cmZhY2VDaHJv
bWl1bSogcmVuZGVyU3VyZmFjZSA9IHJlbmRlclN1cmZhY2VMYXllci0+cmVuZGVyU3VyZmFjZSgp
OwogICAgICAgICBBU1NFUlQocmVuZGVyU3VyZmFjZSk7Ci0KLSAgICAgICAgLy8gUmVuZGVyIHN1
cmZhY2VzIHdob3NlIGRyYXdhYmxlIGFyZWEgaGFzIHplcm8gd2lkdGggb3IgaGVpZ2h0Ci0gICAg
ICAgIC8vIHdpbGwgaGF2ZSBubyBsYXllcnMgYXNzb2NpYXRlZCB3aXRoIHRoZW0gYW5kIHNob3Vs
ZCBiZSBza2lwcGVkLgotICAgICAgICBpZiAoIXJlbmRlclN1cmZhY2UtPmxheWVyTGlzdCgpLnNp
emUoKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgIGlmICghcmVuZGVyU3VyZmFj
ZS0+ZHJhd09wYWNpdHkoKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBBU1NFUlQo
cmVuZGVyU3VyZmFjZS0+bGF5ZXJMaXN0KCkuc2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHJlbmRl
clN1cmZhY2UtPmRyYXdPcGFjaXR5KCkpOwogCiAgICAgICAgIHJlbmRlclN1cmZhY2VMYXllci0+
c2V0TGF5ZXJUcmVlSG9zdCh0aGlzKTsKICAgICAgICAgcGFpbnRNYXNrQW5kUmVwbGljYUZvclJl
bmRlclN1cmZhY2UocmVuZGVyU3VyZmFjZUxheWVyKTsKQEAgLTQwOSw5ICs0MDMsOCBAQCB2b2lk
IENDTGF5ZXJUcmVlSG9zdDo6dXBkYXRlQ29tcG9zaXRvclJlc291cmNlcyhHcmFwaGljc0NvbnRl
eHQzRCogY29udGV4dCwgQ0NUZQogICAgICAgICBMYXllckNocm9taXVtKiByZW5kZXJTdXJmYWNl
TGF5ZXIgPSBtX3VwZGF0ZUxpc3Rbc3VyZmFjZUluZGV4XS5nZXQoKTsKICAgICAgICAgUmVuZGVy
U3VyZmFjZUNocm9taXVtKiByZW5kZXJTdXJmYWNlID0gcmVuZGVyU3VyZmFjZUxheWVyLT5yZW5k
ZXJTdXJmYWNlKCk7CiAgICAgICAgIEFTU0VSVChyZW5kZXJTdXJmYWNlKTsKLQotICAgICAgICBp
ZiAoIXJlbmRlclN1cmZhY2UtPmxheWVyTGlzdCgpLnNpemUoKSB8fCAhcmVuZGVyU3VyZmFjZS0+
ZHJhd09wYWNpdHkoKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBBU1NFUlQocmVu
ZGVyU3VyZmFjZS0+bGF5ZXJMaXN0KCkuc2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHJlbmRlclN1
cmZhY2UtPmRyYXdPcGFjaXR5KCkpOwogCiAgICAgICAgIGlmIChyZW5kZXJTdXJmYWNlTGF5ZXIt
Pm1hc2tMYXllcigpKQogICAgICAgICAgICAgdXBkYXRlQ29tcG9zaXRvclJlc291cmNlcyhyZW5k
ZXJTdXJmYWNlTGF5ZXItPm1hc2tMYXllcigpLCBjb250ZXh0LCB1cGRhdGVyKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJU
cmVlSG9zdENvbW1vbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RDb21tb24uY3BwCmluZGV4IDNlNzUwZjhjMWMzYzYyOGEy
YmViZmMxMDE0M2FhMzFhN2I4NjExNjkuLjYyNjM2OGY4MWU3Yzk5OTVhMjEzZjViYWM3OTY2Yjlk
ODI1NmNkOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdENvbW1vbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0Q29tbW9uLmNwcApA
QCAtMTA5LDYgKzEwOSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIExheWVyVHlwZSwgdHlwZW5hbWUg
UmVuZGVyU3VyZmFjZVR5cGUsIHR5cGVuYW1lIExheWVyU29ydGVyPgogc3RhdGljIHZvaWQgY2Fs
Y3VsYXRlRHJhd1RyYW5zZm9ybXNBbmRWaXNpYmlsaXR5SW50ZXJuYWwoTGF5ZXJUeXBlKiBsYXll
ciwgTGF5ZXJUeXBlKiByb290TGF5ZXIsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBwYXJl
bnRNYXRyaXgsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBmdWxsSGllcmFyY2h5TWF0cml4
LCBWZWN0b3I8UmVmUHRyPExheWVyVHlwZT4gPiYgcmVuZGVyU3VyZmFjZUxheWVyTGlzdCwgVmVj
dG9yPFJlZlB0cjxMYXllclR5cGU+ID4mIGxheWVyTGlzdCwgTGF5ZXJTb3J0ZXIqIGxheWVyU29y
dGVyLCBpbnQgbWF4VGV4dHVyZVNpemUpCiB7CiAgICAgdHlwZWRlZiBWZWN0b3I8UmVmUHRyPExh
eWVyVHlwZT4gPiBMYXllckxpc3Q7CisKICAgICAvLyBUaGlzIGZ1bmN0aW9uIGNvbXB1dGVzIHRo
ZSBuZXcgbWF0cml4IHRyYW5zZm9ybWF0aW9ucyByZWN1cnNpdmVseSBmb3IgdGhpcwogICAgIC8v
IGxheWVyIGFuZCBhbGwgaXRzIGRlc2NlbmRhbnRzLiBJdCBhbHNvIGNvbXB1dGVzIHRoZSBhcHBy
b3ByaWF0ZSByZW5kZXIgc3VyZmFjZXMuCiAgICAgLy8gU29tZSBpbXBvcnRhbnQgcG9pbnRzIHRv
IHJlbWVtYmVyOgpAQCAtMTg3LDYgKzE4OCwxNSBAQCBzdGF0aWMgdm9pZCBjYWxjdWxhdGVEcmF3
VHJhbnNmb3Jtc0FuZFZpc2liaWxpdHlJbnRlcm5hbChMYXllclR5cGUqIGxheWVyLCBMYXllcgog
ICAgIC8vICAgICAgICBTIGlzIHRoZSBzY2FsZSBhZGp1c3RtZW50ICh0byBzY2FsZSB1cCB0byB0
aGUgbGF5ZXIgc2l6ZSkKICAgICAvLwogCisgICAgZmxvYXQgZHJhd09wYWNpdHkgPSBsYXllci0+
b3BhY2l0eSgpOworICAgIGlmIChsYXllci0+cGFyZW50KCkgJiYgbGF5ZXItPnBhcmVudCgpLT5w
cmVzZXJ2ZXMzRCgpKQorICAgICAgICBkcmF3T3BhY2l0eSAqPSBsYXllci0+cGFyZW50KCktPmRy
YXdPcGFjaXR5KCk7CisgICAgLy8gVGhlIG9wYWNpdHkgb2YgYSBsYXllciBhbHdheXMgYXBwbGll
cyB0byBpdHMgY2hpbGRyZW4gKGVpdGhlciBpbXBsaWNpdGx5CisgICAgLy8gdmlhIGEgcmVuZGVy
IHN1cmZhY2Ugb3IgZXhwbGljaXRseSBpZiB0aGUgcGFyZW50IHByZXNlcnZlcyAzRCksIHNvIHRo
ZQorICAgIC8vIGVudGlyZSBzdWJ0cmVlIGNhbiBiZSBza2lwcGVkIGlmIHRoaXMgbGF5ZXIgaXMg
ZnVsbHkgdHJhbnNwYXJlbnQuCisgICAgaWYgKCFkcmF3T3BhY2l0eSkKKyAgICAgICAgcmV0dXJu
OworCiAgICAgSW50U2l6ZSBib3VuZHMgPSBsYXllci0+Ym91bmRzKCk7CiAgICAgRmxvYXRQb2lu
dCBhbmNob3JQb2ludCA9IGxheWVyLT5hbmNob3JQb2ludCgpOwogICAgIEZsb2F0UG9pbnQgcG9z
aXRpb24gPSBsYXllci0+cG9zaXRpb24oKSAtIGxheWVyLT5zY3JvbGxEZWx0YSgpOwpAQCAtMjM4
LDcgKzI0OCw5IEBAIHN0YXRpYyB2b2lkIGNhbGN1bGF0ZURyYXdUcmFuc2Zvcm1zQW5kVmlzaWJp
bGl0eUludGVybmFsKExheWVyVHlwZSogbGF5ZXIsIExheWVyCiAgICAgaWYgKHVzZVN1cmZhY2VG
b3JNYXNraW5nIHx8IHVzZVN1cmZhY2VGb3JSZWZsZWN0aW9uIHx8IHVzZVN1cmZhY2VGb3JGbGF0
RGVzY2VuZGFudHMgfHwgKCh1c2VTdXJmYWNlRm9yQ2xpcHBpbmcgfHwgdXNlU3VyZmFjZUZvck9w
YWNpdHkpICYmIGxheWVyLT5kZXNjZW5kYW50RHJhd3NDb250ZW50KCkpKSB7CiAgICAgICAgIGlm
ICghbGF5ZXItPnJlbmRlclN1cmZhY2UoKSkKICAgICAgICAgICAgIGxheWVyLT5jcmVhdGVSZW5k
ZXJTdXJmYWNlKCk7CisKICAgICAgICAgUmVuZGVyU3VyZmFjZVR5cGUqIHJlbmRlclN1cmZhY2Ug
PSBsYXllci0+cmVuZGVyU3VyZmFjZSgpOworICAgICAgICByZW5kZXJTdXJmYWNlLT5jbGVhckxh
eWVyTGlzdCgpOwogCiAgICAgICAgIC8vIFRoZSBvcmlnaW4gb2YgdGhlIG5ldyBzdXJmYWNlIGlz
IHRoZSB1cHBlciBsZWZ0IGNvcm5lciBvZiB0aGUgbGF5ZXIuCiAgICAgICAgIFRyYW5zZm9ybWF0
aW9uTWF0cml4IGRyYXdUcmFuc2Zvcm07CkBAIC0yNDcsMTAgKzI1OSw2IEBAIHN0YXRpYyB2b2lk
IGNhbGN1bGF0ZURyYXdUcmFuc2Zvcm1zQW5kVmlzaWJpbGl0eUludGVybmFsKExheWVyVHlwZSog
bGF5ZXIsIExheWVyCiAKICAgICAgICAgdHJhbnNmb3JtZWRMYXllclJlY3QgPSBJbnRSZWN0KDAs
IDAsIGJvdW5kcy53aWR0aCgpLCBib3VuZHMuaGVpZ2h0KCkpOwogCi0gICAgICAgIC8vIExheWVy
J3Mgb3BhY2l0eSB3aWxsIGJlIGFwcGxpZWQgd2hlbiBkcmF3aW5nIHRoZSByZW5kZXIgc3VyZmFj
ZS4KLSAgICAgICAgZmxvYXQgZHJhd09wYWNpdHkgPSBsYXllci0+b3BhY2l0eSgpOwotICAgICAg
ICBpZiAobGF5ZXItPnBhcmVudCgpICYmIGxheWVyLT5wYXJlbnQoKS0+cHJlc2VydmVzM0QoKSkK
LSAgICAgICAgICAgIGRyYXdPcGFjaXR5ICo9IGxheWVyLT5wYXJlbnQoKS0+ZHJhd09wYWNpdHko
KTsKICAgICAgICAgcmVuZGVyU3VyZmFjZS0+c2V0RHJhd09wYWNpdHkoZHJhd09wYWNpdHkpOwog
ICAgICAgICBsYXllci0+c2V0RHJhd09wYWNpdHkoMSk7CiAKQEAgLTI2Niw4ICsyNzQsNiBAQCBz
dGF0aWMgdm9pZCBjYWxjdWxhdGVEcmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxpdHlJbnRlcm5hbChM
YXllclR5cGUqIGxheWVyLCBMYXllcgogICAgICAgICAvLyBzdXJmYWNlIGFuZCBpcyB0aGVyZWZv
cmUgZXhwcmVzc2VkIGluIHRoZSBwYXJlbnQncyBjb29yZGluYXRlIHN5c3RlbS4KICAgICAgICAg
cmVuZGVyU3VyZmFjZS0+c2V0Q2xpcFJlY3QobGF5ZXItPnBhcmVudCgpID8gbGF5ZXItPnBhcmVu
dCgpLT5jbGlwUmVjdCgpIDogbGF5ZXItPmNsaXBSZWN0KCkpOwogCi0gICAgICAgIHJlbmRlclN1
cmZhY2UtPmNsZWFyTGF5ZXJMaXN0KCk7Ci0KICAgICAgICAgaWYgKGxheWVyLT5tYXNrTGF5ZXIo
KSkgewogICAgICAgICAgICAgcmVuZGVyU3VyZmFjZS0+c2V0TWFza0xheWVyKGxheWVyLT5tYXNr
TGF5ZXIoKSk7CiAgICAgICAgICAgICBsYXllci0+bWFza0xheWVyKCktPnNldFRhcmdldFJlbmRl
clN1cmZhY2UocmVuZGVyU3VyZmFjZSk7CkBAIC0yODIsMTIgKzI4OCw5IEBAIHN0YXRpYyB2b2lk
IGNhbGN1bGF0ZURyYXdUcmFuc2Zvcm1zQW5kVmlzaWJpbGl0eUludGVybmFsKExheWVyVHlwZSog
bGF5ZXIsIExheWVyCiAgICAgICAgIGxheWVyLT5zZXREcmF3VHJhbnNmb3JtKGNvbWJpbmVkVHJh
bnNmb3JtKTsKICAgICAgICAgdHJhbnNmb3JtZWRMYXllclJlY3QgPSBlbmNsb3NpbmdJbnRSZWN0
KGxheWVyLT5kcmF3VHJhbnNmb3JtKCkubWFwUmVjdChsYXllclJlY3QpKTsKIAotICAgICAgICBs
YXllci0+c2V0RHJhd09wYWNpdHkobGF5ZXItPm9wYWNpdHkoKSk7CisgICAgICAgIGxheWVyLT5z
ZXREcmF3T3BhY2l0eShkcmF3T3BhY2l0eSk7CiAKICAgICAgICAgaWYgKGxheWVyLT5wYXJlbnQo
KSkgewotICAgICAgICAgICAgaWYgKGxheWVyLT5wYXJlbnQoKS0+cHJlc2VydmVzM0QoKSkKLSAg
ICAgICAgICAgICAgIGxheWVyLT5zZXREcmF3T3BhY2l0eShsYXllci0+ZHJhd09wYWNpdHkoKSAq
IGxheWVyLT5wYXJlbnQoKS0+ZHJhd09wYWNpdHkoKSk7Ci0KICAgICAgICAgICAgIC8vIExheWVy
cyBpbmhlcml0IHRoZSBjbGlwIHJlY3QgZnJvbSB0aGVpciBwYXJlbnQuCiAgICAgICAgICAgICBs
YXllci0+c2V0Q2xpcFJlY3QobGF5ZXItPnBhcmVudCgpLT5jbGlwUmVjdCgpKTsKICAgICAgICAg
ICAgIGlmIChsYXllci0+cGFyZW50KCktPnVzZXNMYXllckNsaXBwaW5nKCkpCkBAIC0zNzUsNiAr
Mzc4LDIyIEBAIHN0YXRpYyB2b2lkIGNhbGN1bGF0ZURyYXdUcmFuc2Zvcm1zQW5kVmlzaWJpbGl0
eUludGVybmFsKExheWVyVHlwZSogbGF5ZXIsIExheWVyCiAgICAgICAgIH0KICAgICB9CiAKKyAg
ICBpZiAobGF5ZXItPnJlbmRlclN1cmZhY2UoKSAmJiAhbGF5ZXItPnJlbmRlclN1cmZhY2UoKS0+
bGF5ZXJMaXN0KCkuc2l6ZSgpKSB7CisgICAgICAgIC8vIElmIGEgcmVuZGVyIHN1cmZhY2UgaGFz
IG5vIGxheWVyIGxpc3QsIHRoZW4gaXQgYW5kIG5vbmUgb2YgaXRzCisgICAgICAgIC8vIGNoaWxk
cmVuIG5lZWRlZCB0byBnZXQgZHJhd24uIFRoZXJlZm9yZSwgaXQgc2hvdWxkIGJlIHRoZSBsYXN0
IGxheWVyCisgICAgICAgIC8vIGluIHRoZSByZW5kZXIgc3VyZmFjZSBsaXN0IGFuZCB3ZSBjYW4g
dHJpdmlhbGx5IHJlbW92ZSBpdC4KKyAgICAgICAgaWYgKGxheWVyICE9IHJvb3RMYXllcikgewor
ICAgICAgICAgICAgQVNTRVJUKHJlbmRlclN1cmZhY2VMYXllckxpc3QubGFzdCgpID09IGxheWVy
KTsKKyAgICAgICAgICAgIHJlbmRlclN1cmZhY2VMYXllckxpc3QucmVtb3ZlTGFzdCgpOworICAg
ICAgICAgICAgbGF5ZXItPmNsZWFyUmVuZGVyU3VyZmFjZSgpOworICAgICAgICB9CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICAvLyBJZiBuZWl0aGVyIHRoaXMgbGF5ZXIgbm9yIGFueSBv
ZiBpdHMgY2hpbGRyZW4gd2VyZSBhZGRlZCwgZWFybHkgb3V0LgorICAgIGlmIChzb3J0aW5nU3Rh
cnRJbmRleCA9PSBkZXNjZW5kYW50cy5zaXplKCkpCisgICAgICAgIHJldHVybjsKKwogICAgIGlm
IChsYXllci0+bWFza3NUb0JvdW5kcygpIHx8IHVzZVN1cmZhY2VGb3JNYXNraW5nKSB7CiAgICAg
ICAgIEludFJlY3QgZHJhd2FibGVDb250ZW50UmVjdCA9IGxheWVyLT5kcmF3YWJsZUNvbnRlbnRS
ZWN0KCk7CiAgICAgICAgIGRyYXdhYmxlQ29udGVudFJlY3QuaW50ZXJzZWN0KHRyYW5zZm9ybWVk
TGF5ZXJSZWN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NM
YXllclRyZWVIb3N0Q29tbW9uVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L0NDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QuY3BwCmluZGV4IGJkNWE3NDliNzcyZmQzOTlmYWE4
YzdkZjg3YzQ1NTg0NmI4MDA3YzEuLmM5YTJmYzY1MTMyNTY2YjQyNjNhMDA2ODhmNTdjM2Y1Mjdi
MTYxYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRy
ZWVIb3N0Q29tbW9uVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9D
Q0xheWVyVHJlZUhvc3RDb21tb25UZXN0LmNwcApAQCAtMzEyLDYgKzMxMiw3IEBAIFRFU1QoQ0NM
YXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5VHJhbnNmb3Jtc0ZvclNpbmdsZVJlbmRlclN1
cmZhY2UpCiAKICAgICBzZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5nKHBhcmVudC5nZXQoKSwg
cGFyZW50TGF5ZXJUcmFuc2Zvcm0sIHBhcmVudFN1YmxheWVyTWF0cml4LCBGbG9hdFBvaW50KDAu
MjVmLCAwLjI1ZiksIEZsb2F0UG9pbnQoMi41ZiwgMy4wZiksIEludFNpemUoMTAsIDEyKSwgZmFs
c2UpOwogICAgIHNldExheWVyUHJvcGVydGllc0ZvclRlc3RpbmcoY2hpbGQuZ2V0KCksIGlkZW50
aXR5TWF0cml4LCBpZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgwLjBmLCAwLjBmKSwgRmxvYXRQ
b2ludCgwLjBmLCAwLjBmKSwgSW50U2l6ZSgxNiwgMTgpLCBmYWxzZSk7CisgICAgc2V0TGF5ZXJQ
cm9wZXJ0aWVzRm9yVGVzdGluZyhncmFuZENoaWxkLmdldCgpLCBpZGVudGl0eU1hdHJpeCwgaWRl
bnRpdHlNYXRyaXgsIEZsb2F0UG9pbnQoMC4wZiwgMC4wZiksIEZsb2F0UG9pbnQoLTAuNWYsIC0w
LjVmKSwgSW50U2l6ZSgxLCAxKSwgZmFsc2UpOwogICAgIGV4ZWN1dGVDYWxjdWxhdGVEcmF3VHJh
bnNmb3Jtc0FuZFZpc2liaWxpdHkocGFyZW50LmdldCgpKTsKIAogICAgIC8vIFJlbmRlciBzdXJm
YWNlIHNob3VsZCBoYXZlIGJlZW4gY3JlYXRlZCBub3cuCg==
</data>
<flag name="review"
          id="114569"
          type_id="1"
          status="+"
          setter="jamesr"
    />
          </attachment>
      

    </bug>

</bugzilla>