<?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>80871</bug_id>
          
          <creation_ts>2012-03-12 12:44:44 -0700</creation_ts>
          <short_desc>Reuse buffer allocation if canvas size does not change</short_desc>
          <delta_ts>2022-07-18 14:15:25 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Canvas</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>81710</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sami Kyostila">skyostil</reporter>
          <assigned_to name="Sami Kyostila">skyostil</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>jamesr</cc>
    
    <cc>leviw</cc>
    
    <cc>oliver</cc>
    
    <cc>senorblanco</cc>
    
    <cc>tomhudson</cc>
    
    <cc>twiz</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>576405</commentid>
    <comment_count>0</comment_count>
    <who name="Sami Kyostila">skyostil</who>
    <bug_when>2012-03-12 12:44:44 -0700</bug_when>
    <thetext>If the user mutates the width or height attributes of a canvas element, the contents of the canvas should be cleared. This has become a common idiom to clear the canvas &quot;quickly&quot; at the start of a frame. Currently this code path also triggers a reallocation of the canvas, making the operation more expensive than necessary if the size of the canvas remains constant. The code should be optimized to reuse the existing allocation if possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577687</commentid>
    <comment_count>1</comment_count>
      <attachid>131697</attachid>
    <who name="Sami Kyostila">skyostil</who>
    <bug_when>2012-03-13 12:46:33 -0700</bug_when>
    <thetext>Created attachment 131697
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577697</commentid>
    <comment_count>2</comment_count>
    <who name="Sami Kyostila">skyostil</who>
    <bug_when>2012-03-13 12:51:45 -0700</bug_when>
    <thetext>N.B. this patch improves performance of the Canvas &quot;full clear&quot; benchmark at https://github.com/sibblingz/HTML5-Game-Benchmarks by ~1.9x (Chromium Linux, z600, Quadro FX 380).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577699</commentid>
    <comment_count>3</comment_count>
    <who name="Sami Kyostila">skyostil</who>
    <bug_when>2012-03-13 12:53:09 -0700</bug_when>
    <thetext>N.B. this patch improves performance of the Canvas &quot;full clear&quot; benchmark at https://github.com/sibblingz/HTML5-Game-Benchmarks by ~1.9x (Chromium Linux, z600, Quadro FX 380).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577920</commentid>
    <comment_count>4</comment_count>
      <attachid>131697</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-13 15:46:55 -0700</bug_when>
    <thetext>Comment on attachment 131697
Patch

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

New failing tests:
platform/chromium/virtual/gpu/fast/canvas/setWidthResetAfterForcedRender.html
canvas/philip/tests/initial.reset.2dstate.html
canvas/philip/tests/initial.reset.transform.html
platform/chromium/virtual/gpu/canvas/philip/tests/initial.reset.clip.html
fast/canvas/setWidthResetAfterForcedRender.html
canvas/philip/tests/initial.reset.clip.html
platform/chromium/virtual/gpu/canvas/philip/tests/initial.reset.2dstate.html
platform/chromium/virtual/gpu/canvas/philip/tests/initial.reset.transform.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578517</commentid>
    <comment_count>5</comment_count>
    <who name="anton muhin">antonm</who>
    <bug_when>2012-03-14 10:06:16 -0700</bug_when>
    <thetext>Just in case, I don&apos;t think I am a right reviewer for this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578622</commentid>
    <comment_count>6</comment_count>
    <who name="Sami Kyostila">skyostil</who>
    <bug_when>2012-03-14 12:02:49 -0700</bug_when>
    <thetext>Thanks for the heads-up Anton, I just added you based on &apos;git blame&apos;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578624</commentid>
    <comment_count>7</comment_count>
      <attachid>131897</attachid>
    <who name="Sami Kyostila">skyostil</who>
    <bug_when>2012-03-14 12:06:45 -0700</bug_when>
    <thetext>Created attachment 131897
Patch

Fixed most test failures by correctly resetting to initial context state. Still failing in fast/canvas/setWidthResetAfterForcedRender.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578714</commentid>
    <comment_count>8</comment_count>
      <attachid>131897</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-03-14 13:31:10 -0700</bug_when>
    <thetext>Comment on attachment 131897
Patch

Attachment 131897 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/11952339</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578871</commentid>
    <comment_count>9</comment_count>
      <attachid>131897</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-14 15:49:19 -0700</bug_when>
    <thetext>Comment on attachment 131897
Patch

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

New failing tests:
fast/canvas/setWidthResetAfterForcedRender.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579459</commentid>
    <comment_count>10</comment_count>
      <attachid>132064</attachid>
    <who name="Sami Kyostila">skyostil</who>
    <bug_when>2012-03-15 10:00:13 -0700</bug_when>
    <thetext>Created attachment 132064
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579462</commentid>
    <comment_count>11</comment_count>
    <who name="Sami Kyostila">skyostil</who>
    <bug_when>2012-03-15 10:01:28 -0700</bug_when>
    <thetext>Turns out the remaining test failure was correct after all (see changelog), so I&apos;ve included a new baseline for that test. Anyone up for a review?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579546</commentid>
    <comment_count>12</comment_count>
      <attachid>132064</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-03-15 11:18:27 -0700</bug_when>
    <thetext>Comment on attachment 132064
Patch

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

&gt; Source/WebCore/html/HTMLCanvasElement.cpp:603
&gt; +        context3D-&gt;clear(GraphicsContext3D::COLOR_BUFFER_BIT | GraphicsContext3D::DEPTH_BUFFER_BIT | GraphicsContext3D::STENCIL_BUFFER_BIT);

you need to make this context current before making calls on it. you also have to worry about what the clear color is, right?

I&apos;m not sure think this does the right thing w.r.t. preservesDrawingBuffer semantics - is setting width/height considered a &quot;draw&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579580</commentid>
    <comment_count>13</comment_count>
      <attachid>132064</attachid>
    <who name="Sami Kyostila">skyostil</who>
    <bug_when>2012-03-15 11:37:53 -0700</bug_when>
    <thetext>Comment on attachment 132064
Patch

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

&gt;&gt; Source/WebCore/html/HTMLCanvasElement.cpp:603
&gt;&gt; +        context3D-&gt;clear(GraphicsContext3D::COLOR_BUFFER_BIT | GraphicsContext3D::DEPTH_BUFFER_BIT | GraphicsContext3D::STENCIL_BUFFER_BIT);
&gt; 
&gt; you need to make this context current before making calls on it. you also have to worry about what the clear color is, right?
&gt; 
&gt; I&apos;m not sure think this does the right thing w.r.t. preservesDrawingBuffer semantics - is setting width/height considered a &quot;draw&quot;?

Ah, I was thinking the context managed MakeCurrent by itself.

Based on the canvas spec language I would equate touching the dimensions to doing a clear, so it feels like we should clear regardless of preserveDrawingBuffer.

This isn&apos;t also quite correct in that we are missing something like context3D-&gt;reset() to make the context state pristine. Recreating the context from scratch may be the most practical solution, which probably negates any performance advantages of keeping the buffer around :\

Perhaps I should just disable this optimization for WebGL for now (and open another bug)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579584</commentid>
    <comment_count>14</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-03-15 11:39:00 -0700</bug_when>
    <thetext>I think handling WebGL in a separate patch would be better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580410</commentid>
    <comment_count>15</comment_count>
      <attachid>132258</attachid>
    <who name="Sami Kyostila">skyostil</who>
    <bug_when>2012-03-16 05:27:51 -0700</bug_when>
    <thetext>Created attachment 132258
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580416</commentid>
    <comment_count>16</comment_count>
    <who name="Sami Kyostila">skyostil</who>
    <bug_when>2012-03-16 05:33:12 -0700</bug_when>
    <thetext>Removed WebGL bits and opened https://bugs.webkit.org/show_bug.cgi?id=81340.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580815</commentid>
    <comment_count>17</comment_count>
      <attachid>132258</attachid>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-03-16 12:39:25 -0700</bug_when>
    <thetext>Comment on attachment 132258
Patch

We&apos;ve implemented similar solutions in the past (in DrawingBuffer for example), but now I&apos;m not convinced this is a great approach, although I can&apos;t remember the problematic case.  The current plan is simply to make ImageBuffer allocation cheap.  It&apos;s currently fairly cheap in the software case, but expensive in the accelerated case (due to command buffer overhead and the like).  We have a plan to improve it in Skia by serving up backing textures from cache:  http://code.google.com/p/skia/issues/detail?id=521 which would benefit not only canvas, but accelerated filters as well (which also use ImageBuffer).

I&apos;m also not sure about the image change in this case:  it looks like the repaint rect is slightly smaller than it used to be  which doesn&apos;t give me confidence that the solution is correct (although perhaps that&apos;s due to not invalidating the borders?).

Apple folks, what do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580822</commentid>
    <comment_count>18</comment_count>
    <who name="Sami Kyostila">skyostil</who>
    <bug_when>2012-03-16 12:51:08 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; (From update of attachment 132258 [details])
&gt; We&apos;ve implemented similar solutions in the past (in DrawingBuffer for example), but now I&apos;m not convinced this is a great approach, although I can&apos;t remember the problematic case.  The current plan is simply to make ImageBuffer allocation cheap.  It&apos;s currently fairly cheap in the software case, but expensive in the accelerated case (due to command buffer overhead and the like).  We have a plan to improve it in Skia by serving up backing textures from cache:  http://code.google.com/p/skia/issues/detail?id=521 which would benefit not only canvas, but accelerated filters as well (which also use ImageBuffer).

I guess that would work as well, although I&apos;m slightly worried about the memory cost of textures sitting in the allocation cache. At least there should be a way to do some accounting and management of that cache from outside Skia.

If you do recall any of the problems you saw with DrawingBuffer please let me know. On a related note, is there are reason why (accelerated) canvas2d doesn&apos;t just use DrawingBuffer like WebGL does?
 
&gt; I&apos;m also not sure about the image change in this case:  it looks like the repaint rect is slightly smaller than it used to be  which doesn&apos;t give me confidence that the solution is correct (although perhaps that&apos;s due to not invalidating the borders?).

Please see the comment in the LayoutTests changelog about this. In short, the reason for the smaller paint rect is that we are no longer repainting the selection rectangle when the canvas is reset.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580829</commentid>
    <comment_count>19</comment_count>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-03-16 12:57:16 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; (In reply to comment #17)
&gt; &gt; (From update of attachment 132258 [details] [details])
&gt; &gt; We&apos;ve implemented similar solutions in the past (in DrawingBuffer for example), but now I&apos;m not convinced this is a great approach, although I can&apos;t remember the problematic case.  The current plan is simply to make ImageBuffer allocation cheap.  It&apos;s currently fairly cheap in the software case, but expensive in the accelerated case (due to command buffer overhead and the like).  We have a plan to improve it in Skia by serving up backing textures from cache:  http://code.google.com/p/skia/issues/detail?id=521 which would benefit not only canvas, but accelerated filters as well (which also use ImageBuffer).
&gt; 
&gt; I guess that would work as well, although I&apos;m slightly worried about the memory cost of textures sitting in the allocation cache. At least there should be a way to do some accounting and management of that cache from outside Skia.
&gt; 
&gt; If you do recall any of the problems you saw with DrawingBuffer please let me know. On a related note, is there are reason why (accelerated) canvas2d doesn&apos;t just use DrawingBuffer like WebGL does?

We used to, but for one thing we wanted a way for stencil buffers to be shared between multiple canvas 2D backing stores, and Ganesh (skia) already has such a facility.

&gt; &gt; I&apos;m also not sure about the image change in this case:  it looks like the repaint rect is slightly smaller than it used to be  which doesn&apos;t give me confidence that the solution is correct (although perhaps that&apos;s due to not invalidating the borders?).
&gt; 
&gt; Please see the comment in the LayoutTests changelog about this. In short, the reason for the smaller paint rect is that we are no longer repainting the selection rectangle when the canvas is reset.

Ahh, sorry; missed that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580839</commentid>
    <comment_count>20</comment_count>
      <attachid>132258</attachid>
    <who name="Jeff Timanus">twiz</who>
    <bug_when>2012-03-16 13:02:41 -0700</bug_when>
    <thetext>Comment on attachment 132258
Patch

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

I&apos;m not extremely familiar with the interaction between the various notifications.

The changes look good in general.  Just an observation about where the selective clearing logic should be placed.

&gt; Source/WebCore/html/HTMLCanvasElement.cpp:258
&gt; +    if (hadImageBuffer &amp;&amp; oldSize == IntSize(w, h) &amp;&amp; (!m_context || m_context-&gt;is2d())) {

Under which circumstances will m_context not be assigned?

Is it possible to put all of this logic in HTMLCanvasElement::setSurfaceSize?  The notifications below could be skipped if old-size == new-size.

&gt; Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp:138
&gt; +            while (stackSize--)

Was this a previously glaring error?  Good catch!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580848</commentid>
    <comment_count>21</comment_count>
      <attachid>132258</attachid>
    <who name="Sami Kyostila">skyostil</who>
    <bug_when>2012-03-16 13:10:09 -0700</bug_when>
    <thetext>Comment on attachment 132258
Patch

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

&gt;&gt; Source/WebCore/html/HTMLCanvasElement.cpp:258
&gt;&gt; +    if (hadImageBuffer &amp;&amp; oldSize == IntSize(w, h) &amp;&amp; (!m_context || m_context-&gt;is2d())) {
&gt; 
&gt; Under which circumstances will m_context not be assigned?
&gt; 
&gt; Is it possible to put all of this logic in HTMLCanvasElement::setSurfaceSize?  The notifications below could be skipped if old-size == new-size.

You could have hadImageBuffer==true and m_context==NULL if this canvas has been painted onto a different canvas, but a context was never created on the first canvas. Here I need to check the context so that I can avoid doing this optimization for WebGL.

You&apos;re right that setSurfaceSize() is a more logical place for this. I&apos;ll redo this bit.

&gt;&gt; Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp:138
&gt;&gt; +            while (stackSize--)
&gt; 
&gt; Was this a previously glaring error?  Good catch!

Actually it wasn&apos;t :) I just needed to save and restore a pristine copy of the context state, so now the first level in the state stack is actually used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581787</commentid>
    <comment_count>22</comment_count>
      <attachid>132581</attachid>
    <who name="Sami Kyostila">skyostil</who>
    <bug_when>2012-03-19 07:45:22 -0700</bug_when>
    <thetext>Created attachment 132581
Patch

- Moved logic to setSurfaceSize()
- Avoid notifications if surface size remains constant.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582280</commentid>
    <comment_count>23</comment_count>
      <attachid>132581</attachid>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-03-19 14:47:52 -0700</bug_when>
    <thetext>Comment on attachment 132581
Patch

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

&gt; Source/WebCore/html/HTMLCanvasElement.cpp:259
&gt; +    if (oldSize == size())
&gt; +        return;

Thinking out loud:  This early-out means we&apos;re no longer calling renderer-&gt;repaint() on a same-size change.  I&apos;m not actually sure why this repaint call is there (it has been there for a long time), but I think it does explain why we&apos;re no longer redrawing the borders with your change (we&apos;re no longer invalidating them).  We should be ok, since your new call to CanvasRenderingContext2D::clear() should also call didDraw() which should do the relevant invalidation of the main canvas content, which is all we really should care about.  OK, I think I&apos;ve convinced myself.

However, I&apos;m not sure if WebGL is OK with this, since it doesn&apos;t have the optimization, so it doesn&apos;t do the notification.

&gt; Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp:-168
&gt; -#if USE(ACCELERATED_COMPOSITING)
&gt; -    RenderBox* renderBox = canvas()-&gt;renderBox();
&gt; -    if (renderBox &amp;&amp; renderBox-&gt;hasLayer() &amp;&amp; renderBox-&gt;layer()-&gt;hasAcceleratedCompositing())
&gt; -        renderBox-&gt;layer()-&gt;contentChanged(RenderLayer::CanvasChanged);
&gt; -#endif

This should work fine for a same-size change (where your clear will do the notification), but what if the canvas is actually being resized?  Is the compositor still receiving this notification in that case?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583159</commentid>
    <comment_count>24</comment_count>
      <attachid>132581</attachid>
    <who name="Sami Kyostila">skyostil</who>
    <bug_when>2012-03-20 09:52:44 -0700</bug_when>
    <thetext>Comment on attachment 132581
Patch

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

&gt;&gt; Source/WebCore/html/HTMLCanvasElement.cpp:259
&gt;&gt; +        return;
&gt; 
&gt; Thinking out loud:  This early-out means we&apos;re no longer calling renderer-&gt;repaint() on a same-size change.  I&apos;m not actually sure why this repaint call is there (it has been there for a long time), but I think it does explain why we&apos;re no longer redrawing the borders with your change (we&apos;re no longer invalidating them).  We should be ok, since your new call to CanvasRenderingContext2D::clear() should also call didDraw() which should do the relevant invalidation of the main canvas content, which is all we really should care about.  OK, I think I&apos;ve convinced myself.
&gt; 
&gt; However, I&apos;m not sure if WebGL is OK with this, since it doesn&apos;t have the optimization, so it doesn&apos;t do the notification.

Your analysis looks correct to me. Good point about WebGL; I&apos;ll disable the fast path for it.

&gt;&gt; Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp:-168
&gt;&gt; -#endif
&gt; 
&gt; This should work fine for a same-size change (where your clear will do the notification), but what if the canvas is actually being resized?  Is the compositor still receiving this notification in that case?

We can end up in HTMLCanvasElement::reset() in two different types of canvas resizes: by changing both the resolution and the layout size of the canvas, or by only changing changing the canvas resolution.

In the first case the subsequent layout calculation will notice that the canvas is no longer accelerated (CanvasRenderingContext2D::isAccelerated() will return false because the image buffer was deallocated). As a result, the graphics layer for the canvas will be discarded and the compositor will know to repaint.

In the second case there is no layout calculation to trigger the above process, so you&apos;re indeed correct that we need to keep sending the notification to guarantee the layer gets refreshed. I&apos;ve now fixed this and added a layout test for it.

Interestingly, the Chromium port was not hitting this problem because destroying the image buffer triggers a callback to the Canvas2DLayerChromium to clear its reference to the canvas backing texture. This causes the compositor to skip drawing the layer, which coincidentally is the correct result.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583176</commentid>
    <comment_count>25</comment_count>
      <attachid>132843</attachid>
    <who name="Sami Kyostila">skyostil</who>
    <bug_when>2012-03-20 10:07:25 -0700</bug_when>
    <thetext>Created attachment 132843
Patch

- Avoid early-out for WebGL.
- Notify compositor when the canvas size does change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583220</commentid>
    <comment_count>26</comment_count>
      <attachid>132843</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-20 10:49:09 -0700</bug_when>
    <thetext>Comment on attachment 132843
Patch

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

New failing tests:
platform/chromium/virtual/gpu/fast/canvas/canvas-resize-after-paint-without-layout.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583230</commentid>
    <comment_count>27</comment_count>
      <attachid>132852</attachid>
    <who name="Sami Kyostila">skyostil</who>
    <bug_when>2012-03-20 10:57:26 -0700</bug_when>
    <thetext>Created attachment 132852
Patch

- Added missing virtual gpu golden image.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583235</commentid>
    <comment_count>28</comment_count>
      <attachid>132843</attachid>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-03-20 11:01:54 -0700</bug_when>
    <thetext>Comment on attachment 132843
Patch

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

&gt; Source/WebCore/html/HTMLCanvasElement.cpp:263
&gt; +    if (hadImageBuffer &amp;&amp; hasCreatedImageBuffer()) {
&gt; +        ASSERT(oldSize == size());
&gt; +        return;
&gt; +    }

I&apos;m not sure the intent of the code is really clear now.  It seems like you&apos;re inferring if we did a fast clear by the presence of an image buffer before and after setSurfaceSize().  

You could return a boolean from setSurfaceSize() to indicate if you did a fast clear, but I think it would actually be better to just move the fast-clear code back here.  I realize Jeff asked you to move it into setSurfaceSize() in the first place, so I chatted with him.  Now that we understand the WebGL notifications issue, we&apos;ve agreed that we should move it back.  Sorry for the confusion!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583255</commentid>
    <comment_count>29</comment_count>
    <who name="Sami Kyostila">skyostil</who>
    <bug_when>2012-03-20 11:16:16 -0700</bug_when>
    <thetext>&gt; I&apos;m not sure the intent of the code is really clear now.  It seems like you&apos;re inferring if we did a fast clear by the presence of an image buffer before and after setSurfaceSize().  
&gt;
&gt; You could return a boolean from setSurfaceSize() to indicate if you did a fast clear, but I think it would actually be better to just move the fast-clear code back here.  I realize Jeff asked you to move it into setSurfaceSize() in the first place, so I chatted with him.  Now that we understand the WebGL notifications issue, we&apos;ve agreed that we should move it back.  Sorry for the confusion!

No worries. I did consider returning a boolean or an enum from setSurfaceSize(), but the logic does fit better in reset() after all.

New patch coming up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583259</commentid>
    <comment_count>30</comment_count>
      <attachid>132861</attachid>
    <who name="Sami Kyostila">skyostil</who>
    <bug_when>2012-03-20 11:16:43 -0700</bug_when>
    <thetext>Created attachment 132861
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583443</commentid>
    <comment_count>31</comment_count>
      <attachid>132861</attachid>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-03-20 14:20:14 -0700</bug_when>
    <thetext>Comment on attachment 132861
Patch

OK.  These tests will probably need new baselines on non-Linux platforms after this lands.  You can do that yourself with webkit-patch if you&apos;re comfortable with it, or just ask the gardener to do it, but you should give him a heads-up either way.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583472</commentid>
    <comment_count>32</comment_count>
      <attachid>132861</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-20 14:39:48 -0700</bug_when>
    <thetext>Comment on attachment 132861
Patch

Clearing flags on attachment: 132861

Committed r111442: &lt;http://trac.webkit.org/changeset/111442&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583473</commentid>
    <comment_count>33</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-20 14:39:57 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583558</commentid>
    <comment_count>34</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-03-20 16:05:55 -0700</bug_when>
    <thetext>I rolled this out in r111458. Please see bug 81710 (there were actually more crashes I didn&apos;t include in that bug, sorry).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583995</commentid>
    <comment_count>35</comment_count>
    <who name="Sami Kyostila">skyostil</who>
    <bug_when>2012-03-21 04:42:19 -0700</bug_when>
    <thetext>Apologies, I was running the release build while testing so I did not catch this. Looks like the graphics context stack is not getting correctly flushed in all situations. I&apos;ll amend the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584269</commentid>
    <comment_count>36</comment_count>
      <attachid>133065</attachid>
    <who name="Sami Kyostila">skyostil</who>
    <bug_when>2012-03-21 10:09:00 -0700</bug_when>
    <thetext>Created attachment 133065
Patch

Fixed debug mode layout test crashes by moving the graphics context state restoration to HTMLCanvasElement, because it owns the ImageBuffer and by extension the GraphicsContext. The state is saved and restored using a GraphicsContextStateSaver whose lifetime matches that of the ImageBuffer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584547</commentid>
    <comment_count>37</comment_count>
      <attachid>133065</attachid>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-03-21 13:13:36 -0700</bug_when>
    <thetext>Comment on attachment 133065
Patch

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

&gt; Source/WebCore/html/HTMLCanvasElement.cpp:268
&gt; +    if (m_hasCreatedImageBuffer &amp;&amp; oldSize == IntSize(w, h) &amp;&amp; (!m_context || m_context-&gt;is2d())) {
&gt; +        if (!m_didClearImageBuffer)
&gt; +            clearImageBuffer();
&gt; +        return;

Not sure if this is a problem, but if we have a NULL m_context, clearImageBuffer() will do nothing, but we&apos;ll still early-out.  I can&apos;t think of a case where we did manage to create an image buffer without creating a context, but perhaps I&apos;m just not being imaginative enough.

Would it work to check m_context &amp;&amp; m_context-&gt;is2D() instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585121</commentid>
    <comment_count>38</comment_count>
      <attachid>133065</attachid>
    <who name="Sami Kyostila">skyostil</who>
    <bug_when>2012-03-22 04:17:28 -0700</bug_when>
    <thetext>Comment on attachment 133065
Patch

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

&gt;&gt; Source/WebCore/html/HTMLCanvasElement.cpp:268
&gt;&gt; +        return;
&gt; 
&gt; Not sure if this is a problem, but if we have a NULL m_context, clearImageBuffer() will do nothing, but we&apos;ll still early-out.  I can&apos;t think of a case where we did manage to create an image buffer without creating a context, but perhaps I&apos;m just not being imaginative enough.
&gt; 
&gt; Would it work to check m_context &amp;&amp; m_context-&gt;is2D() instead?

One way to have an image buffer created without an associated context is to have two canvases and draw one onto the other. The drawImage() triggers the creation of an image buffer in the source canvas.

In these situations it&apos;s fine to have clearImageBuffer() to be a no-op, since the canvas did not have anything in it to begin with. However, this is a bit an edge case that&apos;s not really worth optimizing for, so I&apos;ll just change the check to make sure there is a 2d context.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585129</commentid>
    <comment_count>39</comment_count>
      <attachid>133222</attachid>
    <who name="Sami Kyostila">skyostil</who>
    <bug_when>2012-03-22 04:33:15 -0700</bug_when>
    <thetext>Created attachment 133222
Patch

 - Check for 2d context before taking fast path.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586363</commentid>
    <comment_count>40</comment_count>
    <who name="Sami Kyostila">skyostil</who>
    <bug_when>2012-03-23 08:42:40 -0700</bug_when>
    <thetext>Would anyone mind taking a look at the latest patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586401</commentid>
    <comment_count>41</comment_count>
      <attachid>133222</attachid>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-03-23 09:27:58 -0700</bug_when>
    <thetext>Comment on attachment 133222
Patch

OK.  r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586443</commentid>
    <comment_count>42</comment_count>
      <attachid>133222</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-23 09:59:10 -0700</bug_when>
    <thetext>Comment on attachment 133222
Patch

Clearing flags on attachment: 133222

Committed r111872: &lt;http://trac.webkit.org/changeset/111872&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586444</commentid>
    <comment_count>43</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-23 09:59:16 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>876547</commentid>
    <comment_count>44</comment_count>
      <attachid>133222</attachid>
    <who name="Andrey Adaikin">aandrey</who>
    <bug_when>2013-04-16 08:05:22 -0700</bug_when>
    <thetext>Comment on attachment 133222
Patch

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

&gt; Source/WebCore/html/HTMLCanvasElement.cpp:268
&gt; +        return;

FYI. Below in this method there is a canvasResized dispatch on CanvasObserver&apos;s. Did you really mean to skip it in this case?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1884861</commentid>
    <comment_count>45</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2022-07-18 14:15:25 -0700</bug_when>
    <thetext>*** Bug 80593 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131697</attachid>
            <date>2012-03-13 12:46:33 -0700</date>
            <delta_ts>2012-03-14 12:06:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80871-20120313194632.patch</filename>
            <type>text/plain</type>
            <size>6286</size>
            <attacher name="Sami Kyostila">skyostil</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwNDExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGQ3ZGVhNDA5OGEwYzQ2
ODVhNGQwMDBlMmNhNTVhZWM5NTAwYTNmOC4uNjMxMDZkNTJiZjczNzlhYzAxMzNhYTI0YTNhNmY4
ZTY5ODIwN2M2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEyLTAzLTEzICBTYW1p
IEt5b3N0aWxhICA8c2t5b3N0aWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldXNlIGJ1ZmZl
ciBhbGxvY2F0aW9uIGlmIGNhbnZhcyBzaXplIGRvZXMgbm90IGNoYW5nZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA4NzEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJZiB0aGUgdXNlciBtdXRhdGVzIHRo
ZSB3aWR0aCBvciBoZWlnaHQgYXR0cmlidXRlcyBvZiBhIGNhbnZhcyBlbGVtZW50LAorICAgICAg
ICB0aGUgY29udGVudHMgb2YgdGhlIGNhbnZhcyBzaG91bGQgYmUgY2xlYXJlZC4gVGhpcyBoYXMg
YmVjb21lIGEgY29tbW9uCisgICAgICAgIGlkaW9tIHRvIGNsZWFyIHRoZSBjYW52YXMgImVmZmlj
aWVudGx5IiBhdCB0aGUgc3RhcnQgb2YgYSBmcmFtZS4KKworICAgICAgICBQcmV2aW91c2x5LCB0
aGlzIGNvZGUgcGF0aCB0cmlnZ2VyZWQgYSBmdWxsIHJlYWxsb2NhdGlvbiBvZiB0aGUgaW1hZ2UK
KyAgICAgICAgYnVmZmVyIGJhY2tpbmcgdGhlIGNhbnZhcywgbGVhZGluZyB0byByZWR1Y2VkIHBl
cmZvcm1hbmNlLiBUaGlzIHBhdGNoCisgICAgICAgIGltcGxlbWVudHMgYW4gb3B0aW1pemF0aW9u
IHdoZXJlIHdlIHJldXNlIHRoZSBwcmV2aW91cyBpbWFnZSBidWZmZXIKKyAgICAgICAgYWxsb2Nh
dGlvbiBpZiB0aGUgc2l6ZSBvZiB0aGUgY2FudmFzIGRpZCBub3QgY2hhbmdlLiBBbHNvLCBpbnN0
ZWFkIG9mCisgICAgICAgIGNsZWFyaW5nIHRoZSBjYW52YXMgaW1tZWRpYXRlbHksIHdlIHNldCBh
IHBlbmRpbmcgY2xlYXIgZmxhZywgd2hpY2gKKyAgICAgICAgZGVmZXJzIHRoZSBjbGVhciB1bnRp
bCB0aGUgbmV4dCBjb21wb3NpdGlvbiBwYXNzIG9yIGRyYXdpbmcgb3BlcmF0aW9uIG9uCisgICAg
ICAgIHRoZSBjYW52YXMgY29udGV4dC4KKworICAgICAgICBGdW5jdGlvbmFsaXR5IHRlc3RlZCBi
eSBleGlzdGluZyBjYW52YXMgcmVzZXQgbGF5b3V0IHRlc3RzLgorCisgICAgICAgICogaHRtbC9I
VE1MQ2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVu
dDo6SFRNTENhbnZhc0VsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1l
bnQ6OnJlc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpzZXRTdXJm
YWNlU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6YnVmZmVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpjbGVhckltYWdlQnVmZmVyKToK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuaDoK
KyAgICAgICAgKEhUTUxDYW52YXNFbGVtZW50KToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQuaDoKKyAgICAgICAgKENhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RCk6IE1ha2UgY2xlYXJDYW52YXMoKSBwdWJsaWMgdG8gYXZvaWQgY29kZSBkdXBsaWNhdGlvbi4K
KwogMjAxMi0wMy0xMSAgVmljdG9yIENhcmJ1bmUgIDx2Y2FyYnVuZUBhZG9iZS5jb20+CiAKICAg
ICAgICAgVGhlIG1haW4gY29kZSBzdHJ1Y3R1cmUgZm9yIHBsYWNpbmcgZnV0dXJlIHRleHQgdHJh
Y2sgY3VlIHJlbmRlcmluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2Fu
dmFzRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNw
cAppbmRleCA2MGQyMWNlNDg0NTUyOTA1NjAwNjNhNWI2OTM2ZTNmNDc2YWRmNmNjLi40MzJiZGYz
NDBlOTVmYjRmODJjZjk2ZDNjNjkwYmM1NDE4MmVkZjIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxDYW52YXNFbGVtZW50LmNwcApAQCAtODgsNiArODgsNyBAQCBIVE1MQ2FudmFzRWxlbWVu
dDo6SFRNTENhbnZhc0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1l
bnQqIGRvYwogI2VuZGlmCiAgICAgLCBtX29yaWdpbkNsZWFuKHRydWUpCiAgICAgLCBtX2hhc0Ny
ZWF0ZWRJbWFnZUJ1ZmZlcihmYWxzZSkKKyAgICAsIG1fcGVuZGluZ0NsZWFyKGZhbHNlKQogewog
ICAgIEFTU0VSVChoYXNUYWdOYW1lKGNhbnZhc1RhZykpOwogfQpAQCAtMjQzLDEzICsyNDQsMTkg
QEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6cmVzZXQoKQogICAgIGlmICghb2sgfHwgaCA8IDAp
CiAgICAgICAgIGggPSBEZWZhdWx0SGVpZ2h0OwogCi0gICAgaWYgKG1fY29udGV4dCAmJiBtX2Nv
bnRleHQtPmlzMmQoKSkgeworICAgIGlmIChtX2NvbnRleHQgJiYgbV9jb250ZXh0LT5pczJkKCkg
JiYgIW1fcGVuZGluZ0NsZWFyKSB7CiAgICAgICAgIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCog
Y29udGV4dDJEID0gc3RhdGljX2Nhc3Q8Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKj4obV9jb250
ZXh0LmdldCgpKTsKICAgICAgICAgY29udGV4dDJELT5yZXNldCgpOwogICAgIH0KIAorICAgIC8v
IFJldXNlIGV4aXN0aW5nIGJ1ZmZlciB3aXRoIG1hdGNoaW5nIHNpemUgYWZ0ZXIgY2xlYXJpbmcg
aXQuCiAgICAgSW50U2l6ZSBvbGRTaXplID0gc2l6ZSgpOwotICAgIHNldFN1cmZhY2VTaXplKElu
dFNpemUodywgaCkpOyAvLyBUaGUgaW1hZ2UgYnVmZmVyIGdldHMgY2xlYXJlZCBoZXJlLgorICAg
IGlmIChoYWRJbWFnZUJ1ZmZlciAmJiBvbGRTaXplID09IEludFNpemUodywgaCkpIHsKKyAgICAg
ICAgbV9wZW5kaW5nQ2xlYXIgPSB0cnVlOworICAgICAgICBjbGVhckNvcGllZEltYWdlKCk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisgICAgc2V0U3VyZmFjZVNpemUoSW50U2l6ZSh3LCBoKSk7
CiAKICNpZiBFTkFCTEUoV0VCR0wpCiAgICAgaWYgKG1fY29udGV4dCAmJiBtX2NvbnRleHQtPmlz
M2QoKSAmJiBvbGRTaXplICE9IHNpemUoKSkKQEAgLTM0OSw2ICszNTYsNyBAQCB2b2lkIEhUTUxD
YW52YXNFbGVtZW50OjpzZXRTdXJmYWNlU2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQogewogICAg
IG1fc2l6ZSA9IHNpemU7CiAgICAgbV9oYXNDcmVhdGVkSW1hZ2VCdWZmZXIgPSBmYWxzZTsKKyAg
ICBtX3BlbmRpbmdDbGVhciA9IGZhbHNlOwogICAgIG1faW1hZ2VCdWZmZXIuY2xlYXIoKTsKICAg
ICBjbGVhckNvcGllZEltYWdlKCk7CiB9CkBAIC01NTEsNiArNTU5LDggQEAgSW1hZ2VCdWZmZXIq
IEhUTUxDYW52YXNFbGVtZW50OjpidWZmZXIoKSBjb25zdAogewogICAgIGlmICghbV9oYXNDcmVh
dGVkSW1hZ2VCdWZmZXIpCiAgICAgICAgIGNyZWF0ZUltYWdlQnVmZmVyKCk7CisgICAgZWxzZSBp
ZiAobV9wZW5kaW5nQ2xlYXIpCisgICAgICAgIGNsZWFySW1hZ2VCdWZmZXIoKTsKICAgICByZXR1
cm4gbV9pbWFnZUJ1ZmZlci5nZXQoKTsKIH0KIApAQCAtNTY0LDYgKzU3NCwyOSBAQCBJbWFnZSog
SFRNTENhbnZhc0VsZW1lbnQ6OmNvcGllZEltYWdlKCkgY29uc3QKICAgICByZXR1cm4gbV9jb3Bp
ZWRJbWFnZS5nZXQoKTsKIH0KIAordm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6Y2xlYXJJbWFnZUJ1
ZmZlcigpIGNvbnN0Cit7CisgICAgQVNTRVJUKG1faGFzQ3JlYXRlZEltYWdlQnVmZmVyKTsKKyAg
ICBBU1NFUlQobV9wZW5kaW5nQ2xlYXIpOworCisgICAgaWYgKCFtX2NvbnRleHQpCisgICAgICAg
IHJldHVybjsKKworICAgIG1fcGVuZGluZ0NsZWFyID0gZmFsc2U7CisKKyAgICBpZiAobV9jb250
ZXh0LT5pczJkKCkpIHsKKyAgICAgICAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKiBjb250ZXh0
MkQgPSBzdGF0aWNfY2FzdDxDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQqPihtX2NvbnRleHQuZ2V0
KCkpOworICAgICAgICBjb250ZXh0MkQtPmNsZWFyQ2FudmFzKCk7CisgICAgfQorCisjaWYgRU5B
QkxFKFdFQkdMKQorICAgIGlmIChtX2NvbnRleHQtPmlzM2QoKSkgeworICAgICAgICBXZWJHTFJl
bmRlcmluZ0NvbnRleHQqIGNvbnRleHQzRCA9IHN0YXRpY19jYXN0PFdlYkdMUmVuZGVyaW5nQ29u
dGV4dCo+KG1fY29udGV4dC5nZXQoKSk7CisgICAgICAgIGNvbnRleHQzRC0+Y2xlYXIoR3JhcGhp
Y3NDb250ZXh0M0Q6OkNPTE9SX0JVRkZFUl9CSVQgfCBHcmFwaGljc0NvbnRleHQzRDo6REVQVEhf
QlVGRkVSX0JJVCB8IEdyYXBoaWNzQ29udGV4dDNEOjpTVEVOQ0lMX0JVRkZFUl9CSVQpOworICAg
IH0KKyNlbmRpZgorfQorCiB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpjbGVhckNvcGllZEltYWdl
KCkKIHsKICAgICBtX2NvcGllZEltYWdlLmNsZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxD
YW52YXNFbGVtZW50LmgKaW5kZXggZTJjNDg4OGU1YjRiNjQ1NjU0ZmFkNGFlOTgyOGJkZWFmNDA1
NmNiMi4uYTk3OTdlM2FiYTBiODgxYTE0NzZlYmM0MTk3NmI3Yzk5YzM5Yjc4MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaApAQCAtMTQzLDYgKzE0Myw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCByZXNldCgpOwogCiAgICAgdm9pZCBjcmVhdGVJbWFnZUJ1ZmZlcigpIGNv
bnN0OworICAgIHZvaWQgY2xlYXJJbWFnZUJ1ZmZlcigpIGNvbnN0OwogCiAgICAgdm9pZCBzZXRT
dXJmYWNlU2l6ZShjb25zdCBJbnRTaXplJik7CiAKQEAgLTE2Niw2ICsxNjcsNyBAQCBwcml2YXRl
OgogCiAgICAgLy8gbV9jcmVhdGVkSW1hZ2VCdWZmZXIgbWVhbnMgd2UgdHJpZWQgdG8gbWFsbG9j
IHRoZSBidWZmZXIuICBXZSBkaWRuJ3QgbmVjZXNzYXJpbHkgZ2V0IGl0LgogICAgIG11dGFibGUg
Ym9vbCBtX2hhc0NyZWF0ZWRJbWFnZUJ1ZmZlcjsKKyAgICBtdXRhYmxlIGJvb2wgbV9wZW5kaW5n
Q2xlYXI7CiAgICAgbXV0YWJsZSBPd25QdHI8SW1hZ2VCdWZmZXI+IG1faW1hZ2VCdWZmZXI7CiAg
ICAgCiAgICAgbXV0YWJsZSBSZWZQdHI8SW1hZ2U+IG1fcHJlc2VudGVkSW1hZ2U7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5o
CmluZGV4IDU1ODFlZTlkNWI5MDdiODYwNmE1ODM1MmIxNDVlNTY4MDFkYTk2NmEuLjAxODI0Y2Uw
Yjk1YzIwNDIyYzMwZDI0ZmY0ODZkMDVmYjRkYTVmNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oCkBAIC0xNTEsNiAr
MTUxLDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBpc1BvaW50SW5QYXRoKGNvbnN0IGZsb2F0IHgs
IGNvbnN0IGZsb2F0IHkpOwogCisgICAgdm9pZCBjbGVhckNhbnZhcygpOwogICAgIHZvaWQgY2xl
YXJSZWN0KGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQpOwogICAg
IHZvaWQgZmlsbFJlY3QoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdo
dCk7CiAgICAgdm9pZCBzdHJva2VSZWN0KGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHdpZHRoLCBm
bG9hdCBoZWlnaHQpOwpAQCAtMjk3LDcgKzI5OCw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjbGVh
clBhdGhGb3JEYXNoYm9hcmRCYWNrd2FyZENvbXBhdGliaWxpdHlNb2RlKCk7CiAjZW5kaWYKIAot
ICAgIHZvaWQgY2xlYXJDYW52YXMoKTsKICAgICBQYXRoIHRyYW5zZm9ybUFyZWFUb0RldmljZShj
b25zdCBQYXRoJikgY29uc3Q7CiAgICAgUGF0aCB0cmFuc2Zvcm1BcmVhVG9EZXZpY2UoY29uc3Qg
RmxvYXRSZWN0JikgY29uc3Q7CiAgICAgYm9vbCByZWN0Q29udGFpbnNDYW52YXMoY29uc3QgRmxv
YXRSZWN0JikgY29uc3Q7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131897</attachid>
            <date>2012-03-14 12:06:45 -0700</date>
            <delta_ts>2012-03-15 10:00:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80871-20120314190643.patch</filename>
            <type>text/plain</type>
            <size>7521</size>
            <attacher name="Sami Kyostila">skyostil</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwNDExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGQ3ZGVhNDA5OGEwYzQ2
ODVhNGQwMDBlMmNhNTVhZWM5NTAwYTNmOC4uYWU2OGM0ZTRlZGYwMGVhMWU0ODQyYzkwYmYyODQ1
MTZjN2IzNDhkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDEyLTAzLTE0ICBTYW1p
IEt5b3N0aWxhICA8c2t5b3N0aWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldXNlIGJ1ZmZl
ciBhbGxvY2F0aW9uIGlmIGNhbnZhcyBzaXplIGRvZXMgbm90IGNoYW5nZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA4NzEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJZiB0aGUgdXNlciBjaGFuZ2VzIHRo
ZSB3aWR0aCBvciBoZWlnaHQgYXR0cmlidXRlcyBvZiBhIGNhbnZhcyBlbGVtZW50LAorICAgICAg
ICB0aGUgY29udGVudHMgb2YgdGhlIGNhbnZhcyBzaG91bGQgYmUgY2xlYXJlZC4gVGhpcyBoYXMg
YmVjb21lIGEgY29tbW9uCisgICAgICAgIGlkaW9tIHRvIGNsZWFyIHRoZSBjYW52YXMgImVmZmlj
aWVudGx5IiBhdCB0aGUgc3RhcnQgb2YgYSBmcmFtZS4KKworICAgICAgICBQcmV2aW91c2x5LCB0
aGlzIGNvZGUgcGF0aCB0cmlnZ2VyZWQgYSBmdWxsIHJlYWxsb2NhdGlvbiBvZiB0aGUgaW1hZ2UK
KyAgICAgICAgYnVmZmVyIGJhY2tpbmcgdGhlIGNhbnZhcywgbGVhZGluZyB0byByZWR1Y2VkIHBl
cmZvcm1hbmNlLiBUaGlzIHBhdGNoCisgICAgICAgIGltcGxlbWVudHMgYW4gb3B0aW1pemF0aW9u
IHdoZXJlIHdlIHJldXNlIHRoZSBwcmV2aW91cyBpbWFnZSBidWZmZXIKKyAgICAgICAgYWxsb2Nh
dGlvbiBpZiB0aGUgc2l6ZSBvZiB0aGUgY2FudmFzIGRpZCBub3QgY2hhbmdlLiBBbHNvLCBpbnN0
ZWFkIG9mCisgICAgICAgIGNsZWFyaW5nIHRoZSBjYW52YXMgZXZlcnkgdGltZSBpdHMgZGltZW5z
aW9ucyBhcmUgdG91Y2hlZCwgd2Ugb25seSBjbGVhcgorICAgICAgICBpZiBhbnl0aGluZyBoYXMg
YmVlbiBkcmF3biBpbnRvIHRoZSBjYW52YXMgc2luY2UgaXQgd2FzIHByZXZpb3VzbHkKKyAgICAg
ICAgY2xlYXJlZC4KKworICAgICAgICBUZXN0ZWQgYnkgZXhpc3RpbmcgbGF5b3V0IHRlc3RzIGZv
ciBjYW52YXMgcmVzZXR0aW5nLgorCisgICAgICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6SFRNTENhbnZhc0VsZW1l
bnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnJlc2V0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVJbWFnZUJ1ZmZlcik6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Y2xlYXJJbWFnZUJ1ZmZlcik6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpjbGVh
ckNvcGllZEltYWdlKToKKyAgICAgICAgKiBodG1sL0hUTUxDYW52YXNFbGVtZW50Lmg6CisgICAg
ICAgIChIVE1MQ2FudmFzRWxlbWVudCk6CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJELmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRDo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKTogU2F2ZSB0aGUKKyAgICAgICAgaW5p
dGlhbCBncmFwaGljcyBjb250ZXh0IHN0YXRlIHNvIHdlIGNhbiByZXN0b3JlIGl0IHdpdGhvdXQg
Y3JlYXRpbmcgYQorICAgICAgICBuZXcgY29udGV4dC4KKyAgICAgICAgKFdlYkNvcmU6OkNhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRDo6dW53aW5kU3RhdGVTdGFjayk6CisgICAgICAgIChXZWJDb3Jl
OjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnJlc2V0KTogTm8gbmVlZCB0byBub3RpZnkgdGhl
CisgICAgICAgIGNvbXBvc2l0b3Igd2hlbiB0aGUgY29udGV4dCBpcyByZXNldCwgYmVjYXVzZSBj
bGVhcmluZyB0aGUgaW1hZ2UgYnVmZmVyCisgICAgICAgIGRvZXMgdGhlIHNhbWUgdGhpbmcuIFdl
IGNhbiBhbHNvIHNraXAgdGhlIG5vdGlmaWNhdGlvbiBpZiB3ZSBkaWQgbm90CisgICAgICAgIGhh
dmUgYW4gaW1hZ2UgYnVmZmVyIGF0IHRoZSB0aW1lIG9mIHRoZSByZXNldCwgYmVjYXVzZSB0aGUg
cmVzZXQgd2lsbAorICAgICAgICBub3QgaGF2ZSBhbnkgdmlzdWFsIGltcGFjdCBpbiB0aGlzIGNh
c2UuIEZpbmFsbHksIGlmIHRoZSBjYW52YXMgc2l6ZQorICAgICAgICBkaWQgY2hhbmdlLCB0aGUg
bm90aWZpY2F0aW9uIGlzIGFsc28gdW5uZWNlc3NhcnkgYmVjYXVzZSBvZiB0aGUgY2FsbAorICAg
ICAgICB0byBSZW5kZXJPYmplY3Q6OnJlcGFpbnQoKSBmcm9tIEhUTUxDYW52YXNFbGVtZW50Ojpy
ZXNldCgpLgorCiAyMDEyLTAzLTExICBWaWN0b3IgQ2FyYnVuZSAgPHZjYXJidW5lQGFkb2JlLmNv
bT4KIAogICAgICAgICBUaGUgbWFpbiBjb2RlIHN0cnVjdHVyZSBmb3IgcGxhY2luZyBmdXR1cmUg
dGV4dCB0cmFjayBjdWUgcmVuZGVyaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxDYW52YXNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0Vs
ZW1lbnQuY3BwCmluZGV4IDYwZDIxY2U0ODQ1NTI5MDU2MDA2M2E1YjY5MzZlM2Y0NzZhZGY2Y2Mu
Ljk3MTdkOWQwNDhhZjg1NzZjOGJkM2EwZmRhNGJhYmEyYmNiZWUzOGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCkBAIC04OCw2ICs4OCw3IEBAIEhUTUxDYW52
YXNFbGVtZW50OjpIVE1MQ2FudmFzRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCogZG9jCiAjZW5kaWYKICAgICAsIG1fb3JpZ2luQ2xlYW4odHJ1ZSkKICAgICAs
IG1faGFzQ3JlYXRlZEltYWdlQnVmZmVyKGZhbHNlKQorICAgICwgbV9kaWRDbGVhckltYWdlQnVm
ZmVyKGZhbHNlKQogewogICAgIEFTU0VSVChoYXNUYWdOYW1lKGNhbnZhc1RhZykpOwogfQpAQCAt
MjQ4LDggKzI0OSwxNiBAQCB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpyZXNldCgpCiAgICAgICAg
IGNvbnRleHQyRC0+cmVzZXQoKTsKICAgICB9CiAKKyAgICAvLyBJZiB0aGUgc2l6ZSBvZiBhbiBl
eGlzdGluZyBidWZmZXIgbWF0Y2hlcywgd2UgY2FuIGp1c3QgY2xlYXIgaXQgaW5zdGVhZCBvZiBy
ZWFsbG9jYXRpbmcuCiAgICAgSW50U2l6ZSBvbGRTaXplID0gc2l6ZSgpOwotICAgIHNldFN1cmZh
Y2VTaXplKEludFNpemUodywgaCkpOyAvLyBUaGUgaW1hZ2UgYnVmZmVyIGdldHMgY2xlYXJlZCBo
ZXJlLgorICAgIGlmIChoYWRJbWFnZUJ1ZmZlciAmJiBvbGRTaXplID09IEludFNpemUodywgaCkp
IHsKKyAgICAgICAgaWYgKCFtX2RpZENsZWFySW1hZ2VCdWZmZXIpIHsKKyAgICAgICAgICAgIGNs
ZWFySW1hZ2VCdWZmZXIoKTsKKyAgICAgICAgICAgIG1fZGlkQ2xlYXJJbWFnZUJ1ZmZlciA9IHRy
dWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBzZXRTdXJmYWNlU2l6
ZShJbnRTaXplKHcsIGgpKTsKIAogI2lmIEVOQUJMRShXRUJHTCkKICAgICBpZiAobV9jb250ZXh0
ICYmIG1fY29udGV4dC0+aXMzZCgpICYmIG9sZFNpemUgIT0gc2l6ZSgpKQpAQCAtNDg5LDYgKzQ5
OCw3IEBAIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0ZUltYWdlQnVmZmVyKCkgY29uc3QK
ICAgICBBU1NFUlQoIW1faW1hZ2VCdWZmZXIpOwogCiAgICAgbV9oYXNDcmVhdGVkSW1hZ2VCdWZm
ZXIgPSB0cnVlOworICAgIG1fZGlkQ2xlYXJJbWFnZUJ1ZmZlciA9IHRydWU7CiAKICAgICBGbG9h
dFNpemUgbG9naWNhbFNpemUgPSBzaXplKCk7CiAgICAgRmxvYXRTaXplIGRldmljZVNpemUgPSBj
b252ZXJ0TG9naWNhbFRvRGV2aWNlKGxvZ2ljYWxTaXplKTsKQEAgLTU2NCw5ICs1NzQsMzIgQEAg
SW1hZ2UqIEhUTUxDYW52YXNFbGVtZW50Ojpjb3BpZWRJbWFnZSgpIGNvbnN0CiAgICAgcmV0dXJu
IG1fY29waWVkSW1hZ2UuZ2V0KCk7CiB9CiAKK3ZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OmNsZWFy
SW1hZ2VCdWZmZXIoKSBjb25zdAoreworICAgIEFTU0VSVChtX2hhc0NyZWF0ZWRJbWFnZUJ1ZmZl
cik7CisgICAgQVNTRVJUKCFtX2RpZENsZWFySW1hZ2VCdWZmZXIpOworCisgICAgaWYgKCFtX2Nv
bnRleHQpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChtX2NvbnRleHQtPmlzMmQoKSkgewor
ICAgICAgICBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQqIGNvbnRleHQyRCA9IHN0YXRpY19jYXN0
PENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCo+KG1fY29udGV4dC5nZXQoKSk7CisgICAgICAgIC8v
IE5vIG5lZWQgdG8gdW5kbyB0cmFuc2Zvcm1zL2NsaXAvZXRjLiBiZWNhdXNlIHdlIGFyZSBjYWxs
ZWQgcmlnaHQgYWZ0ZXIgdGhlIGNvbnRleHQgaXMgcmVzZXQuCisgICAgICAgIGNvbnRleHQyRC0+
Y2xlYXJSZWN0KDAsIDAsIHdpZHRoKCksIGhlaWdodCgpKTsKKyAgICB9CisKKyNpZiBFTkFCTEUo
V0VCR0wpCisgICAgaWYgKG1fY29udGV4dC0+aXMzZCgpKSB7CisgICAgICAgIFdlYkdMUmVuZGVy
aW5nQ29udGV4dCogY29udGV4dDNEID0gc3RhdGljX2Nhc3Q8V2ViR0xSZW5kZXJpbmdDb250ZXh0
Kj4obV9jb250ZXh0LmdldCgpKTsKKyAgICAgICAgY29udGV4dDNELT5jbGVhcihHcmFwaGljc0Nv
bnRleHQzRDo6Q09MT1JfQlVGRkVSX0JJVCB8IEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9CVUZG
RVJfQklUIHwgR3JhcGhpY3NDb250ZXh0M0Q6OlNURU5DSUxfQlVGRkVSX0JJVCk7CisgICAgfQor
I2VuZGlmCit9CisKIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OmNsZWFyQ29waWVkSW1hZ2UoKQog
ewogICAgIG1fY29waWVkSW1hZ2UuY2xlYXIoKTsKKyAgICBtX2RpZENsZWFySW1hZ2VCdWZmZXIg
PSBmYWxzZTsKIH0KIAogQWZmaW5lVHJhbnNmb3JtIEhUTUxDYW52YXNFbGVtZW50OjpiYXNlVHJh
bnNmb3JtKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZh
c0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAppbmRl
eCBlMmM0ODg4ZTViNGI2NDU2NTRmYWQ0YWU5ODI4YmRlYWY0MDU2Y2IyLi45MmQ3NjI1OTM4Nzky
MDI1YWU0Yzg3OTYxODNkNTA3NDdjOGM4YzM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxDYW52YXNFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2Fu
dmFzRWxlbWVudC5oCkBAIC0xNDMsNiArMTQzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlc2V0
KCk7CiAKICAgICB2b2lkIGNyZWF0ZUltYWdlQnVmZmVyKCkgY29uc3Q7CisgICAgdm9pZCBjbGVh
ckltYWdlQnVmZmVyKCkgY29uc3Q7CiAKICAgICB2b2lkIHNldFN1cmZhY2VTaXplKGNvbnN0IElu
dFNpemUmKTsKIApAQCAtMTY2LDYgKzE2Nyw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBtX2NyZWF0
ZWRJbWFnZUJ1ZmZlciBtZWFucyB3ZSB0cmllZCB0byBtYWxsb2MgdGhlIGJ1ZmZlci4gIFdlIGRp
ZG4ndCBuZWNlc3NhcmlseSBnZXQgaXQuCiAgICAgbXV0YWJsZSBib29sIG1faGFzQ3JlYXRlZElt
YWdlQnVmZmVyOworICAgIG11dGFibGUgYm9vbCBtX2RpZENsZWFySW1hZ2VCdWZmZXI7CiAgICAg
bXV0YWJsZSBPd25QdHI8SW1hZ2VCdWZmZXI+IG1faW1hZ2VCdWZmZXI7CiAgICAgCiAgICAgbXV0
YWJsZSBSZWZQdHI8SW1hZ2U+IG1fcHJlc2VudGVkSW1hZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAppbmRleCAy
NzliMmExYzMwOTI3NWE4NDk5Y2QyZGQ4YWMyOTE1MzMxNmI1MWIyLi5lY2E1NDE5MmIzODI3ZTli
Y2Q5OWI2OTIwNGEyNzVhOTY5MWZjMDM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKQEAgLTEyNCw2ICsxMjQs
OCBAQCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRChI
VE1MQ2FudmFzRWxlbWVudCogY2FudmFzLCBibwogI2lmICFFTkFCTEUoREFTSEJPQVJEX1NVUFBP
UlQpCiAgICAgQVNTRVJUX1VOVVNFRCh1c2VzRGFzaGJvYXJkQ29tcGF0aWJpbGl0eU1vZGUsICF1
c2VzRGFzaGJvYXJkQ29tcGF0aWJpbGl0eU1vZGUpOwogI2VuZGlmCisgICAgaWYgKEdyYXBoaWNz
Q29udGV4dCogY29udGV4dCA9IGNhbnZhcy0+ZHJhd2luZ0NvbnRleHQoKSkKKyAgICAgICAgY29u
dGV4dC0+c2F2ZSgpOwogfQogCiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6dW53aW5k
U3RhdGVTdGFjaygpCkBAIC0xMzMsNyArMTM1LDcgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQ6OnVud2luZFN0YXRlU3RhY2soKQogICAgIC8vIEdyYXBoaWNzQ29udGV4dCBkdG9yLgog
ICAgIGlmIChzaXplX3Qgc3RhY2tTaXplID0gbV9zdGF0ZVN0YWNrLnNpemUoKSkgewogICAgICAg
ICBpZiAoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0ID0gY2FudmFzKCktPmV4aXN0aW5nRHJhd2lu
Z0NvbnRleHQoKSkgewotICAgICAgICAgICAgd2hpbGUgKC0tc3RhY2tTaXplKQorICAgICAgICAg
ICAgd2hpbGUgKHN0YWNrU2l6ZS0tKQogICAgICAgICAgICAgICAgIGNvbnRleHQtPnJlc3RvcmUo
KTsKICAgICAgICAgfQogICAgIH0KQEAgLTE2MSwxMSArMTYzLDggQEAgdm9pZCBDYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQ6OnJlc2V0KCkKICAgICBtX3N0YXRlU3RhY2sucmVzaXplKDEpOwogICAg
IG1fc3RhdGVTdGFjay5maXJzdCgpID0gU3RhdGUoKTsKICAgICBtX3BhdGguY2xlYXIoKTsKLSNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0gICAgUmVuZGVyQm94KiByZW5kZXJCb3gg
PSBjYW52YXMoKS0+cmVuZGVyQm94KCk7Ci0gICAgaWYgKHJlbmRlckJveCAmJiByZW5kZXJCb3gt
Pmhhc0xheWVyKCkgJiYgcmVuZGVyQm94LT5sYXllcigpLT5oYXNBY2NlbGVyYXRlZENvbXBvc2l0
aW5nKCkpCi0gICAgICAgIHJlbmRlckJveC0+bGF5ZXIoKS0+Y29udGVudENoYW5nZWQoUmVuZGVy
TGF5ZXI6OkNhbnZhc0NoYW5nZWQpOwotI2VuZGlmCisgICAgaWYgKEdyYXBoaWNzQ29udGV4dCog
Y29udGV4dCA9IGNhbnZhcygpLT5kcmF3aW5nQ29udGV4dCgpKQorICAgICAgICBjb250ZXh0LT5z
YXZlKCk7CiB9CiAKIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6U3RhdGU6OlN0YXRlKCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132064</attachid>
            <date>2012-03-15 10:00:13 -0700</date>
            <delta_ts>2012-03-16 05:27:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80871-20120315170012.patch</filename>
            <type>text/plain</type>
            <size>9656</size>
            <attacher name="Sami Kyostila">skyostil</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwODAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYThiZTIyMDlkODFiMjk1
ZTI1NmIzNjZkYmU3MDJmOTI4MTBiNTZlYi4uYWJlMjFmNjQ4NjRlOGNhNjNkZDg4NGE1YzlhNzEy
MWYyMTkzNDgzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDEyLTAzLTE1ICBTYW1p
IEt5b3N0aWxhICA8c2t5b3N0aWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldXNlIGJ1ZmZl
ciBhbGxvY2F0aW9uIGlmIGNhbnZhcyBzaXplIGRvZXMgbm90IGNoYW5nZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA4NzEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJZiB0aGUgdXNlciBjaGFuZ2VzIHRo
ZSB3aWR0aCBvciBoZWlnaHQgYXR0cmlidXRlcyBvZiBhIGNhbnZhcyBlbGVtZW50LAorICAgICAg
ICB0aGUgY29udGVudHMgb2YgdGhlIGNhbnZhcyBzaG91bGQgYmUgY2xlYXJlZCBhbmQgdGhlIGNv
bnRleHQgc3RhdGUKKyAgICAgICAgc2hvdWxkIGJlIHJlc2V0IFRoaXMgaGFzIGJlY29tZSBhIGNv
bW1vbiBpZGlvbSB0byBjbGVhciB0aGUgY2FudmFzCisgICAgICAgICJlZmZpY2llbnRseSIgYXQg
dGhlIHN0YXJ0IG9mIGEgZnJhbWUuCisKKyAgICAgICAgUHJldmlvdXNseSwgdGhpcyBjb2RlIHBh
dGggdHJpZ2dlcmVkIGEgZnVsbCByZWFsbG9jYXRpb24gb2YgdGhlIGltYWdlCisgICAgICAgIGJ1
ZmZlciBiYWNraW5nIHRoZSBjYW52YXMsIGxlYWRpbmcgdG8gcmVkdWNlZCBwZXJmb3JtYW5jZS4g
VGhpcyBwYXRjaAorICAgICAgICBpbXBsZW1lbnRzIGFuIG9wdGltaXphdGlvbiB3aGVyZSB3ZSBy
ZXVzZSB0aGUgcHJldmlvdXMgaW1hZ2UgYnVmZmVyCisgICAgICAgIGFsbG9jYXRpb24gaWYgdGhl
IHNpemUgb2YgdGhlIGNhbnZhcyBkaWQgbm90IGNoYW5nZS4gQWxzbywgaW5zdGVhZCBvZgorICAg
ICAgICBjbGVhcmluZyB0aGUgY2FudmFzIGV2ZXJ5IHRpbWUgaXRzIGRpbWVuc2lvbnMgYXJlIHRv
dWNoZWQsIHdlIG9ubHkgY2xlYXIKKyAgICAgICAgaWYgYW55dGhpbmcgaGFzIGJlZW4gZHJhd24g
aW50byB0aGUgY2FudmFzIHNpbmNlIGl0IHdhcyBwcmV2aW91c2x5CisgICAgICAgIGNsZWFyZWQu
CisKKyAgICAgICAgVGVzdGVkIGJ5IGV4aXN0aW5nIGxheW91dCB0ZXN0cyBmb3IgY2FudmFzIHJl
c2V0dGluZy4KKworICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OkhUTUxDYW52YXNFbGVtZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpyZXNldCk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmNsZWFySW1hZ2VCdWZmZXIpOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Y2xlYXJDb3BpZWRJbWFn
ZSk6CisgICAgICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oOgorICAgICAgICAoSFRNTENh
bnZhc0VsZW1lbnQpOgorICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OkNh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRCk6IFNhdmUgdGhlCisgICAgICAgIGluaXRpYWwgZ3JhcGhp
Y3MgY29udGV4dCBzdGF0ZSBzbyB3ZSBjYW4gcmVzdG9yZSBpdCB3aXRob3V0IGNyZWF0aW5nIGEK
KyAgICAgICAgbmV3IGNvbnRleHQuCisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQ6OnVud2luZFN0YXRlU3RhY2spOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEOjpyZXNldCk6IE5vIG5lZWQgdG8gbm90aWZ5IHRoZQorICAgICAgICBj
b21wb3NpdG9yIHdoZW4gdGhlIGNvbnRleHQgaXMgcmVzZXQsIGJlY2F1c2UgY2xlYXJpbmcgdGhl
IGltYWdlIGJ1ZmZlcgorICAgICAgICBkb2VzIHRoZSBzYW1lIHRoaW5nLiBXZSBjYW4gYWxzbyBz
a2lwIHRoZSBub3RpZmljYXRpb24gaWYgd2UgZGlkIG5vdAorICAgICAgICBoYXZlIGFuIGltYWdl
IGJ1ZmZlciBhdCB0aGUgdGltZSBvZiB0aGUgcmVzZXQsIGJlY2F1c2UgdGhlIHJlc2V0IHdpbGwK
KyAgICAgICAgbm90IGhhdmUgYW55IHZpc3VhbCBpbXBhY3QgaW4gdGhpcyBjYXNlLiBGaW5hbGx5
LCBpZiB0aGUgY2FudmFzIHNpemUKKyAgICAgICAgZGlkIGNoYW5nZSwgdGhlIG5vdGlmaWNhdGlv
biBpcyBhbHNvIHVubmVjZXNzYXJ5IGJlY2F1c2Ugb2YgdGhlIGNhbGwKKyAgICAgICAgdG8gUmVu
ZGVyT2JqZWN0OjpyZXBhaW50KCkgZnJvbSBIVE1MQ2FudmFzRWxlbWVudDo6cmVzZXQoKS4KKwog
MjAxMi0wMy0xNCAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAg
ICAgIEZpeCBidWlsZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZh
c0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAK
aW5kZXggMDdhYjMwOTFlNTk4Mzg0YTNkYjMwOWM5NTVlMTFhMjhjOWU0ZDJjMy4uMzU3MjcwMjMy
OTVlYmExMmU1ZmYxZTVjMWEyZDcyZjlkNzgzYWVmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQ2FudmFzRWxlbWVudC5jcHAKQEAgLTkyLDYgKzkyLDcgQEAgSFRNTENhbnZhc0VsZW1lbnQ6
OkhUTUxDYW52YXNFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50
KiBkb2MKICNlbmRpZgogICAgICwgbV9vcmlnaW5DbGVhbih0cnVlKQogICAgICwgbV9oYXNDcmVh
dGVkSW1hZ2VCdWZmZXIoZmFsc2UpCisgICAgLCBtX2RpZENsZWFySW1hZ2VCdWZmZXIoZmFsc2Up
CiB7CiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoY2FudmFzVGFnKSk7CiB9CkBAIC0yNTIsOCArMjUz
LDE0IEBAIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OnJlc2V0KCkKICAgICAgICAgY29udGV4dDJE
LT5yZXNldCgpOwogICAgIH0KIAorICAgIC8vIElmIHRoZSBzaXplIG9mIGFuIGV4aXN0aW5nIGJ1
ZmZlciBtYXRjaGVzLCB3ZSBjYW4ganVzdCBjbGVhciBpdCBpbnN0ZWFkIG9mIHJlYWxsb2NhdGlu
Zy4KICAgICBJbnRTaXplIG9sZFNpemUgPSBzaXplKCk7Ci0gICAgc2V0U3VyZmFjZVNpemUoSW50
U2l6ZSh3LCBoKSk7IC8vIFRoZSBpbWFnZSBidWZmZXIgZ2V0cyBjbGVhcmVkIGhlcmUuCisgICAg
aWYgKGhhZEltYWdlQnVmZmVyICYmIG9sZFNpemUgPT0gSW50U2l6ZSh3LCBoKSkgeworICAgICAg
ICBpZiAoIW1fZGlkQ2xlYXJJbWFnZUJ1ZmZlcikKKyAgICAgICAgICAgIGNsZWFySW1hZ2VCdWZm
ZXIoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBzZXRTdXJmYWNlU2l6ZShJbnRTaXpl
KHcsIGgpKTsKIAogI2lmIEVOQUJMRShXRUJHTCkKICAgICBpZiAobV9jb250ZXh0ICYmIG1fY29u
dGV4dC0+aXMzZCgpICYmIG9sZFNpemUgIT0gc2l6ZSgpKQpAQCAtNDk4LDYgKzUwNSw3IEBAIHZv
aWQgSFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0ZUltYWdlQnVmZmVyKCkgY29uc3QKICAgICBBU1NF
UlQoIW1faW1hZ2VCdWZmZXIpOwogCiAgICAgbV9oYXNDcmVhdGVkSW1hZ2VCdWZmZXIgPSB0cnVl
OworICAgIG1fZGlkQ2xlYXJJbWFnZUJ1ZmZlciA9IHRydWU7CiAKICAgICBGbG9hdFNpemUgbG9n
aWNhbFNpemUgPSBzaXplKCk7CiAgICAgRmxvYXRTaXplIGRldmljZVNpemUgPSBjb252ZXJ0TG9n
aWNhbFRvRGV2aWNlKGxvZ2ljYWxTaXplKTsKQEAgLTU3Myw5ICs1ODEsMzQgQEAgSW1hZ2UqIEhU
TUxDYW52YXNFbGVtZW50Ojpjb3BpZWRJbWFnZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fY29waWVk
SW1hZ2UuZ2V0KCk7CiB9CiAKK3ZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OmNsZWFySW1hZ2VCdWZm
ZXIoKSBjb25zdAoreworICAgIEFTU0VSVChtX2hhc0NyZWF0ZWRJbWFnZUJ1ZmZlcik7CisgICAg
QVNTRVJUKCFtX2RpZENsZWFySW1hZ2VCdWZmZXIpOworCisgICAgaWYgKCFtX2NvbnRleHQpCisg
ICAgICAgIHJldHVybjsKKworICAgIG1fZGlkQ2xlYXJJbWFnZUJ1ZmZlciA9IHRydWU7CisKKyAg
ICBpZiAobV9jb250ZXh0LT5pczJkKCkpIHsKKyAgICAgICAgQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEKiBjb250ZXh0MkQgPSBzdGF0aWNfY2FzdDxDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQqPiht
X2NvbnRleHQuZ2V0KCkpOworICAgICAgICAvLyBObyBuZWVkIHRvIHVuZG8gdHJhbnNmb3Jtcy9j
bGlwL2V0Yy4gYmVjYXVzZSB3ZSBhcmUgY2FsbGVkIHJpZ2h0IGFmdGVyIHRoZSBjb250ZXh0IGlz
IHJlc2V0LgorICAgICAgICBjb250ZXh0MkQtPmNsZWFyUmVjdCgwLCAwLCB3aWR0aCgpLCBoZWln
aHQoKSk7CisgICAgfQorCisjaWYgRU5BQkxFKFdFQkdMKQorICAgIGlmIChtX2NvbnRleHQtPmlz
M2QoKSkgeworICAgICAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHQqIGNvbnRleHQzRCA9IHN0YXRp
Y19jYXN0PFdlYkdMUmVuZGVyaW5nQ29udGV4dCo+KG1fY29udGV4dC5nZXQoKSk7CisgICAgICAg
IGNvbnRleHQzRC0+Y2xlYXIoR3JhcGhpY3NDb250ZXh0M0Q6OkNPTE9SX0JVRkZFUl9CSVQgfCBH
cmFwaGljc0NvbnRleHQzRDo6REVQVEhfQlVGRkVSX0JJVCB8IEdyYXBoaWNzQ29udGV4dDNEOjpT
VEVOQ0lMX0JVRkZFUl9CSVQpOworICAgIH0KKyNlbmRpZgorfQorCiB2b2lkIEhUTUxDYW52YXNF
bGVtZW50OjpjbGVhckNvcGllZEltYWdlKCkKIHsKICAgICBtX2NvcGllZEltYWdlLmNsZWFyKCk7
CisgICAgbV9kaWRDbGVhckltYWdlQnVmZmVyID0gZmFsc2U7CiB9CiAKIEFmZmluZVRyYW5zZm9y
bSBIVE1MQ2FudmFzRWxlbWVudDo6YmFzZVRyYW5zZm9ybSgpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxDYW52YXNFbGVtZW50LmgKaW5kZXggZTJjNDg4OGU1YjRiNjQ1NjU0ZmFkNGFlOTgy
OGJkZWFmNDA1NmNiMi4uOTJkNzYyNTkzODc5MjAyNWFlNGM4Nzk2MTgzZDUwNzQ3YzhjOGMzOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaApAQCAtMTQzLDYgKzE0Myw3
IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZXNldCgpOwogCiAgICAgdm9pZCBjcmVhdGVJbWFnZUJ1
ZmZlcigpIGNvbnN0OworICAgIHZvaWQgY2xlYXJJbWFnZUJ1ZmZlcigpIGNvbnN0OwogCiAgICAg
dm9pZCBzZXRTdXJmYWNlU2l6ZShjb25zdCBJbnRTaXplJik7CiAKQEAgLTE2Niw2ICsxNjcsNyBA
QCBwcml2YXRlOgogCiAgICAgLy8gbV9jcmVhdGVkSW1hZ2VCdWZmZXIgbWVhbnMgd2UgdHJpZWQg
dG8gbWFsbG9jIHRoZSBidWZmZXIuICBXZSBkaWRuJ3QgbmVjZXNzYXJpbHkgZ2V0IGl0LgogICAg
IG11dGFibGUgYm9vbCBtX2hhc0NyZWF0ZWRJbWFnZUJ1ZmZlcjsKKyAgICBtdXRhYmxlIGJvb2wg
bV9kaWRDbGVhckltYWdlQnVmZmVyOwogICAgIG11dGFibGUgT3duUHRyPEltYWdlQnVmZmVyPiBt
X2ltYWdlQnVmZmVyOwogICAgIAogICAgIG11dGFibGUgUmVmUHRyPEltYWdlPiBtX3ByZXNlbnRl
ZEltYWdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJELmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRC5jcHAKaW5kZXggMjc5YjJhMWMzMDkyNzVhODQ5OWNkMmRkOGFjMjkx
NTMzMTZiNTFiMi4uZWNhNTQxOTJiMzgyN2U5YmNkOTliNjkyMDRhMjc1YTk2OTFmYzAzOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJELmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQuY3BwCkBAIC0xMjQsNiArMTI0LDggQEAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
OjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQoSFRNTENhbnZhc0VsZW1lbnQqIGNhbnZhcywgYm8K
ICNpZiAhRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQogICAgIEFTU0VSVF9VTlVTRUQodXNlc0Rh
c2hib2FyZENvbXBhdGliaWxpdHlNb2RlLCAhdXNlc0Rhc2hib2FyZENvbXBhdGliaWxpdHlNb2Rl
KTsKICNlbmRpZgorICAgIGlmIChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQgPSBjYW52YXMtPmRy
YXdpbmdDb250ZXh0KCkpCisgICAgICAgIGNvbnRleHQtPnNhdmUoKTsKIH0KIAogdm9pZCBDYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnVud2luZFN0YXRlU3RhY2soKQpAQCAtMTMzLDcgKzEzNSw3
IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjp1bndpbmRTdGF0ZVN0YWNrKCkKICAg
ICAvLyBHcmFwaGljc0NvbnRleHQgZHRvci4KICAgICBpZiAoc2l6ZV90IHN0YWNrU2l6ZSA9IG1f
c3RhdGVTdGFjay5zaXplKCkpIHsKICAgICAgICAgaWYgKEdyYXBoaWNzQ29udGV4dCogY29udGV4
dCA9IGNhbnZhcygpLT5leGlzdGluZ0RyYXdpbmdDb250ZXh0KCkpIHsKLSAgICAgICAgICAgIHdo
aWxlICgtLXN0YWNrU2l6ZSkKKyAgICAgICAgICAgIHdoaWxlIChzdGFja1NpemUtLSkKICAgICAg
ICAgICAgICAgICBjb250ZXh0LT5yZXN0b3JlKCk7CiAgICAgICAgIH0KICAgICB9CkBAIC0xNjEs
MTEgKzE2Myw4IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpyZXNldCgpCiAgICAg
bV9zdGF0ZVN0YWNrLnJlc2l6ZSgxKTsKICAgICBtX3N0YXRlU3RhY2suZmlyc3QoKSA9IFN0YXRl
KCk7CiAgICAgbV9wYXRoLmNsZWFyKCk7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQotICAgIFJlbmRlckJveCogcmVuZGVyQm94ID0gY2FudmFzKCktPnJlbmRlckJveCgpOwotICAg
IGlmIChyZW5kZXJCb3ggJiYgcmVuZGVyQm94LT5oYXNMYXllcigpICYmIHJlbmRlckJveC0+bGF5
ZXIoKS0+aGFzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpKQotICAgICAgICByZW5kZXJCb3gtPmxh
eWVyKCktPmNvbnRlbnRDaGFuZ2VkKFJlbmRlckxheWVyOjpDYW52YXNDaGFuZ2VkKTsKLSNlbmRp
ZgorICAgIGlmIChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQgPSBjYW52YXMoKS0+ZHJhd2luZ0Nv
bnRleHQoKSkKKyAgICAgICAgY29udGV4dC0+c2F2ZSgpOwogfQogCiBDYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQ6OlN0YXRlOjpTdGF0ZSgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNmYzNmU3MjFmNjFiNGFiMTJiYjVmMDQ3
ZGUwOGNhOTgxMGJkMzlhMS4uNmViODNhMDUyNmMxYzk5ZmExYzNiMDU4YjliNzc2ZjYyYWY4ZmM5
OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTAzLTE1ICBTYW1pIEt5b3N0aWxhICA8c2t5
b3N0aWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldXNlIGJ1ZmZlciBhbGxvY2F0aW9uIGlm
IGNhbnZhcyBzaXplIGRvZXMgbm90IGNoYW5nZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA4NzEKKworICAgICAgICBVcGRhdGUgZXhwZWN0ZWQgaW1h
Z2UgZm9yIGNhbnZhcyBjbGVhcmluZyB0ZXN0LiBUaGUgdGVzdCBpcyBzZXR0aW5nIHRoZSBzaXpl
IG9mCisgICAgICAgIGEgY2FudmFzIGFuZCBleHBlY3RpbmcgaXQgdG8gYmUgY2xlYXJlZCBpbiB0
aGUgcHJvY2Vzcy4gV2l0aCB0aGUgb3B0aW1pemF0aW9uCisgICAgICAgIHRvIHJldGFpbiB0aGUg
dW5kZXJseWluZyBJbWFnZUJ1ZmZlciwgd2Ugbm8gbG9uZ2VyIGNhbGwKKyAgICAgICAgUmVuZGVy
UmVwbGFjZWQ6OnJlcGFpbnQoKSBhcyBhIHBhcnQgb2YgdGhpcyBwcm9jZXNzLiBUaGlzIGZ1bmN0
aW9uIHVzZWQgdG8KKyAgICAgICAgcmVwYWludCBib3RoIHRoZSBjYW52YXMgaXRzZWxmICgxMDB4
NTApIGFzIHdlbGwgYXMgaXRzIGxvY2FsIHNlbGVjdGlvbgorICAgICAgICByZWN0YW5nbGUgKDEw
MHg1NCkuCisKKyAgICAgICAgSW4gdGhpcyBjYXNlIHRoZSBsb2NhbCBzZWxlY3Rpb24gcmVjdGFu
Z2xlIGlzIGxhcmdlciB0aGFuIHRoZSBjYW52YXMgYmVjYXVzZQorICAgICAgICB0aGUgY2FudmFz
IGlzIGNvbnRhaW5lZCB3aXRoaW4gYW4gYW5vbnltb3VzIFJlbmRlckJsb2NrIHRoYXQgYWxzbyBo
YXMgdHdvIGVtcHR5CisgICAgICAgIHRleHQgbm9kZXMuIFRoZSBleHRyYSA0IHBpeGVscyBhcmUg
bmVlZGVkIGZvciBkcmF3aW5nIHRoZSBzZWxlY3Rpb24gcmVjdGFuZ2xlCisgICAgICAgIGFyb3Vu
ZCBhbnkgZGVzY2VuZGVycyBpbiB0aGUgdGhlIHRleHQgb2YgdGhvc2Ugbm9kZXMuCisKKyAgICAg
ICAgU2luY2UgY2xlYXJpbmcgdGhlIGNhbnZhcyBoYXMgbm8gZWZmZWN0IG9uIHRoZSBzZWxlY3Rp
b24gcmVjdGFuZ2xlLCB3ZSBvbmx5CisgICAgICAgIG5lZWQgdG8gcmVwYWludCB0aGUgYXJlYSBv
ZiB0aGUgY2FudmFzIGl0c2VsZi4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2Zhc3QvY2FudmFzL3NldFdp
ZHRoUmVzZXRBZnRlckZvcmNlZFJlbmRlci1leHBlY3RlZC5wbmc6CisKIDIwMTItMDMtMTQgIEpl
c3NpZSBCZXJsaW4gIDxqYmVybGluQGFwcGxlLmNvbT4KIAogICAgICAgICBmdWxsc2NyZWVuL3Zp
ZGVvLWNvbnRyb2xzLWRyYWcuaHRtbCBmYWlsaW5nIG9uIE1hYwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC9jYW52YXMvc2V0V2lkdGhSZXNldEFm
dGVyRm9yY2VkUmVuZGVyLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtLWxpbnV4L2Zhc3QvY2FudmFzL3NldFdpZHRoUmVzZXRBZnRlckZvcmNlZFJlbmRlci1leHBl
Y3RlZC5wbmcKaW5kZXggMDkyYjBlOGU5YWIyOWVjN2Y1YTFiZjAzZjUxNjFiYjliMzc2ZjRiZS4u
NjJkMDdlZjAxNmQ2Zjg4OGY5NGViNmJhOGFmYjhhZTk2ZTJkYjViYiAxMDA2NDQKR0lUIGJpbmFy
eSBwYXRjaApkZWx0YSA5Mwp6Y21aMnF3WjNZQ2slfiFEUW1UY2lWTiRZKm5UMyZJYSQ9JSFsMktZ
fVlGZCk5a3h7YSN4I2pLUGZWeiFnR21Vd0QKeGRWNzJHY2t3YlhGdVdJaXhBfilxMkZHTHYpMzBM
eDxAZGUqQStlM0FfJiFqRSFQQ3t4V3R+JCg2OTZiakI0eipwCgpkZWx0YSA5OAp6Y21WLW8wRzxE
QGRhcnRyRzkpPTtGKiExMUcmRDZhRmZuOHxXPz9wRkk1c2gzRmZjUFRHJXorWUctMkdWR0lYKDQK
em5LUDBCNyFKKFQqeDJ9eytXLUluQEx1NSN2dGMmNDJEM21sT2FkMUZBRUtmNzcpX1BLZiZjJmow
Nypxb002TjwkCkVnMWRNbTNJRzVBCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132258</attachid>
            <date>2012-03-16 05:27:51 -0700</date>
            <delta_ts>2012-03-19 07:45:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80871-20120316122749.patch</filename>
            <type>text/plain</type>
            <size>9693</size>
            <attacher name="Sami Kyostila">skyostil</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwOTI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWZiODQ0ZGUzZjIwNzU2
ODVlYzYyY2E5MDBiNTljN2YxMTRkZDg3MC4uZDBhYTBhNDU1NzA1NmQ2YTZlYmQ4YWNhZTkzOGJm
MjliYWRiOTM3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEyLTAzLTE1ICBTYW1p
IEt5b3N0aWxhICA8c2t5b3N0aWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldXNlIGJ1ZmZl
ciBhbGxvY2F0aW9uIGlmIGNhbnZhcyBzaXplIGRvZXMgbm90IGNoYW5nZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA4NzEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJZiB0aGUgdXNlciBjaGFuZ2VzIHRo
ZSB3aWR0aCBvciBoZWlnaHQgYXR0cmlidXRlcyBvZiBhIGNhbnZhcyBlbGVtZW50LAorICAgICAg
ICB0aGUgY29udGVudHMgb2YgdGhlIGNhbnZhcyBzaG91bGQgYmUgY2xlYXJlZCBhbmQgdGhlIGNv
bnRleHQgc3RhdGUKKyAgICAgICAgc2hvdWxkIGJlIHJlc2V0IFRoaXMgaGFzIGJlY29tZSBhIGNv
bW1vbiBpZGlvbSB0byBjbGVhciB0aGUgY2FudmFzCisgICAgICAgICJlZmZpY2llbnRseSIgYXQg
dGhlIHN0YXJ0IG9mIGEgZnJhbWUuCisKKyAgICAgICAgUHJldmlvdXNseSwgdGhpcyBjb2RlIHBh
dGggdHJpZ2dlcmVkIGEgZnVsbCByZWFsbG9jYXRpb24gb2YgdGhlIGltYWdlCisgICAgICAgIGJ1
ZmZlciBiYWNraW5nIHRoZSBjYW52YXMsIGxlYWRpbmcgdG8gcmVkdWNlZCBwZXJmb3JtYW5jZS4g
VGhpcyBwYXRjaAorICAgICAgICBpbXBsZW1lbnRzIGFuIG9wdGltaXphdGlvbiB3aGVyZSB3ZSBy
ZXVzZSB0aGUgcHJldmlvdXMgaW1hZ2UgYnVmZmVyCisgICAgICAgIGFsbG9jYXRpb24gaWYgdGhl
IHNpemUgb2YgdGhlIGNhbnZhcyBkaWQgbm90IGNoYW5nZS4gQWxzbywgaW5zdGVhZCBvZgorICAg
ICAgICBjbGVhcmluZyB0aGUgY2FudmFzIGV2ZXJ5IHRpbWUgaXRzIGRpbWVuc2lvbnMgYXJlIHRv
dWNoZWQsIHdlIG9ubHkgY2xlYXIKKyAgICAgICAgaWYgYW55dGhpbmcgaGFzIGJlZW4gZHJhd24g
aW50byB0aGUgY2FudmFzIHNpbmNlIGl0IHdhcyBwcmV2aW91c2x5CisgICAgICAgIGNsZWFyZWQu
CisKKyAgICAgICAgTm90ZSB0aGF0IGZvciBub3cgdGhpcyBvcHRpbWl6YXRpb24gb25seSBhcHBs
aWVzIGZvciAyRCBjYW52YXNlcywKKyAgICAgICAgc2luY2UgaXQgaXMgbm90IGVudGlyZWx5IGNs
ZWFyIGhvdyB0b3VjaGluZyB0aGUgZGltZW5zaW9ucyBvZiBhIFdlYkdMCisgICAgICAgIGNhbnZh
cyBzaG91bGQgd29yay4KKworICAgICAgICBUZXN0ZWQgYnkgZXhpc3RpbmcgbGF5b3V0IHRlc3Rz
IGZvciBjYW52YXMgcmVzZXR0aW5nLgorCisgICAgICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6SFRNTENhbnZhc0Vs
ZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnJlc2V0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVJbWFnZUJ1ZmZlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Y2xlYXJJbWFnZUJ1ZmZlcik6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50Ojpj
bGVhckNvcGllZEltYWdlKToKKyAgICAgICAgKiBodG1sL0hUTUxDYW52YXNFbGVtZW50Lmg6Cisg
ICAgICAgIChIVE1MQ2FudmFzRWxlbWVudCk6CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJELmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRDo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKTogU2F2ZSB0aGUKKyAgICAgICAg
aW5pdGlhbCBncmFwaGljcyBjb250ZXh0IHN0YXRlIHNvIHdlIGNhbiByZXN0b3JlIGl0IHdpdGhv
dXQgY3JlYXRpbmcgYQorICAgICAgICBuZXcgY29udGV4dC4KKyAgICAgICAgKFdlYkNvcmU6OkNh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6dW53aW5kU3RhdGVTdGFjayk6CisgICAgICAgIChXZWJD
b3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnJlc2V0KTogTm8gbmVlZCB0byBub3RpZnkg
dGhlCisgICAgICAgIGNvbXBvc2l0b3Igd2hlbiB0aGUgY29udGV4dCBpcyByZXNldCwgYmVjYXVz
ZSBjbGVhcmluZyB0aGUgaW1hZ2UgYnVmZmVyCisgICAgICAgIGRvZXMgdGhlIHNhbWUgdGhpbmcu
IFdlIGNhbiBhbHNvIHNraXAgdGhlIG5vdGlmaWNhdGlvbiBpZiB3ZSBkaWQgbm90CisgICAgICAg
IGhhdmUgYW4gaW1hZ2UgYnVmZmVyIGF0IHRoZSB0aW1lIG9mIHRoZSByZXNldCwgYmVjYXVzZSB0
aGUgcmVzZXQgd2lsbAorICAgICAgICBub3QgaGF2ZSBhbnkgdmlzdWFsIGltcGFjdCBpbiB0aGlz
IGNhc2UuIEZpbmFsbHksIGlmIHRoZSBjYW52YXMgc2l6ZQorICAgICAgICBkaWQgY2hhbmdlLCB0
aGUgbm90aWZpY2F0aW9uIGlzIGFsc28gdW5uZWNlc3NhcnkgYmVjYXVzZSBvZiB0aGUgY2FsbAor
ICAgICAgICB0byBSZW5kZXJPYmplY3Q6OnJlcGFpbnQoKSBmcm9tIEhUTUxDYW52YXNFbGVtZW50
OjpyZXNldCgpLgorCiAyMDEyLTAzLTE1ICBEYW5hIEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gTW92ZSBvdmVyZHJhdyBtZXRyaWNzIGludG8gYSB0
ZW1wbGF0ZWQgY2xhc3MgZm9yIGJvdGggcGFpbnQgYW5kIGRyYXcgbWV0cmljcy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKaW5kZXggMDdhYjMwOTFlNTk4Mzg0YTNk
YjMwOWM5NTVlMTFhMjhjOWU0ZDJjMy4uNDRmMTdkNzA1NGNkN2JhNDQzOTQ2Y2UxZDg3NGZiNWVl
ZTdjMWIxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKQEAg
LTkyLDYgKzkyLDcgQEAgSFRNTENhbnZhc0VsZW1lbnQ6OkhUTUxDYW52YXNFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2MKICNlbmRpZgogICAgICwgbV9v
cmlnaW5DbGVhbih0cnVlKQogICAgICwgbV9oYXNDcmVhdGVkSW1hZ2VCdWZmZXIoZmFsc2UpCisg
ICAgLCBtX2RpZENsZWFySW1hZ2VCdWZmZXIoZmFsc2UpCiB7CiAgICAgQVNTRVJUKGhhc1RhZ05h
bWUoY2FudmFzVGFnKSk7CiB9CkBAIC0yNTIsOCArMjUzLDE0IEBAIHZvaWQgSFRNTENhbnZhc0Vs
ZW1lbnQ6OnJlc2V0KCkKICAgICAgICAgY29udGV4dDJELT5yZXNldCgpOwogICAgIH0KIAorICAg
IC8vIElmIHRoZSBzaXplIG9mIGFuIGV4aXN0aW5nIGJ1ZmZlciBtYXRjaGVzLCB3ZSBjYW4ganVz
dCBjbGVhciBpdCBpbnN0ZWFkIG9mIHJlYWxsb2NhdGluZy4KICAgICBJbnRTaXplIG9sZFNpemUg
PSBzaXplKCk7Ci0gICAgc2V0U3VyZmFjZVNpemUoSW50U2l6ZSh3LCBoKSk7IC8vIFRoZSBpbWFn
ZSBidWZmZXIgZ2V0cyBjbGVhcmVkIGhlcmUuCisgICAgaWYgKGhhZEltYWdlQnVmZmVyICYmIG9s
ZFNpemUgPT0gSW50U2l6ZSh3LCBoKSAmJiAoIW1fY29udGV4dCB8fCBtX2NvbnRleHQtPmlzMmQo
KSkpIHsKKyAgICAgICAgaWYgKCFtX2RpZENsZWFySW1hZ2VCdWZmZXIpCisgICAgICAgICAgICBj
bGVhckltYWdlQnVmZmVyKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgc2V0U3VyZmFj
ZVNpemUoSW50U2l6ZSh3LCBoKSk7CiAKICNpZiBFTkFCTEUoV0VCR0wpCiAgICAgaWYgKG1fY29u
dGV4dCAmJiBtX2NvbnRleHQtPmlzM2QoKSAmJiBvbGRTaXplICE9IHNpemUoKSkKQEAgLTQ5OCw2
ICs1MDUsNyBAQCB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVJbWFnZUJ1ZmZlcigpIGNv
bnN0CiAgICAgQVNTRVJUKCFtX2ltYWdlQnVmZmVyKTsKIAogICAgIG1faGFzQ3JlYXRlZEltYWdl
QnVmZmVyID0gdHJ1ZTsKKyAgICBtX2RpZENsZWFySW1hZ2VCdWZmZXIgPSB0cnVlOwogCiAgICAg
RmxvYXRTaXplIGxvZ2ljYWxTaXplID0gc2l6ZSgpOwogICAgIEZsb2F0U2l6ZSBkZXZpY2VTaXpl
ID0gY29udmVydExvZ2ljYWxUb0RldmljZShsb2dpY2FsU2l6ZSk7CkBAIC01NzMsOSArNTgxLDI3
IEBAIEltYWdlKiBIVE1MQ2FudmFzRWxlbWVudDo6Y29waWVkSW1hZ2UoKSBjb25zdAogICAgIHJl
dHVybiBtX2NvcGllZEltYWdlLmdldCgpOwogfQogCit2b2lkIEhUTUxDYW52YXNFbGVtZW50Ojpj
bGVhckltYWdlQnVmZmVyKCkgY29uc3QKK3sKKyAgICBBU1NFUlQobV9oYXNDcmVhdGVkSW1hZ2VC
dWZmZXIpOworICAgIEFTU0VSVCghbV9kaWRDbGVhckltYWdlQnVmZmVyKTsKKworICAgIGlmICgh
bV9jb250ZXh0KQorICAgICAgICByZXR1cm47CisKKyAgICBtX2RpZENsZWFySW1hZ2VCdWZmZXIg
PSB0cnVlOworCisgICAgaWYgKG1fY29udGV4dC0+aXMyZCgpKSB7CisgICAgICAgIENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRCogY29udGV4dDJEID0gc3RhdGljX2Nhc3Q8Q2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEKj4obV9jb250ZXh0LmdldCgpKTsKKyAgICAgICAgLy8gTm8gbmVlZCB0byB1bmRv
IHRyYW5zZm9ybXMvY2xpcC9ldGMuIGJlY2F1c2Ugd2UgYXJlIGNhbGxlZCByaWdodCBhZnRlciB0
aGUgY29udGV4dCBpcyByZXNldC4KKyAgICAgICAgY29udGV4dDJELT5jbGVhclJlY3QoMCwgMCwg
d2lkdGgoKSwgaGVpZ2h0KCkpOworICAgIH0KK30KKwogdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6
Y2xlYXJDb3BpZWRJbWFnZSgpCiB7CiAgICAgbV9jb3BpZWRJbWFnZS5jbGVhcigpOworICAgIG1f
ZGlkQ2xlYXJJbWFnZUJ1ZmZlciA9IGZhbHNlOwogfQogCiBBZmZpbmVUcmFuc2Zvcm0gSFRNTENh
bnZhc0VsZW1lbnQ6OmJhc2VUcmFuc2Zvcm0oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
Q2FudmFzRWxlbWVudC5oCmluZGV4IGUyYzQ4ODhlNWI0YjY0NTY1NGZhZDRhZTk4MjhiZGVhZjQw
NTZjYjIuLjkyZDc2MjU5Mzg3OTIwMjVhZTRjODc5NjE4M2Q1MDc0N2M4YzhjMzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgKQEAgLTE0Myw2ICsxNDMsNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgcmVzZXQoKTsKIAogICAgIHZvaWQgY3JlYXRlSW1hZ2VCdWZmZXIoKSBj
b25zdDsKKyAgICB2b2lkIGNsZWFySW1hZ2VCdWZmZXIoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0
U3VyZmFjZVNpemUoY29uc3QgSW50U2l6ZSYpOwogCkBAIC0xNjYsNiArMTY3LDcgQEAgcHJpdmF0
ZToKIAogICAgIC8vIG1fY3JlYXRlZEltYWdlQnVmZmVyIG1lYW5zIHdlIHRyaWVkIHRvIG1hbGxv
YyB0aGUgYnVmZmVyLiAgV2UgZGlkbid0IG5lY2Vzc2FyaWx5IGdldCBpdC4KICAgICBtdXRhYmxl
IGJvb2wgbV9oYXNDcmVhdGVkSW1hZ2VCdWZmZXI7CisgICAgbXV0YWJsZSBib29sIG1fZGlkQ2xl
YXJJbWFnZUJ1ZmZlcjsKICAgICBtdXRhYmxlIE93blB0cjxJbWFnZUJ1ZmZlcj4gbV9pbWFnZUJ1
ZmZlcjsKICAgICAKICAgICBtdXRhYmxlIFJlZlB0cjxJbWFnZT4gbV9wcmVzZW50ZWRJbWFnZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQuY3BwCmluZGV4IDI3OWIyYTFjMzA5Mjc1YTg0OTljZDJkZDhhYzI5MTUzMzE2YjUx
YjIuLmVjYTU0MTkyYjM4MjdlOWJjZDk5YjY5MjA0YTI3NWE5NjkxZmMwMzkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
LmNwcApAQCAtMTI0LDYgKzEyNCw4IEBAIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Q2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEKEhUTUxDYW52YXNFbGVtZW50KiBjYW52YXMsIGJvCiAjaWYgIUVO
QUJMRShEQVNIQk9BUkRfU1VQUE9SVCkKICAgICBBU1NFUlRfVU5VU0VEKHVzZXNEYXNoYm9hcmRD
b21wYXRpYmlsaXR5TW9kZSwgIXVzZXNEYXNoYm9hcmRDb21wYXRpYmlsaXR5TW9kZSk7CiAjZW5k
aWYKKyAgICBpZiAoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0ID0gY2FudmFzLT5kcmF3aW5nQ29u
dGV4dCgpKQorICAgICAgICBjb250ZXh0LT5zYXZlKCk7CiB9CiAKIHZvaWQgQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOjp1bndpbmRTdGF0ZVN0YWNrKCkKQEAgLTEzMyw3ICsxMzUsNyBAQCB2b2lk
IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6dW53aW5kU3RhdGVTdGFjaygpCiAgICAgLy8gR3Jh
cGhpY3NDb250ZXh0IGR0b3IuCiAgICAgaWYgKHNpemVfdCBzdGFja1NpemUgPSBtX3N0YXRlU3Rh
Y2suc2l6ZSgpKSB7CiAgICAgICAgIGlmIChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQgPSBjYW52
YXMoKS0+ZXhpc3RpbmdEcmF3aW5nQ29udGV4dCgpKSB7Ci0gICAgICAgICAgICB3aGlsZSAoLS1z
dGFja1NpemUpCisgICAgICAgICAgICB3aGlsZSAoc3RhY2tTaXplLS0pCiAgICAgICAgICAgICAg
ICAgY29udGV4dC0+cmVzdG9yZSgpOwogICAgICAgICB9CiAgICAgfQpAQCAtMTYxLDExICsxNjMs
OCBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6cmVzZXQoKQogICAgIG1fc3RhdGVT
dGFjay5yZXNpemUoMSk7CiAgICAgbV9zdGF0ZVN0YWNrLmZpcnN0KCkgPSBTdGF0ZSgpOwogICAg
IG1fcGF0aC5jbGVhcigpOwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAgICBS
ZW5kZXJCb3gqIHJlbmRlckJveCA9IGNhbnZhcygpLT5yZW5kZXJCb3goKTsKLSAgICBpZiAocmVu
ZGVyQm94ICYmIHJlbmRlckJveC0+aGFzTGF5ZXIoKSAmJiByZW5kZXJCb3gtPmxheWVyKCktPmhh
c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKSkKLSAgICAgICAgcmVuZGVyQm94LT5sYXllcigpLT5j
b250ZW50Q2hhbmdlZChSZW5kZXJMYXllcjo6Q2FudmFzQ2hhbmdlZCk7Ci0jZW5kaWYKKyAgICBp
ZiAoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0ID0gY2FudmFzKCktPmRyYXdpbmdDb250ZXh0KCkp
CisgICAgICAgIGNvbnRleHQtPnNhdmUoKTsKIH0KIAogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
OjpTdGF0ZTo6U3RhdGUoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDJlNWUwMDFlZDU5YmMwMzgwYTg2YzBmMmQ4NjQ3NDQx
MWQ3ODlkYTAuLjEwYTQzZGViNWI5OTU5ZDNmYTRkMzc3YjdiM2Q0ZDE0YzEwOGRjOTUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyNyBAQAorMjAxMi0wMy0xNSAgU2FtaSBLeW9zdGlsYSAgPHNreW9zdGlsQGNo
cm9taXVtLm9yZz4KKworICAgICAgICBSZXVzZSBidWZmZXIgYWxsb2NhdGlvbiBpZiBjYW52YXMg
c2l6ZSBkb2VzIG5vdCBjaGFuZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTgwODcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVXBkYXRlIGV4cGVjdGVkIGltYWdlIGZvciBjYW52YXMgY2xlYXJpbmcgdGVz
dC4gVGhlIHRlc3QgaXMgc2V0dGluZyB0aGUgc2l6ZSBvZgorICAgICAgICBhIGNhbnZhcyBhbmQg
ZXhwZWN0aW5nIGl0IHRvIGJlIGNsZWFyZWQgaW4gdGhlIHByb2Nlc3MuIFdpdGggdGhlIG9wdGlt
aXphdGlvbgorICAgICAgICB0byByZXRhaW4gdGhlIHVuZGVybHlpbmcgSW1hZ2VCdWZmZXIsIHdl
IG5vIGxvbmdlciBjYWxsCisgICAgICAgIFJlbmRlclJlcGxhY2VkOjpyZXBhaW50KCkgYXMgYSBw
YXJ0IG9mIHRoaXMgcHJvY2Vzcy4gVGhpcyBmdW5jdGlvbiB1c2VkIHRvCisgICAgICAgIHJlcGFp
bnQgYm90aCB0aGUgY2FudmFzIGl0c2VsZiAoMTAweDUwKSBhcyB3ZWxsIGFzIGl0cyBsb2NhbCBz
ZWxlY3Rpb24KKyAgICAgICAgcmVjdGFuZ2xlICgxMDB4NTQpLgorCisgICAgICAgIEluIHRoaXMg
Y2FzZSB0aGUgbG9jYWwgc2VsZWN0aW9uIHJlY3RhbmdsZSBpcyBsYXJnZXIgdGhhbiB0aGUgY2Fu
dmFzIGJlY2F1c2UKKyAgICAgICAgdGhlIGNhbnZhcyBpcyBjb250YWluZWQgd2l0aGluIGFuIGFu
b255bW91cyBSZW5kZXJCbG9jayB0aGF0IGFsc28gaGFzIHR3byBlbXB0eQorICAgICAgICB0ZXh0
IG5vZGVzLiBUaGUgZXh0cmEgNCBwaXhlbHMgYXJlIG5lZWRlZCBmb3IgZHJhd2luZyB0aGUgc2Vs
ZWN0aW9uIHJlY3RhbmdsZQorICAgICAgICBhcm91bmQgYW55IGRlc2NlbmRlcnMgaW4gdGhlIHRo
ZSB0ZXh0IG9mIHRob3NlIG5vZGVzLgorCisgICAgICAgIFNpbmNlIGNsZWFyaW5nIHRoZSBjYW52
YXMgaGFzIG5vIGVmZmVjdCBvbiB0aGUgc2VsZWN0aW9uIHJlY3RhbmdsZSwgd2Ugb25seQorICAg
ICAgICBuZWVkIHRvIHJlcGFpbnQgdGhlIGFyZWEgb2YgdGhlIGNhbnZhcyBpdHNlbGYuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L2NhbnZhcy9zZXRXaWR0aFJlc2V0
QWZ0ZXJGb3JjZWRSZW5kZXItZXhwZWN0ZWQucG5nOgorCiAyMDEyLTAzLTE1ICBMZXZpIFdlaW50
cmF1YiAgPGxldml3QGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIGdhcmRlbmlu
Zy4gRml4aW5nIENocm9taXVtIGV4cGVjdGF0aW9ucyBhZnRlciB3ZSBiZWdhbiBmYWxsaW5nIGJh
Y2sgdG8gdGhlIGZhaWxpbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtLWxpbnV4L2Zhc3QvY2FudmFzL3NldFdpZHRoUmVzZXRBZnRlckZvcmNlZFJlbmRlci1leHBl
Y3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L2NhbnZh
cy9zZXRXaWR0aFJlc2V0QWZ0ZXJGb3JjZWRSZW5kZXItZXhwZWN0ZWQucG5nCmluZGV4IDA5MmIw
ZThlOWFiMjllYzdmNWExYmYwM2Y1MTYxYmI5YjM3NmY0YmUuLjYyZDA3ZWYwMTZkNmY4ODhmOTRl
YjZiYThhZmI4YWU5NmUyZGI1YmIgMTAwNjQ0CkdJVCBiaW5hcnkgcGF0Y2gKZGVsdGEgOTMKemNt
WjJxd1ozWUNrJX4hRFFtVGNpVk4kWSpuVDMmSWEkPSUhbDJLWX1ZRmQpOWt4e2EjeCNqS1BmVnoh
Z0dtVXdECnhkVjcyR2Nrd2JYRnVXSWl4QX4pcTJGR0x2KTMwTHg8QGRlKkErZTNBXyYhakUhUEN7
eFd0fiQoNjk2YmpCNHoqcAoKZGVsdGEgOTgKemNtVi1vMEc8REBkYXJ0ckc5KT07RiohMTFHJkQ2
YUZmbjh8Vz8/cEZJNXNoM0ZmY1BURyV6K1lHLTJHVkdJWCg0CnpuS1AwQjchSihUKngyfXsrVy1J
bkBMdTUjdnRjJjQyRDNtbE9hZDFGQUVLZjc3KV9QS2YmYyZqMDcqcW9NNk48JApFZzFkTW0zSUc1
QQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132581</attachid>
            <date>2012-03-19 07:45:22 -0700</date>
            <delta_ts>2012-03-20 10:07:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80871-20120319144521.patch</filename>
            <type>text/plain</type>
            <size>9862</size>
            <attacher name="Sami Kyostila">skyostil</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExMTcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTc5YjNkNDQ3NWI4YzFm
NjUwZjRhMDhmNTkzYTBmNjU0NDdhMTQ5Yy4uMjcxMDI0NWU0YjI2ZmFmYTcyMmI1ZDE0MDZjZGEz
ZjQ0NGU0OTFiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEyLTAzLTE1ICBTYW1p
IEt5b3N0aWxhICA8c2t5b3N0aWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldXNlIGJ1ZmZl
ciBhbGxvY2F0aW9uIGlmIGNhbnZhcyBzaXplIGRvZXMgbm90IGNoYW5nZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA4NzEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJZiB0aGUgdXNlciBjaGFuZ2VzIHRo
ZSB3aWR0aCBvciBoZWlnaHQgYXR0cmlidXRlcyBvZiBhIGNhbnZhcyBlbGVtZW50LAorICAgICAg
ICB0aGUgY29udGVudHMgb2YgdGhlIGNhbnZhcyBzaG91bGQgYmUgY2xlYXJlZCBhbmQgdGhlIGNv
bnRleHQgc3RhdGUKKyAgICAgICAgc2hvdWxkIGJlIHJlc2V0LiBUaGlzIGhhcyBiZWNvbWUgYSBj
b21tb24gaWRpb20gdG8gY2xlYXIgdGhlIGNhbnZhcworICAgICAgICAiZWZmaWNpZW50bHkiIGF0
IHRoZSBzdGFydCBvZiBhIGZyYW1lLgorCisgICAgICAgIFByZXZpb3VzbHksIHRoaXMgY29kZSBw
YXRoIHRyaWdnZXJlZCBhIGZ1bGwgcmVhbGxvY2F0aW9uIG9mIHRoZSBpbWFnZQorICAgICAgICBi
dWZmZXIgYmFja2luZyB0aGUgY2FudmFzLCBsZWFkaW5nIHRvIHJlZHVjZWQgcGVyZm9ybWFuY2Uu
IFRoaXMgcGF0Y2gKKyAgICAgICAgaW1wbGVtZW50cyBhbiBvcHRpbWl6YXRpb24gd2hlcmUgd2Ug
cmV1c2UgdGhlIHByZXZpb3VzIGltYWdlIGJ1ZmZlcgorICAgICAgICBhbGxvY2F0aW9uIGlmIHRo
ZSBzaXplIG9mIHRoZSBjYW52YXMgZGlkIG5vdCBjaGFuZ2UuIEFsc28sIGluc3RlYWQgb2YKKyAg
ICAgICAgY2xlYXJpbmcgdGhlIGNhbnZhcyBldmVyeSB0aW1lIGl0cyBkaW1lbnNpb25zIGFyZSB0
b3VjaGVkLCB3ZSBvbmx5IGNsZWFyCisgICAgICAgIGlmIGFueXRoaW5nIGhhcyBiZWVuIGRyYXdu
IGludG8gdGhlIGNhbnZhcyBzaW5jZSBpdCB3YXMgcHJldmlvdXNseQorICAgICAgICBjbGVhcmVk
LgorCisgICAgICAgIE5vdGUgdGhhdCBmb3Igbm93IHRoaXMgb3B0aW1pemF0aW9uIG9ubHkgYXBw
bGllcyBmb3IgMkQgY2FudmFzZXMsCisgICAgICAgIHNpbmNlIGl0IGlzIG5vdCBlbnRpcmVseSBj
bGVhciBob3cgdG91Y2hpbmcgdGhlIGRpbWVuc2lvbnMgb2YgYSBXZWJHTAorICAgICAgICBjYW52
YXMgc2hvdWxkIHdvcmsuCisKKyAgICAgICAgVGVzdGVkIGJ5IGV4aXN0aW5nIGxheW91dCB0ZXN0
cyBmb3IgY2FudmFzIHJlc2V0dGluZy4KKworICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OkhUTUxDYW52YXNF
bGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpyZXNldCk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmNsZWFySW1hZ2VCdWZmZXIpOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6
Y2xlYXJDb3BpZWRJbWFnZSk6CisgICAgICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oOgor
ICAgICAgICAoSFRNTENhbnZhc0VsZW1lbnQpOgorICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQ6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCk6IFNhdmUgdGhlCisgICAgICAg
IGluaXRpYWwgZ3JhcGhpY3MgY29udGV4dCBzdGF0ZSBzbyB3ZSBjYW4gcmVzdG9yZSBpdCB3aXRo
b3V0IGNyZWF0aW5nIGEKKyAgICAgICAgbmV3IGNvbnRleHQuCisgICAgICAgIChXZWJDb3JlOjpD
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnVud2luZFN0YXRlU3RhY2spOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpyZXNldCk6IE5vIG5lZWQgdG8gbm90aWZ5
IHRoZQorICAgICAgICBjb21wb3NpdG9yIHdoZW4gdGhlIGNvbnRleHQgaXMgcmVzZXQsIGJlY2F1
c2UgY2xlYXJpbmcgdGhlIGltYWdlIGJ1ZmZlcgorICAgICAgICBkb2VzIHRoZSBzYW1lIHRoaW5n
LiBXZSBjYW4gYWxzbyBza2lwIHRoZSBub3RpZmljYXRpb24gaWYgd2UgZGlkIG5vdAorICAgICAg
ICBoYXZlIGFuIGltYWdlIGJ1ZmZlciBhdCB0aGUgdGltZSBvZiB0aGUgcmVzZXQsIGJlY2F1c2Ug
dGhlIHJlc2V0IHdpbGwKKyAgICAgICAgbm90IGhhdmUgYW55IHZpc3VhbCBpbXBhY3QgaW4gdGhp
cyBjYXNlLiBGaW5hbGx5LCBpZiB0aGUgY2FudmFzIHNpemUKKyAgICAgICAgZGlkIGNoYW5nZSwg
dGhlIG5vdGlmaWNhdGlvbiBpcyBhbHNvIHVubmVjZXNzYXJ5IGJlY2F1c2Ugb2YgdGhlIGNhbGwK
KyAgICAgICAgdG8gUmVuZGVyT2JqZWN0OjpyZXBhaW50KCkgZnJvbSBIVE1MQ2FudmFzRWxlbWVu
dDo6cmVzZXQoKS4KKwogMjAxMi0wMy0xOCAgTWF0dCBGYWxrZW5oYWdlbiAgPGZhbGtlbkBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgRmFsbGJhY2sgdG8gY29tbW9uIHNjcmlwdCB3aGVuIHBlci1z
Y3JpcHQgZm9udCBzZXR0aW5nIGlzIHRoZSBlbXB0eSBzdHJpbmcKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKaW5kZXggMDdhYjMwOTFlNTk4Mzg0YTNkYjMwOWM5NTVl
MTFhMjhjOWU0ZDJjMy4uYjk5NTRkYmE3MDNiYTkwYTU0YzRkZmI1YTNkYjZiYjQ4NTA5MzQ0ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKQEAgLTkyLDYgKzky
LDcgQEAgSFRNTENhbnZhc0VsZW1lbnQ6OkhUTUxDYW52YXNFbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2MKICNlbmRpZgogICAgICwgbV9vcmlnaW5DbGVh
bih0cnVlKQogICAgICwgbV9oYXNDcmVhdGVkSW1hZ2VCdWZmZXIoZmFsc2UpCisgICAgLCBtX2Rp
ZENsZWFySW1hZ2VCdWZmZXIoZmFsc2UpCiB7CiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoY2FudmFz
VGFnKSk7CiB9CkBAIC0yNTQsNiArMjU1LDggQEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6cmVz
ZXQoKQogCiAgICAgSW50U2l6ZSBvbGRTaXplID0gc2l6ZSgpOwogICAgIHNldFN1cmZhY2VTaXpl
KEludFNpemUodywgaCkpOyAvLyBUaGUgaW1hZ2UgYnVmZmVyIGdldHMgY2xlYXJlZCBoZXJlLgor
ICAgIGlmIChvbGRTaXplID09IHNpemUoKSkKKyAgICAgICAgcmV0dXJuOwogCiAjaWYgRU5BQkxF
KFdFQkdMKQogICAgIGlmIChtX2NvbnRleHQgJiYgbV9jb250ZXh0LT5pczNkKCkgJiYgb2xkU2l6
ZSAhPSBzaXplKCkpCkBAIC0zNTEsNiArMzU0LDEzIEBAIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6
OmNsZWFyUHJlc2VudGF0aW9uQ29weSgpCiAKIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OnNldFN1
cmZhY2VTaXplKGNvbnN0IEludFNpemUmIHNpemUpCiB7CisgICAgLy8gSWYgdGhlIHNpemUgb2Yg
YW4gZXhpc3RpbmcgYnVmZmVyIG1hdGNoZXMsIHdlIGNhbiBqdXN0IGNsZWFyIGl0IGluc3RlYWQg
b2YgcmVhbGxvY2F0aW5nLgorICAgIC8vIFRoaXMgb3B0aW1pemF0aW9uIGlzIG9ubHkgZG9uZSBm
b3IgMkQgY2FudmFzZXMgZm9yIG5vdy4KKyAgICBpZiAobV9oYXNDcmVhdGVkSW1hZ2VCdWZmZXIg
JiYgbV9zaXplID09IHNpemUgJiYgKCFtX2NvbnRleHQgfHwgbV9jb250ZXh0LT5pczJkKCkpKSB7
CisgICAgICAgIGlmICghbV9kaWRDbGVhckltYWdlQnVmZmVyKQorICAgICAgICAgICAgY2xlYXJJ
bWFnZUJ1ZmZlcigpOworICAgICAgICByZXR1cm47CisgICAgfQogICAgIG1fc2l6ZSA9IHNpemU7
CiAgICAgbV9oYXNDcmVhdGVkSW1hZ2VCdWZmZXIgPSBmYWxzZTsKICAgICBtX2ltYWdlQnVmZmVy
LmNsZWFyKCk7CkBAIC00OTgsNiArNTA4LDcgQEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6Y3Jl
YXRlSW1hZ2VCdWZmZXIoKSBjb25zdAogICAgIEFTU0VSVCghbV9pbWFnZUJ1ZmZlcik7CiAKICAg
ICBtX2hhc0NyZWF0ZWRJbWFnZUJ1ZmZlciA9IHRydWU7CisgICAgbV9kaWRDbGVhckltYWdlQnVm
ZmVyID0gdHJ1ZTsKIAogICAgIEZsb2F0U2l6ZSBsb2dpY2FsU2l6ZSA9IHNpemUoKTsKICAgICBG
bG9hdFNpemUgZGV2aWNlU2l6ZSA9IGNvbnZlcnRMb2dpY2FsVG9EZXZpY2UobG9naWNhbFNpemUp
OwpAQCAtNTczLDkgKzU4NCwyNyBAQCBJbWFnZSogSFRNTENhbnZhc0VsZW1lbnQ6OmNvcGllZElt
YWdlKCkgY29uc3QKICAgICByZXR1cm4gbV9jb3BpZWRJbWFnZS5nZXQoKTsKIH0KIAordm9pZCBI
VE1MQ2FudmFzRWxlbWVudDo6Y2xlYXJJbWFnZUJ1ZmZlcigpIGNvbnN0Cit7CisgICAgQVNTRVJU
KG1faGFzQ3JlYXRlZEltYWdlQnVmZmVyKTsKKyAgICBBU1NFUlQoIW1fZGlkQ2xlYXJJbWFnZUJ1
ZmZlcik7CisKKyAgICBpZiAoIW1fY29udGV4dCkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9k
aWRDbGVhckltYWdlQnVmZmVyID0gdHJ1ZTsKKworICAgIGlmIChtX2NvbnRleHQtPmlzMmQoKSkg
eworICAgICAgICBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQqIGNvbnRleHQyRCA9IHN0YXRpY19j
YXN0PENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCo+KG1fY29udGV4dC5nZXQoKSk7CisgICAgICAg
IC8vIE5vIG5lZWQgdG8gdW5kbyB0cmFuc2Zvcm1zL2NsaXAvZXRjLiBiZWNhdXNlIHdlIGFyZSBj
YWxsZWQgcmlnaHQgYWZ0ZXIgdGhlIGNvbnRleHQgaXMgcmVzZXQuCisgICAgICAgIGNvbnRleHQy
RC0+Y2xlYXJSZWN0KDAsIDAsIHdpZHRoKCksIGhlaWdodCgpKTsKKyAgICB9Cit9CisKIHZvaWQg
SFRNTENhbnZhc0VsZW1lbnQ6OmNsZWFyQ29waWVkSW1hZ2UoKQogewogICAgIG1fY29waWVkSW1h
Z2UuY2xlYXIoKTsKKyAgICBtX2RpZENsZWFySW1hZ2VCdWZmZXIgPSBmYWxzZTsKIH0KIAogQWZm
aW5lVHJhbnNmb3JtIEhUTUxDYW52YXNFbGVtZW50OjpiYXNlVHJhbnNmb3JtKCkgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAppbmRleCBlMmM0ODg4ZTViNGI2NDU2
NTRmYWQ0YWU5ODI4YmRlYWY0MDU2Y2IyLi45MmQ3NjI1OTM4NzkyMDI1YWU0Yzg3OTYxODNkNTA3
NDdjOGM4YzM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCkBAIC0x
NDMsNiArMTQzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlc2V0KCk7CiAKICAgICB2b2lkIGNy
ZWF0ZUltYWdlQnVmZmVyKCkgY29uc3Q7CisgICAgdm9pZCBjbGVhckltYWdlQnVmZmVyKCkgY29u
c3Q7CiAKICAgICB2b2lkIHNldFN1cmZhY2VTaXplKGNvbnN0IEludFNpemUmKTsKIApAQCAtMTY2
LDYgKzE2Nyw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBtX2NyZWF0ZWRJbWFnZUJ1ZmZlciBtZWFu
cyB3ZSB0cmllZCB0byBtYWxsb2MgdGhlIGJ1ZmZlci4gIFdlIGRpZG4ndCBuZWNlc3NhcmlseSBn
ZXQgaXQuCiAgICAgbXV0YWJsZSBib29sIG1faGFzQ3JlYXRlZEltYWdlQnVmZmVyOworICAgIG11
dGFibGUgYm9vbCBtX2RpZENsZWFySW1hZ2VCdWZmZXI7CiAgICAgbXV0YWJsZSBPd25QdHI8SW1h
Z2VCdWZmZXI+IG1faW1hZ2VCdWZmZXI7CiAgICAgCiAgICAgbXV0YWJsZSBSZWZQdHI8SW1hZ2U+
IG1fcHJlc2VudGVkSW1hZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAppbmRleCAyNzliMmExYzMwOTI3NWE4NDk5
Y2QyZGQ4YWMyOTE1MzMxNmI1MWIyLi5lY2E1NDE5MmIzODI3ZTliY2Q5OWI2OTIwNGEyNzVhOTY5
MWZjMDM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKQEAgLTEyNCw2ICsxMjQsOCBAQCBDYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQ6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRChIVE1MQ2FudmFzRWxlbWVudCog
Y2FudmFzLCBibwogI2lmICFFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpCiAgICAgQVNTRVJUX1VO
VVNFRCh1c2VzRGFzaGJvYXJkQ29tcGF0aWJpbGl0eU1vZGUsICF1c2VzRGFzaGJvYXJkQ29tcGF0
aWJpbGl0eU1vZGUpOwogI2VuZGlmCisgICAgaWYgKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCA9
IGNhbnZhcy0+ZHJhd2luZ0NvbnRleHQoKSkKKyAgICAgICAgY29udGV4dC0+c2F2ZSgpOwogfQog
CiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6dW53aW5kU3RhdGVTdGFjaygpCkBAIC0x
MzMsNyArMTM1LDcgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnVud2luZFN0YXRl
U3RhY2soKQogICAgIC8vIEdyYXBoaWNzQ29udGV4dCBkdG9yLgogICAgIGlmIChzaXplX3Qgc3Rh
Y2tTaXplID0gbV9zdGF0ZVN0YWNrLnNpemUoKSkgewogICAgICAgICBpZiAoR3JhcGhpY3NDb250
ZXh0KiBjb250ZXh0ID0gY2FudmFzKCktPmV4aXN0aW5nRHJhd2luZ0NvbnRleHQoKSkgewotICAg
ICAgICAgICAgd2hpbGUgKC0tc3RhY2tTaXplKQorICAgICAgICAgICAgd2hpbGUgKHN0YWNrU2l6
ZS0tKQogICAgICAgICAgICAgICAgIGNvbnRleHQtPnJlc3RvcmUoKTsKICAgICAgICAgfQogICAg
IH0KQEAgLTE2MSwxMSArMTYzLDggQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnJl
c2V0KCkKICAgICBtX3N0YXRlU3RhY2sucmVzaXplKDEpOwogICAgIG1fc3RhdGVTdGFjay5maXJz
dCgpID0gU3RhdGUoKTsKICAgICBtX3BhdGguY2xlYXIoKTsKLSNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCi0gICAgUmVuZGVyQm94KiByZW5kZXJCb3ggPSBjYW52YXMoKS0+cmVuZGVy
Qm94KCk7Ci0gICAgaWYgKHJlbmRlckJveCAmJiByZW5kZXJCb3gtPmhhc0xheWVyKCkgJiYgcmVu
ZGVyQm94LT5sYXllcigpLT5oYXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCkpCi0gICAgICAgIHJl
bmRlckJveC0+bGF5ZXIoKS0+Y29udGVudENoYW5nZWQoUmVuZGVyTGF5ZXI6OkNhbnZhc0NoYW5n
ZWQpOwotI2VuZGlmCisgICAgaWYgKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCA9IGNhbnZhcygp
LT5kcmF3aW5nQ29udGV4dCgpKQorICAgICAgICBjb250ZXh0LT5zYXZlKCk7CiB9CiAKIENhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRDo6U3RhdGU6OlN0YXRlKCkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmMjU3MTJhZTk2MmEz
NzFlMjA4NjMxNDU5Mjc2NTkwNTkxMTIzYjU4Li5hODljYTlkNWRlZTg3OTU3NmU2ZjBlOTgyNGM5
NTg2ZDYzMjQ4MjhkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTItMDMtMTUgIFNhbWkgS3lv
c3RpbGEgIDxza3lvc3RpbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV1c2UgYnVmZmVyIGFs
bG9jYXRpb24gaWYgY2FudmFzIHNpemUgZG9lcyBub3QgY2hhbmdlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDg3MQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBleHBlY3RlZCBpbWFnZSBmb3Ig
Y2FudmFzIGNsZWFyaW5nIHRlc3QuIFRoZSB0ZXN0IGlzIHNldHRpbmcgdGhlIHNpemUgb2YKKyAg
ICAgICAgYSBjYW52YXMgYW5kIGV4cGVjdGluZyBpdCB0byBiZSBjbGVhcmVkIGluIHRoZSBwcm9j
ZXNzLiBXaXRoIHRoZSBvcHRpbWl6YXRpb24KKyAgICAgICAgdG8gcmV0YWluIHRoZSB1bmRlcmx5
aW5nIEltYWdlQnVmZmVyLCB3ZSBubyBsb25nZXIgY2FsbAorICAgICAgICBSZW5kZXJSZXBsYWNl
ZDo6cmVwYWludCgpIGFzIGEgcGFydCBvZiB0aGlzIHByb2Nlc3MuIFRoaXMgZnVuY3Rpb24gdXNl
ZCB0bworICAgICAgICByZXBhaW50IGJvdGggdGhlIGNhbnZhcyBpdHNlbGYgKDEwMHg1MCkgYXMg
d2VsbCBhcyBpdHMgbG9jYWwgc2VsZWN0aW9uCisgICAgICAgIHJlY3RhbmdsZSAoMTAweDU0KS4K
KworICAgICAgICBJbiB0aGlzIGNhc2UgdGhlIGxvY2FsIHNlbGVjdGlvbiByZWN0YW5nbGUgaXMg
bGFyZ2VyIHRoYW4gdGhlIGNhbnZhcyBiZWNhdXNlCisgICAgICAgIHRoZSBjYW52YXMgaXMgY29u
dGFpbmVkIHdpdGhpbiBhbiBhbm9ueW1vdXMgUmVuZGVyQmxvY2sgdGhhdCBhbHNvIGhhcyB0d28g
ZW1wdHkKKyAgICAgICAgdGV4dCBub2Rlcy4gVGhlIGV4dHJhIDQgcGl4ZWxzIGFyZSBuZWVkZWQg
Zm9yIGRyYXdpbmcgdGhlIHNlbGVjdGlvbiByZWN0YW5nbGUKKyAgICAgICAgYXJvdW5kIGFueSBk
ZXNjZW5kZXJzIGluIHRoZSB0aGUgdGV4dCBvZiB0aG9zZSBub2Rlcy4KKworICAgICAgICBTaW5j
ZSBjbGVhcmluZyB0aGUgY2FudmFzIGhhcyBubyBlZmZlY3Qgb24gdGhlIHNlbGVjdGlvbiByZWN0
YW5nbGUsIHdlIG9ubHkKKyAgICAgICAgbmVlZCB0byByZXBhaW50IHRoZSBhcmVhIG9mIHRoZSBj
YW52YXMgaXRzZWxmLgorCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC9j
YW52YXMvc2V0V2lkdGhSZXNldEFmdGVyRm9yY2VkUmVuZGVyLWV4cGVjdGVkLnBuZzoKKwogMjAx
Mi0wMy0xOSAgQmFsYXpzIEFua2VzICA8YmFua0BpbmYudS1zemVnZWQuaHU+CiAKICAgICAgICAg
W1F0XSBHYXJkZW5pbmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS1saW51eC9mYXN0L2NhbnZhcy9zZXRXaWR0aFJlc2V0QWZ0ZXJGb3JjZWRSZW5kZXItZXhwZWN0
ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC9jYW52YXMv
c2V0V2lkdGhSZXNldEFmdGVyRm9yY2VkUmVuZGVyLWV4cGVjdGVkLnBuZwppbmRleCAwOTJiMGU4
ZTlhYjI5ZWM3ZjVhMWJmMDNmNTE2MWJiOWIzNzZmNGJlLi42MmQwN2VmMDE2ZDZmODg4Zjk0ZWI2
YmE4YWZiOGFlOTZlMmRiNWJiIDEwMDY0NApHSVQgYmluYXJ5IHBhdGNoCmRlbHRhIDkzCnpjbVoy
cXdaM1lDayV+IURRbVRjaVZOJFkqblQzJklhJD0lIWwyS1l9WUZkKTlreHthI3gjaktQZlZ6IWdH
bVV3RAp4ZFY3Mkdja3diWEZ1V0lpeEF+KXEyRkdMdikzMEx4PEBkZSpBK2UzQV8mIWpFIVBDe3hX
dH4kKDY5NmJqQjR6KnAKCmRlbHRhIDk4CnpjbVYtbzBHPERAZGFydHJHOSk9O0YqITExRyZENmFG
Zm44fFc/P3BGSTVzaDNGZmNQVEcleitZRy0yR1ZHSVgoNAp6bktQMEI3IUooVCp4Mn17K1ctSW5A
THU1I3Z0YyY0MkQzbWxPYWQxRkFFS2Y3NylfUEtmJmMmajA3KnFvTTZOPCQKRWcxZE1tM0lHNUEK
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132843</attachid>
            <date>2012-03-20 10:07:25 -0700</date>
            <delta_ts>2012-03-20 11:01:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80871-20120320170723.patch</filename>
            <type>text/plain</type>
            <size>13951</size>
            <attacher name="Sami Kyostila">skyostil</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExMzgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDg5ODRjOGFlY2I3ODMy
MjcwZDI4N2Q4OTIyYTg2YTk0YjQ0OGQ2YS4uMWFhODRmZDdjYWFjZjQxMDVhZmViMTlmY2QxNDFh
ZTU4NjJkNTYxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDEyLTAzLTE1ICBTYW1p
IEt5b3N0aWxhICA8c2t5b3N0aWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldXNlIGJ1ZmZl
ciBhbGxvY2F0aW9uIGlmIGNhbnZhcyBzaXplIGRvZXMgbm90IGNoYW5nZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA4NzEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJZiB0aGUgdXNlciBjaGFuZ2VzIHRo
ZSB3aWR0aCBvciBoZWlnaHQgYXR0cmlidXRlcyBvZiBhIGNhbnZhcyBlbGVtZW50LAorICAgICAg
ICB0aGUgY29udGVudHMgb2YgdGhlIGNhbnZhcyBzaG91bGQgYmUgY2xlYXJlZCBhbmQgdGhlIGNv
bnRleHQgc3RhdGUKKyAgICAgICAgc2hvdWxkIGJlIHJlc2V0LiBUaGlzIGhhcyBiZWNvbWUgYSBj
b21tb24gaWRpb20gdG8gY2xlYXIgdGhlIGNhbnZhcworICAgICAgICAiZWZmaWNpZW50bHkiIGF0
IHRoZSBzdGFydCBvZiBhIGZyYW1lLgorCisgICAgICAgIFByZXZpb3VzbHksIHRoaXMgY29kZSBw
YXRoIHRyaWdnZXJlZCBhIGZ1bGwgcmVhbGxvY2F0aW9uIG9mIHRoZSBpbWFnZQorICAgICAgICBi
dWZmZXIgYmFja2luZyB0aGUgY2FudmFzLCBsZWFkaW5nIHRvIHJlZHVjZWQgcGVyZm9ybWFuY2Uu
IFRoaXMgcGF0Y2gKKyAgICAgICAgaW1wbGVtZW50cyBhbiBvcHRpbWl6YXRpb24gd2hlcmUgd2Ug
cmV1c2UgdGhlIHByZXZpb3VzIGltYWdlIGJ1ZmZlcgorICAgICAgICBhbGxvY2F0aW9uIGlmIHRo
ZSBzaXplIG9mIHRoZSBjYW52YXMgZGlkIG5vdCBjaGFuZ2UuIEFsc28sIGluc3RlYWQgb2YKKyAg
ICAgICAgY2xlYXJpbmcgdGhlIGNhbnZhcyBldmVyeSB0aW1lIGl0cyBkaW1lbnNpb25zIGFyZSB0
b3VjaGVkLCB3ZSBvbmx5IGNsZWFyCisgICAgICAgIGlmIGFueXRoaW5nIGhhcyBiZWVuIGRyYXdu
IGludG8gdGhlIGNhbnZhcyBzaW5jZSBpdCB3YXMgcHJldmlvdXNseQorICAgICAgICBjbGVhcmVk
LgorCisgICAgICAgIE5vdGUgdGhhdCBmb3Igbm93IHRoaXMgb3B0aW1pemF0aW9uIG9ubHkgYXBw
bGllcyBmb3IgMkQgY2FudmFzZXMsCisgICAgICAgIHNpbmNlIGl0IGlzIG5vdCBlbnRpcmVseSBj
bGVhciBob3cgdG91Y2hpbmcgdGhlIGRpbWVuc2lvbnMgb2YgYSBXZWJHTAorICAgICAgICBjYW52
YXMgc2hvdWxkIHdvcmsuCisKKyAgICAgICAgVGVzdDogZmFzdC9jYW52YXMvY2FudmFzLXJlc2l6
ZS1hZnRlci1wYWludC13aXRob3V0LWxheW91dC5odG1sICsKKyAgICAgICAgICAgICAgZXhpc3Rp
bmcgbGF5b3V0IHRlc3RzIGZvciBjYW52YXMgcmVzZXR0aW5nLgorCisgICAgICAgICogaHRtbC9I
VE1MQ2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVu
dDo6SFRNTENhbnZhc0VsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1l
bnQ6OnJlc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVJ
bWFnZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Y2xlYXJJ
bWFnZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxD
YW52YXNFbGVtZW50OjpjbGVhckNvcGllZEltYWdlKToKKyAgICAgICAgKiBodG1sL0hUTUxDYW52
YXNFbGVtZW50Lmg6CisgICAgICAgIChIVE1MQ2FudmFzRWxlbWVudCk6CisgICAgICAgICogaHRt
bC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKTogU2F2
ZSB0aGUKKyAgICAgICAgaW5pdGlhbCBncmFwaGljcyBjb250ZXh0IHN0YXRlIHNvIHdlIGNhbiBy
ZXN0b3JlIGl0IHdpdGhvdXQgY3JlYXRpbmcgYQorICAgICAgICBuZXcgY29udGV4dC4KKyAgICAg
ICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6dW53aW5kU3RhdGVTdGFjayk6
CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnJlc2V0KTogTm8g
bmVlZCB0byBub3RpZnkgdGhlCisgICAgICAgIGNvbXBvc2l0b3Igd2hlbiB0aGUgY29udGV4dCBp
cyByZXNldCwgYmVjYXVzZSBjbGVhcmluZyB0aGUgaW1hZ2UgYnVmZmVyCisgICAgICAgIGRvZXMg
dGhlIHNhbWUgdGhpbmcuIFdlIGNhbiBhbHNvIHNraXAgdGhlIG5vdGlmaWNhdGlvbiBpZiB3ZSBk
aWQgbm90CisgICAgICAgIGhhdmUgYW4gaW1hZ2UgYnVmZmVyIGF0IHRoZSB0aW1lIG9mIHRoZSBy
ZXNldCwgYmVjYXVzZSB0aGUgcmVzZXQgd2lsbAorICAgICAgICBub3QgaGF2ZSBhbnkgdmlzdWFs
IGltcGFjdCBpbiB0aGlzIGNhc2UuIEZpbmFsbHksIGlmIHRoZSBjYW52YXMgc2l6ZQorICAgICAg
ICBkaWQgY2hhbmdlLCB0aGUgbm90aWZpY2F0aW9uIGlzIGFsc28gdW5uZWNlc3NhcnkgYmVjYXVz
ZSBvZiB0aGUgY2FsbAorICAgICAgICB0byBSZW5kZXJPYmplY3Q6OnJlcGFpbnQoKSBmcm9tIEhU
TUxDYW52YXNFbGVtZW50OjpyZXNldCgpLgorCiAyMDEyLTAzLTIwICBZdXJ5IFNlbWlraGF0c2t5
ICA8eXVyeXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IHByb3ZpZGUg
Y2xhc3MgbmFtZSBmaWx0ZXIgZm9yICJjb21wYXJpc29uIiB2aWV3IGluIGhlYXAgcHJvZmlsZXIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKaW5kZXggMDdhYjMwOTFl
NTk4Mzg0YTNkYjMwOWM5NTVlMTFhMjhjOWU0ZDJjMy4uODU2ZjhmMzRjNDlmMmZiZGY0ZDY3MWJj
NjkxN2E1M2NjZGE1YjYzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2Fu
dmFzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVu
dC5jcHAKQEAgLTkyLDYgKzkyLDcgQEAgSFRNTENhbnZhc0VsZW1lbnQ6OkhUTUxDYW52YXNFbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2MKICNlbmRpZgog
ICAgICwgbV9vcmlnaW5DbGVhbih0cnVlKQogICAgICwgbV9oYXNDcmVhdGVkSW1hZ2VCdWZmZXIo
ZmFsc2UpCisgICAgLCBtX2RpZENsZWFySW1hZ2VCdWZmZXIoZmFsc2UpCiB7CiAgICAgQVNTRVJU
KGhhc1RhZ05hbWUoY2FudmFzVGFnKSk7CiB9CkBAIC0yNTUsNiArMjU2LDEyIEBAIHZvaWQgSFRN
TENhbnZhc0VsZW1lbnQ6OnJlc2V0KCkKICAgICBJbnRTaXplIG9sZFNpemUgPSBzaXplKCk7CiAg
ICAgc2V0U3VyZmFjZVNpemUoSW50U2l6ZSh3LCBoKSk7IC8vIFRoZSBpbWFnZSBidWZmZXIgZ2V0
cyBjbGVhcmVkIGhlcmUuCiAKKyAgICAvLyBJZiB0aGUgaW1hZ2UgYnVmZmVyIGRpZCBub3QgY2hh
bmdlLCB0aGVyZSBpcyBubyBuZWVkIHRvIHJlcGFpbnQgb3Igc2VuZCByZXNpemUgbm90aWZpY2F0
aW9ucy4KKyAgICBpZiAoaGFkSW1hZ2VCdWZmZXIgJiYgaGFzQ3JlYXRlZEltYWdlQnVmZmVyKCkp
IHsKKyAgICAgICAgQVNTRVJUKG9sZFNpemUgPT0gc2l6ZSgpKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKwogI2lmIEVOQUJMRShXRUJHTCkKICAgICBpZiAobV9jb250ZXh0ICYmIG1fY29udGV4
dC0+aXMzZCgpICYmIG9sZFNpemUgIT0gc2l6ZSgpKQogICAgICAgICBzdGF0aWNfY2FzdDxXZWJH
TFJlbmRlcmluZ0NvbnRleHQqPihtX2NvbnRleHQuZ2V0KCkpLT5yZXNoYXBlKHdpZHRoKCksIGhl
aWdodCgpKTsKQEAgLTI2Miw4ICsyNjksMTMgQEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6cmVz
ZXQoKQogCiAgICAgaWYgKFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigp
KSB7CiAgICAgICAgIGlmIChtX3JlbmRlcmVySXNDYW52YXMpIHsKLSAgICAgICAgICAgIGlmIChv
bGRTaXplICE9IHNpemUoKSkKKyAgICAgICAgICAgIGlmIChvbGRTaXplICE9IHNpemUoKSkgewog
ICAgICAgICAgICAgICAgIHRvUmVuZGVySFRNTENhbnZhcyhyZW5kZXJlciktPmNhbnZhc1NpemVD
aGFuZ2VkKCk7CisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgICAgICAgICAg
ICAgIGlmIChyZW5kZXJCb3goKSAmJiByZW5kZXJCb3goKS0+aGFzTGF5ZXIoKSAmJiByZW5kZXJC
b3goKS0+bGF5ZXIoKS0+aGFzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpKQorICAgICAgICAgICAg
ICAgICAgICByZW5kZXJCb3goKS0+bGF5ZXIoKS0+Y29udGVudENoYW5nZWQoUmVuZGVyTGF5ZXI6
OkNhbnZhc0NoYW5nZWQpOworI2VuZGlmCisgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAo
aGFkSW1hZ2VCdWZmZXIpCiAgICAgICAgICAgICAgICAgcmVuZGVyZXItPnJlcGFpbnQoKTsKICAg
ICAgICAgfQpAQCAtMzUxLDYgKzM2MywxMyBAQCB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpjbGVh
clByZXNlbnRhdGlvbkNvcHkoKQogCiB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpzZXRTdXJmYWNl
U2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQogeworICAgIC8vIElmIHRoZSBzaXplIG9mIGFuIGV4
aXN0aW5nIGJ1ZmZlciBtYXRjaGVzLCB3ZSBjYW4ganVzdCBjbGVhciBpdCBpbnN0ZWFkIG9mIHJl
YWxsb2NhdGluZy4KKyAgICAvLyBUaGlzIG9wdGltaXphdGlvbiBpcyBvbmx5IGRvbmUgZm9yIDJE
IGNhbnZhc2VzIGZvciBub3cuCisgICAgaWYgKG1faGFzQ3JlYXRlZEltYWdlQnVmZmVyICYmIG1f
c2l6ZSA9PSBzaXplICYmICghbV9jb250ZXh0IHx8IG1fY29udGV4dC0+aXMyZCgpKSkgeworICAg
ICAgICBpZiAoIW1fZGlkQ2xlYXJJbWFnZUJ1ZmZlcikKKyAgICAgICAgICAgIGNsZWFySW1hZ2VC
dWZmZXIoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KICAgICBtX3NpemUgPSBzaXplOwogICAg
IG1faGFzQ3JlYXRlZEltYWdlQnVmZmVyID0gZmFsc2U7CiAgICAgbV9pbWFnZUJ1ZmZlci5jbGVh
cigpOwpAQCAtNDk4LDYgKzUxNyw3IEBAIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0ZUlt
YWdlQnVmZmVyKCkgY29uc3QKICAgICBBU1NFUlQoIW1faW1hZ2VCdWZmZXIpOwogCiAgICAgbV9o
YXNDcmVhdGVkSW1hZ2VCdWZmZXIgPSB0cnVlOworICAgIG1fZGlkQ2xlYXJJbWFnZUJ1ZmZlciA9
IHRydWU7CiAKICAgICBGbG9hdFNpemUgbG9naWNhbFNpemUgPSBzaXplKCk7CiAgICAgRmxvYXRT
aXplIGRldmljZVNpemUgPSBjb252ZXJ0TG9naWNhbFRvRGV2aWNlKGxvZ2ljYWxTaXplKTsKQEAg
LTU3Myw5ICs1OTMsMjcgQEAgSW1hZ2UqIEhUTUxDYW52YXNFbGVtZW50Ojpjb3BpZWRJbWFnZSgp
IGNvbnN0CiAgICAgcmV0dXJuIG1fY29waWVkSW1hZ2UuZ2V0KCk7CiB9CiAKK3ZvaWQgSFRNTENh
bnZhc0VsZW1lbnQ6OmNsZWFySW1hZ2VCdWZmZXIoKSBjb25zdAoreworICAgIEFTU0VSVChtX2hh
c0NyZWF0ZWRJbWFnZUJ1ZmZlcik7CisgICAgQVNTRVJUKCFtX2RpZENsZWFySW1hZ2VCdWZmZXIp
OworCisgICAgaWYgKCFtX2NvbnRleHQpCisgICAgICAgIHJldHVybjsKKworICAgIG1fZGlkQ2xl
YXJJbWFnZUJ1ZmZlciA9IHRydWU7CisKKyAgICBpZiAobV9jb250ZXh0LT5pczJkKCkpIHsKKyAg
ICAgICAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKiBjb250ZXh0MkQgPSBzdGF0aWNfY2FzdDxD
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQqPihtX2NvbnRleHQuZ2V0KCkpOworICAgICAgICAvLyBO
byBuZWVkIHRvIHVuZG8gdHJhbnNmb3Jtcy9jbGlwL2V0Yy4gYmVjYXVzZSB3ZSBhcmUgY2FsbGVk
IHJpZ2h0IGFmdGVyIHRoZSBjb250ZXh0IGlzIHJlc2V0LgorICAgICAgICBjb250ZXh0MkQtPmNs
ZWFyUmVjdCgwLCAwLCB3aWR0aCgpLCBoZWlnaHQoKSk7CisgICAgfQorfQorCiB2b2lkIEhUTUxD
YW52YXNFbGVtZW50OjpjbGVhckNvcGllZEltYWdlKCkKIHsKICAgICBtX2NvcGllZEltYWdlLmNs
ZWFyKCk7CisgICAgbV9kaWRDbGVhckltYWdlQnVmZmVyID0gZmFsc2U7CiB9CiAKIEFmZmluZVRy
YW5zZm9ybSBIVE1MQ2FudmFzRWxlbWVudDo6YmFzZVRyYW5zZm9ybSgpIGNvbnN0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgKaW5kZXggZTJjNDg4OGU1YjRiNjQ1NjU0ZmFk
NGFlOTgyOGJkZWFmNDA1NmNiMi4uOTJkNzYyNTkzODc5MjAyNWFlNGM4Nzk2MTgzZDUwNzQ3Yzhj
OGMzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaApAQCAtMTQzLDYg
KzE0Myw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZXNldCgpOwogCiAgICAgdm9pZCBjcmVhdGVJ
bWFnZUJ1ZmZlcigpIGNvbnN0OworICAgIHZvaWQgY2xlYXJJbWFnZUJ1ZmZlcigpIGNvbnN0Owog
CiAgICAgdm9pZCBzZXRTdXJmYWNlU2l6ZShjb25zdCBJbnRTaXplJik7CiAKQEAgLTE2Niw2ICsx
NjcsNyBAQCBwcml2YXRlOgogCiAgICAgLy8gbV9jcmVhdGVkSW1hZ2VCdWZmZXIgbWVhbnMgd2Ug
dHJpZWQgdG8gbWFsbG9jIHRoZSBidWZmZXIuICBXZSBkaWRuJ3QgbmVjZXNzYXJpbHkgZ2V0IGl0
LgogICAgIG11dGFibGUgYm9vbCBtX2hhc0NyZWF0ZWRJbWFnZUJ1ZmZlcjsKKyAgICBtdXRhYmxl
IGJvb2wgbV9kaWRDbGVhckltYWdlQnVmZmVyOwogICAgIG11dGFibGUgT3duUHRyPEltYWdlQnVm
ZmVyPiBtX2ltYWdlQnVmZmVyOwogICAgIAogICAgIG11dGFibGUgUmVmUHRyPEltYWdlPiBtX3By
ZXNlbnRlZEltYWdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKaW5kZXggMjc5YjJhMWMzMDkyNzVhODQ5OWNkMmRk
OGFjMjkxNTMzMTZiNTFiMi4uZWNhNTQxOTJiMzgyN2U5YmNkOTliNjkyMDRhMjc1YTk2OTFmYzAz
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJELmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQuY3BwCkBAIC0xMjQsNiArMTI0LDggQEAgQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQoSFRNTENhbnZhc0VsZW1lbnQqIGNhbnZh
cywgYm8KICNpZiAhRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQogICAgIEFTU0VSVF9VTlVTRUQo
dXNlc0Rhc2hib2FyZENvbXBhdGliaWxpdHlNb2RlLCAhdXNlc0Rhc2hib2FyZENvbXBhdGliaWxp
dHlNb2RlKTsKICNlbmRpZgorICAgIGlmIChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQgPSBjYW52
YXMtPmRyYXdpbmdDb250ZXh0KCkpCisgICAgICAgIGNvbnRleHQtPnNhdmUoKTsKIH0KIAogdm9p
ZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnVud2luZFN0YXRlU3RhY2soKQpAQCAtMTMzLDcg
KzEzNSw3IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjp1bndpbmRTdGF0ZVN0YWNr
KCkKICAgICAvLyBHcmFwaGljc0NvbnRleHQgZHRvci4KICAgICBpZiAoc2l6ZV90IHN0YWNrU2l6
ZSA9IG1fc3RhdGVTdGFjay5zaXplKCkpIHsKICAgICAgICAgaWYgKEdyYXBoaWNzQ29udGV4dCog
Y29udGV4dCA9IGNhbnZhcygpLT5leGlzdGluZ0RyYXdpbmdDb250ZXh0KCkpIHsKLSAgICAgICAg
ICAgIHdoaWxlICgtLXN0YWNrU2l6ZSkKKyAgICAgICAgICAgIHdoaWxlIChzdGFja1NpemUtLSkK
ICAgICAgICAgICAgICAgICBjb250ZXh0LT5yZXN0b3JlKCk7CiAgICAgICAgIH0KICAgICB9CkBA
IC0xNjEsMTEgKzE2Myw4IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpyZXNldCgp
CiAgICAgbV9zdGF0ZVN0YWNrLnJlc2l6ZSgxKTsKICAgICBtX3N0YXRlU3RhY2suZmlyc3QoKSA9
IFN0YXRlKCk7CiAgICAgbV9wYXRoLmNsZWFyKCk7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQotICAgIFJlbmRlckJveCogcmVuZGVyQm94ID0gY2FudmFzKCktPnJlbmRlckJveCgp
OwotICAgIGlmIChyZW5kZXJCb3ggJiYgcmVuZGVyQm94LT5oYXNMYXllcigpICYmIHJlbmRlckJv
eC0+bGF5ZXIoKS0+aGFzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpKQotICAgICAgICByZW5kZXJC
b3gtPmxheWVyKCktPmNvbnRlbnRDaGFuZ2VkKFJlbmRlckxheWVyOjpDYW52YXNDaGFuZ2VkKTsK
LSNlbmRpZgorICAgIGlmIChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQgPSBjYW52YXMoKS0+ZHJh
d2luZ0NvbnRleHQoKSkKKyAgICAgICAgY29udGV4dC0+c2F2ZSgpOwogfQogCiBDYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQ6OlN0YXRlOjpTdGF0ZSgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNmNkN2ZjODIyNDg5N2I4OWQ0
ZjRjNWE3MGE2ZDZjZTUyNGNiYTA4ZC4uYzQyNmJiYjc0Y2E1YjlhYWFlM2UzYzQ5NjU1M2QxNTE0
MTBjNGNlZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTAzLTE1ICBTYW1pIEt5b3N0aWxh
ICA8c2t5b3N0aWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldXNlIGJ1ZmZlciBhbGxvY2F0
aW9uIGlmIGNhbnZhcyBzaXplIGRvZXMgbm90IGNoYW5nZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA4NzEKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbGF5b3V0IHRlc3QgdG8gY2hlY2sgY2FudmFz
IHJlc2l6aW5nIHdpdGhvdXQgY2hhbmdpbmcgaXRzIGxheW91dCBzaXplLgorCisgICAgICAgIFdl
IGFsc28gdXBkYXRlIHRoZSBleHBlY3RlZCBpbWFnZSBvbmUgY2FudmFzIGNsZWFyaW5nIHRlc3Qu
IFRoZSB0ZXN0CisgICAgICAgIGlzIHNldHRpbmcgdGhlIHNpemUgb2YgYSBjYW52YXMgYW5kIGV4
cGVjdGluZyBpdCB0byBiZSBjbGVhcmVkIGluIHRoZSBwcm9jZXNzLgorICAgICAgICBXaXRoIHRo
ZSBvcHRpbWl6YXRpb24gdG8gcmV0YWluIHRoZSB1bmRlcmx5aW5nIEltYWdlQnVmZmVyLCB3ZSBu
byBsb25nZXIgY2FsbAorICAgICAgICBSZW5kZXJSZXBsYWNlZDo6cmVwYWludCgpIGFzIGEgcGFy
dCBvZiB0aGlzIHByb2Nlc3MuIFRoaXMgZnVuY3Rpb24gdXNlZCB0bworICAgICAgICByZXBhaW50
IGJvdGggdGhlIGNhbnZhcyBpdHNlbGYgKDEwMHg1MCkgYXMgd2VsbCBhcyBpdHMgbG9jYWwgc2Vs
ZWN0aW9uCisgICAgICAgIHJlY3RhbmdsZSAoMTAweDU0KS4KKworICAgICAgICBJbiB0aGlzIGNh
c2UgdGhlIGxvY2FsIHNlbGVjdGlvbiByZWN0YW5nbGUgaXMgbGFyZ2VyIHRoYW4gdGhlIGNhbnZh
cyBiZWNhdXNlCisgICAgICAgIHRoZSBjYW52YXMgaXMgY29udGFpbmVkIHdpdGhpbiBhbiBhbm9u
eW1vdXMgUmVuZGVyQmxvY2sgdGhhdCBhbHNvIGhhcyB0d28gZW1wdHkKKyAgICAgICAgdGV4dCBu
b2Rlcy4gVGhlIGV4dHJhIDQgcGl4ZWxzIGFyZSBuZWVkZWQgZm9yIGRyYXdpbmcgdGhlIHNlbGVj
dGlvbiByZWN0YW5nbGUKKyAgICAgICAgYXJvdW5kIGFueSBkZXNjZW5kZXJzIGluIHRoZSB0aGUg
dGV4dCBvZiB0aG9zZSBub2Rlcy4KKworICAgICAgICBTaW5jZSBjbGVhcmluZyB0aGUgY2FudmFz
IGhhcyBubyBlZmZlY3Qgb24gdGhlIHNlbGVjdGlvbiByZWN0YW5nbGUsIHdlIG9ubHkKKyAgICAg
ICAgbmVlZCB0byByZXBhaW50IHRoZSBhcmVhIG9mIHRoZSBjYW52YXMgaXRzZWxmLgorCisgICAg
ICAgICogZmFzdC9jYW52YXMvY2FudmFzLXJlc2l6ZS1hZnRlci1wYWludC13aXRob3V0LWxheW91
dC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy9jYW52YXMtcmVzaXplLWFmdGVy
LXBhaW50LXdpdGhvdXQtbGF5b3V0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC9jYW52YXMvY2FudmFzLXJlc2l6ZS1hZnRlci1wYWlu
dC13aXRob3V0LWxheW91dC1leHBlY3RlZC5wbmc6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2Nocm9taXVtLWxpbnV4L2Zhc3QvY2FudmFzL3NldFdpZHRoUmVzZXRBZnRlckZvcmNlZFJlbmRl
ci1leHBlY3RlZC5wbmc6IFVwZGF0ZWQuCisKIDIwMTItMDMtMjAgIE5pa29sYXMgWmltbWVybWFu
biAgPG56aW1tZXJtYW5uQHJpbS5jb20+CiAKICAgICAgICAgTWFrZSBhbmltVmFsIHN1cHBvcnQg
dHlwZS1zYWZlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtcmVz
aXplLWFmdGVyLXBhaW50LXdpdGhvdXQtbGF5b3V0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvY2FudmFzL2NhbnZhcy1yZXNpemUtYWZ0ZXItcGFpbnQtd2l0aG91dC1sYXlvdXQtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhiMTM3ODkxNzkxZmU5NjkyN2FkNzhlNjRiMGFhZDdiZGVk
MDhiZGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMt
cmVzaXplLWFmdGVyLXBhaW50LXdpdGhvdXQtbGF5b3V0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
IEBACisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1yZXNpemUt
YWZ0ZXItcGFpbnQtd2l0aG91dC1sYXlvdXQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFz
L2NhbnZhcy1yZXNpemUtYWZ0ZXItcGFpbnQtd2l0aG91dC1sYXlvdXQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42YWEwMWM5Y2M5NjNhYTMzZDNlMTk3Yjg2NTU4YmZmMTE3ZDA5ODUxCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLXJlc2l6ZS1hZnRlci1wYWludC13
aXRob3V0LWxheW91dC5odG1sCkBAIC0wLDAgKzEsMzggQEAKKzwhRE9DVFlQRSBodG1sPgorPCEt
LSBDaGVjayB0aGF0IHJlc2l6aW5nIGEgKHBvdGVudGlhbGx5IGFjY2VsZXJhdGVkKSBjYW52YXMg
cHJvcGVybHkgY2xlYXJzIGl0cworICAgICBjb250ZW50cyBldmVuIGlmIHRoZSBsYXlvdXQgc2l6
ZSBvZiB0aGUgY2FudmFzIGRvZXMgbm90IGNoYW5nZS4gRXhwZWN0ZWQKKyAgICAgb3V0cHV0IGlz
IGEgYmxhbmsgY2FudmFzLgorICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9ODA4NzEgLS0+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPHN0eWxlPgorICAgICAgI2Nh
bnZhcyB7CisgICAgICAgIG91dGxpbmU6IHNvbGlkIDFweCBibGFjazsKKyAgICAgICAgd2lkdGg6
IDMwMHB4OworICAgICAgICBoZWlnaHQ6IDMwMHB4OworICAgICAgfQorICAgIDwvc3R5bGU+Cisg
ICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZXBhaW50LmpzIj48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0PgorICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCh0cnVlKTsKKworICAgICAgZnVuY3Rpb24gcnVu
VGVzdCgpIHsKKyAgICAgICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdj
YW52YXMnKTsKKyAgICAgICAgdmFyIGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpOworICAg
ICAgICBjdHguZmlsbFN0eWxlID0gJ3JlZCc7CisgICAgICAgIGN0eC5maWxsUmVjdCgwLCAwLCAz
MDAsIDMwMCk7CisgICAgICAgIHJ1blJlcGFpbnRUZXN0KCk7CisgICAgICB9CisKKyAgICAgIGZ1
bmN0aW9uIHJlcGFpbnRUZXN0KCkgeworICAgICAgICB2YXIgY2FudmFzID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2NhbnZhcycpOworICAgICAgICAvLyBUaGlzIGNoYW5nZXMgdGhlIHJlc29s
dXRpb24gb2YgdGhlIGNhbnZhcyBidXQga2VlcHMgaXRzIGxheW91dCBzaXplIGNvbnN0YW50Lgor
ICAgICAgICBjYW52YXMud2lkdGggPSBjYW52YXMud2lkdGggLyAyOworICAgICAgfQorICAgIDwv
c2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5IG9ubG9hZD0icnVuVGVzdCgpOyI+CisgICAgPGNh
bnZhcyBpZD0iY2FudmFzIiB3aWR0aD0iMzAwIiBoZWlnaHQ9IjMwMCIvPgorICA8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9m
YXN0L2NhbnZhcy9jYW52YXMtcmVzaXplLWFmdGVyLXBhaW50LXdpdGhvdXQtbGF5b3V0LWV4cGVj
dGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2Zhc3QvY2FudmFz
L2NhbnZhcy1yZXNpemUtYWZ0ZXItcGFpbnQtd2l0aG91dC1sYXlvdXQtZXhwZWN0ZWQucG5nCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjkxZjE0NWM2MDBkMzgxZjI5NzNmMzkzMjRlNjJiMTlkNDkyYTYyNTEKR0lUIGJp
bmFyeSBwYXRjaApsaXRlcmFsIDI4OTkKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB5fnlVeyt2WVYy
YT5pMCpaKT1oXmhsQSVAV3MkbEhgb2s8bX0/b1RuMGwrCnpWfmFGWExuRzU5My1kJUg8NzUrS3Fj
cD5gUjB+c012bjB6aiVRV2BJZClwWnB4U28ydElFR1pyZDMobiZ1Zj40RAp6KWx1Zkg+eyhJRXJJ
KnReSCYtI34mZUFPV2R8RXZePjVRZDAxQX49KUlYP3FLZztYT2VnTWVAWjFBYCQ3cWszK2cKelpR
dFdadkluZnwwfnZuPUojWEJhZHBxaiZEY0orXiR2d04oODlwZmJ4MWVqbUctT2wrWXVKdGslVkBC
bVd3KzVKCnpHMilXTSNfUlIkJHZ4V1QzPUI1TURpaFhqKXd7Pkk9bDF1JT8+SEgxNGhidFZJUVMk
bUc4fHpNVntwaGhXQkw5Ygp6MUglVzZ5YlROdE5sZUBmM1RtVF8oTGZrWTM4VDRTTUNPOFQrXmli
flBBK24pPmokPXk4OVpKNlQtR0B5R3l3b2IKQ3kzayslCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEK
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L2Nh
bnZhcy9zZXRXaWR0aFJlc2V0QWZ0ZXJGb3JjZWRSZW5kZXItZXhwZWN0ZWQucG5nIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC9jYW52YXMvc2V0V2lkdGhSZXNldEFm
dGVyRm9yY2VkUmVuZGVyLWV4cGVjdGVkLnBuZwppbmRleCAwOTJiMGU4ZTlhYjI5ZWM3ZjVhMWJm
MDNmNTE2MWJiOWIzNzZmNGJlLi42MmQwN2VmMDE2ZDZmODg4Zjk0ZWI2YmE4YWZiOGFlOTZlMmRi
NWJiIDEwMDY0NApHSVQgYmluYXJ5IHBhdGNoCmRlbHRhIDkzCnpjbVoycXdaM1lDayV+IURRbVRj
aVZOJFkqblQzJklhJD0lIWwyS1l9WUZkKTlreHthI3gjaktQZlZ6IWdHbVV3RAp4ZFY3Mkdja3di
WEZ1V0lpeEF+KXEyRkdMdikzMEx4PEBkZSpBK2UzQV8mIWpFIVBDe3hXdH4kKDY5NmJqQjR6KnAK
CmRlbHRhIDk4CnpjbVYtbzBHPERAZGFydHJHOSk9O0YqITExRyZENmFGZm44fFc/P3BGSTVzaDNG
ZmNQVEcleitZRy0yR1ZHSVgoNAp6bktQMEI3IUooVCp4Mn17K1ctSW5ATHU1I3Z0YyY0MkQzbWxP
YWQxRkFFS2Y3NylfUEtmJmMmajA3KnFvTTZOPCQKRWcxZE1tM0lHNUEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132852</attachid>
            <date>2012-03-20 10:57:26 -0700</date>
            <delta_ts>2012-03-20 11:16:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80871-20120320175725.patch</filename>
            <type>text/plain</type>
            <size>14756</size>
            <attacher name="Sami Kyostila">skyostil</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExMzgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDg5ODRjOGFlY2I3ODMy
MjcwZDI4N2Q4OTIyYTg2YTk0YjQ0OGQ2YS4uMWFhODRmZDdjYWFjZjQxMDVhZmViMTlmY2QxNDFh
ZTU4NjJkNTYxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDEyLTAzLTE1ICBTYW1p
IEt5b3N0aWxhICA8c2t5b3N0aWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldXNlIGJ1ZmZl
ciBhbGxvY2F0aW9uIGlmIGNhbnZhcyBzaXplIGRvZXMgbm90IGNoYW5nZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA4NzEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJZiB0aGUgdXNlciBjaGFuZ2VzIHRo
ZSB3aWR0aCBvciBoZWlnaHQgYXR0cmlidXRlcyBvZiBhIGNhbnZhcyBlbGVtZW50LAorICAgICAg
ICB0aGUgY29udGVudHMgb2YgdGhlIGNhbnZhcyBzaG91bGQgYmUgY2xlYXJlZCBhbmQgdGhlIGNv
bnRleHQgc3RhdGUKKyAgICAgICAgc2hvdWxkIGJlIHJlc2V0LiBUaGlzIGhhcyBiZWNvbWUgYSBj
b21tb24gaWRpb20gdG8gY2xlYXIgdGhlIGNhbnZhcworICAgICAgICAiZWZmaWNpZW50bHkiIGF0
IHRoZSBzdGFydCBvZiBhIGZyYW1lLgorCisgICAgICAgIFByZXZpb3VzbHksIHRoaXMgY29kZSBw
YXRoIHRyaWdnZXJlZCBhIGZ1bGwgcmVhbGxvY2F0aW9uIG9mIHRoZSBpbWFnZQorICAgICAgICBi
dWZmZXIgYmFja2luZyB0aGUgY2FudmFzLCBsZWFkaW5nIHRvIHJlZHVjZWQgcGVyZm9ybWFuY2Uu
IFRoaXMgcGF0Y2gKKyAgICAgICAgaW1wbGVtZW50cyBhbiBvcHRpbWl6YXRpb24gd2hlcmUgd2Ug
cmV1c2UgdGhlIHByZXZpb3VzIGltYWdlIGJ1ZmZlcgorICAgICAgICBhbGxvY2F0aW9uIGlmIHRo
ZSBzaXplIG9mIHRoZSBjYW52YXMgZGlkIG5vdCBjaGFuZ2UuIEFsc28sIGluc3RlYWQgb2YKKyAg
ICAgICAgY2xlYXJpbmcgdGhlIGNhbnZhcyBldmVyeSB0aW1lIGl0cyBkaW1lbnNpb25zIGFyZSB0
b3VjaGVkLCB3ZSBvbmx5IGNsZWFyCisgICAgICAgIGlmIGFueXRoaW5nIGhhcyBiZWVuIGRyYXdu
IGludG8gdGhlIGNhbnZhcyBzaW5jZSBpdCB3YXMgcHJldmlvdXNseQorICAgICAgICBjbGVhcmVk
LgorCisgICAgICAgIE5vdGUgdGhhdCBmb3Igbm93IHRoaXMgb3B0aW1pemF0aW9uIG9ubHkgYXBw
bGllcyBmb3IgMkQgY2FudmFzZXMsCisgICAgICAgIHNpbmNlIGl0IGlzIG5vdCBlbnRpcmVseSBj
bGVhciBob3cgdG91Y2hpbmcgdGhlIGRpbWVuc2lvbnMgb2YgYSBXZWJHTAorICAgICAgICBjYW52
YXMgc2hvdWxkIHdvcmsuCisKKyAgICAgICAgVGVzdDogZmFzdC9jYW52YXMvY2FudmFzLXJlc2l6
ZS1hZnRlci1wYWludC13aXRob3V0LWxheW91dC5odG1sICsKKyAgICAgICAgICAgICAgZXhpc3Rp
bmcgbGF5b3V0IHRlc3RzIGZvciBjYW52YXMgcmVzZXR0aW5nLgorCisgICAgICAgICogaHRtbC9I
VE1MQ2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVu
dDo6SFRNTENhbnZhc0VsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1l
bnQ6OnJlc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVJ
bWFnZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Y2xlYXJJ
bWFnZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxD
YW52YXNFbGVtZW50OjpjbGVhckNvcGllZEltYWdlKToKKyAgICAgICAgKiBodG1sL0hUTUxDYW52
YXNFbGVtZW50Lmg6CisgICAgICAgIChIVE1MQ2FudmFzRWxlbWVudCk6CisgICAgICAgICogaHRt
bC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKTogU2F2
ZSB0aGUKKyAgICAgICAgaW5pdGlhbCBncmFwaGljcyBjb250ZXh0IHN0YXRlIHNvIHdlIGNhbiBy
ZXN0b3JlIGl0IHdpdGhvdXQgY3JlYXRpbmcgYQorICAgICAgICBuZXcgY29udGV4dC4KKyAgICAg
ICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6dW53aW5kU3RhdGVTdGFjayk6
CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnJlc2V0KTogTm8g
bmVlZCB0byBub3RpZnkgdGhlCisgICAgICAgIGNvbXBvc2l0b3Igd2hlbiB0aGUgY29udGV4dCBp
cyByZXNldCwgYmVjYXVzZSBjbGVhcmluZyB0aGUgaW1hZ2UgYnVmZmVyCisgICAgICAgIGRvZXMg
dGhlIHNhbWUgdGhpbmcuIFdlIGNhbiBhbHNvIHNraXAgdGhlIG5vdGlmaWNhdGlvbiBpZiB3ZSBk
aWQgbm90CisgICAgICAgIGhhdmUgYW4gaW1hZ2UgYnVmZmVyIGF0IHRoZSB0aW1lIG9mIHRoZSBy
ZXNldCwgYmVjYXVzZSB0aGUgcmVzZXQgd2lsbAorICAgICAgICBub3QgaGF2ZSBhbnkgdmlzdWFs
IGltcGFjdCBpbiB0aGlzIGNhc2UuIEZpbmFsbHksIGlmIHRoZSBjYW52YXMgc2l6ZQorICAgICAg
ICBkaWQgY2hhbmdlLCB0aGUgbm90aWZpY2F0aW9uIGlzIGFsc28gdW5uZWNlc3NhcnkgYmVjYXVz
ZSBvZiB0aGUgY2FsbAorICAgICAgICB0byBSZW5kZXJPYmplY3Q6OnJlcGFpbnQoKSBmcm9tIEhU
TUxDYW52YXNFbGVtZW50OjpyZXNldCgpLgorCiAyMDEyLTAzLTIwICBZdXJ5IFNlbWlraGF0c2t5
ICA8eXVyeXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IHByb3ZpZGUg
Y2xhc3MgbmFtZSBmaWx0ZXIgZm9yICJjb21wYXJpc29uIiB2aWV3IGluIGhlYXAgcHJvZmlsZXIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKaW5kZXggMDdhYjMwOTFl
NTk4Mzg0YTNkYjMwOWM5NTVlMTFhMjhjOWU0ZDJjMy4uODU2ZjhmMzRjNDlmMmZiZGY0ZDY3MWJj
NjkxN2E1M2NjZGE1YjYzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2Fu
dmFzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVu
dC5jcHAKQEAgLTkyLDYgKzkyLDcgQEAgSFRNTENhbnZhc0VsZW1lbnQ6OkhUTUxDYW52YXNFbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2MKICNlbmRpZgog
ICAgICwgbV9vcmlnaW5DbGVhbih0cnVlKQogICAgICwgbV9oYXNDcmVhdGVkSW1hZ2VCdWZmZXIo
ZmFsc2UpCisgICAgLCBtX2RpZENsZWFySW1hZ2VCdWZmZXIoZmFsc2UpCiB7CiAgICAgQVNTRVJU
KGhhc1RhZ05hbWUoY2FudmFzVGFnKSk7CiB9CkBAIC0yNTUsNiArMjU2LDEyIEBAIHZvaWQgSFRN
TENhbnZhc0VsZW1lbnQ6OnJlc2V0KCkKICAgICBJbnRTaXplIG9sZFNpemUgPSBzaXplKCk7CiAg
ICAgc2V0U3VyZmFjZVNpemUoSW50U2l6ZSh3LCBoKSk7IC8vIFRoZSBpbWFnZSBidWZmZXIgZ2V0
cyBjbGVhcmVkIGhlcmUuCiAKKyAgICAvLyBJZiB0aGUgaW1hZ2UgYnVmZmVyIGRpZCBub3QgY2hh
bmdlLCB0aGVyZSBpcyBubyBuZWVkIHRvIHJlcGFpbnQgb3Igc2VuZCByZXNpemUgbm90aWZpY2F0
aW9ucy4KKyAgICBpZiAoaGFkSW1hZ2VCdWZmZXIgJiYgaGFzQ3JlYXRlZEltYWdlQnVmZmVyKCkp
IHsKKyAgICAgICAgQVNTRVJUKG9sZFNpemUgPT0gc2l6ZSgpKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKwogI2lmIEVOQUJMRShXRUJHTCkKICAgICBpZiAobV9jb250ZXh0ICYmIG1fY29udGV4
dC0+aXMzZCgpICYmIG9sZFNpemUgIT0gc2l6ZSgpKQogICAgICAgICBzdGF0aWNfY2FzdDxXZWJH
TFJlbmRlcmluZ0NvbnRleHQqPihtX2NvbnRleHQuZ2V0KCkpLT5yZXNoYXBlKHdpZHRoKCksIGhl
aWdodCgpKTsKQEAgLTI2Miw4ICsyNjksMTMgQEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6cmVz
ZXQoKQogCiAgICAgaWYgKFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigp
KSB7CiAgICAgICAgIGlmIChtX3JlbmRlcmVySXNDYW52YXMpIHsKLSAgICAgICAgICAgIGlmIChv
bGRTaXplICE9IHNpemUoKSkKKyAgICAgICAgICAgIGlmIChvbGRTaXplICE9IHNpemUoKSkgewog
ICAgICAgICAgICAgICAgIHRvUmVuZGVySFRNTENhbnZhcyhyZW5kZXJlciktPmNhbnZhc1NpemVD
aGFuZ2VkKCk7CisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgICAgICAgICAg
ICAgIGlmIChyZW5kZXJCb3goKSAmJiByZW5kZXJCb3goKS0+aGFzTGF5ZXIoKSAmJiByZW5kZXJC
b3goKS0+bGF5ZXIoKS0+aGFzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpKQorICAgICAgICAgICAg
ICAgICAgICByZW5kZXJCb3goKS0+bGF5ZXIoKS0+Y29udGVudENoYW5nZWQoUmVuZGVyTGF5ZXI6
OkNhbnZhc0NoYW5nZWQpOworI2VuZGlmCisgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAo
aGFkSW1hZ2VCdWZmZXIpCiAgICAgICAgICAgICAgICAgcmVuZGVyZXItPnJlcGFpbnQoKTsKICAg
ICAgICAgfQpAQCAtMzUxLDYgKzM2MywxMyBAQCB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpjbGVh
clByZXNlbnRhdGlvbkNvcHkoKQogCiB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpzZXRTdXJmYWNl
U2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQogeworICAgIC8vIElmIHRoZSBzaXplIG9mIGFuIGV4
aXN0aW5nIGJ1ZmZlciBtYXRjaGVzLCB3ZSBjYW4ganVzdCBjbGVhciBpdCBpbnN0ZWFkIG9mIHJl
YWxsb2NhdGluZy4KKyAgICAvLyBUaGlzIG9wdGltaXphdGlvbiBpcyBvbmx5IGRvbmUgZm9yIDJE
IGNhbnZhc2VzIGZvciBub3cuCisgICAgaWYgKG1faGFzQ3JlYXRlZEltYWdlQnVmZmVyICYmIG1f
c2l6ZSA9PSBzaXplICYmICghbV9jb250ZXh0IHx8IG1fY29udGV4dC0+aXMyZCgpKSkgeworICAg
ICAgICBpZiAoIW1fZGlkQ2xlYXJJbWFnZUJ1ZmZlcikKKyAgICAgICAgICAgIGNsZWFySW1hZ2VC
dWZmZXIoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KICAgICBtX3NpemUgPSBzaXplOwogICAg
IG1faGFzQ3JlYXRlZEltYWdlQnVmZmVyID0gZmFsc2U7CiAgICAgbV9pbWFnZUJ1ZmZlci5jbGVh
cigpOwpAQCAtNDk4LDYgKzUxNyw3IEBAIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0ZUlt
YWdlQnVmZmVyKCkgY29uc3QKICAgICBBU1NFUlQoIW1faW1hZ2VCdWZmZXIpOwogCiAgICAgbV9o
YXNDcmVhdGVkSW1hZ2VCdWZmZXIgPSB0cnVlOworICAgIG1fZGlkQ2xlYXJJbWFnZUJ1ZmZlciA9
IHRydWU7CiAKICAgICBGbG9hdFNpemUgbG9naWNhbFNpemUgPSBzaXplKCk7CiAgICAgRmxvYXRT
aXplIGRldmljZVNpemUgPSBjb252ZXJ0TG9naWNhbFRvRGV2aWNlKGxvZ2ljYWxTaXplKTsKQEAg
LTU3Myw5ICs1OTMsMjcgQEAgSW1hZ2UqIEhUTUxDYW52YXNFbGVtZW50Ojpjb3BpZWRJbWFnZSgp
IGNvbnN0CiAgICAgcmV0dXJuIG1fY29waWVkSW1hZ2UuZ2V0KCk7CiB9CiAKK3ZvaWQgSFRNTENh
bnZhc0VsZW1lbnQ6OmNsZWFySW1hZ2VCdWZmZXIoKSBjb25zdAoreworICAgIEFTU0VSVChtX2hh
c0NyZWF0ZWRJbWFnZUJ1ZmZlcik7CisgICAgQVNTRVJUKCFtX2RpZENsZWFySW1hZ2VCdWZmZXIp
OworCisgICAgaWYgKCFtX2NvbnRleHQpCisgICAgICAgIHJldHVybjsKKworICAgIG1fZGlkQ2xl
YXJJbWFnZUJ1ZmZlciA9IHRydWU7CisKKyAgICBpZiAobV9jb250ZXh0LT5pczJkKCkpIHsKKyAg
ICAgICAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKiBjb250ZXh0MkQgPSBzdGF0aWNfY2FzdDxD
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQqPihtX2NvbnRleHQuZ2V0KCkpOworICAgICAgICAvLyBO
byBuZWVkIHRvIHVuZG8gdHJhbnNmb3Jtcy9jbGlwL2V0Yy4gYmVjYXVzZSB3ZSBhcmUgY2FsbGVk
IHJpZ2h0IGFmdGVyIHRoZSBjb250ZXh0IGlzIHJlc2V0LgorICAgICAgICBjb250ZXh0MkQtPmNs
ZWFyUmVjdCgwLCAwLCB3aWR0aCgpLCBoZWlnaHQoKSk7CisgICAgfQorfQorCiB2b2lkIEhUTUxD
YW52YXNFbGVtZW50OjpjbGVhckNvcGllZEltYWdlKCkKIHsKICAgICBtX2NvcGllZEltYWdlLmNs
ZWFyKCk7CisgICAgbV9kaWRDbGVhckltYWdlQnVmZmVyID0gZmFsc2U7CiB9CiAKIEFmZmluZVRy
YW5zZm9ybSBIVE1MQ2FudmFzRWxlbWVudDo6YmFzZVRyYW5zZm9ybSgpIGNvbnN0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgKaW5kZXggZTJjNDg4OGU1YjRiNjQ1NjU0ZmFk
NGFlOTgyOGJkZWFmNDA1NmNiMi4uOTJkNzYyNTkzODc5MjAyNWFlNGM4Nzk2MTgzZDUwNzQ3Yzhj
OGMzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaApAQCAtMTQzLDYg
KzE0Myw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZXNldCgpOwogCiAgICAgdm9pZCBjcmVhdGVJ
bWFnZUJ1ZmZlcigpIGNvbnN0OworICAgIHZvaWQgY2xlYXJJbWFnZUJ1ZmZlcigpIGNvbnN0Owog
CiAgICAgdm9pZCBzZXRTdXJmYWNlU2l6ZShjb25zdCBJbnRTaXplJik7CiAKQEAgLTE2Niw2ICsx
NjcsNyBAQCBwcml2YXRlOgogCiAgICAgLy8gbV9jcmVhdGVkSW1hZ2VCdWZmZXIgbWVhbnMgd2Ug
dHJpZWQgdG8gbWFsbG9jIHRoZSBidWZmZXIuICBXZSBkaWRuJ3QgbmVjZXNzYXJpbHkgZ2V0IGl0
LgogICAgIG11dGFibGUgYm9vbCBtX2hhc0NyZWF0ZWRJbWFnZUJ1ZmZlcjsKKyAgICBtdXRhYmxl
IGJvb2wgbV9kaWRDbGVhckltYWdlQnVmZmVyOwogICAgIG11dGFibGUgT3duUHRyPEltYWdlQnVm
ZmVyPiBtX2ltYWdlQnVmZmVyOwogICAgIAogICAgIG11dGFibGUgUmVmUHRyPEltYWdlPiBtX3By
ZXNlbnRlZEltYWdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKaW5kZXggMjc5YjJhMWMzMDkyNzVhODQ5OWNkMmRk
OGFjMjkxNTMzMTZiNTFiMi4uZWNhNTQxOTJiMzgyN2U5YmNkOTliNjkyMDRhMjc1YTk2OTFmYzAz
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJELmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQuY3BwCkBAIC0xMjQsNiArMTI0LDggQEAgQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQoSFRNTENhbnZhc0VsZW1lbnQqIGNhbnZh
cywgYm8KICNpZiAhRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQogICAgIEFTU0VSVF9VTlVTRUQo
dXNlc0Rhc2hib2FyZENvbXBhdGliaWxpdHlNb2RlLCAhdXNlc0Rhc2hib2FyZENvbXBhdGliaWxp
dHlNb2RlKTsKICNlbmRpZgorICAgIGlmIChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQgPSBjYW52
YXMtPmRyYXdpbmdDb250ZXh0KCkpCisgICAgICAgIGNvbnRleHQtPnNhdmUoKTsKIH0KIAogdm9p
ZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnVud2luZFN0YXRlU3RhY2soKQpAQCAtMTMzLDcg
KzEzNSw3IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjp1bndpbmRTdGF0ZVN0YWNr
KCkKICAgICAvLyBHcmFwaGljc0NvbnRleHQgZHRvci4KICAgICBpZiAoc2l6ZV90IHN0YWNrU2l6
ZSA9IG1fc3RhdGVTdGFjay5zaXplKCkpIHsKICAgICAgICAgaWYgKEdyYXBoaWNzQ29udGV4dCog
Y29udGV4dCA9IGNhbnZhcygpLT5leGlzdGluZ0RyYXdpbmdDb250ZXh0KCkpIHsKLSAgICAgICAg
ICAgIHdoaWxlICgtLXN0YWNrU2l6ZSkKKyAgICAgICAgICAgIHdoaWxlIChzdGFja1NpemUtLSkK
ICAgICAgICAgICAgICAgICBjb250ZXh0LT5yZXN0b3JlKCk7CiAgICAgICAgIH0KICAgICB9CkBA
IC0xNjEsMTEgKzE2Myw4IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpyZXNldCgp
CiAgICAgbV9zdGF0ZVN0YWNrLnJlc2l6ZSgxKTsKICAgICBtX3N0YXRlU3RhY2suZmlyc3QoKSA9
IFN0YXRlKCk7CiAgICAgbV9wYXRoLmNsZWFyKCk7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQotICAgIFJlbmRlckJveCogcmVuZGVyQm94ID0gY2FudmFzKCktPnJlbmRlckJveCgp
OwotICAgIGlmIChyZW5kZXJCb3ggJiYgcmVuZGVyQm94LT5oYXNMYXllcigpICYmIHJlbmRlckJv
eC0+bGF5ZXIoKS0+aGFzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpKQotICAgICAgICByZW5kZXJC
b3gtPmxheWVyKCktPmNvbnRlbnRDaGFuZ2VkKFJlbmRlckxheWVyOjpDYW52YXNDaGFuZ2VkKTsK
LSNlbmRpZgorICAgIGlmIChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQgPSBjYW52YXMoKS0+ZHJh
d2luZ0NvbnRleHQoKSkKKyAgICAgICAgY29udGV4dC0+c2F2ZSgpOwogfQogCiBDYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQ6OlN0YXRlOjpTdGF0ZSgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNmNkN2ZjODIyNDg5N2I4OWQ0
ZjRjNWE3MGE2ZDZjZTUyNGNiYTA4ZC4uYzQyNmJiYjc0Y2E1YjlhYWFlM2UzYzQ5NjU1M2QxNTE0
MTBjNGNlZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTAzLTE1ICBTYW1pIEt5b3N0aWxh
ICA8c2t5b3N0aWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldXNlIGJ1ZmZlciBhbGxvY2F0
aW9uIGlmIGNhbnZhcyBzaXplIGRvZXMgbm90IGNoYW5nZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA4NzEKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbGF5b3V0IHRlc3QgdG8gY2hlY2sgY2FudmFz
IHJlc2l6aW5nIHdpdGhvdXQgY2hhbmdpbmcgaXRzIGxheW91dCBzaXplLgorCisgICAgICAgIFdl
IGFsc28gdXBkYXRlIHRoZSBleHBlY3RlZCBpbWFnZSBvbmUgY2FudmFzIGNsZWFyaW5nIHRlc3Qu
IFRoZSB0ZXN0CisgICAgICAgIGlzIHNldHRpbmcgdGhlIHNpemUgb2YgYSBjYW52YXMgYW5kIGV4
cGVjdGluZyBpdCB0byBiZSBjbGVhcmVkIGluIHRoZSBwcm9jZXNzLgorICAgICAgICBXaXRoIHRo
ZSBvcHRpbWl6YXRpb24gdG8gcmV0YWluIHRoZSB1bmRlcmx5aW5nIEltYWdlQnVmZmVyLCB3ZSBu
byBsb25nZXIgY2FsbAorICAgICAgICBSZW5kZXJSZXBsYWNlZDo6cmVwYWludCgpIGFzIGEgcGFy
dCBvZiB0aGlzIHByb2Nlc3MuIFRoaXMgZnVuY3Rpb24gdXNlZCB0bworICAgICAgICByZXBhaW50
IGJvdGggdGhlIGNhbnZhcyBpdHNlbGYgKDEwMHg1MCkgYXMgd2VsbCBhcyBpdHMgbG9jYWwgc2Vs
ZWN0aW9uCisgICAgICAgIHJlY3RhbmdsZSAoMTAweDU0KS4KKworICAgICAgICBJbiB0aGlzIGNh
c2UgdGhlIGxvY2FsIHNlbGVjdGlvbiByZWN0YW5nbGUgaXMgbGFyZ2VyIHRoYW4gdGhlIGNhbnZh
cyBiZWNhdXNlCisgICAgICAgIHRoZSBjYW52YXMgaXMgY29udGFpbmVkIHdpdGhpbiBhbiBhbm9u
eW1vdXMgUmVuZGVyQmxvY2sgdGhhdCBhbHNvIGhhcyB0d28gZW1wdHkKKyAgICAgICAgdGV4dCBu
b2Rlcy4gVGhlIGV4dHJhIDQgcGl4ZWxzIGFyZSBuZWVkZWQgZm9yIGRyYXdpbmcgdGhlIHNlbGVj
dGlvbiByZWN0YW5nbGUKKyAgICAgICAgYXJvdW5kIGFueSBkZXNjZW5kZXJzIGluIHRoZSB0aGUg
dGV4dCBvZiB0aG9zZSBub2Rlcy4KKworICAgICAgICBTaW5jZSBjbGVhcmluZyB0aGUgY2FudmFz
IGhhcyBubyBlZmZlY3Qgb24gdGhlIHNlbGVjdGlvbiByZWN0YW5nbGUsIHdlIG9ubHkKKyAgICAg
ICAgbmVlZCB0byByZXBhaW50IHRoZSBhcmVhIG9mIHRoZSBjYW52YXMgaXRzZWxmLgorCisgICAg
ICAgICogZmFzdC9jYW52YXMvY2FudmFzLXJlc2l6ZS1hZnRlci1wYWludC13aXRob3V0LWxheW91
dC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy9jYW52YXMtcmVzaXplLWFmdGVy
LXBhaW50LXdpdGhvdXQtbGF5b3V0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC9jYW52YXMvY2FudmFzLXJlc2l6ZS1hZnRlci1wYWlu
dC13aXRob3V0LWxheW91dC1leHBlY3RlZC5wbmc6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2Nocm9taXVtLWxpbnV4L2Zhc3QvY2FudmFzL3NldFdpZHRoUmVzZXRBZnRlckZvcmNlZFJlbmRl
ci1leHBlY3RlZC5wbmc6IFVwZGF0ZWQuCisKIDIwMTItMDMtMjAgIE5pa29sYXMgWmltbWVybWFu
biAgPG56aW1tZXJtYW5uQHJpbS5jb20+CiAKICAgICAgICAgTWFrZSBhbmltVmFsIHN1cHBvcnQg
dHlwZS1zYWZlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtcmVz
aXplLWFmdGVyLXBhaW50LXdpdGhvdXQtbGF5b3V0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvY2FudmFzL2NhbnZhcy1yZXNpemUtYWZ0ZXItcGFpbnQtd2l0aG91dC1sYXlvdXQtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhiMTM3ODkxNzkxZmU5NjkyN2FkNzhlNjRiMGFhZDdiZGVk
MDhiZGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMt
cmVzaXplLWFmdGVyLXBhaW50LXdpdGhvdXQtbGF5b3V0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
IEBACisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1yZXNpemUt
YWZ0ZXItcGFpbnQtd2l0aG91dC1sYXlvdXQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFz
L2NhbnZhcy1yZXNpemUtYWZ0ZXItcGFpbnQtd2l0aG91dC1sYXlvdXQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42YWEwMWM5Y2M5NjNhYTMzZDNlMTk3Yjg2NTU4YmZmMTE3ZDA5ODUxCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLXJlc2l6ZS1hZnRlci1wYWludC13
aXRob3V0LWxheW91dC5odG1sCkBAIC0wLDAgKzEsMzggQEAKKzwhRE9DVFlQRSBodG1sPgorPCEt
LSBDaGVjayB0aGF0IHJlc2l6aW5nIGEgKHBvdGVudGlhbGx5IGFjY2VsZXJhdGVkKSBjYW52YXMg
cHJvcGVybHkgY2xlYXJzIGl0cworICAgICBjb250ZW50cyBldmVuIGlmIHRoZSBsYXlvdXQgc2l6
ZSBvZiB0aGUgY2FudmFzIGRvZXMgbm90IGNoYW5nZS4gRXhwZWN0ZWQKKyAgICAgb3V0cHV0IGlz
IGEgYmxhbmsgY2FudmFzLgorICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9ODA4NzEgLS0+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPHN0eWxlPgorICAgICAgI2Nh
bnZhcyB7CisgICAgICAgIG91dGxpbmU6IHNvbGlkIDFweCBibGFjazsKKyAgICAgICAgd2lkdGg6
IDMwMHB4OworICAgICAgICBoZWlnaHQ6IDMwMHB4OworICAgICAgfQorICAgIDwvc3R5bGU+Cisg
ICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZXBhaW50LmpzIj48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0PgorICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCh0cnVlKTsKKworICAgICAgZnVuY3Rpb24gcnVu
VGVzdCgpIHsKKyAgICAgICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdj
YW52YXMnKTsKKyAgICAgICAgdmFyIGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpOworICAg
ICAgICBjdHguZmlsbFN0eWxlID0gJ3JlZCc7CisgICAgICAgIGN0eC5maWxsUmVjdCgwLCAwLCAz
MDAsIDMwMCk7CisgICAgICAgIHJ1blJlcGFpbnRUZXN0KCk7CisgICAgICB9CisKKyAgICAgIGZ1
bmN0aW9uIHJlcGFpbnRUZXN0KCkgeworICAgICAgICB2YXIgY2FudmFzID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2NhbnZhcycpOworICAgICAgICAvLyBUaGlzIGNoYW5nZXMgdGhlIHJlc29s
dXRpb24gb2YgdGhlIGNhbnZhcyBidXQga2VlcHMgaXRzIGxheW91dCBzaXplIGNvbnN0YW50Lgor
ICAgICAgICBjYW52YXMud2lkdGggPSBjYW52YXMud2lkdGggLyAyOworICAgICAgfQorICAgIDwv
c2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5IG9ubG9hZD0icnVuVGVzdCgpOyI+CisgICAgPGNh
bnZhcyBpZD0iY2FudmFzIiB3aWR0aD0iMzAwIiBoZWlnaHQ9IjMwMCIvPgorICA8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9m
YXN0L2NhbnZhcy9jYW52YXMtcmVzaXplLWFmdGVyLXBhaW50LXdpdGhvdXQtbGF5b3V0LWV4cGVj
dGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2Zhc3QvY2FudmFz
L2NhbnZhcy1yZXNpemUtYWZ0ZXItcGFpbnQtd2l0aG91dC1sYXlvdXQtZXhwZWN0ZWQucG5nCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjkxZjE0NWM2MDBkMzgxZjI5NzNmMzkzMjRlNjJiMTlkNDkyYTYyNTEKR0lUIGJp
bmFyeSBwYXRjaApsaXRlcmFsIDI4OTkKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB5fnlVeyt2WVYy
YT5pMCpaKT1oXmhsQSVAV3MkbEhgb2s8bX0/b1RuMGwrCnpWfmFGWExuRzU5My1kJUg8NzUrS3Fj
cD5gUjB+c012bjB6aiVRV2BJZClwWnB4U28ydElFR1pyZDMobiZ1Zj40RAp6KWx1Zkg+eyhJRXJJ
KnReSCYtI34mZUFPV2R8RXZePjVRZDAxQX49KUlYP3FLZztYT2VnTWVAWjFBYCQ3cWszK2cKelpR
dFdadkluZnwwfnZuPUojWEJhZHBxaiZEY0orXiR2d04oODlwZmJ4MWVqbUctT2wrWXVKdGslVkBC
bVd3KzVKCnpHMilXTSNfUlIkJHZ4V1QzPUI1TURpaFhqKXd7Pkk9bDF1JT8+SEgxNGhidFZJUVMk
bUc4fHpNVntwaGhXQkw5Ygp6MUglVzZ5YlROdE5sZUBmM1RtVF8oTGZrWTM4VDRTTUNPOFQrXmli
flBBK24pPmokPXk4OVpKNlQtR0B5R3l3b2IKQ3kzayslCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEK
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L2Nh
bnZhcy9zZXRXaWR0aFJlc2V0QWZ0ZXJGb3JjZWRSZW5kZXItZXhwZWN0ZWQucG5nIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC9jYW52YXMvc2V0V2lkdGhSZXNldEFm
dGVyRm9yY2VkUmVuZGVyLWV4cGVjdGVkLnBuZwppbmRleCAwOTJiMGU4ZTlhYjI5ZWM3ZjVhMWJm
MDNmNTE2MWJiOWIzNzZmNGJlLi42MmQwN2VmMDE2ZDZmODg4Zjk0ZWI2YmE4YWZiOGFlOTZlMmRi
NWJiIDEwMDY0NApHSVQgYmluYXJ5IHBhdGNoCmRlbHRhIDkzCnpjbVoycXdaM1lDayV+IURRbVRj
aVZOJFkqblQzJklhJD0lIWwyS1l9WUZkKTlreHthI3gjaktQZlZ6IWdHbVV3RAp4ZFY3Mkdja3di
WEZ1V0lpeEF+KXEyRkdMdikzMEx4PEBkZSpBK2UzQV8mIWpFIVBDe3hXdH4kKDY5NmJqQjR6KnAK
CmRlbHRhIDk4CnpjbVYtbzBHPERAZGFydHJHOSk9O0YqITExRyZENmFGZm44fFc/P3BGSTVzaDNG
ZmNQVEcleitZRy0yR1ZHSVgoNAp6bktQMEI3IUooVCp4Mn17K1ctSW5ATHU1I3Z0YyY0MkQzbWxP
YWQxRkFFS2Y3NylfUEtmJmMmajA3KnFvTTZOPCQKRWcxZE1tM0lHNUEKCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9wbGF0Zm9ybS9jaHJvbWl1bS92aXJ0
dWFsL2dwdS9mYXN0L2NhbnZhcy9jYW52YXMtcmVzaXplLWFmdGVyLXBhaW50LXdpdGhvdXQtbGF5
b3V0LWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3Bs
YXRmb3JtL2Nocm9taXVtL3ZpcnR1YWwvZ3B1L2Zhc3QvY2FudmFzL2NhbnZhcy1yZXNpemUtYWZ0
ZXItcGFpbnQtd2l0aG91dC1sYXlvdXQtZXhwZWN0ZWQucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5MDFjYTE0
ZWQzM2IwY2I3OTcwZGNjYjg1M2Q3NzUzYjZlYzg1MjEKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFs
IDI4NzYKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB5fnlVeyt2WVYyYT5pMCpaKT1oXmhsQSVAV3Mk
bEhgb2s8bX0/b1QhekhkCnpxKlAtSTxLI3JNKVU9Y3w8NVl0clYteGVfNmNnaFYhXkc1TkJnMTJT
RVZDSUh4WHlYSElFR1pyZDMob0A+IyVfVQp6Z0piLU18TkdiMkRFTXVVeE4mQW1RMVIzViNTM2U7
QC1aLTImQS1kY3pfNiRIMDI0ejhydyY4STM+MyFQPjhwKjQKektnJTRALUBrJnY9MU9VVHRZNnVV
diRwSUhjRz9Jc0YmdHFMVntxX0VVPnMkUDJFdTRjN3xqS3Z4cXleaGFJUmszCnp4Y0lwWTFIKmQ1
PzZyNHxmbnspKXgpWFomaSYtTCVpZVJtJU11VE5FU2tUJW9xZSlgZUIjQnphbGx9c21xVTMlPwpR
MURuR1BwMDBpXz56b3ByMDU8b3xSUjkxMAoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132861</attachid>
            <date>2012-03-20 11:16:43 -0700</date>
            <delta_ts>2012-03-21 10:08:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80871-20120320181641.patch</filename>
            <type>text/plain</type>
            <size>14281</size>
            <attacher name="Sami Kyostila">skyostil</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExMzgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDg5ODRjOGFlY2I3ODMy
MjcwZDI4N2Q4OTIyYTg2YTk0YjQ0OGQ2YS4uMWFhODRmZDdjYWFjZjQxMDVhZmViMTlmY2QxNDFh
ZTU4NjJkNTYxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDEyLTAzLTE1ICBTYW1p
IEt5b3N0aWxhICA8c2t5b3N0aWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldXNlIGJ1ZmZl
ciBhbGxvY2F0aW9uIGlmIGNhbnZhcyBzaXplIGRvZXMgbm90IGNoYW5nZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA4NzEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJZiB0aGUgdXNlciBjaGFuZ2VzIHRo
ZSB3aWR0aCBvciBoZWlnaHQgYXR0cmlidXRlcyBvZiBhIGNhbnZhcyBlbGVtZW50LAorICAgICAg
ICB0aGUgY29udGVudHMgb2YgdGhlIGNhbnZhcyBzaG91bGQgYmUgY2xlYXJlZCBhbmQgdGhlIGNv
bnRleHQgc3RhdGUKKyAgICAgICAgc2hvdWxkIGJlIHJlc2V0LiBUaGlzIGhhcyBiZWNvbWUgYSBj
b21tb24gaWRpb20gdG8gY2xlYXIgdGhlIGNhbnZhcworICAgICAgICAiZWZmaWNpZW50bHkiIGF0
IHRoZSBzdGFydCBvZiBhIGZyYW1lLgorCisgICAgICAgIFByZXZpb3VzbHksIHRoaXMgY29kZSBw
YXRoIHRyaWdnZXJlZCBhIGZ1bGwgcmVhbGxvY2F0aW9uIG9mIHRoZSBpbWFnZQorICAgICAgICBi
dWZmZXIgYmFja2luZyB0aGUgY2FudmFzLCBsZWFkaW5nIHRvIHJlZHVjZWQgcGVyZm9ybWFuY2Uu
IFRoaXMgcGF0Y2gKKyAgICAgICAgaW1wbGVtZW50cyBhbiBvcHRpbWl6YXRpb24gd2hlcmUgd2Ug
cmV1c2UgdGhlIHByZXZpb3VzIGltYWdlIGJ1ZmZlcgorICAgICAgICBhbGxvY2F0aW9uIGlmIHRo
ZSBzaXplIG9mIHRoZSBjYW52YXMgZGlkIG5vdCBjaGFuZ2UuIEFsc28sIGluc3RlYWQgb2YKKyAg
ICAgICAgY2xlYXJpbmcgdGhlIGNhbnZhcyBldmVyeSB0aW1lIGl0cyBkaW1lbnNpb25zIGFyZSB0
b3VjaGVkLCB3ZSBvbmx5IGNsZWFyCisgICAgICAgIGlmIGFueXRoaW5nIGhhcyBiZWVuIGRyYXdu
IGludG8gdGhlIGNhbnZhcyBzaW5jZSBpdCB3YXMgcHJldmlvdXNseQorICAgICAgICBjbGVhcmVk
LgorCisgICAgICAgIE5vdGUgdGhhdCBmb3Igbm93IHRoaXMgb3B0aW1pemF0aW9uIG9ubHkgYXBw
bGllcyBmb3IgMkQgY2FudmFzZXMsCisgICAgICAgIHNpbmNlIGl0IGlzIG5vdCBlbnRpcmVseSBj
bGVhciBob3cgdG91Y2hpbmcgdGhlIGRpbWVuc2lvbnMgb2YgYSBXZWJHTAorICAgICAgICBjYW52
YXMgc2hvdWxkIHdvcmsuCisKKyAgICAgICAgVGVzdDogZmFzdC9jYW52YXMvY2FudmFzLXJlc2l6
ZS1hZnRlci1wYWludC13aXRob3V0LWxheW91dC5odG1sICsKKyAgICAgICAgICAgICAgZXhpc3Rp
bmcgbGF5b3V0IHRlc3RzIGZvciBjYW52YXMgcmVzZXR0aW5nLgorCisgICAgICAgICogaHRtbC9I
VE1MQ2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVu
dDo6SFRNTENhbnZhc0VsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1l
bnQ6OnJlc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVJ
bWFnZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Y2xlYXJJ
bWFnZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxD
YW52YXNFbGVtZW50OjpjbGVhckNvcGllZEltYWdlKToKKyAgICAgICAgKiBodG1sL0hUTUxDYW52
YXNFbGVtZW50Lmg6CisgICAgICAgIChIVE1MQ2FudmFzRWxlbWVudCk6CisgICAgICAgICogaHRt
bC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKTogU2F2
ZSB0aGUKKyAgICAgICAgaW5pdGlhbCBncmFwaGljcyBjb250ZXh0IHN0YXRlIHNvIHdlIGNhbiBy
ZXN0b3JlIGl0IHdpdGhvdXQgY3JlYXRpbmcgYQorICAgICAgICBuZXcgY29udGV4dC4KKyAgICAg
ICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6dW53aW5kU3RhdGVTdGFjayk6
CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnJlc2V0KTogTm8g
bmVlZCB0byBub3RpZnkgdGhlCisgICAgICAgIGNvbXBvc2l0b3Igd2hlbiB0aGUgY29udGV4dCBp
cyByZXNldCwgYmVjYXVzZSBjbGVhcmluZyB0aGUgaW1hZ2UgYnVmZmVyCisgICAgICAgIGRvZXMg
dGhlIHNhbWUgdGhpbmcuIFdlIGNhbiBhbHNvIHNraXAgdGhlIG5vdGlmaWNhdGlvbiBpZiB3ZSBk
aWQgbm90CisgICAgICAgIGhhdmUgYW4gaW1hZ2UgYnVmZmVyIGF0IHRoZSB0aW1lIG9mIHRoZSBy
ZXNldCwgYmVjYXVzZSB0aGUgcmVzZXQgd2lsbAorICAgICAgICBub3QgaGF2ZSBhbnkgdmlzdWFs
IGltcGFjdCBpbiB0aGlzIGNhc2UuIEZpbmFsbHksIGlmIHRoZSBjYW52YXMgc2l6ZQorICAgICAg
ICBkaWQgY2hhbmdlLCB0aGUgbm90aWZpY2F0aW9uIGlzIGFsc28gdW5uZWNlc3NhcnkgYmVjYXVz
ZSBvZiB0aGUgY2FsbAorICAgICAgICB0byBSZW5kZXJPYmplY3Q6OnJlcGFpbnQoKSBmcm9tIEhU
TUxDYW52YXNFbGVtZW50OjpyZXNldCgpLgorCiAyMDEyLTAzLTIwICBZdXJ5IFNlbWlraGF0c2t5
ICA8eXVyeXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IHByb3ZpZGUg
Y2xhc3MgbmFtZSBmaWx0ZXIgZm9yICJjb21wYXJpc29uIiB2aWV3IGluIGhlYXAgcHJvZmlsZXIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKaW5kZXggMDdhYjMwOTFl
NTk4Mzg0YTNkYjMwOWM5NTVlMTFhMjhjOWU0ZDJjMy4uODNjMTk2NTczMDkzZGU3NjNhY2FmNzMz
NDhlNzA1OGJkYWY5OTM2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2Fu
dmFzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVu
dC5jcHAKQEAgLTkyLDYgKzkyLDcgQEAgSFRNTENhbnZhc0VsZW1lbnQ6OkhUTUxDYW52YXNFbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2MKICNlbmRpZgog
ICAgICwgbV9vcmlnaW5DbGVhbih0cnVlKQogICAgICwgbV9oYXNDcmVhdGVkSW1hZ2VCdWZmZXIo
ZmFsc2UpCisgICAgLCBtX2RpZENsZWFySW1hZ2VCdWZmZXIoZmFsc2UpCiB7CiAgICAgQVNTRVJU
KGhhc1RhZ05hbWUoY2FudmFzVGFnKSk7CiB9CkBAIC0yNTMsNyArMjU0LDE0IEBAIHZvaWQgSFRN
TENhbnZhc0VsZW1lbnQ6OnJlc2V0KCkKICAgICB9CiAKICAgICBJbnRTaXplIG9sZFNpemUgPSBz
aXplKCk7Ci0gICAgc2V0U3VyZmFjZVNpemUoSW50U2l6ZSh3LCBoKSk7IC8vIFRoZSBpbWFnZSBi
dWZmZXIgZ2V0cyBjbGVhcmVkIGhlcmUuCisgICAgLy8gSWYgdGhlIHNpemUgb2YgYW4gZXhpc3Rp
bmcgYnVmZmVyIG1hdGNoZXMsIHdlIGNhbiBqdXN0IGNsZWFyIGl0IGluc3RlYWQgb2YgcmVhbGxv
Y2F0aW5nLgorICAgIC8vIFRoaXMgb3B0aW1pemF0aW9uIGlzIG9ubHkgZG9uZSBmb3IgMkQgY2Fu
dmFzZXMgZm9yIG5vdy4KKyAgICBpZiAobV9oYXNDcmVhdGVkSW1hZ2VCdWZmZXIgJiYgb2xkU2l6
ZSA9PSBJbnRTaXplKHcsIGgpICYmICghbV9jb250ZXh0IHx8IG1fY29udGV4dC0+aXMyZCgpKSkg
eworICAgICAgICBpZiAoIW1fZGlkQ2xlYXJJbWFnZUJ1ZmZlcikKKyAgICAgICAgICAgIGNsZWFy
SW1hZ2VCdWZmZXIoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBzZXRTdXJmYWNlU2l6
ZShJbnRTaXplKHcsIGgpKTsKIAogI2lmIEVOQUJMRShXRUJHTCkKICAgICBpZiAobV9jb250ZXh0
ICYmIG1fY29udGV4dC0+aXMzZCgpICYmIG9sZFNpemUgIT0gc2l6ZSgpKQpAQCAtMjYyLDggKzI3
MCwxMyBAQCB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpyZXNldCgpCiAKICAgICBpZiAoUmVuZGVy
T2JqZWN0KiByZW5kZXJlciA9IHRoaXMtPnJlbmRlcmVyKCkpIHsKICAgICAgICAgaWYgKG1fcmVu
ZGVyZXJJc0NhbnZhcykgewotICAgICAgICAgICAgaWYgKG9sZFNpemUgIT0gc2l6ZSgpKQorICAg
ICAgICAgICAgaWYgKG9sZFNpemUgIT0gc2l6ZSgpKSB7CiAgICAgICAgICAgICAgICAgdG9SZW5k
ZXJIVE1MQ2FudmFzKHJlbmRlcmVyKS0+Y2FudmFzU2l6ZUNoYW5nZWQoKTsKKyNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgICAgICAgICAgICAgaWYgKHJlbmRlckJveCgpICYm
IHJlbmRlckJveCgpLT5oYXNMYXllcigpICYmIHJlbmRlckJveCgpLT5sYXllcigpLT5oYXNBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nKCkpCisgICAgICAgICAgICAgICAgICAgIHJlbmRlckJveCgpLT5s
YXllcigpLT5jb250ZW50Q2hhbmdlZChSZW5kZXJMYXllcjo6Q2FudmFzQ2hhbmdlZCk7CisjZW5k
aWYKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmIChoYWRJbWFnZUJ1ZmZlcikKICAgICAg
ICAgICAgICAgICByZW5kZXJlci0+cmVwYWludCgpOwogICAgICAgICB9CkBAIC00OTgsNiArNTEx
LDcgQEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIoKSBjb25zdAog
ICAgIEFTU0VSVCghbV9pbWFnZUJ1ZmZlcik7CiAKICAgICBtX2hhc0NyZWF0ZWRJbWFnZUJ1ZmZl
ciA9IHRydWU7CisgICAgbV9kaWRDbGVhckltYWdlQnVmZmVyID0gdHJ1ZTsKIAogICAgIEZsb2F0
U2l6ZSBsb2dpY2FsU2l6ZSA9IHNpemUoKTsKICAgICBGbG9hdFNpemUgZGV2aWNlU2l6ZSA9IGNv
bnZlcnRMb2dpY2FsVG9EZXZpY2UobG9naWNhbFNpemUpOwpAQCAtNTczLDkgKzU4NywyNyBAQCBJ
bWFnZSogSFRNTENhbnZhc0VsZW1lbnQ6OmNvcGllZEltYWdlKCkgY29uc3QKICAgICByZXR1cm4g
bV9jb3BpZWRJbWFnZS5nZXQoKTsKIH0KIAordm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6Y2xlYXJJ
bWFnZUJ1ZmZlcigpIGNvbnN0Cit7CisgICAgQVNTRVJUKG1faGFzQ3JlYXRlZEltYWdlQnVmZmVy
KTsKKyAgICBBU1NFUlQoIW1fZGlkQ2xlYXJJbWFnZUJ1ZmZlcik7CisKKyAgICBpZiAoIW1fY29u
dGV4dCkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9kaWRDbGVhckltYWdlQnVmZmVyID0gdHJ1
ZTsKKworICAgIGlmIChtX2NvbnRleHQtPmlzMmQoKSkgeworICAgICAgICBDYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQqIGNvbnRleHQyRCA9IHN0YXRpY19jYXN0PENhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRCo+KG1fY29udGV4dC5nZXQoKSk7CisgICAgICAgIC8vIE5vIG5lZWQgdG8gdW5kbyB0cmFu
c2Zvcm1zL2NsaXAvZXRjLiBiZWNhdXNlIHdlIGFyZSBjYWxsZWQgcmlnaHQgYWZ0ZXIgdGhlIGNv
bnRleHQgaXMgcmVzZXQuCisgICAgICAgIGNvbnRleHQyRC0+Y2xlYXJSZWN0KDAsIDAsIHdpZHRo
KCksIGhlaWdodCgpKTsKKyAgICB9Cit9CisKIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OmNsZWFy
Q29waWVkSW1hZ2UoKQogewogICAgIG1fY29waWVkSW1hZ2UuY2xlYXIoKTsKKyAgICBtX2RpZENs
ZWFySW1hZ2VCdWZmZXIgPSBmYWxzZTsKIH0KIAogQWZmaW5lVHJhbnNmb3JtIEhUTUxDYW52YXNF
bGVtZW50OjpiYXNlVHJhbnNmb3JtKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZh
c0VsZW1lbnQuaAppbmRleCBlMmM0ODg4ZTViNGI2NDU2NTRmYWQ0YWU5ODI4YmRlYWY0MDU2Y2Iy
Li45MmQ3NjI1OTM4NzkyMDI1YWU0Yzg3OTYxODNkNTA3NDdjOGM4YzM5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCkBAIC0xNDMsNiArMTQzLDcgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHJlc2V0KCk7CiAKICAgICB2b2lkIGNyZWF0ZUltYWdlQnVmZmVyKCkgY29uc3Q7
CisgICAgdm9pZCBjbGVhckltYWdlQnVmZmVyKCkgY29uc3Q7CiAKICAgICB2b2lkIHNldFN1cmZh
Y2VTaXplKGNvbnN0IEludFNpemUmKTsKIApAQCAtMTY2LDYgKzE2Nyw3IEBAIHByaXZhdGU6CiAK
ICAgICAvLyBtX2NyZWF0ZWRJbWFnZUJ1ZmZlciBtZWFucyB3ZSB0cmllZCB0byBtYWxsb2MgdGhl
IGJ1ZmZlci4gIFdlIGRpZG4ndCBuZWNlc3NhcmlseSBnZXQgaXQuCiAgICAgbXV0YWJsZSBib29s
IG1faGFzQ3JlYXRlZEltYWdlQnVmZmVyOworICAgIG11dGFibGUgYm9vbCBtX2RpZENsZWFySW1h
Z2VCdWZmZXI7CiAgICAgbXV0YWJsZSBPd25QdHI8SW1hZ2VCdWZmZXI+IG1faW1hZ2VCdWZmZXI7
CiAgICAgCiAgICAgbXV0YWJsZSBSZWZQdHI8SW1hZ2U+IG1fcHJlc2VudGVkSW1hZ2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJELmNwcAppbmRleCAyNzliMmExYzMwOTI3NWE4NDk5Y2QyZGQ4YWMyOTE1MzMxNmI1MWIyLi5l
Y2E1NDE5MmIzODI3ZTliY2Q5OWI2OTIwNGEyNzVhOTY5MWZjMDM5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAK
QEAgLTEyNCw2ICsxMjQsOCBAQCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OkNhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRChIVE1MQ2FudmFzRWxlbWVudCogY2FudmFzLCBibwogI2lmICFFTkFCTEUo
REFTSEJPQVJEX1NVUFBPUlQpCiAgICAgQVNTRVJUX1VOVVNFRCh1c2VzRGFzaGJvYXJkQ29tcGF0
aWJpbGl0eU1vZGUsICF1c2VzRGFzaGJvYXJkQ29tcGF0aWJpbGl0eU1vZGUpOwogI2VuZGlmCisg
ICAgaWYgKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCA9IGNhbnZhcy0+ZHJhd2luZ0NvbnRleHQo
KSkKKyAgICAgICAgY29udGV4dC0+c2F2ZSgpOwogfQogCiB2b2lkIENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRDo6dW53aW5kU3RhdGVTdGFjaygpCkBAIC0xMzMsNyArMTM1LDcgQEAgdm9pZCBDYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnVud2luZFN0YXRlU3RhY2soKQogICAgIC8vIEdyYXBoaWNz
Q29udGV4dCBkdG9yLgogICAgIGlmIChzaXplX3Qgc3RhY2tTaXplID0gbV9zdGF0ZVN0YWNrLnNp
emUoKSkgewogICAgICAgICBpZiAoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0ID0gY2FudmFzKCkt
PmV4aXN0aW5nRHJhd2luZ0NvbnRleHQoKSkgewotICAgICAgICAgICAgd2hpbGUgKC0tc3RhY2tT
aXplKQorICAgICAgICAgICAgd2hpbGUgKHN0YWNrU2l6ZS0tKQogICAgICAgICAgICAgICAgIGNv
bnRleHQtPnJlc3RvcmUoKTsKICAgICAgICAgfQogICAgIH0KQEAgLTE2MSwxMSArMTYzLDggQEAg
dm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnJlc2V0KCkKICAgICBtX3N0YXRlU3RhY2su
cmVzaXplKDEpOwogICAgIG1fc3RhdGVTdGFjay5maXJzdCgpID0gU3RhdGUoKTsKICAgICBtX3Bh
dGguY2xlYXIoKTsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0gICAgUmVuZGVy
Qm94KiByZW5kZXJCb3ggPSBjYW52YXMoKS0+cmVuZGVyQm94KCk7Ci0gICAgaWYgKHJlbmRlckJv
eCAmJiByZW5kZXJCb3gtPmhhc0xheWVyKCkgJiYgcmVuZGVyQm94LT5sYXllcigpLT5oYXNBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nKCkpCi0gICAgICAgIHJlbmRlckJveC0+bGF5ZXIoKS0+Y29udGVu
dENoYW5nZWQoUmVuZGVyTGF5ZXI6OkNhbnZhc0NoYW5nZWQpOwotI2VuZGlmCisgICAgaWYgKEdy
YXBoaWNzQ29udGV4dCogY29udGV4dCA9IGNhbnZhcygpLT5kcmF3aW5nQ29udGV4dCgpKQorICAg
ICAgICBjb250ZXh0LT5zYXZlKCk7CiB9CiAKIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6U3Rh
dGU6OlN0YXRlKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCA2Y2Q3ZmM4MjI0ODk3Yjg5ZDRmNGM1YTcwYTZkNmNlNTI0Y2Jh
MDhkLi5jNDI2YmJiNzRjYTViOWFhYWUzZTNjNDk2NTUzZDE1MTQxMGM0Y2VlIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMzIgQEAKKzIwMTItMDMtMTUgIFNhbWkgS3lvc3RpbGEgIDxza3lvc3RpbEBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV1c2UgYnVmZmVyIGFsbG9jYXRpb24gaWYgY2FudmFzIHNpemUg
ZG9lcyBub3QgY2hhbmdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04MDg3MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBsYXlvdXQgdGVzdCB0byBjaGVjayBjYW52YXMgcmVzaXppbmcgd2l0aG91dCBj
aGFuZ2luZyBpdHMgbGF5b3V0IHNpemUuCisKKyAgICAgICAgV2UgYWxzbyB1cGRhdGUgdGhlIGV4
cGVjdGVkIGltYWdlIG9uZSBjYW52YXMgY2xlYXJpbmcgdGVzdC4gVGhlIHRlc3QKKyAgICAgICAg
aXMgc2V0dGluZyB0aGUgc2l6ZSBvZiBhIGNhbnZhcyBhbmQgZXhwZWN0aW5nIGl0IHRvIGJlIGNs
ZWFyZWQgaW4gdGhlIHByb2Nlc3MuCisgICAgICAgIFdpdGggdGhlIG9wdGltaXphdGlvbiB0byBy
ZXRhaW4gdGhlIHVuZGVybHlpbmcgSW1hZ2VCdWZmZXIsIHdlIG5vIGxvbmdlciBjYWxsCisgICAg
ICAgIFJlbmRlclJlcGxhY2VkOjpyZXBhaW50KCkgYXMgYSBwYXJ0IG9mIHRoaXMgcHJvY2Vzcy4g
VGhpcyBmdW5jdGlvbiB1c2VkIHRvCisgICAgICAgIHJlcGFpbnQgYm90aCB0aGUgY2FudmFzIGl0
c2VsZiAoMTAweDUwKSBhcyB3ZWxsIGFzIGl0cyBsb2NhbCBzZWxlY3Rpb24KKyAgICAgICAgcmVj
dGFuZ2xlICgxMDB4NTQpLgorCisgICAgICAgIEluIHRoaXMgY2FzZSB0aGUgbG9jYWwgc2VsZWN0
aW9uIHJlY3RhbmdsZSBpcyBsYXJnZXIgdGhhbiB0aGUgY2FudmFzIGJlY2F1c2UKKyAgICAgICAg
dGhlIGNhbnZhcyBpcyBjb250YWluZWQgd2l0aGluIGFuIGFub255bW91cyBSZW5kZXJCbG9jayB0
aGF0IGFsc28gaGFzIHR3byBlbXB0eQorICAgICAgICB0ZXh0IG5vZGVzLiBUaGUgZXh0cmEgNCBw
aXhlbHMgYXJlIG5lZWRlZCBmb3IgZHJhd2luZyB0aGUgc2VsZWN0aW9uIHJlY3RhbmdsZQorICAg
ICAgICBhcm91bmQgYW55IGRlc2NlbmRlcnMgaW4gdGhlIHRoZSB0ZXh0IG9mIHRob3NlIG5vZGVz
LgorCisgICAgICAgIFNpbmNlIGNsZWFyaW5nIHRoZSBjYW52YXMgaGFzIG5vIGVmZmVjdCBvbiB0
aGUgc2VsZWN0aW9uIHJlY3RhbmdsZSwgd2Ugb25seQorICAgICAgICBuZWVkIHRvIHJlcGFpbnQg
dGhlIGFyZWEgb2YgdGhlIGNhbnZhcyBpdHNlbGYuCisKKyAgICAgICAgKiBmYXN0L2NhbnZhcy9j
YW52YXMtcmVzaXplLWFmdGVyLXBhaW50LXdpdGhvdXQtbGF5b3V0Lmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvY2FudmFzL2NhbnZhcy1yZXNpemUtYWZ0ZXItcGFpbnQtd2l0aG91dC1sYXlv
dXQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9mYXN0L2NhbnZhcy9jYW52YXMtcmVzaXplLWFmdGVyLXBhaW50LXdpdGhvdXQtbGF5b3V0LWV4
cGVjdGVkLnBuZzogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZmFz
dC9jYW52YXMvc2V0V2lkdGhSZXNldEFmdGVyRm9yY2VkUmVuZGVyLWV4cGVjdGVkLnBuZzogVXBk
YXRlZC4KKwogMjAxMi0wMy0yMCAgTmlrb2xhcyBaaW1tZXJtYW5uICA8bnppbW1lcm1hbm5Acmlt
LmNvbT4KIAogICAgICAgICBNYWtlIGFuaW1WYWwgc3VwcG9ydCB0eXBlLXNhZmUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1yZXNpemUtYWZ0ZXItcGFpbnQtd2l0
aG91dC1sYXlvdXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFz
LXJlc2l6ZS1hZnRlci1wYWludC13aXRob3V0LWxheW91dC1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOGIxMzc4OTE3OTFmZTk2OTI3YWQ3OGU2NGIwYWFkN2JkZWQwOGJkYwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1yZXNpemUtYWZ0ZXItcGFpbnQt
d2l0aG91dC1sYXlvdXQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLXJlc2l6ZS1hZnRlci1wYWludC13aXRob3V0
LWxheW91dC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLXJlc2l6ZS1hZnRl
ci1wYWludC13aXRob3V0LWxheW91dC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZhYTAxYzljYzk2M2FhMzNk
M2UxOTdiODY1NThiZmYxMTdkMDk4NTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2NhbnZhcy9jYW52YXMtcmVzaXplLWFmdGVyLXBhaW50LXdpdGhvdXQtbGF5b3V0Lmh0bWwK
QEAgLTAsMCArMSwzOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tIENoZWNrIHRoYXQgcmVzaXpp
bmcgYSAocG90ZW50aWFsbHkgYWNjZWxlcmF0ZWQpIGNhbnZhcyBwcm9wZXJseSBjbGVhcnMgaXRz
CisgICAgIGNvbnRlbnRzIGV2ZW4gaWYgdGhlIGxheW91dCBzaXplIG9mIHRoZSBjYW52YXMgZG9l
cyBub3QgY2hhbmdlLiBFeHBlY3RlZAorICAgICBvdXRwdXQgaXMgYSBibGFuayBjYW52YXMuCisg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDg3MSAtLT4KKzxo
dG1sPgorICA8aGVhZD4KKyAgICA8c3R5bGU+CisgICAgICAjY2FudmFzIHsKKyAgICAgICAgb3V0
bGluZTogc29saWQgMXB4IGJsYWNrOworICAgICAgICB3aWR0aDogMzAwcHg7CisgICAgICAgIGhl
aWdodDogMzAwcHg7CisgICAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3JlcGFpbnQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5k
dW1wQXNUZXh0KHRydWUpOworCisgICAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICB2
YXIgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NhbnZhcycpOworICAgICAgICB2
YXIgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7CisgICAgICAgIGN0eC5maWxsU3R5bGUg
PSAncmVkJzsKKyAgICAgICAgY3R4LmZpbGxSZWN0KDAsIDAsIDMwMCwgMzAwKTsKKyAgICAgICAg
cnVuUmVwYWludFRlc3QoKTsKKyAgICAgIH0KKworICAgICAgZnVuY3Rpb24gcmVwYWludFRlc3Qo
KSB7CisgICAgICAgIHZhciBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2FudmFz
Jyk7CisgICAgICAgIC8vIFRoaXMgY2hhbmdlcyB0aGUgcmVzb2x1dGlvbiBvZiB0aGUgY2FudmFz
IGJ1dCBrZWVwcyBpdHMgbGF5b3V0IHNpemUgY29uc3RhbnQuCisgICAgICAgIGNhbnZhcy53aWR0
aCA9IGNhbnZhcy53aWR0aCAvIDI7CisgICAgICB9CisgICAgPC9zY3JpcHQ+CisgIDwvaGVhZD4K
KyAgPGJvZHkgb25sb2FkPSJydW5UZXN0KCk7Ij4KKyAgICA8Y2FudmFzIGlkPSJjYW52YXMiIHdp
ZHRoPSIzMDAiIGhlaWdodD0iMzAwIi8+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2Zhc3QvY2FudmFzL2NhbnZhcy1y
ZXNpemUtYWZ0ZXItcGFpbnQtd2l0aG91dC1sYXlvdXQtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC9jYW52YXMvY2FudmFzLXJlc2l6ZS1hZnRl
ci1wYWludC13aXRob3V0LWxheW91dC1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTFmMTQ1YzYw
MGQzODFmMjk3M2YzOTMyNGU2MmIxOWQ0OTJhNjI1MQpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwg
Mjg5OQp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHl+eVV7K3ZZVjJhPmkwKlopPWheaGxBJUBXcyRs
SGBvazxtfT9vVG4wbCsKelZ+YUZYTG5HNTkzLWQlSDw3NStLcWNwPmBSMH5zTXZuMHpqJVFXYElk
KXBacHhTbzJ0SUVHWnJkMyhuJnVmPjRECnopbHVmSD57KElFckkqdF5IJi0jfiZlQU9XZHxFdl4+
NVFkMDFBfj0pSVg/cUtnO1hPZWdNZUBaMUFgJDdxazMrZwp6WlF0V1p2SW5mfDB+dm49SiNYQmFk
cHFqJkRjSiteJHZ3Tig4OXBmYngxZWptRy1PbCtZdUp0ayVWQEJtV3crNUoKekcyKVdNI19SUiQk
dnhXVDM9QjVNRGloWGopd3s+ST1sMXUlPz5ISDE0aGJ0VklRUyRtRzh8ek1We3BoaFdCTDliCnox
SCVXNnliVE50TmxlQGYzVG1UXyhMZmtZMzhUNFNNQ084VCteaWJ+UEErbik+aiQ9eTg5Wko2VC1H
QHlHeXdvYgpDeTNrKyUKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2Zhc3QvY2FudmFzL3NldFdpZHRoUmVzZXRB
ZnRlckZvcmNlZFJlbmRlci1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS1saW51eC9mYXN0L2NhbnZhcy9zZXRXaWR0aFJlc2V0QWZ0ZXJGb3JjZWRSZW5kZXItZXhw
ZWN0ZWQucG5nCmluZGV4IDA5MmIwZThlOWFiMjllYzdmNWExYmYwM2Y1MTYxYmI5YjM3NmY0YmUu
LjYyZDA3ZWYwMTZkNmY4ODhmOTRlYjZiYThhZmI4YWU5NmUyZGI1YmIgMTAwNjQ0CkdJVCBiaW5h
cnkgcGF0Y2gKZGVsdGEgOTMKemNtWjJxd1ozWUNrJX4hRFFtVGNpVk4kWSpuVDMmSWEkPSUhbDJL
WX1ZRmQpOWt4e2EjeCNqS1BmVnohZ0dtVXdECnhkVjcyR2Nrd2JYRnVXSWl4QX4pcTJGR0x2KTMw
THg8QGRlKkErZTNBXyYhakUhUEN7eFd0fiQoNjk2YmpCNHoqcAoKZGVsdGEgOTgKemNtVi1vMEc8
REBkYXJ0ckc5KT07RiohMTFHJkQ2YUZmbjh8Vz8/cEZJNXNoM0ZmY1BURyV6K1lHLTJHVkdJWCg0
CnpuS1AwQjchSihUKngyfXsrVy1JbkBMdTUjdnRjJjQyRDNtbE9hZDFGQUVLZjc3KV9QS2YmYyZq
MDcqcW9NNk48JApFZzFkTW0zSUc1QQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtLWxpbnV4L3BsYXRmb3JtL2Nocm9taXVtL3ZpcnR1YWwvZ3B1L2Zhc3QvY2FudmFz
L2NhbnZhcy1yZXNpemUtYWZ0ZXItcGFpbnQtd2l0aG91dC1sYXlvdXQtZXhwZWN0ZWQucG5nIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvcGxhdGZvcm0vY2hyb21pdW0vdmly
dHVhbC9ncHUvZmFzdC9jYW52YXMvY2FudmFzLXJlc2l6ZS1hZnRlci1wYWludC13aXRob3V0LWxh
eW91dC1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDkwMWNhMTRlZDMzYjBjYjc5NzBkY2NiODUz
ZDc3NTNiNmVjODUyMQpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMjg3Ngp6Y21lQVNATj8ob2xI
eWB1VkJxIWlhMHl+eVV7K3ZZVjJhPmkwKlopPWheaGxBJUBXcyRsSGBvazxtfT9vVCF6SGQKenEq
UC1JPEsjck0pVT1jfDw1WXRyVi14ZV82Y2doViFeRzVOQmcxMlNFVkNJSHhYeVhISUVHWnJkMyhv
QD4jJV9VCnpnSmItTXxOR2IyREVNdVV4TiZBbVExUjNWI1MzZTtALVotMiZBLWRjel82JEgwMjR6
OHJ3JjhJMz4zIVA+OHAqNAp6S2clNEAtQGsmdj0xT1VUdFk2dVV2JHBJSGNHP0lzRiZ0cUxWe3Ff
RVU+cyRQMkV1NGM3fGpLdnhxeV5oYUlSazMKenhjSXBZMUgqZDU/NnI0fGZueykpeClYWiZpJi1M
JWllUm0lTXVUTkVTa1Qlb3FlKWBlQiNCemFsbH1zbXFVMyU/ClExRG5HUHAwMGlfPnpvcHIwNTxv
fFJSOTEwCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133065</attachid>
            <date>2012-03-21 10:09:00 -0700</date>
            <delta_ts>2012-03-22 04:33:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80871-20120321170858.patch</filename>
            <type>text/plain</type>
            <size>14853</size>
            <attacher name="Sami Kyostila">skyostil</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExNTE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWY2YmRkZjE1YzFkNDIz
MzY0MTVjMmMzOWI1NzczZTU1OGEyMmU5Ni4uYTkyZGU1NDJlODIzYzYyNmQ1NDRkYzA2MGIyYzUx
ZmJlZGQwZWU0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDEyLTAzLTE1ICBTYW1p
IEt5b3N0aWxhICA8c2t5b3N0aWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldXNlIGJ1ZmZl
ciBhbGxvY2F0aW9uIGlmIGNhbnZhcyBzaXplIGRvZXMgbm90IGNoYW5nZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA4NzEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJZiB0aGUgdXNlciBjaGFuZ2VzIHRo
ZSB3aWR0aCBvciBoZWlnaHQgYXR0cmlidXRlcyBvZiBhIGNhbnZhcyBlbGVtZW50LAorICAgICAg
ICB0aGUgY29udGVudHMgb2YgdGhlIGNhbnZhcyBzaG91bGQgYmUgY2xlYXJlZCBhbmQgdGhlIGNv
bnRleHQgc3RhdGUKKyAgICAgICAgc2hvdWxkIGJlIHJlc2V0LiBUaGlzIGhhcyBiZWNvbWUgYSBj
b21tb24gaWRpb20gdG8gY2xlYXIgdGhlIGNhbnZhcworICAgICAgICAiZWZmaWNpZW50bHkiIGF0
IHRoZSBzdGFydCBvZiBhIGZyYW1lLgorCisgICAgICAgIFByZXZpb3VzbHksIHRoaXMgY29kZSBw
YXRoIHRyaWdnZXJlZCBhIGZ1bGwgcmVhbGxvY2F0aW9uIG9mIHRoZSBpbWFnZQorICAgICAgICBi
dWZmZXIgYmFja2luZyB0aGUgY2FudmFzLCBsZWFkaW5nIHRvIHJlZHVjZWQgcGVyZm9ybWFuY2Uu
IFRoaXMgcGF0Y2gKKyAgICAgICAgaW1wbGVtZW50cyBhbiBvcHRpbWl6YXRpb24gd2hlcmUgd2Ug
cmV1c2UgdGhlIHByZXZpb3VzIGltYWdlIGJ1ZmZlcgorICAgICAgICBhbGxvY2F0aW9uIGlmIHRo
ZSBzaXplIG9mIHRoZSBjYW52YXMgZGlkIG5vdCBjaGFuZ2UuIEFsc28sIGluc3RlYWQgb2YKKyAg
ICAgICAgY2xlYXJpbmcgdGhlIGNhbnZhcyBldmVyeSB0aW1lIGl0cyBkaW1lbnNpb25zIGFyZSB0
b3VjaGVkLCB3ZSBvbmx5IGNsZWFyCisgICAgICAgIGlmIGFueXRoaW5nIGhhcyBiZWVuIGRyYXdu
IGludG8gdGhlIGNhbnZhcyBzaW5jZSBpdCB3YXMgcHJldmlvdXNseQorICAgICAgICBjbGVhcmVk
LgorCisgICAgICAgIE5vdGUgdGhhdCBmb3Igbm93IHRoaXMgb3B0aW1pemF0aW9uIG9ubHkgYXBw
bGllcyBmb3IgMkQgY2FudmFzZXMsCisgICAgICAgIHNpbmNlIGl0IGlzIG5vdCBlbnRpcmVseSBj
bGVhciBob3cgdG91Y2hpbmcgdGhlIGRpbWVuc2lvbnMgb2YgYSBXZWJHTAorICAgICAgICBjYW52
YXMgc2hvdWxkIHdvcmsuCisKKyAgICAgICAgVGVzdDogZmFzdC9jYW52YXMvY2FudmFzLXJlc2l6
ZS1hZnRlci1wYWludC13aXRob3V0LWxheW91dC5odG1sICsKKyAgICAgICAgICAgICAgZXhpc3Rp
bmcgbGF5b3V0IHRlc3RzIGZvciBjYW52YXMgcmVzZXR0aW5nLgorCisgICAgICAgICogaHRtbC9I
VE1MQ2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVu
dDo6SFRNTENhbnZhc0VsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1l
bnQ6OnJlc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVJ
bWFnZUJ1ZmZlcik6IFNhdmUgdGhlIGluaXRpYWwKKyAgICAgICAgZ3JhcGhpY3MgY29udGV4dCBz
dGF0ZSBzbyB3ZSBjYW4gcmVzdG9yZSBpdCB3aXRob3V0IGNyZWF0aW5nIGEgbmV3CisgICAgICAg
IGNvbnRleHQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Y2xlYXJJbWFn
ZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52
YXNFbGVtZW50OjpjbGVhckNvcGllZEltYWdlKToKKyAgICAgICAgKiBodG1sL0hUTUxDYW52YXNF
bGVtZW50Lmg6CisgICAgICAgIChIVE1MQ2FudmFzRWxlbWVudCk6CisgICAgICAgICogaHRtbC9j
YW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6cmVzZXQpOiBObyBuZWVkIHRvIG5vdGlmeSB0aGUKKyAg
ICAgICAgY29tcG9zaXRvciB3aGVuIHRoZSBjb250ZXh0IGlzIHJlc2V0LCBiZWNhdXNlIGNsZWFy
aW5nIHRoZSBpbWFnZSBidWZmZXIKKyAgICAgICAgZG9lcyB0aGUgc2FtZSB0aGluZy4gV2UgY2Fu
IGFsc28gc2tpcCB0aGUgbm90aWZpY2F0aW9uIGlmIHdlIGRpZCBub3QKKyAgICAgICAgaGF2ZSBh
biBpbWFnZSBidWZmZXIgYXQgdGhlIHRpbWUgb2YgdGhlIHJlc2V0LCBiZWNhdXNlIHRoZSByZXNl
dCB3aWxsCisgICAgICAgIG5vdCBoYXZlIGFueSB2aXN1YWwgaW1wYWN0IGluIHRoaXMgY2FzZS4g
RmluYWxseSwgaWYgdGhlIGNhbnZhcyBzaXplCisgICAgICAgIGRpZCBjaGFuZ2UsIHRoZSBub3Rp
ZmljYXRpb24gaXMgYWxzbyB1bm5lY2Vzc2FyeSBiZWNhdXNlIG9mIHRoZSBjYWxsCisgICAgICAg
IHRvIFJlbmRlck9iamVjdDo6cmVwYWludCgpIGZyb20gSFRNTENhbnZhc0VsZW1lbnQ6OnJlc2V0
KCkuCisKIDIwMTItMDMtMjEgIEpvbmF0aGFuIERvbmcgIDxqb25hdGhhbi5kb25nQHRvcmNobW9i
aWxlLmNvbS5jbj4KIAogICAgICAgICBbQmxhY2tCZXJyeV0gVXBzdHJlYW1pbmcgYmxhY2tiZXJy
eSBzcGVjaWZpYyBjc3MgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
Q2FudmFzRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50
LmNwcAppbmRleCAwN2FiMzA5MWU1OTgzODRhM2RiMzA5Yzk1NWUxMWEyOGM5ZTRkMmMzLi4yNDE1
NjI4MWVjMGVmODIyNmVlOTFjYWQ2NTNjMDQ2ZTFkYjJiZDc2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcApAQCAtOTIsNiArOTIsNyBAQCBIVE1MQ2FudmFzRWxl
bWVudDo6SFRNTENhbnZhc0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQqIGRvYwogI2VuZGlmCiAgICAgLCBtX29yaWdpbkNsZWFuKHRydWUpCiAgICAgLCBtX2hh
c0NyZWF0ZWRJbWFnZUJ1ZmZlcihmYWxzZSkKKyAgICAsIG1fZGlkQ2xlYXJJbWFnZUJ1ZmZlcihm
YWxzZSkKIHsKICAgICBBU1NFUlQoaGFzVGFnTmFtZShjYW52YXNUYWcpKTsKIH0KQEAgLTI0Nywx
MyArMjQ4LDI2IEBAIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OnJlc2V0KCkKICAgICBpZiAoIW9r
IHx8IGggPCAwKQogICAgICAgICBoID0gRGVmYXVsdEhlaWdodDsKIAorICAgIGlmIChtX2NvbnRl
eHRTdGF0ZVNhdmVyKSB7CisgICAgICAgIC8vIFJlc2V0IHRvIHRoZSBpbml0aWFsIGdyYXBoaWNz
IGNvbnRleHQgc3RhdGUuCisgICAgICAgIG1fY29udGV4dFN0YXRlU2F2ZXItPnJlc3RvcmUoKTsK
KyAgICAgICAgbV9jb250ZXh0U3RhdGVTYXZlci0+c2F2ZSgpOworICAgIH0KKwogICAgIGlmICht
X2NvbnRleHQgJiYgbV9jb250ZXh0LT5pczJkKCkpIHsKICAgICAgICAgQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEKiBjb250ZXh0MkQgPSBzdGF0aWNfY2FzdDxDYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQqPihtX2NvbnRleHQuZ2V0KCkpOwogICAgICAgICBjb250ZXh0MkQtPnJlc2V0KCk7CiAgICAg
fQogCiAgICAgSW50U2l6ZSBvbGRTaXplID0gc2l6ZSgpOwotICAgIHNldFN1cmZhY2VTaXplKElu
dFNpemUodywgaCkpOyAvLyBUaGUgaW1hZ2UgYnVmZmVyIGdldHMgY2xlYXJlZCBoZXJlLgorICAg
IC8vIElmIHRoZSBzaXplIG9mIGFuIGV4aXN0aW5nIGJ1ZmZlciBtYXRjaGVzLCB3ZSBjYW4ganVz
dCBjbGVhciBpdCBpbnN0ZWFkIG9mIHJlYWxsb2NhdGluZy4KKyAgICAvLyBUaGlzIG9wdGltaXph
dGlvbiBpcyBvbmx5IGRvbmUgZm9yIDJEIGNhbnZhc2VzIGZvciBub3cuCisgICAgaWYgKG1faGFz
Q3JlYXRlZEltYWdlQnVmZmVyICYmIG9sZFNpemUgPT0gSW50U2l6ZSh3LCBoKSAmJiAoIW1fY29u
dGV4dCB8fCBtX2NvbnRleHQtPmlzMmQoKSkpIHsKKyAgICAgICAgaWYgKCFtX2RpZENsZWFySW1h
Z2VCdWZmZXIpCisgICAgICAgICAgICBjbGVhckltYWdlQnVmZmVyKCk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisgICAgc2V0U3VyZmFjZVNpemUoSW50U2l6ZSh3LCBoKSk7CiAKICNpZiBFTkFC
TEUoV0VCR0wpCiAgICAgaWYgKG1fY29udGV4dCAmJiBtX2NvbnRleHQtPmlzM2QoKSAmJiBvbGRT
aXplICE9IHNpemUoKSkKQEAgLTI2Miw4ICsyNzYsMTMgQEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVu
dDo6cmVzZXQoKQogCiAgICAgaWYgKFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSB0aGlzLT5yZW5k
ZXJlcigpKSB7CiAgICAgICAgIGlmIChtX3JlbmRlcmVySXNDYW52YXMpIHsKLSAgICAgICAgICAg
IGlmIChvbGRTaXplICE9IHNpemUoKSkKKyAgICAgICAgICAgIGlmIChvbGRTaXplICE9IHNpemUo
KSkgewogICAgICAgICAgICAgICAgIHRvUmVuZGVySFRNTENhbnZhcyhyZW5kZXJlciktPmNhbnZh
c1NpemVDaGFuZ2VkKCk7CisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgICAg
ICAgICAgICAgIGlmIChyZW5kZXJCb3goKSAmJiByZW5kZXJCb3goKS0+aGFzTGF5ZXIoKSAmJiBy
ZW5kZXJCb3goKS0+bGF5ZXIoKS0+aGFzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpKQorICAgICAg
ICAgICAgICAgICAgICByZW5kZXJCb3goKS0+bGF5ZXIoKS0+Y29udGVudENoYW5nZWQoUmVuZGVy
TGF5ZXI6OkNhbnZhc0NoYW5nZWQpOworI2VuZGlmCisgICAgICAgICAgICB9CiAgICAgICAgICAg
ICBpZiAoaGFkSW1hZ2VCdWZmZXIpCiAgICAgICAgICAgICAgICAgcmVuZGVyZXItPnJlcGFpbnQo
KTsKICAgICAgICAgfQpAQCAtMzUzLDYgKzM3Miw3IEBAIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6
OnNldFN1cmZhY2VTaXplKGNvbnN0IEludFNpemUmIHNpemUpCiB7CiAgICAgbV9zaXplID0gc2l6
ZTsKICAgICBtX2hhc0NyZWF0ZWRJbWFnZUJ1ZmZlciA9IGZhbHNlOworICAgIG1fY29udGV4dFN0
YXRlU2F2ZXIuY2xlYXIoKTsKICAgICBtX2ltYWdlQnVmZmVyLmNsZWFyKCk7CiAgICAgY2xlYXJD
b3BpZWRJbWFnZSgpOwogfQpAQCAtNDk4LDYgKzUxOCw3IEBAIHZvaWQgSFRNTENhbnZhc0VsZW1l
bnQ6OmNyZWF0ZUltYWdlQnVmZmVyKCkgY29uc3QKICAgICBBU1NFUlQoIW1faW1hZ2VCdWZmZXIp
OwogCiAgICAgbV9oYXNDcmVhdGVkSW1hZ2VCdWZmZXIgPSB0cnVlOworICAgIG1fZGlkQ2xlYXJJ
bWFnZUJ1ZmZlciA9IHRydWU7CiAKICAgICBGbG9hdFNpemUgbG9naWNhbFNpemUgPSBzaXplKCk7
CiAgICAgRmxvYXRTaXplIGRldmljZVNpemUgPSBjb252ZXJ0TG9naWNhbFRvRGV2aWNlKGxvZ2lj
YWxTaXplKTsKQEAgLTUyOSw2ICs1NTAsNyBAQCB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpjcmVh
dGVJbWFnZUJ1ZmZlcigpIGNvbnN0CiAgICAgbV9pbWFnZUJ1ZmZlci0+Y29udGV4dCgpLT5zZXRT
aGFkb3dzSWdub3JlVHJhbnNmb3Jtcyh0cnVlKTsKICAgICBtX2ltYWdlQnVmZmVyLT5jb250ZXh0
KCktPnNldEltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkoRGVmYXVsdEludGVycG9sYXRpb25RdWFs
aXR5KTsKICAgICBtX2ltYWdlQnVmZmVyLT5jb250ZXh0KCktPnNldFN0cm9rZVRoaWNrbmVzcygx
KTsKKyAgICBtX2NvbnRleHRTdGF0ZVNhdmVyID0gYWRvcHRQdHIobmV3IEdyYXBoaWNzQ29udGV4
dFN0YXRlU2F2ZXIoKm1faW1hZ2VCdWZmZXItPmNvbnRleHQoKSkpOwogCiAjaWYgVVNFKEpTQykK
ICAgICBKU0M6OkpTTG9jayBsb2NrKEpTQzo6U2lsZW5jZUFzc2VydGlvbnNPbmx5KTsKQEAgLTU3
Myw5ICs1OTUsMjcgQEAgSW1hZ2UqIEhUTUxDYW52YXNFbGVtZW50Ojpjb3BpZWRJbWFnZSgpIGNv
bnN0CiAgICAgcmV0dXJuIG1fY29waWVkSW1hZ2UuZ2V0KCk7CiB9CiAKK3ZvaWQgSFRNTENhbnZh
c0VsZW1lbnQ6OmNsZWFySW1hZ2VCdWZmZXIoKSBjb25zdAoreworICAgIEFTU0VSVChtX2hhc0Ny
ZWF0ZWRJbWFnZUJ1ZmZlcik7CisgICAgQVNTRVJUKCFtX2RpZENsZWFySW1hZ2VCdWZmZXIpOwor
CisgICAgaWYgKCFtX2NvbnRleHQpCisgICAgICAgIHJldHVybjsKKworICAgIG1fZGlkQ2xlYXJJ
bWFnZUJ1ZmZlciA9IHRydWU7CisKKyAgICBpZiAobV9jb250ZXh0LT5pczJkKCkpIHsKKyAgICAg
ICAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKiBjb250ZXh0MkQgPSBzdGF0aWNfY2FzdDxDYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQqPihtX2NvbnRleHQuZ2V0KCkpOworICAgICAgICAvLyBObyBu
ZWVkIHRvIHVuZG8gdHJhbnNmb3Jtcy9jbGlwL2V0Yy4gYmVjYXVzZSB3ZSBhcmUgY2FsbGVkIHJp
Z2h0IGFmdGVyIHRoZSBjb250ZXh0IGlzIHJlc2V0LgorICAgICAgICBjb250ZXh0MkQtPmNsZWFy
UmVjdCgwLCAwLCB3aWR0aCgpLCBoZWlnaHQoKSk7CisgICAgfQorfQorCiB2b2lkIEhUTUxDYW52
YXNFbGVtZW50OjpjbGVhckNvcGllZEltYWdlKCkKIHsKICAgICBtX2NvcGllZEltYWdlLmNsZWFy
KCk7CisgICAgbV9kaWRDbGVhckltYWdlQnVmZmVyID0gZmFsc2U7CiB9CiAKIEFmZmluZVRyYW5z
Zm9ybSBIVE1MQ2FudmFzRWxlbWVudDo6YmFzZVRyYW5zZm9ybSgpIGNvbnN0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgKaW5kZXggZTJjNDg4OGU1YjRiNjQ1NjU0ZmFkNGFl
OTgyOGJkZWFmNDA1NmNiMi4uOTJlYmQzNDM4NTI4YmY2NGY3YjE3M2E1NjU3MjY0ODU1Zjc2YmY4
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaApAQCAtNDUsNiArNDUs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDYW52YXNDb250ZXh0QXR0cmlidXRlczsK
IGNsYXNzIENhbnZhc1JlbmRlcmluZ0NvbnRleHQ7CiBjbGFzcyBHcmFwaGljc0NvbnRleHQ7Citj
bGFzcyBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyOwogY2xhc3MgSFRNTENhbnZhc0VsZW1lbnQ7
CiBjbGFzcyBJbWFnZTsKIGNsYXNzIEltYWdlRGF0YTsKQEAgLTE0Myw2ICsxNDQsNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgcmVzZXQoKTsKIAogICAgIHZvaWQgY3JlYXRlSW1hZ2VCdWZmZXIoKSBj
b25zdDsKKyAgICB2b2lkIGNsZWFySW1hZ2VCdWZmZXIoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0
U3VyZmFjZVNpemUoY29uc3QgSW50U2l6ZSYpOwogCkBAIC0xNjYsNyArMTY4LDkgQEAgcHJpdmF0
ZToKIAogICAgIC8vIG1fY3JlYXRlZEltYWdlQnVmZmVyIG1lYW5zIHdlIHRyaWVkIHRvIG1hbGxv
YyB0aGUgYnVmZmVyLiAgV2UgZGlkbid0IG5lY2Vzc2FyaWx5IGdldCBpdC4KICAgICBtdXRhYmxl
IGJvb2wgbV9oYXNDcmVhdGVkSW1hZ2VCdWZmZXI7CisgICAgbXV0YWJsZSBib29sIG1fZGlkQ2xl
YXJJbWFnZUJ1ZmZlcjsKICAgICBtdXRhYmxlIE93blB0cjxJbWFnZUJ1ZmZlcj4gbV9pbWFnZUJ1
ZmZlcjsKKyAgICBtdXRhYmxlIE93blB0cjxHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyPiBtX2Nv
bnRleHRTdGF0ZVNhdmVyOwogICAgIAogICAgIG11dGFibGUgUmVmUHRyPEltYWdlPiBtX3ByZXNl
bnRlZEltYWdlOwogICAgIG11dGFibGUgUmVmUHRyPEltYWdlPiBtX2NvcGllZEltYWdlOyAvLyBG
SVhNRTogVGhpcyBpcyB0ZW1wb3JhcnkgZm9yIHBsYXRmb3JtcyB0aGF0IGhhdmUgdG8gY29weSB0
aGUgaW1hZ2UgYnVmZmVyIHRvIHJlbmRlciAoYW5kIGZvciBDU1NDYW52YXNWYWx1ZSkuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJELmNwcAppbmRleCAyNzliMmExYzMwOTI3NWE4NDk5Y2QyZGQ4YWMyOTE1MzMxNmI1MWIyLi44
YjI2NTc0NzQ5YTc3NTcxNjY5YmZmYmMxMDdmNjA4MTljYTY5OTgxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAK
QEAgLTE2MSwxMSArMTYxLDYgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnJlc2V0
KCkKICAgICBtX3N0YXRlU3RhY2sucmVzaXplKDEpOwogICAgIG1fc3RhdGVTdGFjay5maXJzdCgp
ID0gU3RhdGUoKTsKICAgICBtX3BhdGguY2xlYXIoKTsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCi0gICAgUmVuZGVyQm94KiByZW5kZXJCb3ggPSBjYW52YXMoKS0+cmVuZGVyQm94
KCk7Ci0gICAgaWYgKHJlbmRlckJveCAmJiByZW5kZXJCb3gtPmhhc0xheWVyKCkgJiYgcmVuZGVy
Qm94LT5sYXllcigpLT5oYXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCkpCi0gICAgICAgIHJlbmRl
ckJveC0+bGF5ZXIoKS0+Y29udGVudENoYW5nZWQoUmVuZGVyTGF5ZXI6OkNhbnZhc0NoYW5nZWQp
OwotI2VuZGlmCiB9CiAKIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6U3RhdGU6OlN0YXRlKCkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0NjBmNWQwMTM0ZWY0YWYzNDgyYWQ5NWQ3ZWZmNzFkNTdmMzU0YmU4Li5jMjBkZTRk
NWIxMWEyZDM3MWRmZDVhZGM1N2I0MTRkMDQwNzVmZWU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAK
KzIwMTItMDMtMTUgIFNhbWkgS3lvc3RpbGEgIDxza3lvc3RpbEBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV1c2UgYnVmZmVyIGFsbG9jYXRpb24gaWYgY2FudmFzIHNpemUgZG9lcyBub3QgY2hh
bmdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDg3
MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBs
YXlvdXQgdGVzdCB0byBjaGVjayBjYW52YXMgcmVzaXppbmcgd2l0aG91dCBjaGFuZ2luZyBpdHMg
bGF5b3V0IHNpemUuCisKKyAgICAgICAgV2UgYWxzbyB1cGRhdGUgdGhlIGV4cGVjdGVkIGltYWdl
IG9uZSBjYW52YXMgY2xlYXJpbmcgdGVzdC4gVGhlIHRlc3QKKyAgICAgICAgaXMgc2V0dGluZyB0
aGUgc2l6ZSBvZiBhIGNhbnZhcyBhbmQgZXhwZWN0aW5nIGl0IHRvIGJlIGNsZWFyZWQgaW4gdGhl
IHByb2Nlc3MuCisgICAgICAgIFdpdGggdGhlIG9wdGltaXphdGlvbiB0byByZXRhaW4gdGhlIHVu
ZGVybHlpbmcgSW1hZ2VCdWZmZXIsIHdlIG5vIGxvbmdlciBjYWxsCisgICAgICAgIFJlbmRlclJl
cGxhY2VkOjpyZXBhaW50KCkgYXMgYSBwYXJ0IG9mIHRoaXMgcHJvY2Vzcy4gVGhpcyBmdW5jdGlv
biB1c2VkIHRvCisgICAgICAgIHJlcGFpbnQgYm90aCB0aGUgY2FudmFzIGl0c2VsZiAoMTAweDUw
KSBhcyB3ZWxsIGFzIGl0cyBsb2NhbCBzZWxlY3Rpb24KKyAgICAgICAgcmVjdGFuZ2xlICgxMDB4
NTQpLgorCisgICAgICAgIEluIHRoaXMgY2FzZSB0aGUgbG9jYWwgc2VsZWN0aW9uIHJlY3Rhbmds
ZSBpcyBsYXJnZXIgdGhhbiB0aGUgY2FudmFzIGJlY2F1c2UKKyAgICAgICAgdGhlIGNhbnZhcyBp
cyBjb250YWluZWQgd2l0aGluIGFuIGFub255bW91cyBSZW5kZXJCbG9jayB0aGF0IGFsc28gaGFz
IHR3byBlbXB0eQorICAgICAgICB0ZXh0IG5vZGVzLiBUaGUgZXh0cmEgNCBwaXhlbHMgYXJlIG5l
ZWRlZCBmb3IgZHJhd2luZyB0aGUgc2VsZWN0aW9uIHJlY3RhbmdsZQorICAgICAgICBhcm91bmQg
YW55IGRlc2NlbmRlcnMgaW4gdGhlIHRoZSB0ZXh0IG9mIHRob3NlIG5vZGVzLgorCisgICAgICAg
IFNpbmNlIGNsZWFyaW5nIHRoZSBjYW52YXMgaGFzIG5vIGVmZmVjdCBvbiB0aGUgc2VsZWN0aW9u
IHJlY3RhbmdsZSwgd2Ugb25seQorICAgICAgICBuZWVkIHRvIHJlcGFpbnQgdGhlIGFyZWEgb2Yg
dGhlIGNhbnZhcyBpdHNlbGYuCisKKyAgICAgICAgKiBmYXN0L2NhbnZhcy9jYW52YXMtcmVzaXpl
LWFmdGVyLXBhaW50LXdpdGhvdXQtbGF5b3V0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
Y2FudmFzL2NhbnZhcy1yZXNpemUtYWZ0ZXItcGFpbnQtd2l0aG91dC1sYXlvdXQtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L2NhbnZh
cy9jYW52YXMtcmVzaXplLWFmdGVyLXBhaW50LXdpdGhvdXQtbGF5b3V0LWV4cGVjdGVkLnBuZzog
QWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC9jYW52YXMvc2V0
V2lkdGhSZXNldEFmdGVyRm9yY2VkUmVuZGVyLWV4cGVjdGVkLnBuZzogVXBkYXRlZC4KKwogMjAx
Mi0wMy0yMSAgS3Jpc3TDs2YgS29zenR5w7MgIDxra3Jpc3RvZkBpbmYudS1zemVnZWQuaHU+CiAK
ICAgICAgICAgW1F0XSBVbnJldmlld2VkIGdhcmRlbmluZyBhZnRlciByMTExNDc3LgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLXJlc2l6ZS1hZnRlci1wYWludC13
aXRob3V0LWxheW91dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52
YXMtcmVzaXplLWFmdGVyLXBhaW50LXdpdGhvdXQtbGF5b3V0LWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi44YjEzNzg5MTc5MWZlOTY5MjdhZDc4ZTY0YjBhYWQ3YmRlZDA4YmRjCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLXJlc2l6ZS1hZnRlci1wYWlu
dC13aXRob3V0LWxheW91dC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSBAQAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtcmVzaXplLWFmdGVyLXBhaW50LXdpdGhv
dXQtbGF5b3V0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtcmVzaXplLWFm
dGVyLXBhaW50LXdpdGhvdXQtbGF5b3V0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmFhMDFjOWNjOTYzYWEz
M2QzZTE5N2I4NjU1OGJmZjExN2QwOTg1MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvY2FudmFzL2NhbnZhcy1yZXNpemUtYWZ0ZXItcGFpbnQtd2l0aG91dC1sYXlvdXQuaHRt
bApAQCAtMCwwICsxLDM4IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0gQ2hlY2sgdGhhdCByZXNp
emluZyBhIChwb3RlbnRpYWxseSBhY2NlbGVyYXRlZCkgY2FudmFzIHByb3Blcmx5IGNsZWFycyBp
dHMKKyAgICAgY29udGVudHMgZXZlbiBpZiB0aGUgbGF5b3V0IHNpemUgb2YgdGhlIGNhbnZhcyBk
b2VzIG5vdCBjaGFuZ2UuIEV4cGVjdGVkCisgICAgIG91dHB1dCBpcyBhIGJsYW5rIGNhbnZhcy4K
KyAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwODcxIC0tPgor
PGh0bWw+CisgIDxoZWFkPgorICAgIDxzdHlsZT4KKyAgICAgICNjYW52YXMgeworICAgICAgICBv
dXRsaW5lOiBzb2xpZCAxcHggYmxhY2s7CisgICAgICAgIHdpZHRoOiAzMDBweDsKKyAgICAgICAg
aGVpZ2h0OiAzMDBweDsKKyAgICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvcmVwYWludC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBBc1RleHQodHJ1ZSk7CisKKyAgICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAg
IHZhciBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2FudmFzJyk7CisgICAgICAg
IHZhciBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTsKKyAgICAgICAgY3R4LmZpbGxTdHls
ZSA9ICdyZWQnOworICAgICAgICBjdHguZmlsbFJlY3QoMCwgMCwgMzAwLCAzMDApOworICAgICAg
ICBydW5SZXBhaW50VGVzdCgpOworICAgICAgfQorCisgICAgICBmdW5jdGlvbiByZXBhaW50VGVz
dCgpIHsKKyAgICAgICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjYW52
YXMnKTsKKyAgICAgICAgLy8gVGhpcyBjaGFuZ2VzIHRoZSByZXNvbHV0aW9uIG9mIHRoZSBjYW52
YXMgYnV0IGtlZXBzIGl0cyBsYXlvdXQgc2l6ZSBjb25zdGFudC4KKyAgICAgICAgY2FudmFzLndp
ZHRoID0gY2FudmFzLndpZHRoIC8gMjsKKyAgICAgIH0KKyAgICA8L3NjcmlwdD4KKyAgPC9oZWFk
PgorICA8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKTsiPgorICAgIDxjYW52YXMgaWQ9ImNhbnZhcyIg
d2lkdGg9IjMwMCIgaGVpZ2h0PSIzMDAiLz4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC9jYW52YXMvY2FudmFz
LXJlc2l6ZS1hZnRlci1wYWludC13aXRob3V0LWxheW91dC1leHBlY3RlZC5wbmcgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L2NhbnZhcy9jYW52YXMtcmVzaXplLWFm
dGVyLXBhaW50LXdpdGhvdXQtbGF5b3V0LWV4cGVjdGVkLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MWYxNDVj
NjAwZDM4MWYyOTczZjM5MzI0ZTYyYjE5ZDQ5MmE2MjUxCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJh
bCAyODk5CnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEweX55VXsrdllWMmE+aTAqWik9aF5obEElQFdz
JGxIYG9rPG19P29UbjBsKwp6Vn5hRlhMbkc1OTMtZCVIPDc1K0txY3A+YFIwfnNNdm4wemolUVdg
SWQpcFpweFNvMnRJRUdacmQzKG4mdWY+NEQKeilsdWZIPnsoSUVySSp0XkgmLSN+JmVBT1dkfEV2
Xj41UWQwMUF+PSlJWD9xS2c7WE9lZ01lQFoxQWAkN3FrMytnCnpaUXRXWnZJbmZ8MH52bj1KI1hC
YWRwcWomRGNKK14kdndOKDg5cGZieDFlam1HLU9sK1l1SnRrJVZAQm1Xdys1Sgp6RzIpV00jX1JS
JCR2eFdUMz1CNU1EaWhYail3ez5JPWwxdSU/PkhIMTRoYnRWSVFTJG1HOHx6TVZ7cGhoV0JMOWIK
ejFIJVc2eWJUTnRObGVAZjNUbVRfKExma1kzOFQ0U01DTzhUK15pYn5QQStuKT5qJD15ODlaSjZU
LUdAeUd5d29iCkN5M2srJQoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC9jYW52YXMvc2V0V2lkdGhSZXNl
dEFmdGVyRm9yY2VkUmVuZGVyLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtLWxpbnV4L2Zhc3QvY2FudmFzL3NldFdpZHRoUmVzZXRBZnRlckZvcmNlZFJlbmRlci1l
eHBlY3RlZC5wbmcKaW5kZXggMDkyYjBlOGU5YWIyOWVjN2Y1YTFiZjAzZjUxNjFiYjliMzc2ZjRi
ZS4uNjJkMDdlZjAxNmQ2Zjg4OGY5NGViNmJhOGFmYjhhZTk2ZTJkYjViYiAxMDA2NDQKR0lUIGJp
bmFyeSBwYXRjaApkZWx0YSA5Mwp6Y21aMnF3WjNZQ2slfiFEUW1UY2lWTiRZKm5UMyZJYSQ9JSFs
MktZfVlGZCk5a3h7YSN4I2pLUGZWeiFnR21Vd0QKeGRWNzJHY2t3YlhGdVdJaXhBfilxMkZHTHYp
MzBMeDxAZGUqQStlM0FfJiFqRSFQQ3t4V3R+JCg2OTZiakI0eipwCgpkZWx0YSA5OAp6Y21WLW8w
RzxEQGRhcnRyRzkpPTtGKiExMUcmRDZhRmZuOHxXPz9wRkk1c2gzRmZjUFRHJXorWUctMkdWR0lY
KDQKem5LUDBCNyFKKFQqeDJ9eytXLUluQEx1NSN2dGMmNDJEM21sT2FkMUZBRUtmNzcpX1BLZiZj
JmowNypxb002TjwkCkVnMWRNbTNJRzVBCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0tbGludXgvcGxhdGZvcm0vY2hyb21pdW0vdmlydHVhbC9ncHUvZmFzdC9jYW52
YXMvY2FudmFzLXJlc2l6ZS1hZnRlci1wYWludC13aXRob3V0LWxheW91dC1leHBlY3RlZC5wbmcg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9wbGF0Zm9ybS9jaHJvbWl1bS92
aXJ0dWFsL2dwdS9mYXN0L2NhbnZhcy9jYW52YXMtcmVzaXplLWFmdGVyLXBhaW50LXdpdGhvdXQt
bGF5b3V0LWV4cGVjdGVkLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOTAxY2ExNGVkMzNiMGNiNzk3MGRjY2I4
NTNkNzc1M2I2ZWM4NTIxCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAyODc2CnpjbWVBU0BOPyhv
bEh5YHVWQnEhaWEweX55VXsrdllWMmE+aTAqWik9aF5obEElQFdzJGxIYG9rPG19P29UIXpIZAp6
cSpQLUk8SyNyTSlVPWN8PDVZdHJWLXhlXzZjZ2hWIV5HNU5CZzEyU0VWQ0lIeFh5WEhJRUdacmQz
KG9APiMlX1UKemdKYi1NfE5HYjJERU11VXhOJkFtUTFSM1YjUzNlO0AtWi0yJkEtZGN6XzYkSDAy
NHo4cncmOEkzPjMhUD44cCo0CnpLZyU0QC1AayZ2PTFPVVR0WTZ1VXYkcElIY0c/SXNGJnRxTFZ7
cV9FVT5zJFAyRXU0Yzd8akt2eHF5XmhhSVJrMwp6eGNJcFkxSCpkNT82cjR8Zm57KSl4KVhaJmkm
LUwlaWVSbSVNdVRORVNrVCVvcWUpYGVCI0J6YWxsfXNtcVUzJT8KUTFEbkdQcDAwaV8+em9wcjA1
PG98UlI5MTAKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133222</attachid>
            <date>2012-03-22 04:33:15 -0700</date>
            <delta_ts>2013-04-16 08:05:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80871-20120322113313.patch</filename>
            <type>text/plain</type>
            <size>14869</size>
            <attacher name="Sami Kyostila">skyostil</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExNjY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTIwYzk5ZDU1MDMzM2Vk
MjE2N2ExNjE3NWJjYTYyNGQxNTM5YjRmOS4uZGI4M2M1MDZiNjFmZGM2Y2Y1ZWUzMzUwYzcwNzkz
ZjM2MTBkYTM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDEyLTAzLTE1ICBTYW1p
IEt5b3N0aWxhICA8c2t5b3N0aWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldXNlIGJ1ZmZl
ciBhbGxvY2F0aW9uIGlmIGNhbnZhcyBzaXplIGRvZXMgbm90IGNoYW5nZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA4NzEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJZiB0aGUgdXNlciBjaGFuZ2VzIHRo
ZSB3aWR0aCBvciBoZWlnaHQgYXR0cmlidXRlcyBvZiBhIGNhbnZhcyBlbGVtZW50LAorICAgICAg
ICB0aGUgY29udGVudHMgb2YgdGhlIGNhbnZhcyBzaG91bGQgYmUgY2xlYXJlZCBhbmQgdGhlIGNv
bnRleHQgc3RhdGUKKyAgICAgICAgc2hvdWxkIGJlIHJlc2V0LiBUaGlzIGhhcyBiZWNvbWUgYSBj
b21tb24gaWRpb20gdG8gY2xlYXIgdGhlIGNhbnZhcworICAgICAgICAiZWZmaWNpZW50bHkiIGF0
IHRoZSBzdGFydCBvZiBhIGZyYW1lLgorCisgICAgICAgIFByZXZpb3VzbHksIHRoaXMgY29kZSBw
YXRoIHRyaWdnZXJlZCBhIGZ1bGwgcmVhbGxvY2F0aW9uIG9mIHRoZSBpbWFnZQorICAgICAgICBi
dWZmZXIgYmFja2luZyB0aGUgY2FudmFzLCBsZWFkaW5nIHRvIHJlZHVjZWQgcGVyZm9ybWFuY2Uu
IFRoaXMgcGF0Y2gKKyAgICAgICAgaW1wbGVtZW50cyBhbiBvcHRpbWl6YXRpb24gd2hlcmUgd2Ug
cmV1c2UgdGhlIHByZXZpb3VzIGltYWdlIGJ1ZmZlcgorICAgICAgICBhbGxvY2F0aW9uIGlmIHRo
ZSBzaXplIG9mIHRoZSBjYW52YXMgZGlkIG5vdCBjaGFuZ2UuIEFsc28sIGluc3RlYWQgb2YKKyAg
ICAgICAgY2xlYXJpbmcgdGhlIGNhbnZhcyBldmVyeSB0aW1lIGl0cyBkaW1lbnNpb25zIGFyZSB0
b3VjaGVkLCB3ZSBvbmx5IGNsZWFyCisgICAgICAgIGlmIGFueXRoaW5nIGhhcyBiZWVuIGRyYXdu
IGludG8gdGhlIGNhbnZhcyBzaW5jZSBpdCB3YXMgcHJldmlvdXNseQorICAgICAgICBjbGVhcmVk
LgorCisgICAgICAgIE5vdGUgdGhhdCBmb3Igbm93IHRoaXMgb3B0aW1pemF0aW9uIG9ubHkgYXBw
bGllcyBmb3IgMkQgY2FudmFzZXMsCisgICAgICAgIHNpbmNlIGl0IGlzIG5vdCBlbnRpcmVseSBj
bGVhciBob3cgdG91Y2hpbmcgdGhlIGRpbWVuc2lvbnMgb2YgYSBXZWJHTAorICAgICAgICBjYW52
YXMgc2hvdWxkIHdvcmsuCisKKyAgICAgICAgVGVzdDogZmFzdC9jYW52YXMvY2FudmFzLXJlc2l6
ZS1hZnRlci1wYWludC13aXRob3V0LWxheW91dC5odG1sICsKKyAgICAgICAgICAgICAgZXhpc3Rp
bmcgbGF5b3V0IHRlc3RzIGZvciBjYW52YXMgcmVzZXR0aW5nLgorCisgICAgICAgICogaHRtbC9I
VE1MQ2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVu
dDo6SFRNTENhbnZhc0VsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1l
bnQ6OnJlc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVJ
bWFnZUJ1ZmZlcik6IFNhdmUgdGhlIGluaXRpYWwKKyAgICAgICAgZ3JhcGhpY3MgY29udGV4dCBz
dGF0ZSBzbyB3ZSBjYW4gcmVzdG9yZSBpdCB3aXRob3V0IGNyZWF0aW5nIGEgbmV3CisgICAgICAg
IGNvbnRleHQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Y2xlYXJJbWFn
ZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52
YXNFbGVtZW50OjpjbGVhckNvcGllZEltYWdlKToKKyAgICAgICAgKiBodG1sL0hUTUxDYW52YXNF
bGVtZW50Lmg6CisgICAgICAgIChIVE1MQ2FudmFzRWxlbWVudCk6CisgICAgICAgICogaHRtbC9j
YW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6cmVzZXQpOiBObyBuZWVkIHRvIG5vdGlmeSB0aGUKKyAg
ICAgICAgY29tcG9zaXRvciB3aGVuIHRoZSBjb250ZXh0IGlzIHJlc2V0LCBiZWNhdXNlIGNsZWFy
aW5nIHRoZSBpbWFnZSBidWZmZXIKKyAgICAgICAgZG9lcyB0aGUgc2FtZSB0aGluZy4gV2UgY2Fu
IGFsc28gc2tpcCB0aGUgbm90aWZpY2F0aW9uIGlmIHdlIGRpZCBub3QKKyAgICAgICAgaGF2ZSBh
biBpbWFnZSBidWZmZXIgYXQgdGhlIHRpbWUgb2YgdGhlIHJlc2V0LCBiZWNhdXNlIHRoZSByZXNl
dCB3aWxsCisgICAgICAgIG5vdCBoYXZlIGFueSB2aXN1YWwgaW1wYWN0IGluIHRoaXMgY2FzZS4g
RmluYWxseSwgaWYgdGhlIGNhbnZhcyBzaXplCisgICAgICAgIGRpZCBjaGFuZ2UsIHRoZSBub3Rp
ZmljYXRpb24gaXMgYWxzbyB1bm5lY2Vzc2FyeSBiZWNhdXNlIG9mIHRoZSBjYWxsCisgICAgICAg
IHRvIFJlbmRlck9iamVjdDo6cmVwYWludCgpIGZyb20gSFRNTENhbnZhc0VsZW1lbnQ6OnJlc2V0
KCkuCisKIDIwMTItMDMtMjIgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIEV4cGFuZCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OmNvbnRyb2xDbGlwUmVj
dCgpIHRvIGNvbnRhaW4gY29udGVudFJlY3QoKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2Fu
dmFzRWxlbWVudC5jcHAKaW5kZXggMDdhYjMwOTFlNTk4Mzg0YTNkYjMwOWM5NTVlMTFhMjhjOWU0
ZDJjMy4uZGVhN2Y1Y2E3YmUxMTgyM2E1MDFkMjYyZDU5ODYwOTVjYmMzYjhkZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKQEAgLTkyLDYgKzkyLDcgQEAgSFRN
TENhbnZhc0VsZW1lbnQ6OkhUTUxDYW52YXNFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50KiBkb2MKICNlbmRpZgogICAgICwgbV9vcmlnaW5DbGVhbih0cnVlKQog
ICAgICwgbV9oYXNDcmVhdGVkSW1hZ2VCdWZmZXIoZmFsc2UpCisgICAgLCBtX2RpZENsZWFySW1h
Z2VCdWZmZXIoZmFsc2UpCiB7CiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoY2FudmFzVGFnKSk7CiB9
CkBAIC0yNDcsMTMgKzI0OCwyNiBAQCB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpyZXNldCgpCiAg
ICAgaWYgKCFvayB8fCBoIDwgMCkKICAgICAgICAgaCA9IERlZmF1bHRIZWlnaHQ7CiAKKyAgICBp
ZiAobV9jb250ZXh0U3RhdGVTYXZlcikgeworICAgICAgICAvLyBSZXNldCB0byB0aGUgaW5pdGlh
bCBncmFwaGljcyBjb250ZXh0IHN0YXRlLgorICAgICAgICBtX2NvbnRleHRTdGF0ZVNhdmVyLT5y
ZXN0b3JlKCk7CisgICAgICAgIG1fY29udGV4dFN0YXRlU2F2ZXItPnNhdmUoKTsKKyAgICB9CisK
ICAgICBpZiAobV9jb250ZXh0ICYmIG1fY29udGV4dC0+aXMyZCgpKSB7CiAgICAgICAgIENhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRCogY29udGV4dDJEID0gc3RhdGljX2Nhc3Q8Q2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEKj4obV9jb250ZXh0LmdldCgpKTsKICAgICAgICAgY29udGV4dDJELT5yZXNl
dCgpOwogICAgIH0KIAogICAgIEludFNpemUgb2xkU2l6ZSA9IHNpemUoKTsKLSAgICBzZXRTdXJm
YWNlU2l6ZShJbnRTaXplKHcsIGgpKTsgLy8gVGhlIGltYWdlIGJ1ZmZlciBnZXRzIGNsZWFyZWQg
aGVyZS4KKyAgICAvLyBJZiB0aGUgc2l6ZSBvZiBhbiBleGlzdGluZyBidWZmZXIgbWF0Y2hlcywg
d2UgY2FuIGp1c3QgY2xlYXIgaXQgaW5zdGVhZCBvZiByZWFsbG9jYXRpbmcuCisgICAgLy8gVGhp
cyBvcHRpbWl6YXRpb24gaXMgb25seSBkb25lIGZvciAyRCBjYW52YXNlcyBmb3Igbm93LgorICAg
IGlmIChtX2hhc0NyZWF0ZWRJbWFnZUJ1ZmZlciAmJiBvbGRTaXplID09IEludFNpemUodywgaCkg
JiYgbV9jb250ZXh0ICYmIG1fY29udGV4dC0+aXMyZCgpKSB7CisgICAgICAgIGlmICghbV9kaWRD
bGVhckltYWdlQnVmZmVyKQorICAgICAgICAgICAgY2xlYXJJbWFnZUJ1ZmZlcigpOworICAgICAg
ICByZXR1cm47CisgICAgfQorICAgIHNldFN1cmZhY2VTaXplKEludFNpemUodywgaCkpOwogCiAj
aWYgRU5BQkxFKFdFQkdMKQogICAgIGlmIChtX2NvbnRleHQgJiYgbV9jb250ZXh0LT5pczNkKCkg
JiYgb2xkU2l6ZSAhPSBzaXplKCkpCkBAIC0yNjIsOCArMjc2LDEzIEBAIHZvaWQgSFRNTENhbnZh
c0VsZW1lbnQ6OnJlc2V0KCkKIAogICAgIGlmIChSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gdGhp
cy0+cmVuZGVyZXIoKSkgewogICAgICAgICBpZiAobV9yZW5kZXJlcklzQ2FudmFzKSB7Ci0gICAg
ICAgICAgICBpZiAob2xkU2l6ZSAhPSBzaXplKCkpCisgICAgICAgICAgICBpZiAob2xkU2l6ZSAh
PSBzaXplKCkpIHsKICAgICAgICAgICAgICAgICB0b1JlbmRlckhUTUxDYW52YXMocmVuZGVyZXIp
LT5jYW52YXNTaXplQ2hhbmdlZCgpOworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
KyAgICAgICAgICAgICAgICBpZiAocmVuZGVyQm94KCkgJiYgcmVuZGVyQm94KCktPmhhc0xheWVy
KCkgJiYgcmVuZGVyQm94KCktPmxheWVyKCktPmhhc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKSkK
KyAgICAgICAgICAgICAgICAgICAgcmVuZGVyQm94KCktPmxheWVyKCktPmNvbnRlbnRDaGFuZ2Vk
KFJlbmRlckxheWVyOjpDYW52YXNDaGFuZ2VkKTsKKyNlbmRpZgorICAgICAgICAgICAgfQogICAg
ICAgICAgICAgaWYgKGhhZEltYWdlQnVmZmVyKQogICAgICAgICAgICAgICAgIHJlbmRlcmVyLT5y
ZXBhaW50KCk7CiAgICAgICAgIH0KQEAgLTM1Myw2ICszNzIsNyBAQCB2b2lkIEhUTUxDYW52YXNF
bGVtZW50OjpzZXRTdXJmYWNlU2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQogewogICAgIG1fc2l6
ZSA9IHNpemU7CiAgICAgbV9oYXNDcmVhdGVkSW1hZ2VCdWZmZXIgPSBmYWxzZTsKKyAgICBtX2Nv
bnRleHRTdGF0ZVNhdmVyLmNsZWFyKCk7CiAgICAgbV9pbWFnZUJ1ZmZlci5jbGVhcigpOwogICAg
IGNsZWFyQ29waWVkSW1hZ2UoKTsKIH0KQEAgLTQ5OCw2ICs1MTgsNyBAQCB2b2lkIEhUTUxDYW52
YXNFbGVtZW50OjpjcmVhdGVJbWFnZUJ1ZmZlcigpIGNvbnN0CiAgICAgQVNTRVJUKCFtX2ltYWdl
QnVmZmVyKTsKIAogICAgIG1faGFzQ3JlYXRlZEltYWdlQnVmZmVyID0gdHJ1ZTsKKyAgICBtX2Rp
ZENsZWFySW1hZ2VCdWZmZXIgPSB0cnVlOwogCiAgICAgRmxvYXRTaXplIGxvZ2ljYWxTaXplID0g
c2l6ZSgpOwogICAgIEZsb2F0U2l6ZSBkZXZpY2VTaXplID0gY29udmVydExvZ2ljYWxUb0Rldmlj
ZShsb2dpY2FsU2l6ZSk7CkBAIC01MjksNiArNTUwLDcgQEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVu
dDo6Y3JlYXRlSW1hZ2VCdWZmZXIoKSBjb25zdAogICAgIG1faW1hZ2VCdWZmZXItPmNvbnRleHQo
KS0+c2V0U2hhZG93c0lnbm9yZVRyYW5zZm9ybXModHJ1ZSk7CiAgICAgbV9pbWFnZUJ1ZmZlci0+
Y29udGV4dCgpLT5zZXRJbWFnZUludGVycG9sYXRpb25RdWFsaXR5KERlZmF1bHRJbnRlcnBvbGF0
aW9uUXVhbGl0eSk7CiAgICAgbV9pbWFnZUJ1ZmZlci0+Y29udGV4dCgpLT5zZXRTdHJva2VUaGlj
a25lc3MoMSk7CisgICAgbV9jb250ZXh0U3RhdGVTYXZlciA9IGFkb3B0UHRyKG5ldyBHcmFwaGlj
c0NvbnRleHRTdGF0ZVNhdmVyKCptX2ltYWdlQnVmZmVyLT5jb250ZXh0KCkpKTsKIAogI2lmIFVT
RShKU0MpCiAgICAgSlNDOjpKU0xvY2sgbG9jayhKU0M6OlNpbGVuY2VBc3NlcnRpb25zT25seSk7
CkBAIC01NzMsOSArNTk1LDI1IEBAIEltYWdlKiBIVE1MQ2FudmFzRWxlbWVudDo6Y29waWVkSW1h
Z2UoKSBjb25zdAogICAgIHJldHVybiBtX2NvcGllZEltYWdlLmdldCgpOwogfQogCit2b2lkIEhU
TUxDYW52YXNFbGVtZW50OjpjbGVhckltYWdlQnVmZmVyKCkgY29uc3QKK3sKKyAgICBBU1NFUlQo
bV9oYXNDcmVhdGVkSW1hZ2VCdWZmZXIpOworICAgIEFTU0VSVCghbV9kaWRDbGVhckltYWdlQnVm
ZmVyKTsKKyAgICBBU1NFUlQobV9jb250ZXh0KTsKKworICAgIG1fZGlkQ2xlYXJJbWFnZUJ1ZmZl
ciA9IHRydWU7CisKKyAgICBpZiAobV9jb250ZXh0LT5pczJkKCkpIHsKKyAgICAgICAgQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEKiBjb250ZXh0MkQgPSBzdGF0aWNfY2FzdDxDYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQqPihtX2NvbnRleHQuZ2V0KCkpOworICAgICAgICAvLyBObyBuZWVkIHRvIHVu
ZG8gdHJhbnNmb3Jtcy9jbGlwL2V0Yy4gYmVjYXVzZSB3ZSBhcmUgY2FsbGVkIHJpZ2h0IGFmdGVy
IHRoZSBjb250ZXh0IGlzIHJlc2V0LgorICAgICAgICBjb250ZXh0MkQtPmNsZWFyUmVjdCgwLCAw
LCB3aWR0aCgpLCBoZWlnaHQoKSk7CisgICAgfQorfQorCiB2b2lkIEhUTUxDYW52YXNFbGVtZW50
OjpjbGVhckNvcGllZEltYWdlKCkKIHsKICAgICBtX2NvcGllZEltYWdlLmNsZWFyKCk7CisgICAg
bV9kaWRDbGVhckltYWdlQnVmZmVyID0gZmFsc2U7CiB9CiAKIEFmZmluZVRyYW5zZm9ybSBIVE1M
Q2FudmFzRWxlbWVudDo6YmFzZVRyYW5zZm9ybSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxDYW52YXNFbGVtZW50LmgKaW5kZXggZTJjNDg4OGU1YjRiNjQ1NjU0ZmFkNGFlOTgyOGJkZWFm
NDA1NmNiMi4uOTJlYmQzNDM4NTI4YmY2NGY3YjE3M2E1NjU3MjY0ODU1Zjc2YmY4MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaApAQCAtNDUsNiArNDUsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDYW52YXNDb250ZXh0QXR0cmlidXRlczsKIGNsYXNzIENh
bnZhc1JlbmRlcmluZ0NvbnRleHQ7CiBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CitjbGFzcyBHcmFw
aGljc0NvbnRleHRTdGF0ZVNhdmVyOwogY2xhc3MgSFRNTENhbnZhc0VsZW1lbnQ7CiBjbGFzcyBJ
bWFnZTsKIGNsYXNzIEltYWdlRGF0YTsKQEAgLTE0Myw2ICsxNDQsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgcmVzZXQoKTsKIAogICAgIHZvaWQgY3JlYXRlSW1hZ2VCdWZmZXIoKSBjb25zdDsKKyAg
ICB2b2lkIGNsZWFySW1hZ2VCdWZmZXIoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0U3VyZmFjZVNp
emUoY29uc3QgSW50U2l6ZSYpOwogCkBAIC0xNjYsNyArMTY4LDkgQEAgcHJpdmF0ZToKIAogICAg
IC8vIG1fY3JlYXRlZEltYWdlQnVmZmVyIG1lYW5zIHdlIHRyaWVkIHRvIG1hbGxvYyB0aGUgYnVm
ZmVyLiAgV2UgZGlkbid0IG5lY2Vzc2FyaWx5IGdldCBpdC4KICAgICBtdXRhYmxlIGJvb2wgbV9o
YXNDcmVhdGVkSW1hZ2VCdWZmZXI7CisgICAgbXV0YWJsZSBib29sIG1fZGlkQ2xlYXJJbWFnZUJ1
ZmZlcjsKICAgICBtdXRhYmxlIE93blB0cjxJbWFnZUJ1ZmZlcj4gbV9pbWFnZUJ1ZmZlcjsKKyAg
ICBtdXRhYmxlIE93blB0cjxHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyPiBtX2NvbnRleHRTdGF0
ZVNhdmVyOwogICAgIAogICAgIG11dGFibGUgUmVmUHRyPEltYWdlPiBtX3ByZXNlbnRlZEltYWdl
OwogICAgIG11dGFibGUgUmVmUHRyPEltYWdlPiBtX2NvcGllZEltYWdlOyAvLyBGSVhNRTogVGhp
cyBpcyB0ZW1wb3JhcnkgZm9yIHBsYXRmb3JtcyB0aGF0IGhhdmUgdG8gY29weSB0aGUgaW1hZ2Ug
YnVmZmVyIHRvIHJlbmRlciAoYW5kIGZvciBDU1NDYW52YXNWYWx1ZSkuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcApp
bmRleCAyNzliMmExYzMwOTI3NWE4NDk5Y2QyZGQ4YWMyOTE1MzMxNmI1MWIyLi44YjI2NTc0NzQ5
YTc3NTcxNjY5YmZmYmMxMDdmNjA4MTljYTY5OTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKQEAgLTE2MSwx
MSArMTYxLDYgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnJlc2V0KCkKICAgICBt
X3N0YXRlU3RhY2sucmVzaXplKDEpOwogICAgIG1fc3RhdGVTdGFjay5maXJzdCgpID0gU3RhdGUo
KTsKICAgICBtX3BhdGguY2xlYXIoKTsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
Ci0gICAgUmVuZGVyQm94KiByZW5kZXJCb3ggPSBjYW52YXMoKS0+cmVuZGVyQm94KCk7Ci0gICAg
aWYgKHJlbmRlckJveCAmJiByZW5kZXJCb3gtPmhhc0xheWVyKCkgJiYgcmVuZGVyQm94LT5sYXll
cigpLT5oYXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCkpCi0gICAgICAgIHJlbmRlckJveC0+bGF5
ZXIoKS0+Y29udGVudENoYW5nZWQoUmVuZGVyTGF5ZXI6OkNhbnZhc0NoYW5nZWQpOwotI2VuZGlm
CiB9CiAKIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6U3RhdGU6OlN0YXRlKCkKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBj
ZGZkYzZhMDEzYzk5MzNmNWFjZjgwNTE0MTUwZmZmM2EyNzhlNDMxLi41MWMyNDZiZjczOWI0ZDk1
ZmQ0NThmOTFhMmEzZjM3MDMwNGFhZDViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTItMDMt
MTUgIFNhbWkgS3lvc3RpbGEgIDxza3lvc3RpbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV1
c2UgYnVmZmVyIGFsbG9jYXRpb24gaWYgY2FudmFzIHNpemUgZG9lcyBub3QgY2hhbmdlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDg3MQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBsYXlvdXQgdGVz
dCB0byBjaGVjayBjYW52YXMgcmVzaXppbmcgd2l0aG91dCBjaGFuZ2luZyBpdHMgbGF5b3V0IHNp
emUuCisKKyAgICAgICAgV2UgYWxzbyB1cGRhdGUgdGhlIGV4cGVjdGVkIGltYWdlIG9uZSBjYW52
YXMgY2xlYXJpbmcgdGVzdC4gVGhlIHRlc3QKKyAgICAgICAgaXMgc2V0dGluZyB0aGUgc2l6ZSBv
ZiBhIGNhbnZhcyBhbmQgZXhwZWN0aW5nIGl0IHRvIGJlIGNsZWFyZWQgaW4gdGhlIHByb2Nlc3Mu
CisgICAgICAgIFdpdGggdGhlIG9wdGltaXphdGlvbiB0byByZXRhaW4gdGhlIHVuZGVybHlpbmcg
SW1hZ2VCdWZmZXIsIHdlIG5vIGxvbmdlciBjYWxsCisgICAgICAgIFJlbmRlclJlcGxhY2VkOjpy
ZXBhaW50KCkgYXMgYSBwYXJ0IG9mIHRoaXMgcHJvY2Vzcy4gVGhpcyBmdW5jdGlvbiB1c2VkIHRv
CisgICAgICAgIHJlcGFpbnQgYm90aCB0aGUgY2FudmFzIGl0c2VsZiAoMTAweDUwKSBhcyB3ZWxs
IGFzIGl0cyBsb2NhbCBzZWxlY3Rpb24KKyAgICAgICAgcmVjdGFuZ2xlICgxMDB4NTQpLgorCisg
ICAgICAgIEluIHRoaXMgY2FzZSB0aGUgbG9jYWwgc2VsZWN0aW9uIHJlY3RhbmdsZSBpcyBsYXJn
ZXIgdGhhbiB0aGUgY2FudmFzIGJlY2F1c2UKKyAgICAgICAgdGhlIGNhbnZhcyBpcyBjb250YWlu
ZWQgd2l0aGluIGFuIGFub255bW91cyBSZW5kZXJCbG9jayB0aGF0IGFsc28gaGFzIHR3byBlbXB0
eQorICAgICAgICB0ZXh0IG5vZGVzLiBUaGUgZXh0cmEgNCBwaXhlbHMgYXJlIG5lZWRlZCBmb3Ig
ZHJhd2luZyB0aGUgc2VsZWN0aW9uIHJlY3RhbmdsZQorICAgICAgICBhcm91bmQgYW55IGRlc2Nl
bmRlcnMgaW4gdGhlIHRoZSB0ZXh0IG9mIHRob3NlIG5vZGVzLgorCisgICAgICAgIFNpbmNlIGNs
ZWFyaW5nIHRoZSBjYW52YXMgaGFzIG5vIGVmZmVjdCBvbiB0aGUgc2VsZWN0aW9uIHJlY3Rhbmds
ZSwgd2Ugb25seQorICAgICAgICBuZWVkIHRvIHJlcGFpbnQgdGhlIGFyZWEgb2YgdGhlIGNhbnZh
cyBpdHNlbGYuCisKKyAgICAgICAgKiBmYXN0L2NhbnZhcy9jYW52YXMtcmVzaXplLWFmdGVyLXBh
aW50LXdpdGhvdXQtbGF5b3V0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL2Nh
bnZhcy1yZXNpemUtYWZ0ZXItcGFpbnQtd2l0aG91dC1sYXlvdXQtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L2NhbnZhcy9jYW52YXMt
cmVzaXplLWFmdGVyLXBhaW50LXdpdGhvdXQtbGF5b3V0LWV4cGVjdGVkLnBuZzogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC9jYW52YXMvc2V0V2lkdGhSZXNl
dEFmdGVyRm9yY2VkUmVuZGVyLWV4cGVjdGVkLnBuZzogVXBkYXRlZC4KKwogMjAxMi0wMy0yMiAg
TWloYWkgQmFsYW4gIDxtaWJhbGFuQGFkb2JlLmNvbT4KIAogICAgICAgICBbQ1NTUmVnaW9uc10g
QWRkIHJlZ2lvbiBzdHlsaW5nIHRlc3QgZm9yIHJlZ2lvbiBjc3MgcnVsZXMgc3BlY2lmaWNpdHkv
cG9zaXRpb24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1yZXNp
emUtYWZ0ZXItcGFpbnQtd2l0aG91dC1sYXlvdXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvY2FudmFzLXJlc2l6ZS1hZnRlci1wYWludC13aXRob3V0LWxheW91dC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOGIxMzc4OTE3OTFmZTk2OTI3YWQ3OGU2NGIwYWFkN2JkZWQw
OGJkYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1y
ZXNpemUtYWZ0ZXItcGFpbnQtd2l0aG91dC1sYXlvdXQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEg
QEAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLXJlc2l6ZS1h
ZnRlci1wYWludC13aXRob3V0LWxheW91dC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMv
Y2FudmFzLXJlc2l6ZS1hZnRlci1wYWludC13aXRob3V0LWxheW91dC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjZhYTAxYzljYzk2M2FhMzNkM2UxOTdiODY1NThiZmYxMTdkMDk4NTEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtcmVzaXplLWFmdGVyLXBhaW50LXdp
dGhvdXQtbGF5b3V0Lmh0bWwKQEAgLTAsMCArMSwzOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0t
IENoZWNrIHRoYXQgcmVzaXppbmcgYSAocG90ZW50aWFsbHkgYWNjZWxlcmF0ZWQpIGNhbnZhcyBw
cm9wZXJseSBjbGVhcnMgaXRzCisgICAgIGNvbnRlbnRzIGV2ZW4gaWYgdGhlIGxheW91dCBzaXpl
IG9mIHRoZSBjYW52YXMgZG9lcyBub3QgY2hhbmdlLiBFeHBlY3RlZAorICAgICBvdXRwdXQgaXMg
YSBibGFuayBjYW52YXMuCisgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD04MDg3MSAtLT4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8c3R5bGU+CisgICAgICAjY2Fu
dmFzIHsKKyAgICAgICAgb3V0bGluZTogc29saWQgMXB4IGJsYWNrOworICAgICAgICB3aWR0aDog
MzAwcHg7CisgICAgICAgIGhlaWdodDogMzAwcHg7CisgICAgICB9CisgICAgPC9zdHlsZT4KKyAg
ICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlcGFpbnQuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQ+CisgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KHRydWUpOworCisgICAgICBmdW5jdGlvbiBydW5U
ZXN0KCkgeworICAgICAgICB2YXIgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Nh
bnZhcycpOworICAgICAgICB2YXIgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7CisgICAg
ICAgIGN0eC5maWxsU3R5bGUgPSAncmVkJzsKKyAgICAgICAgY3R4LmZpbGxSZWN0KDAsIDAsIDMw
MCwgMzAwKTsKKyAgICAgICAgcnVuUmVwYWludFRlc3QoKTsKKyAgICAgIH0KKworICAgICAgZnVu
Y3Rpb24gcmVwYWludFRlc3QoKSB7CisgICAgICAgIHZhciBjYW52YXMgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnY2FudmFzJyk7CisgICAgICAgIC8vIFRoaXMgY2hhbmdlcyB0aGUgcmVzb2x1
dGlvbiBvZiB0aGUgY2FudmFzIGJ1dCBrZWVwcyBpdHMgbGF5b3V0IHNpemUgY29uc3RhbnQuCisg
ICAgICAgIGNhbnZhcy53aWR0aCA9IGNhbnZhcy53aWR0aCAvIDI7CisgICAgICB9CisgICAgPC9z
Y3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHkgb25sb2FkPSJydW5UZXN0KCk7Ij4KKyAgICA8Y2Fu
dmFzIGlkPSJjYW52YXMiIHdpZHRoPSIzMDAiIGhlaWdodD0iMzAwIi8+CisgIDwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2Zh
c3QvY2FudmFzL2NhbnZhcy1yZXNpemUtYWZ0ZXItcGFpbnQtd2l0aG91dC1sYXlvdXQtZXhwZWN0
ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC9jYW52YXMv
Y2FudmFzLXJlc2l6ZS1hZnRlci1wYWludC13aXRob3V0LWxheW91dC1leHBlY3RlZC5wbmcKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOTFmMTQ1YzYwMGQzODFmMjk3M2YzOTMyNGU2MmIxOWQ0OTJhNjI1MQpHSVQgYmlu
YXJ5IHBhdGNoCmxpdGVyYWwgMjg5OQp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHl+eVV7K3ZZVjJh
PmkwKlopPWheaGxBJUBXcyRsSGBvazxtfT9vVG4wbCsKelZ+YUZYTG5HNTkzLWQlSDw3NStLcWNw
PmBSMH5zTXZuMHpqJVFXYElkKXBacHhTbzJ0SUVHWnJkMyhuJnVmPjRECnopbHVmSD57KElFckkq
dF5IJi0jfiZlQU9XZHxFdl4+NVFkMDFBfj0pSVg/cUtnO1hPZWdNZUBaMUFgJDdxazMrZwp6WlF0
V1p2SW5mfDB+dm49SiNYQmFkcHFqJkRjSiteJHZ3Tig4OXBmYngxZWptRy1PbCtZdUp0ayVWQEJt
V3crNUoKekcyKVdNI19SUiQkdnhXVDM9QjVNRGloWGopd3s+ST1sMXUlPz5ISDE0aGJ0VklRUyRt
Rzh8ek1We3BoaFdCTDliCnoxSCVXNnliVE50TmxlQGYzVG1UXyhMZmtZMzhUNFNNQ084VCteaWJ+
UEErbik+aiQ9eTg5Wko2VC1HQHlHeXdvYgpDeTNrKyUKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2Zhc3QvY2Fu
dmFzL3NldFdpZHRoUmVzZXRBZnRlckZvcmNlZFJlbmRlci1leHBlY3RlZC5wbmcgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L2NhbnZhcy9zZXRXaWR0aFJlc2V0QWZ0
ZXJGb3JjZWRSZW5kZXItZXhwZWN0ZWQucG5nCmluZGV4IDA5MmIwZThlOWFiMjllYzdmNWExYmYw
M2Y1MTYxYmI5YjM3NmY0YmUuLjYyZDA3ZWYwMTZkNmY4ODhmOTRlYjZiYThhZmI4YWU5NmUyZGI1
YmIgMTAwNjQ0CkdJVCBiaW5hcnkgcGF0Y2gKZGVsdGEgOTMKemNtWjJxd1ozWUNrJX4hRFFtVGNp
Vk4kWSpuVDMmSWEkPSUhbDJLWX1ZRmQpOWt4e2EjeCNqS1BmVnohZ0dtVXdECnhkVjcyR2Nrd2JY
RnVXSWl4QX4pcTJGR0x2KTMwTHg8QGRlKkErZTNBXyYhakUhUEN7eFd0fiQoNjk2YmpCNHoqcAoK
ZGVsdGEgOTgKemNtVi1vMEc8REBkYXJ0ckc5KT07RiohMTFHJkQ2YUZmbjh8Vz8/cEZJNXNoM0Zm
Y1BURyV6K1lHLTJHVkdJWCg0CnpuS1AwQjchSihUKngyfXsrVy1JbkBMdTUjdnRjJjQyRDNtbE9h
ZDFGQUVLZjc3KV9QS2YmYyZqMDcqcW9NNk48JApFZzFkTW0zSUc1QQoKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3BsYXRmb3JtL2Nocm9taXVtL3ZpcnR1
YWwvZ3B1L2Zhc3QvY2FudmFzL2NhbnZhcy1yZXNpemUtYWZ0ZXItcGFpbnQtd2l0aG91dC1sYXlv
dXQtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvcGxh
dGZvcm0vY2hyb21pdW0vdmlydHVhbC9ncHUvZmFzdC9jYW52YXMvY2FudmFzLXJlc2l6ZS1hZnRl
ci1wYWludC13aXRob3V0LWxheW91dC1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDkwMWNhMTRl
ZDMzYjBjYjc5NzBkY2NiODUzZDc3NTNiNmVjODUyMQpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwg
Mjg3Ngp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHl+eVV7K3ZZVjJhPmkwKlopPWheaGxBJUBXcyRs
SGBvazxtfT9vVCF6SGQKenEqUC1JPEsjck0pVT1jfDw1WXRyVi14ZV82Y2doViFeRzVOQmcxMlNF
VkNJSHhYeVhISUVHWnJkMyhvQD4jJV9VCnpnSmItTXxOR2IyREVNdVV4TiZBbVExUjNWI1MzZTtA
LVotMiZBLWRjel82JEgwMjR6OHJ3JjhJMz4zIVA+OHAqNAp6S2clNEAtQGsmdj0xT1VUdFk2dVV2
JHBJSGNHP0lzRiZ0cUxWe3FfRVU+cyRQMkV1NGM3fGpLdnhxeV5oYUlSazMKenhjSXBZMUgqZDU/
NnI0fGZueykpeClYWiZpJi1MJWllUm0lTXVUTkVTa1Qlb3FlKWBlQiNCemFsbH1zbXFVMyU/ClEx
RG5HUHAwMGlfPnpvcHIwNTxvfFJSOTEwCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>