<?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>50192</bug_id>
          
          <creation_ts>2010-11-29 17:07:52 -0800</creation_ts>
          <short_desc>Compositing overlap testing can throw layers into compositing when they should not be.</short_desc>
          <delta_ts>2012-05-28 12:29:57 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>dino</cc>
    
    <cc>enne</cc>
    
    <cc>jamesr</cc>
    
    <cc>klobag</cc>
    
    <cc>mitz</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>vangelis</cc>
    
    <cc>wangxianzhu</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>314744</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-11-29 17:07:52 -0800</bug_when>
    <thetext>The overlap testing logic in RenderLayerCompositor can throw layers into compositing when they should not be. This is wrong; overlap testing should only ever allow layers to be uncomposited.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314766</commentid>
    <comment_count>1</comment_count>
      <attachid>75091</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-11-29 17:32:52 -0800</bug_when>
    <thetext>Created attachment 75091
Testcase (throw into LayoutTests/compositing/layer-creation)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>315401</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-11-30 16:43:37 -0800</bug_when>
    <thetext>Need to make sure that LayoutTests/compositing/geometry/video-opacity-overlay.html doesn&apos;t regress when fixing this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>406767</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-05-19 17:18:57 -0700</bug_when>
    <thetext>&lt;rdar://problem/9473408&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>419063</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-06-10 17:15:51 -0700</bug_when>
    <thetext>When fixed, these tests should have new results (they changed due to bug 49857):
compositing/tiling/huge-layer-add-remove-child.html
compositing/tiling/huge-layer-resize.html
compositing/tiling/huge-layer.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537225</commentid>
    <comment_count>5</comment_count>
      <attachid>122786</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-01-17 11:25:23 -0800</bug_when>
    <thetext>Created attachment 122786
Corrected testcase

Corrected testcase, with z-index on .container to make it a stacking context.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537245</commentid>
    <comment_count>6</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-01-17 11:45:40 -0800</bug_when>
    <thetext>I think I can switch the overlap map to using a Region, and subtract out the rect for a stacking context&apos;s bounds to fix this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537358</commentid>
    <comment_count>7</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-01-17 14:36:05 -0800</bug_when>
    <thetext>The overlap map definitely seems to be doing the wrong thing here.  I think it serves a good purpose in general in promoting non-composited layers into composited layers for correctness, but it shouldn&apos;t be promoting already-composited layers into getting a new backing.

I wonder if computeCompositingRequirements is just checking the overlap map in too many cases, and needs to take into consideration whether there&apos;s already a compositing ancestor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538313</commentid>
    <comment_count>8</comment_count>
      <attachid>123032</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-01-18 16:26:53 -0800</bug_when>
    <thetext>Created attachment 123032
Handy interactive testcase (BYO video)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>541906</commentid>
    <comment_count>9</comment_count>
      <attachid>123860</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-01-24 17:45:47 -0800</bug_when>
    <thetext>Created attachment 123860
WIP patch; does not compile

This is my current thinking about how to address this, but it&apos;s not quite working yet.

Basically it changes the OverlapMap to be a Region, so that we can copy the region, and subtract out rectangles to avoid a child layer thinking that it has to overlap its composited parent. This also involves keeping a stack of OverlapMaps as we descend into composting layers with children. The part that isn&apos;t working is adding to the OverlapMaps on the stack when we do end up throwing layers into compositing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>541988</commentid>
    <comment_count>10</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-01-24 21:09:20 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; Created an attachment (id=123860) [details]
&gt; WIP patch; does not compile
&gt; 
&gt; This is my current thinking about how to address this, but it&apos;s not quite working yet.
&gt; 
&gt; Basically it changes the OverlapMap to be a Region, so that we can copy the region, and subtract out rectangles to avoid a child layer thinking that it has to overlap its composited parent. This also involves keeping a stack of OverlapMaps as we descend into composting layers with children. The part that isn&apos;t working is adding to the OverlapMaps on the stack when we do end up throwing layers into compositing.

Can I make a simplifying suggestion that also solves the issue of grandparent layers becoming composited later? Keep a single OverlapMap as now, and make a layer composited if it overlaps anything in it.  However, change the timing of when layers get added to it.

You could do this by keeping a single vector of bounding rects that you haven&apos;t added to the overlap map yet and pass a reference to it along recursively.  When you start processing a layer, append it to the vector.  At the end of processing a layer and all of its children, if that layer is composited and gets its own backing, pop all the bounding rects that were added to the list after you started processing that layer off the vector and add them to the OverlapMap.

This approach will let you have the full set of rects that you need to add at all times without requiring any bad O(n^2) behavior to reprocess an entire layer subtree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542246</commentid>
    <comment_count>11</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-01-25 07:26:05 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #9)
&gt; &gt; Created an attachment (id=123860) [details] [details]
&gt; &gt; WIP patch; does not compile
&gt; &gt; 
&gt; &gt; This is my current thinking about how to address this, but it&apos;s not quite working yet.
&gt; &gt; 
&gt; &gt; Basically it changes the OverlapMap to be a Region, so that we can copy the region, and subtract out rectangles to avoid a child layer thinking that it has to overlap its composited parent. This also involves keeping a stack of OverlapMaps as we descend into composting layers with children. The part that isn&apos;t working is adding to the OverlapMaps on the stack when we do end up throwing layers into compositing.
&gt; 
&gt; Can I make a simplifying suggestion that also solves the issue of grandparent layers becoming composited later? Keep a single OverlapMap as now, and make a layer composited if it overlaps anything in it.  However, change the timing of when layers get added to it.
&gt; 
&gt; You could do this by keeping a single vector of bounding rects that you haven&apos;t added to the overlap map yet and pass a reference to it along recursively.  When you start processing a layer, append it to the vector.  At the end of processing a layer and all of its children, if that layer is composited and gets its own backing, pop all the bounding rects that were added to the list after you started processing that layer off the vector and add them to the OverlapMap.
&gt; 
&gt; This approach will let you have the full set of rects that you need to add at all times without requiring any bad O(n^2) behavior to reprocess an entire layer subtree.

I think that&apos;s close to where I was going with this patch, but using Regions rather than a vector of rects. FWIW, this patch doesn&apos;t add any O(n^2) behavior, and I don&apos;t think finishing it up would require that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542424</commentid>
    <comment_count>12</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-01-25 10:29:47 -0800</bug_when>
    <thetext>(In reply to comment #11)

&gt; I think that&apos;s close to where I was going with this patch, but using Regions rather than a vector of rects. FWIW, this patch doesn&apos;t add any O(n^2) behavior, and I don&apos;t think finishing it up would require that.

Ok! I&apos;ll be interested to see how you finish it up, then.

The downside of regions is that all the rects are baked together, so to handle the case where a grandparent render layer becomes composited due to a grandchild I was thinking you&apos;d either need to use more memory (start a new region per render layer as you descend) or spend more time (go back and recurse through the tree again, like we unfortunately do now).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542441</commentid>
    <comment_count>13</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-01-25 10:46:11 -0800</bug_when>
    <thetext>The benefit of regions is that you can subtract out rects as well as add them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563659</commentid>
    <comment_count>14</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-02-23 16:27:56 -0800</bug_when>
    <thetext>*** Bug 78942 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563677</commentid>
    <comment_count>15</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-02-23 16:41:12 -0800</bug_when>
    <thetext>smfr: I had another question about your approach.

Correct me if I&apos;m wrong, but subtracting doesn&apos;t seem like enough.  The only time a layer should be promoted to become a composited layer is if it overlaps something between it and its composited ancestor.

As soon as a parent layer becomes composited, then for the purposes of its subtree, the overlap map shouldn&apos;t consider any layers considered prior to that parent.  In other words: rather than subtract, we should start with an empty region.

Am I missing something?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565795</commentid>
    <comment_count>16</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-02-27 10:34:55 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; smfr: I had another question about your approach.
&gt; 
&gt; Correct me if I&apos;m wrong, but subtracting doesn&apos;t seem like enough.  The only time a layer should be promoted to become a composited layer is if it overlaps something between it and its composited ancestor.

No, it might overlap something outside of the composited bounds of its composited ancestor.

&gt; As soon as a parent layer becomes composited, then for the purposes of its subtree, the overlap map shouldn&apos;t consider any layers considered prior to that parent.  In other words: rather than subtract, we should start with an empty region.
&gt; 
&gt; Am I missing something?

Yes, I think so; see above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566209</commentid>
    <comment_count>17</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-02-27 17:58:24 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; (In reply to comment #15)
&gt; &gt; smfr: I had another question about your approach.
&gt; &gt; 
&gt; &gt; Correct me if I&apos;m wrong, but subtracting doesn&apos;t seem like enough.  The only time a layer should be promoted to become a composited layer is if it overlaps something between it and its composited ancestor.
&gt; 
&gt; No, it might overlap something outside of the composited bounds of its composited ancestor.

(Do you mean absolute bounds? As far as I can tell, composited bounds are calculated by taking the union recursively of all children that are not composited themselves.  So, composited bounds can&apos;t be calculated until after determining what gets composited.)

However, why does a layer need to become composited if it overlaps something outside of its composited ancestor&apos;s absolute bounds? That&apos;s what seems unnecessary to me.  Here&apos;s the example I have in mind:

Sideways render layer hierarchy, leftward is the root:

a + - B
  |
  - - C - d

Spatial diagram of absolute bounds:

a
+-------------+
| B       C   |
| +--+    +-+ |
| | d|    | | |
| | +--+  +-+ |
| +-|+ |      |
|   +--+      |
|             |
+-------------+

Textual description: 

a is the parent of B and C.  C draws after B.  C is the parent of d.  B and C require compositing, a and d do not.  d overlaps B, but d&apos;s bounds are not contained by the bounds of C.

I believe that d should not get its own backing and should instead go into the backing of C.  Your code on line 760 will yield an overlap map that contains the absolute bounds of B minus the absolute bounds of C when processing layer d.  Since d overlaps B but is not contained by C, this code will cause d to get its own backing even when it is not necessary.

(Whether to split up a sparse backing is another question, but one that I don&apos;t think should not be decided by overlap tests.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566215</commentid>
    <comment_count>18</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-02-27 18:02:51 -0800</bug_when>
    <thetext>Right, and you(?) changed the overlap map to only contain absolute layer bounds, not composited bounds, which helps here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566242</commentid>
    <comment_count>19</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-02-27 18:35:06 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; Right, and you(?) changed the overlap map to only contain absolute layer bounds, not composited bounds, which helps here.

Looking in history at least back to 2009-07-07, the overlap map has always used absolute layer bounds.

I have added some code to add missing layers to the overlap map (e.g. https://bugs.webkit.org/show_bug.cgi?id=62465), and maybe that&apos;s what you&apos;re thinking of?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566326</commentid>
    <comment_count>20</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-02-27 20:27:37 -0800</bug_when>
    <thetext>Sorry, yes, I am.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>569781</commentid>
    <comment_count>21</comment_count>
      <attachid>129927</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-03-02 11:23:45 -0800</bug_when>
    <thetext>Created attachment 129927
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>569791</commentid>
    <comment_count>22</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-03-02 11:31:22 -0800</bug_when>
    <thetext>(In reply to comment #21)
&gt; Created an attachment (id=129927) [details]
&gt; Patch

Not to be rude and steal this bug from you Simon, but I&apos;d been staring at this code enough that I felt motivated enough to sit down and put code to words.  :)

It passes the test you attached above.  It fails some compositing layout tests in Chromium, which I&apos;m sure EWS will inform me about.  However, the ~5 image differences (on Chromium) are all due to the difference between drawing text into a layer and then rotating that layer vs. drawing rotated text onto a non-rotated layer and the ~6 text differences in are all due to layers being merged together that now can be.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>569972</commentid>
    <comment_count>23</comment_count>
      <attachid>129927</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-03-02 15:06:47 -0800</bug_when>
    <thetext>Comment on attachment 129927
Patch

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

This looks good. I would like to see an additional test that tests &gt; 1 level of nesting; I&apos;ll attach something to the bug.

&gt; Source/WebCore/rendering/RenderLayerCompositor.cpp:123
&gt; +    void startCompositingAncestor()
&gt; +    {
&gt; +        m_overlapStack.append(Region());
&gt; +    }
&gt; +
&gt; +    void endCompositingAncestor()
&gt; +    {
&gt; +        m_overlapStack[m_overlapStack.size() - 2].unite(m_overlapStack.last());
&gt; +        m_overlapStack.removeLast();
&gt; +    }

I think these methods could have better names. &quot;startCompositingAncestor&quot; implies &quot;start to composite the ancestor&quot;. It&apos;s really a push()/pop().

Maybe pushCompositingContainer/popCompositingContainer?

&gt; Source/WebCore/rendering/RenderLayerCompositor.cpp:803
&gt; +    if (overlapMap &amp;&amp; childState.m_compositingAncestor &amp;&amp; !childState.m_compositingAncestor-&gt;isRootLayer())
&gt; +        addToOverlapMap(*overlapMap, layer, absBounds, haveComputedBounds);

I&apos;d like to see a comment above these lines saying why you add this layer to the overlap map even if it is not being composited.

&gt; LayoutTests/compositing/layer-creation/stacking-context-overlap.html:10
&gt; +            -webkit-transform:translateZ(0);

Space after : please.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>569982</commentid>
    <comment_count>24</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-03-02 15:19:09 -0800</bug_when>
    <thetext>Here&apos;s the other test. It needs converting to a layout test:


&lt;!DOCTYPE html&gt;

&lt;html&gt;
&lt;head&gt;
  &lt;!-- &lt;meta name=&quot;viewport&quot; content=&quot;initial-scale=0.75&quot;&gt; --&gt;
  &lt;style&gt;
    body {
      margin: 0;
    }
    .box {
      position: absolute;
      top: 20px;
      left: 20px;
      height: 100px;
      width: 100px;
/*      overflow: hidden;*/
      background-color: red;
    }

    .composited {
      -webkit-transform: translateZ(0);
      background-color: green;
      outline: 10px solid transparent; /* inflate compositing layer bounds */
    }

    .box &gt; .box {
      top: 50px;
      left: 50px;
      width: 200px;
      background-color: rgba(255, 0, 0, 0.6);
    }
    
    #indicator {
      position: absolute;
      top: 75px;
      left: 75px;
      height: 56px;
      width: 56px;
      background-color: blue;
    }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;!-- &lt;div class=&quot;box&quot;&gt;
  &lt;div class=&quot;box&quot;&gt;
  &lt;/div&gt;
&lt;/div&gt; --&gt;

&lt;div class=&quot;composited box&quot;&gt;
  &lt;div class=&quot;composited box&quot;&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;div id=&quot;indicator&quot;&gt;&lt;/div&gt;

&lt;/body&gt;
&lt;/html&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570006</commentid>
    <comment_count>25</comment_count>
      <attachid>129927</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-02 15:48:26 -0800</bug_when>
    <thetext>Comment on attachment 129927
Patch

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

New failing tests:
compositing/geometry/limit-layer-bounds-transformed.html
compositing/reflections/reflection-on-composited.html
compositing/geometry/limit-layer-bounds-positioned.html
compositing/geometry/limit-layer-bounds-transformed-overflow.html
compositing/geometry/limit-layer-bounds-fixed-positioned.html
compositing/geometry/limit-layer-bounds-positioned-transition.html
compositing/shadows/shadow-drawing.html
compositing/reflections/nested-reflection-transformed.html
fast/repaint/block-selection-gap-in-composited-layer.html
compositing/geometry/limit-layer-bounds-overflow-root.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571177</commentid>
    <comment_count>26</comment_count>
      <attachid>130232</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-03-05 16:45:24 -0800</bug_when>
    <thetext>Created attachment 130232
Pre/post patch layer comparison

Before landing this, I discovered this issue during manual testing on maps.  The left of the image is before the patch (many, tight-fitting layers) and the right of the image is after the patch (one, too large layer).  The problem visually is that it seems weird that the layer is so large.

My conclusion is that this is a separate bug with calculateCompositedBounds.  I&apos;m wondering if there are layers that don&apos;t actually draw anything that are contributing to the size of a backing.  Previously, these layers would overlap something else, get their own backing, but then not draw.

I think this patch is still enough of a positive change to land on its own though, so I will file this issue separately.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571184</commentid>
    <comment_count>27</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-03-05 16:47:36 -0800</bug_when>
    <thetext>(In reply to comment #26)
&gt; Created an attachment (id=130232) [details]
&gt; Pre/post patch layer comparison

I should add that this is on http://goo.gl/eYGqX with Chrome, using accelerated canvas as a compositing trigger.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571227</commentid>
    <comment_count>28</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-03-05 17:13:39 -0800</bug_when>
    <thetext>Yes, this patch may cause some layers to get bigger. You can see this in the interactive testcase.

We should detect when it would be more efficient to composite a descendant layer separately based on layer area.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571242</commentid>
    <comment_count>29</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-03-05 17:22:14 -0800</bug_when>
    <thetext>(In reply to comment #26)
&gt; Created an attachment (id=130232) [details]
&gt; Pre/post patch layer comparison
&gt; 
&gt; Before landing this, I discovered this issue during manual testing on maps.  The left of the image is before the patch (many, tight-fitting layers) and the right of the image is after the patch (one, too large layer).  The problem visually is that it seems weird that the layer is so large.
&gt; 
&gt; My conclusion is that this is a separate bug with calculateCompositedBounds.  I&apos;m wondering if there are layers that don&apos;t actually draw anything that are contributing to the size of a backing.  Previously, these layers would overlap something else, get their own backing, but then not draw.
&gt; 


The &lt;div&gt; being composited has children that extend down that far, but they&apos;re clipped by a (software-rendered) ancestor.  When I load the page this part of the DOM looks like:
&lt;div id=&quot;views-control&quot; style=&quot;z-index: 0&quot;&gt; // this is composited
  &lt;div&gt;
    &lt;div&gt;
      &lt;div class=&quot;mv-scroller&quot; style=&quot;overflow-y: hidden; height: 26px&quot;&gt; // this clips
        &lt;div&gt;Traffic&lt;/div&gt;
        &lt;div&gt;Transit&lt;/div&gt;
        &lt;div&gt;Photos&lt;/div&gt;
...


Only the Traffic div is visible because of mv-scroller, but the other &lt;div&gt;s still occupy layout space and grow this layer&apos;s bounds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571253</commentid>
    <comment_count>30</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-03-05 17:30:09 -0800</bug_when>
    <thetext>I guess the overlap map isn&apos;t accounting for clipping at all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571285</commentid>
    <comment_count>31</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-03-05 17:49:16 -0800</bug_when>
    <thetext>(In reply to comment #30)
&gt; I guess the overlap map isn&apos;t accounting for clipping at all.

I think it should: https://bugs.webkit.org/show_bug.cgi?id=63493

I wonder if calculateCompositedBounds isn&apos;t also respecting the clipRect, and is unioning layers or parts of layers that would otherwise be clipped.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571329</commentid>
    <comment_count>32</comment_count>
      <attachid>130258</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-03-05 18:25:16 -0800</bug_when>
    <thetext>Created attachment 130258
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571383</commentid>
    <comment_count>33</comment_count>
      <attachid>130258</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-05 19:41:58 -0800</bug_when>
    <thetext>Comment on attachment 130258
Patch for landing

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

New failing tests:
fast/repaint/block-selection-gap-in-composited-layer.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571413</commentid>
    <comment_count>34</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-03-05 20:22:12 -0800</bug_when>
    <thetext>(In reply to comment #33)
&gt; (From update of attachment 130258 [details])
&gt; Attachment 130258 [details] did not pass chromium-ews (chromium-xvfb):
&gt; Output: http://queues.webkit.org/results/11839116
&gt; 
&gt; New failing tests:
&gt; fast/repaint/block-selection-gap-in-composited-layer.html

Oops, missed one.  I&apos;ll fix that on landing.

I&apos;ve filed the clipping issue separately as https://bugs.webkit.org/show_bug.cgi?id=80372 and am inclined to land this patch first and follow up fixing that afterwards.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571439</commentid>
    <comment_count>35</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-03-05 21:13:21 -0800</bug_when>
    <thetext>Committed r109851: &lt;http://trac.webkit.org/changeset/109851&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635360</commentid>
    <comment_count>36</comment_count>
    <who name="">mitz</who>
    <bug_when>2012-05-28 12:29:57 -0700</bug_when>
    <thetext>(In reply to comment #35)
&gt; Committed r109851: &lt;http://trac.webkit.org/changeset/109851&gt;

This caused bug 87674.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>75091</attachid>
            <date>2010-11-29 17:32:52 -0800</date>
            <delta_ts>2012-01-17 11:25:23 -0800</delta_ts>
            <desc>Testcase (throw into LayoutTests/compositing/layer-creation)</desc>
            <filename>overlap.html</filename>
            <type>text/html</type>
            <size>662</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+Cgo8aHRtbD4KPGhlYWQ+CiAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3Mi
IG1lZGlhPSJzY3JlZW4iPgogICAgCiAgICAgICAgLmNvbnRhaW5lciB7CiAgICAgICAgICAgIHBv
c2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgdG9wOiAtMTBweDsKICAgICAgICAgICAgaGVp
Z2h0OiAxMjBweDsKICAgICAgICAgICAgd2lkdGg6IDEyMHB4OwogICAgICAgICAgICBwYWRkaW5n
OiAxMHB4OwogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKICAgICAgICB9Cgog
ICAgICAgIC5ib3ggewogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAg
IGhlaWdodDogMTAwcHg7CiAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKICAgICAgICAgICAgbWFy
Z2luOiAxMHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzaWx2ZXI7CiAgICAgICAg
fQogICAgPC9zdHlsZT4KPC9oZWFkPgo8Ym9keT4KCiAgICA8dmlkZW8gc3JjPSIuLi9yZXNvdXJj
ZXMvdmlkZW8ubXA0IiBoZWlnaHQ9IjIwIiB3aWR0aD0iMjAiPjwvdmlkZW8+CgogICAgPGRpdiBj
bGFzcz0iY29udGFpbmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJjaGlsZCBib3giPgogICAgICAg
IDwvZGl2PgogICAgPC9kaXY+CjwvYm9keT4KPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>122786</attachid>
            <date>2012-01-17 11:25:23 -0800</date>
            <delta_ts>2012-01-17 11:25:23 -0800</delta_ts>
            <desc>Corrected testcase</desc>
            <filename>ovelap-nested.html</filename>
            <type>text/html</type>
            <size>732</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+Cgo8aHRtbD4KPGhlYWQ+CiAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3Mi
IG1lZGlhPSJzY3JlZW4iPgogICAgCiAgICAgICAgLmNvbnRhaW5lciB7CiAgICAgICAgICAgIHBv
c2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgei1pbmRleDogMDsKICAgICAgICAgICAgdG9w
OiAtMTBweDsKICAgICAgICAgICAgaGVpZ2h0OiAxMjBweDsKICAgICAgICAgICAgd2lkdGg6IDEy
MHB4OwogICAgICAgICAgICBwYWRkaW5nOiAxMHB4OwogICAgICAgICAgICBib3JkZXI6IDFweCBz
b2xpZCBibGFjazsKICAgICAgICB9CgogICAgICAgIC5ib3ggewogICAgICAgICAgICBwb3NpdGlv
bjogcmVsYXRpdmU7CiAgICAgICAgICAgIGhlaWdodDogMTAwcHg7CiAgICAgICAgICAgIHdpZHRo
OiAxMDBweDsKICAgICAgICAgICAgbWFyZ2luOiAxMHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5k
LWNvbG9yOiBzaWx2ZXI7CiAgICAgICAgfQogICAgPC9zdHlsZT4KPC9oZWFkPgo8Ym9keT4KCiAg
ICA8dmlkZW8gc3JjPSIuLi9yZXNvdXJjZXMvdmlkZW8ubXA0IiBoZWlnaHQ9IjIwIiB3aWR0aD0i
MjAiPjwvdmlkZW8+CgogICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KICAgICAgICA8ZGl2IGNs
YXNzPSJjaGlsZCBib3giPgogICAgICAgICAgVGhpcyBib3ggZG9lc24ndCBuZWVkIGl0cyBvd24g
bGF5ZXIuCiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KPC9ib2R5Pgo8L2h0bWw+
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>123032</attachid>
            <date>2012-01-18 16:26:53 -0800</date>
            <delta_ts>2012-01-18 16:26:53 -0800</delta_ts>
            <desc>Handy interactive testcase (BYO video)</desc>
            <filename>stacking-context-overlap2.html</filename>
            <type>text/html</type>
            <size>5440</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+Cgo8aHRtbD4KPGhlYWQ+CiAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3Mi
IG1lZGlhPSJzY3JlZW4iPgogICAgICAgIGJvZHkgewogICAgICAgICAgICBmb250LWZhbWlseTog
SGVsdmV0aWNhOwogICAgICAgIH0KICAgICAgICAuY29udGFpbmVyIHsKICAgICAgICAgICAgcG9z
aXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICBsZWZ0OiAwOwogICAgICAgICAgICB0b3A6IDA7
CiAgICAgICAgICAgIGhlaWdodDogMTYwcHg7CiAgICAgICAgICAgIHdpZHRoOiAxNjBweDsKICAg
ICAgICAgICAgYm9yZGVyOiAycHggc29saWQgYmx1ZTsKICAgICAgICB9CgogICAgICAgIC5ib3gg
ewogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIGxlZnQ6IDA7CiAg
ICAgICAgICAgIHRvcDogMDsKICAgICAgICAgICAgaGVpZ2h0OiAxMjBweDsKICAgICAgICAgICAg
d2lkdGg6IDEyMHB4OwogICAgICAgICAgICBtYXJnaW46IDEwcHg7CiAgICAgICAgICAgIGJhY2tn
cm91bmQtY29sb3I6IHNpbHZlcjsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgdmlkZW8gewog
ICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIHRvcDogMzAwcHg7CiAg
ICAgICAgICAgIGxlZnQ6IDMwMHB4OwogICAgICAgICAgICB3aWR0aDogMTAwcHg7CiAgICAgICAg
ICAgIGhlaWdodDogMTAwcHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIHNwYW4uY29udHJv
bHMgewogICAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgICAgcG9zaXRpb246IGFi
c29sdXRlOwogICAgICAgICAgICBmb250LXNpemU6IHNtYWxsOwogICAgICAgICAgICBib3R0b206
IDA7CiAgICAgICAgfQogICAgPC9zdHlsZT4KICAgIDxzY3JpcHQ+CiAgICB2YXIgdHJhY2tlZE9i
amVjdENvdW50ID0gMDsKICAgIAogICAgZnVuY3Rpb24gQm94KGluRWxlbWVudCkKICAgIHsKICAg
ICAgICB2YXIgc2VsZiA9IHRoaXM7CiAgICAgICAgCiAgICAgICAgdGhpcy5lbGVtZW50ID0gaW5F
bGVtZW50OwogICAgICAgIHZhciBsZWZ0ID0gcGFyc2VJbnQod2luZG93LmdldENvbXB1dGVkU3R5
bGUodGhpcy5lbGVtZW50KS5sZWZ0KTsKICAgICAgICB2YXIgdG9wID0gcGFyc2VJbnQod2luZG93
LmdldENvbXB1dGVkU3R5bGUodGhpcy5lbGVtZW50KS50b3ApOwogICAgICAgIHRoaXMucG9zaXRp
b24gPSBsZWZ0ICsgJywgJyArIHRvcDsKICAgICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0
ZW5lcignbW91c2Vkb3duJywgZnVuY3Rpb24oZSkgeyByZXR1cm4gc2VsZi5vbk1vdXNlRG93bihl
KSB9LCBmYWxzZSk7CiAgICAgICAgCiAgICAgICAgaWYgKHRoaXMuZWxlbWVudC50YWdOYW1lLnRv
TG93ZXJDYXNlKCkgPT0gImRpdiIpIHsKICAgICAgICAgICAgdmFyIGNvbnRyb2xzID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOwogICAgICAgICAgICBjb250cm9scy5jbGFzc05hbWUg
PSAnY29udHJvbHMnOwogICAgICAgICAgICBjb250cm9scy5pbm5lckhUTUwgPSAnPGlucHV0IHR5
cGU9ImNoZWNrYm94Ij5TdGFja2luZyBjb250ZXh0PC9pbnB1dD4nOwogICAgICAgICAgICAKICAg
ICAgICAgICAgdmFyIGNoZWNrYm94ID0gY29udHJvbHMucXVlcnlTZWxlY3RvcignaW5wdXQnKTsK
ICAgICAgICAgICAgY2hlY2tib3guYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgZnVuY3Rpb24o
ZSkgewogICAgICAgICAgICAgICAgc2VsZi50b2dnbGVTdGFja2luZ0NvbnRleHQodGhpcyk7CiAg
ICAgICAgICAgIH0pCiAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZChjb250cm9s
cyk7CiAgICAgICAgfQogICAgfQogICAgCiAgICBCb3gucHJvdG90eXBlID0gewogICAgICAgIC8v
IHBvc2l0aW9uIHN0cmluZ3MgYXJlICJ4LHkiIHdpdGggbm8gdW5pdHMKICAgICAgICBnZXQgcG9z
aXRpb24oKQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3Bvc2l0aW9uOwogICAg
ICAgIH0sCiAgICAgICAgCiAgICAgICAgc2V0IHBvc2l0aW9uKHBvcykKICAgICAgICB7CiAgICAg
ICAgICAgIHRoaXMuX3Bvc2l0aW9uID0gcG9zOwogICAgICAgICAgICAKICAgICAgICAgICAgdmFy
IGNvbXBvbmVudHMgPSBwb3Muc3BsaXQoJywnKQogICAgICAgICAgICB2YXIgeCA9IGNvbXBvbmVu
dHNbMF07CiAgICAgICAgICAgIHZhciB5ID0gY29tcG9uZW50c1sxXTsKICAgICAgICAgICAgCiAg
ICAgICAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS5sZWZ0ID0geCArICdweCc7CiAgICAgICAgICAg
IHRoaXMuZWxlbWVudC5zdHlsZS50b3AgPSB5ICsgJ3B4JzsKICAgICAgICB9LAogICAgICAgIAog
ICAgICAgIGdldCB4KCkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiBwYXJzZUludCh0aGlz
Ll9wb3NpdGlvbi5zcGxpdCgnLCcpWzBdKTsKICAgICAgICB9LAogICAgICAgIAogICAgICAgIHNl
dCB4KGluWCkKICAgICAgICB7CiAgICAgICAgICAgIHZhciBjb21wcyA9IHRoaXMuX3Bvc2l0aW9u
LnNwbGl0KCcsJyk7CiAgICAgICAgICAgIGNvbXBzWzBdID0gaW5YOwogICAgICAgICAgICB0aGlz
LnBvc2l0aW9uID0gY29tcHMuam9pbignLCcpOwogICAgICAgIH0sCiAgICAgICAgCiAgICAgICAg
Z2V0IHkoKQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuIHBhcnNlSW50KHRoaXMuX3Bvc2l0
aW9uLnNwbGl0KCcsJylbMV0pOwogICAgICAgIH0sCiAgICAgICAgCiAgICAgICAgc2V0IHkoaW5Z
KQogICAgICAgIHsKICAgICAgICAgICAgdmFyIGNvbXBzID0gdGhpcy5fcG9zaXRpb24uc3BsaXQo
JywnKTsKICAgICAgICAgICAgY29tcHNbMV0gPSBpblk7CiAgICAgICAgICAgIHRoaXMucG9zaXRp
b24gPSBjb21wcy5qb2luKCcsJyk7CiAgICAgICAgfSwKCiAgICAgICAgdG9nZ2xlU3RhY2tpbmdD
b250ZXh0OiBmdW5jdGlvbihjaGVja2JveCkKICAgICAgICB7CiAgICAgICAgICAgIHZhciB3YW50
U3RhY2tpbmcgPSBjaGVja2JveC5jaGVja2VkOwogICAgICAgICAgICBpZiAod2FudFN0YWNraW5n
KQogICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LnN0eWxlLnpJbmRleCA9IDA7CiAgICAgICAg
ICAgIGVsc2UKICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS56SW5kZXggPSAnYXV0
byc7CiAgICAgICAgfSwKCiAgICAgICAgb25Nb3VzZURvd246IGZ1bmN0aW9uKGUpCiAgICAgICAg
ewogICAgICAgICAgICAvLyBQcmV2ZW50IHRoZSBicm93c2VyIGZyb20gZG9pbmcgaXRzIGRlZmF1
bHQgdGhpbmcgKHNjcm9sbCwgem9vbSkKICAgICAgICAgICAgLy8gZS5wcmV2ZW50RGVmYXVsdCgp
OwoKICAgICAgICAgICAgdGhpcy5zdGFydFggPSBlLmNsaWVudFg7CiAgICAgICAgICAgIHRoaXMu
c3RhcnRZID0gZS5jbGllbnRZOwogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHNlbGYgPSB0
aGlzOwogICAgICAgICAgICBpZiAoISgibW91c2VNb3ZlSGFuZGxlciIgaW4gdGhpcykpIHsKICAg
ICAgICAgICAgICAgIHRoaXMubW91c2VNb3ZlSGFuZGxlciA9IGZ1bmN0aW9uKGUpIHsgcmV0dXJu
IHNlbGYub25Nb3VzZU1vdmUoZSkgfQogICAgICAgICAgICAgICAgdGhpcy5tb3VzZVVwSGFuZGxl
ciA9IGZ1bmN0aW9uKGUpIHsgcmV0dXJuIHNlbGYub25Nb3VzZVVwKGUpIH0KICAgICAgICAgICAg
fQogICAgICAgICAgICAKICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNl
bW92ZScsIHRoaXMubW91c2VNb3ZlSGFuZGxlciwgZmFsc2UpOwogICAgICAgICAgICB3aW5kb3cu
YWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIHRoaXMubW91c2VVcEhhbmRsZXIsIGZhbHNlKTsK
ICAgICAgICAgICAgCiAgICAgICAgICAgIHRyYWNrZWRPYmplY3RDb3VudCsrOwogICAgICAgICAg
ICAKICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgICAgfSwKCiAgICAgICAgb25Nb3VzZU1vdmU6IGZ1bmN0aW9uKGUpCiAgICAgICAg
ewogICAgICAgICAgICB2YXIgbGVmdERlbHRhID0gZS5jbGllbnRYIC0gdGhpcy5zdGFydFg7CiAg
ICAgICAgICAgIHZhciB0b3BEZWx0YSA9IGUuY2xpZW50WSAtIHRoaXMuc3RhcnRZOwogICAgICAg
ICAgICAKICAgICAgICAgICAgdmFyIG5ld0xlZnQgPSAodGhpcy54KSArIGxlZnREZWx0YTsKICAg
ICAgICAgICAgdmFyIG5ld1RvcCA9ICh0aGlzLnkpICsgdG9wRGVsdGE7CiAgICAgICAgICAgIAog
ICAgICAgICAgICB0aGlzLnBvc2l0aW9uID0gbmV3TGVmdCArICcsJyArIG5ld1RvcDsKICAgICAg
ICAgICAgdGhpcy5zdGFydFggPSBlLmNsaWVudFg7CiAgICAgICAgICAgIHRoaXMuc3RhcnRZID0g
ZS5jbGllbnRZOwogICAgICAgICAgICAKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAg
IH0sCiAgICAgICAgCiAgICAgICAgb25Nb3VzZVVwOiBmdW5jdGlvbihlKQogICAgICAgIHsKICAg
ICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMubW91
c2VNb3ZlSGFuZGxlciwgZmFsc2UpOwogICAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0
ZW5lcignbW91c2V1cCcsIHRoaXMubW91c2VVcEhhbmRsZXIsIGZhbHNlKTsKCiAgICAgICAgICAg
IHRyYWNrZWRPYmplY3RDb3VudC0tOwogICAgICAgICAgICAKICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgICAgIH0sCiAgICB9CiAgICAKICAgIGZ1bmN0aW9uIG1ha2VFbGVtZW50c0RyYWdn
YWJsZSgpCiAgICB7CiAgICAgICAgdmFyIGRpdnMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFn
TmFtZSgnZGl2Jyk7CiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkaXZzLmxlbmd0aDsgKytp
KSB7CiAgICAgICAgICAgIHZhciBjdXJyRGl2ID0gZGl2c1tpXTsKICAgICAgICAgICAgbmV3IEJv
eChjdXJyRGl2KTsKICAgICAgICB9CgogICAgICAgIHZhciB2aWRlb3MgPSBkb2N1bWVudC5nZXRF
bGVtZW50c0J5VGFnTmFtZSgndmlkZW8nKTsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZp
ZGVvcy5sZW5ndGg7ICsraSkgewogICAgICAgICAgICB2YXIgY3VyclZpZGVvID0gdmlkZW9zW2ld
OwogICAgICAgICAgICBuZXcgQm94KGN1cnJWaWRlbyk7CiAgICAgICAgfQogICAgfQogICAgd2lu
ZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBtYWtlRWxlbWVudHNEcmFnZ2FibGUsIGZhbHNl
KQogICAgPC9zY3JpcHQ+CjwvaGVhZD4KPGJvZHk+CgogICAgPHZpZGVvIHNyYz0iLi4vcmVzb3Vy
Y2VzL3ZpZGVvLm1wNCIgaGVpZ2h0PSIyMCIgd2lkdGg9IjIwIj48L3ZpZGVvPgoKICAgIDxkaXYg
Y2xhc3M9ImNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0iY2hpbGQgYm94Ij4KICAgICAg
ICAgIFRoaXMgYm94IGRvZXNuJ3QgbmVlZCBpdHMgb3duIGxheWVyLgogICAgICAgIDwvZGl2Pgog
ICAgPC9kaXY+CjwvYm9keT4KPC9odG1sPg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123860</attachid>
            <date>2012-01-24 17:45:47 -0800</date>
            <delta_ts>2012-03-05 18:25:03 -0800</delta_ts>
            <desc>WIP patch; does not compile</desc>
            <filename>50192_wip.txt</filename>
            <type>text/plain</type>
            <size>22744</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2xheWVyLWNyZWF0aW9uL292ZXJs
YXAtaW5uZXItc3RhY2tpbmctY29udGV4dC5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcv
bGF5ZXItY3JlYXRpb24vb3ZlcmxhcC1pbm5lci1zdGFja2luZy1jb250ZXh0Lmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjRlZjE4YQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2xheWVyLWNyZWF0aW9uL292ZXJsYXAtaW5uZXItc3Rh
Y2tpbmctY29udGV4dC5odG1sCkBAIC0wLDAgKzEsNTkgQEAKKzwhRE9DVFlQRSBodG1sPgorCis8
aHRtbD4KKzxoZWFkPgorICA8IS0tIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJpbml0
aWFsLXNjYWxlPTAuNzUiPiAtLT4KKyAgPHN0eWxlPgorICAgIGJvZHkgeworICAgICAgbWFyZ2lu
OiAwOworICAgIH0KKyAgICAuYm94IHsKKyAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAg
IHRvcDogMjBweDsKKyAgICAgIGxlZnQ6IDIwcHg7CisgICAgICBoZWlnaHQ6IDEwMHB4OworICAg
ICAgd2lkdGg6IDEwMHB4OworLyogICAgICBvdmVyZmxvdzogaGlkZGVuOyovCisgICAgICBiYWNr
Z3JvdW5kLWNvbG9yOiByZWQ7CisgICAgfQorCisgICAgLmNvbXBvc2l0ZWQgeworICAgICAgLXdl
YmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBn
cmVlbjsKKyAgICAgIG91dGxpbmU6IDEwcHggc29saWQgdHJhbnNwYXJlbnQ7IC8qIGluZmxhdGUg
Y29tcG9zaXRpbmcgbGF5ZXIgYm91bmRzICovCisgICAgfQorCisgICAgLmJveCA+IC5ib3ggewor
ICAgICAgdG9wOiA1MHB4OworICAgICAgbGVmdDogNTBweDsKKyAgICAgIHdpZHRoOiAyMDBweDsK
KyAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAwLCAwLCAwLjYpOworICAgIH0KKyAg
ICAKKyAgICAjaW5kaWNhdG9yIHsKKyAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgIHRv
cDogNzVweDsKKyAgICAgIGxlZnQ6IDc1cHg7CisgICAgICBoZWlnaHQ6IDU2cHg7CisgICAgICB3
aWR0aDogNTZweDsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7CisgICAgfQorICA8L3N0
eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8IS0tIFRlc3QgaXMgb25seSBtZWFuaW5nZnVsIG9uIHBs
YXRmb3JtcyB0aGF0IGNhbGwgR3JhcGhpY3NMYXllcjo6c2V0S2VlcFBpeGVsQWxpZ25lZCgpIC0t
PgorPCEtLSBZb3Ugc2hvdWxkIHNlZSBvbmUgZ3JlZW4gYm94LCBhbmQgbm8gcmVkIGJlbG93LiAt
LT4KKworPCEtLSA8ZGl2IGNsYXNzPSJib3giPgorICA8ZGl2IGNsYXNzPSJib3giPgorICA8L2Rp
dj4KKzwvZGl2PiAtLT4KKworPGRpdiBjbGFzcz0iY29tcG9zaXRlZCBib3giPgorICA8ZGl2IGNs
YXNzPSJjb21wb3NpdGVkIGJveCI+PC9kaXY+Cis8L2Rpdj4KKworPGRpdiBpZD0iaW5kaWNhdG9y
Ij48L2Rpdj4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvbGF5ZXItY3JlYXRpb24vc3RhY2tpbmctY29udGV4dC1vdmVybGFwLmh0bWwgYi9M
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9sYXllci1jcmVhdGlvbi9zdGFja2luZy1jb250ZXh0LW92
ZXJsYXAuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NDQ4OWI4Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvbGF5ZXItY3JlYXRpb24v
c3RhY2tpbmctY29udGV4dC1vdmVybGFwLmh0bWwKQEAgLTAsMCArMSwzOCBAQAorPCFET0NUWVBF
IGh0bWw+CisKKzxodG1sPgorPGhlYWQ+CisgICAgPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRp
YT0ic2NyZWVuIj4KKyAgICAKKyAgICAgICAgLmNvbnRhaW5lciB7CisgICAgICAgICAgICBwb3Np
dGlvbjogcmVsYXRpdmU7CisgICAgICAgICAgICB6LWluZGV4OiAwOworICAgICAgICAgICAgdG9w
OiAtMTBweDsKKyAgICAgICAgICAgIGhlaWdodDogMTIwcHg7CisgICAgICAgICAgICB3aWR0aDog
MTIwcHg7CisgICAgICAgICAgICBwYWRkaW5nOiAxMHB4OworICAgICAgICAgICAgYm9yZGVyOiAx
cHggc29saWQgYmxhY2s7CisgICAgICAgIH0KKworICAgICAgICAuYm94IHsKKyAgICAgICAgICAg
IHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAgICAgICAgIGxlZnQ6IDE2MHB4OworICAgICAgICAg
ICAgdG9wOiAyMDBweDsKKyAgICAgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgICAgICB3
aWR0aDogMTAwcHg7CisgICAgICAgICAgICBtYXJnaW46IDEwcHg7CisgICAgICAgICAgICBiYWNr
Z3JvdW5kLWNvbG9yOiBzaWx2ZXI7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorPC9oZWFkPgor
PGJvZHk+CisKKyAgICA8dmlkZW8gc3JjPSIuLi9yZXNvdXJjZXMvdmlkZW8ubXA0IiBoZWlnaHQ9
IjIwIiB3aWR0aD0iMjAiPjwvdmlkZW8+CisKKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgor
ICAgICAgICA8ZGl2IGNsYXNzPSJjaGlsZCBib3giPgorICAgICAgICAgIFRoaXMgYm94IGRvZXNu
J3QgbmVlZCBpdHMgb3duIGxheWVyLgorICAgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKzwvYm9k
eT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZWdpb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvUmVnaW9uLmNwcAppbmRleCA1NDI3YzZjLi4yMDk3ZWVhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZWdpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlZ2lvbi5jcHAKQEAgLTQ1MSw0ICs0
NTEsMjYgQEAgdm9pZCBSZWdpb246OnRyYW5zbGF0ZShjb25zdCBJbnRTaXplJiBvZmZzZXQpCiAg
ICAgbV9zaGFwZS50cmFuc2xhdGUob2Zmc2V0KTsKIH0KIAorYm9vbCBSZWdpb246OmludGVyc2Vj
dHMoY29uc3QgUmVnaW9uJiByZWdpb24pIGNvbnN0Cit7CisgICAgaWYgKCFtX2JvdW5kcy5pbnRl
cnNlY3RzKHJlZ2lvbi5tX2JvdW5kcykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8v
IEZJWE1FOiB0aGlzIGNvdWxkIGJlIG9wdGltaXplZC4KKyAgICBSZWdpb24gdGVtcFJlZ2lvbigq
dGhpcyk7CisgICAgdGVtcFJlZ2lvbi5pbnRlcnNlY3QocmVnaW9uKTsKKyAgICByZXR1cm4gIXRl
bXBSZWdpb24uaXNFbXB0eSgpOworfQorCitib29sIFJlZ2lvbjo6Y29udGFpbnMoY29uc3QgUmVn
aW9uJiByZWdpb24pIGNvbnN0Cit7CisgICAgaWYgKCFtX2JvdW5kcy5pbnRlcnNlY3RzKHJlZ2lv
bi5tX2JvdW5kcykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vIEZJWE1FOiB0aGlz
IGNvdWxkIGJlIG9wdGltaXplZC4KKyAgICBSZWdpb24gdGVtcFJlZ2lvbigqdGhpcyk7CisgICAg
dGVtcFJlZ2lvbi5pbnRlcnNlY3QocmVnaW9uKTsKKyAgICByZXR1cm4gdGVtcFJlZ2lvbiA9PSBy
ZWdpb247Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlZ2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvUmVnaW9uLmgKaW5kZXggYjUzNTliYi4uZDhmMTkwYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVnaW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVnaW9uLmgKQEAgLTQ3LDYgKzQ3LDkgQEAgcHVibGlj
OgogCiAgICAgdm9pZCB0cmFuc2xhdGUoY29uc3QgSW50U2l6ZSYpOwogCisgICAgYm9vbCBpbnRl
cnNlY3RzKGNvbnN0IFJlZ2lvbiYpIGNvbnN0OworICAgIGJvb2wgY29udGFpbnMoY29uc3QgUmVn
aW9uJikgY29uc3Q7CisKICNpZm5kZWYgTkRFQlVHCiAgICAgdm9pZCBkdW1wKCkgY29uc3Q7CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNv
bXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9z
aXRvci5jcHAKaW5kZXggNzBjYTMzZS4uNGVlMjE1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTQyLDYgKzQyLDcgQEAK
ICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCiAjaW5jbHVkZSAiTm9kZUxpc3QuaCIKICNpbmNs
dWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUmVnaW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVyQXBwbGV0
LmgiCiAjaW5jbHVkZSAiUmVuZGVyRW1iZWRkZWRPYmplY3QuaCIKICNpbmNsdWRlICJSZW5kZXJG
dWxsU2NyZWVuLmgiCkBAIC03Nyw3ICs3OCwzMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVz
aW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLXN0cnVjdCBDb21wb3NpdGluZ1N0YXRlIHsKK3N0
cnVjdCBSZW5kZXJMYXllckNvbXBvc2l0b3I6Ok92ZXJsYXBNYXAgOiBwdWJsaWMgUmVmQ291bnRl
ZDxSZW5kZXJMYXllckNvbXBvc2l0b3I6Ok92ZXJsYXBNYXA+IHsKKyAgICBIYXNoU2V0PFJlbmRl
ckxheWVyKj4gaW5jbHVkZWRMYXllcnM7CisgICAgUmVnaW9uIHJlZ2lvbjsKKyAgICAKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxPdmVybGFwTWFwPiBjcmVhdGUoKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBSZW5kZXJMYXllckNvbXBvc2l0b3I6Ok92ZXJsYXBNYXAoKSk7Cisg
ICAgfQorCisgICAgc3RhdGljIFBhc3NSZWZQdHI8T3ZlcmxhcE1hcD4gY3JlYXRlKGNvbnN0IE92
ZXJsYXBNYXAmIG90aGVyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBSZW5k
ZXJMYXllckNvbXBvc2l0b3I6Ok92ZXJsYXBNYXAob3RoZXIpKTsKKyAgICB9CisKK3ByaXZhdGU6
CisgICAgT3ZlcmxhcE1hcCgpIHsgfQorCisgICAgT3ZlcmxhcE1hcChjb25zdCBPdmVybGFwTWFw
JiBvdGhlcikKKyAgICA6IGluY2x1ZGVkTGF5ZXJzKG90aGVyLmluY2x1ZGVkTGF5ZXJzKQorICAg
ICwgcmVnaW9uKG90aGVyLnJlZ2lvbikKKyAgICB7CisgICAgfQorfTsKKworc3RydWN0IFJlbmRl
ckxheWVyQ29tcG9zaXRvcjo6Q29tcG9zaXRpbmdTdGF0ZSB7CiAgICAgQ29tcG9zaXRpbmdTdGF0
ZShSZW5kZXJMYXllciogY29tcEFuY2VzdG9yKQogICAgICAgICA6IG1fY29tcG9zaXRpbmdBbmNl
c3Rvcihjb21wQW5jZXN0b3IpCiAgICAgICAgICwgbV9zdWJ0cmVlSXNDb21wb3NpdGluZyhmYWxz
ZSkKQEAgLTg2LDggKzExMSw5IEBAIHN0cnVjdCBDb21wb3NpdGluZ1N0YXRlIHsKICNlbmRpZgog
ICAgIHsKICAgICB9Ci0gICAgCisKICAgICBSZW5kZXJMYXllciogbV9jb21wb3NpdGluZ0FuY2Vz
dG9yOworICAgIFJlZlB0cjxSZW5kZXJMYXllckNvbXBvc2l0b3I6Ok92ZXJsYXBNYXA+IG1fYW5j
ZXN0b3JDb21wb3NpdGluZ1JlZ2lvbjsgLy8gUmVnaW9uIGZvciB0aGUgbGF5ZXJzIHdoaWNoIHJl
bmRlciBpbnRvIG1fY29tcG9zaXRpbmdBbmNlc3RvcidzIGNvbXBvc2l0aW5nIGxheWVyLiBGSVhN
RToganVzdCB1c2UgYSByZWdpb24/CiAgICAgYm9vbCBtX3N1YnRyZWVJc0NvbXBvc2l0aW5nOwog
I2lmbmRlZiBOREVCVUcKICAgICBpbnQgbV9kZXB0aDsKQEAgLTMwNiw4ICszMzIsOCBAQCB2b2lk
IFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlQ29tcG9zaXRpbmdMYXllcnMoQ29tcG9zaXRp
bmdVcGRhdGVUeXBlIHVwZGF0ZQogICAgICAgICBDb21wb3NpdGluZ1N0YXRlIGNvbXBTdGF0ZSh1
cGRhdGVSb290KTsKICAgICAgICAgYm9vbCBsYXllcnNDaGFuZ2VkID0gZmFsc2U7CiAgICAgICAg
IGlmIChtX2NvbXBvc2l0aW5nQ29uc3VsdHNPdmVybGFwKSB7Ci0gICAgICAgICAgICBPdmVybGFw
TWFwIG92ZXJsYXBUZXN0UmVxdWVzdE1hcDsKLSAgICAgICAgICAgIGNvbXB1dGVDb21wb3NpdGlu
Z1JlcXVpcmVtZW50cyh1cGRhdGVSb290LCAmb3ZlcmxhcFRlc3RSZXF1ZXN0TWFwLCBjb21wU3Rh
dGUsIGxheWVyc0NoYW5nZWQpOworICAgICAgICAgICAgUmVmUHRyPE92ZXJsYXBNYXA+IG92ZXJs
YXBUZXN0UmVxdWVzdE1hcCA9IE92ZXJsYXBNYXA6OmNyZWF0ZSgpOworICAgICAgICAgICAgY29t
cHV0ZUNvbXBvc2l0aW5nUmVxdWlyZW1lbnRzKHVwZGF0ZVJvb3QsIG92ZXJsYXBUZXN0UmVxdWVz
dE1hcC5nZXQoKSwgY29tcFN0YXRlLCBsYXllcnNDaGFuZ2VkKTsKICAgICAgICAgfSBlbHNlCiAg
ICAgICAgICAgICBjb21wdXRlQ29tcG9zaXRpbmdSZXF1aXJlbWVudHModXBkYXRlUm9vdCwgMCwg
Y29tcFN0YXRlLCBsYXllcnNDaGFuZ2VkKTsKICAgICAgICAgCkBAIC01ODEsMzkgKzYwNywzNyBA
QCBSZW5kZXJMYXllciogUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjplbmNsb3NpbmdOb25TdGFja2lu
Z0NsaXBwaW5nTGF5ZXIoY29uc3QgUmVuZAogICAgIHJldHVybiAwOwogfQogCi12b2lkIFJlbmRl
ckxheWVyQ29tcG9zaXRvcjo6YWRkVG9PdmVybGFwTWFwKE92ZXJsYXBNYXAmIG92ZXJsYXBNYXAs
IFJlbmRlckxheWVyKiBsYXllciwgTGF5b3V0UmVjdCYgbGF5ZXJCb3VuZHMsIGJvb2wmIGJvdW5k
c0NvbXB1dGVkKQordm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmFkZFRvT3ZlcmxhcE1hcChP
dmVybGFwTWFwJiBvdmVybGFwTWFwLCBSZW5kZXJMYXllciogbGF5ZXIsIGNvbnN0IExheW91dFJl
Y3QmIGxheWVyQm91bmRzKQogewogICAgIGlmIChsYXllci0+aXNSb290TGF5ZXIoKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgaWYgKCFib3VuZHNDb21wdXRlZCkgewotICAgICAgICBsYXllckJv
dW5kcyA9IGxheWVyLT5yZW5kZXJlcigpLT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UmVjdChs
YXllci0+bG9jYWxCb3VuZGluZ0JveCgpKSkuZW5jbG9zaW5nQm91bmRpbmdCb3goKTsKLSAgICAg
ICAgLy8gRW1wdHkgcmVjdHMgbmV2ZXIgaW50ZXJzZWN0LCBidXQgd2UgbmVlZCB0aGVtIHRvIGZv
ciB0aGUgcHVycG9zZXMgb2Ygb3ZlcmxhcCB0ZXN0aW5nLgotICAgICAgICBpZiAobGF5ZXJCb3Vu
ZHMuaXNFbXB0eSgpKQotICAgICAgICAgICAgbGF5ZXJCb3VuZHMuc2V0U2l6ZShMYXlvdXRTaXpl
KDEsIDEpKTsKLSAgICAgICAgYm91bmRzQ29tcHV0ZWQgPSB0cnVlOwotICAgIH0KLQogICAgIExh
eW91dFJlY3QgY2xpcFJlY3QgPSBsYXllci0+YmFja2dyb3VuZENsaXBSZWN0KHJvb3RSZW5kZXJM
YXllcigpLCAwLCB0cnVlKS5yZWN0KCk7IC8vIEZJWE1FOiBJbmNvcnJlY3QgZm9yIENTUyByZWdp
b25zLgogICAgIGNsaXBSZWN0LmludGVyc2VjdChsYXllckJvdW5kcyk7Ci0gICAgb3ZlcmxhcE1h
cC5hZGQobGF5ZXIsIGNsaXBSZWN0KTsKKyAgICAKKyAgICBmcHJpbnRmKHN0ZGVyciwgIkxheWVy
ICVwIGFkZGluZyAlZCwlZCAlZHglZCB0byBvdmVybGFwIG1hcFxuIiwgbGF5ZXIsIGNsaXBSZWN0
LngoKSwgY2xpcFJlY3QueSgpLCBjbGlwUmVjdC53aWR0aCgpLCBjbGlwUmVjdC5oZWlnaHQoKSk7
CisgICAgb3ZlcmxhcE1hcC5pbmNsdWRlZExheWVycy5hZGQobGF5ZXIpOworICAgIG92ZXJsYXBN
YXAucmVnaW9uLnVuaXRlKGNsaXBSZWN0KTsKIH0KIAotdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0
b3I6OmFkZFRvT3ZlcmxhcE1hcFJlY3Vyc2l2ZShPdmVybGFwTWFwJiBvdmVybGFwTWFwLCBSZW5k
ZXJMYXllciogbGF5ZXIpCit2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6YWRkVG9PdmVybGFw
TWFwUmVjdXJzaXZlKE92ZXJsYXBNYXAmIG92ZXJsYXBNYXAsIFJlbmRlckxheWVyKiBsYXllciwg
Q29tcG9zaXRpbmdTdGF0ZSYgY29tcG9zaXRpbmdTdGF0ZSkKIHsKLSAgICBpZiAoIWNhbkJlQ29t
cG9zaXRlZChsYXllcikgfHwgb3ZlcmxhcE1hcC5jb250YWlucyhsYXllcikpCisvLyAgICBpZiAo
b3ZlcmxhcE1hcC5pbmNsdWRlZExheWVycy5jb250YWlucyhsYXllcikpCisvLyAgICAgICAgZnBy
aW50ZihzdGRlcnIsICJSZWR1bmRhbnQgYWRkaXRpb24gb2YgJXAgdG8gb3ZlcmxhcCBtYXBcbiIs
IGxheWVyKTsKKyAgICBpZiAoIWNhbkJlQ29tcG9zaXRlZChsYXllcikgfHwgb3ZlcmxhcE1hcC5p
bmNsdWRlZExheWVycy5jb250YWlucyhsYXllcikpCiAgICAgICAgIHJldHVybjsKIAotICAgIExh
eW91dFJlY3QgYm91bmRzOwotICAgIGJvb2wgaGF2ZUNvbXB1dGVkQm91bmRzID0gZmFsc2U7Ci0g
ICAgYWRkVG9PdmVybGFwTWFwKG92ZXJsYXBNYXAsIGxheWVyLCBib3VuZHMsIGhhdmVDb21wdXRl
ZEJvdW5kcyk7CisgICAgTGF5b3V0UmVjdCBsYXllckJvdW5kcyA9IGxheWVyLT5yZW5kZXJlcigp
LT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UmVjdChsYXllci0+bG9jYWxCb3VuZGluZ0JveCgp
KSkuZW5jbG9zaW5nQm91bmRpbmdCb3goKTsKKyAgICBhZGRUb092ZXJsYXBNYXAob3ZlcmxhcE1h
cCwgbGF5ZXIsIGxheWVyQm91bmRzKTsKKyAgICBpZiAoY29tcG9zaXRpbmdTdGF0ZS5tX2FuY2Vz
dG9yQ29tcG9zaXRpbmdSZWdpb24pCisgICAgICAgIGNvbXBvc2l0aW5nU3RhdGUubV9hbmNlc3Rv
ckNvbXBvc2l0aW5nUmVnaW9uLT5yZWdpb24udW5pdGUobGF5ZXJCb3VuZHMpOwogCiAgICAgaWYg
KGxheWVyLT5pc1N0YWNraW5nQ29udGV4dCgpKSB7CiAgICAgICAgIGlmIChWZWN0b3I8UmVuZGVy
TGF5ZXIqPiogbmVnWk9yZGVyTGlzdCA9IGxheWVyLT5uZWdaT3JkZXJMaXN0KCkpIHsKICAgICAg
ICAgICAgIHNpemVfdCBsaXN0U2l6ZSA9IG5lZ1pPcmRlckxpc3QtPnNpemUoKTsKICAgICAgICAg
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlzdFNpemU7ICsraSkgewogICAgICAgICAgICAg
ICAgIFJlbmRlckxheWVyKiBjdXJMYXllciA9IG5lZ1pPcmRlckxpc3QtPmF0KGkpOwotICAgICAg
ICAgICAgICAgIGFkZFRvT3ZlcmxhcE1hcFJlY3Vyc2l2ZShvdmVybGFwTWFwLCBjdXJMYXllcik7
CisgICAgICAgICAgICAgICAgYWRkVG9PdmVybGFwTWFwUmVjdXJzaXZlKG92ZXJsYXBNYXAsIGN1
ckxheWVyLCBjb21wb3NpdGluZ1N0YXRlKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAg
IH0KQEAgLTYyMyw3ICs2NDcsNyBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6YWRkVG9P
dmVybGFwTWFwUmVjdXJzaXZlKE92ZXJsYXBNYXAmIG92ZXJsYXBNYXAsIFJlbgogICAgICAgICBz
aXplX3QgbGlzdFNpemUgPSBub3JtYWxGbG93TGlzdC0+c2l6ZSgpOwogICAgICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IGxpc3RTaXplOyArK2kpIHsKICAgICAgICAgICAgIFJlbmRlckxheWVy
KiBjdXJMYXllciA9IG5vcm1hbEZsb3dMaXN0LT5hdChpKTsKLSAgICAgICAgICAgIGFkZFRvT3Zl
cmxhcE1hcFJlY3Vyc2l2ZShvdmVybGFwTWFwLCBjdXJMYXllcik7CisgICAgICAgICAgICBhZGRU
b092ZXJsYXBNYXBSZWN1cnNpdmUob3ZlcmxhcE1hcCwgY3VyTGF5ZXIsIGNvbXBvc2l0aW5nU3Rh
dGUpOwogICAgICAgICB9CiAgICAgfQogCkBAIC02MzIsNyArNjU2LDcgQEAgdm9pZCBSZW5kZXJM
YXllckNvbXBvc2l0b3I6OmFkZFRvT3ZlcmxhcE1hcFJlY3Vyc2l2ZShPdmVybGFwTWFwJiBvdmVy
bGFwTWFwLCBSZW4KICAgICAgICAgICAgIHNpemVfdCBsaXN0U2l6ZSA9IHBvc1pPcmRlckxpc3Qt
PnNpemUoKTsKICAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlzdFNpemU7ICsr
aSkgewogICAgICAgICAgICAgICAgIFJlbmRlckxheWVyKiBjdXJMYXllciA9IHBvc1pPcmRlckxp
c3QtPmF0KGkpOwotICAgICAgICAgICAgICAgIGFkZFRvT3ZlcmxhcE1hcFJlY3Vyc2l2ZShvdmVy
bGFwTWFwLCBjdXJMYXllcik7CisgICAgICAgICAgICAgICAgYWRkVG9PdmVybGFwTWFwUmVjdXJz
aXZlKG92ZXJsYXBNYXAsIGN1ckxheWVyLCBjb21wb3NpdGluZ1N0YXRlKTsKICAgICAgICAgICAg
IH0KICAgICAgICAgfQogICAgIH0KQEAgLTY0MCwxNCArNjY0LDE1IEBAIHZvaWQgUmVuZGVyTGF5
ZXJDb21wb3NpdG9yOjphZGRUb092ZXJsYXBNYXBSZWN1cnNpdmUoT3ZlcmxhcE1hcCYgb3Zlcmxh
cE1hcCwgUmVuCiAKIGJvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpvdmVybGFwc0NvbXBvc2l0
ZWRMYXllcnMoT3ZlcmxhcE1hcCYgb3ZlcmxhcE1hcCwgY29uc3QgTGF5b3V0UmVjdCYgbGF5ZXJC
b3VuZHMpCiB7Ci0gICAgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpPdmVybGFwTWFwOjpjb25zdF9p
dGVyYXRvciBlbmQgPSBvdmVybGFwTWFwLmVuZCgpOwotICAgIGZvciAoUmVuZGVyTGF5ZXJDb21w
b3NpdG9yOjpPdmVybGFwTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IG92ZXJsYXBNYXAuYmVnaW4o
KTsgaXQgIT0gZW5kOyArK2l0KSB7Ci0gICAgICAgIGNvbnN0IExheW91dFJlY3QmIGJvdW5kcyA9
IGl0LT5zZWNvbmQ7Ci0gICAgICAgIGlmIChsYXllckJvdW5kcy5pbnRlcnNlY3RzKGJvdW5kcykp
Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9CisgICAgcmV0dXJuIG92ZXJsYXBNYXAu
cmVnaW9uLmludGVyc2VjdHMobGF5ZXJCb3VuZHMpOworfQorCitzdGF0aWMgaW5saW5lIGJvb2wg
aGFzRGVzY2VuZGFudExheWVycyhjb25zdCBSZW5kZXJMYXllciogbGF5ZXIpCit7CisgICAgaWYg
KGxheWVyLT5pc1N0YWNraW5nQ29udGV4dCgpKQorICAgICAgICByZXR1cm4gKGxheWVyLT5uZWda
T3JkZXJMaXN0KCkgJiYgIWxheWVyLT5uZWdaT3JkZXJMaXN0KCktPmlzRW1wdHkoKSkgfHwgKGxh
eWVyLT5wb3NaT3JkZXJMaXN0KCkgJiYgIWxheWVyLT5wb3NaT3JkZXJMaXN0KCktPmlzRW1wdHko
KSk7CiAgICAgCi0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBsYXllci0+bm9ybWFsRmxv
d0xpc3QoKSAmJiAhbGF5ZXItPm5vcm1hbEZsb3dMaXN0KCktPmlzRW1wdHkoKTsKIH0KIAogLy8g
IFJlY3Vyc2UgdGhyb3VnaCB0aGUgbGF5ZXJzIGluIHotaW5kZXggYW5kIG92ZXJmbG93IG9yZGVy
ICh3aGljaCBpcyBlcXVpdmFsZW50IHRvIHBhaW50aW5nIG9yZGVyKQpAQCAtNjU5LDI2ICs2ODQs
NDcgQEAgYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6Om92ZXJsYXBzQ29tcG9zaXRlZExheWVy
cyhPdmVybGFwTWFwJiBvdmVybGFwTWFwLCBjb24KIC8vICAgICAgbXVzdCBiZSBjb21wb3NpdGlu
ZyBzbyB0aGF0IGl0cyBjb250ZW50cyByZW5kZXIgb3ZlciB0aGF0IGNoaWxkLgogLy8gICAgICBU
aGlzIGltcGxpZXMgdGhhdCBpdHMgcG9zaXRpdmUgei1pbmRleCBjaGlsZHJlbiBtdXN0IGFsc28g
YmUgY29tcG9zaXRpbmcuCiAvLwotdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNvbXB1dGVD
b21wb3NpdGluZ1JlcXVpcmVtZW50cyhSZW5kZXJMYXllciogbGF5ZXIsIE92ZXJsYXBNYXAqIG92
ZXJsYXBNYXAsIHN0cnVjdCBDb21wb3NpdGluZ1N0YXRlJiBjb21wb3NpdGluZ1N0YXRlLCBib29s
JiBsYXllcnNDaGFuZ2VkKQorLy8gIFdoZW4gb3ZlcmxhcCB0ZXN0aW5nIGlzIGVuYWJsZWQ6Cisv
LyAgICAgIFRoZSBvdmVybGFwIG1hcCBpcyBhIHJlZ2lvbiAKKy8vCisvLworLy8KKy8vCit2b2lk
IFJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y29tcHV0ZUNvbXBvc2l0aW5nUmVxdWlyZW1lbnRzKFJl
bmRlckxheWVyKiBsYXllciwgT3ZlcmxhcE1hcCogb3ZlcmxhcE1hcCwgQ29tcG9zaXRpbmdTdGF0
ZSYgY29tcG9zaXRpbmdTdGF0ZSwgYm9vbCYgbGF5ZXJzQ2hhbmdlZCkKIHsKICAgICBsYXllci0+
dXBkYXRlTGF5ZXJQb3NpdGlvbigpOwogICAgIGxheWVyLT51cGRhdGVaT3JkZXJMaXN0cygpOwog
ICAgIGxheWVyLT51cGRhdGVOb3JtYWxGbG93TGlzdCgpOwogICAgIAotICAgIC8vIENsZWFyIHRo
ZSBmbGFnCisgICAgLy8gQ2xlYXIgdGhlIGZsYWcuIFdlJ2xsIHNldCBpdCBsYXRlciBpZiB3ZSBu
ZWVkIHRvLgogICAgIGxheWVyLT5zZXRIYXNDb21wb3NpdGluZ0Rlc2NlbmRhbnQoZmFsc2UpOwog
ICAgIAotICAgIGJvb2wgbXVzdE92ZXJsYXBDb21wb3NpdGVkTGF5ZXJzID0gY29tcG9zaXRpbmdT
dGF0ZS5tX3N1YnRyZWVJc0NvbXBvc2l0aW5nOworICAgIGJvb2wgdGVzdGluZ092ZXJsYXAgPSBv
dmVybGFwTWFwOworICAgIAorICAgIC8vIElmIGFuIGVhcmxpZXIgc2libGluZyBpcyBjb21wb3Np
dGVkLCB3ZSBoYXZlIHRvIGNvbXBvc2l0ZSBpZiB3ZSdyZSBub3QgdGVzdGluZyBmb3Igb3Zlcmxh
cC4KKyAgICBib29sIG11c3RPdmVybGFwQ29tcG9zaXRlZExheWVycyA9IHRlc3RpbmdPdmVybGFw
ID8gZmFsc2UgOiBjb21wb3NpdGluZ1N0YXRlLm1fc3VidHJlZUlzQ29tcG9zaXRpbmc7CisgICAg
CisgICAgCisgICAgLyoKKyAgICAgICAgT3ZlcmxhcCBsb2dpYzoKKyAgICAgICAgCisgICAgICAg
IDEuIFN0YXJ0IGJ5IGFzc3VtaW5nIHdlIGRvbid0IG5lZWQgdG8gY29tcG9zaXRlLgorICAgICAg
ICAyLiBUZXN0IGFnYWluc3QgdGhlIG92ZXJsYXAgbWFwLiBJZiB3ZSBvdmVybGFwLCB3ZSBoYXZl
IHRvIGNvbXBvc2l0ZS4KKyAgICAgICAgMi4gSWYgd2UgZG9uJ3Qgb3ZlcmxhcCBhbnl0aGluZyBp
biB0aGUgb3ZlcmxhcCBtYXAsIHdlJ2xsIHJlbmRlciBpbnRvIG91ciBjb21wb3NpdGVkIGFuY2Vz
dG9yLCBzbyBzdWJ0cmFjdCBmcm9tIHRoZSBjdXJyZW50IG92ZXJsYXAgbWFwLCBhZGQgdG8gdGhl
IGFuY2VzdG9yJ3Mgb3ZlcmxhcCBtYXAuCisgICAgICAgIDMuIElmIHdlIGhhdmUgdG8gY29tcG9z
aXRlLCBhZGQgdG8gb3ZlcmxhcCBtYXAgKGxvY2FsIGFuZCBleHRlcm5hbCkuCisgICAgCisgICAg
Ki8KIAotICAgIGJvb2wgaGF2ZUNvbXB1dGVkQm91bmRzID0gZmFsc2U7CiAgICAgTGF5b3V0UmVj
dCBhYnNCb3VuZHM7Ci0gICAgaWYgKG92ZXJsYXBNYXAgJiYgIW92ZXJsYXBNYXAtPmlzRW1wdHko
KSkgeworICAgIGlmICh0ZXN0aW5nT3ZlcmxhcCkKKyAgICAgICAgYWJzQm91bmRzID0gbGF5ZXIt
PnJlbmRlcmVyKCktPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KGxheWVyLT5sb2NhbEJv
dW5kaW5nQm94KCkpKS5lbmNsb3NpbmdCb3VuZGluZ0JveCgpOworICAgIAorICAgIGlmICh0ZXN0
aW5nT3ZlcmxhcCAmJiAhb3ZlcmxhcE1hcC0+aW5jbHVkZWRMYXllcnMuaXNFbXB0eSgpKSB7CiAg
ICAgICAgIC8vIElmIHdlJ3JlIHRlc3RpbmcgZm9yIG92ZXJsYXAsIHdlIG9ubHkgbmVlZCB0byBj
b21wb3NpdGUgaWYgd2Ugb3ZlcmxhcCBzb21ldGhpbmcgdGhhdCBpcyBhbHJlYWR5IGNvbXBvc2l0
ZWQuCiAgICAgICAgIGFic0JvdW5kcyA9IGxheWVyLT5yZW5kZXJlcigpLT5sb2NhbFRvQWJzb2x1
dGVRdWFkKEZsb2F0UmVjdChsYXllci0+bG9jYWxCb3VuZGluZ0JveCgpKSkuZW5jbG9zaW5nQm91
bmRpbmdCb3goKTsKICAgICAgICAgLy8gRW1wdHkgcmVjdHMgbmV2ZXIgaW50ZXJzZWN0LCBidXQg
d2UgbmVlZCB0aGVtIHRvIGZvciB0aGUgcHVycG9zZXMgb2Ygb3ZlcmxhcCB0ZXN0aW5nLgogICAg
ICAgICBpZiAoYWJzQm91bmRzLmlzRW1wdHkoKSkKICAgICAgICAgICAgIGFic0JvdW5kcy5zZXRT
aXplKExheW91dFNpemUoMSwgMSkpOwotICAgICAgICBoYXZlQ29tcHV0ZWRCb3VuZHMgPSB0cnVl
OwogICAgICAgICBtdXN0T3ZlcmxhcENvbXBvc2l0ZWRMYXllcnMgPSBvdmVybGFwc0NvbXBvc2l0
ZWRMYXllcnMoKm92ZXJsYXBNYXAsIGFic0JvdW5kcyk7CiAgICAgfQogICAgIApAQCAtNjg4LDIw
ICs3MzQsNDMgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNvbXB1dGVDb21wb3NpdGlu
Z1JlcXVpcmVtZW50cyhSZW5kZXJMYXllciogbGF5ZXIsIE8KICAgICAvLyBhIGNvbXBvc2l0aW5n
IGxheWVyIGFtb25nIHRoZW0sIHNvIHN0YXJ0IGJ5IGluaGVyaXRpbmcgdGhlIGNvbXBvc2l0aW5n
CiAgICAgLy8gYW5jZXN0b3Igd2l0aCBtX3N1YnRyZWVJc0NvbXBvc2l0aW5nIHNldCB0byBmYWxz
ZS4KICAgICBDb21wb3NpdGluZ1N0YXRlIGNoaWxkU3RhdGUoY29tcG9zaXRpbmdTdGF0ZS5tX2Nv
bXBvc2l0aW5nQW5jZXN0b3IpOworICAgIAogI2lmbmRlZiBOREVCVUcKICAgICArK2NoaWxkU3Rh
dGUubV9kZXB0aDsKICNlbmRpZgogCisgICAgUmVmUHRyPE92ZXJsYXBNYXA+IGRlc2NlbmRhbnRz
T3ZlcmxhcE1hcCA9IG92ZXJsYXBNYXA7CisKKyAgICBib29sIGhhc0Rlc2NlbmRhbnRzID0gaGFz
RGVzY2VuZGFudExheWVycyhsYXllcik7CiAgICAgYm9vbCB3aWxsQmVDb21wb3NpdGVkID0gbmVl
ZHNUb0JlQ29tcG9zaXRlZChsYXllcik7CiAgICAgaWYgKHdpbGxCZUNvbXBvc2l0ZWQpIHsKICAg
ICAgICAgLy8gVGVsbCB0aGUgcGFyZW50IGl0IGhhcyBjb21wb3NpdGluZyBkZXNjZW5kYW50cy4K
ICAgICAgICAgY29tcG9zaXRpbmdTdGF0ZS5tX3N1YnRyZWVJc0NvbXBvc2l0aW5nID0gdHJ1ZTsK
ICAgICAgICAgLy8gVGhpcyBsYXllciBub3cgYWN0cyBhcyB0aGUgYW5jZXN0b3IgZm9yIGtpZHMu
CiAgICAgICAgIGNoaWxkU3RhdGUubV9jb21wb3NpdGluZ0FuY2VzdG9yID0gbGF5ZXI7Ci0gICAg
fQotCi0gICAgaWYgKG92ZXJsYXBNYXAgJiYgY2hpbGRTdGF0ZS5tX2NvbXBvc2l0aW5nQW5jZXN0
b3IgJiYgIWNoaWxkU3RhdGUubV9jb21wb3NpdGluZ0FuY2VzdG9yLT5pc1Jvb3RMYXllcigpKSB7
Ci0gICAgICAgIGFkZFRvT3ZlcmxhcE1hcCgqb3ZlcmxhcE1hcCwgbGF5ZXIsIGFic0JvdW5kcywg
aGF2ZUNvbXB1dGVkQm91bmRzKTsKKyAgICAgICAgCisgICAgICAgIGlmICh0ZXN0aW5nT3Zlcmxh
cCkgeworICAgICAgICAgICAgaWYgKGhhc0Rlc2NlbmRhbnRzKSB7CisgICAgICAgICAgICAgICAg
Ly8gU3RhcnQgdG8gYWNjdW11bGF0ZSBhIHJlZ2lvbiBmb3IgdGhpcyBsYXllciB3aGljaCBlbmNv
bXBhc3NlcyB0aGUgbGF5ZXJzIGRyYXduIGludG8gdGhpcyBsYXllcidzIGNvbXBvc2l0aW5nIGxh
eWVyLgorICAgICAgICAgICAgICAgIGNoaWxkU3RhdGUubV9hbmNlc3RvckNvbXBvc2l0aW5nUmVn
aW9uID0gT3ZlcmxhcE1hcDo6Y3JlYXRlKCk7CisgICAgICAgICAgICAgICAgY2hpbGRTdGF0ZS5t
X2FuY2VzdG9yQ29tcG9zaXRpbmdSZWdpb24tPnJlZ2lvbi51bml0ZShhYnNCb3VuZHMpOworCisg
ICAgICAgICAgICAgICAgLy8gQ3JlYXRlIGEgbWFwIHRvIHBhc3MgdG8gb3VyIGRlc2NlbmRhbnRz
IHdpdGggdGhpcyBsYXllcidzIGJvdW5kcyBzdWJ0cmFjdGVkIG91dC4KKyAgICAgICAgICAgICAg
ICBkZXNjZW5kYW50c092ZXJsYXBNYXAgPSBPdmVybGFwTWFwOjpjcmVhdGUoKm92ZXJsYXBNYXAp
OworICAgICAgICAgICAgICAgIGRlc2NlbmRhbnRzT3ZlcmxhcE1hcC0+cmVnaW9uLnN1YnRyYWN0
KGFic0JvdW5kcyk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIERv
ZXNuJ3QgaGF2ZSBkZXNjZW5kYW50cy4gSnVzdCBhZGQgdG8gdGhlIG92ZXJsYXAgbWFwLgorICAg
ICAgICAgICAgICAgIGFkZFRvT3ZlcmxhcE1hcCgqZGVzY2VuZGFudHNPdmVybGFwTWFwLCBsYXll
ciwgYWJzQm91bmRzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAo
dGVzdGluZ092ZXJsYXApIHsKKyAgICAgICAgLy8gTm9uLWNvbXBvc2l0aW5nLCBidXQgdGVzdGlu
ZyBvdmVybGFwLgorICAgICAgICAKKyAgICAgICAgLy8gVGhpcyBsYXllciBpcyBub3QgYmVpbmcg
Y29tcG9zaXRlZC4gQWRkIGl0IHRvIGl0cyBjb21wb3NpdGluZyBhbmNlc3RvcidzIG92ZXJsYXAg
cmVnaW9uLi4uCisgICAgICAgIGlmIChjb21wb3NpdGluZ1N0YXRlLm1fYW5jZXN0b3JDb21wb3Np
dGluZ1JlZ2lvbikKKyAgICAgICAgICAgIGNvbXBvc2l0aW5nU3RhdGUubV9hbmNlc3RvckNvbXBv
c2l0aW5nUmVnaW9uLT5yZWdpb24udW5pdGUoYWJzQm91bmRzKTsKKyAgICAgICAgLy8gYW5kIHN1
YnRyYWN0IGl0IGZyb20gdGhlIG92ZXJsYXAgbWFwLgorICAgICAgICBkZXNjZW5kYW50c092ZXJs
YXBNYXAtPnJlZ2lvbi5zdWJ0cmFjdChhYnNCb3VuZHMpOwogICAgIH0KIAogI2lmIEVOQUJMRShW
SURFTykKQEAgLTcxOCwxNyArNzg3LDI1IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpj
b21wdXRlQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMoUmVuZGVyTGF5ZXIqIGxheWVyLCBPCiAgICAg
ICAgICAgICBzaXplX3QgbGlzdFNpemUgPSBuZWdaT3JkZXJMaXN0LT5zaXplKCk7CiAgICAgICAg
ICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3RTaXplOyArK2kpIHsKICAgICAgICAgICAg
ICAgICBSZW5kZXJMYXllciogY3VyTGF5ZXIgPSBuZWdaT3JkZXJMaXN0LT5hdChpKTsKLSAgICAg
ICAgICAgICAgICBjb21wdXRlQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMoY3VyTGF5ZXIsIG92ZXJs
YXBNYXAsIGNoaWxkU3RhdGUsIGxheWVyc0NoYW5nZWQpOworICAgICAgICAgICAgICAgIGNvbXB1
dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50cyhjdXJMYXllciwgZGVzY2VuZGFudHNPdmVybGFwTWFw
LmdldCgpLCBjaGlsZFN0YXRlLCBsYXllcnNDaGFuZ2VkKTsKIAogICAgICAgICAgICAgICAgIC8v
IElmIHdlIGhhdmUgdG8gbWFrZSBhIGxheWVyIGZvciB0aGlzIGNoaWxkLCBtYWtlIG9uZSBub3cg
c28gd2UgY2FuIGhhdmUgYSBjb250ZW50cyBsYXllcgogICAgICAgICAgICAgICAgIC8vIChzaW5j
ZSB3ZSBuZWVkIHRvIGVuc3VyZSB0aGF0IHRoZSAtdmUgei1vcmRlciBjaGlsZCByZW5kZXJzIHVu
ZGVybmVhdGggb3VyIGNvbnRlbnRzKS4KICAgICAgICAgICAgICAgICBpZiAoIXdpbGxCZUNvbXBv
c2l0ZWQgJiYgY2hpbGRTdGF0ZS5tX3N1YnRyZWVJc0NvbXBvc2l0aW5nKSB7Ci0gICAgICAgICAg
ICAgICAgICAgIC8vIG1ha2UgbGF5ZXIgY29tcG9zaXRpbmcKICAgICAgICAgICAgICAgICAgICAg
bGF5ZXItPnNldE11c3RPdmVybGFwQ29tcG9zaXRlZExheWVycyh0cnVlKTsKICAgICAgICAgICAg
ICAgICAgICAgY2hpbGRTdGF0ZS5tX2NvbXBvc2l0aW5nQW5jZXN0b3IgPSBsYXllcjsKLSAgICAg
ICAgICAgICAgICAgICAgaWYgKG92ZXJsYXBNYXApCi0gICAgICAgICAgICAgICAgICAgICAgICBh
ZGRUb092ZXJsYXBNYXAoKm92ZXJsYXBNYXAsIGxheWVyLCBhYnNCb3VuZHMsIGhhdmVDb21wdXRl
ZEJvdW5kcyk7CiAgICAgICAgICAgICAgICAgICAgIHdpbGxCZUNvbXBvc2l0ZWQgPSB0cnVlOwor
ICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRlc3RpbmdPdmVy
bGFwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBTdGFydCB0byBhY2N1bXVsYXRlIGEg
cmVnaW9uIGZvciB0aGlzIGxheWVyIHdoaWNoIGVuY29tcGFzc2VzIHRoZSBsYXllcnMgZHJhd24g
aW50byB0aGlzIGxheWVyJ3MgY29tcG9zaXRpbmcgbGF5ZXIuCisgICAgICAgICAgICAgICAgICAg
ICAgICAvLyBGSVhNRTogd2UgbWF5IGhhdmUgbG9zdCBzb21lIHN0YXRlIGhlcmUsIGJlY2F1c2Ug
d2UndmUgYWxyZWFkeSB0cmF2ZXJzZWQgc29tZSBkZXNjZW5kYW50cy4KKyAgICAgICAgICAgICAg
ICAgICAgICAgIGNoaWxkU3RhdGUubV9hbmNlc3RvckNvbXBvc2l0aW5nUmVnaW9uID0gT3Zlcmxh
cE1hcDo6Y3JlYXRlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZFN0YXRlLm1fYW5j
ZXN0b3JDb21wb3NpdGluZ1JlZ2lvbi0+cmVnaW9uLnVuaXRlKGFic0JvdW5kcyk7CisKKyAgICAg
ICAgICAgICAgICAgICAgICAgIC8vIENyZWF0ZSBhIG1hcCB0byBwYXNzIHRvIG91ciBkZXNjZW5k
YW50cyB3aXRoIHRoaXMgbGF5ZXIncyBib3VuZHMgc3VidHJhY3RlZCBvdXQuCisgICAgICAgICAg
ICAgICAgICAgICAgICBkZXNjZW5kYW50c092ZXJsYXBNYXAgPSBPdmVybGFwTWFwOjpjcmVhdGUo
Km92ZXJsYXBNYXApOworICAgICAgICAgICAgICAgICAgICAgICAgZGVzY2VuZGFudHNPdmVybGFw
TWFwLT5yZWdpb24uc3VidHJhY3QoYWJzQm91bmRzKTsKKyAgICAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtNzM5LDcgKzgx
Niw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21wdXRlQ29tcG9zaXRpbmdSZXF1
aXJlbWVudHMoUmVuZGVyTGF5ZXIqIGxheWVyLCBPCiAgICAgICAgIHNpemVfdCBsaXN0U2l6ZSA9
IG5vcm1hbEZsb3dMaXN0LT5zaXplKCk7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
bGlzdFNpemU7ICsraSkgewogICAgICAgICAgICAgUmVuZGVyTGF5ZXIqIGN1ckxheWVyID0gbm9y
bWFsRmxvd0xpc3QtPmF0KGkpOwotICAgICAgICAgICAgY29tcHV0ZUNvbXBvc2l0aW5nUmVxdWly
ZW1lbnRzKGN1ckxheWVyLCBvdmVybGFwTWFwLCBjaGlsZFN0YXRlLCBsYXllcnNDaGFuZ2VkKTsK
KyAgICAgICAgICAgIGNvbXB1dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50cyhjdXJMYXllciwgZGVz
Y2VuZGFudHNPdmVybGFwTWFwLmdldCgpLCBjaGlsZFN0YXRlLCBsYXllcnNDaGFuZ2VkKTsKICAg
ICAgICAgfQogICAgIH0KIApAQCAtNzQ4LDcgKzgyNSw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21w
b3NpdG9yOjpjb21wdXRlQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMoUmVuZGVyTGF5ZXIqIGxheWVy
LCBPCiAgICAgICAgICAgICBzaXplX3QgbGlzdFNpemUgPSBwb3NaT3JkZXJMaXN0LT5zaXplKCk7
CiAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3RTaXplOyArK2kpIHsKICAg
ICAgICAgICAgICAgICBSZW5kZXJMYXllciogY3VyTGF5ZXIgPSBwb3NaT3JkZXJMaXN0LT5hdChp
KTsKLSAgICAgICAgICAgICAgICBjb21wdXRlQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMoY3VyTGF5
ZXIsIG92ZXJsYXBNYXAsIGNoaWxkU3RhdGUsIGxheWVyc0NoYW5nZWQpOworICAgICAgICAgICAg
ICAgIGNvbXB1dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50cyhjdXJMYXllciwgZGVzY2VuZGFudHNP
dmVybGFwTWFwLmdldCgpLCBjaGlsZFN0YXRlLCBsYXllcnNDaGFuZ2VkKTsKICAgICAgICAgICAg
IH0KICAgICAgICAgfQogICAgIH0KQEAgLTc2Niw4ICs4NDMsOCBAQCB2b2lkIFJlbmRlckxheWVy
Q29tcG9zaXRvcjo6Y29tcHV0ZUNvbXBvc2l0aW5nUmVxdWlyZW1lbnRzKFJlbmRlckxheWVyKiBs
YXllciwgTwogICAgIC8vIHRoZSBjaGlsZCBsYXllcnMgYXJlIG9wYXF1ZSwgdGhlbiByZW5kZXJl
ZCB3aXRoIG9wYWNpdHkgb24gdGhpcyBsYXllci4KICAgICBpZiAoIXdpbGxCZUNvbXBvc2l0ZWQg
JiYgY2FuQmVDb21wb3NpdGVkKGxheWVyKSAmJiBjaGlsZFN0YXRlLm1fc3VidHJlZUlzQ29tcG9z
aXRpbmcgJiYgcmVxdWlyZXNDb21wb3NpdGluZ1doZW5EZXNjZW5kYW50c0FyZUNvbXBvc2l0aW5n
KGxheWVyLT5yZW5kZXJlcigpKSkgewogICAgICAgICBsYXllci0+c2V0TXVzdE92ZXJsYXBDb21w
b3NpdGVkTGF5ZXJzKHRydWUpOwotICAgICAgICBpZiAob3ZlcmxhcE1hcCkKLSAgICAgICAgICAg
IGFkZFRvT3ZlcmxhcE1hcFJlY3Vyc2l2ZSgqb3ZlcmxhcE1hcCwgbGF5ZXIpOworICAgICAgICBp
ZiAodGVzdGluZ092ZXJsYXApCisgICAgICAgICAgICBhZGRUb092ZXJsYXBNYXBSZWN1cnNpdmUo
Km92ZXJsYXBNYXAsIGxheWVyLCBjaGlsZFN0YXRlKTsKICAgICAgICAgd2lsbEJlQ29tcG9zaXRl
ZCA9IHRydWU7CiAgICAgfQogCkBAIC03ODUsOCArODYyLDggQEAgdm9pZCBSZW5kZXJMYXllckNv
bXBvc2l0b3I6OmNvbXB1dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50cyhSZW5kZXJMYXllciogbGF5
ZXIsIE8KICAgICAvLyBzZXRIYXNDb21wb3NpdGluZ0Rlc2NlbmRhbnQoKSBtYXkgaGF2ZSBjaGFu
Z2VkIHRoZSBhbnN3ZXIgdG8gbmVlZHNUb0JlQ29tcG9zaXRlZCgpIHdoZW4gY2xpcHBpbmcsCiAg
ICAgLy8gc28gdGVzdCB0aGF0IGFnYWluLgogICAgIGlmICghd2lsbEJlQ29tcG9zaXRlZCAmJiBj
YW5CZUNvbXBvc2l0ZWQobGF5ZXIpICYmIGNsaXBzQ29tcG9zaXRpbmdEZXNjZW5kYW50cyhsYXll
cikpIHsKLSAgICAgICAgaWYgKG92ZXJsYXBNYXApCi0gICAgICAgICAgICBhZGRUb092ZXJsYXBN
YXBSZWN1cnNpdmUoKm92ZXJsYXBNYXAsIGxheWVyKTsKKyAgICAgICAgaWYgKHRlc3RpbmdPdmVy
bGFwKQorICAgICAgICAgICAgYWRkVG9PdmVybGFwTWFwUmVjdXJzaXZlKCpvdmVybGFwTWFwLCBs
YXllciwgY2hpbGRTdGF0ZSk7CiAgICAgICAgIHdpbGxCZUNvbXBvc2l0ZWQgPSB0cnVlOwogICAg
IH0KIApAQCAtODA5LDYgKzg4NiwxMiBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y29t
cHV0ZUNvbXBvc2l0aW5nUmVxdWlyZW1lbnRzKFJlbmRlckxheWVyKiBsYXllciwgTwogCiAgICAg
aWYgKGxheWVyLT5yZWZsZWN0aW9uTGF5ZXIoKSAmJiB1cGRhdGVMYXllckNvbXBvc2l0aW5nU3Rh
dGUobGF5ZXItPnJlZmxlY3Rpb25MYXllcigpLCBDb21wb3NpdGluZ0NoYW5nZVJlcGFpbnROb3cp
KQogICAgICAgICBsYXllcnNDaGFuZ2VkID0gdHJ1ZTsKKworCisgICAgLy8gTm90ZSB0aGUgbGF5
ZXJzIHRoYXQgdGhpcyBzdWJ0cmVlIG1hZGUgY29tcG9zaXRlZCBpbiB0aGUgb3ZlcmxhcE1hcC4K
KyAgICAvLyBGSVhNRTogdGhpcyBpcyBub3Qgc3VmZmljaWVudC4gV2UgbmVlZCB0byBhZGQgaXQg
dG8gYWxsIHRoZSBvdmVybGFwIG1hcHMgb24gdGhlIHN0YWNrLgorICAgIGlmIChoYXNEZXNjZW5k
YW50TGF5ZXJzICYmIHRlc3RpbmdPdmVybGFwICYmIGNoaWxkU3RhdGUubV9jb21wb3NpdGluZ0Fu
Y2VzdG9yID09IGxheWVyICYmIGNoaWxkU3RhdGUubV9hbmNlc3RvckNvbXBvc2l0aW5nUmVnaW9u
KQorICAgICAgICBvdmVybGFwTWFwLT5yZWdpb24udW5pdGUoY2hpbGRTdGF0ZS5tX2FuY2VzdG9y
Q29tcG9zaXRpbmdSZWdpb24tPnJlZ2lvbik7CiB9CiAKIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3Np
dG9yOjpzZXRDb21wb3NpdGluZ1BhcmVudChSZW5kZXJMYXllciogY2hpbGRMYXllciwgUmVuZGVy
TGF5ZXIqIHBhcmVudExheWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQ29tcG9zaXRvci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQ29tcG9zaXRvci5oCmluZGV4IDE5OGExOGMuLjRiNTQ2YWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKQEAgLTMyLDkgKzMy
LDEwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI2RlZmluZSBQUk9GSUxFX0xBWUVSX1JF
QlVJTEQgMAorI2RlZmluZSBQUk9GSUxFX0xBWUVSX1JFQlVJTEQgMQogCiBjbGFzcyBHcmFwaGlj
c0xheWVyOworY2xhc3MgUmVnaW9uOwogY2xhc3MgUmVuZGVyRW1iZWRkZWRPYmplY3Q7CiBjbGFz
cyBSZW5kZXJQYXJ0OwogI2lmIEVOQUJMRShWSURFTykKQEAgLTIzNSwxNSArMjM2LDE3IEBAIHBy
aXZhdGU6CiAgICAgLy8gUmVwYWludCB0aGUgZ2l2ZW4gcmVjdCAod2hpY2ggaXMgbGF5ZXIncyBj
b29yZHMpLCBhbmQgcmVnaW9ucyBvZiBjaGlsZCBsYXllcnMgdGhhdCBpbnRlcnNlY3QgdGhhdCBy
ZWN0LgogICAgIHZvaWQgcmVjdXJzaXZlUmVwYWludExheWVyUmVjdChSZW5kZXJMYXllciosIGNv
bnN0IExheW91dFJlY3QmKTsKIAotICAgIHR5cGVkZWYgSGFzaE1hcDxSZW5kZXJMYXllciosIExh
eW91dFJlY3Q+IE92ZXJsYXBNYXA7Ci0gICAgdm9pZCBhZGRUb092ZXJsYXBNYXAoT3ZlcmxhcE1h
cCYsIFJlbmRlckxheWVyKiwgTGF5b3V0UmVjdCYgbGF5ZXJCb3VuZHMsIGJvb2wmIGJvdW5kc0Nv
bXB1dGVkKTsKLSAgICB2b2lkIGFkZFRvT3ZlcmxhcE1hcFJlY3Vyc2l2ZShPdmVybGFwTWFwJiwg
UmVuZGVyTGF5ZXIqKTsKKyAgICBzdHJ1Y3QgT3ZlcmxhcE1hcDsKKyAgICBzdHJ1Y3QgQ29tcG9z
aXRpbmdTdGF0ZTsKKworICAgIHZvaWQgYWRkVG9PdmVybGFwTWFwKE92ZXJsYXBNYXAmLCBSZW5k
ZXJMYXllciosIGNvbnN0IExheW91dFJlY3QmIGxheWVyQm91bmRzKTsKKyAgICB2b2lkIGFkZFRv
T3ZlcmxhcE1hcFJlY3Vyc2l2ZShPdmVybGFwTWFwJiwgUmVuZGVyTGF5ZXIqLCBDb21wb3NpdGlu
Z1N0YXRlJiBjb21wb3NpdGluZ1N0YXRlKTsKICAgICBzdGF0aWMgYm9vbCBvdmVybGFwc0NvbXBv
c2l0ZWRMYXllcnMoT3ZlcmxhcE1hcCYsIGNvbnN0IExheW91dFJlY3QmIGxheWVyQm91bmRzKTsK
IAogICAgIHZvaWQgdXBkYXRlQ29tcG9zaXRpbmdMYXllcnNUaW1lckZpcmVkKFRpbWVyPFJlbmRl
ckxheWVyQ29tcG9zaXRvcj4qKTsKIAogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbnkgbGF5ZXIn
cyBjb21wb3NpdGluZyBjaGFuZ2VkCi0gICAgdm9pZCBjb21wdXRlQ29tcG9zaXRpbmdSZXF1aXJl
bWVudHMoUmVuZGVyTGF5ZXIqLCBPdmVybGFwTWFwKiwgc3RydWN0IENvbXBvc2l0aW5nU3RhdGUm
LCBib29sJiBsYXllcnNDaGFuZ2VkKTsKKyAgICB2b2lkIGNvbXB1dGVDb21wb3NpdGluZ1JlcXVp
cmVtZW50cyhSZW5kZXJMYXllciosIE92ZXJsYXBNYXAqLCBDb21wb3NpdGluZ1N0YXRlJiwgYm9v
bCYgbGF5ZXJzQ2hhbmdlZCk7CiAgICAgCiAgICAgLy8gUmVjdXJzZXMgZG93biB0aGUgdHJlZSwg
cGFyZW50aW5nIGRlc2NlbmRhbnQgY29tcG9zaXRpbmcgbGF5ZXJzIGFuZCBjb2xsZWN0aW5nIGFu
IGFycmF5IG9mIGNoaWxkIGxheWVycyBmb3IgdGhlIGN1cnJlbnQgY29tcG9zaXRpbmcgbGF5ZXIu
CiAgICAgdm9pZCByZWJ1aWxkQ29tcG9zaXRpbmdMYXllclRyZWUoUmVuZGVyTGF5ZXIqLCBWZWN0
b3I8R3JhcGhpY3NMYXllcio+JiBjaGlsZEdyYXBoaWNzTGF5ZXJzT2ZFbmNsb3NpbmdMYXllcik7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129927</attachid>
            <date>2012-03-02 11:23:45 -0800</date>
            <delta_ts>2012-03-05 18:25:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-50192-20120302112344.patch</filename>
            <type>text/plain</type>
            <size>16158</size>
            <attacher name="Adrienne Walker">enne</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5NTg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDE1OTkyZGNhNGY1Y2Q5
NTI5YzEwNjRjYjQxN2Y1ZDc0NmMxMmExNi4uZDhhMjg1YzcxYjY5YjA3MzRiZGZiZTUxMmNkZjZi
ZmMwNGFhNDZiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDEyLTAzLTAyICBBZHJp
ZW5uZSBXYWxrZXIgIDxlbm5lQGdvb2dsZS5jb20+CisKKyAgICAgICAgQ29tcG9zaXRpbmcgb3Zl
cmxhcCB0ZXN0aW5nIGNhbiB0aHJvdyBsYXllcnMgaW50byBjb21wb3NpdGluZyB3aGVuIHRoZXkg
c2hvdWxkIG5vdCBiZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTUwMTkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGhlIHByZXZpb3VzIG92ZXJsYXAgbWFwIGJlaGF2aW9yIHdhcyB0aGF0IGEgbm9uLWNv
bXBvc2l0ZWQgcXVlcnkKKyAgICAgICAgbGF5ZXIgd291bGQgYmVjb21lIGNvbXBvc2l0ZWQgZHVl
IHRvIG92ZXJsYXAgaWYgYW5kIG9ubHkgaWYgdGhlIHF1ZXJ5CisgICAgICAgIGxheWVyJ3MgYWJz
b2x1dGUgYm91bmRzIG92ZXJsYXBwZWQgdGhlIGFic29sdXRlIGJvdW5kcyBvZiBzb21lIG90aGVy
CisgICAgICAgIGxheWVyIHdoaWNoOgorICAgICAgICAgICAgLSBkcmF3cyBiZWZvcmUgdGhlIHF1
ZXJ5IGxheWVyCisgICAgICAgICAgICAtIGlzIG9yIGhhcyBhIGNvbXBvc2l0aW5nIGFuY2VzdG9y
CisKKyAgICAgICAgVGhpcyBiZWhhdmlvciwgd2hpbGUgY29ycmVjdCwgd2FzIHRvbyBwZXJtaXNz
aXZlIGluIHRocm93aW5nIGxheWVycworICAgICAgICBpbnRvIGNvbXBvc2l0aW5nLCBjYXVzaW5n
IG1hbnkgbGF5ZXJzIHRvIGdldCB0aGVpciBvd24gYmFja2luZyB3aGVuCisgICAgICAgIHRoZXkg
Y291bGQgaGF2ZSBqdXN0IGdvbmUgaW50byB0aGVpciBjb21wb3NpdGluZyBhbmNlc3RvcidzIGJh
Y2tpbmcuCisKKyAgICAgICAgVGhlIGNvcnJlY3QgbG9naWMgaXMgdGhhdCBub24tY29tcG9zaXRl
ZCBxdWVyeSBsYXllciBuZWVkcyB0byBiZQorICAgICAgICBjb21wb3NpdGVkIGR1ZSB0byBvdmVy
bGFwIGlmIGFuZCBvbmx5IGlmIHRoZSBxdWVyeSBsYXllcidzIGFic29sdXRlCisgICAgICAgIGJv
dW5kcyBvdmVybGFwIHRoZSBhYnNvbHV0ZSBib3VuZHMgb2Ygc29tZSBvdGhlciBsYXllciB3aGlj
aDoKKyAgICAgICAgICAgIC0gZHJhd3MgYmVmb3JlIHRoZSBxdWVyeSBsYXllcgorICAgICAgICAg
ICAgLSBoYXMgYSBkaWZmZXJlbnQgY29tcG9zaXRpbmcgYW5jZXN0b3IgdGhhbiB0aGUgcXVlcnkg
bGF5ZXIKKyAgICAgICAgICAgIC0gaXMgb3IgaGFzIGEgY29tcG9zaXRpbmcgYW5jZXN0b3IgdGhh
dCBpcyBhIGRlc2NlbmRlbnQgb2YgdGhlCisgICAgICAgICAgICAgIHF1ZXJ5IGxheWVyJ3MgY29t
cG9zaXRpbmcgYW5jZXN0b3IKKworICAgICAgICBUaGlzIHBhdGNoIGNoYW5nZXMgdGhlIHNlbWFu
dGljcyBvZiB0aGUgb3ZlcmxhcCBtYXAgdG8gZW5hYmxlIHRoaXMKKyAgICAgICAgYmVoYXZpb3Iu
CisKKyAgICAgICAgUmF0aGVyIHRoYW4gaGF2aW5nIG9uZSBnbG9iYWwgb3ZlcmxhcCBtYXAsIHRo
ZXJlIGlzIG5vdyBhIHN0YWNrIG9mCisgICAgICAgIG92ZXJsYXAgbWFwcy4gTmV3IChlbXB0eSkg
b3ZlcmxhcCBtYXBzIGFyZSBwdXNoZWQgb250byB0aGUgc3RhY2sKKyAgICAgICAgd2hlbmV2ZXIg
YSBsYXllciBiZWNvbWVzIGEgY29tcG9zaXRpbmcgYW5jZXN0b3IgYW5kIHBvcHBlZCBhZnRlciBh
bGwKKyAgICAgICAgb2YgdGhlIGNvbXBvc2l0aW5nIHJlcXVpcmVtZW50cyBmb3IgdGhhdCBsYXll
cidzIGNoaWxkcmVuIGhhdmUgYmVlbgorICAgICAgICBjb21wdXRlZC4KKworICAgICAgICBUaGUg
Y29tcG9zaXRpbmcgYW5jZXN0b3IgYW5kIGFsbCBvZiBpdHMgbm9uLWNvbXBvc2l0ZWQgY2hpbGRy
ZW4gb2YgYQorICAgICAgICBjb21wb3NpdGluZyBhbmNlc3RvciBkbyBub3QgZ2V0IGNvbnNpZGVy
ZWQgZm9yIG92ZXJsYXAgdW50aWwgdGhlaXIKKyAgICAgICAgY29tcG9zaXRlZCBhbmNlc3RvciBo
YXMgYmVlbiBwb3BwZWQgb2ZmIHRoZSBzdGFjay4gSWYgYSBjb21wb3NpdGluZworICAgICAgICBh
bmNlc3RvciBoYXMgYSBjb21wb3NpdGluZyBzdWJ0cmVlLCB0aGVuIGFueSBkZXNjZW5kZW50cyBv
ZiB0aGF0CisgICAgICAgIGNvbXBvc2l0aW5nIGFuY2VzdG9yIHRoYXQgZHJhdyBhZnRlciB0aGF0
IHN1YnRyZWUgd2lsbCBjb25zaWRlcgorICAgICAgICBldmVyeXRoaW5nIGluIHRoZSBjb21wb3Np
dGluZyBzdWJ0cmVlIGZvciBvdmVybGFwLgorCisgICAgICAgIFRlc3Q6IGNvbXBvc2l0aW5nL2xh
eWVyLWNyZWF0aW9uL3N0YWNraW5nLWNvbnRleHQtb3ZlcmxhcC5odG1sCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9SZWdpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVnaW9uOjpp
bnRlcnNlY3RzKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL1JlZ2lvbi5oOgorICAgICAgICAoUmVnaW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFJlbmRlckxheWVyQ29tcG9zaXRvcjo6
T3ZlcmxhcE1hcCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6Ok92
ZXJsYXBNYXA6Ok92ZXJsYXBNYXApOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21w
b3NpdG9yOjpPdmVybGFwTWFwOjphZGQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJD
b21wb3NpdG9yOjpPdmVybGFwTWFwOjpjb250YWlucyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMYXllckNvbXBvc2l0b3I6Ok92ZXJsYXBNYXA6Om92ZXJsYXBzTGF5ZXJzKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6T3ZlcmxhcE1hcDo6aXNFbXB0eSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6Ok92ZXJsYXBNYXA6OnN0YXJ0
Q29tcG9zaXRpbmdBbmNlc3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBv
c2l0b3I6Ok92ZXJsYXBNYXA6OmVuZENvbXBvc2l0aW5nQW5jZXN0b3IpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjphZGRUb092ZXJsYXBNYXBSZWN1cnNpdmUpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21wdXRlQ29tcG9zaXRp
bmdSZXF1aXJlbWVudHMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0
b3IuaDoKKyAgICAgICAgKFJlbmRlckxheWVyQ29tcG9zaXRvcik6CisKIDIwMTItMDMtMDIgIFph
biBEb2JlcnNlayAgPHphbmRvYmVyc2VrQGdtYWlsLmNvbT4KIAogICAgICAgICBbR1RLXSBTbW9v
dGggc2Nyb2xsaW5nIHN1cHBvcnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1JlZ2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9S
ZWdpb24uY3BwCmluZGV4IGVjMjExZDNiNDlmYmIxYzNlOTkyNzc5Mjk5ZGM2ZjAwMWU2NmEzMDcu
LjNmMDkzZWJkY2Q2ZDVkZmExNjRmNjY2MmIzZjY3YjUyZWFhYzU1NmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlZ2lvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVnaW9uLmNwcApAQCAtNzcsNiArNzcsMTcgQEAgYm9v
bCBSZWdpb246OmNvbnRhaW5zKGNvbnN0IEludFBvaW50JiBwb2ludCkgY29uc3QKICAgICByZXR1
cm4gY29udGFpbnMoSW50UmVjdChwb2ludCwgSW50U2l6ZSgxLCAxKSkpOwogfQogCitib29sIFJl
Z2lvbjo6aW50ZXJzZWN0cyhjb25zdCBSZWdpb24mIHJlZ2lvbikgY29uc3QKK3sKKyAgICBpZiAo
IW1fYm91bmRzLmludGVyc2VjdHMocmVnaW9uLm1fYm91bmRzKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgLy8gRklYTUU6IHRoaXMgY291bGQgYmUgb3B0aW1pemVkLgorICAgIFJlZ2lv
biB0ZW1wUmVnaW9uKCp0aGlzKTsKKyAgICB0ZW1wUmVnaW9uLmludGVyc2VjdChyZWdpb24pOwor
ICAgIHJldHVybiAhdGVtcFJlZ2lvbi5pc0VtcHR5KCk7Cit9CisKIHVuc2lnbmVkIFJlZ2lvbjo6
dG90YWxBcmVhKCkgY29uc3QKIHsKICAgICBWZWN0b3I8SW50UmVjdD4gcmVjdHMgPSB0aGlzLT5y
ZWN0cygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVn
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZWdpb24uaAppbmRleCAy
ZmVjZmU0MTYxYWEwZjNjM2VmOGQzZjIxYmI1NTE5MTM5ZTc4YzZlLi5hODcyNjk1NjdhNWEyMjAw
MDVhZTk0YjRkZDg3YWJkOTEzMWVmZGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9SZWdpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9SZWdpb24uaApAQCAtNTIsNiArNTIsOSBAQCBwdWJsaWM6CiAKICAgICBib29sIGNvbnRh
aW5zKGNvbnN0IEludFBvaW50JikgY29uc3Q7CiAKKyAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhl
IHF1ZXJ5IHJlZ2lvbiBpbnRlcnNlY3RzIGFueSBwYXJ0IG9mIHRoaXMgcmVnaW9uLgorICAgIGJv
b2wgaW50ZXJzZWN0cyhjb25zdCBSZWdpb24mKSBjb25zdDsKKwogICAgIHVuc2lnbmVkIHRvdGFs
QXJlYSgpIGNvbnN0OwogCiAjaWZuZGVmIE5ERUJVRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCA3NWEyODBjOTVkMmI2ZDFl
OTczMmQzYzI1NTExOTExODE2YmRhMTA4Li5kYjc3YTdjOWIzNmMzZWM1MmQyZjI1NTJmODI4MGEz
OWU2ZjVkYzMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJDb21wb3NpdG9yLmNwcApAQCAtNzUsNiArNzUsNTggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCitjbGFzcyBSZW5kZXJMYXllckNvbXBvc2l0
b3I6Ok92ZXJsYXBNYXAgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE92ZXJsYXBNYXApOwor
cHVibGljOgorICAgIE92ZXJsYXBNYXAoKQorICAgIHsKKyAgICAgICAgLy8gQmVnaW4gYXNzdW1p
bmcgdGhlIHJvb3QgbGF5ZXIgd2lsbCBiZSBjb21wb3NpdGVkIHNvIHRoYXQgdGhlcmUgaXMKKyAg
ICAgICAgLy8gc29tZXRoaW5nIG9uIHRoZSBzdGFjay4gVGhlIHJvb3QgbGF5ZXIgc2hvdWxkIGFs
c28gbmV2ZXIgZ2V0IGFuCisgICAgICAgIC8vIGVuZENvbXBvc2l0aW5nQW5jZXN0b3IgY2FsbC4K
KyAgICAgICAgc3RhcnRDb21wb3NpdGluZ0FuY2VzdG9yKCk7CisgICAgfQorCisgICAgdm9pZCBh
ZGQoY29uc3QgUmVuZGVyTGF5ZXIqIGxheWVyLCBjb25zdCBJbnRSZWN0JiBib3VuZHMpCisgICAg
eworICAgICAgICAvLyBMYXllcnMgZG8gbm90IGNvbnRyaWJ1dGUgdG8gb3ZlcmxhcCBpbW1lZGlh
dGVseS0taW5zdGVhZCwgdGhleSB3aWxsCisgICAgICAgIC8vIGNvbnRyaWJ1dGUgdG8gb3Zlcmxh
cCBhcyBzb29uIGFzIHRoZWlyIGNvbXBvc2l0ZWQgYW5jZXN0b3IgaGFzIGJlZW4KKyAgICAgICAg
Ly8gcmVjdXJzaXZlbHkgcHJvY2Vzc2VkIGFuZCBwb3BwZWQgb2ZmIHRoZSBzdGFjay4KKyAgICAg
ICAgQVNTRVJUKG1fb3ZlcmxhcFN0YWNrLnNpemUoKSA+PSAyKTsKKyAgICAgICAgbV9vdmVybGFw
U3RhY2tbbV9vdmVybGFwU3RhY2suc2l6ZSgpIC0gMl0udW5pdGUoYm91bmRzKTsKKyAgICAgICAg
bV9sYXllcnMuYWRkKGxheWVyKTsKKyAgICB9CisKKyAgICBib29sIGNvbnRhaW5zKGNvbnN0IFJl
bmRlckxheWVyKiBsYXllcikKKyAgICB7CisgICAgICAgIHJldHVybiBtX2xheWVycy5jb250YWlu
cyhsYXllcik7CisgICAgfQorCisgICAgYm9vbCBvdmVybGFwc0xheWVycyhjb25zdCBJbnRSZWN0
JiBib3VuZHMpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9vdmVybGFwU3RhY2subGFz
dCgpLmludGVyc2VjdHMoYm91bmRzKTsKKyAgICB9CisKKyAgICBib29sIGlzRW1wdHkoKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIG1fbGF5ZXJzLmlzRW1wdHkoKTsKKyAgICB9CisKKyAgICB2b2lk
IHN0YXJ0Q29tcG9zaXRpbmdBbmNlc3RvcigpCisgICAgeworICAgICAgICBtX292ZXJsYXBTdGFj
ay5hcHBlbmQoUmVnaW9uKCkpOworICAgIH0KKworICAgIHZvaWQgZW5kQ29tcG9zaXRpbmdBbmNl
c3RvcigpCisgICAgeworICAgICAgICBtX292ZXJsYXBTdGFja1ttX292ZXJsYXBTdGFjay5zaXpl
KCkgLSAyXS51bml0ZShtX292ZXJsYXBTdGFjay5sYXN0KCkpOworICAgICAgICBtX292ZXJsYXBT
dGFjay5yZW1vdmVMYXN0KCk7CisgICAgfQorCitwcml2YXRlOgorICAgIFZlY3RvcjxSZWdpb24+
IG1fb3ZlcmxhcFN0YWNrOworICAgIEhhc2hTZXQ8Y29uc3QgUmVuZGVyTGF5ZXIqPiBtX2xheWVy
czsKK307CisKIHN0cnVjdCBDb21wb3NpdGluZ1N0YXRlIHsKICAgICBDb21wb3NpdGluZ1N0YXRl
KFJlbmRlckxheWVyKiBjb21wQW5jZXN0b3IpCiAgICAgICAgIDogbV9jb21wb3NpdGluZ0FuY2Vz
dG9yKGNvbXBBbmNlc3RvcikKQEAgLTYzNywxOCArNjg5LDYgQEAgdm9pZCBSZW5kZXJMYXllckNv
bXBvc2l0b3I6OmFkZFRvT3ZlcmxhcE1hcFJlY3Vyc2l2ZShPdmVybGFwTWFwJiBvdmVybGFwTWFw
LCBSZW4KICAgICB9CiB9CiAKLWJvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpvdmVybGFwc0Nv
bXBvc2l0ZWRMYXllcnMoT3ZlcmxhcE1hcCYgb3ZlcmxhcE1hcCwgY29uc3QgSW50UmVjdCYgbGF5
ZXJCb3VuZHMpCi17Ci0gICAgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpPdmVybGFwTWFwOjpjb25z
dF9pdGVyYXRvciBlbmQgPSBvdmVybGFwTWFwLmVuZCgpOwotICAgIGZvciAoUmVuZGVyTGF5ZXJD
b21wb3NpdG9yOjpPdmVybGFwTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IG92ZXJsYXBNYXAuYmVn
aW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7Ci0gICAgICAgIGNvbnN0IEludFJlY3QmIGJvdW5kcyA9
IGl0LT5zZWNvbmQ7Ci0gICAgICAgIGlmIChsYXllckJvdW5kcy5pbnRlcnNlY3RzKGJvdW5kcykp
Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgCi0gICAgcmV0dXJuIGZhbHNl
OwotfQotCiAvLyAgUmVjdXJzZSB0aHJvdWdoIHRoZSBsYXllcnMgaW4gei1pbmRleCBhbmQgb3Zl
cmZsb3cgb3JkZXIgKHdoaWNoIGlzIGVxdWl2YWxlbnQgdG8gcGFpbnRpbmcgb3JkZXIpCiAvLyAg
Rm9yIHRoZSB6LW9yZGVyIGNoaWxkcmVuIG9mIGEgY29tcG9zaXRpbmcgbGF5ZXI6CiAvLyAgICAg
IElmIGEgY2hpbGQgbGF5ZXJzIGhhcyBhIGNvbXBvc2l0aW5nIGxheWVyLCB0aGVuIGFsbCBzdWJz
ZXF1ZW50IGxheWVycyBtdXN0CkBAIC02NzgsNyArNzE4LDcgQEAgdm9pZCBSZW5kZXJMYXllckNv
bXBvc2l0b3I6OmNvbXB1dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50cyhSZW5kZXJMYXllciogbGF5
ZXIsIE8KICAgICAgICAgaWYgKGFic0JvdW5kcy5pc0VtcHR5KCkpCiAgICAgICAgICAgICBhYnNC
b3VuZHMuc2V0U2l6ZShJbnRTaXplKDEsIDEpKTsKICAgICAgICAgaGF2ZUNvbXB1dGVkQm91bmRz
ID0gdHJ1ZTsKLSAgICAgICAgbXVzdE92ZXJsYXBDb21wb3NpdGVkTGF5ZXJzID0gb3ZlcmxhcHND
b21wb3NpdGVkTGF5ZXJzKCpvdmVybGFwTWFwLCBhYnNCb3VuZHMpOworICAgICAgICBtdXN0T3Zl
cmxhcENvbXBvc2l0ZWRMYXllcnMgPSBvdmVybGFwTWFwLT5vdmVybGFwc0xheWVycyhhYnNCb3Vu
ZHMpOwogICAgIH0KICAgICAKICAgICBsYXllci0+c2V0TXVzdE92ZXJsYXBDb21wb3NpdGVkTGF5
ZXJzKG11c3RPdmVybGFwQ29tcG9zaXRlZExheWVycyk7CkBAIC02OTcsMTAgKzczNyw5IEBAIHZv
aWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21wdXRlQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMo
UmVuZGVyTGF5ZXIqIGxheWVyLCBPCiAgICAgICAgIGNvbXBvc2l0aW5nU3RhdGUubV9zdWJ0cmVl
SXNDb21wb3NpdGluZyA9IHRydWU7CiAgICAgICAgIC8vIFRoaXMgbGF5ZXIgbm93IGFjdHMgYXMg
dGhlIGFuY2VzdG9yIGZvciBraWRzLgogICAgICAgICBjaGlsZFN0YXRlLm1fY29tcG9zaXRpbmdB
bmNlc3RvciA9IGxheWVyOwotICAgIH0KIAotICAgIGlmIChvdmVybGFwTWFwICYmIGNoaWxkU3Rh
dGUubV9jb21wb3NpdGluZ0FuY2VzdG9yICYmICFjaGlsZFN0YXRlLm1fY29tcG9zaXRpbmdBbmNl
c3Rvci0+aXNSb290TGF5ZXIoKSkgewotICAgICAgICBhZGRUb092ZXJsYXBNYXAoKm92ZXJsYXBN
YXAsIGxheWVyLCBhYnNCb3VuZHMsIGhhdmVDb21wdXRlZEJvdW5kcyk7CisgICAgICAgIGlmIChv
dmVybGFwTWFwKQorICAgICAgICAgICAgb3ZlcmxhcE1hcC0+c3RhcnRDb21wb3NpdGluZ0FuY2Vz
dG9yKCk7CiAgICAgfQogCiAjaWYgRU5BQkxFKFZJREVPKQpAQCAtNzI2LDcgKzc2NSw3IEBAIHZv
aWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21wdXRlQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMo
UmVuZGVyTGF5ZXIqIGxheWVyLCBPCiAgICAgICAgICAgICAgICAgICAgIGxheWVyLT5zZXRNdXN0
T3ZlcmxhcENvbXBvc2l0ZWRMYXllcnModHJ1ZSk7CiAgICAgICAgICAgICAgICAgICAgIGNoaWxk
U3RhdGUubV9jb21wb3NpdGluZ0FuY2VzdG9yID0gbGF5ZXI7CiAgICAgICAgICAgICAgICAgICAg
IGlmIChvdmVybGFwTWFwKQotICAgICAgICAgICAgICAgICAgICAgICAgYWRkVG9PdmVybGFwTWFw
KCpvdmVybGFwTWFwLCBsYXllciwgYWJzQm91bmRzLCBoYXZlQ29tcHV0ZWRCb3VuZHMpOworICAg
ICAgICAgICAgICAgICAgICAgICAgb3ZlcmxhcE1hcC0+c3RhcnRDb21wb3NpdGluZ0FuY2VzdG9y
KCk7CiAgICAgICAgICAgICAgICAgICAgIHdpbGxCZUNvbXBvc2l0ZWQgPSB0cnVlOwogICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIH0KQEAgLTc2MCwxMyArNzk5LDE5IEBAIHZvaWQgUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21wdXRlQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMoUmVuZGVy
TGF5ZXIqIGxheWVyLCBPCiAgICAgCiAgICAgQVNTRVJUKHdpbGxCZUNvbXBvc2l0ZWQgPT0gbmVl
ZHNUb0JlQ29tcG9zaXRlZChsYXllcikpOwogCisgICAgaWYgKG92ZXJsYXBNYXAgJiYgY2hpbGRT
dGF0ZS5tX2NvbXBvc2l0aW5nQW5jZXN0b3IgJiYgIWNoaWxkU3RhdGUubV9jb21wb3NpdGluZ0Fu
Y2VzdG9yLT5pc1Jvb3RMYXllcigpKQorICAgICAgICBhZGRUb092ZXJsYXBNYXAoKm92ZXJsYXBN
YXAsIGxheWVyLCBhYnNCb3VuZHMsIGhhdmVDb21wdXRlZEJvdW5kcyk7CisKICAgICAvLyBJZiB3
ZSBoYXZlIGEgc29mdHdhcmUgdHJhbnNmb3JtLCBhbmQgd2UgaGF2ZSBsYXllcnMgdW5kZXIgdXMs
IHdlIG5lZWQgdG8gYWxzbwogICAgIC8vIGJlIGNvbXBvc2l0ZWQuIEFsc28sIGlmIHdlIGhhdmUg
b3BhY2l0eSA8IDEsIHRoZW4gd2UgbmVlZCB0byBiZSBhIGxheWVyIHNvIHRoYXQKICAgICAvLyB0
aGUgY2hpbGQgbGF5ZXJzIGFyZSBvcGFxdWUsIHRoZW4gcmVuZGVyZWQgd2l0aCBvcGFjaXR5IG9u
IHRoaXMgbGF5ZXIuCiAgICAgaWYgKCF3aWxsQmVDb21wb3NpdGVkICYmIGNhbkJlQ29tcG9zaXRl
ZChsYXllcikgJiYgY2hpbGRTdGF0ZS5tX3N1YnRyZWVJc0NvbXBvc2l0aW5nICYmIHJlcXVpcmVz
Q29tcG9zaXRpbmdXaGVuRGVzY2VuZGFudHNBcmVDb21wb3NpdGluZyhsYXllci0+cmVuZGVyZXIo
KSkpIHsKICAgICAgICAgbGF5ZXItPnNldE11c3RPdmVybGFwQ29tcG9zaXRlZExheWVycyh0cnVl
KTsKLSAgICAgICAgaWYgKG92ZXJsYXBNYXApCisgICAgICAgIGNoaWxkU3RhdGUubV9jb21wb3Np
dGluZ0FuY2VzdG9yID0gbGF5ZXI7CisgICAgICAgIGlmIChvdmVybGFwTWFwKSB7CisgICAgICAg
ICAgICBvdmVybGFwTWFwLT5zdGFydENvbXBvc2l0aW5nQW5jZXN0b3IoKTsKICAgICAgICAgICAg
IGFkZFRvT3ZlcmxhcE1hcFJlY3Vyc2l2ZSgqb3ZlcmxhcE1hcCwgbGF5ZXIpOworICAgICAgICB9
CiAgICAgICAgIHdpbGxCZUNvbXBvc2l0ZWQgPSB0cnVlOwogICAgIH0KIApAQCAtNzg0LDExICs4
MjksMTcgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNvbXB1dGVDb21wb3NpdGluZ1Jl
cXVpcmVtZW50cyhSZW5kZXJMYXllciogbGF5ZXIsIE8KICAgICAvLyBzZXRIYXNDb21wb3NpdGlu
Z0Rlc2NlbmRhbnQoKSBtYXkgaGF2ZSBjaGFuZ2VkIHRoZSBhbnN3ZXIgdG8gbmVlZHNUb0JlQ29t
cG9zaXRlZCgpIHdoZW4gY2xpcHBpbmcsCiAgICAgLy8gc28gdGVzdCB0aGF0IGFnYWluLgogICAg
IGlmICghd2lsbEJlQ29tcG9zaXRlZCAmJiBjYW5CZUNvbXBvc2l0ZWQobGF5ZXIpICYmIGNsaXBz
Q29tcG9zaXRpbmdEZXNjZW5kYW50cyhsYXllcikpIHsKLSAgICAgICAgaWYgKG92ZXJsYXBNYXAp
CisgICAgICAgIGNoaWxkU3RhdGUubV9jb21wb3NpdGluZ0FuY2VzdG9yID0gbGF5ZXI7CisgICAg
ICAgIGlmIChvdmVybGFwTWFwKSB7CisgICAgICAgICAgICBvdmVybGFwTWFwLT5zdGFydENvbXBv
c2l0aW5nQW5jZXN0b3IoKTsKICAgICAgICAgICAgIGFkZFRvT3ZlcmxhcE1hcFJlY3Vyc2l2ZSgq
b3ZlcmxhcE1hcCwgbGF5ZXIpOworICAgICAgICB9CiAgICAgICAgIHdpbGxCZUNvbXBvc2l0ZWQg
PSB0cnVlOwogICAgIH0KIAorICAgIGlmIChvdmVybGFwTWFwICYmIGNoaWxkU3RhdGUubV9jb21w
b3NpdGluZ0FuY2VzdG9yID09IGxheWVyICYmICFsYXllci0+aXNSb290TGF5ZXIoKSkKKyAgICAg
ICAgb3ZlcmxhcE1hcC0+ZW5kQ29tcG9zaXRpbmdBbmNlc3RvcigpOworCiAgICAgLy8gSWYgd2Un
cmUgYmFjayBhdCB0aGUgcm9vdCwgYW5kIG5vIG90aGVyIGxheWVycyBuZWVkIHRvIGJlIGNvbXBv
c2l0ZWQsIGFuZCB0aGUgcm9vdCBsYXllciBpdHNlbGYgZG9lc24ndCBuZWVkCiAgICAgLy8gdG8g
YmUgY29tcG9zaXRlZCwgdGhlbiB3ZSBjYW4gZHJvcCBvdXQgb2YgY29tcG9zaXRpbmcgbW9kZSBh
bHRvZ2V0aGVyLiBIb3dldmVyLCBkb24ndCBkcm9wIG91dCBvZiBjb21wb3NpdGluZyBtb2RlCiAg
ICAgLy8gaWYgdGhlcmUgYXJlIGNvbXBvc2l0ZWQgbGF5ZXJzIHRoYXQgd2UgZGlkbid0IGhpdCBp
biBvdXIgdHJhdmVyc2FsIChlLmcuIGJlY2F1c2Ugb2YgdmlzaWJpbGl0eTpoaWRkZW4pLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCmluZGV4
IDg2YWVhMDdhNjM3MTg1MmEzNjRhYzdjNjQyM2RlZjcxYThlMTg3OWMuLjVjZjYwM2U4YTg4ZTg1
OWJlMDZiZDkxNDIxZmFhZTIzMTI5MDM5ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKQEAgLTIxMCw2ICsyMTAsOCBAQCBwdWJsaWM6
CiAgICAgdm9pZCBkb2N1bWVudEJhY2tncm91bmRDb2xvckRpZENoYW5nZSgpOwogCiBwcml2YXRl
OgorICAgIGNsYXNzIE92ZXJsYXBNYXA7CisKICAgICAvLyBHcmFwaGljc0xheWVyQ2xpZW50IElt
cGxlbWVudGF0aW9uCiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29u
c3QgR3JhcGhpY3NMYXllciosIGRvdWJsZSkgeyB9CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeVN5
bmNSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikgeyBzY2hlZHVsZUxheWVyRmx1c2goKTsg
fQpAQCAtMjMzLDEwICsyMzUsOCBAQCBwcml2YXRlOgogICAgIC8vIFJlcGFpbnQgdGhlIGdpdmVu
IHJlY3QgKHdoaWNoIGlzIGxheWVyJ3MgY29vcmRzKSwgYW5kIHJlZ2lvbnMgb2YgY2hpbGQgbGF5
ZXJzIHRoYXQgaW50ZXJzZWN0IHRoYXQgcmVjdC4KICAgICB2b2lkIHJlY3Vyc2l2ZVJlcGFpbnRM
YXllclJlY3QoUmVuZGVyTGF5ZXIqLCBjb25zdCBJbnRSZWN0Jik7CiAKLSAgICB0eXBlZGVmIEhh
c2hNYXA8UmVuZGVyTGF5ZXIqLCBJbnRSZWN0PiBPdmVybGFwTWFwOwogICAgIHZvaWQgYWRkVG9P
dmVybGFwTWFwKE92ZXJsYXBNYXAmLCBSZW5kZXJMYXllciosIEludFJlY3QmIGxheWVyQm91bmRz
LCBib29sJiBib3VuZHNDb21wdXRlZCk7CiAgICAgdm9pZCBhZGRUb092ZXJsYXBNYXBSZWN1cnNp
dmUoT3ZlcmxhcE1hcCYsIFJlbmRlckxheWVyKik7Ci0gICAgc3RhdGljIGJvb2wgb3ZlcmxhcHND
b21wb3NpdGVkTGF5ZXJzKE92ZXJsYXBNYXAmLCBjb25zdCBJbnRSZWN0JiBsYXllckJvdW5kcyk7
CiAKICAgICB2b2lkIHVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzVGltZXJGaXJlZChUaW1lcjxSZW5k
ZXJMYXllckNvbXBvc2l0b3I+Kik7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxNTVjNDA1ZDcwYmIxMzk4OWU3ZDgyMjdi
NDQzNWY2MTJkMTU4YThhLi5kMTcyYWZjYmI2NDUxN2NlNDY5M2UxYjAwNDlhMWZiZThiZTM4ZmM3
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDMtMDIgIEFkcmllbm5lIFdhbGtlciAgPGVu
bmVAZ29vZ2xlLmNvbT4KKworICAgICAgICBDb21wb3NpdGluZyBvdmVybGFwIHRlc3RpbmcgY2Fu
IHRocm93IGxheWVycyBpbnRvIGNvbXBvc2l0aW5nIHdoZW4gdGhleSBzaG91bGQgbm90IGJlLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTAxOTIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSB0ZXN0
IGNhc2UgZnJvbSBTaW1vbiBGcmFzZXIgd2hlcmUgYW4gZXh0cmEgZ3JhcGhpY3MgbGF5ZXIgd291
bGQKKyAgICAgICAgZ2V0IGNyZWF0ZWQgd2l0aG91dCB0aGlzIHBhdGNoLgorCisgICAgICAgICog
Y29tcG9zaXRpbmcvbGF5ZXItY3JlYXRpb24vc3RhY2tpbmctY29udGV4dC1vdmVybGFwLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY29tcG9zaXRpbmcvbGF5ZXItY3JlYXRpb24vc3Rh
Y2tpbmctY29udGV4dC1vdmVybGFwLmh0bWw6IEFkZGVkLgorCiAyMDEyLTAzLTAyICBQaGlsaXBw
ZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBH
VEsgcmViYXNlbGluZSBhZnRlciByMTA5NTgxLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvbGF5ZXItY3JlYXRpb24vc3RhY2tpbmctY29udGV4dC1vdmVybGFwLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2xheWVyLWNyZWF0aW9uL3N0YWNraW5nLWNv
bnRleHQtb3ZlcmxhcC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTU1MTBjYjFiNzYwNzgzOWZi
ZjI2Nzc4ZmFkMGQ0Yzc3YTg0MjZjYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Nv
bXBvc2l0aW5nL2xheWVyLWNyZWF0aW9uL3N0YWNraW5nLWNvbnRleHQtb3ZlcmxhcC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwyMSBAQAorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA4MDAuMDAg
NjAwLjAwKQorICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRz
IDgwMC4wMCA2MDAuMDApCisgICAgICAoY2hpbGRyZW4gMgorICAgICAgICAoR3JhcGhpY3NMYXll
cgorICAgICAgICAgIChwb3NpdGlvbiA4LjAwIDguMDApCisgICAgICAgICAgKGJvdW5kcyAyMC4w
MCAyMC4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICkKKyAgICAgICAg
KEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gOC4wMCAxOC4wMCkKKyAgICAgICAg
ICAoYm91bmRzIDE0Mi4wMCAxNDIuMDApCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAg
ICAgICApCisgICAgICApCisgICAgKQorICApCispCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2NvbXBvc2l0aW5nL2xheWVyLWNyZWF0aW9uL3N0YWNraW5nLWNvbnRleHQtb3ZlcmxhcC5odG1s
IGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvbGF5ZXItY3JlYXRpb24vc3RhY2tpbmctY29udGV4
dC1vdmVybGFwLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODQ3ODViMGExNWFhNDdjMDJmMDZkODc4YzYyY2Jl
MTkwYTExMGMyNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2xh
eWVyLWNyZWF0aW9uL3N0YWNraW5nLWNvbnRleHQtb3ZlcmxhcC5odG1sCkBAIC0wLDAgKzEsNjQg
QEAKKzwhRE9DVFlQRSBodG1sPgorCis8aHRtbD4KKzxoZWFkPgorICAgIDxzdHlsZSB0eXBlPSJ0
ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+CisgICAgICAgIC50cmlnZ2VyIHsKKyAgICAgICAgICAg
IHdpZHRoOiAyMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAyMHB4OworICAgICAgICAgICAgYmFj
a2dyb3VuZC1jb2xvcjogYmx1ZTsKKyAgICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOnRyYW5z
bGF0ZVooMCk7CisgICAgICAgIH0KKworICAgICAgICAuY29udGFpbmVyIHsKKyAgICAgICAgICAg
IHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAgICAgICAgIHotaW5kZXg6IDA7CisgICAgICAgICAg
ICB0b3A6IC0xMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAxMjBweDsKKyAgICAgICAgICAgIHdp
ZHRoOiAxMjBweDsKKyAgICAgICAgICAgIHBhZGRpbmc6IDEwcHg7CisgICAgICAgICAgICBib3Jk
ZXI6IDFweCBzb2xpZCBibGFjazsKKyAgICAgICAgfQorCisgICAgICAgIC5ib3ggeworICAgICAg
ICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAg
ICAgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAgIG1hcmdpbjogMTBweDsKKyAgICAg
ICAgICAgIGJhY2tncm91bmQtY29sb3I6IHNpbHZlcjsKKyAgICAgICAgfQorCisgICAgICAgIC5s
YXllcnRyZWUgeworICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICAgICAg
dG9wOiAxMDAwcHg7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorPC9oZWFkPgorPHNjcmlwdD4K
KyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
d2FpdFVudGlsRG9uZSgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGRvVGVzdCgpCisgICAgewor
ICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGF5ZXJ0cmVlJykuaW5uZXJUZXh0ID0gbGF5b3V0VGVz
dENvbnRyb2xsZXIubGF5ZXJUcmVlQXNUZXh0KCk7CisgICAgICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB3aW5kb3cuYWRk
RXZlbnRMaXN0ZW5lcignbG9hZCcsIGRvVGVzdCwgZmFsc2UpOworPC9zY3JpcHQ+Cis8Ym9keT4K
KworICAgIDxkaXYgY2xhc3M9InRyaWdnZXIiPjwvZGl2PgorCisgICAgPGRpdiBjbGFzcz0iY29u
dGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iY2hpbGQgYm94Ij4KKyAgICAgICAgICA8IS0t
IFRoaXMgYm94IGRvZXNuJ3QgbmVlZCBpdHMgb3duIGxheWVyLiAtLT4KKyAgICAgICAgPC9kaXY+
CisgICAgPC9kaXY+CisgICAgPHByZSBpZD0ibGF5ZXJ0cmVlIj5sYXllcnMgZ28gaGVyZSBpbiBE
UlQ8L3ByZT4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>130232</attachid>
            <date>2012-03-05 16:45:24 -0800</date>
            <delta_ts>2012-03-05 16:45:24 -0800</delta_ts>
            <desc>Pre/post patch layer comparison</desc>
            <filename>layercomparison.png</filename>
            <type>image/png</type>
            <size>54996</size>
            <attacher name="Adrienne Walker">enne</attacher>
            
              <data encoding="base64">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
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130258</attachid>
            <date>2012-03-05 18:25:16 -0800</date>
            <delta_ts>2012-03-05 19:41:58 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-50192-20120305182514.patch</filename>
            <type>text/plain</type>
            <size>21643</size>
            <attacher name="Adrienne Walker">enne</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5ODI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzA4MWQ0ZmNkYjYzZWJh
YTA3MDgxMTcwZjRlZTBjNGFmOWUzYTNiOC4uOTIwNGM0NzdjMTYyOTBjZTc0NWNlMmVlZWM5MWFj
MTRhMTRlYTdiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDEyLTAzLTA1ICBBZHJp
ZW5uZSBXYWxrZXIgIDxlbm5lQGdvb2dsZS5jb20+CisKKyAgICAgICAgQ29tcG9zaXRpbmcgb3Zl
cmxhcCB0ZXN0aW5nIGNhbiB0aHJvdyBsYXllcnMgaW50byBjb21wb3NpdGluZyB3aGVuIHRoZXkg
c2hvdWxkIG5vdCBiZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTUwMTkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAg
ICAgIFRoZSBwcmV2aW91cyBvdmVybGFwIG1hcCBiZWhhdmlvciB3YXMgdGhhdCBhIG5vbi1jb21w
b3NpdGVkIHF1ZXJ5CisgICAgICAgIGxheWVyIHdvdWxkIGJlY29tZSBjb21wb3NpdGVkIGR1ZSB0
byBvdmVybGFwIGlmIGFuZCBvbmx5IGlmIHRoZSBxdWVyeQorICAgICAgICBsYXllcidzIGFic29s
dXRlIGJvdW5kcyBvdmVybGFwcGVkIHRoZSBhYnNvbHV0ZSBib3VuZHMgb2Ygc29tZSBvdGhlcgor
ICAgICAgICBsYXllciB3aGljaDoKKyAgICAgICAgICAgIC0gZHJhd3MgYmVmb3JlIHRoZSBxdWVy
eSBsYXllcgorICAgICAgICAgICAgLSBpcyBvciBoYXMgYSBjb21wb3NpdGluZyBhbmNlc3Rvcgor
CisgICAgICAgIFRoaXMgYmVoYXZpb3IsIHdoaWxlIGNvcnJlY3QsIHdhcyB0b28gcGVybWlzc2l2
ZSBpbiB0aHJvd2luZyBsYXllcnMKKyAgICAgICAgaW50byBjb21wb3NpdGluZywgY2F1c2luZyBt
YW55IGxheWVycyB0byBnZXQgdGhlaXIgb3duIGJhY2tpbmcgd2hlbgorICAgICAgICB0aGV5IGNv
dWxkIGhhdmUganVzdCBnb25lIGludG8gdGhlaXIgY29tcG9zaXRpbmcgYW5jZXN0b3IncyBiYWNr
aW5nLgorCisgICAgICAgIFRoZSBjb3JyZWN0IGxvZ2ljIGlzIHRoYXQgbm9uLWNvbXBvc2l0ZWQg
cXVlcnkgbGF5ZXIgbmVlZHMgdG8gYmUKKyAgICAgICAgY29tcG9zaXRlZCBkdWUgdG8gb3Zlcmxh
cCBpZiBhbmQgb25seSBpZiB0aGUgcXVlcnkgbGF5ZXIncyBhYnNvbHV0ZQorICAgICAgICBib3Vu
ZHMgb3ZlcmxhcCB0aGUgYWJzb2x1dGUgYm91bmRzIG9mIHNvbWUgb3RoZXIgbGF5ZXIgd2hpY2g6
CisgICAgICAgICAgICAtIGRyYXdzIGJlZm9yZSB0aGUgcXVlcnkgbGF5ZXIKKyAgICAgICAgICAg
IC0gaGFzIGEgZGlmZmVyZW50IGNvbXBvc2l0aW5nIGFuY2VzdG9yIHRoYW4gdGhlIHF1ZXJ5IGxh
eWVyCisgICAgICAgICAgICAtIGlzIG9yIGhhcyBhIGNvbXBvc2l0aW5nIGFuY2VzdG9yIHRoYXQg
aXMgYSBkZXNjZW5kZW50IG9mIHRoZQorICAgICAgICAgICAgICBxdWVyeSBsYXllcidzIGNvbXBv
c2l0aW5nIGFuY2VzdG9yCisKKyAgICAgICAgVGhpcyBwYXRjaCBjaGFuZ2VzIHRoZSBzZW1hbnRp
Y3Mgb2YgdGhlIG92ZXJsYXAgbWFwIHRvIGVuYWJsZSB0aGlzCisgICAgICAgIGJlaGF2aW9yLgor
CisgICAgICAgIFJhdGhlciB0aGFuIGhhdmluZyBvbmUgZ2xvYmFsIG92ZXJsYXAgbWFwLCB0aGVy
ZSBpcyBub3cgYSBzdGFjayBvZgorICAgICAgICBvdmVybGFwIG1hcHMuIE5ldyAoZW1wdHkpIG92
ZXJsYXAgbWFwcyBhcmUgcHVzaGVkIG9udG8gdGhlIHN0YWNrCisgICAgICAgIHdoZW5ldmVyIGEg
bGF5ZXIgYmVjb21lcyBhIGNvbXBvc2l0aW5nIGFuY2VzdG9yIGFuZCBwb3BwZWQgYWZ0ZXIgYWxs
CisgICAgICAgIG9mIHRoZSBjb21wb3NpdGluZyByZXF1aXJlbWVudHMgZm9yIHRoYXQgbGF5ZXIn
cyBjaGlsZHJlbiBoYXZlIGJlZW4KKyAgICAgICAgY29tcHV0ZWQuCisKKyAgICAgICAgVGhlIGNv
bXBvc2l0aW5nIGFuY2VzdG9yIGFuZCBhbGwgb2YgaXRzIG5vbi1jb21wb3NpdGVkIGNoaWxkcmVu
IG9mIGEKKyAgICAgICAgY29tcG9zaXRpbmcgYW5jZXN0b3IgZG8gbm90IGdldCBjb25zaWRlcmVk
IGZvciBvdmVybGFwIHVudGlsIHRoZWlyCisgICAgICAgIGNvbXBvc2l0ZWQgYW5jZXN0b3IgaGFz
IGJlZW4gcG9wcGVkIG9mZiB0aGUgc3RhY2suIElmIGEgY29tcG9zaXRpbmcKKyAgICAgICAgYW5j
ZXN0b3IgaGFzIGEgY29tcG9zaXRpbmcgc3VidHJlZSwgdGhlbiBhbnkgZGVzY2VuZGVudHMgb2Yg
dGhhdAorICAgICAgICBjb21wb3NpdGluZyBhbmNlc3RvciB0aGF0IGRyYXcgYWZ0ZXIgdGhhdCBz
dWJ0cmVlIHdpbGwgY29uc2lkZXIKKyAgICAgICAgZXZlcnl0aGluZyBpbiB0aGUgY29tcG9zaXRp
bmcgc3VidHJlZSBmb3Igb3ZlcmxhcC4KKworICAgICAgICBUZXN0OiBjb21wb3NpdGluZy9sYXll
ci1jcmVhdGlvbi9zdGFja2luZy1jb250ZXh0LW92ZXJsYXAuaHRtbAorCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvUmVnaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlZ2lvbjo6aW50
ZXJzZWN0cyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9SZWdpb24uaDoKKyAgICAgICAgKFJlZ2lvbik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChSZW5kZXJMYXllckNvbXBvc2l0b3I6Ok92
ZXJsYXBNYXApOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpPdmVy
bGFwTWFwOjpPdmVybGFwTWFwKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9z
aXRvcjo6T3ZlcmxhcE1hcDo6YWRkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29t
cG9zaXRvcjo6T3ZlcmxhcE1hcDo6Y29udGFpbnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXJDb21wb3NpdG9yOjpPdmVybGFwTWFwOjpvdmVybGFwc0xheWVycyk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6Ok92ZXJsYXBNYXA6OmlzRW1wdHkpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpPdmVybGFwTWFwOjpwb3BDb21w
b3NpdGluZ0NvbnRhaW5lcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0
b3I6Ok92ZXJsYXBNYXA6OnB1c2hDb21wb3NpdGluZ0NvbnRhaW5lcik6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OmFkZFRvT3ZlcmxhcE1hcFJlY3Vyc2l2ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNvbXB1dGVDb21wb3NpdGlu
Z1JlcXVpcmVtZW50cyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRv
ci5oOgorICAgICAgICAoUmVuZGVyTGF5ZXJDb21wb3NpdG9yKToKKwogMjAxMi0wMy0wNSAgU3Rl
cGhlbiBDaGVubmV5ICA8c2NoZW5uZXlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1
bV0gU1ZHIENvbXBvc2l0ZSBvZiBPZmZzZXQgY3Jhc2hlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVnaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1JlZ2lvbi5jcHAKaW5kZXggZWMyMTFkM2I0OWZiYjFjM2U5OTI3NzkyOTlk
YzZmMDAxZTY2YTMwNy4uM2YwOTNlYmRjZDZkNWRmYTE2NGY2NjYyYjNmNjdiNTJlYWFjNTU2YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVnaW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZWdpb24uY3BwCkBAIC03Nyw2
ICs3NywxNyBAQCBib29sIFJlZ2lvbjo6Y29udGFpbnMoY29uc3QgSW50UG9pbnQmIHBvaW50KSBj
b25zdAogICAgIHJldHVybiBjb250YWlucyhJbnRSZWN0KHBvaW50LCBJbnRTaXplKDEsIDEpKSk7
CiB9CiAKK2Jvb2wgUmVnaW9uOjppbnRlcnNlY3RzKGNvbnN0IFJlZ2lvbiYgcmVnaW9uKSBjb25z
dAoreworICAgIGlmICghbV9ib3VuZHMuaW50ZXJzZWN0cyhyZWdpb24ubV9ib3VuZHMpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBGSVhNRTogdGhpcyBjb3VsZCBiZSBvcHRpbWl6
ZWQuCisgICAgUmVnaW9uIHRlbXBSZWdpb24oKnRoaXMpOworICAgIHRlbXBSZWdpb24uaW50ZXJz
ZWN0KHJlZ2lvbik7CisgICAgcmV0dXJuICF0ZW1wUmVnaW9uLmlzRW1wdHkoKTsKK30KKwogdW5z
aWduZWQgUmVnaW9uOjp0b3RhbEFyZWEoKSBjb25zdAogewogICAgIFZlY3RvcjxJbnRSZWN0PiBy
ZWN0cyA9IHRoaXMtPnJlY3RzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9SZWdpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1Jl
Z2lvbi5oCmluZGV4IDJmZWNmZTQxNjFhYTBmM2MzZWY4ZDNmMjFiYjU1MTkxMzllNzhjNmUuLmE4
NzI2OTU2N2E1YTIyMDAwNWFlOTRiNGRkODdhYmQ5MTMxZWZkYzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlZ2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL1JlZ2lvbi5oCkBAIC01Miw2ICs1Miw5IEBAIHB1YmxpYzoKIAog
ICAgIGJvb2wgY29udGFpbnMoY29uc3QgSW50UG9pbnQmKSBjb25zdDsKIAorICAgIC8vIFJldHVy
bnMgdHJ1ZSBpZiB0aGUgcXVlcnkgcmVnaW9uIGludGVyc2VjdHMgYW55IHBhcnQgb2YgdGhpcyBy
ZWdpb24uCisgICAgYm9vbCBpbnRlcnNlY3RzKGNvbnN0IFJlZ2lvbiYpIGNvbnN0OworCiAgICAg
dW5zaWduZWQgdG90YWxBcmVhKCkgY29uc3Q7CiAKICNpZm5kZWYgTkRFQlVHCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmluZGV4IDQ1
MTk3OTA0ZjQ3MDhjZWU4NzlkNTQ5MzBhOGI4ZGY1ZTBkODIwZTIuLjBkM2NmNTYzMGFmNWUzNmRj
MzU5NmE1MTk4MjFiODkzNjI4MDk5MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC03NSw2ICs3NSw1OCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKK2NsYXNzIFJlbmRl
ckxheWVyQ29tcG9zaXRvcjo6T3ZlcmxhcE1hcCB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUo
T3ZlcmxhcE1hcCk7CitwdWJsaWM6CisgICAgT3ZlcmxhcE1hcCgpCisgICAgeworICAgICAgICAv
LyBCZWdpbiBhc3N1bWluZyB0aGUgcm9vdCBsYXllciB3aWxsIGJlIGNvbXBvc2l0ZWQgc28gdGhh
dCB0aGVyZSBpcworICAgICAgICAvLyBzb21ldGhpbmcgb24gdGhlIHN0YWNrLiBUaGUgcm9vdCBs
YXllciBzaG91bGQgYWxzbyBuZXZlciBnZXQgYW4KKyAgICAgICAgLy8gcG9wQ29tcG9zaXRpbmdD
b250YWluZXIgY2FsbC4KKyAgICAgICAgcHVzaENvbXBvc2l0aW5nQ29udGFpbmVyKCk7CisgICAg
fQorCisgICAgdm9pZCBhZGQoY29uc3QgUmVuZGVyTGF5ZXIqIGxheWVyLCBjb25zdCBJbnRSZWN0
JiBib3VuZHMpCisgICAgeworICAgICAgICAvLyBMYXllcnMgZG8gbm90IGNvbnRyaWJ1dGUgdG8g
b3ZlcmxhcCBpbW1lZGlhdGVseS0taW5zdGVhZCwgdGhleSB3aWxsCisgICAgICAgIC8vIGNvbnRy
aWJ1dGUgdG8gb3ZlcmxhcCBhcyBzb29uIGFzIHRoZWlyIGNvbXBvc2l0ZWQgYW5jZXN0b3IgaGFz
IGJlZW4KKyAgICAgICAgLy8gcmVjdXJzaXZlbHkgcHJvY2Vzc2VkIGFuZCBwb3BwZWQgb2ZmIHRo
ZSBzdGFjay4KKyAgICAgICAgQVNTRVJUKG1fb3ZlcmxhcFN0YWNrLnNpemUoKSA+PSAyKTsKKyAg
ICAgICAgbV9vdmVybGFwU3RhY2tbbV9vdmVybGFwU3RhY2suc2l6ZSgpIC0gMl0udW5pdGUoYm91
bmRzKTsKKyAgICAgICAgbV9sYXllcnMuYWRkKGxheWVyKTsKKyAgICB9CisKKyAgICBib29sIGNv
bnRhaW5zKGNvbnN0IFJlbmRlckxheWVyKiBsYXllcikKKyAgICB7CisgICAgICAgIHJldHVybiBt
X2xheWVycy5jb250YWlucyhsYXllcik7CisgICAgfQorCisgICAgYm9vbCBvdmVybGFwc0xheWVy
cyhjb25zdCBJbnRSZWN0JiBib3VuZHMpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9v
dmVybGFwU3RhY2subGFzdCgpLmludGVyc2VjdHMoYm91bmRzKTsKKyAgICB9CisKKyAgICBib29s
IGlzRW1wdHkoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fbGF5ZXJzLmlzRW1wdHkoKTsKKyAg
ICB9CisKKyAgICB2b2lkIHB1c2hDb21wb3NpdGluZ0NvbnRhaW5lcigpCisgICAgeworICAgICAg
ICBtX292ZXJsYXBTdGFjay5hcHBlbmQoUmVnaW9uKCkpOworICAgIH0KKworICAgIHZvaWQgcG9w
Q29tcG9zaXRpbmdDb250YWluZXIoKQorICAgIHsKKyAgICAgICAgbV9vdmVybGFwU3RhY2tbbV9v
dmVybGFwU3RhY2suc2l6ZSgpIC0gMl0udW5pdGUobV9vdmVybGFwU3RhY2subGFzdCgpKTsKKyAg
ICAgICAgbV9vdmVybGFwU3RhY2sucmVtb3ZlTGFzdCgpOworICAgIH0KKworcHJpdmF0ZToKKyAg
ICBWZWN0b3I8UmVnaW9uPiBtX292ZXJsYXBTdGFjazsKKyAgICBIYXNoU2V0PGNvbnN0IFJlbmRl
ckxheWVyKj4gbV9sYXllcnM7Cit9OworCiBzdHJ1Y3QgQ29tcG9zaXRpbmdTdGF0ZSB7CiAgICAg
Q29tcG9zaXRpbmdTdGF0ZShSZW5kZXJMYXllciogY29tcEFuY2VzdG9yKQogICAgICAgICA6IG1f
Y29tcG9zaXRpbmdBbmNlc3Rvcihjb21wQW5jZXN0b3IpCkBAIC02MzcsMTggKzY4OSw2IEBAIHZv
aWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjphZGRUb092ZXJsYXBNYXBSZWN1cnNpdmUoT3Zlcmxh
cE1hcCYgb3ZlcmxhcE1hcCwgUmVuCiAgICAgfQogfQogCi1ib29sIFJlbmRlckxheWVyQ29tcG9z
aXRvcjo6b3ZlcmxhcHNDb21wb3NpdGVkTGF5ZXJzKE92ZXJsYXBNYXAmIG92ZXJsYXBNYXAsIGNv
bnN0IEludFJlY3QmIGxheWVyQm91bmRzKQotewotICAgIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6
T3ZlcmxhcE1hcDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gb3ZlcmxhcE1hcC5lbmQoKTsKLSAgICBm
b3IgKFJlbmRlckxheWVyQ29tcG9zaXRvcjo6T3ZlcmxhcE1hcDo6Y29uc3RfaXRlcmF0b3IgaXQg
PSBvdmVybGFwTWFwLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgewotICAgICAgICBjb25zdCBJ
bnRSZWN0JiBib3VuZHMgPSBpdC0+c2Vjb25kOwotICAgICAgICBpZiAobGF5ZXJCb3VuZHMuaW50
ZXJzZWN0cyhib3VuZHMpKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIAot
ICAgIHJldHVybiBmYWxzZTsKLX0KLQogLy8gIFJlY3Vyc2UgdGhyb3VnaCB0aGUgbGF5ZXJzIGlu
IHotaW5kZXggYW5kIG92ZXJmbG93IG9yZGVyICh3aGljaCBpcyBlcXVpdmFsZW50IHRvIHBhaW50
aW5nIG9yZGVyKQogLy8gIEZvciB0aGUgei1vcmRlciBjaGlsZHJlbiBvZiBhIGNvbXBvc2l0aW5n
IGxheWVyOgogLy8gICAgICBJZiBhIGNoaWxkIGxheWVycyBoYXMgYSBjb21wb3NpdGluZyBsYXll
ciwgdGhlbiBhbGwgc3Vic2VxdWVudCBsYXllcnMgbXVzdApAQCAtNjc4LDcgKzcxOCw3IEBAIHZv
aWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21wdXRlQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMo
UmVuZGVyTGF5ZXIqIGxheWVyLCBPCiAgICAgICAgIGlmIChhYnNCb3VuZHMuaXNFbXB0eSgpKQog
ICAgICAgICAgICAgYWJzQm91bmRzLnNldFNpemUoSW50U2l6ZSgxLCAxKSk7CiAgICAgICAgIGhh
dmVDb21wdXRlZEJvdW5kcyA9IHRydWU7Ci0gICAgICAgIG11c3RPdmVybGFwQ29tcG9zaXRlZExh
eWVycyA9IG92ZXJsYXBzQ29tcG9zaXRlZExheWVycygqb3ZlcmxhcE1hcCwgYWJzQm91bmRzKTsK
KyAgICAgICAgbXVzdE92ZXJsYXBDb21wb3NpdGVkTGF5ZXJzID0gb3ZlcmxhcE1hcC0+b3Zlcmxh
cHNMYXllcnMoYWJzQm91bmRzKTsKICAgICB9CiAgICAgCiAgICAgbGF5ZXItPnNldE11c3RPdmVy
bGFwQ29tcG9zaXRlZExheWVycyhtdXN0T3ZlcmxhcENvbXBvc2l0ZWRMYXllcnMpOwpAQCAtNjg4
LDcgKzcyOCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21wdXRlQ29tcG9zaXRp
bmdSZXF1aXJlbWVudHMoUmVuZGVyTGF5ZXIqIGxheWVyLCBPCiAgICAgLy8gYW5jZXN0b3Igd2l0
aCBtX3N1YnRyZWVJc0NvbXBvc2l0aW5nIHNldCB0byBmYWxzZS4KICAgICBDb21wb3NpdGluZ1N0
YXRlIGNoaWxkU3RhdGUoY29tcG9zaXRpbmdTdGF0ZS5tX2NvbXBvc2l0aW5nQW5jZXN0b3IpOwog
I2lmbmRlZiBOREVCVUcKLSAgICArK2NoaWxkU3RhdGUubV9kZXB0aDsKKyAgICBjaGlsZFN0YXRl
Lm1fZGVwdGggPSBjb21wb3NpdGluZ1N0YXRlLm1fZGVwdGggKyAxOwogI2VuZGlmCiAKICAgICBi
b29sIHdpbGxCZUNvbXBvc2l0ZWQgPSBuZWVkc1RvQmVDb21wb3NpdGVkKGxheWVyKTsKQEAgLTY5
NywxMCArNzM3LDkgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNvbXB1dGVDb21wb3Np
dGluZ1JlcXVpcmVtZW50cyhSZW5kZXJMYXllciogbGF5ZXIsIE8KICAgICAgICAgY29tcG9zaXRp
bmdTdGF0ZS5tX3N1YnRyZWVJc0NvbXBvc2l0aW5nID0gdHJ1ZTsKICAgICAgICAgLy8gVGhpcyBs
YXllciBub3cgYWN0cyBhcyB0aGUgYW5jZXN0b3IgZm9yIGtpZHMuCiAgICAgICAgIGNoaWxkU3Rh
dGUubV9jb21wb3NpdGluZ0FuY2VzdG9yID0gbGF5ZXI7Ci0gICAgfQogCi0gICAgaWYgKG92ZXJs
YXBNYXAgJiYgY2hpbGRTdGF0ZS5tX2NvbXBvc2l0aW5nQW5jZXN0b3IgJiYgIWNoaWxkU3RhdGUu
bV9jb21wb3NpdGluZ0FuY2VzdG9yLT5pc1Jvb3RMYXllcigpKSB7Ci0gICAgICAgIGFkZFRvT3Zl
cmxhcE1hcCgqb3ZlcmxhcE1hcCwgbGF5ZXIsIGFic0JvdW5kcywgaGF2ZUNvbXB1dGVkQm91bmRz
KTsKKyAgICAgICAgaWYgKG92ZXJsYXBNYXApCisgICAgICAgICAgICBvdmVybGFwTWFwLT5wdXNo
Q29tcG9zaXRpbmdDb250YWluZXIoKTsKICAgICB9CiAKICNpZiBFTkFCTEUoVklERU8pCkBAIC03
MjYsNyArNzY1LDcgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNvbXB1dGVDb21wb3Np
dGluZ1JlcXVpcmVtZW50cyhSZW5kZXJMYXllciogbGF5ZXIsIE8KICAgICAgICAgICAgICAgICAg
ICAgbGF5ZXItPnNldE11c3RPdmVybGFwQ29tcG9zaXRlZExheWVycyh0cnVlKTsKICAgICAgICAg
ICAgICAgICAgICAgY2hpbGRTdGF0ZS5tX2NvbXBvc2l0aW5nQW5jZXN0b3IgPSBsYXllcjsKICAg
ICAgICAgICAgICAgICAgICAgaWYgKG92ZXJsYXBNYXApCi0gICAgICAgICAgICAgICAgICAgICAg
ICBhZGRUb092ZXJsYXBNYXAoKm92ZXJsYXBNYXAsIGxheWVyLCBhYnNCb3VuZHMsIGhhdmVDb21w
dXRlZEJvdW5kcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBvdmVybGFwTWFwLT5wdXNoQ29t
cG9zaXRpbmdDb250YWluZXIoKTsKICAgICAgICAgICAgICAgICAgICAgd2lsbEJlQ29tcG9zaXRl
ZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpAQCAtNzYwLDEzICs3
OTksMjIgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNvbXB1dGVDb21wb3NpdGluZ1Jl
cXVpcmVtZW50cyhSZW5kZXJMYXllciogbGF5ZXIsIE8KICAgICAKICAgICBBU1NFUlQod2lsbEJl
Q29tcG9zaXRlZCA9PSBuZWVkc1RvQmVDb21wb3NpdGVkKGxheWVyKSk7CiAKKyAgICAvLyBBbGwg
bGF5ZXJzIChldmVuIG9uZXMgdGhhdCBhcmVuJ3QgYmVpbmcgY29tcG9zaXRlZCkgbmVlZCB0byBn
ZXQgYWRkZWQgdG8KKyAgICAvLyB0aGUgb3ZlcmxhcCBtYXAuIExheWVycyB0aGF0IGRvIG5vdCBj
b21wb3NpdGUgd2lsbCBkcmF3IGludG8gdGhlaXIKKyAgICAvLyBjb21wb3NpdGluZyBhbmNlc3Rv
cidzIGJhY2tpbmcsIGFuZCBzbyBhcmUgc3RpbGwgY29uc2lkZXJlZCBmb3Igb3ZlcmxhcC4KKyAg
ICBpZiAob3ZlcmxhcE1hcCAmJiBjaGlsZFN0YXRlLm1fY29tcG9zaXRpbmdBbmNlc3RvciAmJiAh
Y2hpbGRTdGF0ZS5tX2NvbXBvc2l0aW5nQW5jZXN0b3ItPmlzUm9vdExheWVyKCkpCisgICAgICAg
IGFkZFRvT3ZlcmxhcE1hcCgqb3ZlcmxhcE1hcCwgbGF5ZXIsIGFic0JvdW5kcywgaGF2ZUNvbXB1
dGVkQm91bmRzKTsKKwogICAgIC8vIElmIHdlIGhhdmUgYSBzb2Z0d2FyZSB0cmFuc2Zvcm0sIGFu
ZCB3ZSBoYXZlIGxheWVycyB1bmRlciB1cywgd2UgbmVlZCB0byBhbHNvCiAgICAgLy8gYmUgY29t
cG9zaXRlZC4gQWxzbywgaWYgd2UgaGF2ZSBvcGFjaXR5IDwgMSwgdGhlbiB3ZSBuZWVkIHRvIGJl
IGEgbGF5ZXIgc28gdGhhdAogICAgIC8vIHRoZSBjaGlsZCBsYXllcnMgYXJlIG9wYXF1ZSwgdGhl
biByZW5kZXJlZCB3aXRoIG9wYWNpdHkgb24gdGhpcyBsYXllci4KICAgICBpZiAoIXdpbGxCZUNv
bXBvc2l0ZWQgJiYgY2FuQmVDb21wb3NpdGVkKGxheWVyKSAmJiBjaGlsZFN0YXRlLm1fc3VidHJl
ZUlzQ29tcG9zaXRpbmcgJiYgcmVxdWlyZXNDb21wb3NpdGluZ1doZW5EZXNjZW5kYW50c0FyZUNv
bXBvc2l0aW5nKGxheWVyLT5yZW5kZXJlcigpKSkgewogICAgICAgICBsYXllci0+c2V0TXVzdE92
ZXJsYXBDb21wb3NpdGVkTGF5ZXJzKHRydWUpOwotICAgICAgICBpZiAob3ZlcmxhcE1hcCkKKyAg
ICAgICAgY2hpbGRTdGF0ZS5tX2NvbXBvc2l0aW5nQW5jZXN0b3IgPSBsYXllcjsKKyAgICAgICAg
aWYgKG92ZXJsYXBNYXApIHsKKyAgICAgICAgICAgIG92ZXJsYXBNYXAtPnB1c2hDb21wb3NpdGlu
Z0NvbnRhaW5lcigpOwogICAgICAgICAgICAgYWRkVG9PdmVybGFwTWFwUmVjdXJzaXZlKCpvdmVy
bGFwTWFwLCBsYXllcik7CisgICAgICAgIH0KICAgICAgICAgd2lsbEJlQ29tcG9zaXRlZCA9IHRy
dWU7CiAgICAgfQogCkBAIC03ODQsMTEgKzgzMiwxNyBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9z
aXRvcjo6Y29tcHV0ZUNvbXBvc2l0aW5nUmVxdWlyZW1lbnRzKFJlbmRlckxheWVyKiBsYXllciwg
TwogICAgIC8vIHNldEhhc0NvbXBvc2l0aW5nRGVzY2VuZGFudCgpIG1heSBoYXZlIGNoYW5nZWQg
dGhlIGFuc3dlciB0byBuZWVkc1RvQmVDb21wb3NpdGVkKCkgd2hlbiBjbGlwcGluZywKICAgICAv
LyBzbyB0ZXN0IHRoYXQgYWdhaW4uCiAgICAgaWYgKCF3aWxsQmVDb21wb3NpdGVkICYmIGNhbkJl
Q29tcG9zaXRlZChsYXllcikgJiYgY2xpcHNDb21wb3NpdGluZ0Rlc2NlbmRhbnRzKGxheWVyKSkg
ewotICAgICAgICBpZiAob3ZlcmxhcE1hcCkKKyAgICAgICAgY2hpbGRTdGF0ZS5tX2NvbXBvc2l0
aW5nQW5jZXN0b3IgPSBsYXllcjsKKyAgICAgICAgaWYgKG92ZXJsYXBNYXApIHsKKyAgICAgICAg
ICAgIG92ZXJsYXBNYXAtPnB1c2hDb21wb3NpdGluZ0NvbnRhaW5lcigpOwogICAgICAgICAgICAg
YWRkVG9PdmVybGFwTWFwUmVjdXJzaXZlKCpvdmVybGFwTWFwLCBsYXllcik7CisgICAgICAgIH0K
ICAgICAgICAgd2lsbEJlQ29tcG9zaXRlZCA9IHRydWU7CiAgICAgfQogCisgICAgaWYgKG92ZXJs
YXBNYXAgJiYgY2hpbGRTdGF0ZS5tX2NvbXBvc2l0aW5nQW5jZXN0b3IgPT0gbGF5ZXIgJiYgIWxh
eWVyLT5pc1Jvb3RMYXllcigpKQorICAgICAgICBvdmVybGFwTWFwLT5wb3BDb21wb3NpdGluZ0Nv
bnRhaW5lcigpOworCiAgICAgLy8gSWYgd2UncmUgYmFjayBhdCB0aGUgcm9vdCwgYW5kIG5vIG90
aGVyIGxheWVycyBuZWVkIHRvIGJlIGNvbXBvc2l0ZWQsIGFuZCB0aGUgcm9vdCBsYXllciBpdHNl
bGYgZG9lc24ndCBuZWVkCiAgICAgLy8gdG8gYmUgY29tcG9zaXRlZCwgdGhlbiB3ZSBjYW4gZHJv
cCBvdXQgb2YgY29tcG9zaXRpbmcgbW9kZSBhbHRvZ2V0aGVyLiBIb3dldmVyLCBkb24ndCBkcm9w
IG91dCBvZiBjb21wb3NpdGluZyBtb2RlCiAgICAgLy8gaWYgdGhlcmUgYXJlIGNvbXBvc2l0ZWQg
bGF5ZXJzIHRoYXQgd2UgZGlkbid0IGhpdCBpbiBvdXIgdHJhdmVyc2FsIChlLmcuIGJlY2F1c2Ug
b2YgdmlzaWJpbGl0eTpoaWRkZW4pLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQ29tcG9zaXRvci5oCmluZGV4IDg2YWVhMDdhNjM3MTg1MmEzNjRhYzdjNjQyM2Rl
ZjcxYThlMTg3OWMuLjVjZjYwM2U4YTg4ZTg1OWJlMDZiZDkxNDIxZmFhZTIzMTI5MDM5ODEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3Iu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgK
QEAgLTIxMCw2ICsyMTAsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBkb2N1bWVudEJhY2tncm91bmRD
b2xvckRpZENoYW5nZSgpOwogCiBwcml2YXRlOgorICAgIGNsYXNzIE92ZXJsYXBNYXA7CisKICAg
ICAvLyBHcmFwaGljc0xheWVyQ2xpZW50IEltcGxlbWVudGF0aW9uCiAgICAgdmlydHVhbCB2b2lk
IG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgR3JhcGhpY3NMYXllciosIGRvdWJsZSkgeyB9
CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeVN5bmNSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVy
KikgeyBzY2hlZHVsZUxheWVyRmx1c2goKTsgfQpAQCAtMjMzLDEwICsyMzUsOCBAQCBwcml2YXRl
OgogICAgIC8vIFJlcGFpbnQgdGhlIGdpdmVuIHJlY3QgKHdoaWNoIGlzIGxheWVyJ3MgY29vcmRz
KSwgYW5kIHJlZ2lvbnMgb2YgY2hpbGQgbGF5ZXJzIHRoYXQgaW50ZXJzZWN0IHRoYXQgcmVjdC4K
ICAgICB2b2lkIHJlY3Vyc2l2ZVJlcGFpbnRMYXllclJlY3QoUmVuZGVyTGF5ZXIqLCBjb25zdCBJ
bnRSZWN0Jik7CiAKLSAgICB0eXBlZGVmIEhhc2hNYXA8UmVuZGVyTGF5ZXIqLCBJbnRSZWN0PiBP
dmVybGFwTWFwOwogICAgIHZvaWQgYWRkVG9PdmVybGFwTWFwKE92ZXJsYXBNYXAmLCBSZW5kZXJM
YXllciosIEludFJlY3QmIGxheWVyQm91bmRzLCBib29sJiBib3VuZHNDb21wdXRlZCk7CiAgICAg
dm9pZCBhZGRUb092ZXJsYXBNYXBSZWN1cnNpdmUoT3ZlcmxhcE1hcCYsIFJlbmRlckxheWVyKik7
Ci0gICAgc3RhdGljIGJvb2wgb3ZlcmxhcHNDb21wb3NpdGVkTGF5ZXJzKE92ZXJsYXBNYXAmLCBj
b25zdCBJbnRSZWN0JiBsYXllckJvdW5kcyk7CiAKICAgICB2b2lkIHVwZGF0ZUNvbXBvc2l0aW5n
TGF5ZXJzVGltZXJGaXJlZChUaW1lcjxSZW5kZXJMYXllckNvbXBvc2l0b3I+Kik7CiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCA2ODAxNDNhY2IxYjVkM2Q4NzcwZjEyNjI1NGM0ODg4ZWZmZWEzMTE5Li45N2Q5N2ZkMjliZDVj
YTI4NGYwZWRlZjU5ZmJiMTI2ODdjYWRhOWI0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTIt
MDMtMDUgIEFkcmllbm5lIFdhbGtlciAgPGVubmVAZ29vZ2xlLmNvbT4KKworICAgICAgICBDb21w
b3NpdGluZyBvdmVybGFwIHRlc3RpbmcgY2FuIHRocm93IGxheWVycyBpbnRvIGNvbXBvc2l0aW5n
IHdoZW4gdGhleSBzaG91bGQgbm90IGJlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NTAxOTIKKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFz
ZXIuCisKKyAgICAgICAgKiBjb21wb3NpdGluZy9sYXllci1jcmVhdGlvbi9zdGFja2luZy1jb250
ZXh0LW92ZXJsYXAtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9s
YXllci1jcmVhdGlvbi9zdGFja2luZy1jb250ZXh0LW92ZXJsYXAuaHRtbDogQWRkZWQuCisgICAg
ICAgICogY29tcG9zaXRpbmcvbGF5ZXItY3JlYXRpb24vc3RhY2tpbmctY29udGV4dC1vdmVybGFw
LW5lc3RlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNvbXBvc2l0aW5nL2xheWVy
LWNyZWF0aW9uL3N0YWNraW5nLWNvbnRleHQtb3ZlcmxhcC1uZXN0ZWQuaHRtbDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0OgorCiAyMDEy
LTAzLTA1ICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KIAogICAg
ICAgICBwdXRCeUluZGV4IHNob3VsZCB0aHJvdyBpbiBzdHJpY3QgbW9kZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvbGF5ZXItY3JlYXRpb24vc3RhY2tpbmctY29udGV4dC1v
dmVybGFwLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2xheWVyLWNyZWF0
aW9uL3N0YWNraW5nLWNvbnRleHQtb3ZlcmxhcC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTU1
MTBjYjFiNzYwNzgzOWZiZjI2Nzc4ZmFkMGQ0Yzc3YTg0MjZjYwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2xheWVyLWNyZWF0aW9uL3N0YWNraW5nLWNvbnRleHQt
b3ZlcmxhcC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMSBAQAorKEdyYXBoaWNzTGF5ZXIKKyAg
KGJvdW5kcyA4MDAuMDAgNjAwLjAwKQorICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGljc0xheWVy
CisgICAgICAoYm91bmRzIDgwMC4wMCA2MDAuMDApCisgICAgICAoY2hpbGRyZW4gMgorICAgICAg
ICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiA4LjAwIDguMDApCisgICAgICAg
ICAgKGJvdW5kcyAyMC4wMCAyMC4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAg
ICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gOC4wMCAx
OC4wMCkKKyAgICAgICAgICAoYm91bmRzIDE0Mi4wMCAxNDIuMDApCisgICAgICAgICAgKGRyYXdz
Q29udGVudCAxKQorICAgICAgICApCisgICAgICApCisgICAgKQorICApCispCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2xheWVyLWNyZWF0aW9uL3N0YWNraW5nLWNvbnRl
eHQtb3ZlcmxhcC1uZXN0ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcv
bGF5ZXItY3JlYXRpb24vc3RhY2tpbmctY29udGV4dC1vdmVybGFwLW5lc3RlZC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNWMyYjMwZTQ5OGRkM2ExNWNiNjZlY2NiZGJiMWMxY2FmMzY3MTI4Ygot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2xheWVyLWNyZWF0aW9u
L3N0YWNraW5nLWNvbnRleHQtb3ZlcmxhcC1uZXN0ZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MjggQEAKKyhHcmFwaGljc0xheWVyCisgIChib3VuZHMgODAwLjAwIDYwMC4wMCkKKyAgKGNoaWxk
cmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA4MDAuMDAgNjAwLjAwKQor
ICAgICAgKGNoaWxkcmVuIDIKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9z
aXRpb24gMTAuMDAgMTAuMDApCisgICAgICAgICAgKGJvdW5kcyAxMjAuMDAgMTIwLjAwKQorICAg
ICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAg
ICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKHBvc2l0aW9uIDUwLjAwIDUwLjAwKQor
ICAgICAgICAgICAgICAoYm91bmRzIDIyMC4wMCAxMjAuMDApCisgICAgICAgICAgICAgIChkcmF3
c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAg
ICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gNjUuMDAgNjUuMDApCisgICAg
ICAgICAgKGJvdW5kcyA3Ni4wMCA3Ni4wMCkKKyAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisg
ICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvbGF5ZXItY3JlYXRpb24vc3RhY2tpbmctY29udGV4dC1vdmVybGFwLW5l
c3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvbGF5ZXItY3JlYXRpb24vc3RhY2tp
bmctY29udGV4dC1vdmVybGFwLW5lc3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM3ZDBkMGJhZWUxYjY3
NGU3MTljYmQ1N2QzMTU4NDA0MzQ2Y2Y4OGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9jb21wb3NpdGluZy9sYXllci1jcmVhdGlvbi9zdGFja2luZy1jb250ZXh0LW92ZXJsYXAtbmVz
dGVkLmh0bWwKQEAgLTAsMCArMSw2MyBAQAorPCFET0NUWVBFIGh0bWw+CisKKzxodG1sPgorPGhl
YWQ+CisgIDxzdHlsZT4KKyAgICAuYm94IHsKKyAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAg
ICAgIHRvcDogMjBweDsKKyAgICAgIGxlZnQ6IDIwcHg7CisgICAgICBoZWlnaHQ6IDEwMHB4Owor
ICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOworICAgIH0K
KworICAgIC5jb21wb3NpdGVkIHsKKyAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVa
KDApOworICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47CisgICAgICBvdXRsaW5lOiAxMHB4
IHNvbGlkIHRyYW5zcGFyZW50OyAvKiBpbmZsYXRlIGNvbXBvc2l0aW5nIGxheWVyIGJvdW5kcyAq
LworICAgIH0KKworICAgIC5ib3ggPiAuYm94IHsKKyAgICAgIHRvcDogNTBweDsKKyAgICAgIGxl
ZnQ6IDUwcHg7CisgICAgICB3aWR0aDogMjAwcHg7CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBy
Z2JhKDI1NSwgMCwgMCwgMC42KTsKKyAgICB9CisKKyAgICAjaW5kaWNhdG9yIHsKKyAgICAgIHBv
c2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgIHRvcDogNzVweDsKKyAgICAgIGxlZnQ6IDc1cHg7Cisg
ICAgICBoZWlnaHQ6IDU2cHg7CisgICAgICB3aWR0aDogNTZweDsKKyAgICAgIGJhY2tncm91bmQt
Y29sb3I6IGJsdWU7CisgICAgfQorICA8L3N0eWxlPgorICA8c2NyaXB0PgorICAgICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50
aWxEb25lKCk7CisgICAgICB9CisKKyAgICAgIGZ1bmN0aW9uIGRvVGVzdCgpCisgICAgICB7Cisg
ICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGF5ZXJ0cmVlJykuaW5uZXJUZXh0ID0gbGF5b3V0
VGVzdENvbnRyb2xsZXIubGF5ZXJUcmVlQXNUZXh0KCk7CisgICAgICAgICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICB9CisgICAgICB9CisKKyAgICAg
IHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZG9UZXN0LCBmYWxzZSk7CisgIDwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+CisgIDxkaXYgY2xhc3M9ImNvbXBvc2l0ZWQgYm94Ij4KKyAg
ICA8ZGl2IGNsYXNzPSJjb21wb3NpdGVkIGJveCI+PC9kaXY+CisgIDwvZGl2PgorCisgIDxkaXYg
aWQ9ImluZGljYXRvciI+PC9kaXY+CisKKyAgPHByZSBpZD0ibGF5ZXJ0cmVlIj48L3ByZT4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2xheWVy
LWNyZWF0aW9uL3N0YWNraW5nLWNvbnRleHQtb3ZlcmxhcC5odG1sIGIvTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvbGF5ZXItY3JlYXRpb24vc3RhY2tpbmctY29udGV4dC1vdmVybGFwLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOGRiMTY3NzBlNDRlZTcwNGJmNmI2YzdhYmMzZGQzM2UyOWQ2MDUxNAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2xheWVyLWNyZWF0aW9uL3N0YWNr
aW5nLWNvbnRleHQtb3ZlcmxhcC5odG1sCkBAIC0wLDAgKzEsNTggQEAKKzwhRE9DVFlQRSBodG1s
PgorCis8aHRtbD4KKzxoZWFkPgorICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNj
cmVlbiI+CisgICAgICAgIC50cmlnZ2VyIHsKKyAgICAgICAgICAgIHdpZHRoOiAyMHB4OworICAg
ICAgICAgICAgaGVpZ2h0OiAyMHB4OworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmx1
ZTsKKyAgICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApOworICAgICAg
ICB9CisKKyAgICAgICAgLmNvbnRhaW5lciB7CisgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRp
dmU7CisgICAgICAgICAgICB6LWluZGV4OiAwOworICAgICAgICAgICAgdG9wOiAtMTBweDsKKyAg
ICAgICAgICAgIGhlaWdodDogMTIwcHg7CisgICAgICAgICAgICB3aWR0aDogMTIwcHg7CisgICAg
ICAgICAgICBwYWRkaW5nOiAxMHB4OworICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxh
Y2s7CisgICAgICAgIH0KKworICAgICAgICAuYm94IHsKKyAgICAgICAgICAgIHBvc2l0aW9uOiBy
ZWxhdGl2ZTsKKyAgICAgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgICAgICB3aWR0aDog
MTAwcHg7CisgICAgICAgICAgICBtYXJnaW46IDEwcHg7CisgICAgICAgICAgICBiYWNrZ3JvdW5k
LWNvbG9yOiBzaWx2ZXI7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorPC9oZWFkPgorPHNjcmlw
dD4KKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGRvVGVzdCgpCisgICAg
eworICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGF5ZXJ0cmVlJykuaW5uZXJUZXh0ID0gbGF5b3V0
VGVzdENvbnRyb2xsZXIubGF5ZXJUcmVlQXNUZXh0KCk7CisgICAgICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB3aW5kb3cu
YWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGRvVGVzdCwgZmFsc2UpOworPC9zY3JpcHQ+Cis8Ym9k
eT4KKyAgICA8ZGl2IGNsYXNzPSJ0cmlnZ2VyIj48L2Rpdj4KKworICAgIDxkaXYgY2xhc3M9ImNv
bnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImNoaWxkIGJveCI+CisgICAgICAgICAgPCEt
LSBUaGlzIGJveCBkb2Vzbid0IG5lZWQgaXRzIG93biBsYXllci4gLS0+CisgICAgICAgIDwvZGl2
PgorICAgIDwvZGl2PgorICAgIDxwcmUgaWQ9ImxheWVydHJlZSI+PC9wcmU+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4
cGVjdGF0aW9ucy50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVj
dGF0aW9ucy50eHQKaW5kZXggN2FmMmNhYmQwZGFmNTFhMmU3M2FlY2MxNzUwN2YwOGJhOTM1YjI3
YS4uZGZmMGYzYTUyM2IxYzEyOTg2MTUwMmNmMzllNDdiZTRkOWZmMDU0ZCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dApAQCAt
MzQwOSw4ICszNDA5LDYgQEAgQlVHV0s3NTExMCBXSU4gOiBmYXN0L2ZpbGVzeXN0ZW0vb3AtcmVz
dHJpY3RlZC1jaGFycy5odG1sID0gVEVYVAogQlVHV0s3NTE2MSBHUFUgOiBtZWRpYS92aWRlby1w
b3N0ZXItYmxvY2tlZC1ieS13aWxsc2VuZHJlcXVlc3QuaHRtbCA9IFBBU1MgVEVYVAogQlVHV0s3
NTE2MSBDUFUgOiBtZWRpYS92aWRlby1wb3N0ZXItYmxvY2tlZC1ieS13aWxsc2VuZHJlcXVlc3Qu
aHRtbCA9IFRFWFQKIAotQlVHV0s3NTIzNyBTTk9XTEVPUEFSRCBDUFUgOiBjb21wb3NpdGluZy9y
ZWZsZWN0aW9ucy9yZWZsZWN0aW9uLW9uLWNvbXBvc2l0ZWQuaHRtbCA9IFBBU1MgSU1BR0UKLQog
QlVHV0s3NTM2NyA6IHN2Zy9jc3MvY29tcG9zaXRlLXNoYWRvdy1leGFtcGxlLmh0bWwgPSBQQVNT
IFRFWFQKIEJVR1dLNzUzNjcgOiBzdmcvY3NzL2NvbXBvc2l0ZS1zaGFkb3ctd2l0aC1vcGFjaXR5
Lmh0bWwgPSBQQVNTIFRFWFQKIApAQCAtNDMxMSwzICs0MzA5LDE2IEBAIEJVR1dLNzg2ODQgOiBm
YXN0L2Zvcm1zL2ZpZWxkc2V0LWxlZ2VuZC1wYWRkaW5nLXVuY2xpcHBlZC1maWVsZHNldC1ib3Jk
ZXIuaHRtbCA9CiAKIC8vIE5ldyB0ZXN0OyBsYW5kZWQgYXQgcjEwOTc3OSBidXQgcmVzdWx0cyBs
b29rIHdyb25nIG9uIG1vc3QgQ2hyb21lIHBsYXRmb3Jtcy4KIEJVR1NFTk9SQkxBTkNPIDogaHR0
cC90ZXN0cy9pbmNyZW1lbnRhbC9wYXJ0aWFsLWpwZWcuaHRtbCA9IEZBSUwKKworLy8gTmVlZHMg
cmViYXNlbGluaW5nLiBMYXllcnMgYXJlIG1lcmdlZCwgYW5kIHJvdGF0ZWQgdGV4dCBkcmF3biBi
ZXR0ZXIuCitCVUdXSzUwMTkyIDogY29tcG9zaXRpbmcvZ2VvbWV0cnkvbGltaXQtbGF5ZXItYm91
bmRzLWZpeGVkLXBvc2l0aW9uZWQuaHRtbCA9IFRFWFQKK0JVR1dLNTAxOTIgOiBjb21wb3NpdGlu
Zy9nZW9tZXRyeS9saW1pdC1sYXllci1ib3VuZHMtb3ZlcmZsb3ctcm9vdC5odG1sID0gVEVYVAor
QlVHV0s1MDE5MiA6IGNvbXBvc2l0aW5nL2dlb21ldHJ5L2xpbWl0LWxheWVyLWJvdW5kcy1wb3Np
dGlvbmVkLXRyYW5zaXRpb24uaHRtbCA9IFRFWFQKK0JVR1dLNTAxOTIgOiBjb21wb3NpdGluZy9n
ZW9tZXRyeS9saW1pdC1sYXllci1ib3VuZHMtcG9zaXRpb25lZC5odG1sID0gVEVYVAorQlVHV0s1
MDE5MiBXSU4gTElOVVggOiBjb21wb3NpdGluZy9nZW9tZXRyeS9saW1pdC1sYXllci1ib3VuZHMt
dHJhbnNmb3JtZWQtb3ZlcmZsb3cuaHRtbCA9IFRFWFQKK0JVR1dLNTAxOTIgTUFDIExFT1BBUkQg
OiBjb21wb3NpdGluZy9nZW9tZXRyeS9saW1pdC1sYXllci1ib3VuZHMtdHJhbnNmb3JtZWQtb3Zl
cmZsb3cuaHRtbCA9IFRFWFQKK0JVR1dLNTAxOTIgOiBjb21wb3NpdGluZy9nZW9tZXRyeS9saW1p
dC1sYXllci1ib3VuZHMtdHJhbnNmb3JtZWQuaHRtbCA9IFRFWFQKK0JVR1dLNTAxOTIgOiBjb21w
b3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi10cmFuc2Zvcm0tY29tcG9zaXRlZC1wYWdl
LXNjYWxlLWRvd24uaHRtbCA9IElNQUdFCitCVUdXSzUwMTkyIExJTlVYIE1BQyA6IGNvbXBvc2l0
aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21wb3NpdGVkLXBhZ2Utc2Nh
bGUuaHRtbCA9IElNQUdFCitCVUdXSzUwMTkyIDogY29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvcmVm
bGVjdGlvbi1vbi1jb21wb3NpdGVkLmh0bWwgPSBJTUFHRQorQlVHV0s1MDE5MiA6IGNvbXBvc2l0
aW5nL3NoYWRvd3Mvc2hhZG93LWRyYXdpbmcuaHRtbCA9IElNQUdFCg==
</data>
<flag name="commit-queue"
          id="133228"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>