<?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>76328</bug_id>
          
          <creation_ts>2012-01-13 19:08:06 -0800</creation_ts>
          <short_desc>[chromium] Draw gutter quads outside root content layer</short_desc>
          <delta_ts>2012-01-19 18:21:25 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexandre Elias">aelias</reporter>
          <assigned_to name="Alexandre Elias">aelias</assigned_to>
          <cc>aelias</cc>
    
    <cc>cc-bugs</cc>
    
    <cc>enne</cc>
    
    <cc>jamesr</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>wjmaclean</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>536123</commentid>
    <comment_count>0</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2012-01-13 19:08:06 -0800</bug_when>
    <thetext>[chromium] Draw gutter quads outside root content layer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536126</commentid>
    <comment_count>1</comment_count>
      <attachid>122532</attachid>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2012-01-13 19:13:06 -0800</bug_when>
    <thetext>Created attachment 122532
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537408</commentid>
    <comment_count>2</comment_count>
      <attachid>122831</attachid>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2012-01-17 15:52:35 -0800</bug_when>
    <thetext>Created attachment 122831
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537459</commentid>
    <comment_count>3</comment_count>
      <attachid>122831</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-01-17 17:11:14 -0800</bug_when>
    <thetext>Comment on attachment 122831
Patch

Possibly dumb idea: can we just make the NonCompositedContentHost&apos;s m_graphicsLayer be as big as the viewport always even if the content size is smaller and rely on checkerboarding?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537469</commentid>
    <comment_count>4</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2012-01-17 17:15:23 -0800</bug_when>
    <thetext>I tried that before taking this approach.  The problem was that content size doesn&apos;t necessarily lie on tile boundaries, so there was a stretch of debug color between on the last content tile.  Nor is it desirable to rely on painting background color onto the tiles themselves.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537509</commentid>
    <comment_count>5</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-01-17 17:51:15 -0800</bug_when>
    <thetext>@jamesr: I think painting outside what WebKit thinks is the bounds on an element will just get you &quot;debug red&quot; or nothing at all, so setting the size on just the graphics layer probably won&apos;t do the right thing.  And, I&apos;m not sure this can only be solved on the main thread side; don&apos;t we need to handle this at draw time because of a pinch-zoom on the impl thread?

Although, looking at this patch, I&apos;m kind of sad at code that has to look for a layer with isNonCompositedContent set on it.  I&apos;m really hoping we can get rid of that flag eventually.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537579</commentid>
    <comment_count>6</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2012-01-17 19:40:04 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; Although, looking at this patch, I&apos;m kind of sad at code that has to look for a layer with isNonCompositedContent set on it.  I&apos;m really hoping we can get rid of that flag eventually.

I suppose instead I could add a function to CCLayerImpl that walks the tree and returns the first layer with drawsContent() == true.  Would that be guaranteed to be equivalent?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537582</commentid>
    <comment_count>7</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-01-17 20:03:37 -0800</bug_when>
    <thetext>That doesn&apos;t seem any better.

What about having a layer that draws to infinity regardless of the content size, but doesn&apos;t issue paints outside its contentBounds?  Not sure if that&apos;s a ton better but I&apos;d like to somehow express this within the compositor code in a way that&apos;s not so tightly bound to the details of what we&apos;re doing in the WebKit side.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537631</commentid>
    <comment_count>8</comment_count>
      <attachid>122873</attachid>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2012-01-17 22:31:49 -0800</bug_when>
    <thetext>Created attachment 122873
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537632</commentid>
    <comment_count>9</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2012-01-17 22:35:09 -0800</bug_when>
    <thetext>OK, I moved it to the layer side.  It does seem more natural to put it there.

It&apos;s still using isNonCompositedContent() for now; should I add a new property called like hasInfiniteBackground pushed through the commit process, or is there something else I could piggyback on?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538015</commentid>
    <comment_count>10</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-01-18 11:15:58 -0800</bug_when>
    <thetext>Looks like this should be pretty easily testable, no?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538229</commentid>
    <comment_count>11</comment_count>
      <attachid>123008</attachid>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2012-01-18 15:16:42 -0800</bug_when>
    <thetext>Created attachment 123008
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538248</commentid>
    <comment_count>12</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2012-01-18 15:28:31 -0800</bug_when>
    <thetext>Added a test and a new property called &quot;backgroundCoversViewport&quot; (to avoid using isNonCompositedContent).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538302</commentid>
    <comment_count>13</comment_count>
      <attachid>123008</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-01-18 16:13:32 -0800</bug_when>
    <thetext>Comment on attachment 123008
Patch

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

&gt; Source/WebCore/platform/graphics/chromium/LayerChromium.h:94
&gt; +    void setBackgroundCoversViewport(bool);
&gt; +    bool backgroundCoversViewport() const { return m_backgroundCoversViewport; }

this flag appears to only be supported on tiled layers - can we move the bit down to TiledLayerChromium or have some sort of comment at least indicating that it&apos;s a no-op for other layer types?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538334</commentid>
    <comment_count>14</comment_count>
      <attachid>123039</attachid>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2012-01-18 17:03:28 -0800</bug_when>
    <thetext>Created attachment 123039
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538336</commentid>
    <comment_count>15</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2012-01-18 17:06:59 -0800</bug_when>
    <thetext>OK, I moved up the implementation to CCLayerImpl as there is nothing specific to TiledLayerChromium about it.  The test is still against TiledLayer as that test file has more utilities for rect comparison.

Also, I added support for drawing a fullscreen rect when the visibleLayerRect is empty (which seems like the correct thing to do).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538668</commentid>
    <comment_count>16</comment_count>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2012-01-19 06:32:34 -0800</bug_when>
    <thetext>Perhaps this is not what you are looking for, but the SolidColorLayer bug (https://bugs.webkit.org/show_bug.cgi?id=75732) is designed to help with a similar problem in Aura ... what if one just puts a solid color layer behind everything else?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538962</commentid>
    <comment_count>17</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2012-01-19 13:00:52 -0800</bug_when>
    <thetext>I talked it over a bit with James, and we agreed that we should probably have both this backgroundCoversViewport feature and your layer type.  Although each feature could be shoehorned to also address the other case, the details are different so it would be ugly.  In my case I want the color to always fill the viewport (instead of being fixed in advance), and to be tied to the root content layer&apos;s background color.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538978</commentid>
    <comment_count>18</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-01-19 13:24:29 -0800</bug_when>
    <thetext>You&apos;ve got merge conflicts!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538979</commentid>
    <comment_count>19</comment_count>
      <attachid>123039</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-01-19 13:25:11 -0800</bug_when>
    <thetext>Comment on attachment 123039
Patch

Looks good, R=me.  Will need to fix merge issues before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539004</commentid>
    <comment_count>20</comment_count>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2012-01-19 13:51:27 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; I talked it over a bit with James, and we agreed that we should probably have both this backgroundCoversViewport feature and your layer type.  Although each feature could be shoehorned to also address the other case, the details are different so it would be ugly.  In my case I want the color to always fill the viewport (instead of being fixed in advance), and to be tied to the root content layer&apos;s background color.

Sounds fair!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539057</commentid>
    <comment_count>21</comment_count>
      <attachid>123202</attachid>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2012-01-19 14:52:52 -0800</bug_when>
    <thetext>Created attachment 123202
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539142</commentid>
    <comment_count>22</comment_count>
      <attachid>123202</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-01-19 16:27:43 -0800</bug_when>
    <thetext>Comment on attachment 123202
Patch

R=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539214</commentid>
    <comment_count>23</comment_count>
      <attachid>123202</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-19 18:21:20 -0800</bug_when>
    <thetext>Comment on attachment 123202
Patch

Clearing flags on attachment: 123202

Committed r105470: &lt;http://trac.webkit.org/changeset/105470&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539215</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-19 18:21:25 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122532</attachid>
            <date>2012-01-13 19:13:06 -0800</date>
            <delta_ts>2012-01-17 15:52:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76328-20120113191305.patch</filename>
            <type>text/plain</type>
            <size>6488</size>
            <attacher name="Alexandre Elias">aelias</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA0NTAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODkxNTcyZWZkODMwNTJj
ZDgxYThjNmQyNDg3MmI4YWNiMjQzMTY5My4uZmVjMmVhOGMxZGY4MWNlODc1NDg3MzYxMjg3MmMw
Yjk1ZGIxYTlmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTAxLTEzICBBbGV4
YW5kcmUgRWxpYXMgIDxhZWxpYXNAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIERy
YXcgZ3V0dGVyIHF1YWRzIG91dHNpZGUgcm9vdCBjb250ZW50IGxheWVyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjMyOAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIElmIHRoZSBjb250ZW50IGxheWVycyBk
b24ndCBmdWxseSBjb3ZlciB0aGUgcmVuZGVyIHN1cmZhY2UsCisgICAgICAgIHdlIG1heSBlbmQg
dXAgc2VlaW5nIHVuZHJhd24gb3IgZGVidWctY29sb3IgYXJlYXMgaW4gdGhlIHN1cnJvdW5kaW5n
CisgICAgICAgICJndXR0ZXIiLiAgVGhpcyBjb2RlIGNhbGN1bGF0ZXMgdGhlIGRpZmZlcmVuY2Ug
YmV0d2VlbiB0aGUgcm9vdAorICAgICAgICBjbGlwIHJlY3QgYW5kIHRoZSByb290IGNvbnRlbnQg
bGF5ZXIgYW5kIGRyYXdzIHVwIHRvIGZvdXIKKyAgICAgICAgYmFja2dyb3VuZC1jb2xvciBxdWFk
cyBpbiBleGFjdGx5IHRoZSBhcmVhIHRoYXQgd291bGQgYmUgdW5kcmF3bi4KKyAgICAgICAgVGhl
c2UgaXMgcHJlcGVuZGVkIGFzIHRoZSBmaXJzdCByZW5kZXIgcGFzcyBpbiBvcmRlciB0byBtYWtl
IHN1cmUKKyAgICAgICAgdGhleSBjYW5ub3Qgb2NjbHVkZSBjb250ZW50IGJ5IGFjY2lkZW50Lgor
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0
SW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3RJbXBsOjpjYWxjdWxh
dGVSZW5kZXJQYXNzZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDUmVuZGVyUGFzcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ1JlbmRlclBhc3M6OmFwcGVu
ZEd1dHRlclF1YWRzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q1JlbmRlclBhc3MuaDoKKwogMjAxMi0wMS0wOSAgSnVzdGluIE5vdm9zYWQgIDxqdW5vdkBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtIHdpbl0gQ3JlYXRpbmcgbG90cyBvZiB0ZW1w
b3JhcnkgY2FudmFzIGNvbnRleHRzIHdpbGwgY3Jhc2guCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJU
cmVlSG9zdEltcGwuY3BwCmluZGV4IDAyMTg2Y2FhZjVhODVjYjU2OTNiZGIxMzVlODBjYmJhZGZj
OTkxNmEuLmQzYzdjZGZiOTFiZWY2MjFiNjMzYWQwYWY0MTkyYjBjOTE0YTVjYTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJU
cmVlSG9zdEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuY3BwCkBAIC0yMDksNiArMjA5LDggQEAgdm9p
ZCBDQ0xheWVyVHJlZUhvc3RJbXBsOjpjYWxjdWxhdGVSZW5kZXJQYXNzZXMoQ0NSZW5kZXJQYXNz
TGlzdCYgcGFzc2VzKQogICAgICAgICB0cmFja0RhbWFnZUZvckFsbFN1cmZhY2VzKHJvb3RMYXll
cigpLCByZW5kZXJTdXJmYWNlTGF5ZXJMaXN0KTsKICAgICBtX3Jvb3REYW1hZ2VSZWN0ID0gcm9v
dExheWVyKCktPnJlbmRlclN1cmZhY2UoKS0+ZGFtYWdlVHJhY2tlcigpLT5jdXJyZW50RGFtYWdl
UmVjdCgpOwogCisgICAgSW50UmVjdCBjb250ZW50UmVjdCA9IEludFJlY3QoKTsKKyAgICBDb2xv
ciBiYWNrZ3JvdW5kQ29sb3I7CiAgICAgZm9yIChpbnQgc3VyZmFjZUluZGV4ID0gcmVuZGVyU3Vy
ZmFjZUxheWVyTGlzdC5zaXplKCkgLSAxOyBzdXJmYWNlSW5kZXggPj0gMCA7IC0tc3VyZmFjZUlu
ZGV4KSB7CiAgICAgICAgIENDTGF5ZXJJbXBsKiByZW5kZXJTdXJmYWNlTGF5ZXIgPSByZW5kZXJT
dXJmYWNlTGF5ZXJMaXN0W3N1cmZhY2VJbmRleF0uZ2V0KCk7CiAgICAgICAgIENDUmVuZGVyU3Vy
ZmFjZSogcmVuZGVyU3VyZmFjZSA9IHJlbmRlclN1cmZhY2VMYXllci0+cmVuZGVyU3VyZmFjZSgp
OwpAQCAtMjIzLDYgKzIyNSwxMyBAQCB2b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OmNhbGN1bGF0
ZVJlbmRlclBhc3NlcyhDQ1JlbmRlclBhc3NMaXN0JiBwYXNzZXMpCiAgICAgICAgIGNvbnN0IEND
TGF5ZXJMaXN0JiBsYXllckxpc3QgPSByZW5kZXJTdXJmYWNlLT5sYXllckxpc3QoKTsKICAgICAg
ICAgZm9yICh1bnNpZ25lZCBsYXllckluZGV4ID0gMDsgbGF5ZXJJbmRleCA8IGxheWVyTGlzdC5z
aXplKCk7ICsrbGF5ZXJJbmRleCkgewogICAgICAgICAgICAgQ0NMYXllckltcGwqIGxheWVyID0g
bGF5ZXJMaXN0W2xheWVySW5kZXhdLmdldCgpOworCisgICAgICAgICAgICBpZiAobGF5ZXItPmlz
Tm9uQ29tcG9zaXRlZENvbnRlbnQoKSkgeworICAgICAgICAgICAgICAgY29udGVudFJlY3QgPSBJ
bnRSZWN0KEludFBvaW50KCksIGxheWVyLT5ib3VuZHMoKSk7CisgICAgICAgICAgICAgICBjb250
ZW50UmVjdCA9IGxheWVyLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpLm1hcFJlY3QoY29udGVudFJl
Y3QpOworICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yID0gbGF5ZXItPmJhY2tncm91bmRD
b2xvcigpOworICAgICAgICAgICAgfQorCiAgICAgICAgICAgICBpZiAobGF5ZXItPnZpc2libGVM
YXllclJlY3QoKS5pc0VtcHR5KCkpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKQEAgLTIz
Niw2ICsyNDUsMTMgQEAgdm9pZCBDQ0xheWVyVHJlZUhvc3RJbXBsOjpjYWxjdWxhdGVSZW5kZXJQ
YXNzZXMoQ0NSZW5kZXJQYXNzTGlzdCYgcGFzc2VzKQogCiAgICAgICAgIHBhc3Nlcy5hcHBlbmQo
cGFzcy5yZWxlYXNlKCkpOwogICAgIH0KKworICAgIC8vIEd1dHRlciBxdWFkcyBjb3ZlciBhbnkg
cmVtYWluaW5nIHVuZHJhd24gYXJlYXMuCisgICAgaWYgKCFjb250ZW50UmVjdC5pc0VtcHR5KCkp
IHsKKyAgICAgICAgT3duUHRyPENDUmVuZGVyUGFzcz4gZ3V0dGVyUGFzcyA9IENDUmVuZGVyUGFz
czo6Y3JlYXRlKHJvb3RMYXllcigpLT5yZW5kZXJTdXJmYWNlKCkpOworICAgICAgICBndXR0ZXJQ
YXNzLT5hcHBlbmRHdXR0ZXJRdWFkcyhyb290TGF5ZXIoKSwgY29udGVudFJlY3QsIGJhY2tncm91
bmRDb2xvcik7CisgICAgICAgIHBhc3Nlcy5wcmVwZW5kKGd1dHRlclBhc3MucmVsZWFzZSgpKTsK
KyAgICB9CiB9CiAKIHZvaWQgQ0NMYXllclRyZWVIb3N0SW1wbDo6b3B0aW1pemVSZW5kZXJQYXNz
ZXMoQ0NSZW5kZXJQYXNzTGlzdCYgcGFzc2VzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NSZW5kZXJQYXNzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUmVuZGVyUGFzcy5jcHAKaW5k
ZXggNmY1MWZiY2RlMDVhYzk2MTI4NzQ0MDQ1MTA1NGY0ZWMzZjUxMjhkZi4uMjNjZGYxOWM4NDE2
NThlMWI3ZTNkMTljNGE1MmY3M2Q3NGViZTM1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NSZW5kZXJQYXNzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1JlbmRlclBhc3MuY3Bw
CkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiY2MvQ0NRdWFkQ3VsbGVyLmgiCiAjaW5jbHVk
ZSAiY2MvQ0NSZW5kZXJTdXJmYWNlRHJhd1F1YWQuaCIKICNpbmNsdWRlICJjYy9DQ1NoYXJlZFF1
YWRTdGF0ZS5oIgorI2luY2x1ZGUgImNjL0NDU29saWRDb2xvckRyYXdRdWFkLmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIApAQCAtNjQsNiArNjUsMjggQEAgdm9pZCBDQ1JlbmRlclBhc3M6OmFw
cGVuZFF1YWRzRm9yUmVuZGVyU3VyZmFjZUxheWVyKENDTGF5ZXJJbXBsKiBsYXllcikKICAgICBt
X3NoYXJlZFF1YWRTdGF0ZUxpc3QuYXBwZW5kKHNoYXJlZFF1YWRTdGF0ZS5yZWxlYXNlKCkpOwog
fQogCit2b2lkIENDUmVuZGVyUGFzczo6YXBwZW5kR3V0dGVyUXVhZHMoQ0NMYXllckltcGwqIHJv
b3RMYXllciwgY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QsIGNvbnN0IENvbG9yJiBiYWNrZ3Jv
dW5kQ29sb3IpCit7CisgICAgT3duUHRyPENDU2hhcmVkUXVhZFN0YXRlPiBzaGFyZWRRdWFkU3Rh
dGUgPSByb290TGF5ZXItPmNyZWF0ZVNoYXJlZFF1YWRTdGF0ZSgpOworICAgIEludFJlY3QgY2xp
cFJlY3QgPSByb290TGF5ZXItPmNsaXBSZWN0KCk7CisKKyAgICBJbnRSZWN0IHRvcFJlY3QoMCwg
MCwgY2xpcFJlY3Qud2lkdGgoKSwgY29udGVudFJlY3QueSgpKTsKKyAgICBJbnRSZWN0IGxlZnRS
ZWN0KDAsIGNvbnRlbnRSZWN0LnkoKSwgY29udGVudFJlY3QueCgpLCBjb250ZW50UmVjdC5oZWln
aHQoKSk7CisgICAgSW50UmVjdCByaWdodFJlY3QoY29udGVudFJlY3QubWF4WCgpLCBjb250ZW50
UmVjdC55KCksIGNsaXBSZWN0LndpZHRoKCkgLSBjb250ZW50UmVjdC5tYXhYKCksIGNvbnRlbnRS
ZWN0LmhlaWdodCgpKTsKKyAgICBJbnRSZWN0IGJvdHRvbVJlY3QoMCwgY29udGVudFJlY3QubWF4
WSgpLCBjbGlwUmVjdC53aWR0aCgpLCBjbGlwUmVjdC5oZWlnaHQoKSAtIGNvbnRlbnRSZWN0Lm1h
eFkoKSk7CisKKyAgICBpZiAoIXRvcFJlY3QuaXNFbXB0eSgpKQorICAgICAgICBtX3F1YWRMaXN0
LmFwcGVuZChDQ1NvbGlkQ29sb3JEcmF3UXVhZDo6Y3JlYXRlKHNoYXJlZFF1YWRTdGF0ZS5nZXQo
KSwgdG9wUmVjdCwgYmFja2dyb3VuZENvbG9yKSk7CisgICAgaWYgKCFsZWZ0UmVjdC5pc0VtcHR5
KCkpCisgICAgICAgIG1fcXVhZExpc3QuYXBwZW5kKENDU29saWRDb2xvckRyYXdRdWFkOjpjcmVh
dGUoc2hhcmVkUXVhZFN0YXRlLmdldCgpLCBsZWZ0UmVjdCwgYmFja2dyb3VuZENvbG9yKSk7Cisg
ICAgaWYgKCFyaWdodFJlY3QuaXNFbXB0eSgpKQorICAgICAgICBtX3F1YWRMaXN0LmFwcGVuZChD
Q1NvbGlkQ29sb3JEcmF3UXVhZDo6Y3JlYXRlKHNoYXJlZFF1YWRTdGF0ZS5nZXQoKSwgcmlnaHRS
ZWN0LCBiYWNrZ3JvdW5kQ29sb3IpKTsKKyAgICBpZiAoIWJvdHRvbVJlY3QuaXNFbXB0eSgpKQor
ICAgICAgICBtX3F1YWRMaXN0LmFwcGVuZChDQ1NvbGlkQ29sb3JEcmF3UXVhZDo6Y3JlYXRlKHNo
YXJlZFF1YWRTdGF0ZS5nZXQoKSwgYm90dG9tUmVjdCwgYmFja2dyb3VuZENvbG9yKSk7CisKKyAg
ICBtX3NoYXJlZFF1YWRTdGF0ZUxpc3QuYXBwZW5kKHNoYXJlZFF1YWRTdGF0ZS5yZWxlYXNlKCkp
OworfQorCiB2b2lkIENDUmVuZGVyUGFzczo6b3B0aW1pemVRdWFkcygpCiB7CiAgICAgQ0NRdWFk
Q3VsbGVyOjpjdWxsT2NjbHVkZWRRdWFkcyhtX3F1YWRMaXN0KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUmVuZGVyUGFzcy5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NSZW5kZXJQYXNz
LmgKaW5kZXggOWZiNzcxNjZjNGNkMDQ3NjQ3ZThkMWFlMDMyZmU0NmJkOWE4NjFiZi4uZjQ5OWQ5
YzFjNWY2MDBmYWVhMTkwYWEyODlkOGI2YmIwMjU1YmI4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NSZW5kZXJQYXNzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NSZW5kZXJQYXNz
LmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgQ0NSZW5kZXJQYXNzX2gKICNkZWZpbmUgQ0NS
ZW5kZXJQYXNzX2gKIAorI2luY2x1ZGUgIkNvbG9yLmgiCiAjaW5jbHVkZSAiY2MvQ0NEcmF3UXVh
ZC5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgpAQCAtNDUsNiArNDYsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGFwcGVuZFF1YWRzRm9yTGF5
ZXIoQ0NMYXllckltcGwqKTsKICAgICB2b2lkIGFwcGVuZFF1YWRzRm9yUmVuZGVyU3VyZmFjZUxh
eWVyKENDTGF5ZXJJbXBsKik7CisgICAgdm9pZCBhcHBlbmRHdXR0ZXJRdWFkcyhDQ0xheWVySW1w
bCogcm9vdExheWVyLCBjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCwgY29uc3QgQ29sb3ImIGJh
Y2tncm91bmRDb2xvcik7CiAKICAgICB2b2lkIG9wdGltaXplUXVhZHMoKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122831</attachid>
            <date>2012-01-17 15:52:35 -0800</date>
            <delta_ts>2012-01-17 22:31:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76328-20120117155233.patch</filename>
            <type>text/plain</type>
            <size>6289</size>
            <attacher name="Alexandre Elias">aelias</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA0NTAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODkxNTcyZWZkODMwNTJj
ZDgxYThjNmQyNDg3MmI4YWNiMjQzMTY5My4uZmVjMmVhOGMxZGY4MWNlODc1NDg3MzYxMjg3MmMw
Yjk1ZGIxYTlmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTAxLTEzICBBbGV4
YW5kcmUgRWxpYXMgIDxhZWxpYXNAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIERy
YXcgZ3V0dGVyIHF1YWRzIG91dHNpZGUgcm9vdCBjb250ZW50IGxheWVyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjMyOAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIElmIHRoZSBjb250ZW50IGxheWVycyBk
b24ndCBmdWxseSBjb3ZlciB0aGUgcmVuZGVyIHN1cmZhY2UsCisgICAgICAgIHdlIG1heSBlbmQg
dXAgc2VlaW5nIHVuZHJhd24gb3IgZGVidWctY29sb3IgYXJlYXMgaW4gdGhlIHN1cnJvdW5kaW5n
CisgICAgICAgICJndXR0ZXIiLiAgVGhpcyBjb2RlIGNhbGN1bGF0ZXMgdGhlIGRpZmZlcmVuY2Ug
YmV0d2VlbiB0aGUgcm9vdAorICAgICAgICBjbGlwIHJlY3QgYW5kIHRoZSByb290IGNvbnRlbnQg
bGF5ZXIgYW5kIGRyYXdzIHVwIHRvIGZvdXIKKyAgICAgICAgYmFja2dyb3VuZC1jb2xvciBxdWFk
cyBpbiBleGFjdGx5IHRoZSBhcmVhIHRoYXQgd291bGQgYmUgdW5kcmF3bi4KKyAgICAgICAgVGhl
c2UgaXMgcHJlcGVuZGVkIGFzIHRoZSBmaXJzdCByZW5kZXIgcGFzcyBpbiBvcmRlciB0byBtYWtl
IHN1cmUKKyAgICAgICAgdGhleSBjYW5ub3Qgb2NjbHVkZSBjb250ZW50IGJ5IGFjY2lkZW50Lgor
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0
SW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3RJbXBsOjpjYWxjdWxh
dGVSZW5kZXJQYXNzZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDUmVuZGVyUGFzcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ1JlbmRlclBhc3M6OmFwcGVu
ZEd1dHRlclF1YWRzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q1JlbmRlclBhc3MuaDoKKwogMjAxMi0wMS0wOSAgSnVzdGluIE5vdm9zYWQgIDxqdW5vdkBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtIHdpbl0gQ3JlYXRpbmcgbG90cyBvZiB0ZW1w
b3JhcnkgY2FudmFzIGNvbnRleHRzIHdpbGwgY3Jhc2guCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJU
cmVlSG9zdEltcGwuY3BwCmluZGV4IDAyMTg2Y2FhZjVhODVjYjU2OTNiZGIxMzVlODBjYmJhZGZj
OTkxNmEuLmQzYzdjZGZiOTFiZWY2MjFiNjMzYWQwYWY0MTkyYjBjOTE0YTVjYTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJU
cmVlSG9zdEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuY3BwCkBAIC0yMDksNiArMjA5LDggQEAgdm9p
ZCBDQ0xheWVyVHJlZUhvc3RJbXBsOjpjYWxjdWxhdGVSZW5kZXJQYXNzZXMoQ0NSZW5kZXJQYXNz
TGlzdCYgcGFzc2VzKQogICAgICAgICB0cmFja0RhbWFnZUZvckFsbFN1cmZhY2VzKHJvb3RMYXll
cigpLCByZW5kZXJTdXJmYWNlTGF5ZXJMaXN0KTsKICAgICBtX3Jvb3REYW1hZ2VSZWN0ID0gcm9v
dExheWVyKCktPnJlbmRlclN1cmZhY2UoKS0+ZGFtYWdlVHJhY2tlcigpLT5jdXJyZW50RGFtYWdl
UmVjdCgpOwogCisgICAgSW50UmVjdCBjb250ZW50UmVjdCA9IEludFJlY3QoKTsKKyAgICBDb2xv
ciBiYWNrZ3JvdW5kQ29sb3I7CiAgICAgZm9yIChpbnQgc3VyZmFjZUluZGV4ID0gcmVuZGVyU3Vy
ZmFjZUxheWVyTGlzdC5zaXplKCkgLSAxOyBzdXJmYWNlSW5kZXggPj0gMCA7IC0tc3VyZmFjZUlu
ZGV4KSB7CiAgICAgICAgIENDTGF5ZXJJbXBsKiByZW5kZXJTdXJmYWNlTGF5ZXIgPSByZW5kZXJT
dXJmYWNlTGF5ZXJMaXN0W3N1cmZhY2VJbmRleF0uZ2V0KCk7CiAgICAgICAgIENDUmVuZGVyU3Vy
ZmFjZSogcmVuZGVyU3VyZmFjZSA9IHJlbmRlclN1cmZhY2VMYXllci0+cmVuZGVyU3VyZmFjZSgp
OwpAQCAtMjIzLDYgKzIyNSwxMyBAQCB2b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OmNhbGN1bGF0
ZVJlbmRlclBhc3NlcyhDQ1JlbmRlclBhc3NMaXN0JiBwYXNzZXMpCiAgICAgICAgIGNvbnN0IEND
TGF5ZXJMaXN0JiBsYXllckxpc3QgPSByZW5kZXJTdXJmYWNlLT5sYXllckxpc3QoKTsKICAgICAg
ICAgZm9yICh1bnNpZ25lZCBsYXllckluZGV4ID0gMDsgbGF5ZXJJbmRleCA8IGxheWVyTGlzdC5z
aXplKCk7ICsrbGF5ZXJJbmRleCkgewogICAgICAgICAgICAgQ0NMYXllckltcGwqIGxheWVyID0g
bGF5ZXJMaXN0W2xheWVySW5kZXhdLmdldCgpOworCisgICAgICAgICAgICBpZiAobGF5ZXItPmlz
Tm9uQ29tcG9zaXRlZENvbnRlbnQoKSkgeworICAgICAgICAgICAgICAgY29udGVudFJlY3QgPSBJ
bnRSZWN0KEludFBvaW50KCksIGxheWVyLT5ib3VuZHMoKSk7CisgICAgICAgICAgICAgICBjb250
ZW50UmVjdCA9IGxheWVyLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpLm1hcFJlY3QoY29udGVudFJl
Y3QpOworICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yID0gbGF5ZXItPmJhY2tncm91bmRD
b2xvcigpOworICAgICAgICAgICAgfQorCiAgICAgICAgICAgICBpZiAobGF5ZXItPnZpc2libGVM
YXllclJlY3QoKS5pc0VtcHR5KCkpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKQEAgLTIz
Niw2ICsyNDUsMTMgQEAgdm9pZCBDQ0xheWVyVHJlZUhvc3RJbXBsOjpjYWxjdWxhdGVSZW5kZXJQ
YXNzZXMoQ0NSZW5kZXJQYXNzTGlzdCYgcGFzc2VzKQogCiAgICAgICAgIHBhc3Nlcy5hcHBlbmQo
cGFzcy5yZWxlYXNlKCkpOwogICAgIH0KKworICAgIC8vIEd1dHRlciBxdWFkcyBjb3ZlciBhbnkg
cmVtYWluaW5nIHVuZHJhd24gYXJlYXMuCisgICAgaWYgKCFjb250ZW50UmVjdC5pc0VtcHR5KCkp
IHsKKyAgICAgICAgT3duUHRyPENDUmVuZGVyUGFzcz4gZ3V0dGVyUGFzcyA9IENDUmVuZGVyUGFz
czo6Y3JlYXRlKHJvb3RMYXllcigpLT5yZW5kZXJTdXJmYWNlKCkpOworICAgICAgICBndXR0ZXJQ
YXNzLT5hcHBlbmRHdXR0ZXJRdWFkcyhyb290TGF5ZXIoKSwgY29udGVudFJlY3QsIGJhY2tncm91
bmRDb2xvcik7CisgICAgICAgIHBhc3Nlcy5wcmVwZW5kKGd1dHRlclBhc3MucmVsZWFzZSgpKTsK
KyAgICB9CiB9CiAKIHZvaWQgQ0NMYXllclRyZWVIb3N0SW1wbDo6b3B0aW1pemVSZW5kZXJQYXNz
ZXMoQ0NSZW5kZXJQYXNzTGlzdCYgcGFzc2VzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NSZW5kZXJQYXNzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUmVuZGVyUGFzcy5jcHAKaW5k
ZXggNmY1MWZiY2RlMDVhYzk2MTI4NzQ0MDQ1MTA1NGY0ZWMzZjUxMjhkZi4uNzA2MjNlZWRmODA1
YTIzYzU0ZTY5YzRiMmEwYzA1YzFhMTNhYWNjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NSZW5kZXJQYXNzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1JlbmRlclBhc3MuY3Bw
CkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiY2MvQ0NRdWFkQ3VsbGVyLmgiCiAjaW5jbHVk
ZSAiY2MvQ0NSZW5kZXJTdXJmYWNlRHJhd1F1YWQuaCIKICNpbmNsdWRlICJjYy9DQ1NoYXJlZFF1
YWRTdGF0ZS5oIgorI2luY2x1ZGUgImNjL0NDU29saWRDb2xvckRyYXdRdWFkLmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIApAQCAtNjQsNiArNjUsMzEgQEAgdm9pZCBDQ1JlbmRlclBhc3M6OmFw
cGVuZFF1YWRzRm9yUmVuZGVyU3VyZmFjZUxheWVyKENDTGF5ZXJJbXBsKiBsYXllcikKICAgICBt
X3NoYXJlZFF1YWRTdGF0ZUxpc3QuYXBwZW5kKHNoYXJlZFF1YWRTdGF0ZS5yZWxlYXNlKCkpOwog
fQogCit2b2lkIENDUmVuZGVyUGFzczo6YXBwZW5kR3V0dGVyUXVhZHMoQ0NMYXllckltcGwqIHJv
b3RMYXllciwgY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QsIGNvbnN0IENvbG9yJiBiYWNrZ3Jv
dW5kQ29sb3IpCit7CisgICAgT3duUHRyPENDU2hhcmVkUXVhZFN0YXRlPiBzaGFyZWRRdWFkU3Rh
dGUgPSByb290TGF5ZXItPmNyZWF0ZVNoYXJlZFF1YWRTdGF0ZSgpOworICAgIEludFJlY3QgY2xp
cFJlY3QgPSByb290TGF5ZXItPmNsaXBSZWN0KCk7CisgICAgSW50UmVjdCBndXR0ZXJSZWN0c1s0
XTsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IDQ7IGkrKykKKyAgICAgICAgZ3V0dGVyUmVjdHNb
aV0gPSBjbGlwUmVjdDsKKyAgICBndXR0ZXJSZWN0c1swXS5zaGlmdE1heFlFZGdlVG8oY29udGVu
dFJlY3QueSgpKTsKKyAgICBndXR0ZXJSZWN0c1sxXS5zaGlmdFlFZGdlVG8oY29udGVudFJlY3Qu
bWF4WSgpKTsKKyAgICBndXR0ZXJSZWN0c1syXS5zaGlmdE1heFhFZGdlVG8oY29udGVudFJlY3Qu
eCgpKTsKKyAgICBndXR0ZXJSZWN0c1szXS5zaGlmdFhFZGdlVG8oY29udGVudFJlY3QubWF4WCgp
KTsKKworICAgIGd1dHRlclJlY3RzWzJdLnNoaWZ0WUVkZ2VUbyhjb250ZW50UmVjdC55KCkpOwor
ICAgIGd1dHRlclJlY3RzWzNdLnNoaWZ0WUVkZ2VUbyhjb250ZW50UmVjdC55KCkpOworICAgIGd1
dHRlclJlY3RzWzJdLnNoaWZ0TWF4WUVkZ2VUbyhjb250ZW50UmVjdC5tYXhZKCkpOworICAgIGd1
dHRlclJlY3RzWzNdLnNoaWZ0TWF4WUVkZ2VUbyhjb250ZW50UmVjdC5tYXhZKCkpOworCisgICAg
Zm9yIChpbnQgaSA9IDA7IGkgPCA0OyBpKyspIHsKKyAgICAgICAgaWYgKCFndXR0ZXJSZWN0c1tp
XS5pc0VtcHR5KCkpCisgICAgICAgICAgICBtX3F1YWRMaXN0LmFwcGVuZChDQ1NvbGlkQ29sb3JE
cmF3UXVhZDo6Y3JlYXRlKHNoYXJlZFF1YWRTdGF0ZS5nZXQoKSwgZ3V0dGVyUmVjdHNbaV0sIGJh
Y2tncm91bmRDb2xvcikpOworICAgIH0KKworICAgIG1fc2hhcmVkUXVhZFN0YXRlTGlzdC5hcHBl
bmQoc2hhcmVkUXVhZFN0YXRlLnJlbGVhc2UoKSk7Cit9CisKIHZvaWQgQ0NSZW5kZXJQYXNzOjpv
cHRpbWl6ZVF1YWRzKCkKIHsKICAgICBDQ1F1YWRDdWxsZXI6OmN1bGxPY2NsdWRlZFF1YWRzKG1f
cXVhZExpc3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NSZW5kZXJQYXNzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ1JlbmRlclBhc3MuaAppbmRleCA5ZmI3NzE2NmM0Y2QwNDc2NDdl
OGQxYWUwMzJmZTQ2YmQ5YTg2MWJmLi5mNDk5ZDljMWM1ZjYwMGZhZWExOTBhYTI4OWQ4YjZiYjAy
NTViYjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ1JlbmRlclBhc3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ1JlbmRlclBhc3MuaApAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRl
ZiBDQ1JlbmRlclBhc3NfaAogI2RlZmluZSBDQ1JlbmRlclBhc3NfaAogCisjaW5jbHVkZSAiQ29s
b3IuaCIKICNpbmNsdWRlICJjYy9DQ0RyYXdRdWFkLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25Q
dHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC00NSw2ICs0Niw3IEBAIHB1YmxpYzoK
IAogICAgIHZvaWQgYXBwZW5kUXVhZHNGb3JMYXllcihDQ0xheWVySW1wbCopOwogICAgIHZvaWQg
YXBwZW5kUXVhZHNGb3JSZW5kZXJTdXJmYWNlTGF5ZXIoQ0NMYXllckltcGwqKTsKKyAgICB2b2lk
IGFwcGVuZEd1dHRlclF1YWRzKENDTGF5ZXJJbXBsKiByb290TGF5ZXIsIGNvbnN0IEludFJlY3Qm
IGNvbnRlbnRSZWN0LCBjb25zdCBDb2xvciYgYmFja2dyb3VuZENvbG9yKTsKIAogICAgIHZvaWQg
b3B0aW1pemVRdWFkcygpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122873</attachid>
            <date>2012-01-17 22:31:49 -0800</date>
            <delta_ts>2012-01-18 15:16:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76328-20120117223148.patch</filename>
            <type>text/plain</type>
            <size>2724</size>
            <attacher name="Alexandre Elias">aelias</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA0NTAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODkxNTcyZWZkODMwNTJj
ZDgxYThjNmQyNDg3MmI4YWNiMjQzMTY5My4uZmYzZWNjOGVjM2Q0ZDAzNzBhZTBhYTRiZjdhNGVj
ZGU5NmI1MmJhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTAxLTEzICBBbGV4
YW5kcmUgRWxpYXMgIDxhZWxpYXNAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIERy
YXcgZ3V0dGVyIHF1YWRzIG91dHNpZGUgcm9vdCBjb250ZW50IGxheWVyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjMyOAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIElmIHRoZSBjb250ZW50IGxheWVycyBk
b24ndCBmdWxseSBjb3ZlciB0aGUgcmVuZGVyIHN1cmZhY2UsCisgICAgICAgIHdlIG1heSBlbmQg
dXAgc2VlaW5nIHVuZHJhd24gb3IgZGVidWctY29sb3IgYXJlYXMgaW4gdGhlIHN1cnJvdW5kaW5n
CisgICAgICAgICJndXR0ZXIiLiAgVGhpcyBjb2RlIGNhbGN1bGF0ZXMgdGhlIGRpZmZlcmVuY2Ug
YmV0d2VlbiB0aGUgcm9vdAorICAgICAgICBjbGlwIHJlY3QgYW5kIHRoZSByb290IGNvbnRlbnQg
bGF5ZXIgYW5kIGRyYXdzIHVwIHRvIGZvdXIKKyAgICAgICAgYmFja2dyb3VuZC1jb2xvciBxdWFk
cyBpbiBleGFjdGx5IHRoZSBhcmVhIHRoYXQgd291bGQgYmUgdW5kcmF3bi4KKworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGlsZWRMYXllckltcGwuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q0NUaWxlZExheWVySW1wbDo6YXBwZW5kUXVhZHMpOgorCiAyMDEyLTAx
LTA5ICBKdXN0aW4gTm92b3NhZCAgPGp1bm92QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hy
b21pdW0gd2luXSBDcmVhdGluZyBsb3RzIG9mIHRlbXBvcmFyeSBjYW52YXMgY29udGV4dHMgd2ls
bCBjcmFzaC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDVGlsZWRMYXllckltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaWxlZExheWVySW1wbC5jcHAKaW5kZXggNmNjYjQwNzA0
NTEzYmQwYWMyM2E0YzRiYTc3ZmQwMGQ2NjE5MDY4Ni4uZjkzZDIyMjU1ZWYxOGIzOWZmMzk2Yjcz
YjI5MDY2MDhlZDQzMDIwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NUaWxlZExheWVySW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaWxlZExheWVySW1wbC5jcHAKQEAg
LTEyMSw2ICsxMjEsMjcgQEAgdm9pZCBDQ1RpbGVkTGF5ZXJJbXBsOjphcHBlbmRRdWFkcyhDQ1F1
YWRMaXN0JiBxdWFkTGlzdCwgY29uc3QgQ0NTaGFyZWRRdWFkU3RhdGUKICAgICBpZiAobV9za2lw
c0RyYXcgfHwgIW1fdGlsZXIgfHwgbV90aWxlci0+aXNFbXB0eSgpIHx8IGxheWVyUmVjdC5pc0Vt
cHR5KCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIGlmIChpc05vbkNvbXBvc2l0ZWRDb250ZW50
KCkpIHsKKyAgICAgICAgSW50UmVjdCBndXR0ZXJSZWN0c1s0XTsKKyAgICAgICAgSW50UmVjdCBj
bGlwID0gc2NyZWVuU3BhY2VUcmFuc2Zvcm0oKS5pbnZlcnNlKCkubWFwUmVjdChjbGlwUmVjdCgp
KTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCA0OyBpKyspCisgICAgICAgICAgICBndXR0
ZXJSZWN0c1tpXSA9IGNsaXA7CisgICAgICAgIGd1dHRlclJlY3RzWzBdLnNoaWZ0TWF4WUVkZ2VU
byhsYXllclJlY3QueSgpKTsKKyAgICAgICAgZ3V0dGVyUmVjdHNbMV0uc2hpZnRZRWRnZVRvKGxh
eWVyUmVjdC5tYXhZKCkpOworICAgICAgICBndXR0ZXJSZWN0c1syXS5zaGlmdE1heFhFZGdlVG8o
bGF5ZXJSZWN0LngoKSk7CisgICAgICAgIGd1dHRlclJlY3RzWzNdLnNoaWZ0WEVkZ2VUbyhsYXll
clJlY3QubWF4WCgpKTsKKworICAgICAgICBndXR0ZXJSZWN0c1syXS5zaGlmdFlFZGdlVG8obGF5
ZXJSZWN0LnkoKSk7CisgICAgICAgIGd1dHRlclJlY3RzWzNdLnNoaWZ0WUVkZ2VUbyhsYXllclJl
Y3QueSgpKTsKKyAgICAgICAgZ3V0dGVyUmVjdHNbMl0uc2hpZnRNYXhZRWRnZVRvKGxheWVyUmVj
dC5tYXhZKCkpOworICAgICAgICBndXR0ZXJSZWN0c1szXS5zaGlmdE1heFlFZGdlVG8obGF5ZXJS
ZWN0Lm1heFkoKSk7CisKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCA0OyBpKyspIHsKKyAg
ICAgICAgICAgIGlmICghZ3V0dGVyUmVjdHNbaV0uaXNFbXB0eSgpKQorICAgICAgICAgICAgICAg
IHF1YWRMaXN0LmFwcGVuZChDQ1NvbGlkQ29sb3JEcmF3UXVhZDo6Y3JlYXRlKHNoYXJlZFF1YWRT
dGF0ZSwgZ3V0dGVyUmVjdHNbaV0sIGJhY2tncm91bmRDb2xvcigpKSk7CisgICAgICAgIH0KKyAg
ICB9CisKICAgICBpbnQgbGVmdCwgdG9wLCByaWdodCwgYm90dG9tOwogICAgIG1fdGlsZXItPmxh
eWVyUmVjdFRvVGlsZUluZGljZXMobGF5ZXJSZWN0LCBsZWZ0LCB0b3AsIHJpZ2h0LCBib3R0b20p
OwogICAgIGZvciAoaW50IGogPSB0b3A7IGogPD0gYm90dG9tOyArK2opIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123008</attachid>
            <date>2012-01-18 15:16:42 -0800</date>
            <delta_ts>2012-01-18 17:03:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76328-20120118151641.patch</filename>
            <type>text/plain</type>
            <size>14247</size>
            <attacher name="Alexandre Elias">aelias</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA0NTAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODkxNTcyZWZkODMwNTJj
ZDgxYThjNmQyNDg3MmI4YWNiMjQzMTY5My4uZDMyYzkzMjNhYWY5YzRkMWZkYTE3MGMzNWVjNzRl
NDdhOGU2MjYwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTAxLTE4ICBBbGV4
YW5kcmUgRWxpYXMgIDxhZWxpYXNAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIERy
YXcgZ3V0dGVyIHF1YWRzIG91dHNpZGUgcm9vdCBjb250ZW50IGxheWVyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjMyOAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBuZXcgbGF5ZXIgcHJvcGVydHkg
ImJhY2tncm91bmRDb3ZlcnNWaWV3cG9ydCIuICBJZiB0aGUgY29udGVudAorICAgICAgICBsYXll
cnMgZG9uJ3QgZnVsbHkgY292ZXIgdGhlIHJlbmRlciBzdXJmYWNlLCB0aGlzIGNvZGUgY2FsY3Vs
YXRlcyB0aGUKKyAgICAgICAgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSByb290IGNsaXAgcmVjdCBh
bmQgdGhlIHJvb3QgY29udGVudCBsYXllciBhbmQKKyAgICAgICAgZHJhd3MgdXAgdG8gZm91ciBi
YWNrZ3JvdW5kLWNvbG9yIHF1YWRzIGluIGV4YWN0bHkgdGhlIGFyZWEgdGhhdCB3b3VsZAorICAg
ICAgICBiZSB1bmRyYXduLgorCisgICAgICAgIFRlc3Q6IENDVGlsZWRMYXllckltcGxUZXN0Ojpi
YWNrZ3JvdW5kQ292ZXJzVmlld3BvcnQKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0xheWVyQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDaHJvbWl1
bTo6TGF5ZXJDaHJvbWl1bSk6CisgICAgICAgIChXZWJDb3JlOjpMYXllckNocm9taXVtOjpzZXRC
YWNrZ3JvdW5kQ292ZXJzVmlld3BvcnQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDaHJvbWl1
bTo6cHVzaFByb3BlcnRpZXNUbyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vTGF5ZXJDaHJvbWl1bS5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDaHJvbWl1bTo6YmFj
a2dyb3VuZENvdmVyc1ZpZXdwb3J0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ0xheWVySW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVySW1wbDo6
Q0NMYXllckltcGwpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllckltcGw6OnNldEJhY2tncm91
bmRDb3ZlcnNWaWV3cG9ydCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NMYXllckltcGwuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJJbXBsOjpiYWNrZ3Jv
dW5kQ292ZXJzVmlld3BvcnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDVGlsZWRMYXllckltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NUaWxlZExheWVy
SW1wbDo6YXBwZW5kUXVhZHMpOgorCiAyMDEyLTAxLTA5ICBKdXN0aW4gTm92b3NhZCAgPGp1bm92
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW0gd2luXSBDcmVhdGluZyBsb3RzIG9m
IHRlbXBvcmFyeSBjYW52YXMgY29udGV4dHMgd2lsbCBjcmFzaC4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKaW5kZXggYzhlMDlhMWIxYzI0MzBlZjIxNDVhMmM2OWVkYjFjNzg0YTVjNjU1ZS4uOWZk
NTJlODY4MmEzM2YzNTkyNjEyMTg3ZTJkM2JkY2M2ZTliZjA3NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMi0wMS0xOCAgQWxleGFuZHJlIEVsaWFzICA8
YWVsaWFzQGdvb2dsZS5jb20+CisKKyAgICAgICAgW2Nocm9taXVtXSBEcmF3IGd1dHRlciBxdWFk
cyBvdXRzaWRlIHJvb3QgY29udGVudCBsYXllcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzMjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgbmV3IGxheWVyIHByb3BlcnR5ICJiYWNrZ3JvdW5kQ292
ZXJzVmlld3BvcnQiLiAgSWYgdGhlIGNvbnRlbnQKKyAgICAgICAgbGF5ZXJzIGRvbid0IGZ1bGx5
IGNvdmVyIHRoZSByZW5kZXIgc3VyZmFjZSwgdGhpcyBjb2RlIGNhbGN1bGF0ZXMgdGhlCisgICAg
ICAgIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgcm9vdCBjbGlwIHJlY3QgYW5kIHRoZSByb290IGNv
bnRlbnQgbGF5ZXIgYW5kCisgICAgICAgIGRyYXdzIHVwIHRvIGZvdXIgYmFja2dyb3VuZC1jb2xv
ciBxdWFkcyBpbiBleGFjdGx5IHRoZSBhcmVhIHRoYXQgd291bGQKKyAgICAgICAgYmUgdW5kcmF3
bi4KKworICAgICAgICBUZXN0OiBDQ1RpbGVkTGF5ZXJJbXBsVGVzdDo6YmFja2dyb3VuZENvdmVy
c1ZpZXdwb3J0CisKKyAgICAgICAgKiBzcmMvTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6Tm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0OjpOb25Db21wb3NpdGVk
Q29udGVudEhvc3QpOgorICAgICAgICAqIHRlc3RzL0NDTGF5ZXJJbXBsVGVzdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpURVNUKToKKyAgICAgICAgKiB0ZXN0cy9DQ1RpbGVkTGF5ZXJJbXBsVGVz
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpURVNUKToKKyAgICAgICAgKiB0ZXN0cy9MYXllckNo
cm9taXVtVGVzdC5jcHA6CisKIDIwMTItMDEtMDkgIENocmlzIFJvZ2VycyAgPGNyb2dlcnNAZ29v
Z2xlLmNvbT4KIAogICAgICAgICBGaXggcG90ZW50aWFsIGlzc3VlIGluIFdlYk1lZGlhUGxheWVy
Q2xpZW50SW1wbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmNwcAppbmRleCAyZGYwNWI1OWNiODVhZDdjMDg3
MDE4Y2MyNTZlZTE3NDA5NGI5YmQ1Li4wYjdiM2E3MzBlZTZlMTVlZmQ2Yzk2YTFmMDA5ZjI3ZGVl
MTI3Mzc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9MYXllckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmNwcApAQCAtNjIsNiArNjIsNyBAQCBMYXllckNo
cm9taXVtOjpMYXllckNocm9taXVtKENDTGF5ZXJEZWxlZ2F0ZSogZGVsZWdhdGUpCiAgICAgLCBt
X3Njcm9sbGFibGUoZmFsc2UpCiAgICAgLCBtX2FuY2hvclBvaW50KDAuNSwgMC41KQogICAgICwg
bV9iYWNrZ3JvdW5kQ29sb3IoMCwgMCwgMCwgMCkKKyAgICAsIG1fYmFja2dyb3VuZENvdmVyc1Zp
ZXdwb3J0KGZhbHNlKQogICAgICwgbV9kZWJ1Z0JvcmRlcldpZHRoKDApCiAgICAgLCBtX29wYWNp
dHkoMS4wKQogICAgICwgbV9hbmNob3JQb2ludFooMCkKQEAgLTI4NSw2ICsyODYsMTQgQEAgdm9p
ZCBMYXllckNocm9taXVtOjpzZXRCYWNrZ3JvdW5kQ29sb3IoY29uc3QgQ29sb3ImIGJhY2tncm91
bmRDb2xvcikKICAgICBzZXROZWVkc0NvbW1pdCgpOwogfQogCit2b2lkIExheWVyQ2hyb21pdW06
OnNldEJhY2tncm91bmRDb3ZlcnNWaWV3cG9ydChib29sIGJhY2tncm91bmRDb3ZlcnNWaWV3cG9y
dCkKK3sKKyAgICBpZiAobV9iYWNrZ3JvdW5kQ292ZXJzVmlld3BvcnQgPT0gYmFja2dyb3VuZENv
dmVyc1ZpZXdwb3J0KQorICAgICAgICByZXR1cm47CisgICAgbV9iYWNrZ3JvdW5kQ292ZXJzVmll
d3BvcnQgPSBiYWNrZ3JvdW5kQ292ZXJzVmlld3BvcnQ7CisgICAgc2V0TmVlZHNDb21taXQoKTsK
K30KKwogdm9pZCBMYXllckNocm9taXVtOjpzZXRNYXNrc1RvQm91bmRzKGJvb2wgbWFza3NUb0Jv
dW5kcykKIHsKICAgICBpZiAobV9tYXNrc1RvQm91bmRzID09IG1hc2tzVG9Cb3VuZHMpCkBAIC00
MTYsNiArNDI1LDcgQEAgdm9pZCBMYXllckNocm9taXVtOjpwdXNoUHJvcGVydGllc1RvKENDTGF5
ZXJJbXBsKiBsYXllcikKICAgICBsYXllci0+c2V0QW5jaG9yUG9pbnQobV9hbmNob3JQb2ludCk7
CiAgICAgbGF5ZXItPnNldEFuY2hvclBvaW50WihtX2FuY2hvclBvaW50Wik7CiAgICAgbGF5ZXIt
PnNldEJhY2tncm91bmRDb2xvcihtX2JhY2tncm91bmRDb2xvcik7CisgICAgbGF5ZXItPnNldEJh
Y2tncm91bmRDb3ZlcnNWaWV3cG9ydChtX2JhY2tncm91bmRDb3ZlcnNWaWV3cG9ydCk7CiAgICAg
bGF5ZXItPnNldEJvdW5kcyhtX2JvdW5kcyk7CiAgICAgbGF5ZXItPnNldENvbnRlbnRCb3VuZHMo
Y29udGVudEJvdW5kcygpKTsKICAgICBsYXllci0+c2V0RGVidWdCb3JkZXJDb2xvcihtX2RlYnVn
Qm9yZGVyQ29sb3IpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5oCmluZGV4IDg3ZjUwNTZmM2MzZWRiMDJlYmE0
YTk1MTgzNGI3YTg0M2I3ODQxMWEuLmU2NmQwMTM2Y2EyNDU0ZjljNzA1NTk0OTdkYTNkOTEwNzc2
MTIwNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0xheWVyQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9MYXllckNocm9taXVtLmgKQEAgLTkwLDYgKzkwLDkgQEAgcHVibGljOgogICAg
IHZvaWQgc2V0QmFja2dyb3VuZENvbG9yKGNvbnN0IENvbG9yJik7CiAgICAgQ29sb3IgYmFja2dy
b3VuZENvbG9yKCkgY29uc3QgeyByZXR1cm4gbV9iYWNrZ3JvdW5kQ29sb3I7IH0KIAorICAgIHZv
aWQgc2V0QmFja2dyb3VuZENvdmVyc1ZpZXdwb3J0KGJvb2wpOworICAgIGJvb2wgYmFja2dyb3Vu
ZENvdmVyc1ZpZXdwb3J0KCkgY29uc3QgeyByZXR1cm4gbV9iYWNrZ3JvdW5kQ292ZXJzVmlld3Bv
cnQ7IH0KKwogICAgIHZvaWQgc2V0Qm91bmRzKGNvbnN0IEludFNpemUmKTsKICAgICBjb25zdCBJ
bnRTaXplJiBib3VuZHMoKSBjb25zdCB7IHJldHVybiBtX2JvdW5kczsgfQogICAgIHZpcnR1YWwg
SW50U2l6ZSBjb250ZW50Qm91bmRzKCkgY29uc3QgeyByZXR1cm4gYm91bmRzKCk7IH0KQEAgLTI1
OCw2ICsyNjEsNyBAQCBwcml2YXRlOgogICAgIEZsb2F0UG9pbnQgbV9wb3NpdGlvbjsKICAgICBG
bG9hdFBvaW50IG1fYW5jaG9yUG9pbnQ7CiAgICAgQ29sb3IgbV9iYWNrZ3JvdW5kQ29sb3I7Cisg
ICAgYm9vbCBtX2JhY2tncm91bmRDb3ZlcnNWaWV3cG9ydDsKICAgICBDb2xvciBtX2RlYnVnQm9y
ZGVyQ29sb3I7CiAgICAgZmxvYXQgbV9kZWJ1Z0JvcmRlcldpZHRoOwogICAgIGZsb2F0IG1fb3Bh
Y2l0eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDTGF5ZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmNwcAppbmRleCAyOWMzMDYwNjhiZDQ2YTc1YjljZGFi
ZjgyYWRmMGViZGRiZmM0OTUxLi5jYjdkODg4ZmRlYjEzNDNhNzg1YWE5ZTAyNjI4ODVkMjhhYTIw
NWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ0xheWVySW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuY3BwCkBAIC00NSw2ICs0NSw3IEBAIENDTGF5ZXJJ
bXBsOjpDQ0xheWVySW1wbChpbnQgaWQpCiAgICAgLCBtX2FuY2hvclBvaW50KDAuNSwgMC41KQog
ICAgICwgbV9hbmNob3JQb2ludFooMCkKICAgICAsIG1fc2Nyb2xsYWJsZShmYWxzZSkKKyAgICAs
IG1fYmFja2dyb3VuZENvdmVyc1ZpZXdwb3J0KGZhbHNlKQogICAgICwgbV9kb3VibGVTaWRlZCh0
cnVlKQogICAgICwgbV9sYXllclByb3BlcnR5Q2hhbmdlZChmYWxzZSkKICAgICAsIG1fbWFza3NU
b0JvdW5kcyhmYWxzZSkKQEAgLTM0NCw2ICszNDUsMTUgQEAgdm9pZCBDQ0xheWVySW1wbDo6c2V0
QmFja2dyb3VuZENvbG9yKGNvbnN0IENvbG9yJiBiYWNrZ3JvdW5kQ29sb3IpCiAgICAgbV9sYXll
clByb3BlcnR5Q2hhbmdlZCA9IHRydWU7CiB9CiAKK3ZvaWQgQ0NMYXllckltcGw6OnNldEJhY2tn
cm91bmRDb3ZlcnNWaWV3cG9ydChib29sIGJhY2tncm91bmRDb3ZlcnNWaWV3cG9ydCkKK3sKKyAg
ICBpZiAobV9iYWNrZ3JvdW5kQ292ZXJzVmlld3BvcnQgPT0gYmFja2dyb3VuZENvdmVyc1ZpZXdw
b3J0KQorICAgICAgICByZXR1cm47CisKKyAgICBtX2JhY2tncm91bmRDb3ZlcnNWaWV3cG9ydCA9
IGJhY2tncm91bmRDb3ZlcnNWaWV3cG9ydDsKKyAgICBtX2xheWVyUHJvcGVydHlDaGFuZ2VkID0g
dHJ1ZTsKK30KKwogdm9pZCBDQ0xheWVySW1wbDo6c2V0TWFza3NUb0JvdW5kcyhib29sIG1hc2tz
VG9Cb3VuZHMpCiB7CiAgICAgaWYgKG1fbWFza3NUb0JvdW5kcyA9PSBtYXNrc1RvQm91bmRzKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NMYXllckltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDTGF5ZXJJbXBsLmgKaW5kZXggYTE4ZmQ0NDIwY2U2YmYyOWJiMTVjOTQ2NDI2N2IwYzgx
ZDRjNzdmNi4uOTVhYzY1ZTE2YjgwNDdmNzM0NGJlMzgzZTA5ZDY3NzQwNTgwMjI5MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXll
ckltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ0xheWVySW1wbC5oCkBAIC05Nyw2ICs5Nyw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEJh
Y2tncm91bmRDb2xvcihjb25zdCBDb2xvciYpOwogICAgIENvbG9yIGJhY2tncm91bmRDb2xvcigp
IGNvbnN0IHsgcmV0dXJuIG1fYmFja2dyb3VuZENvbG9yOyB9CiAKKyAgICB2b2lkIHNldEJhY2tn
cm91bmRDb3ZlcnNWaWV3cG9ydChib29sKTsKKyAgICBib29sIGJhY2tncm91bmRDb3ZlcnNWaWV3
cG9ydCgpIGNvbnN0IHsgcmV0dXJuIG1fYmFja2dyb3VuZENvdmVyc1ZpZXdwb3J0OyB9CisKICAg
ICB2b2lkIHNldE1hc2tzVG9Cb3VuZHMoYm9vbCk7CiAgICAgYm9vbCBtYXNrc1RvQm91bmRzKCkg
Y29uc3QgeyByZXR1cm4gbV9tYXNrc1RvQm91bmRzOyB9CiAKQEAgLTIzMiw2ICsyMzUsNyBAQCBw
cml2YXRlOgogICAgIEludFBvaW50IG1fc2Nyb2xsUG9zaXRpb247CiAgICAgYm9vbCBtX3Njcm9s
bGFibGU7CiAgICAgQ29sb3IgbV9iYWNrZ3JvdW5kQ29sb3I7CisgICAgYm9vbCBtX2JhY2tncm91
bmRDb3ZlcnNWaWV3cG9ydDsKIAogICAgIC8vIFdoZXRoZXIgdGhlICJiYWNrIiBvZiB0aGlzIGxh
eWVyIHNob3VsZCBkcmF3LgogICAgIGJvb2wgbV9kb3VibGVTaWRlZDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGlsZWRMYXllcklt
cGwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NU
aWxlZExheWVySW1wbC5jcHAKaW5kZXggNmNjYjQwNzA0NTEzYmQwYWMyM2E0YzRiYTc3ZmQwMGQ2
NjE5MDY4Ni4uOTk1NDdkMGEyZTI3ZTE3NjE2OTUwZjBhODVlZTI5ZWJjNWM3ZjY5NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaWxl
ZExheWVySW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NUaWxlZExheWVySW1wbC5jcHAKQEAgLTEyMSw2ICsxMjEsMjcgQEAgdm9pZCBD
Q1RpbGVkTGF5ZXJJbXBsOjphcHBlbmRRdWFkcyhDQ1F1YWRMaXN0JiBxdWFkTGlzdCwgY29uc3Qg
Q0NTaGFyZWRRdWFkU3RhdGUKICAgICBpZiAobV9za2lwc0RyYXcgfHwgIW1fdGlsZXIgfHwgbV90
aWxlci0+aXNFbXB0eSgpIHx8IGxheWVyUmVjdC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsK
IAorICAgIGlmIChiYWNrZ3JvdW5kQ292ZXJzVmlld3BvcnQoKSkgeworICAgICAgICBJbnRSZWN0
IGd1dHRlclJlY3RzWzRdOworICAgICAgICBJbnRSZWN0IGNsaXAgPSBzY3JlZW5TcGFjZVRyYW5z
Zm9ybSgpLmludmVyc2UoKS5tYXBSZWN0KGNsaXBSZWN0KCkpOworICAgICAgICBmb3IgKGludCBp
ID0gMDsgaSA8IDQ7IGkrKykKKyAgICAgICAgICAgIGd1dHRlclJlY3RzW2ldID0gY2xpcDsKKyAg
ICAgICAgZ3V0dGVyUmVjdHNbMF0uc2hpZnRNYXhZRWRnZVRvKGxheWVyUmVjdC55KCkpOworICAg
ICAgICBndXR0ZXJSZWN0c1sxXS5zaGlmdFlFZGdlVG8obGF5ZXJSZWN0Lm1heFkoKSk7CisgICAg
ICAgIGd1dHRlclJlY3RzWzJdLnNoaWZ0TWF4WEVkZ2VUbyhsYXllclJlY3QueCgpKTsKKyAgICAg
ICAgZ3V0dGVyUmVjdHNbM10uc2hpZnRYRWRnZVRvKGxheWVyUmVjdC5tYXhYKCkpOworCisgICAg
ICAgIGd1dHRlclJlY3RzWzJdLnNoaWZ0WUVkZ2VUbyhsYXllclJlY3QueSgpKTsKKyAgICAgICAg
Z3V0dGVyUmVjdHNbM10uc2hpZnRZRWRnZVRvKGxheWVyUmVjdC55KCkpOworICAgICAgICBndXR0
ZXJSZWN0c1syXS5zaGlmdE1heFlFZGdlVG8obGF5ZXJSZWN0Lm1heFkoKSk7CisgICAgICAgIGd1
dHRlclJlY3RzWzNdLnNoaWZ0TWF4WUVkZ2VUbyhsYXllclJlY3QubWF4WSgpKTsKKworICAgICAg
ICBmb3IgKGludCBpID0gMDsgaSA8IDQ7IGkrKykgeworICAgICAgICAgICAgaWYgKCFndXR0ZXJS
ZWN0c1tpXS5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgcXVhZExpc3QuYXBwZW5kKENDU29s
aWRDb2xvckRyYXdRdWFkOjpjcmVhdGUoc2hhcmVkUXVhZFN0YXRlLCBndXR0ZXJSZWN0c1tpXSwg
YmFja2dyb3VuZENvbG9yKCkpKTsKKyAgICAgICAgfQorICAgIH0KKwogICAgIGludCBsZWZ0LCB0
b3AsIHJpZ2h0LCBib3R0b207CiAgICAgbV90aWxlci0+bGF5ZXJSZWN0VG9UaWxlSW5kaWNlcyhs
YXllclJlY3QsIGxlZnQsIHRvcCwgcmlnaHQsIGJvdHRvbSk7CiAgICAgZm9yIChpbnQgaiA9IHRv
cDsgaiA8PSBib3R0b207ICsraikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5jcHAKaW5kZXggYzNhNWJiNDgxYWI0ODEy
MWI2M2M5MDA1ZWFkODM5Y2RkYjliY2NhMS4uNWJkYmU4ZTljMDcyOTI1ZjE1NTdiMmQwY2Y3NGVm
YzIwYWM3N2ZlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvTm9uQ29t
cG9zaXRlZENvbnRlbnRIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9O
b25Db21wb3NpdGVkQ29udGVudEhvc3QuY3BwCkBAIC00NCw2ICs0NCw3IEBAIE5vbkNvbXBvc2l0
ZWRDb250ZW50SG9zdDo6Tm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0KFBhc3NPd25QdHI8V2ViQ29y
ZTo6TGF5ZXJQYWluCiAjZW5kaWYKICAgICBtX2dyYXBoaWNzTGF5ZXItPnNldERyYXdzQ29udGVu
dCh0cnVlKTsKICAgICBtX2dyYXBoaWNzTGF5ZXItPnBsYXRmb3JtTGF5ZXIoKS0+c2V0SXNOb25D
b21wb3NpdGVkQ29udGVudCh0cnVlKTsKKyAgICBtX2dyYXBoaWNzTGF5ZXItPnBsYXRmb3JtTGF5
ZXIoKS0+c2V0QmFja2dyb3VuZENvdmVyc1ZpZXdwb3J0KHRydWUpOwogICAgIG1fZ3JhcGhpY3NM
YXllci0+cGxhdGZvcm1MYXllcigpLT5zZXRPcGFxdWUodHJ1ZSk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllckltcGxUZXN0LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllckltcGxUZXN0LmNwcAppbmRleCAxNjU0MDVk
NDkxMDc2N2I5NjYzM2U5N2Y2NGQ3MGViMjczN2NhOGM3Li4yNzcyOGNiZWYwZTNiMzE4NzkzZDBk
ZGMxMGZjMzdhZDYwZjE3ZDdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL0NDTGF5ZXJJbXBsVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0
cy9DQ0xheWVySW1wbFRlc3QuY3BwCkBAIC0xMTIsNiArMTEyLDcgQEAgVEVTVChDQ0xheWVySW1w
bFRlc3QsIHZlcmlmeUxheWVyQ2hhbmdlc0FyZVRyYWNrZWRQcm9wZXJseSkKICAgICBFWEVDVVRF
X0FORF9WRVJJRllfT05MWV9MQVlFUl9DSEFOR0VEKHJvb3QtPnNldERlYnVnQm9yZGVyV2lkdGgo
YXJiaXRyYXJ5TnVtYmVyKSk7CiAgICAgRVhFQ1VURV9BTkRfVkVSSUZZX09OTFlfTEFZRVJfQ0hB
TkdFRChyb290LT5zZXREcmF3c0NvbnRlbnQodHJ1ZSkpOwogICAgIEVYRUNVVEVfQU5EX1ZFUklG
WV9PTkxZX0xBWUVSX0NIQU5HRUQocm9vdC0+c2V0QmFja2dyb3VuZENvbG9yKENvbG9yOjpncmF5
KSk7CisgICAgRVhFQ1VURV9BTkRfVkVSSUZZX09OTFlfTEFZRVJfQ0hBTkdFRChyb290LT5zZXRC
YWNrZ3JvdW5kQ292ZXJzVmlld3BvcnQodHJ1ZSkpOwogCiAgICAgLy8gU3BlY2lhbCBjYXNlOiBj
aGVjayB0aGF0IHN1YmxheWVyIHRyYW5zZm9ybSBjaGFuZ2VzIGFsbCBsYXllcidzIGRlc2NlbmRh
bnRzLCBidXQgbm90IHRoZSBsYXllciBpdHNlbGYuCiAgICAgcm9vdC0+cmVzZXRBbGxDaGFuZ2VU
cmFja2luZ0ZvclN1YnRyZWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
dGVzdHMvQ0NUaWxlZExheWVySW1wbFRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9DQ1RpbGVkTGF5ZXJJbXBsVGVzdC5jcHAKaW5kZXggYTJlZWE5NDQwYzQzYzMzYzM4ZTQ5
NmUzNzhiZGM3YzMzMTJlODNmMy4uNTQ2YzBlZDkyNWVmNDhmMzM3ODMzZGJlYjJiYjUxZDVkODIz
ZTYxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1RpbGVkTGF5
ZXJJbXBsVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1RpbGVk
TGF5ZXJJbXBsVGVzdC5jcHAKQEAgLTI1Miw1ICsyNTIsNTMgQEAgVEVTVChDQ1RpbGVkTGF5ZXJJ
bXBsVGVzdCwgdGV4dHVyZUluZm9Gb3JMYXllck5vQm9yZGVycykKICAgICB9CiB9CiAKK1RFU1Qo
Q0NUaWxlZExheWVySW1wbFRlc3QsIGJhY2tncm91bmRDb3ZlcnNWaWV3cG9ydCkKK3sKKyAgICBE
ZWJ1Z1Njb3BlZFNldEltcGxUaHJlYWQgc2NvcGVkSW1wbFRocmVhZDsKKworICAgIGNvbnN0IElu
dFNpemUgdGlsZVNpemUoMTAsIDEwKTsKKyAgICBjb25zdCBpbnQgbnVtVGlsZXNYID0gMjsKKyAg
ICBjb25zdCBpbnQgbnVtVGlsZXNZID0gMjsKKyAgICBjb25zdCB1bnNpZ25lZCBudW1UaWxlcyA9
IG51bVRpbGVzWCAqIG51bVRpbGVzWTsKKyAgICBjb25zdCBJbnRTaXplIGxheWVyU2l6ZSh0aWxl
U2l6ZS53aWR0aCgpICogbnVtVGlsZXNYLCB0aWxlU2l6ZS5oZWlnaHQoKSAqIG51bVRpbGVzWSk7
CisgICAgUmVmUHRyPENDVGlsZWRMYXllckltcGw+IGxheWVyID0gY3JlYXRlTGF5ZXIodGlsZVNp
emUsIGxheWVyU2l6ZSwgQ0NMYXllclRpbGluZ0RhdGE6Ok5vQm9yZGVyVGV4ZWxzKTsKKyAgICBs
YXllci0+c2V0QmFja2dyb3VuZENvdmVyc1ZpZXdwb3J0KHRydWUpOworCisgICAgLy8gTm8gZ3V0
dGVyIHJlY3RzCisgICAgeworICAgICAgICBJbnRSZWN0IGNsaXBSZWN0ID0gSW50UmVjdChJbnRQ
b2ludCgpLCBsYXllclNpemUpOworICAgICAgICBsYXllci0+c2V0Q2xpcFJlY3QoY2xpcFJlY3Qp
OworICAgICAgICBPd25QdHI8Q0NTaGFyZWRRdWFkU3RhdGU+IHNoYXJlZFF1YWRTdGF0ZSA9IGxh
eWVyLT5jcmVhdGVTaGFyZWRRdWFkU3RhdGUoKTsKKworICAgICAgICBDQ1F1YWRMaXN0IHF1YWRz
OworICAgICAgICBsYXllci0+YXBwZW5kUXVhZHMocXVhZHMsIHNoYXJlZFF1YWRTdGF0ZS5nZXQo
KSk7CisgICAgICAgIEVYUEVDVF9FUShxdWFkcy5zaXplKCksIG51bVRpbGVzKTsKKworICAgICAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHF1YWRzLnNpemUoKTsgKytpKQorICAgICAgICAgICAg
RVhQRUNUX0VRKHF1YWRzW2ldLT5tYXRlcmlhbCgpLCBDQ0RyYXdRdWFkOjpUaWxlZENvbnRlbnQp
OworICAgIH0KKworICAgIC8vIEd1dHRlciByZWN0cyBzaG91bGQgY292ZXIgdGhlIHdob2xlIGNs
aXAgcmVjdAorICAgIHsKKyAgICAgICAgSW50UmVjdCBjbGlwUmVjdCA9IEludFJlY3QoLTUwLCAt
NTAsIDEwMCwgMTAwKTsKKyAgICAgICAgbGF5ZXItPnNldENsaXBSZWN0KGNsaXBSZWN0KTsKKwor
ICAgICAgICBPd25QdHI8Q0NTaGFyZWRRdWFkU3RhdGU+IHNoYXJlZFF1YWRTdGF0ZSA9IGxheWVy
LT5jcmVhdGVTaGFyZWRRdWFkU3RhdGUoKTsKKyAgICAgICAgQ0NRdWFkTGlzdCBxdWFkczsKKyAg
ICAgICAgbGF5ZXItPmFwcGVuZFF1YWRzKHF1YWRzLCBzaGFyZWRRdWFkU3RhdGUuZ2V0KCkpOwor
CisgICAgICAgIHVuc2lnbmVkIG51bUNvbnRlbnRUaWxlcyA9IDAsIG51bUd1dHRlclRpbGVzID0g
MDsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBxdWFkcy5zaXplKCk7ICsraSkgewor
ICAgICAgICAgICAgaWYgKHF1YWRzW2ldLT5tYXRlcmlhbCgpID09IENDRHJhd1F1YWQ6OlRpbGVk
Q29udGVudCkKKyAgICAgICAgICAgICAgICBudW1Db250ZW50VGlsZXMrKzsKKyAgICAgICAgICAg
IGVsc2UgaWYgKHF1YWRzW2ldLT5tYXRlcmlhbCgpID09IENDRHJhd1F1YWQ6OlNvbGlkQ29sb3Ip
CisgICAgICAgICAgICAgICAgbnVtR3V0dGVyVGlsZXMrKzsKKyAgICAgICAgfQorICAgICAgICBF
WFBFQ1RfRVEobnVtQ29udGVudFRpbGVzLCBudW1UaWxlcyk7CisgICAgICAgIEVYUEVDVF9HRShu
dW1HdXR0ZXJUaWxlcywgNHUpOworCisgICAgICAgIHZlcmlmeVF1YWRzRXhhY3RseUNvdmVyUmVj
dChxdWFkcywgY2xpcFJlY3QpOworICAgIH0KK30KIAogfSAvLyBuYW1lc3BhY2UKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTGF5ZXJDaHJvbWl1bVRlc3QuY3BwIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9MYXllckNocm9taXVtVGVzdC5jcHAKaW5kZXgg
YmMyN2M0MzI5OTY3Y2FhYzY4MWIzNTBkYTBiYTI0NzUxYzdiMmM3Yy4uYzU0OGEwNzFlNjAyYjcw
YjhkNWQwNzZkODBmOWM4YWVjOWM1Y2Y3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS90ZXN0cy9MYXllckNocm9taXVtVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS90ZXN0cy9MYXllckNocm9taXVtVGVzdC5jcHAKQEAgLTUzNiw2ICs1MzYsNyBAQCBURVNU
X0YoTGF5ZXJDaHJvbWl1bVRlc3QsIGNoZWNrUHJvcGVydHlDaGFuZ2VDYXVzZXNDb3JyZWN0QmVo
YXZpb3IpCiAgICAgRVhFQ1VURV9BTkRfVkVSSUZZX1NFVF9ORUVEU19DT01NSVRfQkVIQVZJT1Io
MSwgdGVzdExheWVyLT5zZXRBbmNob3JQb2ludChGbG9hdFBvaW50KDEuMjNmLCA0LjU2ZikpKTsK
ICAgICBFWEVDVVRFX0FORF9WRVJJRllfU0VUX05FRURTX0NPTU1JVF9CRUhBVklPUigxLCB0ZXN0
TGF5ZXItPnNldEFuY2hvclBvaW50WigwLjdmKSk7CiAgICAgRVhFQ1VURV9BTkRfVkVSSUZZX1NF
VF9ORUVEU19DT01NSVRfQkVIQVZJT1IoMSwgdGVzdExheWVyLT5zZXRCYWNrZ3JvdW5kQ29sb3Io
Q29sb3IoMC40ZiwgMC40ZiwgMC40ZikpKTsKKyAgICBFWEVDVVRFX0FORF9WRVJJRllfU0VUX05F
RURTX0NPTU1JVF9CRUhBVklPUigxLCB0ZXN0TGF5ZXItPnNldEJhY2tncm91bmRDb3ZlcnNWaWV3
cG9ydCh0cnVlKSk7CiAgICAgRVhFQ1VURV9BTkRfVkVSSUZZX1NFVF9ORUVEU19DT01NSVRfQkVI
QVZJT1IoMSwgdGVzdExheWVyLT5zZXRNYXNrc1RvQm91bmRzKHRydWUpKTsKICAgICBFWEVDVVRF
X0FORF9WRVJJRllfU0VUX05FRURTX0NPTU1JVF9CRUhBVklPUigxLCB0ZXN0TGF5ZXItPnNldE1h
c2tMYXllcihkdW1teUxheWVyLmdldCgpKSk7CiAgICAgRVhFQ1VURV9BTkRfVkVSSUZZX1NFVF9O
RUVEU19DT01NSVRfQkVIQVZJT1IoMSwgdGVzdExheWVyLT5zZXRPcGFjaXR5KDAuNWYpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123039</attachid>
            <date>2012-01-18 17:03:28 -0800</date>
            <delta_ts>2012-01-19 14:52:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76328-20120118170327.patch</filename>
            <type>text/plain</type>
            <size>16519</size>
            <attacher name="Alexandre Elias">aelias</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA0NTAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODkxNTcyZWZkODMwNTJj
ZDgxYThjNmQyNDg3MmI4YWNiMjQzMTY5My4uZDMyYzkzMjNhYWY5YzRkMWZkYTE3MGMzNWVjNzRl
NDdhOGU2MjYwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTAxLTE4ICBBbGV4
YW5kcmUgRWxpYXMgIDxhZWxpYXNAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIERy
YXcgZ3V0dGVyIHF1YWRzIG91dHNpZGUgcm9vdCBjb250ZW50IGxheWVyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjMyOAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBuZXcgbGF5ZXIgcHJvcGVydHkg
ImJhY2tncm91bmRDb3ZlcnNWaWV3cG9ydCIuICBJZiB0aGUgY29udGVudAorICAgICAgICBsYXll
cnMgZG9uJ3QgZnVsbHkgY292ZXIgdGhlIHJlbmRlciBzdXJmYWNlLCB0aGlzIGNvZGUgY2FsY3Vs
YXRlcyB0aGUKKyAgICAgICAgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSByb290IGNsaXAgcmVjdCBh
bmQgdGhlIHJvb3QgY29udGVudCBsYXllciBhbmQKKyAgICAgICAgZHJhd3MgdXAgdG8gZm91ciBi
YWNrZ3JvdW5kLWNvbG9yIHF1YWRzIGluIGV4YWN0bHkgdGhlIGFyZWEgdGhhdCB3b3VsZAorICAg
ICAgICBiZSB1bmRyYXduLgorCisgICAgICAgIFRlc3Q6IENDVGlsZWRMYXllckltcGxUZXN0Ojpi
YWNrZ3JvdW5kQ292ZXJzVmlld3BvcnQKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0xheWVyQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDaHJvbWl1
bTo6TGF5ZXJDaHJvbWl1bSk6CisgICAgICAgIChXZWJDb3JlOjpMYXllckNocm9taXVtOjpzZXRC
YWNrZ3JvdW5kQ292ZXJzVmlld3BvcnQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDaHJvbWl1
bTo6cHVzaFByb3BlcnRpZXNUbyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vTGF5ZXJDaHJvbWl1bS5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDaHJvbWl1bTo6YmFj
a2dyb3VuZENvdmVyc1ZpZXdwb3J0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ0xheWVySW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVySW1wbDo6
Q0NMYXllckltcGwpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllckltcGw6OnNldEJhY2tncm91
bmRDb3ZlcnNWaWV3cG9ydCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NMYXllckltcGwuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJJbXBsOjpiYWNrZ3Jv
dW5kQ292ZXJzVmlld3BvcnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDVGlsZWRMYXllckltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NUaWxlZExheWVy
SW1wbDo6YXBwZW5kUXVhZHMpOgorCiAyMDEyLTAxLTA5ICBKdXN0aW4gTm92b3NhZCAgPGp1bm92
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW0gd2luXSBDcmVhdGluZyBsb3RzIG9m
IHRlbXBvcmFyeSBjYW52YXMgY29udGV4dHMgd2lsbCBjcmFzaC4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKaW5kZXggYzhlMDlhMWIxYzI0MzBlZjIxNDVhMmM2OWVkYjFjNzg0YTVjNjU1ZS4uOWZk
NTJlODY4MmEzM2YzNTkyNjEyMTg3ZTJkM2JkY2M2ZTliZjA3NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMi0wMS0xOCAgQWxleGFuZHJlIEVsaWFzICA8
YWVsaWFzQGdvb2dsZS5jb20+CisKKyAgICAgICAgW2Nocm9taXVtXSBEcmF3IGd1dHRlciBxdWFk
cyBvdXRzaWRlIHJvb3QgY29udGVudCBsYXllcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzMjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgbmV3IGxheWVyIHByb3BlcnR5ICJiYWNrZ3JvdW5kQ292
ZXJzVmlld3BvcnQiLiAgSWYgdGhlIGNvbnRlbnQKKyAgICAgICAgbGF5ZXJzIGRvbid0IGZ1bGx5
IGNvdmVyIHRoZSByZW5kZXIgc3VyZmFjZSwgdGhpcyBjb2RlIGNhbGN1bGF0ZXMgdGhlCisgICAg
ICAgIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgcm9vdCBjbGlwIHJlY3QgYW5kIHRoZSByb290IGNv
bnRlbnQgbGF5ZXIgYW5kCisgICAgICAgIGRyYXdzIHVwIHRvIGZvdXIgYmFja2dyb3VuZC1jb2xv
ciBxdWFkcyBpbiBleGFjdGx5IHRoZSBhcmVhIHRoYXQgd291bGQKKyAgICAgICAgYmUgdW5kcmF3
bi4KKworICAgICAgICBUZXN0OiBDQ1RpbGVkTGF5ZXJJbXBsVGVzdDo6YmFja2dyb3VuZENvdmVy
c1ZpZXdwb3J0CisKKyAgICAgICAgKiBzcmMvTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6Tm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0OjpOb25Db21wb3NpdGVk
Q29udGVudEhvc3QpOgorICAgICAgICAqIHRlc3RzL0NDTGF5ZXJJbXBsVGVzdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpURVNUKToKKyAgICAgICAgKiB0ZXN0cy9DQ1RpbGVkTGF5ZXJJbXBsVGVz
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpURVNUKToKKyAgICAgICAgKiB0ZXN0cy9MYXllckNo
cm9taXVtVGVzdC5jcHA6CisKIDIwMTItMDEtMDkgIENocmlzIFJvZ2VycyAgPGNyb2dlcnNAZ29v
Z2xlLmNvbT4KIAogICAgICAgICBGaXggcG90ZW50aWFsIGlzc3VlIGluIFdlYk1lZGlhUGxheWVy
Q2xpZW50SW1wbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmNwcAppbmRleCAyZGYwNWI1OWNiODVhZDdjMDg3
MDE4Y2MyNTZlZTE3NDA5NGI5YmQ1Li4wYjdiM2E3MzBlZTZlMTVlZmQ2Yzk2YTFmMDA5ZjI3ZGVl
MTI3Mzc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9MYXllckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmNwcApAQCAtNjIsNiArNjIsNyBAQCBMYXllckNo
cm9taXVtOjpMYXllckNocm9taXVtKENDTGF5ZXJEZWxlZ2F0ZSogZGVsZWdhdGUpCiAgICAgLCBt
X3Njcm9sbGFibGUoZmFsc2UpCiAgICAgLCBtX2FuY2hvclBvaW50KDAuNSwgMC41KQogICAgICwg
bV9iYWNrZ3JvdW5kQ29sb3IoMCwgMCwgMCwgMCkKKyAgICAsIG1fYmFja2dyb3VuZENvdmVyc1Zp
ZXdwb3J0KGZhbHNlKQogICAgICwgbV9kZWJ1Z0JvcmRlcldpZHRoKDApCiAgICAgLCBtX29wYWNp
dHkoMS4wKQogICAgICwgbV9hbmNob3JQb2ludFooMCkKQEAgLTI4NSw2ICsyODYsMTQgQEAgdm9p
ZCBMYXllckNocm9taXVtOjpzZXRCYWNrZ3JvdW5kQ29sb3IoY29uc3QgQ29sb3ImIGJhY2tncm91
bmRDb2xvcikKICAgICBzZXROZWVkc0NvbW1pdCgpOwogfQogCit2b2lkIExheWVyQ2hyb21pdW06
OnNldEJhY2tncm91bmRDb3ZlcnNWaWV3cG9ydChib29sIGJhY2tncm91bmRDb3ZlcnNWaWV3cG9y
dCkKK3sKKyAgICBpZiAobV9iYWNrZ3JvdW5kQ292ZXJzVmlld3BvcnQgPT0gYmFja2dyb3VuZENv
dmVyc1ZpZXdwb3J0KQorICAgICAgICByZXR1cm47CisgICAgbV9iYWNrZ3JvdW5kQ292ZXJzVmll
d3BvcnQgPSBiYWNrZ3JvdW5kQ292ZXJzVmlld3BvcnQ7CisgICAgc2V0TmVlZHNDb21taXQoKTsK
K30KKwogdm9pZCBMYXllckNocm9taXVtOjpzZXRNYXNrc1RvQm91bmRzKGJvb2wgbWFza3NUb0Jv
dW5kcykKIHsKICAgICBpZiAobV9tYXNrc1RvQm91bmRzID09IG1hc2tzVG9Cb3VuZHMpCkBAIC00
MTYsNiArNDI1LDcgQEAgdm9pZCBMYXllckNocm9taXVtOjpwdXNoUHJvcGVydGllc1RvKENDTGF5
ZXJJbXBsKiBsYXllcikKICAgICBsYXllci0+c2V0QW5jaG9yUG9pbnQobV9hbmNob3JQb2ludCk7
CiAgICAgbGF5ZXItPnNldEFuY2hvclBvaW50WihtX2FuY2hvclBvaW50Wik7CiAgICAgbGF5ZXIt
PnNldEJhY2tncm91bmRDb2xvcihtX2JhY2tncm91bmRDb2xvcik7CisgICAgbGF5ZXItPnNldEJh
Y2tncm91bmRDb3ZlcnNWaWV3cG9ydChtX2JhY2tncm91bmRDb3ZlcnNWaWV3cG9ydCk7CiAgICAg
bGF5ZXItPnNldEJvdW5kcyhtX2JvdW5kcyk7CiAgICAgbGF5ZXItPnNldENvbnRlbnRCb3VuZHMo
Y29udGVudEJvdW5kcygpKTsKICAgICBsYXllci0+c2V0RGVidWdCb3JkZXJDb2xvcihtX2RlYnVn
Qm9yZGVyQ29sb3IpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5oCmluZGV4IDg3ZjUwNTZmM2MzZWRiMDJlYmE0
YTk1MTgzNGI3YTg0M2I3ODQxMWEuLmU2NmQwMTM2Y2EyNDU0ZjljNzA1NTk0OTdkYTNkOTEwNzc2
MTIwNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0xheWVyQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9MYXllckNocm9taXVtLmgKQEAgLTkwLDYgKzkwLDkgQEAgcHVibGljOgogICAg
IHZvaWQgc2V0QmFja2dyb3VuZENvbG9yKGNvbnN0IENvbG9yJik7CiAgICAgQ29sb3IgYmFja2dy
b3VuZENvbG9yKCkgY29uc3QgeyByZXR1cm4gbV9iYWNrZ3JvdW5kQ29sb3I7IH0KIAorICAgIHZv
aWQgc2V0QmFja2dyb3VuZENvdmVyc1ZpZXdwb3J0KGJvb2wpOworICAgIGJvb2wgYmFja2dyb3Vu
ZENvdmVyc1ZpZXdwb3J0KCkgY29uc3QgeyByZXR1cm4gbV9iYWNrZ3JvdW5kQ292ZXJzVmlld3Bv
cnQ7IH0KKwogICAgIHZvaWQgc2V0Qm91bmRzKGNvbnN0IEludFNpemUmKTsKICAgICBjb25zdCBJ
bnRTaXplJiBib3VuZHMoKSBjb25zdCB7IHJldHVybiBtX2JvdW5kczsgfQogICAgIHZpcnR1YWwg
SW50U2l6ZSBjb250ZW50Qm91bmRzKCkgY29uc3QgeyByZXR1cm4gYm91bmRzKCk7IH0KQEAgLTI1
OCw2ICsyNjEsNyBAQCBwcml2YXRlOgogICAgIEZsb2F0UG9pbnQgbV9wb3NpdGlvbjsKICAgICBG
bG9hdFBvaW50IG1fYW5jaG9yUG9pbnQ7CiAgICAgQ29sb3IgbV9iYWNrZ3JvdW5kQ29sb3I7Cisg
ICAgYm9vbCBtX2JhY2tncm91bmRDb3ZlcnNWaWV3cG9ydDsKICAgICBDb2xvciBtX2RlYnVnQm9y
ZGVyQ29sb3I7CiAgICAgZmxvYXQgbV9kZWJ1Z0JvcmRlcldpZHRoOwogICAgIGZsb2F0IG1fb3Bh
Y2l0eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDTGF5ZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmNwcAppbmRleCAyOWMzMDYwNjhiZDQ2YTc1YjljZGFi
ZjgyYWRmMGViZGRiZmM0OTUxLi5lMWNkY2Y5OGRiOGZhM2VjYjJjYTI5ZTkyYzhkZTY3MGVkNmEw
NDVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ0xheWVySW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVk
ZSAiY2MvQ0NDdXN0b21MYXllckRyYXdRdWFkLmgiCiAjaW5jbHVkZSAiY2MvQ0NEZWJ1Z0JvcmRl
ckRyYXdRdWFkLmgiCiAjaW5jbHVkZSAiY2MvQ0NMYXllclNvcnRlci5oIgorI2luY2x1ZGUgImNj
L0NDU29saWRDb2xvckRyYXdRdWFkLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ1LDYgKzQ2LDcgQEAgQ0NMYXllckltcGw6OkND
TGF5ZXJJbXBsKGludCBpZCkKICAgICAsIG1fYW5jaG9yUG9pbnQoMC41LCAwLjUpCiAgICAgLCBt
X2FuY2hvclBvaW50WigwKQogICAgICwgbV9zY3JvbGxhYmxlKGZhbHNlKQorICAgICwgbV9iYWNr
Z3JvdW5kQ292ZXJzVmlld3BvcnQoZmFsc2UpCiAgICAgLCBtX2RvdWJsZVNpZGVkKHRydWUpCiAg
ICAgLCBtX2xheWVyUHJvcGVydHlDaGFuZ2VkKGZhbHNlKQogICAgICwgbV9tYXNrc1RvQm91bmRz
KGZhbHNlKQpAQCAtMTI5LDEwICsxMzEsNDQgQEAgUGFzc093blB0cjxDQ1NoYXJlZFF1YWRTdGF0
ZT4gQ0NMYXllckltcGw6OmNyZWF0ZVNoYXJlZFF1YWRTdGF0ZSgpIGNvbnN0CiAKIHZvaWQgQ0NM
YXllckltcGw6OmFwcGVuZFF1YWRzKENDUXVhZExpc3QmIHF1YWRMaXN0LCBjb25zdCBDQ1NoYXJl
ZFF1YWRTdGF0ZSogc2hhcmVkUXVhZFN0YXRlKQogeworICAgIGFwcGVuZEd1dHRlclF1YWRzKHF1
YWRMaXN0LCBzaGFyZWRRdWFkU3RhdGUpOworCiAgICAgSW50UmVjdCBxdWFkUmVjdChJbnRQb2lu
dCgpLCBib3VuZHMoKSk7CiAgICAgcXVhZExpc3QuYXBwZW5kKENDQ3VzdG9tTGF5ZXJEcmF3UXVh
ZDo6Y3JlYXRlKHNoYXJlZFF1YWRTdGF0ZSwgcXVhZFJlY3QsIHRoaXMpKTsKIH0KIAordm9pZCBD
Q0xheWVySW1wbDo6YXBwZW5kR3V0dGVyUXVhZHMoQ0NRdWFkTGlzdCYgcXVhZExpc3QsIGNvbnN0
IENDU2hhcmVkUXVhZFN0YXRlKiBzaGFyZWRRdWFkU3RhdGUpCit7CisgICAgaWYgKCFiYWNrZ3Jv
dW5kQ292ZXJzVmlld3BvcnQoKSB8fCAhYmFja2dyb3VuZENvbG9yKCkuaXNWYWxpZCgpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBjb25zdCBJbnRSZWN0JiBsYXllclJlY3QgPSB2aXNpYmxlTGF5
ZXJSZWN0KCk7CisgICAgSW50UmVjdCBjbGlwID0gc2NyZWVuU3BhY2VUcmFuc2Zvcm0oKS5pbnZl
cnNlKCkubWFwUmVjdChjbGlwUmVjdCgpKTsKKworICAgIGlmIChsYXllclJlY3QuaXNFbXB0eSgp
KSB7CisgICAgICAgIHF1YWRMaXN0LmFwcGVuZChDQ1NvbGlkQ29sb3JEcmF3UXVhZDo6Y3JlYXRl
KHNoYXJlZFF1YWRTdGF0ZSwgY2xpcCwgYmFja2dyb3VuZENvbG9yKCkpKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIEludFJlY3QgZ3V0dGVyUmVjdHNbNF07CisgICAgZm9yIChpbnQg
aSA9IDA7IGkgPCA0OyBpKyspCisgICAgICAgIGd1dHRlclJlY3RzW2ldID0gY2xpcDsKKyAgICBn
dXR0ZXJSZWN0c1swXS5zaGlmdE1heFlFZGdlVG8obGF5ZXJSZWN0LnkoKSk7CisgICAgZ3V0dGVy
UmVjdHNbMV0uc2hpZnRZRWRnZVRvKGxheWVyUmVjdC5tYXhZKCkpOworICAgIGd1dHRlclJlY3Rz
WzJdLnNoaWZ0TWF4WEVkZ2VUbyhsYXllclJlY3QueCgpKTsKKyAgICBndXR0ZXJSZWN0c1szXS5z
aGlmdFhFZGdlVG8obGF5ZXJSZWN0Lm1heFgoKSk7CisKKyAgICBndXR0ZXJSZWN0c1syXS5zaGlm
dFlFZGdlVG8obGF5ZXJSZWN0LnkoKSk7CisgICAgZ3V0dGVyUmVjdHNbM10uc2hpZnRZRWRnZVRv
KGxheWVyUmVjdC55KCkpOworICAgIGd1dHRlclJlY3RzWzJdLnNoaWZ0TWF4WUVkZ2VUbyhsYXll
clJlY3QubWF4WSgpKTsKKyAgICBndXR0ZXJSZWN0c1szXS5zaGlmdE1heFlFZGdlVG8obGF5ZXJS
ZWN0Lm1heFkoKSk7CisKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IDQ7IGkrKykgeworICAgICAg
ICBpZiAoIWd1dHRlclJlY3RzW2ldLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIHF1YWRMaXN0LmFw
cGVuZChDQ1NvbGlkQ29sb3JEcmF3UXVhZDo6Y3JlYXRlKHNoYXJlZFF1YWRTdGF0ZSwgZ3V0dGVy
UmVjdHNbaV0sIGJhY2tncm91bmRDb2xvcigpKSk7CisgICAgfQorfQorCiB2b2lkIENDTGF5ZXJJ
bXBsOjphcHBlbmREZWJ1Z0JvcmRlclF1YWQoQ0NRdWFkTGlzdCYgcXVhZExpc3QsIGNvbnN0IEND
U2hhcmVkUXVhZFN0YXRlKiBzaGFyZWRRdWFkU3RhdGUpIGNvbnN0CiB7CiAgICAgaWYgKCFkZWJ1
Z0JvcmRlckNvbG9yKCkuYWxwaGEoKSkKQEAgLTM0NCw2ICszODAsMTUgQEAgdm9pZCBDQ0xheWVy
SW1wbDo6c2V0QmFja2dyb3VuZENvbG9yKGNvbnN0IENvbG9yJiBiYWNrZ3JvdW5kQ29sb3IpCiAg
ICAgbV9sYXllclByb3BlcnR5Q2hhbmdlZCA9IHRydWU7CiB9CiAKK3ZvaWQgQ0NMYXllckltcGw6
OnNldEJhY2tncm91bmRDb3ZlcnNWaWV3cG9ydChib29sIGJhY2tncm91bmRDb3ZlcnNWaWV3cG9y
dCkKK3sKKyAgICBpZiAobV9iYWNrZ3JvdW5kQ292ZXJzVmlld3BvcnQgPT0gYmFja2dyb3VuZENv
dmVyc1ZpZXdwb3J0KQorICAgICAgICByZXR1cm47CisKKyAgICBtX2JhY2tncm91bmRDb3ZlcnNW
aWV3cG9ydCA9IGJhY2tncm91bmRDb3ZlcnNWaWV3cG9ydDsKKyAgICBtX2xheWVyUHJvcGVydHlD
aGFuZ2VkID0gdHJ1ZTsKK30KKwogdm9pZCBDQ0xheWVySW1wbDo6c2V0TWFza3NUb0JvdW5kcyhi
b29sIG1hc2tzVG9Cb3VuZHMpCiB7CiAgICAgaWYgKG1fbWFza3NUb0JvdW5kcyA9PSBtYXNrc1Rv
Qm91bmRzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NMYXllckltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmgKaW5kZXggYTE4ZmQ0NDIwY2U2YmYyOWJiMTVjOTQ2
NDI2N2IwYzgxZDRjNzdmNi4uMDNkMDFjNzMzMTE3MjI4OGJiYWIwNDlhNTgzYzM2M2Y4NDZiNTJl
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NMYXllckltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ0xheWVySW1wbC5oCkBAIC05Nyw2ICs5Nyw5IEBAIHB1YmxpYzoKICAgICB2
b2lkIHNldEJhY2tncm91bmRDb2xvcihjb25zdCBDb2xvciYpOwogICAgIENvbG9yIGJhY2tncm91
bmRDb2xvcigpIGNvbnN0IHsgcmV0dXJuIG1fYmFja2dyb3VuZENvbG9yOyB9CiAKKyAgICB2b2lk
IHNldEJhY2tncm91bmRDb3ZlcnNWaWV3cG9ydChib29sKTsKKyAgICBib29sIGJhY2tncm91bmRD
b3ZlcnNWaWV3cG9ydCgpIGNvbnN0IHsgcmV0dXJuIG1fYmFja2dyb3VuZENvdmVyc1ZpZXdwb3J0
OyB9CisKICAgICB2b2lkIHNldE1hc2tzVG9Cb3VuZHMoYm9vbCk7CiAgICAgYm9vbCBtYXNrc1Rv
Qm91bmRzKCkgY29uc3QgeyByZXR1cm4gbV9tYXNrc1RvQm91bmRzOyB9CiAKQEAgLTIwMyw2ICsy
MDYsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgLy8gVHJhbnNmb3JtYXRpb24gdXNlZCB0byB0cmFuc2Zv
cm0gcXVhZHMgcHJvdmlkZWQgaW4gYXBwZW5kUXVhZHMuCiAgICAgdmlydHVhbCBUcmFuc2Zvcm1h
dGlvbk1hdHJpeCBxdWFkVHJhbnNmb3JtKCkgY29uc3Q7CiAKKyAgICB2b2lkIGFwcGVuZEd1dHRl
clF1YWRzKENDUXVhZExpc3QmLCBjb25zdCBDQ1NoYXJlZFF1YWRTdGF0ZSopOworCiBwcml2YXRl
OgogICAgIHZvaWQgc2V0UGFyZW50KENDTGF5ZXJJbXBsKiBwYXJlbnQpIHsgbV9wYXJlbnQgPSBw
YXJlbnQ7IH0KICAgICBmcmllbmQgY2xhc3MgVHJlZVN5bmNocm9uaXplcjsKQEAgLTIzMiw2ICsy
MzcsNyBAQCBwcml2YXRlOgogICAgIEludFBvaW50IG1fc2Nyb2xsUG9zaXRpb247CiAgICAgYm9v
bCBtX3Njcm9sbGFibGU7CiAgICAgQ29sb3IgbV9iYWNrZ3JvdW5kQ29sb3I7CisgICAgYm9vbCBt
X2JhY2tncm91bmRDb3ZlcnNWaWV3cG9ydDsKIAogICAgIC8vIFdoZXRoZXIgdGhlICJiYWNrIiBv
ZiB0aGlzIGxheWVyIHNob3VsZCBkcmF3LgogICAgIGJvb2wgbV9kb3VibGVTaWRlZDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGls
ZWRMYXllckltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NUaWxlZExheWVySW1wbC5jcHAKaW5kZXggNmNjYjQwNzA0NTEzYmQwYWMyM2E0YzRi
YTc3ZmQwMGQ2NjE5MDY4Ni4uNmU2ZWE0MDhkMjYwOGYxM2FlNjE1ZjhiODAxMTM5NWFjMzVhYzdm
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NUaWxlZExheWVySW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NUaWxlZExheWVySW1wbC5jcHAKQEAgLTExOCw3ICsxMTgsMTIg
QEAgdm9pZCBDQ1RpbGVkTGF5ZXJJbXBsOjphcHBlbmRRdWFkcyhDQ1F1YWRMaXN0JiBxdWFkTGlz
dCwgY29uc3QgQ0NTaGFyZWRRdWFkU3RhdGUKIHsKICAgICBjb25zdCBJbnRSZWN0JiBsYXllclJl
Y3QgPSB2aXNpYmxlTGF5ZXJSZWN0KCk7CiAKLSAgICBpZiAobV9za2lwc0RyYXcgfHwgIW1fdGls
ZXIgfHwgbV90aWxlci0+aXNFbXB0eSgpIHx8IGxheWVyUmVjdC5pc0VtcHR5KCkpCisgICAgaWYg
KG1fc2tpcHNEcmF3KQorICAgICAgICByZXR1cm47CisKKyAgICBhcHBlbmRHdXR0ZXJRdWFkcyhx
dWFkTGlzdCwgc2hhcmVkUXVhZFN0YXRlKTsKKworICAgIGlmICghbV90aWxlciB8fCBtX3RpbGVy
LT5pc0VtcHR5KCkgfHwgbGF5ZXJSZWN0LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgaW50IGxlZnQsIHRvcCwgcmlnaHQsIGJvdHRvbTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9Ob25Db21wb3NpdGVkQ29udGVudEhvc3QuY3BwCmluZGV4IGMzYTVi
YjQ4MWFiNDgxMjFiNjNjOTAwNWVhZDgzOWNkZGI5YmNjYTEuLjViZGJlOGU5YzA3MjkyNWYxNTU3
YjJkMGNmNzRlZmMyMGFjNzdmZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmNwcApAQCAtNDQsNiArNDQsNyBAQCBO
b25Db21wb3NpdGVkQ29udGVudEhvc3Q6Ok5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdChQYXNzT3du
UHRyPFdlYkNvcmU6OkxheWVyUGFpbgogI2VuZGlmCiAgICAgbV9ncmFwaGljc0xheWVyLT5zZXRE
cmF3c0NvbnRlbnQodHJ1ZSk7CiAgICAgbV9ncmFwaGljc0xheWVyLT5wbGF0Zm9ybUxheWVyKCkt
PnNldElzTm9uQ29tcG9zaXRlZENvbnRlbnQodHJ1ZSk7CisgICAgbV9ncmFwaGljc0xheWVyLT5w
bGF0Zm9ybUxheWVyKCktPnNldEJhY2tncm91bmRDb3ZlcnNWaWV3cG9ydCh0cnVlKTsKICAgICBt
X2dyYXBoaWNzTGF5ZXItPnBsYXRmb3JtTGF5ZXIoKS0+c2V0T3BhcXVlKHRydWUpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJJbXBsVGVzdC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJJbXBsVGVzdC5jcHAKaW5k
ZXggMTY1NDA1ZDQ5MTA3NjdiOTY2MzNlOTdmNjRkNzBlYjI3MzdjYThjNy4uMjc3MjhjYmVmMGUz
YjMxODc5M2QwZGRjMTBmYzM3YWQ2MGYxN2Q3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9DQ0xheWVySW1wbFRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvQ0NMYXllckltcGxUZXN0LmNwcApAQCAtMTEyLDYgKzExMiw3IEBAIFRFU1Qo
Q0NMYXllckltcGxUZXN0LCB2ZXJpZnlMYXllckNoYW5nZXNBcmVUcmFja2VkUHJvcGVybHkpCiAg
ICAgRVhFQ1VURV9BTkRfVkVSSUZZX09OTFlfTEFZRVJfQ0hBTkdFRChyb290LT5zZXREZWJ1Z0Jv
cmRlcldpZHRoKGFyYml0cmFyeU51bWJlcikpOwogICAgIEVYRUNVVEVfQU5EX1ZFUklGWV9PTkxZ
X0xBWUVSX0NIQU5HRUQocm9vdC0+c2V0RHJhd3NDb250ZW50KHRydWUpKTsKICAgICBFWEVDVVRF
X0FORF9WRVJJRllfT05MWV9MQVlFUl9DSEFOR0VEKHJvb3QtPnNldEJhY2tncm91bmRDb2xvcihD
b2xvcjo6Z3JheSkpOworICAgIEVYRUNVVEVfQU5EX1ZFUklGWV9PTkxZX0xBWUVSX0NIQU5HRUQo
cm9vdC0+c2V0QmFja2dyb3VuZENvdmVyc1ZpZXdwb3J0KHRydWUpKTsKIAogICAgIC8vIFNwZWNp
YWwgY2FzZTogY2hlY2sgdGhhdCBzdWJsYXllciB0cmFuc2Zvcm0gY2hhbmdlcyBhbGwgbGF5ZXIn
cyBkZXNjZW5kYW50cywgYnV0IG5vdCB0aGUgbGF5ZXIgaXRzZWxmLgogICAgIHJvb3QtPnJlc2V0
QWxsQ2hhbmdlVHJhY2tpbmdGb3JTdWJ0cmVlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL0NDVGlsZWRMYXllckltcGxUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vdGVzdHMvQ0NUaWxlZExheWVySW1wbFRlc3QuY3BwCmluZGV4IGEyZWVhOTQ0MGM0
M2MzM2MzOGU0OTZlMzc4YmRjN2MzMzEyZTgzZjMuLjU1NDYwMzdhZGEyY2NiZjE5ZWRlMDFlNjNj
ZGI3OTY5NzRkZmMyYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
Q0NUaWxlZExheWVySW1wbFRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVz
dHMvQ0NUaWxlZExheWVySW1wbFRlc3QuY3BwCkBAIC0yNTIsNSArMjUyLDczIEBAIFRFU1QoQ0NU
aWxlZExheWVySW1wbFRlc3QsIHRleHR1cmVJbmZvRm9yTGF5ZXJOb0JvcmRlcnMpCiAgICAgfQog
fQogCitURVNUKENDVGlsZWRMYXllckltcGxUZXN0LCBiYWNrZ3JvdW5kQ292ZXJzVmlld3BvcnQp
Cit7CisgICAgRGVidWdTY29wZWRTZXRJbXBsVGhyZWFkIHNjb3BlZEltcGxUaHJlYWQ7CisKKyAg
ICBjb25zdCBJbnRTaXplIHRpbGVTaXplKDEwLCAxMCk7CisgICAgY29uc3QgaW50IG51bVRpbGVz
WCA9IDI7CisgICAgY29uc3QgaW50IG51bVRpbGVzWSA9IDI7CisgICAgY29uc3QgdW5zaWduZWQg
bnVtVGlsZXMgPSBudW1UaWxlc1ggKiBudW1UaWxlc1k7CisgICAgY29uc3QgSW50U2l6ZSBsYXll
clNpemUodGlsZVNpemUud2lkdGgoKSAqIG51bVRpbGVzWCwgdGlsZVNpemUuaGVpZ2h0KCkgKiBu
dW1UaWxlc1kpOworICAgIFJlZlB0cjxDQ1RpbGVkTGF5ZXJJbXBsPiBsYXllciA9IGNyZWF0ZUxh
eWVyKHRpbGVTaXplLCBsYXllclNpemUsIENDTGF5ZXJUaWxpbmdEYXRhOjpOb0JvcmRlclRleGVs
cyk7CisgICAgbGF5ZXItPnNldEJhY2tncm91bmRDb2xvcihDb2xvcjo6Z3JheSk7CisgICAgbGF5
ZXItPnNldEJhY2tncm91bmRDb3ZlcnNWaWV3cG9ydCh0cnVlKTsKKworICAgIC8vIE5vIGd1dHRl
ciByZWN0cworICAgIHsKKyAgICAgICAgSW50UmVjdCBjbGlwUmVjdCA9IEludFJlY3QoSW50UG9p
bnQoKSwgbGF5ZXJTaXplKTsKKyAgICAgICAgbGF5ZXItPnNldENsaXBSZWN0KGNsaXBSZWN0KTsK
KyAgICAgICAgbGF5ZXItPnNldFZpc2libGVMYXllclJlY3QoSW50UmVjdChJbnRQb2ludCgpLCBs
YXllclNpemUpKTsKKworICAgICAgICBPd25QdHI8Q0NTaGFyZWRRdWFkU3RhdGU+IHNoYXJlZFF1
YWRTdGF0ZSA9IGxheWVyLT5jcmVhdGVTaGFyZWRRdWFkU3RhdGUoKTsKKworICAgICAgICBDQ1F1
YWRMaXN0IHF1YWRzOworICAgICAgICBsYXllci0+YXBwZW5kUXVhZHMocXVhZHMsIHNoYXJlZFF1
YWRTdGF0ZS5nZXQoKSk7CisgICAgICAgIEVYUEVDVF9FUShxdWFkcy5zaXplKCksIG51bVRpbGVz
KTsKKworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHF1YWRzLnNpemUoKTsgKytpKQor
ICAgICAgICAgICAgRVhQRUNUX0VRKHF1YWRzW2ldLT5tYXRlcmlhbCgpLCBDQ0RyYXdRdWFkOjpU
aWxlZENvbnRlbnQpOworICAgIH0KKworICAgIC8vIEVtcHR5IHZpc2libGUgY29udGVudCBhcmVh
IChmdWxsc2NyZWVuIGd1dHRlciByZWN0KQorICAgIHsKKyAgICAgICAgSW50UmVjdCBjbGlwUmVj
dCA9IEludFJlY3QoMTAwLCAxMDAsIDEwMCwgMTAwKTsKKyAgICAgICAgbGF5ZXItPnNldENsaXBS
ZWN0KGNsaXBSZWN0KTsKKyAgICAgICAgbGF5ZXItPnNldFZpc2libGVMYXllclJlY3QoSW50UmVj
dCgpKTsKKworICAgICAgICBPd25QdHI8Q0NTaGFyZWRRdWFkU3RhdGU+IHNoYXJlZFF1YWRTdGF0
ZSA9IGxheWVyLT5jcmVhdGVTaGFyZWRRdWFkU3RhdGUoKTsKKyAgICAgICAgQ0NRdWFkTGlzdCBx
dWFkczsKKyAgICAgICAgbGF5ZXItPmFwcGVuZFF1YWRzKHF1YWRzLCBzaGFyZWRRdWFkU3RhdGUu
Z2V0KCkpOworCisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcXVhZHMuc2l6ZSgpOyAr
K2kpCisgICAgICAgICAgICBFWFBFQ1RfRVEocXVhZHNbaV0tPm1hdGVyaWFsKCksIENDRHJhd1F1
YWQ6OlNvbGlkQ29sb3IpOworCisgICAgICAgIHZlcmlmeVF1YWRzRXhhY3RseUNvdmVyUmVjdChx
dWFkcywgY2xpcFJlY3QpOworICAgIH0KKworICAgIC8vIENvbnRlbnQgYXJlYSBpbiBtaWRkbGUg
b2YgY2xpcCByZWN0IChmb3VyIHN1cnJvdW5kaW5nIGd1dHRlciByZWN0cykKKyAgICB7CisgICAg
ICAgIEludFJlY3QgY2xpcFJlY3QgPSBJbnRSZWN0KC01MCwgLTUwLCAxMDAsIDEwMCk7CisgICAg
ICAgIGxheWVyLT5zZXRDbGlwUmVjdChjbGlwUmVjdCk7CisgICAgICAgIGxheWVyLT5zZXRWaXNp
YmxlTGF5ZXJSZWN0KEludFJlY3QoSW50UG9pbnQoKSwgbGF5ZXJTaXplKSk7CisKKyAgICAgICAg
T3duUHRyPENDU2hhcmVkUXVhZFN0YXRlPiBzaGFyZWRRdWFkU3RhdGUgPSBsYXllci0+Y3JlYXRl
U2hhcmVkUXVhZFN0YXRlKCk7CisgICAgICAgIENDUXVhZExpc3QgcXVhZHM7CisgICAgICAgIGxh
eWVyLT5hcHBlbmRRdWFkcyhxdWFkcywgc2hhcmVkUXVhZFN0YXRlLmdldCgpKTsKKworICAgICAg
ICB1bnNpZ25lZCBudW1Db250ZW50VGlsZXMgPSAwLCBudW1HdXR0ZXJUaWxlcyA9IDA7CisgICAg
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcXVhZHMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAg
ICAgIGlmIChxdWFkc1tpXS0+bWF0ZXJpYWwoKSA9PSBDQ0RyYXdRdWFkOjpUaWxlZENvbnRlbnQp
CisgICAgICAgICAgICAgICAgbnVtQ29udGVudFRpbGVzKys7CisgICAgICAgICAgICBlbHNlIGlm
IChxdWFkc1tpXS0+bWF0ZXJpYWwoKSA9PSBDQ0RyYXdRdWFkOjpTb2xpZENvbG9yKQorICAgICAg
ICAgICAgICAgIG51bUd1dHRlclRpbGVzKys7CisgICAgICAgIH0KKyAgICAgICAgRVhQRUNUX0VR
KG51bUNvbnRlbnRUaWxlcywgbnVtVGlsZXMpOworICAgICAgICBFWFBFQ1RfR0UobnVtR3V0dGVy
VGlsZXMsIDR1KTsKKworICAgICAgICB2ZXJpZnlRdWFkc0V4YWN0bHlDb3ZlclJlY3QocXVhZHMs
IGNsaXBSZWN0KTsKKyAgICB9Cit9CiAKIH0gLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0xheWVyQ2hyb21pdW1UZXN0LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCmluZGV4IGJjMjdjNDMy
OTk2N2NhYWM2ODFiMzUwZGEwYmEyNDc1MWM3YjJjN2MuLmM1NDhhMDcxZTYwMmI3MGI4ZDVkMDc2
ZDgwZjljOGFlYzljNWNmNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVz
dHMvTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVz
dHMvTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCkBAIC01MzYsNiArNTM2LDcgQEAgVEVTVF9GKExheWVy
Q2hyb21pdW1UZXN0LCBjaGVja1Byb3BlcnR5Q2hhbmdlQ2F1c2VzQ29ycmVjdEJlaGF2aW9yKQog
ICAgIEVYRUNVVEVfQU5EX1ZFUklGWV9TRVRfTkVFRFNfQ09NTUlUX0JFSEFWSU9SKDEsIHRlc3RM
YXllci0+c2V0QW5jaG9yUG9pbnQoRmxvYXRQb2ludCgxLjIzZiwgNC41NmYpKSk7CiAgICAgRVhF
Q1VURV9BTkRfVkVSSUZZX1NFVF9ORUVEU19DT01NSVRfQkVIQVZJT1IoMSwgdGVzdExheWVyLT5z
ZXRBbmNob3JQb2ludFooMC43ZikpOwogICAgIEVYRUNVVEVfQU5EX1ZFUklGWV9TRVRfTkVFRFNf
Q09NTUlUX0JFSEFWSU9SKDEsIHRlc3RMYXllci0+c2V0QmFja2dyb3VuZENvbG9yKENvbG9yKDAu
NGYsIDAuNGYsIDAuNGYpKSk7CisgICAgRVhFQ1VURV9BTkRfVkVSSUZZX1NFVF9ORUVEU19DT01N
SVRfQkVIQVZJT1IoMSwgdGVzdExheWVyLT5zZXRCYWNrZ3JvdW5kQ292ZXJzVmlld3BvcnQodHJ1
ZSkpOwogICAgIEVYRUNVVEVfQU5EX1ZFUklGWV9TRVRfTkVFRFNfQ09NTUlUX0JFSEFWSU9SKDEs
IHRlc3RMYXllci0+c2V0TWFza3NUb0JvdW5kcyh0cnVlKSk7CiAgICAgRVhFQ1VURV9BTkRfVkVS
SUZZX1NFVF9ORUVEU19DT01NSVRfQkVIQVZJT1IoMSwgdGVzdExheWVyLT5zZXRNYXNrTGF5ZXIo
ZHVtbXlMYXllci5nZXQoKSkpOwogICAgIEVYRUNVVEVfQU5EX1ZFUklGWV9TRVRfTkVFRFNfQ09N
TUlUX0JFSEFWSU9SKDEsIHRlc3RMYXllci0+c2V0T3BhY2l0eSgwLjVmKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123202</attachid>
            <date>2012-01-19 14:52:52 -0800</date>
            <delta_ts>2012-01-19 18:21:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76328-20120119145251.patch</filename>
            <type>text/plain</type>
            <size>16432</size>
            <attacher name="Alexandre Elias">aelias</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1NDI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWJkYWZiNDEyZjE1MDMy
OWM3ODIxMzBmMDFmYzUxY2NjMTJjMmM0ZC4uYzAyYTkxMTU1YWZhMDBlODM4OGVlZTJlOGNhNzNl
N2UyMjlhMWJmMCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTAxLTE4ICBBbGV4
YW5kcmUgRWxpYXMgIDxhZWxpYXNAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIERy
YXcgZ3V0dGVyIHF1YWRzIG91dHNpZGUgcm9vdCBjb250ZW50IGxheWVyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjMyOAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBuZXcgbGF5ZXIgcHJvcGVydHkg
ImJhY2tncm91bmRDb3ZlcnNWaWV3cG9ydCIuICBJZiB0aGUgY29udGVudAorICAgICAgICBsYXll
cnMgZG9uJ3QgZnVsbHkgY292ZXIgdGhlIHJlbmRlciBzdXJmYWNlLCB0aGlzIGNvZGUgY2FsY3Vs
YXRlcyB0aGUKKyAgICAgICAgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSByb290IGNsaXAgcmVjdCBh
bmQgdGhlIHJvb3QgY29udGVudCBsYXllciBhbmQKKyAgICAgICAgZHJhd3MgdXAgdG8gZm91ciBi
YWNrZ3JvdW5kLWNvbG9yIHF1YWRzIGluIGV4YWN0bHkgdGhlIGFyZWEgdGhhdCB3b3VsZAorICAg
ICAgICBiZSB1bmRyYXduLgorCisgICAgICAgIFRlc3Q6IENDVGlsZWRMYXllckltcGxUZXN0Ojpi
YWNrZ3JvdW5kQ292ZXJzVmlld3BvcnQKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0xheWVyQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDaHJvbWl1
bTo6TGF5ZXJDaHJvbWl1bSk6CisgICAgICAgIChXZWJDb3JlOjpMYXllckNocm9taXVtOjpzZXRC
YWNrZ3JvdW5kQ292ZXJzVmlld3BvcnQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDaHJvbWl1
bTo6cHVzaFByb3BlcnRpZXNUbyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vTGF5ZXJDaHJvbWl1bS5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDaHJvbWl1bTo6YmFj
a2dyb3VuZENvdmVyc1ZpZXdwb3J0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ0xheWVySW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVySW1wbDo6
Q0NMYXllckltcGwpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllckltcGw6OnNldEJhY2tncm91
bmRDb3ZlcnNWaWV3cG9ydCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NMYXllckltcGwuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJJbXBsOjpiYWNrZ3Jv
dW5kQ292ZXJzVmlld3BvcnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDVGlsZWRMYXllckltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NUaWxlZExheWVy
SW1wbDo6YXBwZW5kUXVhZHMpOgorCiAyMDEyLTAxLTE5ICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2
aWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFN3aXRjaGluZyB0YWJz
IGluIFRhYmJlZEVkaXRvckNvbnRhaW5lciBzaG91bGQgcmV2ZWFsIHNlbGVjdGVkIHNjcmlwdCBp
biBuYXZpZ2F0b3IuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGYxMzJkMTdlY2QyMmJl
NzA0YmViMjgwZjNmYzI2ZGJlMmNmMGQ1NzIuLjdhNjBlOGJkYTM2ZjI5ODdlZmE4ZGI4YjFlNzI4
NDQ4YmMwNjA0ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAK
KzIwMTItMDEtMTggIEFsZXhhbmRyZSBFbGlhcyAgPGFlbGlhc0Bnb29nbGUuY29tPgorCisgICAg
ICAgIFtjaHJvbWl1bV0gRHJhdyBndXR0ZXIgcXVhZHMgb3V0c2lkZSByb290IGNvbnRlbnQgbGF5
ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2MzI4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIG5l
dyBsYXllciBwcm9wZXJ0eSAiYmFja2dyb3VuZENvdmVyc1ZpZXdwb3J0Ii4gIElmIHRoZSBjb250
ZW50CisgICAgICAgIGxheWVycyBkb24ndCBmdWxseSBjb3ZlciB0aGUgcmVuZGVyIHN1cmZhY2Us
IHRoaXMgY29kZSBjYWxjdWxhdGVzIHRoZQorICAgICAgICBkaWZmZXJlbmNlIGJldHdlZW4gdGhl
IHJvb3QgY2xpcCByZWN0IGFuZCB0aGUgcm9vdCBjb250ZW50IGxheWVyIGFuZAorICAgICAgICBk
cmF3cyB1cCB0byBmb3VyIGJhY2tncm91bmQtY29sb3IgcXVhZHMgaW4gZXhhY3RseSB0aGUgYXJl
YSB0aGF0IHdvdWxkCisgICAgICAgIGJlIHVuZHJhd24uCisKKyAgICAgICAgVGVzdDogQ0NUaWxl
ZExheWVySW1wbFRlc3Q6OmJhY2tncm91bmRDb3ZlcnNWaWV3cG9ydAorCisgICAgICAgICogc3Jj
L05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5vbkNvbXBv
c2l0ZWRDb250ZW50SG9zdDo6Tm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0KToKKyAgICAgICAgKiB0
ZXN0cy9DQ0xheWVySW1wbFRlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VEVTVCk6CisgICAg
ICAgICogdGVzdHMvQ0NUaWxlZExheWVySW1wbFRlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
VEVTVCk6CisgICAgICAgICogdGVzdHMvTGF5ZXJDaHJvbWl1bVRlc3QuY3BwOgorCiAyMDEyLTAx
LTE4ICBLaW51a28gWWFzdWRhICA8a2ludWtvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBDbGVh
bnVwOiBNb3ZlIGNocm9tZS1zcGVjaWZpYyBmaWxlc3lzdGVtIHR5cGUgaGFuZGxpbmcgY29kZSAo
Zm9yIEZpbGVTeXN0ZW0gQVBJKSB1bmRlciBjaHJvbWl1bSBkaXJlY3RvcnkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0u
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJv
bWl1bS5jcHAKaW5kZXggMmRmMDViNTljYjg1YWQ3YzA4NzAxOGNjMjU2ZWUxNzQwOTRiOWJkNS4u
MGI3YjNhNzMwZWU2ZTE1ZWZkNmM5NmExZjAwOWYyN2RlZTEyNzM3OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJv
bWl1bS5jcHAKQEAgLTYyLDYgKzYyLDcgQEAgTGF5ZXJDaHJvbWl1bTo6TGF5ZXJDaHJvbWl1bShD
Q0xheWVyRGVsZWdhdGUqIGRlbGVnYXRlKQogICAgICwgbV9zY3JvbGxhYmxlKGZhbHNlKQogICAg
ICwgbV9hbmNob3JQb2ludCgwLjUsIDAuNSkKICAgICAsIG1fYmFja2dyb3VuZENvbG9yKDAsIDAs
IDAsIDApCisgICAgLCBtX2JhY2tncm91bmRDb3ZlcnNWaWV3cG9ydChmYWxzZSkKICAgICAsIG1f
ZGVidWdCb3JkZXJXaWR0aCgwKQogICAgICwgbV9vcGFjaXR5KDEuMCkKICAgICAsIG1fYW5jaG9y
UG9pbnRaKDApCkBAIC0yODUsNiArMjg2LDE0IEBAIHZvaWQgTGF5ZXJDaHJvbWl1bTo6c2V0QmFj
a2dyb3VuZENvbG9yKGNvbnN0IENvbG9yJiBiYWNrZ3JvdW5kQ29sb3IpCiAgICAgc2V0TmVlZHND
b21taXQoKTsKIH0KIAordm9pZCBMYXllckNocm9taXVtOjpzZXRCYWNrZ3JvdW5kQ292ZXJzVmll
d3BvcnQoYm9vbCBiYWNrZ3JvdW5kQ292ZXJzVmlld3BvcnQpCit7CisgICAgaWYgKG1fYmFja2dy
b3VuZENvdmVyc1ZpZXdwb3J0ID09IGJhY2tncm91bmRDb3ZlcnNWaWV3cG9ydCkKKyAgICAgICAg
cmV0dXJuOworICAgIG1fYmFja2dyb3VuZENvdmVyc1ZpZXdwb3J0ID0gYmFja2dyb3VuZENvdmVy
c1ZpZXdwb3J0OworICAgIHNldE5lZWRzQ29tbWl0KCk7Cit9CisKIHZvaWQgTGF5ZXJDaHJvbWl1
bTo6c2V0TWFza3NUb0JvdW5kcyhib29sIG1hc2tzVG9Cb3VuZHMpCiB7CiAgICAgaWYgKG1fbWFz
a3NUb0JvdW5kcyA9PSBtYXNrc1RvQm91bmRzKQpAQCAtNDE2LDYgKzQyNSw3IEBAIHZvaWQgTGF5
ZXJDaHJvbWl1bTo6cHVzaFByb3BlcnRpZXNUbyhDQ0xheWVySW1wbCogbGF5ZXIpCiAgICAgbGF5
ZXItPnNldEFuY2hvclBvaW50KG1fYW5jaG9yUG9pbnQpOwogICAgIGxheWVyLT5zZXRBbmNob3JQ
b2ludFoobV9hbmNob3JQb2ludFopOwogICAgIGxheWVyLT5zZXRCYWNrZ3JvdW5kQ29sb3IobV9i
YWNrZ3JvdW5kQ29sb3IpOworICAgIGxheWVyLT5zZXRCYWNrZ3JvdW5kQ292ZXJzVmlld3BvcnQo
bV9iYWNrZ3JvdW5kQ292ZXJzVmlld3BvcnQpOwogICAgIGxheWVyLT5zZXRCb3VuZHMobV9ib3Vu
ZHMpOwogICAgIGxheWVyLT5zZXRDb250ZW50Qm91bmRzKGNvbnRlbnRCb3VuZHMoKSk7CiAgICAg
bGF5ZXItPnNldERlYnVnQm9yZGVyQ29sb3IobV9kZWJ1Z0JvcmRlckNvbG9yKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21p
dW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hy
b21pdW0uaAppbmRleCA4OTg0NWE1MThlYzc0ZGNmNDQ1NGZhOWRlY2QxMDVhMGQzNjg5Mjg3Li4x
YjYzZDhiNDVmOTllYTg2YWQ5Y2VlODA5ZGE2ZTlhNjk4N2U5ZDFhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1
bS5oCkBAIC05MCw2ICs5MCw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEJhY2tncm91bmRDb2xv
cihjb25zdCBDb2xvciYpOwogICAgIENvbG9yIGJhY2tncm91bmRDb2xvcigpIGNvbnN0IHsgcmV0
dXJuIG1fYmFja2dyb3VuZENvbG9yOyB9CiAKKyAgICB2b2lkIHNldEJhY2tncm91bmRDb3ZlcnNW
aWV3cG9ydChib29sKTsKKyAgICBib29sIGJhY2tncm91bmRDb3ZlcnNWaWV3cG9ydCgpIGNvbnN0
IHsgcmV0dXJuIG1fYmFja2dyb3VuZENvdmVyc1ZpZXdwb3J0OyB9CisKICAgICB2b2lkIHNldEJv
dW5kcyhjb25zdCBJbnRTaXplJik7CiAgICAgY29uc3QgSW50U2l6ZSYgYm91bmRzKCkgY29uc3Qg
eyByZXR1cm4gbV9ib3VuZHM7IH0KICAgICB2aXJ0dWFsIEludFNpemUgY29udGVudEJvdW5kcygp
IGNvbnN0IHsgcmV0dXJuIGJvdW5kcygpOyB9CkBAIC0yNTgsNiArMjYxLDcgQEAgcHJpdmF0ZToK
ICAgICBGbG9hdFBvaW50IG1fcG9zaXRpb247CiAgICAgRmxvYXRQb2ludCBtX2FuY2hvclBvaW50
OwogICAgIENvbG9yIG1fYmFja2dyb3VuZENvbG9yOworICAgIGJvb2wgbV9iYWNrZ3JvdW5kQ292
ZXJzVmlld3BvcnQ7CiAgICAgQ29sb3IgbV9kZWJ1Z0JvcmRlckNvbG9yOwogICAgIGZsb2F0IG1f
ZGVidWdCb3JkZXJXaWR0aDsKICAgICBmbG9hdCBtX29wYWNpdHk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1w
bC5jcHAKaW5kZXggZGUzOGEwYWFmNGEyN2Q4NTJhMmY0ODcxZjRiYTBlOTc2MGI1N2I0Mi4uODZk
ZTAwZDJjYWU4NGExOWIwZTMyNTA5MjMwM2VhM2JmZWNkN2RkNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJ
bXBsLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkxheWVyUmVuZGVyZXJDaHJvbWl1
bS5oIgogI2luY2x1ZGUgImNjL0NDRGVidWdCb3JkZXJEcmF3UXVhZC5oIgogI2luY2x1ZGUgImNj
L0NDTGF5ZXJTb3J0ZXIuaCIKKyNpbmNsdWRlICJjYy9DQ1NvbGlkQ29sb3JEcmF3UXVhZC5oIgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBA
IC00NCw2ICs0NSw3IEBAIENDTGF5ZXJJbXBsOjpDQ0xheWVySW1wbChpbnQgaWQpCiAgICAgLCBt
X2FuY2hvclBvaW50KDAuNSwgMC41KQogICAgICwgbV9hbmNob3JQb2ludFooMCkKICAgICAsIG1f
c2Nyb2xsYWJsZShmYWxzZSkKKyAgICAsIG1fYmFja2dyb3VuZENvdmVyc1ZpZXdwb3J0KGZhbHNl
KQogICAgICwgbV9kb3VibGVTaWRlZCh0cnVlKQogICAgICwgbV9sYXllclByb3BlcnR5Q2hhbmdl
ZChmYWxzZSkKICAgICAsIG1fbWFza3NUb0JvdW5kcyhmYWxzZSkKQEAgLTEyOCw2ICsxMzAsMzkg
QEAgUGFzc093blB0cjxDQ1NoYXJlZFF1YWRTdGF0ZT4gQ0NMYXllckltcGw6OmNyZWF0ZVNoYXJl
ZFF1YWRTdGF0ZSgpIGNvbnN0CiAKIHZvaWQgQ0NMYXllckltcGw6OmFwcGVuZFF1YWRzKENDUXVh
ZExpc3QmIHF1YWRMaXN0LCBjb25zdCBDQ1NoYXJlZFF1YWRTdGF0ZSogc2hhcmVkUXVhZFN0YXRl
KQogeworICAgIGFwcGVuZEd1dHRlclF1YWRzKHF1YWRMaXN0LCBzaGFyZWRRdWFkU3RhdGUpOwor
fQorCit2b2lkIENDTGF5ZXJJbXBsOjphcHBlbmRHdXR0ZXJRdWFkcyhDQ1F1YWRMaXN0JiBxdWFk
TGlzdCwgY29uc3QgQ0NTaGFyZWRRdWFkU3RhdGUqIHNoYXJlZFF1YWRTdGF0ZSkKK3sKKyAgICBp
ZiAoIWJhY2tncm91bmRDb3ZlcnNWaWV3cG9ydCgpIHx8ICFiYWNrZ3JvdW5kQ29sb3IoKS5pc1Zh
bGlkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGNvbnN0IEludFJlY3QmIGxheWVyUmVjdCA9
IHZpc2libGVMYXllclJlY3QoKTsKKyAgICBJbnRSZWN0IGNsaXAgPSBzY3JlZW5TcGFjZVRyYW5z
Zm9ybSgpLmludmVyc2UoKS5tYXBSZWN0KGNsaXBSZWN0KCkpOworCisgICAgaWYgKGxheWVyUmVj
dC5pc0VtcHR5KCkpIHsKKyAgICAgICAgcXVhZExpc3QuYXBwZW5kKENDU29saWRDb2xvckRyYXdR
dWFkOjpjcmVhdGUoc2hhcmVkUXVhZFN0YXRlLCBjbGlwLCBiYWNrZ3JvdW5kQ29sb3IoKSkpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgSW50UmVjdCBndXR0ZXJSZWN0c1s0XTsKKyAg
ICBmb3IgKGludCBpID0gMDsgaSA8IDQ7IGkrKykKKyAgICAgICAgZ3V0dGVyUmVjdHNbaV0gPSBj
bGlwOworICAgIGd1dHRlclJlY3RzWzBdLnNoaWZ0TWF4WUVkZ2VUbyhsYXllclJlY3QueSgpKTsK
KyAgICBndXR0ZXJSZWN0c1sxXS5zaGlmdFlFZGdlVG8obGF5ZXJSZWN0Lm1heFkoKSk7CisgICAg
Z3V0dGVyUmVjdHNbMl0uc2hpZnRNYXhYRWRnZVRvKGxheWVyUmVjdC54KCkpOworICAgIGd1dHRl
clJlY3RzWzNdLnNoaWZ0WEVkZ2VUbyhsYXllclJlY3QubWF4WCgpKTsKKworICAgIGd1dHRlclJl
Y3RzWzJdLnNoaWZ0WUVkZ2VUbyhsYXllclJlY3QueSgpKTsKKyAgICBndXR0ZXJSZWN0c1szXS5z
aGlmdFlFZGdlVG8obGF5ZXJSZWN0LnkoKSk7CisgICAgZ3V0dGVyUmVjdHNbMl0uc2hpZnRNYXhZ
RWRnZVRvKGxheWVyUmVjdC5tYXhZKCkpOworICAgIGd1dHRlclJlY3RzWzNdLnNoaWZ0TWF4WUVk
Z2VUbyhsYXllclJlY3QubWF4WSgpKTsKKworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNDsgaSsr
KSB7CisgICAgICAgIGlmICghZ3V0dGVyUmVjdHNbaV0uaXNFbXB0eSgpKQorICAgICAgICAgICAg
cXVhZExpc3QuYXBwZW5kKENDU29saWRDb2xvckRyYXdRdWFkOjpjcmVhdGUoc2hhcmVkUXVhZFN0
YXRlLCBndXR0ZXJSZWN0c1tpXSwgYmFja2dyb3VuZENvbG9yKCkpKTsKKyAgICB9CiB9CiAKIHZv
aWQgQ0NMYXllckltcGw6OmFwcGVuZERlYnVnQm9yZGVyUXVhZChDQ1F1YWRMaXN0JiBxdWFkTGlz
dCwgY29uc3QgQ0NTaGFyZWRRdWFkU3RhdGUqIHNoYXJlZFF1YWRTdGF0ZSkgY29uc3QKQEAgLTMz
OSw2ICszNzQsMTUgQEAgdm9pZCBDQ0xheWVySW1wbDo6c2V0QmFja2dyb3VuZENvbG9yKGNvbnN0
IENvbG9yJiBiYWNrZ3JvdW5kQ29sb3IpCiAgICAgbV9sYXllclByb3BlcnR5Q2hhbmdlZCA9IHRy
dWU7CiB9CiAKK3ZvaWQgQ0NMYXllckltcGw6OnNldEJhY2tncm91bmRDb3ZlcnNWaWV3cG9ydChi
b29sIGJhY2tncm91bmRDb3ZlcnNWaWV3cG9ydCkKK3sKKyAgICBpZiAobV9iYWNrZ3JvdW5kQ292
ZXJzVmlld3BvcnQgPT0gYmFja2dyb3VuZENvdmVyc1ZpZXdwb3J0KQorICAgICAgICByZXR1cm47
CisKKyAgICBtX2JhY2tncm91bmRDb3ZlcnNWaWV3cG9ydCA9IGJhY2tncm91bmRDb3ZlcnNWaWV3
cG9ydDsKKyAgICBtX2xheWVyUHJvcGVydHlDaGFuZ2VkID0gdHJ1ZTsKK30KKwogdm9pZCBDQ0xh
eWVySW1wbDo6c2V0TWFza3NUb0JvdW5kcyhib29sIG1hc2tzVG9Cb3VuZHMpCiB7CiAgICAgaWYg
KG1fbWFza3NUb0JvdW5kcyA9PSBtYXNrc1RvQm91bmRzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmgKaW5k
ZXggMDEzNmIwMWY4ODhhMTFkYWE5MDFmNjNiZTk5NGYyMjIwNGNlNTU0OC4uMDBlMGFkZjhhNTFm
ZGVjMDRhOWY0MjVmMDQ1N2FhMzM4OGNlYTNhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5oCkBAIC05
Nyw2ICs5Nyw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEJhY2tncm91bmRDb2xvcihjb25zdCBD
b2xvciYpOwogICAgIENvbG9yIGJhY2tncm91bmRDb2xvcigpIGNvbnN0IHsgcmV0dXJuIG1fYmFj
a2dyb3VuZENvbG9yOyB9CiAKKyAgICB2b2lkIHNldEJhY2tncm91bmRDb3ZlcnNWaWV3cG9ydChi
b29sKTsKKyAgICBib29sIGJhY2tncm91bmRDb3ZlcnNWaWV3cG9ydCgpIGNvbnN0IHsgcmV0dXJu
IG1fYmFja2dyb3VuZENvdmVyc1ZpZXdwb3J0OyB9CisKICAgICB2b2lkIHNldE1hc2tzVG9Cb3Vu
ZHMoYm9vbCk7CiAgICAgYm9vbCBtYXNrc1RvQm91bmRzKCkgY29uc3QgeyByZXR1cm4gbV9tYXNr
c1RvQm91bmRzOyB9CiAKQEAgLTIwNCw2ICsyMDcsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgLy8gVHJh
bnNmb3JtYXRpb24gdXNlZCB0byB0cmFuc2Zvcm0gcXVhZHMgcHJvdmlkZWQgaW4gYXBwZW5kUXVh
ZHMuCiAgICAgdmlydHVhbCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBxdWFkVHJhbnNmb3JtKCkgY29u
c3Q7CiAKKyAgICB2b2lkIGFwcGVuZEd1dHRlclF1YWRzKENDUXVhZExpc3QmLCBjb25zdCBDQ1No
YXJlZFF1YWRTdGF0ZSopOworCiBwcml2YXRlOgogICAgIHZvaWQgc2V0UGFyZW50KENDTGF5ZXJJ
bXBsKiBwYXJlbnQpIHsgbV9wYXJlbnQgPSBwYXJlbnQ7IH0KICAgICBmcmllbmQgY2xhc3MgVHJl
ZVN5bmNocm9uaXplcjsKQEAgLTIzMyw2ICsyMzgsNyBAQCBwcml2YXRlOgogICAgIEludFBvaW50
IG1fc2Nyb2xsUG9zaXRpb247CiAgICAgYm9vbCBtX3Njcm9sbGFibGU7CiAgICAgQ29sb3IgbV9i
YWNrZ3JvdW5kQ29sb3I7CisgICAgYm9vbCBtX2JhY2tncm91bmRDb3ZlcnNWaWV3cG9ydDsKIAog
ICAgIC8vIFdoZXRoZXIgdGhlICJiYWNrIiBvZiB0aGlzIGxheWVyIHNob3VsZCBkcmF3LgogICAg
IGJvb2wgbV9kb3VibGVTaWRlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGlsZWRMYXllckltcGwuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaWxlZExheWVySW1wbC5jcHAKaW5k
ZXggNTg0OWVmMWViMGYwYzM0OGI4N2E0OTUxOGE2MWNjNjMzMDVmOTJjYi4uMzQ0ZDc0MjQ1Zjhl
YzFmNWZkYjZjMmNiMjFkY2RiOTFjYWI0OTE4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaWxlZExheWVySW1wbC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaWxlZExheWVy
SW1wbC5jcHAKQEAgLTEyMiw3ICsxMjIsMTIgQEAgdm9pZCBDQ1RpbGVkTGF5ZXJJbXBsOjphcHBl
bmRRdWFkcyhDQ1F1YWRMaXN0JiBxdWFkTGlzdCwgY29uc3QgQ0NTaGFyZWRRdWFkU3RhdGUKIHsK
ICAgICBjb25zdCBJbnRSZWN0JiBsYXllclJlY3QgPSB2aXNpYmxlTGF5ZXJSZWN0KCk7CiAKLSAg
ICBpZiAobV9za2lwc0RyYXcgfHwgIW1fdGlsZXIgfHwgbV90aWxlci0+aXNFbXB0eSgpIHx8IGxh
eWVyUmVjdC5pc0VtcHR5KCkpCisgICAgaWYgKG1fc2tpcHNEcmF3KQorICAgICAgICByZXR1cm47
CisKKyAgICBhcHBlbmRHdXR0ZXJRdWFkcyhxdWFkTGlzdCwgc2hhcmVkUXVhZFN0YXRlKTsKKwor
ICAgIGlmICghbV90aWxlciB8fCBtX3RpbGVyLT5pc0VtcHR5KCkgfHwgbGF5ZXJSZWN0LmlzRW1w
dHkoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaW50IGxlZnQsIHRvcCwgcmlnaHQsIGJvdHRv
bTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL05vbkNvbXBvc2l0ZWRD
b250ZW50SG9zdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Ob25Db21wb3NpdGVk
Q29udGVudEhvc3QuY3BwCmluZGV4IGVkZjFkYTdhMzU4NTZjNzRhNDExM2NlOTkxNWI1ZTFhOTdi
ZmNkMzAuLmQzZTAyODA2NjFhM2JmOWU4MTM1OTQwZmE1YzhlZmQ2NDkwYjNiNmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvTm9uQ29tcG9zaXRlZENvbnRlbnRI
b3N0LmNwcApAQCAtNDUsNiArNDUsNyBAQCBOb25Db21wb3NpdGVkQ29udGVudEhvc3Q6Ok5vbkNv
bXBvc2l0ZWRDb250ZW50SG9zdChQYXNzT3duUHRyPFdlYkNvcmU6OkxheWVyUGFpbgogI2VuZGlm
CiAgICAgbV9ncmFwaGljc0xheWVyLT5zZXREcmF3c0NvbnRlbnQodHJ1ZSk7CiAgICAgbV9ncmFw
aGljc0xheWVyLT5wbGF0Zm9ybUxheWVyKCktPnNldElzTm9uQ29tcG9zaXRlZENvbnRlbnQodHJ1
ZSk7CisgICAgbV9ncmFwaGljc0xheWVyLT5wbGF0Zm9ybUxheWVyKCktPnNldEJhY2tncm91bmRD
b3ZlcnNWaWV3cG9ydCh0cnVlKTsKICAgICBtX2dyYXBoaWNzTGF5ZXItPnBsYXRmb3JtTGF5ZXIo
KS0+c2V0T3BhcXVlKHRydWUpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL0NDTGF5ZXJJbXBsVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL0NDTGF5ZXJJbXBsVGVzdC5jcHAKaW5kZXggMTY1NDA1ZDQ5MTA3NjdiOTY2MzNlOTdmNjRk
NzBlYjI3MzdjYThjNy4uMjc3MjhjYmVmMGUzYjMxODc5M2QwZGRjMTBmYzM3YWQ2MGYxN2Q3ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVySW1wbFRlc3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllckltcGxUZXN0LmNw
cApAQCAtMTEyLDYgKzExMiw3IEBAIFRFU1QoQ0NMYXllckltcGxUZXN0LCB2ZXJpZnlMYXllckNo
YW5nZXNBcmVUcmFja2VkUHJvcGVybHkpCiAgICAgRVhFQ1VURV9BTkRfVkVSSUZZX09OTFlfTEFZ
RVJfQ0hBTkdFRChyb290LT5zZXREZWJ1Z0JvcmRlcldpZHRoKGFyYml0cmFyeU51bWJlcikpOwog
ICAgIEVYRUNVVEVfQU5EX1ZFUklGWV9PTkxZX0xBWUVSX0NIQU5HRUQocm9vdC0+c2V0RHJhd3ND
b250ZW50KHRydWUpKTsKICAgICBFWEVDVVRFX0FORF9WRVJJRllfT05MWV9MQVlFUl9DSEFOR0VE
KHJvb3QtPnNldEJhY2tncm91bmRDb2xvcihDb2xvcjo6Z3JheSkpOworICAgIEVYRUNVVEVfQU5E
X1ZFUklGWV9PTkxZX0xBWUVSX0NIQU5HRUQocm9vdC0+c2V0QmFja2dyb3VuZENvdmVyc1ZpZXdw
b3J0KHRydWUpKTsKIAogICAgIC8vIFNwZWNpYWwgY2FzZTogY2hlY2sgdGhhdCBzdWJsYXllciB0
cmFuc2Zvcm0gY2hhbmdlcyBhbGwgbGF5ZXIncyBkZXNjZW5kYW50cywgYnV0IG5vdCB0aGUgbGF5
ZXIgaXRzZWxmLgogICAgIHJvb3QtPnJlc2V0QWxsQ2hhbmdlVHJhY2tpbmdGb3JTdWJ0cmVlKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDVGlsZWRMYXllcklt
cGxUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NUaWxlZExheWVySW1w
bFRlc3QuY3BwCmluZGV4IGEyZWVhOTQ0MGM0M2MzM2MzOGU0OTZlMzc4YmRjN2MzMzEyZTgzZjMu
LjU1NDYwMzdhZGEyY2NiZjE5ZWRlMDFlNjNjZGI3OTY5NzRkZmMyYTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NUaWxlZExheWVySW1wbFRlc3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NUaWxlZExheWVySW1wbFRlc3QuY3BwCkBA
IC0yNTIsNSArMjUyLDczIEBAIFRFU1QoQ0NUaWxlZExheWVySW1wbFRlc3QsIHRleHR1cmVJbmZv
Rm9yTGF5ZXJOb0JvcmRlcnMpCiAgICAgfQogfQogCitURVNUKENDVGlsZWRMYXllckltcGxUZXN0
LCBiYWNrZ3JvdW5kQ292ZXJzVmlld3BvcnQpCit7CisgICAgRGVidWdTY29wZWRTZXRJbXBsVGhy
ZWFkIHNjb3BlZEltcGxUaHJlYWQ7CisKKyAgICBjb25zdCBJbnRTaXplIHRpbGVTaXplKDEwLCAx
MCk7CisgICAgY29uc3QgaW50IG51bVRpbGVzWCA9IDI7CisgICAgY29uc3QgaW50IG51bVRpbGVz
WSA9IDI7CisgICAgY29uc3QgdW5zaWduZWQgbnVtVGlsZXMgPSBudW1UaWxlc1ggKiBudW1UaWxl
c1k7CisgICAgY29uc3QgSW50U2l6ZSBsYXllclNpemUodGlsZVNpemUud2lkdGgoKSAqIG51bVRp
bGVzWCwgdGlsZVNpemUuaGVpZ2h0KCkgKiBudW1UaWxlc1kpOworICAgIFJlZlB0cjxDQ1RpbGVk
TGF5ZXJJbXBsPiBsYXllciA9IGNyZWF0ZUxheWVyKHRpbGVTaXplLCBsYXllclNpemUsIENDTGF5
ZXJUaWxpbmdEYXRhOjpOb0JvcmRlclRleGVscyk7CisgICAgbGF5ZXItPnNldEJhY2tncm91bmRD
b2xvcihDb2xvcjo6Z3JheSk7CisgICAgbGF5ZXItPnNldEJhY2tncm91bmRDb3ZlcnNWaWV3cG9y
dCh0cnVlKTsKKworICAgIC8vIE5vIGd1dHRlciByZWN0cworICAgIHsKKyAgICAgICAgSW50UmVj
dCBjbGlwUmVjdCA9IEludFJlY3QoSW50UG9pbnQoKSwgbGF5ZXJTaXplKTsKKyAgICAgICAgbGF5
ZXItPnNldENsaXBSZWN0KGNsaXBSZWN0KTsKKyAgICAgICAgbGF5ZXItPnNldFZpc2libGVMYXll
clJlY3QoSW50UmVjdChJbnRQb2ludCgpLCBsYXllclNpemUpKTsKKworICAgICAgICBPd25QdHI8
Q0NTaGFyZWRRdWFkU3RhdGU+IHNoYXJlZFF1YWRTdGF0ZSA9IGxheWVyLT5jcmVhdGVTaGFyZWRR
dWFkU3RhdGUoKTsKKworICAgICAgICBDQ1F1YWRMaXN0IHF1YWRzOworICAgICAgICBsYXllci0+
YXBwZW5kUXVhZHMocXVhZHMsIHNoYXJlZFF1YWRTdGF0ZS5nZXQoKSk7CisgICAgICAgIEVYUEVD
VF9FUShxdWFkcy5zaXplKCksIG51bVRpbGVzKTsKKworICAgICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IHF1YWRzLnNpemUoKTsgKytpKQorICAgICAgICAgICAgRVhQRUNUX0VRKHF1YWRzW2ld
LT5tYXRlcmlhbCgpLCBDQ0RyYXdRdWFkOjpUaWxlZENvbnRlbnQpOworICAgIH0KKworICAgIC8v
IEVtcHR5IHZpc2libGUgY29udGVudCBhcmVhIChmdWxsc2NyZWVuIGd1dHRlciByZWN0KQorICAg
IHsKKyAgICAgICAgSW50UmVjdCBjbGlwUmVjdCA9IEludFJlY3QoMTAwLCAxMDAsIDEwMCwgMTAw
KTsKKyAgICAgICAgbGF5ZXItPnNldENsaXBSZWN0KGNsaXBSZWN0KTsKKyAgICAgICAgbGF5ZXIt
PnNldFZpc2libGVMYXllclJlY3QoSW50UmVjdCgpKTsKKworICAgICAgICBPd25QdHI8Q0NTaGFy
ZWRRdWFkU3RhdGU+IHNoYXJlZFF1YWRTdGF0ZSA9IGxheWVyLT5jcmVhdGVTaGFyZWRRdWFkU3Rh
dGUoKTsKKyAgICAgICAgQ0NRdWFkTGlzdCBxdWFkczsKKyAgICAgICAgbGF5ZXItPmFwcGVuZFF1
YWRzKHF1YWRzLCBzaGFyZWRRdWFkU3RhdGUuZ2V0KCkpOworCisgICAgICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgcXVhZHMuc2l6ZSgpOyArK2kpCisgICAgICAgICAgICBFWFBFQ1RfRVEocXVh
ZHNbaV0tPm1hdGVyaWFsKCksIENDRHJhd1F1YWQ6OlNvbGlkQ29sb3IpOworCisgICAgICAgIHZl
cmlmeVF1YWRzRXhhY3RseUNvdmVyUmVjdChxdWFkcywgY2xpcFJlY3QpOworICAgIH0KKworICAg
IC8vIENvbnRlbnQgYXJlYSBpbiBtaWRkbGUgb2YgY2xpcCByZWN0IChmb3VyIHN1cnJvdW5kaW5n
IGd1dHRlciByZWN0cykKKyAgICB7CisgICAgICAgIEludFJlY3QgY2xpcFJlY3QgPSBJbnRSZWN0
KC01MCwgLTUwLCAxMDAsIDEwMCk7CisgICAgICAgIGxheWVyLT5zZXRDbGlwUmVjdChjbGlwUmVj
dCk7CisgICAgICAgIGxheWVyLT5zZXRWaXNpYmxlTGF5ZXJSZWN0KEludFJlY3QoSW50UG9pbnQo
KSwgbGF5ZXJTaXplKSk7CisKKyAgICAgICAgT3duUHRyPENDU2hhcmVkUXVhZFN0YXRlPiBzaGFy
ZWRRdWFkU3RhdGUgPSBsYXllci0+Y3JlYXRlU2hhcmVkUXVhZFN0YXRlKCk7CisgICAgICAgIEND
UXVhZExpc3QgcXVhZHM7CisgICAgICAgIGxheWVyLT5hcHBlbmRRdWFkcyhxdWFkcywgc2hhcmVk
UXVhZFN0YXRlLmdldCgpKTsKKworICAgICAgICB1bnNpZ25lZCBudW1Db250ZW50VGlsZXMgPSAw
LCBudW1HdXR0ZXJUaWxlcyA9IDA7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcXVh
ZHMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChxdWFkc1tpXS0+bWF0ZXJpYWwoKSA9
PSBDQ0RyYXdRdWFkOjpUaWxlZENvbnRlbnQpCisgICAgICAgICAgICAgICAgbnVtQ29udGVudFRp
bGVzKys7CisgICAgICAgICAgICBlbHNlIGlmIChxdWFkc1tpXS0+bWF0ZXJpYWwoKSA9PSBDQ0Ry
YXdRdWFkOjpTb2xpZENvbG9yKQorICAgICAgICAgICAgICAgIG51bUd1dHRlclRpbGVzKys7Cisg
ICAgICAgIH0KKyAgICAgICAgRVhQRUNUX0VRKG51bUNvbnRlbnRUaWxlcywgbnVtVGlsZXMpOwor
ICAgICAgICBFWFBFQ1RfR0UobnVtR3V0dGVyVGlsZXMsIDR1KTsKKworICAgICAgICB2ZXJpZnlR
dWFkc0V4YWN0bHlDb3ZlclJlY3QocXVhZHMsIGNsaXBSZWN0KTsKKyAgICB9Cit9CiAKIH0gLy8g
bmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0xheWVy
Q2hyb21pdW1UZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTGF5ZXJDaHJv
bWl1bVRlc3QuY3BwCmluZGV4IGJjMjdjNDMyOTk2N2NhYWM2ODFiMzUwZGEwYmEyNDc1MWM3YjJj
N2MuLmM1NDhhMDcxZTYwMmI3MGI4ZDVkMDc2ZDgwZjljOGFlYzljNWNmNzMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCkBAIC01
MzYsNiArNTM2LDcgQEAgVEVTVF9GKExheWVyQ2hyb21pdW1UZXN0LCBjaGVja1Byb3BlcnR5Q2hh
bmdlQ2F1c2VzQ29ycmVjdEJlaGF2aW9yKQogICAgIEVYRUNVVEVfQU5EX1ZFUklGWV9TRVRfTkVF
RFNfQ09NTUlUX0JFSEFWSU9SKDEsIHRlc3RMYXllci0+c2V0QW5jaG9yUG9pbnQoRmxvYXRQb2lu
dCgxLjIzZiwgNC41NmYpKSk7CiAgICAgRVhFQ1VURV9BTkRfVkVSSUZZX1NFVF9ORUVEU19DT01N
SVRfQkVIQVZJT1IoMSwgdGVzdExheWVyLT5zZXRBbmNob3JQb2ludFooMC43ZikpOwogICAgIEVY
RUNVVEVfQU5EX1ZFUklGWV9TRVRfTkVFRFNfQ09NTUlUX0JFSEFWSU9SKDEsIHRlc3RMYXllci0+
c2V0QmFja2dyb3VuZENvbG9yKENvbG9yKDAuNGYsIDAuNGYsIDAuNGYpKSk7CisgICAgRVhFQ1VU
RV9BTkRfVkVSSUZZX1NFVF9ORUVEU19DT01NSVRfQkVIQVZJT1IoMSwgdGVzdExheWVyLT5zZXRC
YWNrZ3JvdW5kQ292ZXJzVmlld3BvcnQodHJ1ZSkpOwogICAgIEVYRUNVVEVfQU5EX1ZFUklGWV9T
RVRfTkVFRFNfQ09NTUlUX0JFSEFWSU9SKDEsIHRlc3RMYXllci0+c2V0TWFza3NUb0JvdW5kcyh0
cnVlKSk7CiAgICAgRVhFQ1VURV9BTkRfVkVSSUZZX1NFVF9ORUVEU19DT01NSVRfQkVIQVZJT1Io
MSwgdGVzdExheWVyLT5zZXRNYXNrTGF5ZXIoZHVtbXlMYXllci5nZXQoKSkpOwogICAgIEVYRUNV
VEVfQU5EX1ZFUklGWV9TRVRfTkVFRFNfQ09NTUlUX0JFSEFWSU9SKDEsIHRlc3RMYXllci0+c2V0
T3BhY2l0eSgwLjVmKSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>