<?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>73270</bug_id>
          
          <creation_ts>2011-11-28 17:16:33 -0800</creation_ts>
          <short_desc>[Chromium] Early returns in calculateDrawTransformsAndVisibilityInternal() can leave layers with stale render surfaces</short_desc>
          <delta_ts>2011-12-01 13:45:15 -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="Daniel Sievers">sievers</reporter>
          <assigned_to name="Daniel Sievers">sievers</assigned_to>
          <cc>cc-bugs</cc>
    
    <cc>enne</cc>
    
    <cc>jamesr</cc>
    
    <cc>vangelis</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>510352</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Sievers">sievers</who>
    <bug_when>2011-11-28 17:16:33 -0800</bug_when>
    <thetext>[Chromium] Early returns in calculateDrawTransformsAndVisibilityInternal() can leave layers with stale render surfaces</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510353</commentid>
    <comment_count>1</comment_count>
      <attachid>116855</attachid>
    <who name="Daniel Sievers">sievers</who>
    <bug_when>2011-11-28 17:16:59 -0800</bug_when>
    <thetext>Created attachment 116855
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510364</commentid>
    <comment_count>2</comment_count>
    <who name="Daniel Sievers">sievers</who>
    <bug_when>2011-11-28 17:37:05 -0800</bug_when>
    <thetext>Note that the first EXPECT_EQ() actually currently passes.

EXPECT_EQ(renderSurfaceLayerList.size(), 0U);
ASSERT_FALSE(renderSurface1-&gt;renderSurface());

However, the layer still has a stale render surface even if it might end up being drawn onto another render surface now (i.e. root layer).

The texture residency logic seems to not really like this. We might assert that the texture is currently not protected early on (even if there is nothing to draw), because we expect any referenced render surfaces to have been processed before as part of the same frame.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510847</commentid>
    <comment_count>3</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2011-11-29 09:16:37 -0800</bug_when>
    <thetext>Isn&apos;t the problem that renderSurface1 appears in a layer list but doesn&apos;t appear in the render surface list? That seems to me like the invariant that this test should be testing.

I don&apos;t know that we&apos;re always going to clear render surfaces from every layer.  For instance, we skip entire layer subtrees if we know that they&apos;re not going to get drawn.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511125</commentid>
    <comment_count>4</comment_count>
    <who name="Daniel Sievers">sievers</who>
    <bug_when>2011-11-29 14:49:18 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Isn&apos;t the problem that renderSurface1 appears in a layer list but doesn&apos;t appear in the render surface list? That seems to me like the invariant that this test should be testing.
&gt; 

Are you talking about the test in general or just the concluding checks?
I guess the test shows one case (for the !drawOpacity early-return) that is currently broken. When making the layer transparent the scenario you describe is the case...

&gt; I don&apos;t know that we&apos;re always going to clear render surfaces from every layer.  For instance, we skip entire layer subtrees if we know that they&apos;re not going to get drawn.

...so should I change it to something like:

    // After the second pass and having made the layer fully transparent, we expect the
    // intermediate render surface to have been removed. The layer should now be drawn onto
    // the root render surface. It&apos;s important that a given render surface&apos;s layer list does
    // not reference other render surfaces which are not part of renderSurfaceLayerList for
    // the current frame (as the content texture residency logic relies on it).
    EXPECT_EQ(parent-&gt;renderSurface()-&gt;layerList().size(), 1U);
    EXPECT_EQ(parent-&gt;renderSurface()-&gt;layerList()[0].get(), renderSurface1.get());
    EXPECT_EQ(renderSurfaceLayerList.size(), 0U);
    EXPECT_NE(renderSurface1-&gt;renderSurface(), surface);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511126</commentid>
    <comment_count>5</comment_count>
    <who name="Daniel Sievers">sievers</who>
    <bug_when>2011-11-29 14:50:14 -0800</bug_when>
    <thetext>
&gt;     EXPECT_NE(renderSurface1-&gt;renderSurface(), surface);

surface being the old value of the initial extra render surface created for the layer before.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511207</commentid>
    <comment_count>6</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2011-11-29 16:38:16 -0800</bug_when>
    <thetext>&gt;     EXPECT_EQ(parent-&gt;renderSurface()-&gt;layerList().size(), 1U);
&gt;     EXPECT_EQ(parent-&gt;renderSurface()-&gt;layerList()[0].get(), renderSurface1.get());
&gt;     EXPECT_EQ(renderSurfaceLayerList.size(), 0U);
&gt;     EXPECT_NE(renderSurface1-&gt;renderSurface(), surface);

What you wrote above is what I would expect from the current code.

&gt; EXPECT_EQ(parent-&gt;renderSurface()-&gt;layerList().size(), 0);
&gt; EXPECT_EQ(renderSurfaceLayerList.size(), 0);

This is what I would expect if the code were correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512331</commentid>
    <comment_count>7</comment_count>
      <attachid>117309</attachid>
    <who name="Daniel Sievers">sievers</who>
    <bug_when>2011-11-30 18:50:18 -0800</bug_when>
    <thetext>Created attachment 117309
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512333</commentid>
    <comment_count>8</comment_count>
      <attachid>117310</attachid>
    <who name="Daniel Sievers">sievers</who>
    <bug_when>2011-11-30 18:52:21 -0800</bug_when>
    <thetext>Created attachment 117310
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512342</commentid>
    <comment_count>9</comment_count>
      <attachid>117309</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2011-11-30 19:03:11 -0800</bug_when>
    <thetext>Comment on attachment 117309
Patch

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

&gt; Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:368
&gt; +        if (drawsContent) {

This is great.  It looks like this also fixes a bug where layers that don&apos;t get drawn were still influencing the drawable content rect size.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512509</commentid>
    <comment_count>10</comment_count>
      <attachid>117310</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-30 23:03:20 -0800</bug_when>
    <thetext>Comment on attachment 117310
Patch

Rejecting attachment 117310 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
ng file Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp
Hunk #4 FAILED at 389.
Hunk #5 succeeded at 454 (offset -2 lines).
1 out of 5 hunks FAILED -- saving rejects to file Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp.rej
patching file Source/WebKit/chromium/tests/CCLayerTreeHostCommonTest.cpp
Hunk #1 succeeded at 481 with fuzz 1 (offset 29 lines).

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--force&apos;]&quot; exit_code: 1

Full output: http://queues.webkit.org/results/10687517</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512510</commentid>
    <comment_count>11</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-30 23:07:19 -0800</bug_when>
    <thetext>Can you rebase this patch to ToT, Daniel?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512601</commentid>
    <comment_count>12</comment_count>
      <attachid>117375</attachid>
    <who name="Daniel Sievers">sievers</who>
    <bug_when>2011-12-01 01:03:41 -0800</bug_when>
    <thetext>Created attachment 117375
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512603</commentid>
    <comment_count>13</comment_count>
    <who name="Daniel Sievers">sievers</who>
    <bug_when>2011-12-01 01:05:23 -0800</bug_when>
    <thetext>Done. I&apos;ve also added this check to the unit test to make sure we don&apos;t expand the parent&apos;s drawable content rect from the children that are not drawing:

EXPECT_EQ(parent-&gt;drawableContentRect(), IntRect());

(In reply to comment #11)
&gt; Can you rebase this patch to ToT, Daniel?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513062</commentid>
    <comment_count>14</comment_count>
      <attachid>117375</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-01 13:45:10 -0800</bug_when>
    <thetext>Comment on attachment 117375
Patch

Clearing flags on attachment: 117375

Committed r101702: &lt;http://trac.webkit.org/changeset/101702&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513063</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-01 13:45:15 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116855</attachid>
            <date>2011-11-28 17:16:59 -0800</date>
            <delta_ts>2011-11-30 18:50:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73270-20111128171658.patch</filename>
            <type>text/plain</type>
            <size>3626</size>
            <attacher name="Daniel Sievers">sievers</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxMzAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGY1M2VlYWJjN2FjMGUwYmRhOWQxYWVhNjViNDMxNTI0ZTZjZTA3MWQuLmVhYWVjOWUyY2JjMWZj
ZjIyMDhkZjBiMGI4OTEzMGNiMjVjMjc2YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMTEtMTEtMjggIERhbmllbCBTaWV2ZXJzICA8c2lldmVyc0BjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtXSBFYXJseSByZXR1cm5zIGluIGNhbGN1bGF0
ZURyYXdUcmFuc2Zvcm1zQW5kVmlzaWJpbGl0eUludGVybmFsKCkgY2FuIGxlYXZlIGxheWVycyB3
aXRoIHN0YWxlIHJlbmRlciBzdXJmYWNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NzMyNzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIHRlc3RzL0NDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6VEVTVCk6CisKIDIwMTEtMTEtMjggIERhbmEgSmFuc2VucyAgPGRh
bmFrakBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgRmxvYXRRdWFkOjppc1JlY3RpbGluZWFyKCkg
cmV0dXJucyBmYWxzZSBmb3IgMTgwZGVncmVlIHJvdGF0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdC5jcHAK
aW5kZXggYzlhMmZjNjUxMzI1NjZiNDI2M2EwMDY4OGY1N2MzZjUyN2IxNjFiMi4uN2UzNDFiYmM5
NGQ2NTU1YmVlNDhhZjIyNGMzNDlkNTgxMzcwODFhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QuY3BwCkBA
IC00NzIsNiArNDcyLDQ0IEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5
VHJhbnNmb3Jtc0ZvclJlbmRlclN1cmZhY2VIaWVyYXJjaHkpCiAgICAgRVhQRUNUX0ZMT0FUX0VR
KDUuMCwgZ3JhbmRDaGlsZE9mUlMyLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpLm00MigpKTsKIH0K
IAorVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlSZW5kZXJTdXJmYWNlTGlz
dEZvckxheWVyQ2hhbmdpbmdUcmFuc3BhcmVuY3kpCit7CisgICAgUmVmUHRyPExheWVyQ2hyb21p
dW0+IHBhcmVudCA9IExheWVyQ2hyb21pdW06OmNyZWF0ZSgwKTsKKyAgICBSZWZQdHI8TGF5ZXJD
aHJvbWl1bT4gcmVuZGVyU3VyZmFjZTEgPSBMYXllckNocm9taXVtOjpjcmVhdGUoMCk7CisgICAg
UmVmUHRyPExheWVyQ2hyb21pdW1XaXRoRm9yY2VkRHJhd3NDb250ZW50PiBjaGlsZCA9IGFkb3B0
UmVmKG5ldyBMYXllckNocm9taXVtV2l0aEZvcmNlZERyYXdzQ29udGVudCgwKSk7CisgICAgcmVu
ZGVyU3VyZmFjZTEtPnNldE9wYWNpdHkoMC45Zik7CisKKyAgICBjb25zdCBUcmFuc2Zvcm1hdGlv
bk1hdHJpeCBpZGVudGl0eU1hdHJpeDsKKyAgICBzZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5n
KHJlbmRlclN1cmZhY2UxLmdldCgpLCBpZGVudGl0eU1hdHJpeCwgaWRlbnRpdHlNYXRyaXgsIEZs
b2F0UG9pbnQoMC4wZiwgMC4wZiksIEZsb2F0UG9pbnQoMC4wZiwgMC4wZiksIEludFNpemUoMTAs
IDEwKSwgZmFsc2UpOworICAgIHNldExheWVyUHJvcGVydGllc0ZvclRlc3RpbmcoY2hpbGQuZ2V0
KCksIGlkZW50aXR5TWF0cml4LCBpZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgwLjBmLCAwLjBm
KSwgRmxvYXRQb2ludCgwLjBmLCAwLjBmKSwgSW50U2l6ZSgxMCwgMTApLCBmYWxzZSk7CisKKyAg
ICBwYXJlbnQtPmNyZWF0ZVJlbmRlclN1cmZhY2UoKTsKKyAgICBwYXJlbnQtPmFkZENoaWxkKHJl
bmRlclN1cmZhY2UxKTsKKyAgICByZW5kZXJTdXJmYWNlMS0+Y3JlYXRlUmVuZGVyU3VyZmFjZSgp
OworICAgIHJlbmRlclN1cmZhY2UxLT5hZGRDaGlsZChjaGlsZCk7CisKKyAgICBWZWN0b3I8UmVm
UHRyPExheWVyQ2hyb21pdW0+ID4gcmVuZGVyU3VyZmFjZUxheWVyTGlzdDsKKyAgICBWZWN0b3I8
UmVmUHRyPExheWVyQ2hyb21pdW0+ID4gZHVtbXlMYXllckxpc3Q7CisgICAgaW50IGR1bW15TWF4
VGV4dHVyZVNpemUgPSA1MTI7CisgICAgQ0NMYXllclRyZWVIb3N0Q29tbW9uOjpjYWxjdWxhdGVE
cmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxpdHkocGFyZW50LmdldCgpLCBwYXJlbnQuZ2V0KCksIGlk
ZW50aXR5TWF0cml4LCBpZGVudGl0eU1hdHJpeCwgcmVuZGVyU3VyZmFjZUxheWVyTGlzdCwgZHVt
bXlMYXllckxpc3QsIGR1bW15TWF4VGV4dHVyZVNpemUpOworCisgICAgQVNTRVJUX1RSVUUocmVu
ZGVyU3VyZmFjZTEtPnJlbmRlclN1cmZhY2UoKSk7CisKKyAgICByZW5kZXJTdXJmYWNlMS0+c2V0
T3BhY2l0eSgwLjBmKTsKKyAgICBkdW1teUxheWVyTGlzdC5jbGVhcigpOworICAgIHJlbmRlclN1
cmZhY2VMYXllckxpc3QuY2xlYXIoKTsKKyAgICBDQ0xheWVyVHJlZUhvc3RDb21tb246OmNhbGN1
bGF0ZURyYXdUcmFuc2Zvcm1zQW5kVmlzaWJpbGl0eShwYXJlbnQuZ2V0KCksIHBhcmVudC5nZXQo
KSwgaWRlbnRpdHlNYXRyaXgsIGlkZW50aXR5TWF0cml4LCByZW5kZXJTdXJmYWNlTGF5ZXJMaXN0
LCBkdW1teUxheWVyTGlzdCwgZHVtbXlNYXhUZXh0dXJlU2l6ZSk7CisKKyAgICAvLyBBZnRlciB0
aGUgc2Vjb25kIHBhc3MgYW5kIGhhdmluZyBtYWRlIHRoZSBsYXllciBmdWxseSB0cmFuc3BhcmVu
dCwgd2UgZXhwZWN0IHRoZQorICAgIC8vIGludGVybWVkaWF0ZSByZW5kZXIgc3VyZmFjZSB0byBo
YXZlIGJlZW4gcmVtb3ZlZC4gV2UgYWxzbyBleHBlY3QgdGhlIHJlbmRlciBzdXJmYWNlCisgICAg
Ly8gZm9yIHRoZSBsYXllciB0byBoYXZlIGJlZW4gcmVzZXQuIFRoZSBjb25zaXN0ZW5jeSBiZXR3
ZWVuIHRoZSB0d28gaXMgaW1wb3J0YW50CisgICAgLy8gYXMgd2hlbiBkcmF3aW5nIGEgZnJhbWUg
b3VyIHRleHR1cmUgcmVzaWRlbmN5IGxvZ2ljIGRlcGVuZHMgb24gc3VyZmFjZXMgYmVpbmcgcHJl
c2VudAorICAgIC8vIGluIHRoZSByZW5kZXIgc3VyZmFjZSBsaXN0IGlmIHRoZXkgYXJlIHJlZmVy
ZW5jZWQgZnJvbSBhIGxheWVyIHByZXNlbnQgaW4gYW5vdGhlciBzdXJmYWNlJ3MKKyAgICAvLyBs
aXN0LgorICAgIEVYUEVDVF9FUShyZW5kZXJTdXJmYWNlTGF5ZXJMaXN0LnNpemUoKSwgMFUpOwor
ICAgIEFTU0VSVF9GQUxTRShyZW5kZXJTdXJmYWNlMS0+cmVuZGVyU3VyZmFjZSgpKTsKK30KKwog
Ly8gRklYTUU6CiAvLyBjb250aW51ZSB3b3JraW5nIG9uIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD02ODk0MgogLy8gIC0gYWRkIGEgdGVzdCB0byB2ZXJpZnkgY2xpcHBp
bmcgdGhhdCBjaGFuZ2VzIHRoZSAiY2VudGVyIHBvaW50Igo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117309</attachid>
            <date>2011-11-30 18:50:18 -0800</date>
            <delta_ts>2011-11-30 19:03:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73270-20111130185017.patch</filename>
            <type>text/plain</type>
            <size>8589</size>
            <attacher name="Daniel Sievers">sievers</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxNDIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDJjZGExZTlkZmZkOGNi
ZDU1OTA4MDA4NWE5ODg0NDAxNTU1ZDViMi4uOTdhZWM1YmZjODEyZGQ0YTAwMjkwYzk5ZTgwMjVi
MDkyMzdlNjA3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDExLTExLTMwICBEYW5p
ZWwgU2lldmVycyAgPHNpZXZlcnNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0g
RWFybHkgcmV0dXJucyBpbiBjYWxjdWxhdGVEcmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxpdHlJbnRl
cm5hbCgpIGNhbiBsZWF2ZSBsYXllcnMgd2l0aCBzdGFsZSByZW5kZXIgc3VyZmFjZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczMjcwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgSmFtZXMgUm9iaW5zb24uCisKKyAgICAgICAgQWRkZWQgdW5pdCB0ZXN0
LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVI
b3N0Q29tbW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNhbGN1bGF0ZURyYXdUcmFuc2Zvcm1z
QW5kVmlzaWJpbGl0eUludGVybmFsKToKKwogMjAxMS0xMS0yOSAgRXJpayBBcnZpZHNzb24gIDxh
cnZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBbQ2xhc3NNZXRob2Rd
IHRvIENvZGVHZW5lcmF0b3JKUy5wbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA5ZGZj
YWJlZTdmZWNhMzg5MzI0YzE5Mjg1ODdhYTExYzNkYjU2MmMzLi4zYjRjZDU2ZTQzZTQyNjU3ZmRj
MmZkYmMwNmUyOGZiZjkxMDMwYTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEzIEBACisyMDExLTExLTMwICBEYW5pZWwgU2lldmVycyAgPHNpZXZlcnNAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gRWFybHkgcmV0dXJucyBpbiBjYWxjdWxhdGVEcmF3
VHJhbnNmb3Jtc0FuZFZpc2liaWxpdHlJbnRlcm5hbCgpIGNhbiBsZWF2ZSBsYXllcnMgd2l0aCBz
dGFsZSByZW5kZXIgc3VyZmFjZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTczMjcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSmFtZXMgUm9iaW5zb24u
CisKKyAgICAgICAgKiB0ZXN0cy9DQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlRFU1QpOgorCiAyMDExLTExLTI4ICBBZGFtIEtsZWluICA8YWRhbWtAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6
ZGVsaXZlckFsbE11dGF0aW9ucyBzaG91bGQgYmUgZXhwb3NlZCB0aHJvdWdoIHRoZSBDaHJvbWl1
bSBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDTGF5ZXJUcmVlSG9zdENvbW1vbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RDb21tb24uY3BwCmluZGV4IDYy
NjM2OGY4MWU3Yzk5OTVhMjEzZjViYWM3OTY2YjlkODI1NmNkOTQuLjBmZjY5NzdiZWIwYzU3Mjdk
MWZjNTIyNmMxZDE3ODNjMDdjMWY2OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdENvbW1vbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVI
b3N0Q29tbW9uLmNwcApAQCAtMTA2LDcgKzEwNiw3IEBAIGJvb2wgbGF5ZXJTaG91bGRCZVNraXBw
ZWQoTGF5ZXJUeXBlKiBsYXllcikKIC8vIFJlY3Vyc2l2ZWx5IHdhbGtzIHRoZSBsYXllciB0cmVl
IHN0YXJ0aW5nIGF0IHRoZSBnaXZlbiBub2RlIGFuZCBjb21wdXRlcyBhbGwgdGhlCiAvLyBuZWNl
c3NhcnkgdHJhbnNmb3JtYXRpb25zLCBjbGlwUmVjdHMsIHJlbmRlciBzdXJmYWNlcywgZXRjLgog
dGVtcGxhdGU8dHlwZW5hbWUgTGF5ZXJUeXBlLCB0eXBlbmFtZSBSZW5kZXJTdXJmYWNlVHlwZSwg
dHlwZW5hbWUgTGF5ZXJTb3J0ZXI+Ci1zdGF0aWMgdm9pZCBjYWxjdWxhdGVEcmF3VHJhbnNmb3Jt
c0FuZFZpc2liaWxpdHlJbnRlcm5hbChMYXllclR5cGUqIGxheWVyLCBMYXllclR5cGUqIHJvb3RM
YXllciwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHBhcmVudE1hdHJpeCwgY29uc3QgVHJh
bnNmb3JtYXRpb25NYXRyaXgmIGZ1bGxIaWVyYXJjaHlNYXRyaXgsIFZlY3RvcjxSZWZQdHI8TGF5
ZXJUeXBlPiA+JiByZW5kZXJTdXJmYWNlTGF5ZXJMaXN0LCBWZWN0b3I8UmVmUHRyPExheWVyVHlw
ZT4gPiYgbGF5ZXJMaXN0LCBMYXllclNvcnRlciogbGF5ZXJTb3J0ZXIsIGludCBtYXhUZXh0dXJl
U2l6ZSkKK3N0YXRpYyBib29sIGNhbGN1bGF0ZURyYXdUcmFuc2Zvcm1zQW5kVmlzaWJpbGl0eUlu
dGVybmFsKExheWVyVHlwZSogbGF5ZXIsIExheWVyVHlwZSogcm9vdExheWVyLCBjb25zdCBUcmFu
c2Zvcm1hdGlvbk1hdHJpeCYgcGFyZW50TWF0cml4LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJp
eCYgZnVsbEhpZXJhcmNoeU1hdHJpeCwgVmVjdG9yPFJlZlB0cjxMYXllclR5cGU+ID4mIHJlbmRl
clN1cmZhY2VMYXllckxpc3QsIFZlY3RvcjxSZWZQdHI8TGF5ZXJUeXBlPiA+JiBsYXllckxpc3Qs
IExheWVyU29ydGVyKiBsYXllclNvcnRlciwgaW50IG1heFRleHR1cmVTaXplKQogewogICAgIHR5
cGVkZWYgVmVjdG9yPFJlZlB0cjxMYXllclR5cGU+ID4gTGF5ZXJMaXN0OwogCkBAIC0xOTUsNyAr
MTk1LDcgQEAgc3RhdGljIHZvaWQgY2FsY3VsYXRlRHJhd1RyYW5zZm9ybXNBbmRWaXNpYmlsaXR5
SW50ZXJuYWwoTGF5ZXJUeXBlKiBsYXllciwgTGF5ZXIKICAgICAvLyB2aWEgYSByZW5kZXIgc3Vy
ZmFjZSBvciBleHBsaWNpdGx5IGlmIHRoZSBwYXJlbnQgcHJlc2VydmVzIDNEKSwgc28gdGhlCiAg
ICAgLy8gZW50aXJlIHN1YnRyZWUgY2FuIGJlIHNraXBwZWQgaWYgdGhpcyBsYXllciBpcyBmdWxs
eSB0cmFuc3BhcmVudC4KICAgICBpZiAoIWRyYXdPcGFjaXR5KQotICAgICAgICByZXR1cm47Cisg
ICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIEludFNpemUgYm91bmRzID0gbGF5ZXItPmJvdW5k
cygpOwogICAgIEZsb2F0UG9pbnQgYW5jaG9yUG9pbnQgPSBsYXllci0+YW5jaG9yUG9pbnQoKTsK
QEAgLTM2MywxOCArMzYzLDIwIEBAIHN0YXRpYyB2b2lkIGNhbGN1bGF0ZURyYXdUcmFuc2Zvcm1z
QW5kVmlzaWJpbGl0eUludGVybmFsKExheWVyVHlwZSogbGF5ZXIsIExheWVyCiAKICAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IGxheWVyLT5jaGlsZHJlbigpLnNpemUoKTsgKytpKSB7CiAgICAg
ICAgIExheWVyVHlwZSogY2hpbGQgPSBsYXllci0+Y2hpbGRyZW4oKVtpXS5nZXQoKTsKLSAgICAg
ICAgY2FsY3VsYXRlRHJhd1RyYW5zZm9ybXNBbmRWaXNpYmlsaXR5SW50ZXJuYWw8TGF5ZXJUeXBl
LCBSZW5kZXJTdXJmYWNlVHlwZSwgTGF5ZXJTb3J0ZXI+KGNoaWxkLCByb290TGF5ZXIsIHN1Ymxh
eWVyTWF0cml4LCBuZXh0SGllcmFyY2h5TWF0cml4LCByZW5kZXJTdXJmYWNlTGF5ZXJMaXN0LCBk
ZXNjZW5kYW50cywgbGF5ZXJTb3J0ZXIsIG1heFRleHR1cmVTaXplKTsKLQotICAgICAgICBpZiAo
Y2hpbGQtPnJlbmRlclN1cmZhY2UoKSkgewotICAgICAgICAgICAgUmVuZGVyU3VyZmFjZVR5cGUq
IGNoaWxkUmVuZGVyU3VyZmFjZSA9IGNoaWxkLT5yZW5kZXJTdXJmYWNlKCk7Ci0gICAgICAgICAg
ICBJbnRSZWN0IGRyYXdhYmxlQ29udGVudFJlY3QgPSBsYXllci0+ZHJhd2FibGVDb250ZW50UmVj
dCgpOwotICAgICAgICAgICAgZHJhd2FibGVDb250ZW50UmVjdC51bml0ZShlbmNsb3NpbmdJbnRS
ZWN0KGNoaWxkUmVuZGVyU3VyZmFjZS0+ZHJhd2FibGVDb250ZW50UmVjdCgpKSk7Ci0gICAgICAg
ICAgICBsYXllci0+c2V0RHJhd2FibGVDb250ZW50UmVjdChkcmF3YWJsZUNvbnRlbnRSZWN0KTsK
LSAgICAgICAgICAgIGRlc2NlbmRhbnRzLmFwcGVuZChjaGlsZCk7Ci0gICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICBJbnRSZWN0IGRyYXdhYmxlQ29udGVudFJlY3QgPSBsYXllci0+ZHJhd2Fi
bGVDb250ZW50UmVjdCgpOwotICAgICAgICAgICAgZHJhd2FibGVDb250ZW50UmVjdC51bml0ZShj
aGlsZC0+ZHJhd2FibGVDb250ZW50UmVjdCgpKTsKLSAgICAgICAgICAgIGxheWVyLT5zZXREcmF3
YWJsZUNvbnRlbnRSZWN0KGRyYXdhYmxlQ29udGVudFJlY3QpOworICAgICAgICBib29sIGRyYXdz
Q29udGVudCA9IGNhbGN1bGF0ZURyYXdUcmFuc2Zvcm1zQW5kVmlzaWJpbGl0eUludGVybmFsPExh
eWVyVHlwZSwgUmVuZGVyU3VyZmFjZVR5cGUsIExheWVyU29ydGVyPihjaGlsZCwgcm9vdExheWVy
LCBzdWJsYXllck1hdHJpeCwgbmV4dEhpZXJhcmNoeU1hdHJpeCwgcmVuZGVyU3VyZmFjZUxheWVy
TGlzdCwgZGVzY2VuZGFudHMsIGxheWVyU29ydGVyLCBtYXhUZXh0dXJlU2l6ZSk7CisKKyAgICAg
ICAgaWYgKGRyYXdzQ29udGVudCkgeworICAgICAgICAgIGlmIChjaGlsZC0+cmVuZGVyU3VyZmFj
ZSgpKSB7CisgICAgICAgICAgICAgIFJlbmRlclN1cmZhY2VUeXBlKiBjaGlsZFJlbmRlclN1cmZh
Y2UgPSBjaGlsZC0+cmVuZGVyU3VyZmFjZSgpOworICAgICAgICAgICAgICBJbnRSZWN0IGRyYXdh
YmxlQ29udGVudFJlY3QgPSBsYXllci0+ZHJhd2FibGVDb250ZW50UmVjdCgpOworICAgICAgICAg
ICAgICBkcmF3YWJsZUNvbnRlbnRSZWN0LnVuaXRlKGVuY2xvc2luZ0ludFJlY3QoY2hpbGRSZW5k
ZXJTdXJmYWNlLT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkpKTsKKyAgICAgICAgICAgICAgbGF5ZXIt
PnNldERyYXdhYmxlQ29udGVudFJlY3QoZHJhd2FibGVDb250ZW50UmVjdCk7CisgICAgICAgICAg
ICAgIGRlc2NlbmRhbnRzLmFwcGVuZChjaGlsZCk7CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgICAgSW50UmVjdCBkcmF3YWJsZUNvbnRlbnRSZWN0ID0gbGF5ZXItPmRyYXdhYmxlQ29u
dGVudFJlY3QoKTsKKyAgICAgICAgICAgICAgZHJhd2FibGVDb250ZW50UmVjdC51bml0ZShjaGls
ZC0+ZHJhd2FibGVDb250ZW50UmVjdCgpKTsKKyAgICAgICAgICAgICAgbGF5ZXItPnNldERyYXdh
YmxlQ29udGVudFJlY3QoZHJhd2FibGVDb250ZW50UmVjdCk7CisgICAgICAgICAgfQogICAgICAg
ICB9CiAgICAgfQogCkBAIC0zODcsMTIgKzM4OSwxMiBAQCBzdGF0aWMgdm9pZCBjYWxjdWxhdGVE
cmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxpdHlJbnRlcm5hbChMYXllclR5cGUqIGxheWVyLCBMYXll
cgogICAgICAgICAgICAgcmVuZGVyU3VyZmFjZUxheWVyTGlzdC5yZW1vdmVMYXN0KCk7CiAgICAg
ICAgICAgICBsYXllci0+Y2xlYXJSZW5kZXJTdXJmYWNlKCk7CiAgICAgICAgIH0KLSAgICAgICAg
cmV0dXJuOworICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCiAgICAgLy8gSWYgbmVpdGhl
ciB0aGlzIGxheWVyIG5vciBhbnkgb2YgaXRzIGNoaWxkcmVuIHdlcmUgYWRkZWQsIGVhcmx5IG91
dC4KICAgICBpZiAoc29ydGluZ1N0YXJ0SW5kZXggPT0gZGVzY2VuZGFudHMuc2l6ZSgpKQotICAg
ICAgICByZXR1cm47CisgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmIChsYXllci0+bWFz
a3NUb0JvdW5kcygpIHx8IHVzZVN1cmZhY2VGb3JNYXNraW5nKSB7CiAgICAgICAgIEludFJlY3Qg
ZHJhd2FibGVDb250ZW50UmVjdCA9IGxheWVyLT5kcmF3YWJsZUNvbnRlbnRSZWN0KCk7CkBAIC00
NTQsNiArNDU2LDggQEAgc3RhdGljIHZvaWQgY2FsY3VsYXRlRHJhd1RyYW5zZm9ybXNBbmRWaXNp
YmlsaXR5SW50ZXJuYWwoTGF5ZXJUeXBlKiBsYXllciwgTGF5ZXIKICAgICAvLyBza2lwIHRoZSBz
b3J0aW5nIGFzIHRoZSBwYXJlbnQgd2lsbCBzb3J0IGFsbCB0aGUgZGVzY2VuZGFudHMgYW55d2F5
LgogICAgIGlmIChkZXNjZW5kYW50cy5zaXplKCkgJiYgbGF5ZXItPnByZXNlcnZlczNEKCkgJiYg
KCFsYXllci0+cGFyZW50KCkgfHwgIWxheWVyLT5wYXJlbnQoKS0+cHJlc2VydmVzM0QoKSkpCiAg
ICAgICAgIHNvcnRMYXllcnMoJmRlc2NlbmRhbnRzLmF0KHNvcnRpbmdTdGFydEluZGV4KSwgZGVz
Y2VuZGFudHMuZW5kKCksIGxheWVyU29ydGVyKTsKKworICAgIHJldHVybiB0cnVlOwogfQogCiAv
LyBGSVhNRTogSW5zdGVhZCBvZiB1c2luZyB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uIHRvIHNldCB2
aXNpYmlsaXR5IHJlY3RzIG9uIGEgc2Vjb25kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QuY3BwIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LmNwcAppbmRleCA4M2E0
NGVjYWEwZmIyMjA3ZTUxMjMzZWQ0MWZhNmE4ZmU0NmEyMjM1Li5lZTQ4YTMwM2EwZjY0NzExNzYz
OTFiYmMyNzhkMjI4MWI4NGQwZGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdC5jcHAKQEAgLTQ1Miw2ICs0
NTIsMzIgQEAgVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlUcmFuc2Zvcm1z
Rm9yUmVuZGVyU3VyZmFjZUhpZXJhcmNoeSkKICAgICBFWFBFQ1RfRkxPQVRfRVEoNS4wLCBncmFu
ZENoaWxkT2ZSUzItPnNjcmVlblNwYWNlVHJhbnNmb3JtKCkubTQyKCkpOwogfQogCitURVNUKEND
TGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeVJlbmRlclN1cmZhY2VMaXN0Rm9yVHJhbnNw
YXJlbnRDaGlsZCkKK3sKKyAgICBSZWZQdHI8TGF5ZXJDaHJvbWl1bT4gcGFyZW50ID0gTGF5ZXJD
aHJvbWl1bTo6Y3JlYXRlKDApOworICAgIFJlZlB0cjxMYXllckNocm9taXVtPiByZW5kZXJTdXJm
YWNlMSA9IExheWVyQ2hyb21pdW06OmNyZWF0ZSgwKTsKKyAgICBSZWZQdHI8TGF5ZXJDaHJvbWl1
bVdpdGhGb3JjZWREcmF3c0NvbnRlbnQ+IGNoaWxkID0gYWRvcHRSZWYobmV3IExheWVyQ2hyb21p
dW1XaXRoRm9yY2VkRHJhd3NDb250ZW50KDApKTsKKyAgICByZW5kZXJTdXJmYWNlMS0+c2V0T3Bh
Y2l0eSgwKTsKKworICAgIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4IGlkZW50aXR5TWF0cml4
OworICAgIHNldExheWVyUHJvcGVydGllc0ZvclRlc3RpbmcocmVuZGVyU3VyZmFjZTEuZ2V0KCks
IGlkZW50aXR5TWF0cml4LCBpZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludDo6emVybygpLCBGbG9h
dFBvaW50Ojp6ZXJvKCksIEludFNpemUoMTAsIDEwKSwgZmFsc2UpOworICAgIHNldExheWVyUHJv
cGVydGllc0ZvclRlc3RpbmcoY2hpbGQuZ2V0KCksIGlkZW50aXR5TWF0cml4LCBpZGVudGl0eU1h
dHJpeCwgRmxvYXRQb2ludDo6emVybygpLCBGbG9hdFBvaW50Ojp6ZXJvKCksIEludFNpemUoMTAs
IDEwKSwgZmFsc2UpOworCisgICAgcGFyZW50LT5jcmVhdGVSZW5kZXJTdXJmYWNlKCk7CisgICAg
cGFyZW50LT5hZGRDaGlsZChyZW5kZXJTdXJmYWNlMSk7CisgICAgcmVuZGVyU3VyZmFjZTEtPmNy
ZWF0ZVJlbmRlclN1cmZhY2UoKTsKKyAgICByZW5kZXJTdXJmYWNlMS0+YWRkQ2hpbGQoY2hpbGQp
OworCisgICAgVmVjdG9yPFJlZlB0cjxMYXllckNocm9taXVtPiA+IHJlbmRlclN1cmZhY2VMYXll
ckxpc3Q7CisgICAgVmVjdG9yPFJlZlB0cjxMYXllckNocm9taXVtPiA+IGR1bW15TGF5ZXJMaXN0
OworICAgIGludCBkdW1teU1heFRleHR1cmVTaXplID0gNTEyOworICAgIENDTGF5ZXJUcmVlSG9z
dENvbW1vbjo6Y2FsY3VsYXRlRHJhd1RyYW5zZm9ybXNBbmRWaXNpYmlsaXR5KHBhcmVudC5nZXQo
KSwgcGFyZW50LmdldCgpLCBpZGVudGl0eU1hdHJpeCwgaWRlbnRpdHlNYXRyaXgsIHJlbmRlclN1
cmZhY2VMYXllckxpc3QsIGR1bW15TGF5ZXJMaXN0LCBkdW1teU1heFRleHR1cmVTaXplKTsKKwor
ICAgIC8vIFNpbmNlIHRoZSBsYXllciBpcyB0cmFuc3BhcmVudCwgcmVuZGVyU3VyZmFjZTEtPnJl
bmRlclN1cmZhY2UoKSBzaG91bGQgbm90IGhhdmUgZ290dGVuIGFkZGVkIGFueXdoZXJlLgorICAg
IEVYUEVDVF9FUShwYXJlbnQtPnJlbmRlclN1cmZhY2UoKS0+bGF5ZXJMaXN0KCkuc2l6ZSgpLCAw
VSk7CisgICAgRVhQRUNUX0VRKHJlbmRlclN1cmZhY2VMYXllckxpc3Quc2l6ZSgpLCAwVSk7Cit9
CisKIC8vIEZJWE1FOgogLy8gY29udGludWUgd29ya2luZyBvbiBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg5NDIKIC8vICAtIGFkZCBhIHRlc3QgdG8gdmVyaWZ5IGNs
aXBwaW5nIHRoYXQgY2hhbmdlcyB0aGUgImNlbnRlciBwb2ludCIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117310</attachid>
            <date>2011-11-30 18:52:21 -0800</date>
            <delta_ts>2011-12-01 01:03:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73270-20111130185220.patch</filename>
            <type>text/plain</type>
            <size>8611</size>
            <attacher name="Daniel Sievers">sievers</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxNDIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDJjZGExZTlkZmZkOGNi
ZDU1OTA4MDA4NWE5ODg0NDAxNTU1ZDViMi4uOTdhZWM1YmZjODEyZGQ0YTAwMjkwYzk5ZTgwMjVi
MDkyMzdlNjA3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDExLTExLTMwICBEYW5p
ZWwgU2lldmVycyAgPHNpZXZlcnNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0g
RWFybHkgcmV0dXJucyBpbiBjYWxjdWxhdGVEcmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxpdHlJbnRl
cm5hbCgpIGNhbiBsZWF2ZSBsYXllcnMgd2l0aCBzdGFsZSByZW5kZXIgc3VyZmFjZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczMjcwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgSmFtZXMgUm9iaW5zb24uCisKKyAgICAgICAgQWRkZWQgdW5pdCB0ZXN0
LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVI
b3N0Q29tbW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNhbGN1bGF0ZURyYXdUcmFuc2Zvcm1z
QW5kVmlzaWJpbGl0eUludGVybmFsKToKKwogMjAxMS0xMS0yOSAgRXJpayBBcnZpZHNzb24gIDxh
cnZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBbQ2xhc3NNZXRob2Rd
IHRvIENvZGVHZW5lcmF0b3JKUy5wbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA5ZGZj
YWJlZTdmZWNhMzg5MzI0YzE5Mjg1ODdhYTExYzNkYjU2MmMzLi4zYjRjZDU2ZTQzZTQyNjU3ZmRj
MmZkYmMwNmUyOGZiZjkxMDMwYTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEzIEBACisyMDExLTExLTMwICBEYW5pZWwgU2lldmVycyAgPHNpZXZlcnNAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gRWFybHkgcmV0dXJucyBpbiBjYWxjdWxhdGVEcmF3
VHJhbnNmb3Jtc0FuZFZpc2liaWxpdHlJbnRlcm5hbCgpIGNhbiBsZWF2ZSBsYXllcnMgd2l0aCBz
dGFsZSByZW5kZXIgc3VyZmFjZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTczMjcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSmFtZXMgUm9iaW5zb24u
CisKKyAgICAgICAgKiB0ZXN0cy9DQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlRFU1QpOgorCiAyMDExLTExLTI4ICBBZGFtIEtsZWluICA8YWRhbWtAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6
ZGVsaXZlckFsbE11dGF0aW9ucyBzaG91bGQgYmUgZXhwb3NlZCB0aHJvdWdoIHRoZSBDaHJvbWl1
bSBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDTGF5ZXJUcmVlSG9zdENvbW1vbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RDb21tb24uY3BwCmluZGV4IDYy
NjM2OGY4MWU3Yzk5OTVhMjEzZjViYWM3OTY2YjlkODI1NmNkOTQuLmY3MGNhM2RlZDcxNzE2Nzkx
MzJlOTc3ZWMxZmRkZmJjNmVhMDU4ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdENvbW1vbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVI
b3N0Q29tbW9uLmNwcApAQCAtMTA2LDcgKzEwNiw3IEBAIGJvb2wgbGF5ZXJTaG91bGRCZVNraXBw
ZWQoTGF5ZXJUeXBlKiBsYXllcikKIC8vIFJlY3Vyc2l2ZWx5IHdhbGtzIHRoZSBsYXllciB0cmVl
IHN0YXJ0aW5nIGF0IHRoZSBnaXZlbiBub2RlIGFuZCBjb21wdXRlcyBhbGwgdGhlCiAvLyBuZWNl
c3NhcnkgdHJhbnNmb3JtYXRpb25zLCBjbGlwUmVjdHMsIHJlbmRlciBzdXJmYWNlcywgZXRjLgog
dGVtcGxhdGU8dHlwZW5hbWUgTGF5ZXJUeXBlLCB0eXBlbmFtZSBSZW5kZXJTdXJmYWNlVHlwZSwg
dHlwZW5hbWUgTGF5ZXJTb3J0ZXI+Ci1zdGF0aWMgdm9pZCBjYWxjdWxhdGVEcmF3VHJhbnNmb3Jt
c0FuZFZpc2liaWxpdHlJbnRlcm5hbChMYXllclR5cGUqIGxheWVyLCBMYXllclR5cGUqIHJvb3RM
YXllciwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHBhcmVudE1hdHJpeCwgY29uc3QgVHJh
bnNmb3JtYXRpb25NYXRyaXgmIGZ1bGxIaWVyYXJjaHlNYXRyaXgsIFZlY3RvcjxSZWZQdHI8TGF5
ZXJUeXBlPiA+JiByZW5kZXJTdXJmYWNlTGF5ZXJMaXN0LCBWZWN0b3I8UmVmUHRyPExheWVyVHlw
ZT4gPiYgbGF5ZXJMaXN0LCBMYXllclNvcnRlciogbGF5ZXJTb3J0ZXIsIGludCBtYXhUZXh0dXJl
U2l6ZSkKK3N0YXRpYyBib29sIGNhbGN1bGF0ZURyYXdUcmFuc2Zvcm1zQW5kVmlzaWJpbGl0eUlu
dGVybmFsKExheWVyVHlwZSogbGF5ZXIsIExheWVyVHlwZSogcm9vdExheWVyLCBjb25zdCBUcmFu
c2Zvcm1hdGlvbk1hdHJpeCYgcGFyZW50TWF0cml4LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJp
eCYgZnVsbEhpZXJhcmNoeU1hdHJpeCwgVmVjdG9yPFJlZlB0cjxMYXllclR5cGU+ID4mIHJlbmRl
clN1cmZhY2VMYXllckxpc3QsIFZlY3RvcjxSZWZQdHI8TGF5ZXJUeXBlPiA+JiBsYXllckxpc3Qs
IExheWVyU29ydGVyKiBsYXllclNvcnRlciwgaW50IG1heFRleHR1cmVTaXplKQogewogICAgIHR5
cGVkZWYgVmVjdG9yPFJlZlB0cjxMYXllclR5cGU+ID4gTGF5ZXJMaXN0OwogCkBAIC0xOTUsNyAr
MTk1LDcgQEAgc3RhdGljIHZvaWQgY2FsY3VsYXRlRHJhd1RyYW5zZm9ybXNBbmRWaXNpYmlsaXR5
SW50ZXJuYWwoTGF5ZXJUeXBlKiBsYXllciwgTGF5ZXIKICAgICAvLyB2aWEgYSByZW5kZXIgc3Vy
ZmFjZSBvciBleHBsaWNpdGx5IGlmIHRoZSBwYXJlbnQgcHJlc2VydmVzIDNEKSwgc28gdGhlCiAg
ICAgLy8gZW50aXJlIHN1YnRyZWUgY2FuIGJlIHNraXBwZWQgaWYgdGhpcyBsYXllciBpcyBmdWxs
eSB0cmFuc3BhcmVudC4KICAgICBpZiAoIWRyYXdPcGFjaXR5KQotICAgICAgICByZXR1cm47Cisg
ICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIEludFNpemUgYm91bmRzID0gbGF5ZXItPmJvdW5k
cygpOwogICAgIEZsb2F0UG9pbnQgYW5jaG9yUG9pbnQgPSBsYXllci0+YW5jaG9yUG9pbnQoKTsK
QEAgLTM2MywxOCArMzYzLDIwIEBAIHN0YXRpYyB2b2lkIGNhbGN1bGF0ZURyYXdUcmFuc2Zvcm1z
QW5kVmlzaWJpbGl0eUludGVybmFsKExheWVyVHlwZSogbGF5ZXIsIExheWVyCiAKICAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IGxheWVyLT5jaGlsZHJlbigpLnNpemUoKTsgKytpKSB7CiAgICAg
ICAgIExheWVyVHlwZSogY2hpbGQgPSBsYXllci0+Y2hpbGRyZW4oKVtpXS5nZXQoKTsKLSAgICAg
ICAgY2FsY3VsYXRlRHJhd1RyYW5zZm9ybXNBbmRWaXNpYmlsaXR5SW50ZXJuYWw8TGF5ZXJUeXBl
LCBSZW5kZXJTdXJmYWNlVHlwZSwgTGF5ZXJTb3J0ZXI+KGNoaWxkLCByb290TGF5ZXIsIHN1Ymxh
eWVyTWF0cml4LCBuZXh0SGllcmFyY2h5TWF0cml4LCByZW5kZXJTdXJmYWNlTGF5ZXJMaXN0LCBk
ZXNjZW5kYW50cywgbGF5ZXJTb3J0ZXIsIG1heFRleHR1cmVTaXplKTsKLQotICAgICAgICBpZiAo
Y2hpbGQtPnJlbmRlclN1cmZhY2UoKSkgewotICAgICAgICAgICAgUmVuZGVyU3VyZmFjZVR5cGUq
IGNoaWxkUmVuZGVyU3VyZmFjZSA9IGNoaWxkLT5yZW5kZXJTdXJmYWNlKCk7Ci0gICAgICAgICAg
ICBJbnRSZWN0IGRyYXdhYmxlQ29udGVudFJlY3QgPSBsYXllci0+ZHJhd2FibGVDb250ZW50UmVj
dCgpOwotICAgICAgICAgICAgZHJhd2FibGVDb250ZW50UmVjdC51bml0ZShlbmNsb3NpbmdJbnRS
ZWN0KGNoaWxkUmVuZGVyU3VyZmFjZS0+ZHJhd2FibGVDb250ZW50UmVjdCgpKSk7Ci0gICAgICAg
ICAgICBsYXllci0+c2V0RHJhd2FibGVDb250ZW50UmVjdChkcmF3YWJsZUNvbnRlbnRSZWN0KTsK
LSAgICAgICAgICAgIGRlc2NlbmRhbnRzLmFwcGVuZChjaGlsZCk7Ci0gICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICBJbnRSZWN0IGRyYXdhYmxlQ29udGVudFJlY3QgPSBsYXllci0+ZHJhd2Fi
bGVDb250ZW50UmVjdCgpOwotICAgICAgICAgICAgZHJhd2FibGVDb250ZW50UmVjdC51bml0ZShj
aGlsZC0+ZHJhd2FibGVDb250ZW50UmVjdCgpKTsKLSAgICAgICAgICAgIGxheWVyLT5zZXREcmF3
YWJsZUNvbnRlbnRSZWN0KGRyYXdhYmxlQ29udGVudFJlY3QpOworICAgICAgICBib29sIGRyYXdz
Q29udGVudCA9IGNhbGN1bGF0ZURyYXdUcmFuc2Zvcm1zQW5kVmlzaWJpbGl0eUludGVybmFsPExh
eWVyVHlwZSwgUmVuZGVyU3VyZmFjZVR5cGUsIExheWVyU29ydGVyPihjaGlsZCwgcm9vdExheWVy
LCBzdWJsYXllck1hdHJpeCwgbmV4dEhpZXJhcmNoeU1hdHJpeCwgcmVuZGVyU3VyZmFjZUxheWVy
TGlzdCwgZGVzY2VuZGFudHMsIGxheWVyU29ydGVyLCBtYXhUZXh0dXJlU2l6ZSk7CisKKyAgICAg
ICAgaWYgKGRyYXdzQ29udGVudCkgeworICAgICAgICAgICAgaWYgKGNoaWxkLT5yZW5kZXJTdXJm
YWNlKCkpIHsKKyAgICAgICAgICAgICAgICBSZW5kZXJTdXJmYWNlVHlwZSogY2hpbGRSZW5kZXJT
dXJmYWNlID0gY2hpbGQtPnJlbmRlclN1cmZhY2UoKTsKKyAgICAgICAgICAgICAgICBJbnRSZWN0
IGRyYXdhYmxlQ29udGVudFJlY3QgPSBsYXllci0+ZHJhd2FibGVDb250ZW50UmVjdCgpOworICAg
ICAgICAgICAgICAgIGRyYXdhYmxlQ29udGVudFJlY3QudW5pdGUoZW5jbG9zaW5nSW50UmVjdChj
aGlsZFJlbmRlclN1cmZhY2UtPmRyYXdhYmxlQ29udGVudFJlY3QoKSkpOworICAgICAgICAgICAg
ICAgIGxheWVyLT5zZXREcmF3YWJsZUNvbnRlbnRSZWN0KGRyYXdhYmxlQ29udGVudFJlY3QpOwor
ICAgICAgICAgICAgICAgIGRlc2NlbmRhbnRzLmFwcGVuZChjaGlsZCk7CisgICAgICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgICAgIEludFJlY3QgZHJhd2FibGVDb250ZW50UmVjdCA9IGxh
eWVyLT5kcmF3YWJsZUNvbnRlbnRSZWN0KCk7CisgICAgICAgICAgICAgICAgZHJhd2FibGVDb250
ZW50UmVjdC51bml0ZShjaGlsZC0+ZHJhd2FibGVDb250ZW50UmVjdCgpKTsKKyAgICAgICAgICAg
ICAgICBsYXllci0+c2V0RHJhd2FibGVDb250ZW50UmVjdChkcmF3YWJsZUNvbnRlbnRSZWN0KTsK
KyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KIApAQCAtMzg3LDEyICszODksMTIgQEAg
c3RhdGljIHZvaWQgY2FsY3VsYXRlRHJhd1RyYW5zZm9ybXNBbmRWaXNpYmlsaXR5SW50ZXJuYWwo
TGF5ZXJUeXBlKiBsYXllciwgTGF5ZXIKICAgICAgICAgICAgIHJlbmRlclN1cmZhY2VMYXllckxp
c3QucmVtb3ZlTGFzdCgpOwogICAgICAgICAgICAgbGF5ZXItPmNsZWFyUmVuZGVyU3VyZmFjZSgp
OwogICAgICAgICB9Ci0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IH0KIAogICAgIC8vIElmIG5laXRoZXIgdGhpcyBsYXllciBub3IgYW55IG9mIGl0cyBjaGlsZHJl
biB3ZXJlIGFkZGVkLCBlYXJseSBvdXQuCiAgICAgaWYgKHNvcnRpbmdTdGFydEluZGV4ID09IGRl
c2NlbmRhbnRzLnNpemUoKSkKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICBpZiAobGF5ZXItPm1hc2tzVG9Cb3VuZHMoKSB8fCB1c2VTdXJmYWNlRm9yTWFza2lu
ZykgewogICAgICAgICBJbnRSZWN0IGRyYXdhYmxlQ29udGVudFJlY3QgPSBsYXllci0+ZHJhd2Fi
bGVDb250ZW50UmVjdCgpOwpAQCAtNDU0LDYgKzQ1Niw4IEBAIHN0YXRpYyB2b2lkIGNhbGN1bGF0
ZURyYXdUcmFuc2Zvcm1zQW5kVmlzaWJpbGl0eUludGVybmFsKExheWVyVHlwZSogbGF5ZXIsIExh
eWVyCiAgICAgLy8gc2tpcCB0aGUgc29ydGluZyBhcyB0aGUgcGFyZW50IHdpbGwgc29ydCBhbGwg
dGhlIGRlc2NlbmRhbnRzIGFueXdheS4KICAgICBpZiAoZGVzY2VuZGFudHMuc2l6ZSgpICYmIGxh
eWVyLT5wcmVzZXJ2ZXMzRCgpICYmICghbGF5ZXItPnBhcmVudCgpIHx8ICFsYXllci0+cGFyZW50
KCktPnByZXNlcnZlczNEKCkpKQogICAgICAgICBzb3J0TGF5ZXJzKCZkZXNjZW5kYW50cy5hdChz
b3J0aW5nU3RhcnRJbmRleCksIGRlc2NlbmRhbnRzLmVuZCgpLCBsYXllclNvcnRlcik7CisKKyAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAogLy8gRklYTUU6IEluc3RlYWQgb2YgdXNpbmcgdGhlIGZvbGxv
d2luZyBmdW5jdGlvbiB0byBzZXQgdmlzaWJpbGl0eSByZWN0cyBvbiBhIHNlY29uZApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RDb21tb25U
ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0Q29t
bW9uVGVzdC5jcHAKaW5kZXggODNhNDRlY2FhMGZiMjIwN2U1MTIzM2VkNDFmYTZhOGZlNDZhMjIz
NS4uZWU0OGEzMDNhMGY2NDcxMTc2MzkxYmJjMjc4ZDIyODFiODRkMGRiMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdENvbW1v
blRlc3QuY3BwCkBAIC00NTIsNiArNDUyLDMyIEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9u
VGVzdCwgdmVyaWZ5VHJhbnNmb3Jtc0ZvclJlbmRlclN1cmZhY2VIaWVyYXJjaHkpCiAgICAgRVhQ
RUNUX0ZMT0FUX0VRKDUuMCwgZ3JhbmRDaGlsZE9mUlMyLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgp
Lm00MigpKTsKIH0KIAorVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlSZW5k
ZXJTdXJmYWNlTGlzdEZvclRyYW5zcGFyZW50Q2hpbGQpCit7CisgICAgUmVmUHRyPExheWVyQ2hy
b21pdW0+IHBhcmVudCA9IExheWVyQ2hyb21pdW06OmNyZWF0ZSgwKTsKKyAgICBSZWZQdHI8TGF5
ZXJDaHJvbWl1bT4gcmVuZGVyU3VyZmFjZTEgPSBMYXllckNocm9taXVtOjpjcmVhdGUoMCk7Cisg
ICAgUmVmUHRyPExheWVyQ2hyb21pdW1XaXRoRm9yY2VkRHJhd3NDb250ZW50PiBjaGlsZCA9IGFk
b3B0UmVmKG5ldyBMYXllckNocm9taXVtV2l0aEZvcmNlZERyYXdzQ29udGVudCgwKSk7CisgICAg
cmVuZGVyU3VyZmFjZTEtPnNldE9wYWNpdHkoMCk7CisKKyAgICBjb25zdCBUcmFuc2Zvcm1hdGlv
bk1hdHJpeCBpZGVudGl0eU1hdHJpeDsKKyAgICBzZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5n
KHJlbmRlclN1cmZhY2UxLmdldCgpLCBpZGVudGl0eU1hdHJpeCwgaWRlbnRpdHlNYXRyaXgsIEZs
b2F0UG9pbnQ6Onplcm8oKSwgRmxvYXRQb2ludDo6emVybygpLCBJbnRTaXplKDEwLCAxMCksIGZh
bHNlKTsKKyAgICBzZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5nKGNoaWxkLmdldCgpLCBpZGVu
dGl0eU1hdHJpeCwgaWRlbnRpdHlNYXRyaXgsIEZsb2F0UG9pbnQ6Onplcm8oKSwgRmxvYXRQb2lu
dDo6emVybygpLCBJbnRTaXplKDEwLCAxMCksIGZhbHNlKTsKKworICAgIHBhcmVudC0+Y3JlYXRl
UmVuZGVyU3VyZmFjZSgpOworICAgIHBhcmVudC0+YWRkQ2hpbGQocmVuZGVyU3VyZmFjZTEpOwor
ICAgIHJlbmRlclN1cmZhY2UxLT5jcmVhdGVSZW5kZXJTdXJmYWNlKCk7CisgICAgcmVuZGVyU3Vy
ZmFjZTEtPmFkZENoaWxkKGNoaWxkKTsKKworICAgIFZlY3RvcjxSZWZQdHI8TGF5ZXJDaHJvbWl1
bT4gPiByZW5kZXJTdXJmYWNlTGF5ZXJMaXN0OworICAgIFZlY3RvcjxSZWZQdHI8TGF5ZXJDaHJv
bWl1bT4gPiBkdW1teUxheWVyTGlzdDsKKyAgICBpbnQgZHVtbXlNYXhUZXh0dXJlU2l6ZSA9IDUx
MjsKKyAgICBDQ0xheWVyVHJlZUhvc3RDb21tb246OmNhbGN1bGF0ZURyYXdUcmFuc2Zvcm1zQW5k
VmlzaWJpbGl0eShwYXJlbnQuZ2V0KCksIHBhcmVudC5nZXQoKSwgaWRlbnRpdHlNYXRyaXgsIGlk
ZW50aXR5TWF0cml4LCByZW5kZXJTdXJmYWNlTGF5ZXJMaXN0LCBkdW1teUxheWVyTGlzdCwgZHVt
bXlNYXhUZXh0dXJlU2l6ZSk7CisKKyAgICAvLyBTaW5jZSB0aGUgbGF5ZXIgaXMgdHJhbnNwYXJl
bnQsIHJlbmRlclN1cmZhY2UxLT5yZW5kZXJTdXJmYWNlKCkgc2hvdWxkIG5vdCBoYXZlIGdvdHRl
biBhZGRlZCBhbnl3aGVyZS4KKyAgICBFWFBFQ1RfRVEocGFyZW50LT5yZW5kZXJTdXJmYWNlKCkt
PmxheWVyTGlzdCgpLnNpemUoKSwgMFUpOworICAgIEVYUEVDVF9FUShyZW5kZXJTdXJmYWNlTGF5
ZXJMaXN0LnNpemUoKSwgMFUpOworfQorCiAvLyBGSVhNRToKIC8vIGNvbnRpbnVlIHdvcmtpbmcg
b24gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4OTQyCiAvLyAgLSBh
ZGQgYSB0ZXN0IHRvIHZlcmlmeSBjbGlwcGluZyB0aGF0IGNoYW5nZXMgdGhlICJjZW50ZXIgcG9p
bnQiCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117375</attachid>
            <date>2011-12-01 01:03:41 -0800</date>
            <delta_ts>2011-12-01 13:45:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73270-20111201010340.patch</filename>
            <type>text/plain</type>
            <size>9510</size>
            <attacher name="Daniel Sievers">sievers</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxNjM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTU5M2U4MmM4ZDNlNjM5
ZDE5ZDhkMGZiYWFjYTE2NTdlYjAyYjhiMi4uNjVkODEyN2IyZTYxMGY3YTEyZjk0MGY1YWFmNDkz
OGMxMGUwN2FjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDExLTExLTMwICBEYW5p
ZWwgU2lldmVycyAgPHNpZXZlcnNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0g
RWFybHkgcmV0dXJucyBpbiBjYWxjdWxhdGVEcmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxpdHlJbnRl
cm5hbCgpIGFyZSBub3QgcmVzcGVjdGVkIGJ5IHBhcmVudC4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczMjcwCisKKyAgICAgICAgTm9uLWRyYXdpbmcg
Y2hpbGQgdHJlZXMgc2hvdWxkIG5vdCBiZSBhZGRlZCB0byB0aGUgcGFyZW50IHJlbmRlciBzdXJm
YWNlJ3MgbGF5ZXIgbGlzdAorICAgICAgICBhbmQgc2hvdWxkIG5laXRoZXIgZXh0ZW5kIHRoZSBw
YXJlbnQgbGF5ZXIncyBkcmF3YWJsZSBjb250ZW50IHJlY3QuCisKKyAgICAgICAgVGhpcyBhbHNv
IGZpeGVzIGFzc2VydGlvbnMgZnJvbSB0aGUgY29udGVudCB0ZXh0dXJlIHJlc2lkZW5jeSBsb2dp
Yywgd2hpY2ggZG9lc24ndCBsaWtlIGl0CisgICAgICAgIGlmIHdlIHRyeSB0byB1c2UgYSByZW5k
ZXIgc3VyZmFjZSB0aHJvdWdoIGEgcGFyZW50LCB3aGlsZSB0aGF0IHN1cmZhY2UgaXRzZWxmIHdh
cyBuZXZlciAndXNlZCcKKyAgICAgICAgaW4gdGhlIHNhbWUgZnJhbWUuCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgSmFtZXMgUm9iaW5zb24uCisKKyAgICAgICAgQWRkZWQgdW5pdCB0ZXN0LgorCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0Q29t
bW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNhbGN1bGF0ZURyYXdUcmFuc2Zvcm1zQW5kVmlz
aWJpbGl0eUludGVybmFsKToKKwogMjAxMS0xMi0wMSAgVnNldm9sb2QgVmxhc292ICA8dnNldmlr
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBFbGVtZW50cyBQYW5lbCBl
ZGl0IGFzIGh0bWwgbG9va3Mgd2VpcmQgd2l0aCBhbiBhcnJvdyBpbnNpZGUgZWRpdCBib3guCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDJiZTA5YTFhZjU0YTRlYTYzZjhhYjA2YzE0YzFi
ZDU4NTY4NzM3YTQuLjcyNzFkZDIwNDY5ZWZlYWYxY2Y5Mjc2NTNiYmQzODBlMzY3MjVkY2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTEtMTEtMzAgIERh
bmllbCBTaWV2ZXJzICA8c2lldmVyc0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVt
XSBFYXJseSByZXR1cm5zIGluIGNhbGN1bGF0ZURyYXdUcmFuc2Zvcm1zQW5kVmlzaWJpbGl0eUlu
dGVybmFsKCkgYXJlIG5vdCByZXNwZWN0ZWQgYnkgcGFyZW50LgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMyNzAKKworICAgICAgICBOb24tZHJhd2lu
ZyBjaGlsZCB0cmVlcyBzaG91bGQgbm90IGJlIGFkZGVkIHRvIHRoZSBwYXJlbnQgcmVuZGVyIHN1
cmZhY2UncyBsYXllciBsaXN0CisgICAgICAgIGFuZCBzaG91bGQgbmVpdGhlciBleHRlbmQgdGhl
IHBhcmVudCBsYXllcidzIGRyYXdhYmxlIGNvbnRlbnQgcmVjdC4KKworICAgICAgICBUaGlzIGFs
c28gZml4ZXMgYXNzZXJ0aW9ucyBmcm9tIHRoZSBjb250ZW50IHRleHR1cmUgcmVzaWRlbmN5IGxv
Z2ljLCB3aGljaCBkb2Vzbid0IGxpa2UgaXQKKyAgICAgICAgaWYgd2UgdHJ5IHRvIHVzZSBhIHJl
bmRlciBzdXJmYWNlIHRocm91Z2ggYSBwYXJlbnQsIHdoaWxlIHRoYXQgc3VyZmFjZSBpdHNlbGYg
d2FzIG5ldmVyICd1c2VkJworICAgICAgICBpbiB0aGUgc2FtZSBmcmFtZS4KKworICAgICAgICBS
ZXZpZXdlZCBieSBKYW1lcyBSb2JpbnNvbi4KKworICAgICAgICAqIHRlc3RzL0NDTGF5ZXJUcmVl
SG9zdENvbW1vblRlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VEVTVCk6CisKIDIwMTEtMTEt
MzAgIERhdmlkIFJldmVtYW4gIDxyZXZlbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hy
b21pdW1dIEltcHJvdmUgdGlsZSBpbnZhbGlkYXRpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RDb21tb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXll
clRyZWVIb3N0Q29tbW9uLmNwcAppbmRleCAyMWZkN2RhMmVmMzcyNzk4ZWMxMTE0MmQwMzdhOTEz
MmQwOTY3ZWU5Li4xZDAxZWQ4OGIyN2JlNmVlMDZjMmJlMDk0OGRkYTVmYzY2MzhhODE4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xh
eWVyVHJlZUhvc3RDb21tb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdENvbW1vbi5jcHAKQEAgLTEwNiw3ICsxMDYs
NyBAQCBib29sIGxheWVyU2hvdWxkQmVTa2lwcGVkKExheWVyVHlwZSogbGF5ZXIpCiAvLyBSZWN1
cnNpdmVseSB3YWxrcyB0aGUgbGF5ZXIgdHJlZSBzdGFydGluZyBhdCB0aGUgZ2l2ZW4gbm9kZSBh
bmQgY29tcHV0ZXMgYWxsIHRoZQogLy8gbmVjZXNzYXJ5IHRyYW5zZm9ybWF0aW9ucywgY2xpcFJl
Y3RzLCByZW5kZXIgc3VyZmFjZXMsIGV0Yy4KIHRlbXBsYXRlPHR5cGVuYW1lIExheWVyVHlwZSwg
dHlwZW5hbWUgUmVuZGVyU3VyZmFjZVR5cGUsIHR5cGVuYW1lIExheWVyU29ydGVyPgotc3RhdGlj
IHZvaWQgY2FsY3VsYXRlRHJhd1RyYW5zZm9ybXNBbmRWaXNpYmlsaXR5SW50ZXJuYWwoTGF5ZXJU
eXBlKiBsYXllciwgTGF5ZXJUeXBlKiByb290TGF5ZXIsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0
cml4JiBwYXJlbnRNYXRyaXgsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBmdWxsSGllcmFy
Y2h5TWF0cml4LCBWZWN0b3I8UmVmUHRyPExheWVyVHlwZT4gPiYgcmVuZGVyU3VyZmFjZUxheWVy
TGlzdCwgVmVjdG9yPFJlZlB0cjxMYXllclR5cGU+ID4mIGxheWVyTGlzdCwgTGF5ZXJTb3J0ZXIq
IGxheWVyU29ydGVyLCBpbnQgbWF4VGV4dHVyZVNpemUpCitzdGF0aWMgYm9vbCBjYWxjdWxhdGVE
cmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxpdHlJbnRlcm5hbChMYXllclR5cGUqIGxheWVyLCBMYXll
clR5cGUqIHJvb3RMYXllciwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHBhcmVudE1hdHJp
eCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIGZ1bGxIaWVyYXJjaHlNYXRyaXgsIFZlY3Rv
cjxSZWZQdHI8TGF5ZXJUeXBlPiA+JiByZW5kZXJTdXJmYWNlTGF5ZXJMaXN0LCBWZWN0b3I8UmVm
UHRyPExheWVyVHlwZT4gPiYgbGF5ZXJMaXN0LCBMYXllclNvcnRlciogbGF5ZXJTb3J0ZXIsIGlu
dCBtYXhUZXh0dXJlU2l6ZSkKIHsKICAgICB0eXBlZGVmIFZlY3RvcjxSZWZQdHI8TGF5ZXJUeXBl
PiA+IExheWVyTGlzdDsKIApAQCAtMTk1LDcgKzE5NSw3IEBAIHN0YXRpYyB2b2lkIGNhbGN1bGF0
ZURyYXdUcmFuc2Zvcm1zQW5kVmlzaWJpbGl0eUludGVybmFsKExheWVyVHlwZSogbGF5ZXIsIExh
eWVyCiAgICAgLy8gdmlhIGEgcmVuZGVyIHN1cmZhY2Ugb3IgZXhwbGljaXRseSBpZiB0aGUgcGFy
ZW50IHByZXNlcnZlcyAzRCksIHNvIHRoZQogICAgIC8vIGVudGlyZSBzdWJ0cmVlIGNhbiBiZSBz
a2lwcGVkIGlmIHRoaXMgbGF5ZXIgaXMgZnVsbHkgdHJhbnNwYXJlbnQuCiAgICAgaWYgKCFkcmF3
T3BhY2l0eSkKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBJ
bnRTaXplIGJvdW5kcyA9IGxheWVyLT5ib3VuZHMoKTsKICAgICBGbG9hdFBvaW50IGFuY2hvclBv
aW50ID0gbGF5ZXItPmFuY2hvclBvaW50KCk7CkBAIC0zNjMsMTggKzM2MywyMCBAQCBzdGF0aWMg
dm9pZCBjYWxjdWxhdGVEcmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxpdHlJbnRlcm5hbChMYXllclR5
cGUqIGxheWVyLCBMYXllcgogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsYXllci0+Y2hp
bGRyZW4oKS5zaXplKCk7ICsraSkgewogICAgICAgICBMYXllclR5cGUqIGNoaWxkID0gbGF5ZXIt
PmNoaWxkcmVuKClbaV0uZ2V0KCk7Ci0gICAgICAgIGNhbGN1bGF0ZURyYXdUcmFuc2Zvcm1zQW5k
VmlzaWJpbGl0eUludGVybmFsPExheWVyVHlwZSwgUmVuZGVyU3VyZmFjZVR5cGUsIExheWVyU29y
dGVyPihjaGlsZCwgcm9vdExheWVyLCBzdWJsYXllck1hdHJpeCwgbmV4dEhpZXJhcmNoeU1hdHJp
eCwgcmVuZGVyU3VyZmFjZUxheWVyTGlzdCwgZGVzY2VuZGFudHMsIGxheWVyU29ydGVyLCBtYXhU
ZXh0dXJlU2l6ZSk7Ci0KLSAgICAgICAgaWYgKGNoaWxkLT5yZW5kZXJTdXJmYWNlKCkpIHsKLSAg
ICAgICAgICAgIFJlbmRlclN1cmZhY2VUeXBlKiBjaGlsZFJlbmRlclN1cmZhY2UgPSBjaGlsZC0+
cmVuZGVyU3VyZmFjZSgpOwotICAgICAgICAgICAgSW50UmVjdCBkcmF3YWJsZUNvbnRlbnRSZWN0
ID0gbGF5ZXItPmRyYXdhYmxlQ29udGVudFJlY3QoKTsKLSAgICAgICAgICAgIGRyYXdhYmxlQ29u
dGVudFJlY3QudW5pdGUoZW5jbG9zaW5nSW50UmVjdChjaGlsZFJlbmRlclN1cmZhY2UtPmRyYXdh
YmxlQ29udGVudFJlY3QoKSkpOwotICAgICAgICAgICAgbGF5ZXItPnNldERyYXdhYmxlQ29udGVu
dFJlY3QoZHJhd2FibGVDb250ZW50UmVjdCk7Ci0gICAgICAgICAgICBkZXNjZW5kYW50cy5hcHBl
bmQoY2hpbGQpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgSW50UmVjdCBkcmF3YWJs
ZUNvbnRlbnRSZWN0ID0gbGF5ZXItPmRyYXdhYmxlQ29udGVudFJlY3QoKTsKLSAgICAgICAgICAg
IGRyYXdhYmxlQ29udGVudFJlY3QudW5pdGUoY2hpbGQtPmRyYXdhYmxlQ29udGVudFJlY3QoKSk7
Ci0gICAgICAgICAgICBsYXllci0+c2V0RHJhd2FibGVDb250ZW50UmVjdChkcmF3YWJsZUNvbnRl
bnRSZWN0KTsKKyAgICAgICAgYm9vbCBkcmF3c0NvbnRlbnQgPSBjYWxjdWxhdGVEcmF3VHJhbnNm
b3Jtc0FuZFZpc2liaWxpdHlJbnRlcm5hbDxMYXllclR5cGUsIFJlbmRlclN1cmZhY2VUeXBlLCBM
YXllclNvcnRlcj4oY2hpbGQsIHJvb3RMYXllciwgc3VibGF5ZXJNYXRyaXgsIG5leHRIaWVyYXJj
aHlNYXRyaXgsIHJlbmRlclN1cmZhY2VMYXllckxpc3QsIGRlc2NlbmRhbnRzLCBsYXllclNvcnRl
ciwgbWF4VGV4dHVyZVNpemUpOworCisgICAgICAgIGlmIChkcmF3c0NvbnRlbnQpIHsKKyAgICAg
ICAgICAgIGlmIChjaGlsZC0+cmVuZGVyU3VyZmFjZSgpKSB7CisgICAgICAgICAgICAgICAgUmVu
ZGVyU3VyZmFjZVR5cGUqIGNoaWxkUmVuZGVyU3VyZmFjZSA9IGNoaWxkLT5yZW5kZXJTdXJmYWNl
KCk7CisgICAgICAgICAgICAgICAgSW50UmVjdCBkcmF3YWJsZUNvbnRlbnRSZWN0ID0gbGF5ZXIt
PmRyYXdhYmxlQ29udGVudFJlY3QoKTsKKyAgICAgICAgICAgICAgICBkcmF3YWJsZUNvbnRlbnRS
ZWN0LnVuaXRlKGVuY2xvc2luZ0ludFJlY3QoY2hpbGRSZW5kZXJTdXJmYWNlLT5kcmF3YWJsZUNv
bnRlbnRSZWN0KCkpKTsKKyAgICAgICAgICAgICAgICBsYXllci0+c2V0RHJhd2FibGVDb250ZW50
UmVjdChkcmF3YWJsZUNvbnRlbnRSZWN0KTsKKyAgICAgICAgICAgICAgICBkZXNjZW5kYW50cy5h
cHBlbmQoY2hpbGQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBJbnRS
ZWN0IGRyYXdhYmxlQ29udGVudFJlY3QgPSBsYXllci0+ZHJhd2FibGVDb250ZW50UmVjdCgpOwor
ICAgICAgICAgICAgICAgIGRyYXdhYmxlQ29udGVudFJlY3QudW5pdGUoY2hpbGQtPmRyYXdhYmxl
Q29udGVudFJlY3QoKSk7CisgICAgICAgICAgICAgICAgbGF5ZXItPnNldERyYXdhYmxlQ29udGVu
dFJlY3QoZHJhd2FibGVDb250ZW50UmVjdCk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAg
ICB9CiAKQEAgLTQzOSwxOSArNDQxLDIxIEBAIHN0YXRpYyB2b2lkIGNhbGN1bGF0ZURyYXdUcmFu
c2Zvcm1zQW5kVmlzaWJpbGl0eUludGVybmFsKExheWVyVHlwZSogbGF5ZXIsIExheWVyCiAgICAg
ICAgICAgICBBU1NFUlQocmVuZGVyU3VyZmFjZUxheWVyTGlzdC5sYXN0KCkgPT0gbGF5ZXIpOwog
ICAgICAgICAgICAgcmVuZGVyU3VyZmFjZUxheWVyTGlzdC5yZW1vdmVMYXN0KCk7CiAgICAgICAg
ICAgICBsYXllci0+Y2xlYXJSZW5kZXJTdXJmYWNlKCk7Ci0gICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICB9CiAKICAgICAvLyBJZiBu
ZWl0aGVyIHRoaXMgbGF5ZXIgbm9yIGFueSBvZiBpdHMgY2hpbGRyZW4gd2VyZSBhZGRlZCwgZWFy
bHkgb3V0LgogICAgIGlmIChzb3J0aW5nU3RhcnRJbmRleCA9PSBkZXNjZW5kYW50cy5zaXplKCkp
Ci0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgLy8gSWYgcHJl
c2VydmVzLTNkIHRoZW4gc29ydCBhbGwgdGhlIGRlc2NlbmRhbnRzIGluIDNEIHNvIHRoYXQgdGhl
eSBjYW4gYmUKICAgICAvLyBkcmF3biBmcm9tIGJhY2sgdG8gZnJvbnQuIElmIHRoZSBwcmVzZXJ2
ZXMtM2QgcHJvcGVydHkgaXMgYWxzbyBzZXQgb24gdGhlIHBhcmVudCB0aGVuCiAgICAgLy8gc2tp
cCB0aGUgc29ydGluZyBhcyB0aGUgcGFyZW50IHdpbGwgc29ydCBhbGwgdGhlIGRlc2NlbmRhbnRz
IGFueXdheS4KICAgICBpZiAoZGVzY2VuZGFudHMuc2l6ZSgpICYmIGxheWVyLT5wcmVzZXJ2ZXMz
RCgpICYmICghbGF5ZXItPnBhcmVudCgpIHx8ICFsYXllci0+cGFyZW50KCktPnByZXNlcnZlczNE
KCkpKQogICAgICAgICBzb3J0TGF5ZXJzKCZkZXNjZW5kYW50cy5hdChzb3J0aW5nU3RhcnRJbmRl
eCksIGRlc2NlbmRhbnRzLmVuZCgpLCBsYXllclNvcnRlcik7CisKKyAgICByZXR1cm4gdHJ1ZTsK
IH0KIAogLy8gRklYTUU6IEluc3RlYWQgb2YgdXNpbmcgdGhlIGZvbGxvd2luZyBmdW5jdGlvbiB0
byBzZXQgdmlzaWJpbGl0eSByZWN0cyBvbiBhIHNlY29uZApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdC5jcHAKaW5k
ZXggOWU1OWU4MDM0ZDMxZmQ0NDljNTVhYzc1YWZlMDIyMTU3MjM3N2ViMi4uNGQ1OTIxNDk3OGU2
M2FmNzAyOTliZjNkN2Y4MDc5MWNiMTRjN2VkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QuY3BwCkBAIC00
ODEsNiArNDgxLDM0IEBAIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5UmVu
ZGVyU3VyZmFjZUxpc3RGb3JDbGlwTGF5ZXIpCiAgICAgRVhQRUNUX0VRKHJlbmRlclN1cmZhY2VM
YXllckxpc3Quc2l6ZSgpLCAwVSk7CiB9CiAKK1RFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVz
dCwgdmVyaWZ5UmVuZGVyU3VyZmFjZUxpc3RGb3JUcmFuc3BhcmVudENoaWxkKQoreworICAgIFJl
ZlB0cjxMYXllckNocm9taXVtPiBwYXJlbnQgPSBMYXllckNocm9taXVtOjpjcmVhdGUoMCk7Cisg
ICAgUmVmUHRyPExheWVyQ2hyb21pdW0+IHJlbmRlclN1cmZhY2UxID0gTGF5ZXJDaHJvbWl1bTo6
Y3JlYXRlKDApOworICAgIFJlZlB0cjxMYXllckNocm9taXVtV2l0aEZvcmNlZERyYXdzQ29udGVu
dD4gY2hpbGQgPSBhZG9wdFJlZihuZXcgTGF5ZXJDaHJvbWl1bVdpdGhGb3JjZWREcmF3c0NvbnRl
bnQoMCkpOworICAgIHJlbmRlclN1cmZhY2UxLT5zZXRPcGFjaXR5KDApOworCisgICAgY29uc3Qg
VHJhbnNmb3JtYXRpb25NYXRyaXggaWRlbnRpdHlNYXRyaXg7CisgICAgc2V0TGF5ZXJQcm9wZXJ0
aWVzRm9yVGVzdGluZyhyZW5kZXJTdXJmYWNlMS5nZXQoKSwgaWRlbnRpdHlNYXRyaXgsIGlkZW50
aXR5TWF0cml4LCBGbG9hdFBvaW50Ojp6ZXJvKCksIEZsb2F0UG9pbnQ6Onplcm8oKSwgSW50U2l6
ZSgxMCwgMTApLCBmYWxzZSk7CisgICAgc2V0TGF5ZXJQcm9wZXJ0aWVzRm9yVGVzdGluZyhjaGls
ZC5nZXQoKSwgaWRlbnRpdHlNYXRyaXgsIGlkZW50aXR5TWF0cml4LCBGbG9hdFBvaW50Ojp6ZXJv
KCksIEZsb2F0UG9pbnQ6Onplcm8oKSwgSW50U2l6ZSgxMCwgMTApLCBmYWxzZSk7CisKKyAgICBw
YXJlbnQtPmNyZWF0ZVJlbmRlclN1cmZhY2UoKTsKKyAgICBwYXJlbnQtPmFkZENoaWxkKHJlbmRl
clN1cmZhY2UxKTsKKyAgICByZW5kZXJTdXJmYWNlMS0+Y3JlYXRlUmVuZGVyU3VyZmFjZSgpOwor
ICAgIHJlbmRlclN1cmZhY2UxLT5hZGRDaGlsZChjaGlsZCk7CisKKyAgICBWZWN0b3I8UmVmUHRy
PExheWVyQ2hyb21pdW0+ID4gcmVuZGVyU3VyZmFjZUxheWVyTGlzdDsKKyAgICBWZWN0b3I8UmVm
UHRyPExheWVyQ2hyb21pdW0+ID4gZHVtbXlMYXllckxpc3Q7CisgICAgaW50IGR1bW15TWF4VGV4
dHVyZVNpemUgPSA1MTI7CisgICAgQ0NMYXllclRyZWVIb3N0Q29tbW9uOjpjYWxjdWxhdGVEcmF3
VHJhbnNmb3Jtc0FuZFZpc2liaWxpdHkocGFyZW50LmdldCgpLCBwYXJlbnQuZ2V0KCksIGlkZW50
aXR5TWF0cml4LCBpZGVudGl0eU1hdHJpeCwgcmVuZGVyU3VyZmFjZUxheWVyTGlzdCwgZHVtbXlM
YXllckxpc3QsIGR1bW15TWF4VGV4dHVyZVNpemUpOworCisgICAgLy8gU2luY2UgdGhlIGxheWVy
IGlzIHRyYW5zcGFyZW50LCByZW5kZXJTdXJmYWNlMS0+cmVuZGVyU3VyZmFjZSgpIHNob3VsZCBu
b3QgaGF2ZSBnb3R0ZW4gYWRkZWQgYW55d2hlcmUuCisgICAgLy8gQWxzbywgdGhlIGRyYXdhYmxl
IGNvbnRlbnQgcmVjdCBzaG91bGQgbm90IGhhdmUgYmVlbiBleHRlbmRlZCBieSB0aGUgY2hpbGRy
ZW4uCisgICAgRVhQRUNUX0VRKHBhcmVudC0+cmVuZGVyU3VyZmFjZSgpLT5sYXllckxpc3QoKS5z
aXplKCksIDBVKTsKKyAgICBFWFBFQ1RfRVEocmVuZGVyU3VyZmFjZUxheWVyTGlzdC5zaXplKCks
IDBVKTsKKyAgICBFWFBFQ1RfRVEocGFyZW50LT5kcmF3YWJsZUNvbnRlbnRSZWN0KCksIEludFJl
Y3QoKSk7Cit9CisKIC8vIEZJWE1FOgogLy8gY29udGludWUgd29ya2luZyBvbiBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg5NDIKIC8vICAtIGFkZCBhIHRlc3QgdG8g
dmVyaWZ5IGNsaXBwaW5nIHRoYXQgY2hhbmdlcyB0aGUgImNlbnRlciBwb2ludCIK
</data>

          </attachment>
      

    </bug>

</bugzilla>