<?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>77555</bug_id>
          
          <creation_ts>2012-02-01 07:33:27 -0800</creation_ts>
          <short_desc>[chromium] Add setNeedsRedraw to WebWidget</short_desc>
          <delta_ts>2012-02-09 07:40:55 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>76805</dependson>
    
    <dependson>77994</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Nat Duca">nduca</reporter>
          <assigned_to name="Jonathan Backer">backer</assigned_to>
          <cc>backer</cc>
    
    <cc>cc-bugs</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>shawnsingh</cc>
    
    <cc>tonyg</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>547074</commentid>
    <comment_count>0</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-02-01 07:33:27 -0800</bug_when>
    <thetext>[chromium] Add didReceiveDamage to WebWidget</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547075</commentid>
    <comment_count>1</comment_count>
      <attachid>124949</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-02-01 07:34:01 -0800</bug_when>
    <thetext>Created attachment 124949
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547077</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-01 07:36:40 -0800</bug_when>
    <thetext>Please wait for approval from fishd@chromium.org before submitting because this patch contains changes to the Chromium public API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547082</commentid>
    <comment_count>3</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-02-01 07:38:59 -0800</bug_when>
    <thetext>This method already was required on the WebWidgetUpdateController in my upcoming WebWidget and serves to notify the WebWidget that its surface was damaged. My inversion patch is still a few weeks out, and @backer has requested this call in the near term to enable the scissoring optimization and start linting that out on the canaries.

Thus, I put up this patch as a stopgap measure. Hopefully it will be OK to you as well. Its all going away in a few weeks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547137</commentid>
    <comment_count>4</comment_count>
      <attachid>124949</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2012-02-01 09:45:15 -0800</bug_when>
    <thetext>Comment on attachment 124949
Patch

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

&gt; Source/WebKit/chromium/public/WebWidget.h:113
&gt; +    virtual void didReceiveDamage() { }

if you look at the implementation of themeChanged, it would appear to be very similar
to this.  it is just a notification that the WebWidget needs to redraw everything.
maybe we could combine these two methods?

also, why isn&apos;t this similarly implemented using FrameView::invalidateRect?  or, 
why don&apos;t we have special code in the accelerated case for themeChanged?

would it make sense to rename themeChanged to &quot;invalidate()&quot; and then use that
for both purposes?  or does FrameView::invalidateRect() cause more work to be
done than you need in this new case?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547827</commentid>
    <comment_count>5</comment_count>
    <who name="Jonathan Backer">backer</who>
    <bug_when>2012-02-02 05:51:24 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 124949 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=124949&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/chromium/public/WebWidget.h:113
&gt; &gt; +    virtual void didReceiveDamage() { }
&gt; 
&gt; if you look at the implementation of themeChanged, it would appear to be very similar
&gt; to this.  it is just a notification that the WebWidget needs to redraw everything.
&gt; maybe we could combine these two methods?
&gt; 
&gt; also, why isn&apos;t this similarly implemented using FrameView::invalidateRect?  or, 
&gt; why don&apos;t we have special code in the accelerated case for themeChanged?
&gt; 
&gt; would it make sense to rename themeChanged to &quot;invalidate()&quot; and then use that
&gt; for both purposes?  or does FrameView::invalidateRect() cause more work to be
&gt; done than you need in this new case?

I think that we need a different pathway for this. Under accelerated compositing, we distinguish between two different actions in the renderer:
- painting: rasterizing the textures (typically via Skia)
- drawing: compositing the textures to screen (via the GPU process)

In the case of didReceiveDamage (perhaps poorly named), we just want to invalidate/damage a region for the drawing cycle --- not the paint cycle, which should remain unaffected (no new textures to update).

WebViewImpl::themeChanged() in particular seems to indicate that we need a new paint and drawing cycle, so it is inappropriate for our purposes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547946</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2012-02-02 09:54:51 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; (From update of attachment 124949 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=124949&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/chromium/public/WebWidget.h:113
&gt; &gt; &gt; +    virtual void didReceiveDamage() { }
&gt; &gt; 
&gt; &gt; if you look at the implementation of themeChanged, it would appear to be very similar
&gt; &gt; to this.  it is just a notification that the WebWidget needs to redraw everything.
&gt; &gt; maybe we could combine these two methods?
&gt; &gt; 
&gt; &gt; also, why isn&apos;t this similarly implemented using FrameView::invalidateRect?  or, 
&gt; &gt; why don&apos;t we have special code in the accelerated case for themeChanged?
&gt; &gt; 
&gt; &gt; would it make sense to rename themeChanged to &quot;invalidate()&quot; and then use that
&gt; &gt; for both purposes?  or does FrameView::invalidateRect() cause more work to be
&gt; &gt; done than you need in this new case?
&gt; 
&gt; I think that we need a different pathway for this. Under accelerated compositing, we distinguish between two different actions in the renderer:
&gt; - painting: rasterizing the textures (typically via Skia)
&gt; - drawing: compositing the textures to screen (via the GPU process)
&gt; 
&gt; In the case of didReceiveDamage (perhaps poorly named), we just want to invalidate/damage a region for the drawing cycle --- not the paint cycle, which should remain unaffected (no new textures to update).
&gt; 
&gt; WebViewImpl::themeChanged() in particular seems to indicate that we need a new paint and drawing cycle, so it is inappropriate for our purposes.

Thanks for the explanation.  setNeedsRedraw seems like a pretty decent choice: matches the lower level function call name and it includes the keyword &quot;redraw&quot;.  It would be even better if this method names somehow conveyed the fact that it only applies when we are in compositing mode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548043</commentid>
    <comment_count>7</comment_count>
    <who name="Jonathan Backer">backer</who>
    <bug_when>2012-02-02 12:10:24 -0800</bug_when>
    <thetext>Taking over from nduca.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548839</commentid>
    <comment_count>8</comment_count>
      <attachid>125361</attachid>
    <who name="Jonathan Backer">backer</who>
    <bug_when>2012-02-03 10:40:13 -0800</bug_when>
    <thetext>Created attachment 125361
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548841</commentid>
    <comment_count>9</comment_count>
    <who name="Jonathan Backer">backer</who>
    <bug_when>2012-02-03 10:41:38 -0800</bug_when>
    <thetext>CCDamageTracker goo stolen from https://bugs.webkit.org/show_bug.cgi?id=76805

Confirmed that this fixes the tab switching problem and window expose problem with --enable-partial-swap.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548868</commentid>
    <comment_count>10</comment_count>
      <attachid>125361</attachid>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-02-03 11:06:58 -0800</bug_when>
    <thetext>Comment on attachment 125361
Patch


Here are my comments.  Please note I did not look carefully at the WebWidget side of things, since I&apos;m not very familiar with that code.
Should I go ahead and mark the original bug as a duplicate?


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

&gt; Source/WebCore/platform/graphics/chromium/cc/CCDamageTracker.cpp:136
&gt; +    if (m_forceFullDamageNextUpdate) {
&gt; +        m_currentDamageRect = FloatRect(layer-&gt;targetRenderSurface()-&gt;contentRect());
&gt; +        m_forceFullDamageNextUpdate = false;
&gt; +        return;
&gt; +    }

We can&apos;t return early without computing damage from layers, because the damage tracker needs to update the state of layers in the three lines of code after this.   I suppose you can fix this by putting this immediately after the next 3 lines of code, but after that point, an early return is moot anyway.  Note, the other existing early exit is also wrong - https://bugs.webkit.org/show_bug.cgi?id=76924 - can you please check to make sure this passes that unit test included that patch? (you&apos;ll have to apply the full patch, though)

&gt; Source/WebCore/platform/graphics/chromium/cc/CCDamageTracker.h:46
&gt; +    void forceFullDamageNextUpdate() { m_forceFullDamageNextUpdate = true; }

Could we add a unit test that checks if things are fully damaged under the conditions that should trigger the call to forceFullDamageNextUpdate() ?

&gt; Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.cpp:585
&gt; +    m_layerTreeHostImpl-&gt;rootLayer()-&gt;renderSurface()-&gt;damageTracker()-&gt;forceFullDamageNextUpdate();

Personally in my opinion, there should be a CCLayerTreeHostImpl::forceFullDamageOnRootSurface() wrapper, because that wrapper will be useful in at least one other case that requires full damage from the impl thread itself (such as Nat&apos;s first comment on https://bugs.webkit.org/show_bug.cgi?id=76668)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548906</commentid>
    <comment_count>11</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-02-03 11:43:15 -0800</bug_when>
    <thetext>Wait, these are different patches and should be. There should be one patch to add reset capability to damage tracker. There should be a patch for plumbing.

They should not be comingled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548937</commentid>
    <comment_count>12</comment_count>
      <attachid>125382</attachid>
    <who name="Jonathan Backer">backer</who>
    <bug_when>2012-02-03 12:18:23 -0800</bug_when>
    <thetext>Created attachment 125382
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548938</commentid>
    <comment_count>13</comment_count>
    <who name="Jonathan Backer">backer</who>
    <bug_when>2012-02-03 12:20:17 -0800</bug_when>
    <thetext>Sorry for merging CLs. That makes it much harder to review.

Updated based on off-line discussions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548953</commentid>
    <comment_count>14</comment_count>
      <attachid>125382</attachid>
    <who name="Antoine Labour">piman</who>
    <bug_when>2012-02-03 12:36:55 -0800</bug_when>
    <thetext>Comment on attachment 125382
Patch

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

&gt; Source/WebKit/chromium/public/WebWidget.h:113
&gt; +    virtual void didReceiveDamage() { }

Wouldn&apos;t we want to pass in the damaged rect? It looks like we have the info on the chrome side, and we can still be conservative on the webkit side and optimize later, without involving 2-way patches.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548956</commentid>
    <comment_count>15</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-02-03 12:43:31 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; (From update of attachment 125382 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=125382&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/chromium/public/WebWidget.h:113
&gt; &gt; +    virtual void didReceiveDamage() { }
&gt; 
&gt; Wouldn&apos;t we want to pass in the damaged rect? It looks like we have the info on the chrome side, and we can still be conservative on the webkit side and optimize later, without involving 2-way patches.

Fine by me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549024</commentid>
    <comment_count>16</comment_count>
      <attachid>125382</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-02-03 13:38:22 -0800</bug_when>
    <thetext>Comment on attachment 125382
Patch

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

&gt; Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.cpp:261
&gt; +void CCThreadProxy::performSetNeedsRedrawOnImplThread()

Not something to hold an LGTM on, but is there somethign that communicates the role of this function vs the other one more clearly? I know I gave you this name, I&apos;m really sorry.

Some words
- main thread initiated

Or make setNeedsRedrawOnImplThread take a bool
Or maybe post two messages
  resetDamageTrackerOnImplThread()
  setNeedsRedrawOnImplThread

I&apos;m not sure... this is just non-obvious to read.

&gt; Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.cpp:266
&gt; +        renderSurface-&gt;damageTracker()-&gt;forceFullDamageNextUpdate();

As I understand it, this is going to be a method on the renderSurface saying &quot;resetDamageTracker,&quot; yes?

&gt; Source/WebKit/chromium/src/WebViewImpl.h:116
&gt; +    virtual void didReceiveDamage();

Darin&apos;s feedback was to call this setNeedsRedraw. I think we&apos;re converging on setNeedsRedraw()

Wrt Piman&apos;s comment, I think I&apos;d prefer that to be another function. The problem otherwise is that the client code starts making assumptions about webwidget size AND you get people abusing this API for all sorts of things. I have to add a per-rect API soon anyway, so I&apos;ll take on the burden of the extra API or revising this one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549078</commentid>
    <comment_count>17</comment_count>
      <attachid>125414</attachid>
    <who name="Jonathan Backer">backer</who>
    <bug_when>2012-02-03 14:26:47 -0800</bug_when>
    <thetext>Created attachment 125414
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549087</commentid>
    <comment_count>18</comment_count>
    <who name="Jonathan Backer">backer</who>
    <bug_when>2012-02-03 14:31:46 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; (From update of attachment 125382 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=125382&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.cpp:261
&gt; &gt; +void CCThreadProxy::performSetNeedsRedrawOnImplThread()
&gt; 
&gt; Not something to hold an LGTM on, but is there somethign that communicates the role of this function vs the other one more clearly? I know I gave you this name, I&apos;m really sorry.
&gt; 
&gt; Some words
&gt; - main thread initiated
&gt; 
&gt; Or make setNeedsRedrawOnImplThread take a bool
&gt; Or maybe post two messages
&gt;   resetDamageTrackerOnImplThread()
&gt;   setNeedsRedrawOnImplThread

I like. Done.

&gt; 
&gt; I&apos;m not sure... this is just non-obvious to read.
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.cpp:266
&gt; &gt; +        renderSurface-&gt;damageTracker()-&gt;forceFullDamageNextUpdate();
&gt; 
&gt; As I understand it, this is going to be a method on the renderSurface saying &quot;resetDamageTracker,&quot; yes?

Absolutely. I&apos;ll sync with the other patch as it evolves.

&gt; 
&gt; &gt; Source/WebKit/chromium/src/WebViewImpl.h:116
&gt; &gt; +    virtual void didReceiveDamage();
&gt; 
&gt; Darin&apos;s feedback was to call this setNeedsRedraw. I think we&apos;re converging on setNeedsRedraw()

Done.

&gt; 
&gt; Wrt Piman&apos;s comment, I think I&apos;d prefer that to be another function. The problem otherwise is that the client code starts making assumptions about webwidget size AND you get people abusing this API for all sorts of things. I have to add a per-rect API soon anyway, so I&apos;ll take on the burden of the extra API or revising this one.

I agree. The WebWidget change is temporary (it will change in the next few weeks). We&apos;re introducing it just so that enabling scissoring isn&apos;t blocked.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549695</commentid>
    <comment_count>19</comment_count>
      <attachid>125414</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2012-02-05 20:27:43 -0800</bug_when>
    <thetext>Comment on attachment 125414
Patch

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

&gt; Source/WebKit/chromium/public/WebWidget.h:110
&gt; +    // Temporary method for the embedder to notify the WebWidget that the widget

nit: usually a good idea to reference a bug number in such comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550092</commentid>
    <comment_count>20</comment_count>
      <attachid>125666</attachid>
    <who name="Jonathan Backer">backer</who>
    <bug_when>2012-02-06 10:33:11 -0800</bug_when>
    <thetext>Created attachment 125666
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550093</commentid>
    <comment_count>21</comment_count>
    <who name="Jonathan Backer">backer</who>
    <bug_when>2012-02-06 10:33:59 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; (From update of attachment 125414 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=125414&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/chromium/public/WebWidget.h:110
&gt; &gt; +    // Temporary method for the embedder to notify the WebWidget that the widget
&gt; 
&gt; nit: usually a good idea to reference a bug number in such comments.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550600</commentid>
    <comment_count>22</comment_count>
      <attachid>125666</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-02-06 21:23:00 -0800</bug_when>
    <thetext>Comment on attachment 125666
Patch

Darin&apos;s out for a while, but this looks OK to me for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550962</commentid>
    <comment_count>23</comment_count>
      <attachid>125666</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-07 07:17:11 -0800</bug_when>
    <thetext>Comment on attachment 125666
Patch

Clearing flags on attachment: 125666

Committed r106935: &lt;http://trac.webkit.org/changeset/106935&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550964</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-07 07:17:16 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>551024</commentid>
    <comment_count>25</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2012-02-07 08:44:55 -0800</bug_when>
    <thetext>This was rolled out in https://bugs.webkit.org/show_bug.cgi?id=77994 . See there for details.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>551043</commentid>
    <comment_count>26</comment_count>
      <attachid>125856</attachid>
    <who name="Jonathan Backer">backer</who>
    <bug_when>2012-02-07 09:06:26 -0800</bug_when>
    <thetext>Created attachment 125856
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>551047</commentid>
    <comment_count>27</comment_count>
    <who name="Jonathan Backer">backer</who>
    <bug_when>2012-02-07 09:08:56 -0800</bug_when>
    <thetext>The CCLayerTreeHostImpl&apos;s sometimes do not have rootLayer(). Updated the CL to drop forceFullDamageNextUpdate in this case. This passes the webkit_unit_tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>551116</commentid>
    <comment_count>28</comment_count>
      <attachid>125856</attachid>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-02-07 10:41:35 -0800</bug_when>
    <thetext>Comment on attachment 125856
Patch

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

&gt; Source/WebCore/platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:203
&gt; +    CCLayerImpl* rootLayer = m_layerTreeHostImpl-&gt;rootLayer();
&gt; +    if (rootLayer) {
&gt; +        CCRenderSurface* renderSurface = m_layerTreeHostImpl-&gt;rootLayer()-&gt;renderSurface();
&gt; +        if (renderSurface)
&gt; +            renderSurface-&gt;damageTracker()-&gt;forceFullDamageNextUpdate();
&gt; +    }

Would it be reasonable to merge this code with the exact same impl thread code below?

&gt; Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.cpp:287
&gt; +    CCLayerImpl* rootLayer = m_layerTreeHostImpl-&gt;rootLayer();
&gt; +    if (rootLayer) {
&gt; +        CCRenderSurface* renderSurface = m_layerTreeHostImpl-&gt;rootLayer()-&gt;renderSurface();
&gt; +        if (renderSurface)
&gt; +            renderSurface-&gt;damageTracker()-&gt;forceFullDamageNextUpdate();
&gt; +    }

Comment above in reference to this code...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>551160</commentid>
    <comment_count>29</comment_count>
    <who name="Jonathan Backer">backer</who>
    <bug_when>2012-02-07 11:26:19 -0800</bug_when>
    <thetext>(In reply to comment #28)
&gt; (From update of attachment 125856 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=125856&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:203
&gt; &gt; +    CCLayerImpl* rootLayer = m_layerTreeHostImpl-&gt;rootLayer();
&gt; &gt; +    if (rootLayer) {
&gt; &gt; +        CCRenderSurface* renderSurface = m_layerTreeHostImpl-&gt;rootLayer()-&gt;renderSurface();
&gt; &gt; +        if (renderSurface)
&gt; &gt; +            renderSurface-&gt;damageTracker()-&gt;forceFullDamageNextUpdate();
&gt; &gt; +    }
&gt; 
&gt; Would it be reasonable to merge this code with the exact same impl thread code below?

The natural place to put this is in CCProxy, but I think that CCProxy is an interface class. A static helper function in CCProxy is a possibility, but I&apos;m not sure.

@jamesr: care to weigh in?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>551189</commentid>
    <comment_count>30</comment_count>
      <attachid>125856</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-02-07 11:44:42 -0800</bug_when>
    <thetext>Comment on attachment 125856
Patch

The proxy should just be for coordination between the two threads, not for logic that&apos;s specific to many proxy implementations. In this case I think the functionality really belongs on CCLayerTreeHostImpl and the proxy should just be a pass-through to that function on the correct thread.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552066</commentid>
    <comment_count>31</comment_count>
      <attachid>126069</attachid>
    <who name="Jonathan Backer">backer</who>
    <bug_when>2012-02-08 06:11:18 -0800</bug_when>
    <thetext>Created attachment 126069
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552067</commentid>
    <comment_count>32</comment_count>
    <who name="Jonathan Backer">backer</who>
    <bug_when>2012-02-08 06:12:54 -0800</bug_when>
    <thetext>(In reply to comment #30)
&gt; (From update of attachment 125856 [details])
&gt; The proxy should just be for coordination between the two threads, not for logic that&apos;s specific to many proxy implementations. In this case I think the functionality really belongs on CCLayerTreeHostImpl and the proxy should just be a pass-through to that function on the correct thread.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552452</commentid>
    <comment_count>33</comment_count>
      <attachid>126069</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-02-08 13:37:55 -0800</bug_when>
    <thetext>Comment on attachment 126069
Patch

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

R=me with one comment

&gt; Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:116
&gt; +    void setFullRootLayerDamage();

Please document this. From the function name I can&apos;t tell why this is different than calling setNeedsDisplay() on the root layer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553111</commentid>
    <comment_count>34</comment_count>
      <attachid>126295</attachid>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2012-02-09 06:32:05 -0800</bug_when>
    <thetext>Created attachment 126295
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553153</commentid>
    <comment_count>35</comment_count>
      <attachid>126295</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-09 07:40:49 -0800</bug_when>
    <thetext>Comment on attachment 126295
Patch for landing

Clearing flags on attachment: 126295

Committed r107243: &lt;http://trac.webkit.org/changeset/107243&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553154</commentid>
    <comment_count>36</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-09 07:40:55 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124949</attachid>
            <date>2012-02-01 07:34:01 -0800</date>
            <delta_ts>2012-02-03 10:40:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77555-20120201073400.patch</filename>
            <type>text/plain</type>
            <size>3006</size>
            <attacher name="Nat Duca">nduca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2MzY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDgyOGRlZWQ3OTg2ZGEwYzQ2YTExMmVlOWYxMjU4Mjc1NjUzOTkzZTAuLjU4NGYwYzNkMDA4YjZj
ZGE4MTM3ZmQwNzlhMGYxNjFjNDljMzlhYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMTItMDItMDEgIE5hdCBEdWNhICA8bmR1Y2FAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRkIGRpZFJlY2VpdmVEYW1hZ2UgdG8gV2ViV2lkZ2V0
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzU1NQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcHVibGlj
L1dlYldpZGdldC5oOgorICAgICAgICAoV2ViV2lkZ2V0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
V2lkZ2V0OjpkaWRSZWNlaXZlRGFtYWdlKToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6ZGlkUmVjZWl2ZURhbWFnZSk6CisgICAg
ICAgIChXZWJLaXQpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5oOgorICAgICAgICAoV2Vi
Vmlld0ltcGwpOgorCiAyMDEyLTAxLTI2ICBIYW5zIFdlbm5ib3JnICA8aGFuc0BjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgU3BlZWNoIElucHV0OiBtb3ZlIE1vY2tTcGVlY2hJbnB1dENsaWVudCBp
bnRvIENocm9taXVtIER1bXBSZW5kZXJUcmVlIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXaWRnZXQuaCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYldpZGdldC5oCmluZGV4IDU1NWRhZGNiMTUzYjRkZWI1ODhlZmZk
MGU0MmJiOGMwOGIwYmFkNTAuLmEwZTc4MGRhMjFhNWVjNzUxNzgxZWY1MDk4N2NkMmIzMWM2N2Yw
N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYldpZGdldC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYldpZGdldC5oCkBAIC0xMDcs
NiArMTA3LDExIEBAIHB1YmxpYzoKICAgICAvLyBhbmltYXRlIG9yIGxheW91dCBpbiB0aGlzIGNh
c2UuCiAgICAgdmlydHVhbCB2b2lkIGNvbXBvc2l0ZShib29sIGZpbmlzaCkgPSAwOwogCisgICAg
Ly8gVGVtcG9yYXJ5IG1ldGhvZCBmb3IgdGhlIGVtYmVkZGVyIHRvIG5vdGlmeSB0aGUgV2ViV2lk
Z2V0IHRoYXQgdGhlIHdpZGdldAorICAgIC8vIGhhcyB0YWtlbiBkYW1hZ2UsIGUuZy4gZHVlIHRv
IGEgd2luZG93IGV4cG9zZS4gVGhpcyBtZXRob2Qgd2lsbCBiZQorICAgIC8vIHJlbW92ZWQgd2hl
biB0aGUgV2ViV2lkZ2V0IGludmVyc2lvbiBwYXRjaCBsYW5kcy4KKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZURhbWFnZSgpIHsgfQorCiAgICAgLy8gQ2FsbGVkIHRvIGluZm9ybSB0aGUgV2Vi
V2lkZ2V0IG9mIGEgY2hhbmdlIGluIHRoZW1lLgogICAgIC8vIEltcGxlbWVudG9ycyB0aGF0IGNh
Y2hlIHJlbmRlcmVkIGNvcGllcyBvZiB3aWRnZXRzIG5lZWQgdG8gcmUtcmVuZGVyCiAgICAgLy8g
b24gcmVjZWl2aW5nIHRoaXMgbWVzc2FnZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
Vmlld0ltcGwuY3BwCmluZGV4IGQ1YThiYThiNmUzOWE0ZTQ4MTUyZWVhNDMyMDAzYWM3Y2UyMzI3
NmIuLjU5MjcyZTVjNjI4NTg2MDNlNTZiYTQ1YzUxY2JmMmRkNTRkOWVlOWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTEyNzEsNiArMTI3MSwxNCBA
QCB2b2lkIFdlYlZpZXdJbXBsOjpjb21wb3NpdGUoYm9vbCkKICNlbmRpZgogfQogCit2b2lkIFdl
YlZpZXdJbXBsOjpkaWRSZWNlaXZlRGFtYWdlKCkKK3sKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCisgICAgaWYgKG1fbGF5ZXJUcmVlSG9zdCAmJiBpc0FjY2VsZXJhdGVkQ29tcG9z
aXRpbmdBY3RpdmUoKSkKKyAgICAgICAgbV9sYXllclRyZWVIb3N0LT5zZXROZWVkc1JlZHJhdygp
OworI2VuZGlmCit9CisKIHZvaWQgV2ViVmlld0ltcGw6Omxvc2VDb21wb3NpdG9yQ29udGV4dChp
bnQgbnVtVGltZXMpCiB7CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKaW5kZXggMDJiYzVjOTIxZGEzNmM2ZWNk
YjdlMGUxMWFjZTliZjMxN2QyZDJmNS4uYmJlMTk5NDhlZjFlMGY0NTIxNzkwNzJhZWFiZWIzNWJl
NWZmM2Q1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0lt
cGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCkBAIC0x
MTMsNiArMTEzLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBwYWludChXZWJDYW52YXMq
LCBjb25zdCBXZWJSZWN0Jik7CiAgICAgdmlydHVhbCB2b2lkIHRoZW1lQ2hhbmdlZCgpOwogICAg
IHZpcnR1YWwgdm9pZCBjb21wb3NpdGUoYm9vbCBmaW5pc2gpOworICAgIHZpcnR1YWwgdm9pZCBk
aWRSZWNlaXZlRGFtYWdlKCk7CiAgICAgdmlydHVhbCBib29sIGhhbmRsZUlucHV0RXZlbnQoY29u
c3QgV2ViSW5wdXRFdmVudCYpOwogICAgIHZpcnR1YWwgdm9pZCBtb3VzZUNhcHR1cmVMb3N0KCk7
CiAgICAgdmlydHVhbCB2b2lkIHNldEZvY3VzKGJvb2wgZW5hYmxlKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125361</attachid>
            <date>2012-02-03 10:40:13 -0800</date>
            <delta_ts>2012-02-03 12:18:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77555-20120203134011.patch</filename>
            <type>text/plain</type>
            <size>12534</size>
            <attacher name="Jonathan Backer">backer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2NjQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmI4NWMxNWVjZWZmYTE3
NjVhZTdjOTk5YTRhZjEyNGQ2MzA4YmFhYy4uNmQyMzhjMmIzNzAzNWRkOGU1Y2NkYzA1Yjc1NzY3
YTJkNWI4MzU2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTAyLTAzICBKb25h
dGhhbiBCYWNrZXIgIDxiYWNrZXJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0g
QWRkIGRpZFJlY2VpdmVEYW1hZ2UgdG8gV2ViV2lkZ2V0CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzU1NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NEYW1hZ2VUcmFja2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDRGFtYWdlVHJhY2tlcjo6
Q0NEYW1hZ2VUcmFja2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkNDRGFtYWdlVHJhY2tlcjo6dXBk
YXRlRGFtYWdlUmVjdEZvck5leHRGcmFtZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NEYW1hZ2VUcmFja2VyLmg6CisgICAgICAgIChXZWJDb3JlOjpDQ0RhbWFn
ZVRyYWNrZXI6OmZvcmNlRnVsbERhbWFnZU5leHRVcGRhdGUpOgorICAgICAgICAoQ0NEYW1hZ2VU
cmFja2VyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVy
VHJlZUhvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0OjpkaWRSZWNl
aXZlRGFtYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oOgorICAgICAgICAoQ0NMYXllclRyZWVI
b3N0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Byb3h5Lmg6
CisgICAgICAgIChDQ1Byb3h5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDU2luZ2xl
VGhyZWFkUHJveHk6OmRpZFJlY2VpdmVEYW1hZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5o
OgorICAgICAgICAoQ0NTaW5nbGVUaHJlYWRQcm94eSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
Q1RocmVhZFByb3h5OjpkaWRSZWNlaXZlRGFtYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6Q0NUaHJlYWRQcm94eTo6ZGlkUmVjZWl2ZURhbWFnZU9uSW1wbFRocmVh
ZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94
eS5oOgorICAgICAgICAoQ0NUaHJlYWRQcm94eSk6CisKIDIwMTItMDEtMjcgIEFsZXhhbmRlciBQ
YXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KIAogICAgICAgICBJbXBsZW1lbnQgdG91Y2gg
ZXZlbnQgZW11bGF0aW9uIGluIHRoZSBXZWJDb3JlIGxheWVyCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCmluZGV4IDZiMmY2M2QzODM5NThhZmFiZjBmZTk1MTgwODI4Mjc2ZjIyNmViYTYuLjQ2MmVm
OTQ3ZjY0YmIyOGJhZDdlZmIzY2I5NmVlNzU3Yjk1NTVkMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTItMDItMDMgIEpvbmF0aGFuIEJhY2tlciAgPGJh
Y2tlckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBBZGQgZGlkUmVjZWl2ZURh
bWFnZSB0byBXZWJXaWRnZXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTc3NTU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBwdWJsaWMvV2ViV2lkZ2V0Lmg6CisgICAgICAgIChXZWJXaWRnZXQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJXaWRnZXQ6OmRpZFJlY2VpdmVEYW1hZ2UpOgorICAgICAgICAqIHNy
Yy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpkaWRSZWNl
aXZlRGFtYWdlKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBs
Lmg6CisgICAgICAgIChXZWJWaWV3SW1wbCk6CisKIDIwMTItMDItMDIgIFRvbW15IFdpZGVuZmx5
Y2h0ICA8dG9tbXl3QGdvb2dsZS5jb20+CiAKICAgICAgICAgW2Nocm9taXVtXSBNZWRpYVN0cmVh
bSBBUEk6IEFkZGluZyB0aGUgZW1iZWRkaW5nIGNvZGUgZm9yIE1lZGlhU3RyZWFtQ2VudGVyCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q0RhbWFnZVRyYWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NEYW1hZ2VUcmFja2VyLmNwcAppbmRleCAxNzIyNmFhODIwOTEwMTkzOThhZWRj
MmJjMzAwZDc5MTE4ZjNmYTZkLi5jYTg4ODdjMTVjMjZjM2VkZGE3NjFlM2ZhZWI0MTEyODY5MmU0
MzY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ0RhbWFnZVRyYWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDRGFtYWdlVHJhY2tlci5jcHAKQEAgLTQ2LDYgKzQ2LDcgQEAg
UGFzc093blB0cjxDQ0RhbWFnZVRyYWNrZXI+IENDRGFtYWdlVHJhY2tlcjo6Y3JlYXRlKCkKIH0K
IAogQ0NEYW1hZ2VUcmFja2VyOjpDQ0RhbWFnZVRyYWNrZXIoKQorICAgIDogbV9mb3JjZUZ1bGxE
YW1hZ2VOZXh0VXBkYXRlKGZhbHNlKQogewogICAgIG1fY3VycmVudFJlY3RIaXN0b3J5ID0gYWRv
cHRQdHIobmV3IFJlY3RNYXApOwogICAgIG1fbmV4dFJlY3RIaXN0b3J5ID0gYWRvcHRQdHIobmV3
IFJlY3RNYXApOwpAQCAtMTI4LDYgKzEyOSwxMiBAQCB2b2lkIENDRGFtYWdlVHJhY2tlcjo6dXBk
YXRlRGFtYWdlUmVjdEZvck5leHRGcmFtZShjb25zdCBWZWN0b3I8UmVmUHRyPENDTGF5ZXJJbQog
ICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgaWYgKG1fZm9yY2VGdWxsRGFtYWdlTmV4dFVw
ZGF0ZSkgeworICAgICAgICBtX2N1cnJlbnREYW1hZ2VSZWN0ID0gRmxvYXRSZWN0KGxheWVyLT50
YXJnZXRSZW5kZXJTdXJmYWNlKCktPmNvbnRlbnRSZWN0KCkpOworICAgICAgICBtX2ZvcmNlRnVs
bERhbWFnZU5leHRVcGRhdGUgPSBmYWxzZTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAg
IEZsb2F0UmVjdCBkYW1hZ2VGcm9tQWN0aXZlTGF5ZXJzID0gY29tcHV0ZURhbWFnZUZyb21BY3Rp
dmVMYXllcnMobGF5ZXJMaXN0LCB0YXJnZXRTdXJmYWNlTGF5ZXJJRCk7CiAgICAgRmxvYXRSZWN0
IGRhbWFnZUZyb21TdXJmYWNlTWFzayA9IGNvbXB1dGVEYW1hZ2VGcm9tU3VyZmFjZU1hc2sodGFy
Z2V0U3VyZmFjZU1hc2tMYXllcik7CiAgICAgRmxvYXRSZWN0IGRhbWFnZUZyb21MZWZ0b3ZlclJl
Y3RzID0gY29tcHV0ZURhbWFnZUZyb21MZWZ0b3ZlclJlY3RzKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0RhbWFnZVRyYWNrZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRGFtYWdl
VHJhY2tlci5oCmluZGV4IDQyZWI0NDhjMDJjMmQwMjEzNGZkNDVjZWFmYTllMDYyYmUwZDcyZmUu
LmFjMWEwY2EyMGM4ZTRhYjIyMTZjOTMxYzYyZGRmZTg4OGNjNjk5NTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRGFtYWdlVHJhY2tl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
RGFtYWdlVHJhY2tlci5oCkBAIC00Myw2ICs0Myw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFz
c093blB0cjxDQ0RhbWFnZVRyYWNrZXI+IGNyZWF0ZSgpOwogICAgIH5DQ0RhbWFnZVRyYWNrZXIo
KTsKIAorICAgIHZvaWQgZm9yY2VGdWxsRGFtYWdlTmV4dFVwZGF0ZSgpIHsgbV9mb3JjZUZ1bGxE
YW1hZ2VOZXh0VXBkYXRlID0gdHJ1ZTsgfQogICAgIHZvaWQgdXBkYXRlRGFtYWdlUmVjdEZvck5l
eHRGcmFtZShjb25zdCBWZWN0b3I8UmVmUHRyPENDTGF5ZXJJbXBsPiA+JiBsYXllckxpc3QsIGlu
dCB0YXJnZXRTdXJmYWNlTGF5ZXJJRCwgQ0NMYXllckltcGwqIHRhcmdldFN1cmZhY2VNYXNrTGF5
ZXIpOwogICAgIGNvbnN0IEZsb2F0UmVjdCYgY3VycmVudERhbWFnZVJlY3QoKSB7IHJldHVybiBt
X2N1cnJlbnREYW1hZ2VSZWN0OyB9CiAKQEAgLTY4LDYgKzY5LDcgQEAgcHJpdmF0ZToKICAgICBP
d25QdHI8UmVjdE1hcD4gbV9uZXh0UmVjdEhpc3Rvcnk7CiAKICAgICBGbG9hdFJlY3QgbV9jdXJy
ZW50RGFtYWdlUmVjdDsKKyAgICBib29sIG1fZm9yY2VGdWxsRGFtYWdlTmV4dFVwZGF0ZTsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3Bw
CmluZGV4IDRmZjg0MzRiMjAwYzkyZDQ4YTA4YmY5MWMxNGIyN2Y4MjE5ZGRhYjYuLjQ5NDJhZDBl
YTM0MjRmYzAzMjc4N2U5Mzg2NTU5N2UxNjQzZmY0MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRy
ZWVIb3N0LmNwcApAQCAtNTkzLDQgKzU5Myw5IEBAIHZvaWQgQ0NMYXllclRyZWVIb3N0OjpkZWxl
dGVUZXh0dXJlQWZ0ZXJDb21taXQoUGFzc093blB0cjxNYW5hZ2VkVGV4dHVyZT4gdGV4dHVyCiAg
ICAgbV9kZWxldGVUZXh0dXJlQWZ0ZXJDb21taXRMaXN0LmFwcGVuZCh0ZXh0dXJlKTsKIH0KIAor
dm9pZCBDQ0xheWVyVHJlZUhvc3Q6OmRpZFJlY2VpdmVEYW1hZ2UoKQoreworICAgIG1fcHJveHkt
PmRpZFJlY2VpdmVEYW1hZ2UoKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaApp
bmRleCAzYzM5Njg1YjdkNGU5MDEzNjRlNjU2ODI0ZDZiNGZkY2E1Njk2NDZhLi4xOTQ5YjI5MDY2
ZTc0NzdkYjhjOTlkZGMwNDk4MzdiM2E4YzVhMzMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhv
c3QuaApAQCAtMTkzLDYgKzE5Myw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZGVsZXRlVGV4dHVy
ZUFmdGVyQ29tbWl0KFBhc3NPd25QdHI8TWFuYWdlZFRleHR1cmU+KTsKIAorICAgIHZvaWQgZGlk
UmVjZWl2ZURhbWFnZSgpOworCiBwcm90ZWN0ZWQ6CiAgICAgQ0NMYXllclRyZWVIb3N0KENDTGF5
ZXJUcmVlSG9zdENsaWVudCosIGNvbnN0IENDU2V0dGluZ3MmKTsKICAgICBib29sIGluaXRpYWxp
emUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDUHJveHkuaAppbmRleCA3YzgxYjZhMGMwYTE3NDc0MzMzMDQ1ZjcxZTk5ODJjMGRi
YWY5YTllLi5iNGU1MDVjNTZiY2QwN2ZjY2FlNzVhMmE5NzljZGZjOWJjNjBiMDAxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Byb3h5
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NQ
cm94eS5oCkBAIC05NSw2ICs5NSw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBzZXRDdXJy
ZW50VGhyZWFkSXNJbXBsVGhyZWFkKGJvb2wpOwogI2VuZGlmCiAKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZURhbWFnZSgpID0gMDsKKwogcHJvdGVjdGVkOgogICAgIENDUHJveHkoKTsKICAg
ICBmcmllbmQgY2xhc3MgRGVidWdTY29wZWRTZXRJbXBsVGhyZWFkOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q1NpbmdsZVRocmVhZFByb3h5LmNwcAppbmRleCA3MmJlYzJhNzE2NjRhZjQzY2Q2NGQwMTRkMjhi
ODQyNjUwOTViMjAzLi5iZDkyYjk0MTQwNGYxNDg0ZWM1NWY5YTdjZjMxNDM3N2Y0ZGVmYjYwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q1NpbmdsZVRocmVhZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmNwcApAQCAtMjksNiArMjksNyBA
QAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCiAjaW5jbHVkZSAiTGF5ZXJSZW5kZXJl
ckNocm9taXVtLmgiCiAjaW5jbHVkZSAiVHJhY2VFdmVudC5oIgorI2luY2x1ZGUgImNjL0NDRGFt
YWdlVHJhY2tlci5oIgogI2luY2x1ZGUgImNjL0NDTGF5ZXJUcmVlSG9zdC5oIgogI2luY2x1ZGUg
ImNjL0NDVGV4dHVyZVVwZGF0ZXIuaCIKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KQEAg
LTIyMCw2ICsyMjEsMTEgQEAgdm9pZCBDQ1NpbmdsZVRocmVhZFByb3h5Ojpjb21wb3NpdGVJbW1l
ZGlhdGVseSgpCiAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdEltcGwtPnN3YXBCdWZmZXJzKCk7CiB9
CiAKK3ZvaWQgQ0NTaW5nbGVUaHJlYWRQcm94eTo6ZGlkUmVjZWl2ZURhbWFnZSgpCit7CisgICAg
bV9sYXllclRyZWVIb3N0SW1wbC0+cm9vdExheWVyKCktPnJlbmRlclN1cmZhY2UoKS0+ZGFtYWdl
VHJhY2tlcigpLT5mb3JjZUZ1bGxEYW1hZ2VOZXh0VXBkYXRlKCk7Cit9CisKIGJvb2wgQ0NTaW5n
bGVUaHJlYWRQcm94eTo6cmVjcmVhdGVDb250ZXh0SWZOZWVkZWQoKQogewogICAgIEFTU0VSVChD
Q1Byb3h5Ojppc01haW5UaHJlYWQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5
LmgKaW5kZXggNGZhYTIyOTk5MTJhZWM5YzRlNmFiNGJhNzAyN2Q4MWM4MDZkNDVlZS4uMWRlZWQ0
ZjY1ZTkzMGI1YWQ4ZDAyZjk3YmQ0ZjE3OGRiNzk4NjdjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2lu
Z2xlVGhyZWFkUHJveHkuaApAQCAtNjQsNiArNjQsOCBAQCBwdWJsaWM6CiAgICAgLy8gQ2FsbGVk
IGJ5IHRoZSBsZWdhY3kgcGF0aCB3aGVyZSBSZW5kZXJXaWRnZXQgZG9lcyB0aGUgc2NoZWR1bGlu
Zy4KICAgICB2b2lkIGNvbXBvc2l0ZUltbWVkaWF0ZWx5KCk7CiAKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZURhbWFnZSgpOworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IENDU2luZ2xlVGhy
ZWFkUHJveHkoQ0NMYXllclRyZWVIb3N0Kik7CiAgICAgYm9vbCByZWNyZWF0ZUNvbnRleHRJZk5l
ZWRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcAppbmRleCA1ZTZhOGY4NjI2MmRmNjI0
NDk0MmU1YjQyYjQyZWJhYTg4ODMzYTJkLi5hZjgxOGFkMzAxYTJhNjY4NDc5NmE5ZmVjNTE0YTdi
OTAwNWNiMDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcApAQCAtMjgsNiArMjgsNyBA
QAogCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKICNpbmNsdWRlICJUcmFjZUV2ZW50
LmgiCisjaW5jbHVkZSAiY2MvQ0NEYW1hZ2VUcmFja2VyLmgiCiAjaW5jbHVkZSAiY2MvQ0NEZWxh
eUJhc2VkVGltZVNvdXJjZS5oIgogI2luY2x1ZGUgImNjL0NDRnJhbWVSYXRlQ29udHJvbGxlci5o
IgogI2luY2x1ZGUgImNjL0NDSW5wdXRIYW5kbGVyLmgiCkBAIC01NzQsNCArNTc1LDE0IEBAIGJv
b2wgQ0NUaHJlYWRQcm94eTo6cGFydGlhbFRleHR1cmVVcGRhdGVDYXBhYmlsaXR5KCkgY29uc3QK
ICAgICByZXR1cm4gIXRleHR1cmVVcGRhdGVzUGVyRnJhbWU7CiB9CiAKK3ZvaWQgQ0NUaHJlYWRQ
cm94eTo6ZGlkUmVjZWl2ZURhbWFnZSgpCit7CisgICAgQ0NQcm94eTo6aW1wbFRocmVhZCgpLT5w
b3N0VGFzayhjcmVhdGVDQ1RocmVhZFRhc2sodGhpcywgJkNDVGhyZWFkUHJveHk6OmRpZFJlY2Vp
dmVEYW1hZ2VPbkltcGxUaHJlYWQpKTsKK30KKwordm9pZCBDQ1RocmVhZFByb3h5OjpkaWRSZWNl
aXZlRGFtYWdlT25JbXBsVGhyZWFkKCkKK3sKKyAgICBtX2xheWVyVHJlZUhvc3RJbXBsLT5yb290
TGF5ZXIoKS0+cmVuZGVyU3VyZmFjZSgpLT5kYW1hZ2VUcmFja2VyKCktPmZvcmNlRnVsbERhbWFn
ZU5leHRVcGRhdGUoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94
eS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJl
YWRQcm94eS5oCmluZGV4IGExMWI1Mjc4NTk5MzFjZmI5OGY4NzI0YTUxMjQzYTA5YjRlY2MzYjku
LjdhODY4ODg5NmZmYjY5ZjFhYmEzODdiZTQyYjkxOWM1ODhhMjM2ZTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Ro
cmVhZFByb3h5LmgKQEAgLTYzLDYgKzYzLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBz
dGFydCgpOwogICAgIHZpcnR1YWwgdm9pZCBzdG9wKCk7CiAgICAgdmlydHVhbCBib29sIHBhcnRp
YWxUZXh0dXJlVXBkYXRlQ2FwYWJpbGl0eSgpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlRGFtYWdlKCk7CiAKICAgICAvLyBDQ0xheWVyVHJlZUhvc3RJbXBsQ2xpZW50IGltcGxl
bWVudGF0aW9uCiAgICAgdmlydHVhbCB2b2lkIG9uU3dhcEJ1ZmZlcnNDb21wbGV0ZU9uSW1wbFRo
cmVhZCgpOwpAQCAtMTAxLDYgKzEwMiw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBpbml0aWFsaXpl
TGF5ZXJSZW5kZXJlck9uSW1wbFRocmVhZChHcmFwaGljc0NvbnRleHQzRCosIENDQ29tcGxldGlv
bkV2ZW50KiwgYm9vbCogaW5pdGlhbGl6ZVN1Y2NlZWRlZCwgTGF5ZXJSZW5kZXJlckNhcGFiaWxp
dGllcyosIGludCogY29tcG9zaXRvcklkZW50aWZpZXIpOwogICAgIHZvaWQgc2V0VmlzaWJsZU9u
SW1wbFRocmVhZChDQ0NvbXBsZXRpb25FdmVudCosIGJvb2wgdmlzaWJsZSk7CiAgICAgdm9pZCBs
YXllclRyZWVIb3N0Q2xvc2VkT25JbXBsVGhyZWFkKENDQ29tcGxldGlvbkV2ZW50Kik7CisgICAg
dm9pZCBkaWRSZWNlaXZlRGFtYWdlT25JbXBsVGhyZWFkKCk7CiAKICAgICAvLyBBY2Nlc3NlZCBv
biBtYWluIHRocmVhZCBvbmx5LgogICAgIGJvb2wgbV9hbmltYXRlUmVxdWVzdGVkOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0LmggYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXaWRnZXQuaAppbmRleCBjYTE2MGEyNmUwMGI3MDI0
OWNiYjU1MTczM2NlMTQ0MTc2ZTZmYWVjLi42ZTBkMDJlMzNmZDM1MTRhNjFiMTNmMjE5ZWU1NGE2
MzFlMTBlY2M4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJX
aWRnZXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXaWRnZXQuaApA
QCAtMTA3LDYgKzEwNywxMSBAQCBwdWJsaWM6CiAgICAgLy8gYW5pbWF0ZSBvciBsYXlvdXQgaW4g
dGhpcyBjYXNlLgogICAgIHZpcnR1YWwgdm9pZCBjb21wb3NpdGUoYm9vbCBmaW5pc2gpID0gMDsK
IAorICAgIC8vIFRlbXBvcmFyeSBtZXRob2QgZm9yIHRoZSBlbWJlZGRlciB0byBub3RpZnkgdGhl
IFdlYldpZGdldCB0aGF0IHRoZSB3aWRnZXQKKyAgICAvLyBoYXMgdGFrZW4gZGFtYWdlLCBlLmcu
IGR1ZSB0byBhIHdpbmRvdyBleHBvc2UuIFRoaXMgbWV0aG9kIHdpbGwgYmUKKyAgICAvLyByZW1v
dmVkIHdoZW4gdGhlIFdlYldpZGdldCBpbnZlcnNpb24gcGF0Y2ggbGFuZHMuCisgICAgdmlydHVh
bCB2b2lkIGRpZFJlY2VpdmVEYW1hZ2UoKSB7IH0KKwogICAgIC8vIENhbGxlZCB0byBpbmZvcm0g
dGhlIFdlYldpZGdldCBvZiBhIGNoYW5nZSBpbiB0aGVtZS4KICAgICAvLyBJbXBsZW1lbnRvcnMg
dGhhdCBjYWNoZSByZW5kZXJlZCBjb3BpZXMgb2Ygd2lkZ2V0cyBuZWVkIHRvIHJlLXJlbmRlcgog
ICAgIC8vIG9uIHJlY2VpdmluZyB0aGlzIG1lc3NhZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCA4NGRlNzcyOWNjZTVhZDkzNmI1MDY2ZDc0MWQ3MWZm
Y2VlNTEwODg2Li5hOTNlN2M5ODE1NzEzNGQyYzg2YWU3ZjUyNjE1YTMwZDViYWZmMzk5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC0xMjcxLDYgKzEy
NzEsMTQgQEAgdm9pZCBXZWJWaWV3SW1wbDo6Y29tcG9zaXRlKGJvb2wpCiAjZW5kaWYKIH0KIAor
dm9pZCBXZWJWaWV3SW1wbDo6ZGlkUmVjZWl2ZURhbWFnZSgpCit7CisjaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQorICAgIGlmIChtX2xheWVyVHJlZUhvc3QgJiYgaXNBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nQWN0aXZlKCkpCisgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+ZGlkUmVjZWl2
ZURhbWFnZSgpOworI2VuZGlmCit9CisKIHZvaWQgV2ViVmlld0ltcGw6Omxvc2VDb21wb3NpdG9y
Q29udGV4dChpbnQgbnVtVGltZXMpCiB7CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKaW5kZXggYTAzOWEwOWNl
Yjg3YzIwZTNkYTg0MzMzMWYxYmVhYWVkM2Y0ZjEzMS4uOTM4NGYzZTRkMWM5NjM4ZmZmZGU1Njc3
ZDc0YWY5OGZkZGFhZGUwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViVmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1w
bC5oCkBAIC0xMTMsNiArMTEzLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBwYWludChX
ZWJDYW52YXMqLCBjb25zdCBXZWJSZWN0Jik7CiAgICAgdmlydHVhbCB2b2lkIHRoZW1lQ2hhbmdl
ZCgpOwogICAgIHZpcnR1YWwgdm9pZCBjb21wb3NpdGUoYm9vbCBmaW5pc2gpOworICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNlaXZlRGFtYWdlKCk7CiAgICAgdmlydHVhbCBib29sIGhhbmRsZUlucHV0
RXZlbnQoY29uc3QgV2ViSW5wdXRFdmVudCYpOwogICAgIHZpcnR1YWwgdm9pZCBtb3VzZUNhcHR1
cmVMb3N0KCk7CiAgICAgdmlydHVhbCB2b2lkIHNldEZvY3VzKGJvb2wgZW5hYmxlKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125382</attachid>
            <date>2012-02-03 12:18:23 -0800</date>
            <delta_ts>2012-02-03 14:26:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77555-20120203151822.patch</filename>
            <type>text/plain</type>
            <size>8259</size>
            <attacher name="Jonathan Backer">backer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2NjQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmI4NWMxNWVjZWZmYTE3
NjVhZTdjOTk5YTRhZjEyNGQ2MzA4YmFhYy4uZGUyZDQzYzhmYzM0NGQwZjRkMDUwMmExMzgxNTQx
NWQ5NTNmMzM0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEyLTAyLTAzICBKb25h
dGhhbiBCYWNrZXIgIDxiYWNrZXJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0g
QWRkIGRpZFJlY2VpdmVEYW1hZ2UgdG8gV2ViV2lkZ2V0CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzU1NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NMYXllclRyZWVIb3N0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdDo6
c2V0TmVlZHNSZWRyYXcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDU2luZ2xlVGhyZWFkUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NTaW5nbGVUaHJl
YWRQcm94eTo6c2V0TmVlZHNSZWRyYXcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NUaHJlYWRQ
cm94eTo6c2V0TmVlZHNSZWRyYXcpOgorICAgICAgICAoV2ViQ29yZTo6Q0NUaHJlYWRQcm94eTo6
cGVyZm9ybVNldE5lZWRzUmVkcmF3T25JbXBsVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuaDoK
KyAgICAgICAgKENDVGhyZWFkUHJveHkpOgorCiAyMDEyLTAxLTI3ICBBbGV4YW5kZXIgUGF2bG92
ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgSW1wbGVtZW50IHRvdWNoIGV2ZW50
IGVtdWxhdGlvbiBpbiB0aGUgV2ViQ29yZSBsYXllcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpp
bmRleCA2YjJmNjNkMzgzOTU4YWZhYmYwZmU5NTE4MDgyODI3NmYyMjZlYmE2Li40NjJlZjk0N2Y2
NGJiMjhiYWQ3ZWZiM2NiOTZlZTc1N2I5NTU1ZDA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTAyLTAzICBKb25hdGhhbiBCYWNrZXIgIDxiYWNrZXJA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRkIGRpZFJlY2VpdmVEYW1hZ2Ug
dG8gV2ViV2lkZ2V0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03NzU1NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogcHVibGljL1dlYldpZGdldC5oOgorICAgICAgICAoV2ViV2lkZ2V0KToKKyAgICAgICAg
KFdlYktpdDo6V2ViV2lkZ2V0OjpkaWRSZWNlaXZlRGFtYWdlKToKKyAgICAgICAgKiBzcmMvV2Vi
Vmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6ZGlkUmVjZWl2ZURh
bWFnZSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5oOgor
ICAgICAgICAoV2ViVmlld0ltcGwpOgorCiAyMDEyLTAyLTAyICBUb21teSBXaWRlbmZseWNodCAg
PHRvbW15d0Bnb29nbGUuY29tPgogCiAgICAgICAgIFtjaHJvbWl1bV0gTWVkaWFTdHJlYW0gQVBJ
OiBBZGRpbmcgdGhlIGVtYmVkZGluZyBjb2RlIGZvciBNZWRpYVN0cmVhbUNlbnRlcgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXll
clRyZWVIb3N0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAKaW5kZXggNGZmODQzNGIyMDBjOTJkNDhhMDhiZjkxYzE0
YjI3ZjgyMTlkZGFiNi4uYzM1NzEzMWVhYTI5Mzk5NTgzMWJjYjYxOTAzMDE0MTA2MDEzNjVjZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NMYXllclRyZWVIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwCkBAIC0yMzAsOSArMjMwLDggQEAgdm9p
ZCBDQ0xheWVyVHJlZUhvc3Q6OnNldE5lZWRzQ29tbWl0KCkKIAogdm9pZCBDQ0xheWVyVHJlZUhv
c3Q6OnNldE5lZWRzUmVkcmF3KCkKIHsKLSAgICBpZiAoQ0NUaHJlYWRQcm94eTo6aW1wbFRocmVh
ZCgpKQotICAgICAgICBtX3Byb3h5LT5zZXROZWVkc1JlZHJhdygpOwotICAgIGVsc2UKKyAgICBt
X3Byb3h5LT5zZXROZWVkc1JlZHJhdygpOworICAgIGlmICghQ0NUaHJlYWRQcm94eTo6aW1wbFRo
cmVhZCgpKQogICAgICAgICBtX2NsaWVudC0+c2NoZWR1bGVDb21wb3NpdGUoKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NT
aW5nbGVUaHJlYWRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmNwcAppbmRleCA3MmJlYzJhNzE2NjRhZjQz
Y2Q2NGQwMTRkMjhiODQyNjUwOTViMjAzLi45Mjk5MGQwZWU1MjgyZTU1ZDU1MTBlODE1MzAzZTg1
ZDE5MzdlMzhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmNwcApAQCAt
MjksNiArMjksNyBAQAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCiAjaW5jbHVkZSAi
TGF5ZXJSZW5kZXJlckNocm9taXVtLmgiCiAjaW5jbHVkZSAiVHJhY2VFdmVudC5oIgorI2luY2x1
ZGUgImNjL0NDRGFtYWdlVHJhY2tlci5oIgogI2luY2x1ZGUgImNjL0NDTGF5ZXJUcmVlSG9zdC5o
IgogI2luY2x1ZGUgImNjL0NDVGV4dHVyZVVwZGF0ZXIuaCIKICNpbmNsdWRlIDx3dGYvQ3VycmVu
dFRpbWUuaD4KQEAgLTE4MCw2ICsxODEsMTAgQEAgdm9pZCBDQ1NpbmdsZVRocmVhZFByb3h5Ojpz
ZXROZWVkc0NvbW1pdCgpCiAKIHZvaWQgQ0NTaW5nbGVUaHJlYWRQcm94eTo6c2V0TmVlZHNSZWRy
YXcoKQogeworICAgIENDUmVuZGVyU3VyZmFjZSogcmVuZGVyU3VyZmFjZSA9IG1fbGF5ZXJUcmVl
SG9zdEltcGwtPnJvb3RMYXllcigpLT5yZW5kZXJTdXJmYWNlKCk7CisgICAgaWYgKHJlbmRlclN1
cmZhY2UpCisgICAgICAgIHJlbmRlclN1cmZhY2UtPmRhbWFnZVRyYWNrZXIoKS0+Zm9yY2VGdWxs
RGFtYWdlTmV4dFVwZGF0ZSgpOworCiAgICAgLy8gRklYTUU6IE9uY2Ugd2UgbW92ZSByZW5kZXJf
d2lkZ2V0IHNjaGVkdWxpbmcgaW50byB0aGlzIGNsYXNzLCB3ZSBjYW4KICAgICAvLyB0cmVhdCBy
ZWRyYXcgcmVxdWVzdHMgbW9yZSBlZmZpY2llbnRseSB0aGFuIGNvbW1pdEFuZFJlZHJhdyByZXF1
ZXN0cy4KICAgICBzZXROZWVkc0NvbW1pdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcApp
bmRleCA1ZTZhOGY4NjI2MmRmNjI0NDk0MmU1YjQyYjQyZWJhYTg4ODMzYTJkLi4xZTk0MjI1YTQ0
NjY1YWFlZGQ2NDUxMTk4ZWUwNzMxYmQ4OTdlZTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5
LmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIK
ICNpbmNsdWRlICJUcmFjZUV2ZW50LmgiCisjaW5jbHVkZSAiY2MvQ0NEYW1hZ2VUcmFja2VyLmgi
CiAjaW5jbHVkZSAiY2MvQ0NEZWxheUJhc2VkVGltZVNvdXJjZS5oIgogI2luY2x1ZGUgImNjL0ND
RnJhbWVSYXRlQ29udHJvbGxlci5oIgogI2luY2x1ZGUgImNjL0NDSW5wdXRIYW5kbGVyLmgiCkBA
IC0yMzEsNyArMjMyLDcgQEAgdm9pZCBDQ1RocmVhZFByb3h5OjpzZXROZWVkc1JlZHJhdygpCiB7
CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBUUkFDRV9FVkVOVCgiQ0NUaHJlYWRQ
cm94eTo6c2V0TmVlZHNSZWRyYXciLCB0aGlzLCAwKTsKLSAgICBDQ1Byb3h5OjppbXBsVGhyZWFk
KCktPnBvc3RUYXNrKGNyZWF0ZUNDVGhyZWFkVGFzayh0aGlzLCAmQ0NUaHJlYWRQcm94eTo6c2V0
TmVlZHNSZWRyYXdPbkltcGxUaHJlYWQpKTsKKyAgICBDQ1Byb3h5OjppbXBsVGhyZWFkKCktPnBv
c3RUYXNrKGNyZWF0ZUNDVGhyZWFkVGFzayh0aGlzLCAmQ0NUaHJlYWRQcm94eTo6cGVyZm9ybVNl
dE5lZWRzUmVkcmF3T25JbXBsVGhyZWFkKSk7CiB9CiAKIHZvaWQgQ0NUaHJlYWRQcm94eTo6c2V0
VmlzaWJsZShib29sIHZpc2libGUpCkBAIC0yNTcsNiArMjU4LDE1IEBAIHZvaWQgQ0NUaHJlYWRQ
cm94eTo6c2V0VmlzaWJsZU9uSW1wbFRocmVhZChDQ0NvbXBsZXRpb25FdmVudCogY29tcGxldGlv
biwgYm9vbCB2CiAgICAgY29tcGxldGlvbi0+c2lnbmFsKCk7CiB9CiAKK3ZvaWQgQ0NUaHJlYWRQ
cm94eTo6cGVyZm9ybVNldE5lZWRzUmVkcmF3T25JbXBsVGhyZWFkKCkKK3sKKyAgICBBU1NFUlQo
aXNJbXBsVGhyZWFkKCkpOworICAgIENDUmVuZGVyU3VyZmFjZSogcmVuZGVyU3VyZmFjZSA9IG1f
bGF5ZXJUcmVlSG9zdEltcGwtPnJvb3RMYXllcigpLT5yZW5kZXJTdXJmYWNlKCk7CisgICAgaWYg
KHJlbmRlclN1cmZhY2UpCisgICAgICAgIHJlbmRlclN1cmZhY2UtPmRhbWFnZVRyYWNrZXIoKS0+
Zm9yY2VGdWxsRGFtYWdlTmV4dFVwZGF0ZSgpOworICAgIHNldE5lZWRzUmVkcmF3T25JbXBsVGhy
ZWFkKCk7Cit9CisKIHZvaWQgQ0NUaHJlYWRQcm94eTo6c2V0TmVlZHNSZWRyYXdPbkltcGxUaHJl
YWQoKQogewogICAgIEFTU0VSVChpc0ltcGxUaHJlYWQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5
LmgKaW5kZXggYTExYjUyNzg1OTkzMWNmYjk4Zjg3MjRhNTEyNDNhMDliNGVjYzNiOS4uOTNlZTc4
MjEzMTA1NWI1MGU3OGVkYzQ2MmQzMDljNWNmYmM0Yjc1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJv
eHkuaApAQCAtMTAxLDYgKzEwMSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBpbml0aWFsaXplTGF5
ZXJSZW5kZXJlck9uSW1wbFRocmVhZChHcmFwaGljc0NvbnRleHQzRCosIENDQ29tcGxldGlvbkV2
ZW50KiwgYm9vbCogaW5pdGlhbGl6ZVN1Y2NlZWRlZCwgTGF5ZXJSZW5kZXJlckNhcGFiaWxpdGll
cyosIGludCogY29tcG9zaXRvcklkZW50aWZpZXIpOwogICAgIHZvaWQgc2V0VmlzaWJsZU9uSW1w
bFRocmVhZChDQ0NvbXBsZXRpb25FdmVudCosIGJvb2wgdmlzaWJsZSk7CiAgICAgdm9pZCBsYXll
clRyZWVIb3N0Q2xvc2VkT25JbXBsVGhyZWFkKENDQ29tcGxldGlvbkV2ZW50Kik7CisgICAgdm9p
ZCBwZXJmb3JtU2V0TmVlZHNSZWRyYXdPbkltcGxUaHJlYWQoKTsKIAogICAgIC8vIEFjY2Vzc2Vk
IG9uIG1haW4gdGhyZWFkIG9ubHkuCiAgICAgYm9vbCBtX2FuaW1hdGVSZXF1ZXN0ZWQ7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXaWRnZXQuaCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYldpZGdldC5oCmluZGV4IGNhMTYwYTI2ZTAwYjcw
MjQ5Y2JiNTUxNzMzY2UxNDQxNzZlNmZhZWMuLjZlMGQwMmUzM2ZkMzUxNGE2MWIxM2YyMTllZTU0
YTYzMWUxMGVjYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YldpZGdldC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYldpZGdldC5o
CkBAIC0xMDcsNiArMTA3LDExIEBAIHB1YmxpYzoKICAgICAvLyBhbmltYXRlIG9yIGxheW91dCBp
biB0aGlzIGNhc2UuCiAgICAgdmlydHVhbCB2b2lkIGNvbXBvc2l0ZShib29sIGZpbmlzaCkgPSAw
OwogCisgICAgLy8gVGVtcG9yYXJ5IG1ldGhvZCBmb3IgdGhlIGVtYmVkZGVyIHRvIG5vdGlmeSB0
aGUgV2ViV2lkZ2V0IHRoYXQgdGhlIHdpZGdldAorICAgIC8vIGhhcyB0YWtlbiBkYW1hZ2UsIGUu
Zy4gZHVlIHRvIGEgd2luZG93IGV4cG9zZS4gVGhpcyBtZXRob2Qgd2lsbCBiZQorICAgIC8vIHJl
bW92ZWQgd2hlbiB0aGUgV2ViV2lkZ2V0IGludmVyc2lvbiBwYXRjaCBsYW5kcy4KKyAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVjZWl2ZURhbWFnZSgpIHsgfQorCiAgICAgLy8gQ2FsbGVkIHRvIGluZm9y
bSB0aGUgV2ViV2lkZ2V0IG9mIGEgY2hhbmdlIGluIHRoZW1lLgogICAgIC8vIEltcGxlbWVudG9y
cyB0aGF0IGNhY2hlIHJlbmRlcmVkIGNvcGllcyBvZiB3aWRnZXRzIG5lZWQgdG8gcmUtcmVuZGVy
CiAgICAgLy8gb24gcmVjZWl2aW5nIHRoaXMgbWVzc2FnZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViVmlld0ltcGwuY3BwCmluZGV4IDg0ZGU3NzI5Y2NlNWFkOTM2YjUwNjZkNzQxZDcx
ZmZjZWU1MTA4ODYuLmEyM2Q4MDJhYjc0NzE5NTlmODAxNDExZTYwZWJhMWQwYWIyMGU5YjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTEyNzEsNiAr
MTI3MSwxNCBAQCB2b2lkIFdlYlZpZXdJbXBsOjpjb21wb3NpdGUoYm9vbCkKICNlbmRpZgogfQog
Cit2b2lkIFdlYlZpZXdJbXBsOjpkaWRSZWNlaXZlRGFtYWdlKCkKK3sKKyNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCisgICAgaWYgKG1fbGF5ZXJUcmVlSG9zdCAmJiBpc0FjY2VsZXJh
dGVkQ29tcG9zaXRpbmdBY3RpdmUoKSkKKyAgICAgICAgbV9sYXllclRyZWVIb3N0LT5zZXROZWVk
c1JlZHJhdygpOworI2VuZGlmCit9CisKIHZvaWQgV2ViVmlld0ltcGw6Omxvc2VDb21wb3NpdG9y
Q29udGV4dChpbnQgbnVtVGltZXMpCiB7CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKaW5kZXggYTAzOWEwOWNl
Yjg3YzIwZTNkYTg0MzMzMWYxYmVhYWVkM2Y0ZjEzMS4uOTM4NGYzZTRkMWM5NjM4ZmZmZGU1Njc3
ZDc0YWY5OGZkZGFhZGUwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViVmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1w
bC5oCkBAIC0xMTMsNiArMTEzLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBwYWludChX
ZWJDYW52YXMqLCBjb25zdCBXZWJSZWN0Jik7CiAgICAgdmlydHVhbCB2b2lkIHRoZW1lQ2hhbmdl
ZCgpOwogICAgIHZpcnR1YWwgdm9pZCBjb21wb3NpdGUoYm9vbCBmaW5pc2gpOworICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNlaXZlRGFtYWdlKCk7CiAgICAgdmlydHVhbCBib29sIGhhbmRsZUlucHV0
RXZlbnQoY29uc3QgV2ViSW5wdXRFdmVudCYpOwogICAgIHZpcnR1YWwgdm9pZCBtb3VzZUNhcHR1
cmVMb3N0KCk7CiAgICAgdmlydHVhbCB2b2lkIHNldEZvY3VzKGJvb2wgZW5hYmxlKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125414</attachid>
            <date>2012-02-03 14:26:47 -0800</date>
            <delta_ts>2012-02-06 10:33:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77555-20120203172646.patch</filename>
            <type>text/plain</type>
            <size>8152</size>
            <attacher name="Jonathan Backer">backer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2NjQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmI4NWMxNWVjZWZmYTE3
NjVhZTdjOTk5YTRhZjEyNGQ2MzA4YmFhYy4uYzgxY2IyZmJiYTNhMDMyNzc1MDNhYjhkYjUyMGJl
MWFmNTUwZjQ2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEyLTAyLTAzICBKb25h
dGhhbiBCYWNrZXIgIDxiYWNrZXJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0g
QWRkIHNldE5lZWRzUmVkcmF3IHRvIFdlYldpZGdldAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc1NTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
TGF5ZXJUcmVlSG9zdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3Q6OnNl
dE5lZWRzUmVkcmF3KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q1NpbmdsZVRocmVhZFByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDU2luZ2xlVGhyZWFk
UHJveHk6OnNldE5lZWRzUmVkcmF3KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDVGhyZWFkUHJv
eHk6OnNldE5lZWRzUmVkcmF3KToKKyAgICAgICAgKFdlYkNvcmU6OkNDVGhyZWFkUHJveHk6OnJl
c2V0RGFtYWdlVHJhY2tlck9uSW1wbFRocmVhZCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5Lmg6CisgICAg
ICAgIChDQ1RocmVhZFByb3h5KToKKwogMjAxMi0wMS0yNyAgQWxleGFuZGVyIFBhdmxvdiAgPGFw
YXZsb3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEltcGxlbWVudCB0b3VjaCBldmVudCBlbXVs
YXRpb24gaW4gdGhlIFdlYkNvcmUgbGF5ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
NmIyZjYzZDM4Mzk1OGFmYWJmMGZlOTUxODA4MjgyNzZmMjI2ZWJhNi4uNTI2OGE0M2E0NDljNmZi
MzcyMWU5NWI1ZDNhZTY0YmNmNWUzZWU2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxOSBAQAorMjAxMi0wMi0wMyAgSm9uYXRoYW4gQmFja2VyICA8YmFja2VyQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIEFkZCBzZXROZWVkc1JlZHJhdyB0byBXZWJX
aWRnZXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3
NTU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBw
dWJsaWMvV2ViV2lkZ2V0Lmg6CisgICAgICAgIChXZWJXaWRnZXQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJXaWRnZXQ6OnNldE5lZWRzUmVkcmF3KToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0TmVlZHNSZWRyYXcpOgorICAg
ICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuaDoKKyAgICAgICAgKFdl
YlZpZXdJbXBsKToKKwogMjAxMi0wMi0wMiAgVG9tbXkgV2lkZW5mbHljaHQgIDx0b21teXdAZ29v
Z2xlLmNvbT4KIAogICAgICAgICBbY2hyb21pdW1dIE1lZGlhU3RyZWFtIEFQSTogQWRkaW5nIHRo
ZSBlbWJlZGRpbmcgY29kZSBmb3IgTWVkaWFTdHJlYW1DZW50ZXIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVy
VHJlZUhvc3QuY3BwCmluZGV4IDRmZjg0MzRiMjAwYzkyZDQ4YTA4YmY5MWMxNGIyN2Y4MjE5ZGRh
YjYuLmMzNTcxMzFlYWEyOTM5OTU4MzFiY2I2MTkwMzAxNDEwNjAxMzY1Y2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVl
SG9zdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NMYXllclRyZWVIb3N0LmNwcApAQCAtMjMwLDkgKzIzMCw4IEBAIHZvaWQgQ0NMYXllclRy
ZWVIb3N0OjpzZXROZWVkc0NvbW1pdCgpCiAKIHZvaWQgQ0NMYXllclRyZWVIb3N0OjpzZXROZWVk
c1JlZHJhdygpCiB7Ci0gICAgaWYgKENDVGhyZWFkUHJveHk6OmltcGxUaHJlYWQoKSkKLSAgICAg
ICAgbV9wcm94eS0+c2V0TmVlZHNSZWRyYXcoKTsKLSAgICBlbHNlCisgICAgbV9wcm94eS0+c2V0
TmVlZHNSZWRyYXcoKTsKKyAgICBpZiAoIUNDVGhyZWFkUHJveHk6OmltcGxUaHJlYWQoKSkKICAg
ICAgICAgbV9jbGllbnQtPnNjaGVkdWxlQ29tcG9zaXRlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2luZ2xlVGhyZWFk
UHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NTaW5nbGVUaHJlYWRQcm94eS5jcHAKaW5kZXggNzJiZWMyYTcxNjY0YWY0M2NkNjRkMDE0ZDI4
Yjg0MjY1MDk1YjIwMy4uOTI5OTBkMGVlNTI4MmU1NWQ1NTEwZTgxNTMwM2U4NWQxOTM3ZTM4YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NTaW5nbGVUaHJlYWRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5jcHAKQEAgLTI5LDYgKzI5LDcg
QEAKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQzRC5oIgogI2luY2x1ZGUgIkxheWVyUmVuZGVy
ZXJDaHJvbWl1bS5oIgogI2luY2x1ZGUgIlRyYWNlRXZlbnQuaCIKKyNpbmNsdWRlICJjYy9DQ0Rh
bWFnZVRyYWNrZXIuaCIKICNpbmNsdWRlICJjYy9DQ0xheWVyVHJlZUhvc3QuaCIKICNpbmNsdWRl
ICJjYy9DQ1RleHR1cmVVcGRhdGVyLmgiCiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CkBA
IC0xODAsNiArMTgxLDEwIEBAIHZvaWQgQ0NTaW5nbGVUaHJlYWRQcm94eTo6c2V0TmVlZHNDb21t
aXQoKQogCiB2b2lkIENDU2luZ2xlVGhyZWFkUHJveHk6OnNldE5lZWRzUmVkcmF3KCkKIHsKKyAg
ICBDQ1JlbmRlclN1cmZhY2UqIHJlbmRlclN1cmZhY2UgPSBtX2xheWVyVHJlZUhvc3RJbXBsLT5y
b290TGF5ZXIoKS0+cmVuZGVyU3VyZmFjZSgpOworICAgIGlmIChyZW5kZXJTdXJmYWNlKQorICAg
ICAgICByZW5kZXJTdXJmYWNlLT5kYW1hZ2VUcmFja2VyKCktPmZvcmNlRnVsbERhbWFnZU5leHRV
cGRhdGUoKTsKKwogICAgIC8vIEZJWE1FOiBPbmNlIHdlIG1vdmUgcmVuZGVyX3dpZGdldCBzY2hl
ZHVsaW5nIGludG8gdGhpcyBjbGFzcywgd2UgY2FuCiAgICAgLy8gdHJlYXQgcmVkcmF3IHJlcXVl
c3RzIG1vcmUgZWZmaWNpZW50bHkgdGhhbiBjb21taXRBbmRSZWRyYXcgcmVxdWVzdHMuCiAgICAg
c2V0TmVlZHNDb21taXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAKaW5kZXggNWU2YThm
ODYyNjJkZjYyNDQ5NDJlNWI0MmI0MmViYWE4ODgzM2EyZC4uNGMyZjRkZTUzNzcwNTQ0OGQ2MDli
MmY5Y2VlYTNjNTIyZDdjNzgxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAKQEAgLTI4
LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCiAjaW5jbHVkZSAi
VHJhY2VFdmVudC5oIgorI2luY2x1ZGUgImNjL0NDRGFtYWdlVHJhY2tlci5oIgogI2luY2x1ZGUg
ImNjL0NDRGVsYXlCYXNlZFRpbWVTb3VyY2UuaCIKICNpbmNsdWRlICJjYy9DQ0ZyYW1lUmF0ZUNv
bnRyb2xsZXIuaCIKICNpbmNsdWRlICJjYy9DQ0lucHV0SGFuZGxlci5oIgpAQCAtMjMxLDYgKzIz
Miw3IEBAIHZvaWQgQ0NUaHJlYWRQcm94eTo6c2V0TmVlZHNSZWRyYXcoKQogewogICAgIEFTU0VS
VChpc01haW5UaHJlYWQoKSk7CiAgICAgVFJBQ0VfRVZFTlQoIkNDVGhyZWFkUHJveHk6OnNldE5l
ZWRzUmVkcmF3IiwgdGhpcywgMCk7CisgICAgQ0NQcm94eTo6aW1wbFRocmVhZCgpLT5wb3N0VGFz
ayhjcmVhdGVDQ1RocmVhZFRhc2sodGhpcywgJkNDVGhyZWFkUHJveHk6OnJlc2V0RGFtYWdlVHJh
Y2tlck9uSW1wbFRocmVhZCkpOwogICAgIENDUHJveHk6OmltcGxUaHJlYWQoKS0+cG9zdFRhc2so
Y3JlYXRlQ0NUaHJlYWRUYXNrKHRoaXMsICZDQ1RocmVhZFByb3h5OjpzZXROZWVkc1JlZHJhd09u
SW1wbFRocmVhZCkpOwogfQogCkBAIC0yNTcsNiArMjU5LDE0IEBAIHZvaWQgQ0NUaHJlYWRQcm94
eTo6c2V0VmlzaWJsZU9uSW1wbFRocmVhZChDQ0NvbXBsZXRpb25FdmVudCogY29tcGxldGlvbiwg
Ym9vbCB2CiAgICAgY29tcGxldGlvbi0+c2lnbmFsKCk7CiB9CiAKK3ZvaWQgQ0NUaHJlYWRQcm94
eTo6cmVzZXREYW1hZ2VUcmFja2VyT25JbXBsVGhyZWFkKCkKK3sKKyAgICBBU1NFUlQoaXNJbXBs
VGhyZWFkKCkpOworICAgIENDUmVuZGVyU3VyZmFjZSogcmVuZGVyU3VyZmFjZSA9IG1fbGF5ZXJU
cmVlSG9zdEltcGwtPnJvb3RMYXllcigpLT5yZW5kZXJTdXJmYWNlKCk7CisgICAgaWYgKHJlbmRl
clN1cmZhY2UpCisgICAgICAgIHJlbmRlclN1cmZhY2UtPmRhbWFnZVRyYWNrZXIoKS0+Zm9yY2VG
dWxsRGFtYWdlTmV4dFVwZGF0ZSgpOworfQorCiB2b2lkIENDVGhyZWFkUHJveHk6OnNldE5lZWRz
UmVkcmF3T25JbXBsVGhyZWFkKCkKIHsKICAgICBBU1NFUlQoaXNJbXBsVGhyZWFkKCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NU
aHJlYWRQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NUaHJlYWRQcm94eS5oCmluZGV4IGExMWI1Mjc4NTk5MzFjZmI5OGY4NzI0YTUxMjQzYTA5
YjRlY2MzYjkuLmY3ZDhhYWY4YzExYTczOTIxYmFlNmZhZThhZGI5ZWRlYjQ1MjY2NjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhy
ZWFkUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ1RocmVhZFByb3h5LmgKQEAgLTEwMSw2ICsxMDEsNyBAQCBwcml2YXRlOgogICAgIHZv
aWQgaW5pdGlhbGl6ZUxheWVyUmVuZGVyZXJPbkltcGxUaHJlYWQoR3JhcGhpY3NDb250ZXh0M0Qq
LCBDQ0NvbXBsZXRpb25FdmVudCosIGJvb2wqIGluaXRpYWxpemVTdWNjZWVkZWQsIExheWVyUmVu
ZGVyZXJDYXBhYmlsaXRpZXMqLCBpbnQqIGNvbXBvc2l0b3JJZGVudGlmaWVyKTsKICAgICB2b2lk
IHNldFZpc2libGVPbkltcGxUaHJlYWQoQ0NDb21wbGV0aW9uRXZlbnQqLCBib29sIHZpc2libGUp
OwogICAgIHZvaWQgbGF5ZXJUcmVlSG9zdENsb3NlZE9uSW1wbFRocmVhZChDQ0NvbXBsZXRpb25F
dmVudCopOworICAgIHZvaWQgcmVzZXREYW1hZ2VUcmFja2VyT25JbXBsVGhyZWFkKCk7CiAKICAg
ICAvLyBBY2Nlc3NlZCBvbiBtYWluIHRocmVhZCBvbmx5LgogICAgIGJvb2wgbV9hbmltYXRlUmVx
dWVzdGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV2lk
Z2V0LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXaWRnZXQuaAppbmRleCBj
YTE2MGEyNmUwMGI3MDI0OWNiYjU1MTczM2NlMTQ0MTc2ZTZmYWVjLi5lNmMzZTRkZGIzZmVjYTZi
YTVlMzFiZTEyOWFlNTlmYjYzYWFlNDM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJXaWRnZXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJXaWRnZXQuaApAQCAtMTA3LDYgKzEwNywxMSBAQCBwdWJsaWM6CiAgICAgLy8gYW5pbWF0
ZSBvciBsYXlvdXQgaW4gdGhpcyBjYXNlLgogICAgIHZpcnR1YWwgdm9pZCBjb21wb3NpdGUoYm9v
bCBmaW5pc2gpID0gMDsKIAorICAgIC8vIFRlbXBvcmFyeSBtZXRob2QgZm9yIHRoZSBlbWJlZGRl
ciB0byBub3RpZnkgdGhlIFdlYldpZGdldCB0aGF0IHRoZSB3aWRnZXQKKyAgICAvLyBoYXMgdGFr
ZW4gZGFtYWdlLCBlLmcuIGR1ZSB0byBhIHdpbmRvdyBleHBvc2UuIFRoaXMgbWV0aG9kIHdpbGwg
YmUKKyAgICAvLyByZW1vdmVkIHdoZW4gdGhlIFdlYldpZGdldCBpbnZlcnNpb24gcGF0Y2ggbGFu
ZHMuCisgICAgdmlydHVhbCB2b2lkIHNldE5lZWRzUmVkcmF3KCkgeyB9CisKICAgICAvLyBDYWxs
ZWQgdG8gaW5mb3JtIHRoZSBXZWJXaWRnZXQgb2YgYSBjaGFuZ2UgaW4gdGhlbWUuCiAgICAgLy8g
SW1wbGVtZW50b3JzIHRoYXQgY2FjaGUgcmVuZGVyZWQgY29waWVzIG9mIHdpZGdldHMgbmVlZCB0
byByZS1yZW5kZXIKICAgICAvLyBvbiByZWNlaXZpbmcgdGhpcyBtZXNzYWdlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggODRkZTc3MjljY2U1YWQ5MzZi
NTA2NmQ3NDFkNzFmZmNlZTUxMDg4Ni4uNGEzNGYxMWNkODliYWZjNGY4OTA1YzQ3OTY4MjNjMzU5
Yjk3Yjk4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0lt
cGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcApA
QCAtMTI3MSw2ICsxMjcxLDE0IEBAIHZvaWQgV2ViVmlld0ltcGw6OmNvbXBvc2l0ZShib29sKQog
I2VuZGlmCiB9CiAKK3ZvaWQgV2ViVmlld0ltcGw6OnNldE5lZWRzUmVkcmF3KCkKK3sKKyNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgaWYgKG1fbGF5ZXJUcmVlSG9zdCAmJiBp
c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdBY3RpdmUoKSkKKyAgICAgICAgbV9sYXllclRyZWVIb3N0
LT5zZXROZWVkc1JlZHJhdygpOworI2VuZGlmCit9CisKIHZvaWQgV2ViVmlld0ltcGw6Omxvc2VD
b21wb3NpdG9yQ29udGV4dChpbnQgbnVtVGltZXMpCiB7CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmll
d0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKaW5kZXgg
YTAzOWEwOWNlYjg3YzIwZTNkYTg0MzMzMWYxYmVhYWVkM2Y0ZjEzMS4uZmUwMTk3N2JmZGFkZjIz
ODQ0NzhjOGRhNzBiY2NkODA4NzQ3YmVhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViVmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJWaWV3SW1wbC5oCkBAIC0xMTMsNiArMTEzLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBwYWludChXZWJDYW52YXMqLCBjb25zdCBXZWJSZWN0Jik7CiAgICAgdmlydHVhbCB2b2lkIHRo
ZW1lQ2hhbmdlZCgpOwogICAgIHZpcnR1YWwgdm9pZCBjb21wb3NpdGUoYm9vbCBmaW5pc2gpOwor
ICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc1JlZHJhdygpOwogICAgIHZpcnR1YWwgYm9vbCBoYW5k
bGVJbnB1dEV2ZW50KGNvbnN0IFdlYklucHV0RXZlbnQmKTsKICAgICB2aXJ0dWFsIHZvaWQgbW91
c2VDYXB0dXJlTG9zdCgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRGb2N1cyhib29sIGVuYWJsZSk7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125666</attachid>
            <date>2012-02-06 10:33:11 -0800</date>
            <delta_ts>2012-02-07 09:06:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77555-20120206133310.patch</filename>
            <type>text/plain</type>
            <size>8124</size>
            <attacher name="Jonathan Backer">backer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2Nzc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWRlNTA5ODhkZmY2ODcw
ZTI2NjQwYzQwYzdiYWYxMDgwNGIyZWRlYS4uY2M2YmZiMmVjNDU0ODI4MjgyZDA5ZmNhZGJiNzNm
Zjc4NGVlNTQxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEyLTAyLTA2ICBKb25h
dGhhbiBCYWNrZXIgIDxiYWNrZXJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0g
QWRkIHNldE5lZWRzUmVkcmF3IHRvIFdlYldpZGdldAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc1NTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
TGF5ZXJUcmVlSG9zdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3Q6OnNl
dE5lZWRzUmVkcmF3KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q1NpbmdsZVRocmVhZFByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDU2luZ2xlVGhyZWFk
UHJveHk6OnNldE5lZWRzUmVkcmF3KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDVGhyZWFkUHJv
eHk6OnNldE5lZWRzUmVkcmF3KToKKyAgICAgICAgKFdlYkNvcmU6OkNDVGhyZWFkUHJveHk6OnJl
c2V0RGFtYWdlVHJhY2tlck9uSW1wbFRocmVhZCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5Lmg6CisgICAg
ICAgIChDQ1RocmVhZFByb3h5KToKKwogMjAxMi0wMi0wNSAgS2VudGFybyBIYXJhICA8aGFyYWtl
bkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmVuYW1lIFtUcmVhdE51bGxBcz1FbXB0eVN0cmlu
Z10gdG8gW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpp
bmRleCA0ZmJhZmZkZGNmZGUxMmUyYmQ4MDUwZjRiN2U2Y2M4NDAyZDAwZmY3Li4xMmM0ZTU3ODAy
MGE0MzQwYzFiYmUwNjJmMTJiNWVhMGM1ODMzNjA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTAyLTA2ICBKb25hdGhhbiBCYWNrZXIgIDxiYWNrZXJA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRkIHNldE5lZWRzUmVkcmF3IHRv
IFdlYldpZGdldAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Nzc1NTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIHB1YmxpYy9XZWJXaWRnZXQuaDoKKyAgICAgICAgKFdlYldpZGdldCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYldpZGdldDo6c2V0TmVlZHNSZWRyYXcpOgorICAgICAgICAqIHNyYy9XZWJWaWV3
SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXROZWVkc1JlZHJhdyk6
CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5oOgorICAgICAg
ICAoV2ViVmlld0ltcGwpOgorCiAyMDEyLTAyLTA0ICBTaGF3biBTaW5naCAgPHNoYXduc2luZ2hA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gQWRkIHN1cHBvcnQgdG8gZm9yY2Ug
ZnVsbCBkYW1hZ2UgaW4gQ0NEYW1hZ2VUcmFja2VyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0
LmNwcAppbmRleCA1MGQ3NmE1ZThjNTQyZDc2MGIxYzY5MDA1MGQ2NjgzNGZiNzk4NTE4Li41MjVl
YzhkYTliM2UxM2NmYjg5MWQ1ZTI2OTVhMjE5MWRiNzU3OGNiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5
ZXJUcmVlSG9zdC5jcHAKQEAgLTI1MSw5ICsyNTEsOCBAQCB2b2lkIENDTGF5ZXJUcmVlSG9zdDo6
c2V0TmVlZHNDb21taXQoKQogCiB2b2lkIENDTGF5ZXJUcmVlSG9zdDo6c2V0TmVlZHNSZWRyYXco
KQogewotICAgIGlmIChDQ1RocmVhZFByb3h5OjppbXBsVGhyZWFkKCkpCi0gICAgICAgIG1fcHJv
eHktPnNldE5lZWRzUmVkcmF3KCk7Ci0gICAgZWxzZQorICAgIG1fcHJveHktPnNldE5lZWRzUmVk
cmF3KCk7CisgICAgaWYgKCFDQ1RocmVhZFByb3h5OjppbXBsVGhyZWFkKCkpCiAgICAgICAgIG1f
Y2xpZW50LT5zY2hlZHVsZUNvbXBvc2l0ZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2luZ2xl
VGhyZWFkUHJveHkuY3BwCmluZGV4IDcwZGVjMDU0YzUyNTIxNjNkM2RmMGQ3ZjkzNDVmMzc0MTY4
ZGZmMmEuLmE3ZWE2YTBjZTQyYzg5NDFjZTA1MjZmZDBjZDM3YTljZmMxYzVmMjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2luZ2xl
VGhyZWFkUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDU2luZ2xlVGhyZWFkUHJveHkuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5j
bHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKICNpbmNsdWRlICJMYXllclJlbmRlcmVyQ2hyb21p
dW0uaCIKICNpbmNsdWRlICJUcmFjZUV2ZW50LmgiCisjaW5jbHVkZSAiY2MvQ0NEYW1hZ2VUcmFj
a2VyLmgiCiAjaW5jbHVkZSAiY2MvQ0NMYXllclRyZWVIb3N0LmgiCiAjaW5jbHVkZSAiY2MvQ0NU
ZXh0dXJlVXBkYXRlci5oIgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgpAQCAtMTk0LDYg
KzE5NSwxMCBAQCB2b2lkIENDU2luZ2xlVGhyZWFkUHJveHk6OnNldE5lZWRzQ29tbWl0KCkKIAog
dm9pZCBDQ1NpbmdsZVRocmVhZFByb3h5OjpzZXROZWVkc1JlZHJhdygpCiB7CisgICAgQ0NSZW5k
ZXJTdXJmYWNlKiByZW5kZXJTdXJmYWNlID0gbV9sYXllclRyZWVIb3N0SW1wbC0+cm9vdExheWVy
KCktPnJlbmRlclN1cmZhY2UoKTsKKyAgICBpZiAocmVuZGVyU3VyZmFjZSkKKyAgICAgICAgcmVu
ZGVyU3VyZmFjZS0+ZGFtYWdlVHJhY2tlcigpLT5mb3JjZUZ1bGxEYW1hZ2VOZXh0VXBkYXRlKCk7
CisKICAgICAvLyBGSVhNRTogT25jZSB3ZSBtb3ZlIHJlbmRlcl93aWRnZXQgc2NoZWR1bGluZyBp
bnRvIHRoaXMgY2xhc3MsIHdlIGNhbgogICAgIC8vIHRyZWF0IHJlZHJhdyByZXF1ZXN0cyBtb3Jl
IGVmZmljaWVudGx5IHRoYW4gY29tbWl0QW5kUmVkcmF3IHJlcXVlc3RzLgogICAgIHNldE5lZWRz
Q29tbWl0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwCmluZGV4IDRiMjAzZjM1NGI5OTNm
NjMzMTMwNmJlYzJjMGVhZWFiZDgzZjQ4ZjMuLjM0ZGI1YzVkMWU2YTllYzcwZDM0NzFlZmNhNGRj
N2ExMWExNDU0YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwCkBAIC0yOCw2ICsyOCw3
IEBACiAKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQzRC5oIgogI2luY2x1ZGUgIlRyYWNlRXZl
bnQuaCIKKyNpbmNsdWRlICJjYy9DQ0RhbWFnZVRyYWNrZXIuaCIKICNpbmNsdWRlICJjYy9DQ0Rl
bGF5QmFzZWRUaW1lU291cmNlLmgiCiAjaW5jbHVkZSAiY2MvQ0NGcmFtZVJhdGVDb250cm9sbGVy
LmgiCiAjaW5jbHVkZSAiY2MvQ0NJbnB1dEhhbmRsZXIuaCIKQEAgLTI0OCw2ICsyNDksNyBAQCB2
b2lkIENDVGhyZWFkUHJveHk6OnNldE5lZWRzUmVkcmF3KCkKIHsKICAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOwogICAgIFRSQUNFX0VWRU5UKCJDQ1RocmVhZFByb3h5OjpzZXROZWVkc1JlZHJh
dyIsIHRoaXMsIDApOworICAgIENDUHJveHk6OmltcGxUaHJlYWQoKS0+cG9zdFRhc2soY3JlYXRl
Q0NUaHJlYWRUYXNrKHRoaXMsICZDQ1RocmVhZFByb3h5OjpyZXNldERhbWFnZVRyYWNrZXJPbklt
cGxUaHJlYWQpKTsKICAgICBDQ1Byb3h5OjppbXBsVGhyZWFkKCktPnBvc3RUYXNrKGNyZWF0ZUND
VGhyZWFkVGFzayh0aGlzLCAmQ0NUaHJlYWRQcm94eTo6c2V0TmVlZHNSZWRyYXdPbkltcGxUaHJl
YWQpKTsKIH0KIApAQCAtMjc0LDYgKzI3NiwxNCBAQCB2b2lkIENDVGhyZWFkUHJveHk6OnNldFZp
c2libGVPbkltcGxUaHJlYWQoQ0NDb21wbGV0aW9uRXZlbnQqIGNvbXBsZXRpb24sIGJvb2wgdgog
ICAgIGNvbXBsZXRpb24tPnNpZ25hbCgpOwogfQogCit2b2lkIENDVGhyZWFkUHJveHk6OnJlc2V0
RGFtYWdlVHJhY2tlck9uSW1wbFRocmVhZCgpCit7CisgICAgQVNTRVJUKGlzSW1wbFRocmVhZCgp
KTsKKyAgICBDQ1JlbmRlclN1cmZhY2UqIHJlbmRlclN1cmZhY2UgPSBtX2xheWVyVHJlZUhvc3RJ
bXBsLT5yb290TGF5ZXIoKS0+cmVuZGVyU3VyZmFjZSgpOworICAgIGlmIChyZW5kZXJTdXJmYWNl
KQorICAgICAgICByZW5kZXJTdXJmYWNlLT5kYW1hZ2VUcmFja2VyKCktPmZvcmNlRnVsbERhbWFn
ZU5leHRVcGRhdGUoKTsKK30KKwogdm9pZCBDQ1RocmVhZFByb3h5OjpzZXROZWVkc1JlZHJhd09u
SW1wbFRocmVhZCgpCiB7CiAgICAgQVNTRVJUKGlzSW1wbFRocmVhZCgpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJv
eHkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhy
ZWFkUHJveHkuaAppbmRleCBiNjVhNmM2MDRlMjkyM2ZjOGYwOWNmOWFjN2Y1NTk2ZDBhYjBjZGQw
Li45MzkyMzExNmIxNmRkNDFmZTIyMjZlNGIxMjJjNWU4ZjJlNDQ2NjhhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NU
aHJlYWRQcm94eS5oCkBAIC0xMDMsNiArMTAzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGluaXRp
YWxpemVMYXllclJlbmRlcmVyT25JbXBsVGhyZWFkKENDQ29tcGxldGlvbkV2ZW50KiwgYm9vbCog
aW5pdGlhbGl6ZVN1Y2NlZWRlZCwgTGF5ZXJSZW5kZXJlckNhcGFiaWxpdGllcyopOwogICAgIHZv
aWQgc2V0VmlzaWJsZU9uSW1wbFRocmVhZChDQ0NvbXBsZXRpb25FdmVudCosIGJvb2wgdmlzaWJs
ZSk7CiAgICAgdm9pZCBsYXllclRyZWVIb3N0Q2xvc2VkT25JbXBsVGhyZWFkKENDQ29tcGxldGlv
bkV2ZW50Kik7CisgICAgdm9pZCByZXNldERhbWFnZVRyYWNrZXJPbkltcGxUaHJlYWQoKTsKIAog
ICAgIC8vIEFjY2Vzc2VkIG9uIG1haW4gdGhyZWFkIG9ubHkuCiAgICAgYm9vbCBtX2FuaW1hdGVS
ZXF1ZXN0ZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJX
aWRnZXQuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYldpZGdldC5oCmluZGV4
IGNhMTYwYTI2ZTAwYjcwMjQ5Y2JiNTUxNzMzY2UxNDQxNzZlNmZhZWMuLjU4ZjNmYTE2OTVmOGNl
MzYyMmQ2N2ZjYzVjZjZjNTU0MDlkN2ZiYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYldpZGdldC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYldpZGdldC5oCkBAIC0xMDcsNiArMTA3LDExIEBAIHB1YmxpYzoKICAgICAvLyBhbmlt
YXRlIG9yIGxheW91dCBpbiB0aGlzIGNhc2UuCiAgICAgdmlydHVhbCB2b2lkIGNvbXBvc2l0ZShi
b29sIGZpbmlzaCkgPSAwOwogCisgICAgLy8gVGVtcG9yYXJ5IG1ldGhvZCBmb3IgdGhlIGVtYmVk
ZGVyIHRvIG5vdGlmeSB0aGUgV2ViV2lkZ2V0IHRoYXQgdGhlIHdpZGdldAorICAgIC8vIGhhcyB0
YWtlbiBkYW1hZ2UsIGUuZy4gZHVlIHRvIGEgd2luZG93IGV4cG9zZS4gVGhpcyBtZXRob2Qgd2ls
bCBiZQorICAgIC8vIHJlbW92ZWQgd2hlbiB0aGUgV2ViV2lkZ2V0IGludmVyc2lvbiBwYXRjaCBs
YW5kcyAtLS0gaHR0cDovL2NyYnVnLmNvbS8xMTI4MzcKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TmVl
ZHNSZWRyYXcoKSB7IH0KKwogICAgIC8vIENhbGxlZCB0byBpbmZvcm0gdGhlIFdlYldpZGdldCBv
ZiBhIGNoYW5nZSBpbiB0aGVtZS4KICAgICAvLyBJbXBsZW1lbnRvcnMgdGhhdCBjYWNoZSByZW5k
ZXJlZCBjb3BpZXMgb2Ygd2lkZ2V0cyBuZWVkIHRvIHJlLXJlbmRlcgogICAgIC8vIG9uIHJlY2Vp
dmluZyB0aGlzIG1lc3NhZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBs
LmNwcAppbmRleCA4NGRlNzcyOWNjZTVhZDkzNmI1MDY2ZDc0MWQ3MWZmY2VlNTEwODg2Li40YTM0
ZjExY2Q4OWJhZmM0Zjg5MDVjNDc5NjgyM2MzNTliOTdiOTg5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC0xMjcxLDYgKzEyNzEsMTQgQEAgdm9pZCBX
ZWJWaWV3SW1wbDo6Y29tcG9zaXRlKGJvb2wpCiAjZW5kaWYKIH0KIAordm9pZCBXZWJWaWV3SW1w
bDo6c2V0TmVlZHNSZWRyYXcoKQoreworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
KyAgICBpZiAobV9sYXllclRyZWVIb3N0ICYmIGlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2
ZSgpKQorICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnNldE5lZWRzUmVkcmF3KCk7CisjZW5kaWYK
K30KKwogdm9pZCBXZWJWaWV3SW1wbDo6bG9zZUNvbXBvc2l0b3JDb250ZXh0KGludCBudW1UaW1l
cykKIHsKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViVmlld0ltcGwuaAppbmRleCBhMDM5YTA5Y2ViODdjMjBlM2RhODQzMzMxZjFi
ZWFhZWQzZjRmMTMxLi5mZTAxOTc3YmZkYWRmMjM4NDQ3OGM4ZGE3MGJjY2Q4MDg3NDdiZWFlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKQEAgLTExMyw2ICsxMTMs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHBhaW50KFdlYkNhbnZhcyosIGNvbnN0IFdl
YlJlY3QmKTsKICAgICB2aXJ0dWFsIHZvaWQgdGhlbWVDaGFuZ2VkKCk7CiAgICAgdmlydHVhbCB2
b2lkIGNvbXBvc2l0ZShib29sIGZpbmlzaCk7CisgICAgdmlydHVhbCB2b2lkIHNldE5lZWRzUmVk
cmF3KCk7CiAgICAgdmlydHVhbCBib29sIGhhbmRsZUlucHV0RXZlbnQoY29uc3QgV2ViSW5wdXRF
dmVudCYpOwogICAgIHZpcnR1YWwgdm9pZCBtb3VzZUNhcHR1cmVMb3N0KCk7CiAgICAgdmlydHVh
bCB2b2lkIHNldEZvY3VzKGJvb2wgZW5hYmxlKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125856</attachid>
            <date>2012-02-07 09:06:26 -0800</date>
            <delta_ts>2012-02-08 06:11:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77555-20120207120625.patch</filename>
            <type>text/plain</type>
            <size>8267</size>
            <attacher name="Jonathan Backer">backer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2ODg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjg1MTUxZWQyNDRkMDY3
M2JhZjI4Nzg0NDhkYWQ3ZmZiZTg5ZDA2Yi4uMzkwYjRlN2QzMDgzZDlmNjU2MDJiYzI0NWE2NDVj
MGExMTc3NzE1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEyLTAyLTA3ICBKb25h
dGhhbiBCYWNrZXIgIDxiYWNrZXJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0g
QWRkIHNldE5lZWRzUmVkcmF3IHRvIFdlYldpZGdldAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc1NTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
TGF5ZXJUcmVlSG9zdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3Q6OnNl
dE5lZWRzUmVkcmF3KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q1NpbmdsZVRocmVhZFByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDU2luZ2xlVGhyZWFk
UHJveHk6OnNldE5lZWRzUmVkcmF3KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDVGhyZWFkUHJv
eHk6OnNldE5lZWRzUmVkcmF3KToKKyAgICAgICAgKFdlYkNvcmU6OkNDVGhyZWFkUHJveHk6OnJl
c2V0RGFtYWdlVHJhY2tlck9uSW1wbFRocmVhZCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5Lmg6CisgICAg
ICAgIChDQ1RocmVhZFByb3h5KToKKwogMjAxMi0wMi0wNiAgS2VudGFybyBIYXJhICA8aGFyYWtl
bkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEwNjg4
My4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggYTI5YTc1MmFkZDczZjc3Y2RhMTA1ZjY4
MjMyOGQ4YTExYjVjODdjYi4uYmFlMTk1ODM3MTY5MzAxYzJlMjM1MjNiMjRmNjVkMjNkOTM5MWNl
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMi0wMi0w
NyAgSm9uYXRoYW4gQmFja2VyICA8YmFja2VyQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hy
b21pdW1dIEFkZCBzZXROZWVkc1JlZHJhdyB0byBXZWJXaWRnZXQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3NTU1CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwdWJsaWMvV2ViV2lkZ2V0Lmg6CisgICAg
ICAgIChXZWJXaWRnZXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJXaWRnZXQ6OnNldE5lZWRzUmVk
cmF3KToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3SW1wbDo6c2V0TmVlZHNSZWRyYXcpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAg
KiBzcmMvV2ViVmlld0ltcGwuaDoKKyAgICAgICAgKFdlYlZpZXdJbXBsKToKKwogMjAxMi0wMi0w
NiAgSnVsaWVuIENoYWZmcmFpeCAgPGpjaGFmZnJhaXhAd2Via2l0Lm9yZz4KIAogICAgICAgICBV
bnJldmlld2VkIGdhcmRlbmluZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwCmluZGV4
IDUwZDc2YTVlOGM1NDJkNzYwYjFjNjkwMDUwZDY2ODM0ZmI3OTg1MTguLjUyNWVjOGRhOWIzZTEz
Y2ZiODkxZDVlMjY5NWEyMTkxZGI3NTc4Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0
LmNwcApAQCAtMjUxLDkgKzI1MSw4IEBAIHZvaWQgQ0NMYXllclRyZWVIb3N0OjpzZXROZWVkc0Nv
bW1pdCgpCiAKIHZvaWQgQ0NMYXllclRyZWVIb3N0OjpzZXROZWVkc1JlZHJhdygpCiB7Ci0gICAg
aWYgKENDVGhyZWFkUHJveHk6OmltcGxUaHJlYWQoKSkKLSAgICAgICAgbV9wcm94eS0+c2V0TmVl
ZHNSZWRyYXcoKTsKLSAgICBlbHNlCisgICAgbV9wcm94eS0+c2V0TmVlZHNSZWRyYXcoKTsKKyAg
ICBpZiAoIUNDVGhyZWFkUHJveHk6OmltcGxUaHJlYWQoKSkKICAgICAgICAgbV9jbGllbnQtPnNj
aGVkdWxlQ29tcG9zaXRlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2luZ2xlVGhyZWFkUHJveHkuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQcm94
eS5jcHAKaW5kZXggNzBkZWMwNTRjNTI1MjE2M2QzZGYwZDdmOTM0NWYzNzQxNjhkZmYyYS4uODAw
ZDgxZDdiNjk5ZjI1Y2VhYTk5NzY0ZTUwOWViMTA4MmEwZWM3YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NTaW5nbGVUaHJlYWRQcm94eS5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJHcmFw
aGljc0NvbnRleHQzRC5oIgogI2luY2x1ZGUgIkxheWVyUmVuZGVyZXJDaHJvbWl1bS5oIgogI2lu
Y2x1ZGUgIlRyYWNlRXZlbnQuaCIKKyNpbmNsdWRlICJjYy9DQ0RhbWFnZVRyYWNrZXIuaCIKICNp
bmNsdWRlICJjYy9DQ0xheWVyVHJlZUhvc3QuaCIKICNpbmNsdWRlICJjYy9DQ1RleHR1cmVVcGRh
dGVyLmgiCiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CkBAIC0xOTQsNiArMTk1LDEzIEBA
IHZvaWQgQ0NTaW5nbGVUaHJlYWRQcm94eTo6c2V0TmVlZHNDb21taXQoKQogCiB2b2lkIENDU2lu
Z2xlVGhyZWFkUHJveHk6OnNldE5lZWRzUmVkcmF3KCkKIHsKKyAgICBDQ0xheWVySW1wbCogcm9v
dExheWVyID0gbV9sYXllclRyZWVIb3N0SW1wbC0+cm9vdExheWVyKCk7CisgICAgaWYgKHJvb3RM
YXllcikgeworICAgICAgICBDQ1JlbmRlclN1cmZhY2UqIHJlbmRlclN1cmZhY2UgPSBtX2xheWVy
VHJlZUhvc3RJbXBsLT5yb290TGF5ZXIoKS0+cmVuZGVyU3VyZmFjZSgpOworICAgICAgICBpZiAo
cmVuZGVyU3VyZmFjZSkKKyAgICAgICAgICAgIHJlbmRlclN1cmZhY2UtPmRhbWFnZVRyYWNrZXIo
KS0+Zm9yY2VGdWxsRGFtYWdlTmV4dFVwZGF0ZSgpOworICAgIH0KKwogICAgIC8vIEZJWE1FOiBP
bmNlIHdlIG1vdmUgcmVuZGVyX3dpZGdldCBzY2hlZHVsaW5nIGludG8gdGhpcyBjbGFzcywgd2Ug
Y2FuCiAgICAgLy8gdHJlYXQgcmVkcmF3IHJlcXVlc3RzIG1vcmUgZWZmaWNpZW50bHkgdGhhbiBj
b21taXRBbmRSZWRyYXcgcmVxdWVzdHMuCiAgICAgc2V0TmVlZHNDb21taXQoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFk
UHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NUaHJlYWRQcm94eS5jcHAKaW5kZXggNGIyMDNmMzU0Yjk5M2Y2MzMxMzA2YmVjMmMwZWFlYWJk
ODNmNDhmMy4uYjI1M2Y0Mjc3YWVhODJlNmNhZTY1MDZmYzUwMTU5NDY2MTY1NjhkMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJl
YWRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkdy
YXBoaWNzQ29udGV4dDNELmgiCiAjaW5jbHVkZSAiVHJhY2VFdmVudC5oIgorI2luY2x1ZGUgImNj
L0NDRGFtYWdlVHJhY2tlci5oIgogI2luY2x1ZGUgImNjL0NDRGVsYXlCYXNlZFRpbWVTb3VyY2Uu
aCIKICNpbmNsdWRlICJjYy9DQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJjYy9D
Q0lucHV0SGFuZGxlci5oIgpAQCAtMjQ4LDYgKzI0OSw3IEBAIHZvaWQgQ0NUaHJlYWRQcm94eTo6
c2V0TmVlZHNSZWRyYXcoKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgVFJB
Q0VfRVZFTlQoIkNDVGhyZWFkUHJveHk6OnNldE5lZWRzUmVkcmF3IiwgdGhpcywgMCk7CisgICAg
Q0NQcm94eTo6aW1wbFRocmVhZCgpLT5wb3N0VGFzayhjcmVhdGVDQ1RocmVhZFRhc2sodGhpcywg
JkNDVGhyZWFkUHJveHk6OnJlc2V0RGFtYWdlVHJhY2tlck9uSW1wbFRocmVhZCkpOwogICAgIEND
UHJveHk6OmltcGxUaHJlYWQoKS0+cG9zdFRhc2soY3JlYXRlQ0NUaHJlYWRUYXNrKHRoaXMsICZD
Q1RocmVhZFByb3h5OjpzZXROZWVkc1JlZHJhd09uSW1wbFRocmVhZCkpOwogfQogCkBAIC0yNzQs
NiArMjc2LDE3IEBAIHZvaWQgQ0NUaHJlYWRQcm94eTo6c2V0VmlzaWJsZU9uSW1wbFRocmVhZChD
Q0NvbXBsZXRpb25FdmVudCogY29tcGxldGlvbiwgYm9vbCB2CiAgICAgY29tcGxldGlvbi0+c2ln
bmFsKCk7CiB9CiAKK3ZvaWQgQ0NUaHJlYWRQcm94eTo6cmVzZXREYW1hZ2VUcmFja2VyT25JbXBs
VGhyZWFkKCkKK3sKKyAgICBBU1NFUlQoaXNJbXBsVGhyZWFkKCkpOworICAgIENDTGF5ZXJJbXBs
KiByb290TGF5ZXIgPSBtX2xheWVyVHJlZUhvc3RJbXBsLT5yb290TGF5ZXIoKTsKKyAgICBpZiAo
cm9vdExheWVyKSB7CisgICAgICAgIENDUmVuZGVyU3VyZmFjZSogcmVuZGVyU3VyZmFjZSA9IG1f
bGF5ZXJUcmVlSG9zdEltcGwtPnJvb3RMYXllcigpLT5yZW5kZXJTdXJmYWNlKCk7CisgICAgICAg
IGlmIChyZW5kZXJTdXJmYWNlKQorICAgICAgICAgICAgcmVuZGVyU3VyZmFjZS0+ZGFtYWdlVHJh
Y2tlcigpLT5mb3JjZUZ1bGxEYW1hZ2VOZXh0VXBkYXRlKCk7CisgICAgfQorfQorCiB2b2lkIEND
VGhyZWFkUHJveHk6OnNldE5lZWRzUmVkcmF3T25JbXBsVGhyZWFkKCkKIHsKICAgICBBU1NFUlQo
aXNJbXBsVGhyZWFkKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5oCmluZGV4IGI2NWE2YzYwNGUy
OTIzZmM4ZjA5Y2Y5YWM3ZjU1OTZkMGFiMGNkZDAuLjkzOTIzMTE2YjE2ZGQ0MWZlMjIyNmU0YjEy
MmM1ZThmMmU0NDY2OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmgKQEAgLTEwMyw2ICsxMDMs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgaW5pdGlhbGl6ZUxheWVyUmVuZGVyZXJPbkltcGxUaHJl
YWQoQ0NDb21wbGV0aW9uRXZlbnQqLCBib29sKiBpbml0aWFsaXplU3VjY2VlZGVkLCBMYXllclJl
bmRlcmVyQ2FwYWJpbGl0aWVzKik7CiAgICAgdm9pZCBzZXRWaXNpYmxlT25JbXBsVGhyZWFkKEND
Q29tcGxldGlvbkV2ZW50KiwgYm9vbCB2aXNpYmxlKTsKICAgICB2b2lkIGxheWVyVHJlZUhvc3RD
bG9zZWRPbkltcGxUaHJlYWQoQ0NDb21wbGV0aW9uRXZlbnQqKTsKKyAgICB2b2lkIHJlc2V0RGFt
YWdlVHJhY2tlck9uSW1wbFRocmVhZCgpOwogCiAgICAgLy8gQWNjZXNzZWQgb24gbWFpbiB0aHJl
YWQgb25seS4KICAgICBib29sIG1fYW5pbWF0ZVJlcXVlc3RlZDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYldpZGdldC5oIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViV2lkZ2V0LmgKaW5kZXggY2ExNjBhMjZlMDBiNzAyNDljYmI1NTE3MzNj
ZTE0NDE3NmU2ZmFlYy4uNThmM2ZhMTY5NWY4Y2UzNjIyZDY3ZmNjNWNmNmM1NTQwOWQ3ZmJiMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0LmgKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0LmgKQEAgLTEwNyw2ICsx
MDcsMTEgQEAgcHVibGljOgogICAgIC8vIGFuaW1hdGUgb3IgbGF5b3V0IGluIHRoaXMgY2FzZS4K
ICAgICB2aXJ0dWFsIHZvaWQgY29tcG9zaXRlKGJvb2wgZmluaXNoKSA9IDA7CiAKKyAgICAvLyBU
ZW1wb3JhcnkgbWV0aG9kIGZvciB0aGUgZW1iZWRkZXIgdG8gbm90aWZ5IHRoZSBXZWJXaWRnZXQg
dGhhdCB0aGUgd2lkZ2V0CisgICAgLy8gaGFzIHRha2VuIGRhbWFnZSwgZS5nLiBkdWUgdG8gYSB3
aW5kb3cgZXhwb3NlLiBUaGlzIG1ldGhvZCB3aWxsIGJlCisgICAgLy8gcmVtb3ZlZCB3aGVuIHRo
ZSBXZWJXaWRnZXQgaW52ZXJzaW9uIHBhdGNoIGxhbmRzIC0tLSBodHRwOi8vY3JidWcuY29tLzEx
MjgzNworICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc1JlZHJhdygpIHsgfQorCiAgICAgLy8gQ2Fs
bGVkIHRvIGluZm9ybSB0aGUgV2ViV2lkZ2V0IG9mIGEgY2hhbmdlIGluIHRoZW1lLgogICAgIC8v
IEltcGxlbWVudG9ycyB0aGF0IGNhY2hlIHJlbmRlcmVkIGNvcGllcyBvZiB3aWRnZXRzIG5lZWQg
dG8gcmUtcmVuZGVyCiAgICAgLy8gb24gcmVjZWl2aW5nIHRoaXMgbWVzc2FnZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCmluZGV4IDQ2MjljYmIzMmFiZTViNDMy
NGU1NmEwOTdmZTM3ZDY4NTc1NWVhMDQuLjQzNmIxZmZhYTgzMzM1M2EyNjY0ZTVhMWIxZWM1NmQ1
ZTE3MDBmZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJ
bXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAK
QEAgLTEyNzEsNiArMTI3MSwxNCBAQCB2b2lkIFdlYlZpZXdJbXBsOjpjb21wb3NpdGUoYm9vbCkK
ICNlbmRpZgogfQogCit2b2lkIFdlYlZpZXdJbXBsOjpzZXROZWVkc1JlZHJhdygpCit7CisjaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIGlmIChtX2xheWVyVHJlZUhvc3QgJiYg
aXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKCkpCisgICAgICAgIG1fbGF5ZXJUcmVlSG9z
dC0+c2V0TmVlZHNSZWRyYXcoKTsKKyNlbmRpZgorfQorCiB2b2lkIFdlYlZpZXdJbXBsOjpsb3Nl
Q29tcG9zaXRvckNvbnRleHQoaW50IG51bVRpbWVzKQogewogI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZp
ZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCmluZGV4
IGEwMzlhMDljZWI4N2MyMGUzZGE4NDMzMzFmMWJlYWFlZDNmNGYxMzEuLmZlMDE5NzdiZmRhZGYy
Mzg0NDc4YzhkYTcwYmNjZDgwODc0N2JlYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViVmlld0ltcGwuaApAQCAtMTEzLDYgKzExMyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgcGFpbnQoV2ViQ2FudmFzKiwgY29uc3QgV2ViUmVjdCYpOwogICAgIHZpcnR1YWwgdm9pZCB0
aGVtZUNoYW5nZWQoKTsKICAgICB2aXJ0dWFsIHZvaWQgY29tcG9zaXRlKGJvb2wgZmluaXNoKTsK
KyAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNSZWRyYXcoKTsKICAgICB2aXJ0dWFsIGJvb2wgaGFu
ZGxlSW5wdXRFdmVudChjb25zdCBXZWJJbnB1dEV2ZW50Jik7CiAgICAgdmlydHVhbCB2b2lkIG1v
dXNlQ2FwdHVyZUxvc3QoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Rm9jdXMoYm9vbCBlbmFibGUp
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126069</attachid>
            <date>2012-02-08 06:11:18 -0800</date>
            <delta_ts>2012-02-09 06:31:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77555-20120208091116.patch</filename>
            <type>text/plain</type>
            <size>9020</size>
            <attacher name="Jonathan Backer">backer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2ODg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjg1MTUxZWQyNDRkMDY3
M2JhZjI4Nzg0NDhkYWQ3ZmZiZTg5ZDA2Yi4uYTUxN2U4OTMxMGYxNTFhZDdiMTZjYjRiNmMyNjg5
NTY1NjI5NzE1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEyLTAyLTA4ICBKb25h
dGhhbiBCYWNrZXIgIDxiYWNrZXJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0g
QWRkIHNldE5lZWRzUmVkcmF3IHRvIFdlYldpZGdldAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc1NTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
TGF5ZXJUcmVlSG9zdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3Q6OnNl
dE5lZWRzUmVkcmF3KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q0xheWVyVHJlZUhvc3RJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9z
dEltcGw6OnNldEZ1bGxSb290TGF5ZXJEYW1hZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5o
OgorICAgICAgICAoQ0NMYXllclRyZWVIb3N0SW1wbCk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDQ1NpbmdsZVRocmVhZFByb3h5OjpzZXROZWVkc1JlZHJhdyk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDQ1RocmVhZFByb3h5OjpzZXROZWVkc1JlZHJhdyk6CisgICAgICAgIChXZWJDb3Jl
OjpDQ1RocmVhZFByb3h5OjpzZXRGdWxsUm9vdExheWVyRGFtYWdlT25JbXBsVGhyZWFkKToKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDVGhyZWFkUHJveHkuaDoKKyAgICAgICAgKENDVGhyZWFkUHJveHkpOgorCiAyMDEyLTAyLTA2
ICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTA2ODgzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBh
MjlhNzUyYWRkNzNmNzdjZGExMDVmNjgyMzI4ZDhhMTFiNWM4N2NiLi43MTI3MGRmM2E4MTY5ZjYy
MjhlNWRhN2FkNTA2YTE5ZmUyY2E1MzJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE5IEBACisyMDEyLTAyLTA4ICBKb25hdGhhbiBCYWNrZXIgIDxiYWNrZXJAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRkIHNldE5lZWRzUmVkcmF3IHRvIFdlYldp
ZGdldAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc1
NTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHB1
YmxpYy9XZWJXaWRnZXQuaDoKKyAgICAgICAgKFdlYldpZGdldCk6CisgICAgICAgIChXZWJLaXQ6
OldlYldpZGdldDo6c2V0TmVlZHNSZWRyYXcpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXROZWVkc1JlZHJhdyk6CisgICAg
ICAgIChXZWJLaXQpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5oOgorICAgICAgICAoV2Vi
Vmlld0ltcGwpOgorCiAyMDEyLTAyLTA2ICBKdWxpZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3
ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgZ2FyZGVuaW5nLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVI
b3N0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
TGF5ZXJUcmVlSG9zdC5jcHAKaW5kZXggNTBkNzZhNWU4YzU0MmQ3NjBiMWM2OTAwNTBkNjY4MzRm
Yjc5ODUxOC4uNTI1ZWM4ZGE5YjNlMTNjZmI4OTFkNWUyNjk1YTIxOTFkYjc1NzhjYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXll
clRyZWVIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwCkBAIC0yNTEsOSArMjUxLDggQEAgdm9pZCBDQ0xh
eWVyVHJlZUhvc3Q6OnNldE5lZWRzQ29tbWl0KCkKIAogdm9pZCBDQ0xheWVyVHJlZUhvc3Q6OnNl
dE5lZWRzUmVkcmF3KCkKIHsKLSAgICBpZiAoQ0NUaHJlYWRQcm94eTo6aW1wbFRocmVhZCgpKQot
ICAgICAgICBtX3Byb3h5LT5zZXROZWVkc1JlZHJhdygpOwotICAgIGVsc2UKKyAgICBtX3Byb3h5
LT5zZXROZWVkc1JlZHJhdygpOworICAgIGlmICghQ0NUaHJlYWRQcm94eTo6aW1wbFRocmVhZCgp
KQogICAgICAgICBtX2NsaWVudC0+c2NoZWR1bGVDb21wb3NpdGUoKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRy
ZWVIb3N0SW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmNwcAppbmRleCBlOTMwYmMyOWU4NmMwNzcwMmUwNzI2
ZjM1ZjM3ZWFhNWE1OGFkYzgyLi44MzhlYzI4YTEyODg4NjgzNzZhMGJiYjk3ODFhZGYyMmY4YWM0
NjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmNwcApAQCAtNTQyLDQg
KzU0MiwxMyBAQCBQYXNzT3duUHRyPENDU2Nyb2xsQW5kU2NhbGVTZXQ+IENDTGF5ZXJUcmVlSG9z
dEltcGw6OnByb2Nlc3NTY3JvbGxEZWx0YXMoKQogICAgIHJldHVybiBzY3JvbGxJbmZvLnJlbGVh
c2UoKTsKIH0KIAordm9pZCBDQ0xheWVyVHJlZUhvc3RJbXBsOjpzZXRGdWxsUm9vdExheWVyRGFt
YWdlKCkKK3sKKyAgICBpZiAocm9vdExheWVyKCkpIHsKKyAgICAgICAgQ0NSZW5kZXJTdXJmYWNl
KiByZW5kZXJTdXJmYWNlID0gcm9vdExheWVyKCktPnJlbmRlclN1cmZhY2UoKTsKKyAgICAgICAg
aWYgKHJlbmRlclN1cmZhY2UpCisgICAgICAgICAgICByZW5kZXJTdXJmYWNlLT5kYW1hZ2VUcmFj
a2VyKCktPmZvcmNlRnVsbERhbWFnZU5leHRVcGRhdGUoKTsKKyAgICB9Cit9CisKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5
ZXJUcmVlSG9zdEltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuaAppbmRleCA1NjlkNjlmYTNlZDY4MGZhNTE3ZTk4
YjBiMWY0NTU0OTAwODU2NDQ1Li4xN2NhZWQ3NmFlN2Q4MjM4ZjY3YzhhMmE1MmViMDE5NTE4MWQ4
N2FlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5oCkBAIC0xMTMsNiArMTEz
LDggQEAgcHVibGljOgogCiAgICAgUGFzc093blB0cjxDQ1Njcm9sbEFuZFNjYWxlU2V0PiBwcm9j
ZXNzU2Nyb2xsRGVsdGFzKCk7CiAKKyAgICB2b2lkIHNldEZ1bGxSb290TGF5ZXJEYW1hZ2UoKTsK
KwogcHJvdGVjdGVkOgogICAgIENDTGF5ZXJUcmVlSG9zdEltcGwoY29uc3QgQ0NTZXR0aW5ncyYs
IENDTGF5ZXJUcmVlSG9zdEltcGxDbGllbnQqKTsKICAgICBDQ0xheWVyVHJlZUhvc3RJbXBsQ2xp
ZW50KiBtX2NsaWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDU2luZ2xlVGhyZWFkUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5jcHAKaW5k
ZXggNzBkZWMwNTRjNTI1MjE2M2QzZGYwZDdmOTM0NWYzNzQxNjhkZmYyYS4uZjZiYzk1ODQ5ZTQ4
MTk5MzQ0ZmM0YWU3NmUxM2M4YWJmMjUwY2ZkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5nbGVU
aHJlYWRQcm94eS5jcHAKQEAgLTE5Niw2ICsxOTYsNyBAQCB2b2lkIENDU2luZ2xlVGhyZWFkUHJv
eHk6OnNldE5lZWRzUmVkcmF3KCkKIHsKICAgICAvLyBGSVhNRTogT25jZSB3ZSBtb3ZlIHJlbmRl
cl93aWRnZXQgc2NoZWR1bGluZyBpbnRvIHRoaXMgY2xhc3MsIHdlIGNhbgogICAgIC8vIHRyZWF0
IHJlZHJhdyByZXF1ZXN0cyBtb3JlIGVmZmljaWVudGx5IHRoYW4gY29tbWl0QW5kUmVkcmF3IHJl
cXVlc3RzLgorICAgIG1fbGF5ZXJUcmVlSG9zdEltcGwtPnNldEZ1bGxSb290TGF5ZXJEYW1hZ2Uo
KTsKICAgICBzZXROZWVkc0NvbW1pdCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3Bw
CmluZGV4IDRiMjAzZjM1NGI5OTNmNjMzMTMwNmJlYzJjMGVhZWFiZDgzZjQ4ZjMuLjRkMGIwN2Mx
M2FiNGNlZjg0YmJiZWIzMWI3NDg5M2JhZjZlZTg4MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJv
eHkuY3BwCkBAIC0yNDgsNiArMjQ4LDcgQEAgdm9pZCBDQ1RocmVhZFByb3h5OjpzZXROZWVkc1Jl
ZHJhdygpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBUUkFDRV9FVkVOVCgi
Q0NUaHJlYWRQcm94eTo6c2V0TmVlZHNSZWRyYXciLCB0aGlzLCAwKTsKKyAgICBDQ1Byb3h5Ojpp
bXBsVGhyZWFkKCktPnBvc3RUYXNrKGNyZWF0ZUNDVGhyZWFkVGFzayh0aGlzLCAmQ0NUaHJlYWRQ
cm94eTo6c2V0RnVsbFJvb3RMYXllckRhbWFnZU9uSW1wbFRocmVhZCkpOwogICAgIENDUHJveHk6
OmltcGxUaHJlYWQoKS0+cG9zdFRhc2soY3JlYXRlQ0NUaHJlYWRUYXNrKHRoaXMsICZDQ1RocmVh
ZFByb3h5OjpzZXROZWVkc1JlZHJhd09uSW1wbFRocmVhZCkpOwogfQogCkBAIC01OTQsNiArNTk1
LDEyIEBAIHZvaWQgQ0NUaHJlYWRQcm94eTo6bGF5ZXJUcmVlSG9zdENsb3NlZE9uSW1wbFRocmVh
ZChDQ0NvbXBsZXRpb25FdmVudCogY29tcGxldGlvCiAgICAgY29tcGxldGlvbi0+c2lnbmFsKCk7
CiB9CiAKK3ZvaWQgQ0NUaHJlYWRQcm94eTo6c2V0RnVsbFJvb3RMYXllckRhbWFnZU9uSW1wbFRo
cmVhZCgpCit7CisgICAgQVNTRVJUKGlzSW1wbFRocmVhZCgpKTsKKyAgICBtX2xheWVyVHJlZUhv
c3RJbXBsLT5zZXRGdWxsUm9vdExheWVyRGFtYWdlKCk7Cit9CisKIGJvb2wgQ0NUaHJlYWRQcm94
eTo6cGFydGlhbFRleHR1cmVVcGRhdGVDYXBhYmlsaXR5KCkgY29uc3QKIHsKICAgICByZXR1cm4g
IXRleHR1cmVVcGRhdGVzUGVyRnJhbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmgKaW5kZXggYjY1
YTZjNjA0ZTI5MjNmYzhmMDljZjlhYzdmNTU5NmQwYWIwY2RkMC4uMDgzNGU1MmQ0ZGU4OTY4ODNj
OGYxNjFmZjVkMDRjYTk0NTJlMWI2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuaApAQCAtMTAz
LDYgKzEwMyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBpbml0aWFsaXplTGF5ZXJSZW5kZXJlck9u
SW1wbFRocmVhZChDQ0NvbXBsZXRpb25FdmVudCosIGJvb2wqIGluaXRpYWxpemVTdWNjZWVkZWQs
IExheWVyUmVuZGVyZXJDYXBhYmlsaXRpZXMqKTsKICAgICB2b2lkIHNldFZpc2libGVPbkltcGxU
aHJlYWQoQ0NDb21wbGV0aW9uRXZlbnQqLCBib29sIHZpc2libGUpOwogICAgIHZvaWQgbGF5ZXJU
cmVlSG9zdENsb3NlZE9uSW1wbFRocmVhZChDQ0NvbXBsZXRpb25FdmVudCopOworICAgIHZvaWQg
c2V0RnVsbFJvb3RMYXllckRhbWFnZU9uSW1wbFRocmVhZCgpOwogCiAgICAgLy8gQWNjZXNzZWQg
b24gbWFpbiB0aHJlYWQgb25seS4KICAgICBib29sIG1fYW5pbWF0ZVJlcXVlc3RlZDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYldpZGdldC5oIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0LmgKaW5kZXggY2ExNjBhMjZlMDBiNzAy
NDljYmI1NTE3MzNjZTE0NDE3NmU2ZmFlYy4uNThmM2ZhMTY5NWY4Y2UzNjIyZDY3ZmNjNWNmNmM1
NTQwOWQ3ZmJiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
V2lkZ2V0LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0LmgK
QEAgLTEwNyw2ICsxMDcsMTEgQEAgcHVibGljOgogICAgIC8vIGFuaW1hdGUgb3IgbGF5b3V0IGlu
IHRoaXMgY2FzZS4KICAgICB2aXJ0dWFsIHZvaWQgY29tcG9zaXRlKGJvb2wgZmluaXNoKSA9IDA7
CiAKKyAgICAvLyBUZW1wb3JhcnkgbWV0aG9kIGZvciB0aGUgZW1iZWRkZXIgdG8gbm90aWZ5IHRo
ZSBXZWJXaWRnZXQgdGhhdCB0aGUgd2lkZ2V0CisgICAgLy8gaGFzIHRha2VuIGRhbWFnZSwgZS5n
LiBkdWUgdG8gYSB3aW5kb3cgZXhwb3NlLiBUaGlzIG1ldGhvZCB3aWxsIGJlCisgICAgLy8gcmVt
b3ZlZCB3aGVuIHRoZSBXZWJXaWRnZXQgaW52ZXJzaW9uIHBhdGNoIGxhbmRzIC0tLSBodHRwOi8v
Y3JidWcuY29tLzExMjgzNworICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc1JlZHJhdygpIHsgfQor
CiAgICAgLy8gQ2FsbGVkIHRvIGluZm9ybSB0aGUgV2ViV2lkZ2V0IG9mIGEgY2hhbmdlIGluIHRo
ZW1lLgogICAgIC8vIEltcGxlbWVudG9ycyB0aGF0IGNhY2hlIHJlbmRlcmVkIGNvcGllcyBvZiB3
aWRnZXRzIG5lZWQgdG8gcmUtcmVuZGVyCiAgICAgLy8gb24gcmVjZWl2aW5nIHRoaXMgbWVzc2Fn
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3Bw
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCmluZGV4IDQ2Mjlj
YmIzMmFiZTViNDMyNGU1NmEwOTdmZTM3ZDY4NTc1NWVhMDQuLjQzNmIxZmZhYTgzMzM1M2EyNjY0
ZTVhMWIxZWM1NmQ1ZTE3MDBmZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJW
aWV3SW1wbC5jcHAKQEAgLTEyNzEsNiArMTI3MSwxNCBAQCB2b2lkIFdlYlZpZXdJbXBsOjpjb21w
b3NpdGUoYm9vbCkKICNlbmRpZgogfQogCit2b2lkIFdlYlZpZXdJbXBsOjpzZXROZWVkc1JlZHJh
dygpCit7CisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIGlmIChtX2xheWVy
VHJlZUhvc3QgJiYgaXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKCkpCisgICAgICAgIG1f
bGF5ZXJUcmVlSG9zdC0+c2V0TmVlZHNSZWRyYXcoKTsKKyNlbmRpZgorfQorCiB2b2lkIFdlYlZp
ZXdJbXBsOjpsb3NlQ29tcG9zaXRvckNvbnRleHQoaW50IG51bVRpbWVzKQogewogI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3
SW1wbC5oCmluZGV4IGEwMzlhMDljZWI4N2MyMGUzZGE4NDMzMzFmMWJlYWFlZDNmNGYxMzEuLmZl
MDE5NzdiZmRhZGYyMzg0NDc4YzhkYTcwYmNjZDgwODc0N2JlYWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaApAQCAtMTEzLDYgKzExMyw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgcGFpbnQoV2ViQ2FudmFzKiwgY29uc3QgV2ViUmVjdCYpOwogICAgIHZp
cnR1YWwgdm9pZCB0aGVtZUNoYW5nZWQoKTsKICAgICB2aXJ0dWFsIHZvaWQgY29tcG9zaXRlKGJv
b2wgZmluaXNoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNSZWRyYXcoKTsKICAgICB2aXJ0
dWFsIGJvb2wgaGFuZGxlSW5wdXRFdmVudChjb25zdCBXZWJJbnB1dEV2ZW50Jik7CiAgICAgdmly
dHVhbCB2b2lkIG1vdXNlQ2FwdHVyZUxvc3QoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Rm9jdXMo
Ym9vbCBlbmFibGUpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126295</attachid>
            <date>2012-02-09 06:32:05 -0800</date>
            <delta_ts>2012-02-09 07:40:49 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-77555-20120209093203.patch</filename>
            <type>text/plain</type>
            <size>9227</size>
            <attacher name="W. James MacLean">wjmaclean</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3MjMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzBjOThhMTYyMWIwMDNh
OTk5NmI0ODE4ZWVlZjVlMmJkZDMzYTNiYy4uM2NkNmNhZWU2YWQyMzRjZjY4MjgzMjY3MGY3ZDc5
ZDI5NmFiMjkzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEyLTAyLTA5ICBKb25h
dGhhbiBCYWNrZXIgIDxiYWNrZXJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0g
QWRkIHNldE5lZWRzUmVkcmF3IHRvIFdlYldpZGdldAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc1NTUKKworICAgICAgICBSZXZpZXdlZCBieSBKYW1l
cyBSb2JpbnNvbi4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
TGF5ZXJUcmVlSG9zdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3Q6OnNl
dE5lZWRzUmVkcmF3KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q0xheWVyVHJlZUhvc3RJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9z
dEltcGw6OnNldEZ1bGxSb290TGF5ZXJEYW1hZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5o
OgorICAgICAgICAoQ0NMYXllclRyZWVIb3N0SW1wbCk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDQ1NpbmdsZVRocmVhZFByb3h5OjpzZXROZWVkc1JlZHJhdyk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDQ1RocmVhZFByb3h5OjpzZXROZWVkc1JlZHJhdyk6CisgICAgICAgIChXZWJDb3Jl
OjpDQ1RocmVhZFByb3h5OjpzZXRGdWxsUm9vdExheWVyRGFtYWdlT25JbXBsVGhyZWFkKToKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDVGhyZWFkUHJveHkuaDoKKyAgICAgICAgKENDVGhyZWFkUHJveHkpOgorCiAyMDEyLTAyLTA5
ICBBbGV4ZWkgRmlsaXBwb3YgIDxhbGV4ZWlmQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIg
SW5zcGVjdG9yOiBTaG93IHBlcmNlbnRhZ2UgYnkgZGVmYXVsdCBpbiBoZWFwIHByb2ZpbGVyLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBjMzgzN2QxY2ZmYzRmNWI4NTA0NDAxY2NiMDQy
YmQxOTVjYjMzNDllLi4wNGI1YWFkNGFmMTIyN2I3YWM4OTQwNjhmZTdiZmFhMjAzMDM4NjQ2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTAyLTA5ICBK
b25hdGhhbiBCYWNrZXIgIDxiYWNrZXJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1
bV0gQWRkIHNldE5lZWRzUmVkcmF3IHRvIFdlYldpZGdldAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc1NTUKKworICAgICAgICBSZXZpZXdlZCBieSBK
YW1lcyBSb2JpbnNvbi4KKworICAgICAgICAqIHB1YmxpYy9XZWJXaWRnZXQuaDoKKyAgICAgICAg
KFdlYldpZGdldCk6CisgICAgICAgIChXZWJLaXQ6OldlYldpZGdldDo6c2V0TmVlZHNSZWRyYXcp
OgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjpzZXROZWVkc1JlZHJhdyk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIHNy
Yy9XZWJWaWV3SW1wbC5oOgorICAgICAgICAoV2ViVmlld0ltcGwpOgorCiAyMDEyLTAyLTA4ICBS
YXltb25kIExpdSAgPHJheW1vbmQubGl1QGludGVsLmNvbT4KIAogICAgICAgICBGaXggYSB0eXBv
IGZvciByMTA3MTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcAppbmRleCAxNWEzMDc0
ZWJiZTJlYjBlMTRiZmEyNmJiZjQyOTYwNGQxYzc1NGEyLi4xODY0OTA5NTI3ZjI2NjQ3OTgzNGUz
NzkxYmIxZTYwZjdjZWIwNWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAKQEAg
LTI1NCw5ICsyNTQsOCBAQCB2b2lkIENDTGF5ZXJUcmVlSG9zdDo6c2V0TmVlZHNDb21taXQoKQog
CiB2b2lkIENDTGF5ZXJUcmVlSG9zdDo6c2V0TmVlZHNSZWRyYXcoKQogewotICAgIGlmIChDQ1Ro
cmVhZFByb3h5OjppbXBsVGhyZWFkKCkpCi0gICAgICAgIG1fcHJveHktPnNldE5lZWRzUmVkcmF3
KCk7Ci0gICAgZWxzZQorICAgIG1fcHJveHktPnNldE5lZWRzUmVkcmF3KCk7CisgICAgaWYgKCFD
Q1RocmVhZFByb3h5OjppbXBsVGhyZWFkKCkpCiAgICAgICAgIG1fY2xpZW50LT5zY2hlZHVsZUNv
bXBvc2l0ZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuY3BwCmlu
ZGV4IDA4ODM3N2NkZGQ2YTc4YTg3YWU0MjFiNjJiMzEzZGE2MjU3OGNiZTAuLmU0NmFlMzI0OWYz
ODE1Y2Q5YjAxOTFhOTI4NzFmYTE3ZjJhOWRiODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJU
cmVlSG9zdEltcGwuY3BwCkBAIC01NDIsNCArNTQyLDEzIEBAIFBhc3NPd25QdHI8Q0NTY3JvbGxB
bmRTY2FsZVNldD4gQ0NMYXllclRyZWVIb3N0SW1wbDo6cHJvY2Vzc1Njcm9sbERlbHRhcygpCiAg
ICAgcmV0dXJuIHNjcm9sbEluZm8ucmVsZWFzZSgpOwogfQogCit2b2lkIENDTGF5ZXJUcmVlSG9z
dEltcGw6OnNldEZ1bGxSb290TGF5ZXJEYW1hZ2UoKQoreworICAgIGlmIChyb290TGF5ZXIoKSkg
eworICAgICAgICBDQ1JlbmRlclN1cmZhY2UqIHJlbmRlclN1cmZhY2UgPSByb290TGF5ZXIoKS0+
cmVuZGVyU3VyZmFjZSgpOworICAgICAgICBpZiAocmVuZGVyU3VyZmFjZSkKKyAgICAgICAgICAg
IHJlbmRlclN1cmZhY2UtPmRhbWFnZVRyYWNrZXIoKS0+Zm9yY2VGdWxsRGFtYWdlTmV4dFVwZGF0
ZSgpOworICAgIH0KK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5oCmlu
ZGV4IDU2OWQ2OWZhM2VkNjgwZmE1MTdlOThiMGIxZjQ1NTQ5MDA4NTY0NDUuLjQzM2ZhZGE2ODA4
ZTc0NzI3MGJhY2M0Yzc5NTk5MDgwZDA1Nzc1NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJl
ZUhvc3RJbXBsLmgKQEAgLTExMyw2ICsxMTMsMTAgQEAgcHVibGljOgogCiAgICAgUGFzc093blB0
cjxDQ1Njcm9sbEFuZFNjYWxlU2V0PiBwcm9jZXNzU2Nyb2xsRGVsdGFzKCk7CiAKKyAgICAvLyBX
aGVyZSBwb3NzaWJsZSwgcmVkcmF3cyBhcmUgc2Npc3NvcmVkIHRvIGEgZGFtYWdlIHJlZ2lvbiBj
YWxjdWxhdGVkIGZyb20gY2hhbmdlcyB0bworICAgIC8vIGxheWVyIHByb3BlcnRpZXMuIFRoaXMg
ZnVuY3Rpb24gb3ZlcnJpZGVzIHRoZSBkYW1hZ2UgcmVnaW9uIGZvciB0aGUgbmV4dCBkcmF3IGN5
Y2xlLgorICAgIHZvaWQgc2V0RnVsbFJvb3RMYXllckRhbWFnZSgpOworCiBwcm90ZWN0ZWQ6CiAg
ICAgQ0NMYXllclRyZWVIb3N0SW1wbChjb25zdCBDQ1NldHRpbmdzJiwgQ0NMYXllclRyZWVIb3N0
SW1wbENsaWVudCopOwogICAgIENDTGF5ZXJUcmVlSG9zdEltcGxDbGllbnQqIG1fY2xpZW50Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NTaW5nbGVUaHJlYWRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmNwcAppbmRleCAyZTQ4ZTEwZjVlNWNj
NzAyNDhhNTM4NDQ5ZGQ1ZTQyOGFhMmU4ODJlLi4wNzI2NWRiNzcyODBhMGU3NTM2YTdlZTBkOTUw
MDE4YWNlYzkzZDZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmNwcApA
QCAtMjAxLDYgKzIwMSw3IEBAIHZvaWQgQ0NTaW5nbGVUaHJlYWRQcm94eTo6c2V0TmVlZHNSZWRy
YXcoKQogewogICAgIC8vIEZJWE1FOiBPbmNlIHdlIG1vdmUgcmVuZGVyX3dpZGdldCBzY2hlZHVs
aW5nIGludG8gdGhpcyBjbGFzcywgd2UgY2FuCiAgICAgLy8gdHJlYXQgcmVkcmF3IHJlcXVlc3Rz
IG1vcmUgZWZmaWNpZW50bHkgdGhhbiBjb21taXRBbmRSZWRyYXcgcmVxdWVzdHMuCisgICAgbV9s
YXllclRyZWVIb3N0SW1wbC0+c2V0RnVsbFJvb3RMYXllckRhbWFnZSgpOwogICAgIHNldE5lZWRz
Q29tbWl0KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAKaW5kZXggOGNhODUyZGRh
NmM4NmZjYTcwMWU0N2MzZDRhMWUwNTZiY2RjMDNmNi4uYjlhNjZiZDQwNmJkNDI3MGJlMDM1Mzhk
OGY4OTYwYTgzMDc1MzA5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAKQEAgLTI1MCw2
ICsyNTAsNyBAQCB2b2lkIENDVGhyZWFkUHJveHk6OnNldE5lZWRzUmVkcmF3KCkKIHsKICAgICBB
U1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIFRSQUNFX0VWRU5UKCJDQ1RocmVhZFByb3h5Ojpz
ZXROZWVkc1JlZHJhdyIsIHRoaXMsIDApOworICAgIENDUHJveHk6OmltcGxUaHJlYWQoKS0+cG9z
dFRhc2soY3JlYXRlQ0NUaHJlYWRUYXNrKHRoaXMsICZDQ1RocmVhZFByb3h5OjpzZXRGdWxsUm9v
dExheWVyRGFtYWdlT25JbXBsVGhyZWFkKSk7CiAgICAgQ0NQcm94eTo6aW1wbFRocmVhZCgpLT5w
b3N0VGFzayhjcmVhdGVDQ1RocmVhZFRhc2sodGhpcywgJkNDVGhyZWFkUHJveHk6OnNldE5lZWRz
UmVkcmF3T25JbXBsVGhyZWFkKSk7CiB9CiAKQEAgLTU5Nyw2ICs1OTgsMTIgQEAgdm9pZCBDQ1Ro
cmVhZFByb3h5OjpsYXllclRyZWVIb3N0Q2xvc2VkT25JbXBsVGhyZWFkKENDQ29tcGxldGlvbkV2
ZW50KiBjb21wbGV0aW8KICAgICBjb21wbGV0aW9uLT5zaWduYWwoKTsKIH0KIAordm9pZCBDQ1Ro
cmVhZFByb3h5OjpzZXRGdWxsUm9vdExheWVyRGFtYWdlT25JbXBsVGhyZWFkKCkKK3sKKyAgICBB
U1NFUlQoaXNJbXBsVGhyZWFkKCkpOworICAgIG1fbGF5ZXJUcmVlSG9zdEltcGwtPnNldEZ1bGxS
b290TGF5ZXJEYW1hZ2UoKTsKK30KKwogc2l6ZV90IENDVGhyZWFkUHJveHk6Om1heFBhcnRpYWxU
ZXh0dXJlVXBkYXRlcygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHRleHR1cmVVcGRhdGVzUGVyRnJh
bWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ1RocmVhZFByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmgKaW5kZXggZDMwNGFjZDk2Y2FmMTJiODFkYTJiYzAw
MjdkZjQ0N2Y3NTI4MGY5Ni4uODdhZDI3ZDBlYWM1Zjg1ZDI3NmFiN2QwODliZGJlMmQ3ODkzMjIz
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NUaHJlYWRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuaApAQCAtMTAzLDYgKzEwMyw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBpbml0aWFsaXplTGF5ZXJSZW5kZXJlck9uSW1wbFRocmVhZChDQ0NvbXBsZXRp
b25FdmVudCosIGJvb2wqIGluaXRpYWxpemVTdWNjZWVkZWQsIExheWVyUmVuZGVyZXJDYXBhYmls
aXRpZXMqKTsKICAgICB2b2lkIHNldFZpc2libGVPbkltcGxUaHJlYWQoQ0NDb21wbGV0aW9uRXZl
bnQqLCBib29sIHZpc2libGUpOwogICAgIHZvaWQgbGF5ZXJUcmVlSG9zdENsb3NlZE9uSW1wbFRo
cmVhZChDQ0NvbXBsZXRpb25FdmVudCopOworICAgIHZvaWQgc2V0RnVsbFJvb3RMYXllckRhbWFn
ZU9uSW1wbFRocmVhZCgpOwogCiAgICAgLy8gQWNjZXNzZWQgb24gbWFpbiB0aHJlYWQgb25seS4K
ICAgICBib29sIG1fYW5pbWF0ZVJlcXVlc3RlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYldpZGdldC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViV2lkZ2V0LmgKaW5kZXggY2ExNjBhMjZlMDBiNzAyNDljYmI1NTE3MzNjZTE0NDE3NmU2
ZmFlYy4uNThmM2ZhMTY5NWY4Y2UzNjIyZDY3ZmNjNWNmNmM1NTQwOWQ3ZmJiMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0LmgKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0LmgKQEAgLTEwNyw2ICsxMDcsMTEgQEAg
cHVibGljOgogICAgIC8vIGFuaW1hdGUgb3IgbGF5b3V0IGluIHRoaXMgY2FzZS4KICAgICB2aXJ0
dWFsIHZvaWQgY29tcG9zaXRlKGJvb2wgZmluaXNoKSA9IDA7CiAKKyAgICAvLyBUZW1wb3Jhcnkg
bWV0aG9kIGZvciB0aGUgZW1iZWRkZXIgdG8gbm90aWZ5IHRoZSBXZWJXaWRnZXQgdGhhdCB0aGUg
d2lkZ2V0CisgICAgLy8gaGFzIHRha2VuIGRhbWFnZSwgZS5nLiBkdWUgdG8gYSB3aW5kb3cgZXhw
b3NlLiBUaGlzIG1ldGhvZCB3aWxsIGJlCisgICAgLy8gcmVtb3ZlZCB3aGVuIHRoZSBXZWJXaWRn
ZXQgaW52ZXJzaW9uIHBhdGNoIGxhbmRzIC0tLSBodHRwOi8vY3JidWcuY29tLzExMjgzNworICAg
IHZpcnR1YWwgdm9pZCBzZXROZWVkc1JlZHJhdygpIHsgfQorCiAgICAgLy8gQ2FsbGVkIHRvIGlu
Zm9ybSB0aGUgV2ViV2lkZ2V0IG9mIGEgY2hhbmdlIGluIHRoZW1lLgogICAgIC8vIEltcGxlbWVu
dG9ycyB0aGF0IGNhY2hlIHJlbmRlcmVkIGNvcGllcyBvZiB3aWRnZXRzIG5lZWQgdG8gcmUtcmVu
ZGVyCiAgICAgLy8gb24gcmVjZWl2aW5nIHRoaXMgbWVzc2FnZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCmluZGV4IGEwNWU5ODkyMDdlMzkxNzMzMjFhMGU3MWNm
MzY0NTNkNmEzYTM1ZGQuLjBjOWU0NjUwZjMwNTRhNGM5MWQwNjExODQ0YmRkOGZmYjg1MDVmMWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTEyNTcs
NiArMTI1NywxNCBAQCB2b2lkIFdlYlZpZXdJbXBsOjpjb21wb3NpdGUoYm9vbCkKICNlbmRpZgog
fQogCit2b2lkIFdlYlZpZXdJbXBsOjpzZXROZWVkc1JlZHJhdygpCit7CisjaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIGlmIChtX2xheWVyVHJlZUhvc3QgJiYgaXNBY2NlbGVy
YXRlZENvbXBvc2l0aW5nQWN0aXZlKCkpCisgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0TmVl
ZHNSZWRyYXcoKTsKKyNlbmRpZgorfQorCiB2b2lkIFdlYlZpZXdJbXBsOjpsb3NlQ29tcG9zaXRv
ckNvbnRleHQoaW50IG51bVRpbWVzKQogewogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCmluZGV4IDgwMGQxODI1
NDM2ZjEzMDQ5ZDZlZjk2ZTkzZDZhMzVmOTFiMjg0NjQuLmQ0MmJjOTRiZTJmYTA4ZTQxMTY1MjVj
ZWMxNjQ0Yzc0OGQyNGU1YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlZpZXdJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0lt
cGwuaApAQCAtMTEwLDYgKzExMCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnQo
V2ViQ2FudmFzKiwgY29uc3QgV2ViUmVjdCYpOwogICAgIHZpcnR1YWwgdm9pZCB0aGVtZUNoYW5n
ZWQoKTsKICAgICB2aXJ0dWFsIHZvaWQgY29tcG9zaXRlKGJvb2wgZmluaXNoKTsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0TmVlZHNSZWRyYXcoKTsKICAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlSW5wdXRF
dmVudChjb25zdCBXZWJJbnB1dEV2ZW50Jik7CiAgICAgdmlydHVhbCB2b2lkIG1vdXNlQ2FwdHVy
ZUxvc3QoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Rm9jdXMoYm9vbCBlbmFibGUpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>