<?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>39138</bug_id>
          
          <creation_ts>2010-05-14 14:35:24 -0700</creation_ts>
          <short_desc>[chromium] Fix LayerChromium hierarchy update methods</short_desc>
          <delta_ts>2010-05-15 16:53:48 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Vangelis Kokkevis">vangelis</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>fishd</cc>
    
    <cc>kbr</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>226004</commentid>
    <comment_count>0</comment_count>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2010-05-14 14:35:24 -0700</bug_when>
    <thetext>LayerChromium methods for handling sublayers do not always properly update the parent to child and child to parent pointers in sync.
For example, insertSublayer() will not remove the layer from it&apos;s current parent before re-parenting it and a similar issue exists with setSublayers().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226009</commentid>
    <comment_count>1</comment_count>
      <attachid>56112</attachid>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2010-05-14 14:48:57 -0700</bug_when>
    <thetext>Created attachment 56112
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226050</commentid>
    <comment_count>2</comment_count>
      <attachid>56112</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-05-14 16:30:33 -0700</bug_when>
    <thetext>Comment on attachment 56112
Proposed patch

WebCore/ChangeLog:5
 +  
comment #0 from the bug report contains a nice description of the
issues this change is fixing.  it&apos;d be good to include that info
here.

WebCore/platform/graphics/chromium/LayerChromium.cpp:81
 +      removeAllSublayers();
It looks like the point here is to trigger the call to notifySyncRequired?
The clearing of m_sublayers does not seem to be critical since that will
happen anyways because we are inside ~LayerChromium.

WebCore/platform/graphics/chromium/LayerChromium.cpp:175
 +      if (referenceIndex == -1)
nit: it&apos;s good to use ASSERT_NOT_REACHED so you don&apos;t have to
repeat the expression in cases like this.

LGTM otherwise.  The ownership changes make sense.  R- for these nits.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226057</commentid>
    <comment_count>3</comment_count>
      <attachid>56122</attachid>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2010-05-14 16:53:20 -0700</bug_when>
    <thetext>Created attachment 56122
Patch addressing review comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226058</commentid>
    <comment_count>4</comment_count>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2010-05-14 16:54:29 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 56112 [details])
&gt; WebCore/ChangeLog:5
&gt;  +  
&gt; comment #0 from the bug report contains a nice description of the
&gt; issues this change is fixing.  it&apos;d be good to include that info
&gt; here.
&gt; 
Done.

&gt; WebCore/platform/graphics/chromium/LayerChromium.cpp:81
&gt;  +      removeAllSublayers();
&gt; It looks like the point here is to trigger the call to notifySyncRequired?
&gt; The clearing of m_sublayers does not seem to be critical since that will
&gt; happen anyways because we are inside ~LayerChromium.
&gt; 
Good point.  I don&apos;t actually need to call notifySyncRequired since to get to the destructor this layer must have already been removed from a parent that would have called the method.

&gt; WebCore/platform/graphics/chromium/LayerChromium.cpp:175
&gt;  +      if (referenceIndex == -1)
&gt; nit: it&apos;s good to use ASSERT_NOT_REACHED so you don&apos;t have to
&gt; repeat the expression in cases like this.

Done.

&gt; 
&gt; LGTM otherwise.  The ownership changes make sense.  R- for these nits.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226064</commentid>
    <comment_count>5</comment_count>
      <attachid>56122</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-05-14 17:00:53 -0700</bug_when>
    <thetext>Comment on attachment 56122
Patch addressing review comments

WebCore/platform/graphics/chromium/LayerChromium.cpp:174
 +          ASSERT_NOT_REACHED();
it looked like you had previously made this return to avoid crashing in release mode.  is that still important?  if not, then this could just be written ASSERT(referenceIndex != -1)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226067</commentid>
    <comment_count>6</comment_count>
      <attachid>56125</attachid>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2010-05-14 17:08:47 -0700</bug_when>
    <thetext>Created attachment 56125
patch - Fixing ASSERT issue</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226250</commentid>
    <comment_count>7</comment_count>
      <attachid>56125</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-05-15 08:01:57 -0700</bug_when>
    <thetext>Comment on attachment 56125
patch - Fixing ASSERT issue

Rejecting patch 56125 from commit-queue.

Unexpected failure when landing patch!  Please file a bug against webkit-patch.
Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-commit-queue.appspot.com&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--build&apos;, &apos;--non-interactive&apos;, &apos;--ignore-builders&apos;, &apos;--build-style=both&apos;, &apos;--quiet&apos;, 56125, &apos;--test&apos;, &apos;--parent-command=commit-queue&apos;, &apos;--no-update&apos;]&quot; exit_code: 1
Logging in as eseidel@chromium.org...
Fetching: https://bugs.webkit.org/attachment.cgi?id=56125&amp;action=edit
Fetching: https://bugs.webkit.org/show_bug.cgi?id=39138&amp;ctype=xml
Processing 1 patch from 1 bug.
Cleaning working directory
Processing patch 56125 from bug 39138.
ERROR: /Users/eseidel/Projects/CommitQueue/WebCore/ChangeLog neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226262</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-15 09:09:04 -0700</bug_when>
    <thetext>In the future, please do not remove the Reviewed by NOBODY line from the ChangeLog.  The tools use that to fill in the proper reviewer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226263</commentid>
    <comment_count>9</comment_count>
      <attachid>56157</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-15 09:12:50 -0700</bug_when>
    <thetext>Created attachment 56157
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226334</commentid>
    <comment_count>10</comment_count>
      <attachid>56157</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-05-15 15:19:14 -0700</bug_when>
    <thetext>Comment on attachment 56157
Patch for landing

Clearing flags on attachment: 56157

Committed r59554: &lt;http://trac.webkit.org/changeset/59554&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226335</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-05-15 15:19:21 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226344</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-15 16:11:12 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/59554 might have broken Tiger Intel Release</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226346</commentid>
    <comment_count>13</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-15 16:21:15 -0700</bug_when>
    <thetext>Yes. This broke two builders. I need a way to roll out from my phone. :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226347</commentid>
    <comment_count>14</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-15 16:21:51 -0700</bug_when>
    <thetext>Really?  That seems odd.  I&apos;ll investigate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226348</commentid>
    <comment_count>15</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-15 16:23:28 -0700</bug_when>
    <thetext>The gtk failures is a different test, and it&apos;s only failed once.
fast/workers/storage/execute-sql-args-worker.html

This patch didn&apos;t touch any non-chromium code.  I&apos;m running the tests again to confirm.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226352</commentid>
    <comment_count>16</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-15 16:53:48 -0700</bug_when>
    <thetext>The bots rolled green again.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56112</attachid>
            <date>2010-05-14 14:48:57 -0700</date>
            <delta_ts>2010-05-14 16:53:20 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>layerHierarchy39138.txt</filename>
            <type>text/plain</type>
            <size>5897</size>
            <attacher name="Vangelis Kokkevis">vangelis</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1OTQ5MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMTAtMDUtMTQgIFZhbmdlbGlzIEtva2tldmlzICA8dmFuZ2VsaXNA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIEZpeGluZyBMYXllckNocm9taXVtIGhpZXJhcmNoeSB1
cGRhdGVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MzkxMzgKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21p
dW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDaHJvbWl1bTo6fkxheWVyQ2hyb21pdW0p
OgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDaHJvbWl1bTo6c2V0TmVlZHNDb21taXQpOiBUeXBv
IGZpeC4KKyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ2hyb21pdW06Omluc2VydFN1YmxheWVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ2hyb21pdW06OnJlbW92ZUZyb21TdXBlcmxheWVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ2hyb21pdW06OnJlbW92ZVN1YmxheWVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkxheWVyQ2hyb21pdW06OnJlcGxhY2VTdWJsYXllcik6CisgICAgICAgIChX
ZWJDb3JlOjpMYXllckNocm9taXVtOjpyZW1vdmVBbGxTdWJsYXllcnMpOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5ZXJDaHJvbWl1bTo6c2V0U3VibGF5ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXll
ckNocm9taXVtOjpzZXRTdXBlcmxheWVyKToKKwogMjAxMC0wNS0xNCAgRXJpYyBTZWlkZWwgIDxl
cmljQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjU5NDg5
LgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVt
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xh
eWVyQ2hyb21pdW0uY3BwCShyZXZpc2lvbiA1OTQ4MSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc1LDgg
Kzc1LDEwIEBAIExheWVyQ2hyb21pdW06OkxheWVyQ2hyb21pdW0oTGF5ZXJUeXBlIHQKIAogTGF5
ZXJDaHJvbWl1bTo6fkxheWVyQ2hyb21pdW0oKQogewotICAgIC8vIE91ciBzdXBlcmxheWVyIHNo
b3VsZCBiZSBob2xkaW5nIGEgcmVmZXJlbmNlIHRvIHVzLCBzbyB0aGVyZSBzaG91bGQgYmUgbm8g
d2F5IGZvciB1cyB0byBiZSBkZXN0cm95ZWQgd2hpbGUgd2Ugc3RpbGwgaGF2ZSBhIHN1cGVybGF5
ZXIuCisgICAgLy8gT3VyIHN1cGVybGF5ZXIgc2hvdWxkIGJlIGhvbGRpbmcgYSByZWZlcmVuY2Ug
dG8gdXMgc28gdGhlcmUgc2hvdWxkIGJlIG5vCisgICAgLy8gd2F5IGZvciB1cyB0byBiZSBkZXN0
cm95ZWQgd2hpbGUgd2Ugc3RpbGwgaGF2ZSBhIHN1cGVybGF5ZXIuCiAgICAgQVNTRVJUKCFzdXBl
cmxheWVyKCkpOworICAgIHJlbW92ZUFsbFN1YmxheWVycygpOwogfQogCiB2b2lkIExheWVyQ2hy
b21pdW06OnVwZGF0ZUdyYXBoaWNzQ29udGV4dChjb25zdCBJbnRTaXplJiBzaXplKQpAQCAtMTIz
LDcgKzEyNSw3IEBAIHZvaWQgTGF5ZXJDaHJvbWl1bTo6ZHJhd0RlYnVnQm9yZGVyKCkKIHZvaWQg
TGF5ZXJDaHJvbWl1bTo6c2V0TmVlZHNDb21taXQoKQogewogICAgIC8vIENhbGwgbm90aWZ5U3lu
Y1JlcXVpcmVkKCksIHdoaWNoIGluIHRoaXMgaW1wbGVtZW50YXRpb24gcGx1bWJzIHRocm91Z2gg
dG8KLSAgICAvLyBjYWxsIHNldFJvb3RMYXllck5lZWRzRGlzcGxheSgpIG9uIHRoZSBXZWJWaWV3
LCB3aGljaCB3aWxsIGNhdXNlIExheWVyUmVuZGVyZXJTa2lhCisgICAgLy8gY2FsbCBzZXRSb290
TGF5ZXJOZWVkc0Rpc3BsYXkoKSBvbiB0aGUgV2ViVmlldywgd2hpY2ggd2lsbCBjYXVzZSBMYXll
clJlbmRlcmVyQ2hyb21pdW0KICAgICAvLyB0byByZW5kZXIgYSBmcmFtZS4KICAgICBpZiAobV9v
d25lcikKICAgICAgICAgbV9vd25lci0+bm90aWZ5U3luY1JlcXVpcmVkKCk7CkBAIC0xMzcsMTgg
KzEzOSwxNiBAQCB2b2lkIExheWVyQ2hyb21pdW06OmFkZFN1YmxheWVyKFBhc3NSZWZQCiB2b2lk
IExheWVyQ2hyb21pdW06Omluc2VydFN1YmxheWVyKFBhc3NSZWZQdHI8TGF5ZXJDaHJvbWl1bT4g
c3VibGF5ZXIsIHNpemVfdCBpbmRleCkKIHsKICAgICBpbmRleCA9IG1pbihpbmRleCwgbV9zdWJs
YXllcnMuc2l6ZSgpKTsKLSAgICBtX3N1YmxheWVycy5pbnNlcnQoaW5kZXgsIHN1YmxheWVyKTsK
KyAgICBzdWJsYXllci0+cmVtb3ZlRnJvbVN1cGVybGF5ZXIoKTsKICAgICBzdWJsYXllci0+c2V0
U3VwZXJsYXllcih0aGlzKTsKKyAgICBtX3N1YmxheWVycy5pbnNlcnQoaW5kZXgsIHN1YmxheWVy
KTsKICAgICBzZXROZWVkc0NvbW1pdCgpOwogfQogCiB2b2lkIExheWVyQ2hyb21pdW06OnJlbW92
ZUZyb21TdXBlcmxheWVyKCkKIHsKLSAgICBMYXllckNocm9taXVtKiBzdXBlcmxheWVyID0gdGhp
cy0+c3VwZXJsYXllcigpOwotICAgIGlmICghc3VwZXJsYXllcikKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgc3VwZXJsYXllci0+cmVtb3ZlU3VibGF5ZXIodGhpcyk7CisgICAgaWYgKG1fc3VwZXJs
YXllcikKKyAgICAgICAgbV9zdXBlcmxheWVyLT5yZW1vdmVTdWJsYXllcih0aGlzKTsKIH0KIAog
dm9pZCBMYXllckNocm9taXVtOjpyZW1vdmVTdWJsYXllcihMYXllckNocm9taXVtKiBzdWJsYXll
cikKQEAgLTE1NywxMSArMTU3LDMyIEBAIHZvaWQgTGF5ZXJDaHJvbWl1bTo6cmVtb3ZlU3VibGF5
ZXIoTGF5ZXIKICAgICBpZiAoZm91bmRJbmRleCA9PSAtMSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgbV9zdWJsYXllcnMucmVtb3ZlKGZvdW5kSW5kZXgpOwogICAgIHN1YmxheWVyLT5zZXRTdXBl
cmxheWVyKDApOworICAgIG1fc3VibGF5ZXJzLnJlbW92ZShmb3VuZEluZGV4KTsKICAgICBzZXRO
ZWVkc0NvbW1pdCgpOwogfQogCit2b2lkIExheWVyQ2hyb21pdW06OnJlcGxhY2VTdWJsYXllcihM
YXllckNocm9taXVtKiByZWZlcmVuY2UsIFBhc3NSZWZQdHI8TGF5ZXJDaHJvbWl1bT4gbmV3TGF5
ZXIpCit7CisgICAgQVNTRVJUX0FSRyhyZWZlcmVuY2UsIHJlZmVyZW5jZSk7CisgICAgQVNTRVJU
X0FSRyhyZWZlcmVuY2UsIHJlZmVyZW5jZS0+c3VwZXJsYXllcigpID09IHRoaXMpOworCisgICAg
aWYgKHJlZmVyZW5jZSA9PSBuZXdMYXllcikKKyAgICAgICAgcmV0dXJuOworCisgICAgaW50IHJl
ZmVyZW5jZUluZGV4ID0gaW5kZXhPZlN1YmxheWVyKHJlZmVyZW5jZSk7CisgICAgQVNTRVJUKHJl
ZmVyZW5jZUluZGV4ICE9IC0xKTsKKyAgICBpZiAocmVmZXJlbmNlSW5kZXggPT0gLTEpCisgICAg
ICAgIHJldHVybjsKKworICAgIHJlZmVyZW5jZS0+cmVtb3ZlRnJvbVN1cGVybGF5ZXIoKTsKKwor
ICAgIGlmIChuZXdMYXllcikgeworICAgICAgICBuZXdMYXllci0+cmVtb3ZlRnJvbVN1cGVybGF5
ZXIoKTsKKyAgICAgICAgaW5zZXJ0U3VibGF5ZXIobmV3TGF5ZXIsIHJlZmVyZW5jZUluZGV4KTsK
KyAgICB9Cit9CisKIGludCBMYXllckNocm9taXVtOjppbmRleE9mU3VibGF5ZXIoY29uc3QgTGF5
ZXJDaHJvbWl1bSogcmVmZXJlbmNlKQogewogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9z
dWJsYXllcnMuc2l6ZSgpOyBpKyspIHsKQEAgLTIxNCwxOCArMjM1LDIzIEBAIGNvbnN0IExheWVy
Q2hyb21pdW0qIExheWVyQ2hyb21pdW06OnJvb3QKIAogdm9pZCBMYXllckNocm9taXVtOjpyZW1v
dmVBbGxTdWJsYXllcnMoKQogewotICAgIG1fc3VibGF5ZXJzLmNsZWFyKCk7CisgICAgd2hpbGUg
KG1fc3VibGF5ZXJzLnNpemUoKSkgeworICAgICAgICBMYXllckNocm9taXVtKiBsYXllciA9IG1f
c3VibGF5ZXJzWzBdLmdldCgpOworICAgICAgICBBU1NFUlQobGF5ZXItPnN1cGVybGF5ZXIoKSk7
CisgICAgICAgIGxheWVyLT5yZW1vdmVGcm9tU3VwZXJsYXllcigpOworICAgIH0KICAgICBzZXRO
ZWVkc0NvbW1pdCgpOwogfQogCiB2b2lkIExheWVyQ2hyb21pdW06OnNldFN1YmxheWVycyhjb25z
dCBWZWN0b3I8UmVmUHRyPExheWVyQ2hyb21pdW0+ID4mIHN1YmxheWVycykKIHsKLSAgICBtX3N1
YmxheWVycyA9IHN1YmxheWVyczsKLX0KKyAgICBpZiAoc3VibGF5ZXJzID09IG1fc3VibGF5ZXJz
KQorICAgICAgICByZXR1cm47CiAKLXZvaWQgTGF5ZXJDaHJvbWl1bTo6c2V0U3VwZXJsYXllcihM
YXllckNocm9taXVtKiBzdXBlcmxheWVyKQotewotICAgIG1fc3VwZXJsYXllciA9IHN1cGVybGF5
ZXI7CisgICAgcmVtb3ZlQWxsU3VibGF5ZXJzKCk7CisgICAgc2l6ZV90IGxpc3RTaXplID0gc3Vi
bGF5ZXJzLnNpemUoKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3RTaXplOyBpKysp
CisgICAgICAgIGFkZFN1YmxheWVyKHN1YmxheWVyc1tpXSk7CiB9CiAKIExheWVyQ2hyb21pdW0q
IExheWVyQ2hyb21pdW06OnN1cGVybGF5ZXIoKSBjb25zdApJbmRleDogV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmgJKHJldmlzaW9uIDU5
NDgxKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVt
LmgJKHdvcmtpbmcgY29weSkKQEAgLTY3LDYgKzY3LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBh
ZGRTdWJsYXllcihQYXNzUmVmUHRyPExheWVyQ2hyb21pdW0+KTsKICAgICB2b2lkIGluc2VydFN1
YmxheWVyKFBhc3NSZWZQdHI8TGF5ZXJDaHJvbWl1bT4sIHNpemVfdCBpbmRleCk7CisgICAgdm9p
ZCByZXBsYWNlU3VibGF5ZXIoTGF5ZXJDaHJvbWl1bSogcmVmZXJlbmNlLCBQYXNzUmVmUHRyPExh
eWVyQ2hyb21pdW0+IG5ld0xheWVyKTsKICAgICB2b2lkIHJlbW92ZUZyb21TdXBlcmxheWVyKCk7
CiAKICAgICB2b2lkIHNldEFuY2hvclBvaW50KGNvbnN0IEZsb2F0UG9pbnQmIGFuY2hvclBvaW50
KSB7IG1fYW5jaG9yUG9pbnQgPSBhbmNob3JQb2ludDsgc2V0TmVlZHNDb21taXQoKTsgfQpAQCAt
MTQwLDcgKzE0MSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFN1YmxheWVyVHJhbnNmb3JtKGNv
bnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0pIHsgbV9zdWJsYXllclRyYW5zZm9y
bSA9IHRyYW5zZm9ybTsgc2V0TmVlZHNDb21taXQoKTsgfQogICAgIGNvbnN0IFRyYW5zZm9ybWF0
aW9uTWF0cml4JiBzdWJsYXllclRyYW5zZm9ybSgpIGNvbnN0IHsgcmV0dXJuIG1fc3VibGF5ZXJU
cmFuc2Zvcm07IH0KIAotICAgIHZvaWQgc2V0U3VwZXJsYXllcihMYXllckNocm9taXVtKiBzdXBl
cmxheWVyKTsKICAgICBMYXllckNocm9taXVtKiBzdXBlcmxheWVyKCkgY29uc3Q7CiAKIApAQCAt
MTY0LDYgKzE2NCw4IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHNldE5lZWRzQ29tbWl0KCk7CiAK
KyAgICB2b2lkIHNldFN1cGVybGF5ZXIoTGF5ZXJDaHJvbWl1bSogc3VwZXJsYXllcikgeyBtX3N1
cGVybGF5ZXIgPSBzdXBlcmxheWVyOyB9CisKICAgICB2b2lkIHBhaW50TWUoKTsKIAogICAgIHNp
emVfdCBudW1TdWJsYXllcnMoKSBjb25zdAo=
</data>
<flag name="review"
          id="40460"
          type_id="1"
          status="-"
          setter="fishd"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56122</attachid>
            <date>2010-05-14 16:53:20 -0700</date>
            <delta_ts>2010-05-14 17:08:47 -0700</delta_ts>
            <desc>Patch addressing review comments</desc>
            <filename>layerHierarchy39138_1.txt</filename>
            <type>text/plain</type>
            <size>5941</size>
            <attacher name="Vangelis Kokkevis">vangelis</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1OTQ5MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMTAtMDUtMTQgIFZhbmdlbGlzIEtva2tldmlzICA8dmFuZ2VsaXNA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIEZpeGluZyBMYXllckNocm9taXVtIGhpZXJhcmNoeSB1
cGRhdGVzIHdoZXJlIGR1ZSB0byBtaXhlZCBvd25lcnNoaXAKKyAgICAgICAgaGFuZGxpbmcsIHN1
YmxheWVyIHVwZGF0ZXMgZGlkbid0IGFsd2F5cyBwcm9wZXJseSB1cGRhdGUgcGFyZW50LXRvLWNo
aWxkCisgICAgICAgIGFuZCBjaGlsZC10by1wYXJlbnQgcG9pbnRlcnMgaW4gc3luYy4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM5MTM4CisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkxheWVyQ2hyb21pdW06On5MYXllckNocm9taXVtKToKKyAgICAgICAgKFdl
YkNvcmU6OkxheWVyQ2hyb21pdW06OnNldE5lZWRzQ29tbWl0KTogVHlwbyBmaXguCisgICAgICAg
IChXZWJDb3JlOjpMYXllckNocm9taXVtOjppbnNlcnRTdWJsYXllcik6CisgICAgICAgIChXZWJD
b3JlOjpMYXllckNocm9taXVtOjpyZW1vdmVGcm9tU3VwZXJsYXllcik6CisgICAgICAgIChXZWJD
b3JlOjpMYXllckNocm9taXVtOjpyZW1vdmVTdWJsYXllcik6CisgICAgICAgIChXZWJDb3JlOjpM
YXllckNocm9taXVtOjpyZXBsYWNlU3VibGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJD
aHJvbWl1bTo6cmVtb3ZlQWxsU3VibGF5ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ2hy
b21pdW06OnNldFN1YmxheWVycyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vTGF5ZXJDaHJvbWl1bS5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDaHJvbWl1bTo6c2V0
U3VwZXJsYXllcik6CisKIDIwMTAtMDUtMTQgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3Jn
PgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI1OTQ4OS4KSW5kZXg6IFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmNw
cAkocmV2aXNpb24gNTk0ODEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0xheWVyQ2hyb21pdW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NSw3ICs3NSw4IEBAIExheWVy
Q2hyb21pdW06OkxheWVyQ2hyb21pdW0oTGF5ZXJUeXBlIHQKIAogTGF5ZXJDaHJvbWl1bTo6fkxh
eWVyQ2hyb21pdW0oKQogewotICAgIC8vIE91ciBzdXBlcmxheWVyIHNob3VsZCBiZSBob2xkaW5n
IGEgcmVmZXJlbmNlIHRvIHVzLCBzbyB0aGVyZSBzaG91bGQgYmUgbm8gd2F5IGZvciB1cyB0byBi
ZSBkZXN0cm95ZWQgd2hpbGUgd2Ugc3RpbGwgaGF2ZSBhIHN1cGVybGF5ZXIuCisgICAgLy8gT3Vy
IHN1cGVybGF5ZXIgc2hvdWxkIGJlIGhvbGRpbmcgYSByZWZlcmVuY2UgdG8gdXMgc28gdGhlcmUg
c2hvdWxkIGJlIG5vCisgICAgLy8gd2F5IGZvciB1cyB0byBiZSBkZXN0cm95ZWQgd2hpbGUgd2Ug
c3RpbGwgaGF2ZSBhIHN1cGVybGF5ZXIuCiAgICAgQVNTRVJUKCFzdXBlcmxheWVyKCkpOwogfQog
CkBAIC0xMjMsNyArMTI0LDcgQEAgdm9pZCBMYXllckNocm9taXVtOjpkcmF3RGVidWdCb3JkZXIo
KQogdm9pZCBMYXllckNocm9taXVtOjpzZXROZWVkc0NvbW1pdCgpCiB7CiAgICAgLy8gQ2FsbCBu
b3RpZnlTeW5jUmVxdWlyZWQoKSwgd2hpY2ggaW4gdGhpcyBpbXBsZW1lbnRhdGlvbiBwbHVtYnMg
dGhyb3VnaCB0bwotICAgIC8vIGNhbGwgc2V0Um9vdExheWVyTmVlZHNEaXNwbGF5KCkgb24gdGhl
IFdlYlZpZXcsIHdoaWNoIHdpbGwgY2F1c2UgTGF5ZXJSZW5kZXJlclNraWEKKyAgICAvLyBjYWxs
IHNldFJvb3RMYXllck5lZWRzRGlzcGxheSgpIG9uIHRoZSBXZWJWaWV3LCB3aGljaCB3aWxsIGNh
dXNlIExheWVyUmVuZGVyZXJDaHJvbWl1bQogICAgIC8vIHRvIHJlbmRlciBhIGZyYW1lLgogICAg
IGlmIChtX293bmVyKQogICAgICAgICBtX293bmVyLT5ub3RpZnlTeW5jUmVxdWlyZWQoKTsKQEAg
LTEzNywxOCArMTM4LDE2IEBAIHZvaWQgTGF5ZXJDaHJvbWl1bTo6YWRkU3VibGF5ZXIoUGFzc1Jl
ZlAKIHZvaWQgTGF5ZXJDaHJvbWl1bTo6aW5zZXJ0U3VibGF5ZXIoUGFzc1JlZlB0cjxMYXllckNo
cm9taXVtPiBzdWJsYXllciwgc2l6ZV90IGluZGV4KQogewogICAgIGluZGV4ID0gbWluKGluZGV4
LCBtX3N1YmxheWVycy5zaXplKCkpOwotICAgIG1fc3VibGF5ZXJzLmluc2VydChpbmRleCwgc3Vi
bGF5ZXIpOworICAgIHN1YmxheWVyLT5yZW1vdmVGcm9tU3VwZXJsYXllcigpOwogICAgIHN1Ymxh
eWVyLT5zZXRTdXBlcmxheWVyKHRoaXMpOworICAgIG1fc3VibGF5ZXJzLmluc2VydChpbmRleCwg
c3VibGF5ZXIpOwogICAgIHNldE5lZWRzQ29tbWl0KCk7CiB9CiAKIHZvaWQgTGF5ZXJDaHJvbWl1
bTo6cmVtb3ZlRnJvbVN1cGVybGF5ZXIoKQogewotICAgIExheWVyQ2hyb21pdW0qIHN1cGVybGF5
ZXIgPSB0aGlzLT5zdXBlcmxheWVyKCk7Ci0gICAgaWYgKCFzdXBlcmxheWVyKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBzdXBlcmxheWVyLT5yZW1vdmVTdWJsYXllcih0aGlzKTsKKyAgICBpZiAo
bV9zdXBlcmxheWVyKQorICAgICAgICBtX3N1cGVybGF5ZXItPnJlbW92ZVN1YmxheWVyKHRoaXMp
OwogfQogCiB2b2lkIExheWVyQ2hyb21pdW06OnJlbW92ZVN1YmxheWVyKExheWVyQ2hyb21pdW0q
IHN1YmxheWVyKQpAQCAtMTU3LDExICsxNTYsMzEgQEAgdm9pZCBMYXllckNocm9taXVtOjpyZW1v
dmVTdWJsYXllcihMYXllcgogICAgIGlmIChmb3VuZEluZGV4ID09IC0xKQogICAgICAgICByZXR1
cm47CiAKLSAgICBtX3N1YmxheWVycy5yZW1vdmUoZm91bmRJbmRleCk7CiAgICAgc3VibGF5ZXIt
PnNldFN1cGVybGF5ZXIoMCk7CisgICAgbV9zdWJsYXllcnMucmVtb3ZlKGZvdW5kSW5kZXgpOwog
ICAgIHNldE5lZWRzQ29tbWl0KCk7CiB9CiAKK3ZvaWQgTGF5ZXJDaHJvbWl1bTo6cmVwbGFjZVN1
YmxheWVyKExheWVyQ2hyb21pdW0qIHJlZmVyZW5jZSwgUGFzc1JlZlB0cjxMYXllckNocm9taXVt
PiBuZXdMYXllcikKK3sKKyAgICBBU1NFUlRfQVJHKHJlZmVyZW5jZSwgcmVmZXJlbmNlKTsKKyAg
ICBBU1NFUlRfQVJHKHJlZmVyZW5jZSwgcmVmZXJlbmNlLT5zdXBlcmxheWVyKCkgPT0gdGhpcyk7
CisKKyAgICBpZiAocmVmZXJlbmNlID09IG5ld0xheWVyKQorICAgICAgICByZXR1cm47CisKKyAg
ICBpbnQgcmVmZXJlbmNlSW5kZXggPSBpbmRleE9mU3VibGF5ZXIocmVmZXJlbmNlKTsKKyAgICBp
ZiAocmVmZXJlbmNlSW5kZXggPT0gLTEpCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
CisgICAgcmVmZXJlbmNlLT5yZW1vdmVGcm9tU3VwZXJsYXllcigpOworCisgICAgaWYgKG5ld0xh
eWVyKSB7CisgICAgICAgIG5ld0xheWVyLT5yZW1vdmVGcm9tU3VwZXJsYXllcigpOworICAgICAg
ICBpbnNlcnRTdWJsYXllcihuZXdMYXllciwgcmVmZXJlbmNlSW5kZXgpOworICAgIH0KK30KKwog
aW50IExheWVyQ2hyb21pdW06OmluZGV4T2ZTdWJsYXllcihjb25zdCBMYXllckNocm9taXVtKiBy
ZWZlcmVuY2UpCiB7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX3N1YmxheWVycy5zaXpl
KCk7IGkrKykgewpAQCAtMjE0LDE4ICsyMzMsMjMgQEAgY29uc3QgTGF5ZXJDaHJvbWl1bSogTGF5
ZXJDaHJvbWl1bTo6cm9vdAogCiB2b2lkIExheWVyQ2hyb21pdW06OnJlbW92ZUFsbFN1YmxheWVy
cygpCiB7Ci0gICAgbV9zdWJsYXllcnMuY2xlYXIoKTsKKyAgICB3aGlsZSAobV9zdWJsYXllcnMu
c2l6ZSgpKSB7CisgICAgICAgIExheWVyQ2hyb21pdW0qIGxheWVyID0gbV9zdWJsYXllcnNbMF0u
Z2V0KCk7CisgICAgICAgIEFTU0VSVChsYXllci0+c3VwZXJsYXllcigpKTsKKyAgICAgICAgbGF5
ZXItPnJlbW92ZUZyb21TdXBlcmxheWVyKCk7CisgICAgfQogICAgIHNldE5lZWRzQ29tbWl0KCk7
CiB9CiAKIHZvaWQgTGF5ZXJDaHJvbWl1bTo6c2V0U3VibGF5ZXJzKGNvbnN0IFZlY3RvcjxSZWZQ
dHI8TGF5ZXJDaHJvbWl1bT4gPiYgc3VibGF5ZXJzKQogewotICAgIG1fc3VibGF5ZXJzID0gc3Vi
bGF5ZXJzOwotfQorICAgIGlmIChzdWJsYXllcnMgPT0gbV9zdWJsYXllcnMpCisgICAgICAgIHJl
dHVybjsKIAotdm9pZCBMYXllckNocm9taXVtOjpzZXRTdXBlcmxheWVyKExheWVyQ2hyb21pdW0q
IHN1cGVybGF5ZXIpCi17Ci0gICAgbV9zdXBlcmxheWVyID0gc3VwZXJsYXllcjsKKyAgICByZW1v
dmVBbGxTdWJsYXllcnMoKTsKKyAgICBzaXplX3QgbGlzdFNpemUgPSBzdWJsYXllcnMuc2l6ZSgp
OworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlzdFNpemU7IGkrKykKKyAgICAgICAgYWRk
U3VibGF5ZXIoc3VibGF5ZXJzW2ldKTsKIH0KIAogTGF5ZXJDaHJvbWl1bSogTGF5ZXJDaHJvbWl1
bTo6c3VwZXJsYXllcigpIGNvbnN0CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0xheWVyQ2hyb21pdW0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uaAkocmV2aXNpb24gNTk0ODEpCisrKyBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uaAkod29ya2luZyBj
b3B5KQpAQCAtNjcsNiArNjcsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGFkZFN1YmxheWVyKFBh
c3NSZWZQdHI8TGF5ZXJDaHJvbWl1bT4pOwogICAgIHZvaWQgaW5zZXJ0U3VibGF5ZXIoUGFzc1Jl
ZlB0cjxMYXllckNocm9taXVtPiwgc2l6ZV90IGluZGV4KTsKKyAgICB2b2lkIHJlcGxhY2VTdWJs
YXllcihMYXllckNocm9taXVtKiByZWZlcmVuY2UsIFBhc3NSZWZQdHI8TGF5ZXJDaHJvbWl1bT4g
bmV3TGF5ZXIpOwogICAgIHZvaWQgcmVtb3ZlRnJvbVN1cGVybGF5ZXIoKTsKIAogICAgIHZvaWQg
c2V0QW5jaG9yUG9pbnQoY29uc3QgRmxvYXRQb2ludCYgYW5jaG9yUG9pbnQpIHsgbV9hbmNob3JQ
b2ludCA9IGFuY2hvclBvaW50OyBzZXROZWVkc0NvbW1pdCgpOyB9CkBAIC0xNDAsNyArMTQxLDYg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0U3VibGF5ZXJUcmFuc2Zvcm0oY29uc3QgVHJhbnNmb3Jt
YXRpb25NYXRyaXgmIHRyYW5zZm9ybSkgeyBtX3N1YmxheWVyVHJhbnNmb3JtID0gdHJhbnNmb3Jt
OyBzZXROZWVkc0NvbW1pdCgpOyB9CiAgICAgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHN1
YmxheWVyVHJhbnNmb3JtKCkgY29uc3QgeyByZXR1cm4gbV9zdWJsYXllclRyYW5zZm9ybTsgfQog
Ci0gICAgdm9pZCBzZXRTdXBlcmxheWVyKExheWVyQ2hyb21pdW0qIHN1cGVybGF5ZXIpOwogICAg
IExheWVyQ2hyb21pdW0qIHN1cGVybGF5ZXIoKSBjb25zdDsKIAogCkBAIC0xNjQsNiArMTY0LDgg
QEAgcHJpdmF0ZToKIAogICAgIHZvaWQgc2V0TmVlZHNDb21taXQoKTsKIAorICAgIHZvaWQgc2V0
U3VwZXJsYXllcihMYXllckNocm9taXVtKiBzdXBlcmxheWVyKSB7IG1fc3VwZXJsYXllciA9IHN1
cGVybGF5ZXI7IH0KKwogICAgIHZvaWQgcGFpbnRNZSgpOwogCiAgICAgc2l6ZV90IG51bVN1Ymxh
eWVycygpIGNvbnN0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56125</attachid>
            <date>2010-05-14 17:08:47 -0700</date>
            <delta_ts>2010-05-15 09:12:40 -0700</delta_ts>
            <desc>patch - Fixing ASSERT issue</desc>
            <filename>layerHierarchy39138_2.txt</filename>
            <type>text/plain</type>
            <size>5967</size>
            <attacher name="Vangelis Kokkevis">vangelis</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1OTQ5MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMTAtMDUtMTQgIFZhbmdlbGlzIEtva2tldmlzICA8dmFuZ2VsaXNA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIEZpeGluZyBMYXllckNocm9taXVtIGhpZXJhcmNoeSB1
cGRhdGVzIHdoZXJlIGR1ZSB0byBtaXhlZCBvd25lcnNoaXAKKyAgICAgICAgaGFuZGxpbmcsIHN1
YmxheWVyIHVwZGF0ZXMgZGlkbid0IGFsd2F5cyBwcm9wZXJseSB1cGRhdGUgcGFyZW50LXRvLWNo
aWxkCisgICAgICAgIGFuZCBjaGlsZC10by1wYXJlbnQgcG9pbnRlcnMgaW4gc3luYy4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM5MTM4CisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkxheWVyQ2hyb21pdW06On5MYXllckNocm9taXVtKToKKyAgICAgICAgKFdl
YkNvcmU6OkxheWVyQ2hyb21pdW06OnNldE5lZWRzQ29tbWl0KTogVHlwbyBmaXguCisgICAgICAg
IChXZWJDb3JlOjpMYXllckNocm9taXVtOjppbnNlcnRTdWJsYXllcik6CisgICAgICAgIChXZWJD
b3JlOjpMYXllckNocm9taXVtOjpyZW1vdmVGcm9tU3VwZXJsYXllcik6CisgICAgICAgIChXZWJD
b3JlOjpMYXllckNocm9taXVtOjpyZW1vdmVTdWJsYXllcik6CisgICAgICAgIChXZWJDb3JlOjpM
YXllckNocm9taXVtOjpyZXBsYWNlU3VibGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJD
aHJvbWl1bTo6cmVtb3ZlQWxsU3VibGF5ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ2hy
b21pdW06OnNldFN1YmxheWVycyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vTGF5ZXJDaHJvbWl1bS5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDaHJvbWl1bTo6c2V0
U3VwZXJsYXllcik6CisKIDIwMTAtMDUtMTQgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3Jn
PgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI1OTQ4OS4KSW5kZXg6IFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmNw
cAkocmV2aXNpb24gNTk0ODEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0xheWVyQ2hyb21pdW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NSw3ICs3NSw4IEBAIExheWVy
Q2hyb21pdW06OkxheWVyQ2hyb21pdW0oTGF5ZXJUeXBlIHQKIAogTGF5ZXJDaHJvbWl1bTo6fkxh
eWVyQ2hyb21pdW0oKQogewotICAgIC8vIE91ciBzdXBlcmxheWVyIHNob3VsZCBiZSBob2xkaW5n
IGEgcmVmZXJlbmNlIHRvIHVzLCBzbyB0aGVyZSBzaG91bGQgYmUgbm8gd2F5IGZvciB1cyB0byBi
ZSBkZXN0cm95ZWQgd2hpbGUgd2Ugc3RpbGwgaGF2ZSBhIHN1cGVybGF5ZXIuCisgICAgLy8gT3Vy
IHN1cGVybGF5ZXIgc2hvdWxkIGJlIGhvbGRpbmcgYSByZWZlcmVuY2UgdG8gdXMgc28gdGhlcmUg
c2hvdWxkIGJlIG5vCisgICAgLy8gd2F5IGZvciB1cyB0byBiZSBkZXN0cm95ZWQgd2hpbGUgd2Ug
c3RpbGwgaGF2ZSBhIHN1cGVybGF5ZXIuCiAgICAgQVNTRVJUKCFzdXBlcmxheWVyKCkpOwogfQog
CkBAIC0xMjMsNyArMTI0LDcgQEAgdm9pZCBMYXllckNocm9taXVtOjpkcmF3RGVidWdCb3JkZXIo
KQogdm9pZCBMYXllckNocm9taXVtOjpzZXROZWVkc0NvbW1pdCgpCiB7CiAgICAgLy8gQ2FsbCBu
b3RpZnlTeW5jUmVxdWlyZWQoKSwgd2hpY2ggaW4gdGhpcyBpbXBsZW1lbnRhdGlvbiBwbHVtYnMg
dGhyb3VnaCB0bwotICAgIC8vIGNhbGwgc2V0Um9vdExheWVyTmVlZHNEaXNwbGF5KCkgb24gdGhl
IFdlYlZpZXcsIHdoaWNoIHdpbGwgY2F1c2UgTGF5ZXJSZW5kZXJlclNraWEKKyAgICAvLyBjYWxs
IHNldFJvb3RMYXllck5lZWRzRGlzcGxheSgpIG9uIHRoZSBXZWJWaWV3LCB3aGljaCB3aWxsIGNh
dXNlIExheWVyUmVuZGVyZXJDaHJvbWl1bQogICAgIC8vIHRvIHJlbmRlciBhIGZyYW1lLgogICAg
IGlmIChtX293bmVyKQogICAgICAgICBtX293bmVyLT5ub3RpZnlTeW5jUmVxdWlyZWQoKTsKQEAg
LTEzNywxOCArMTM4LDE2IEBAIHZvaWQgTGF5ZXJDaHJvbWl1bTo6YWRkU3VibGF5ZXIoUGFzc1Jl
ZlAKIHZvaWQgTGF5ZXJDaHJvbWl1bTo6aW5zZXJ0U3VibGF5ZXIoUGFzc1JlZlB0cjxMYXllckNo
cm9taXVtPiBzdWJsYXllciwgc2l6ZV90IGluZGV4KQogewogICAgIGluZGV4ID0gbWluKGluZGV4
LCBtX3N1YmxheWVycy5zaXplKCkpOwotICAgIG1fc3VibGF5ZXJzLmluc2VydChpbmRleCwgc3Vi
bGF5ZXIpOworICAgIHN1YmxheWVyLT5yZW1vdmVGcm9tU3VwZXJsYXllcigpOwogICAgIHN1Ymxh
eWVyLT5zZXRTdXBlcmxheWVyKHRoaXMpOworICAgIG1fc3VibGF5ZXJzLmluc2VydChpbmRleCwg
c3VibGF5ZXIpOwogICAgIHNldE5lZWRzQ29tbWl0KCk7CiB9CiAKIHZvaWQgTGF5ZXJDaHJvbWl1
bTo6cmVtb3ZlRnJvbVN1cGVybGF5ZXIoKQogewotICAgIExheWVyQ2hyb21pdW0qIHN1cGVybGF5
ZXIgPSB0aGlzLT5zdXBlcmxheWVyKCk7Ci0gICAgaWYgKCFzdXBlcmxheWVyKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBzdXBlcmxheWVyLT5yZW1vdmVTdWJsYXllcih0aGlzKTsKKyAgICBpZiAo
bV9zdXBlcmxheWVyKQorICAgICAgICBtX3N1cGVybGF5ZXItPnJlbW92ZVN1YmxheWVyKHRoaXMp
OwogfQogCiB2b2lkIExheWVyQ2hyb21pdW06OnJlbW92ZVN1YmxheWVyKExheWVyQ2hyb21pdW0q
IHN1YmxheWVyKQpAQCAtMTU3LDExICsxNTYsMzMgQEAgdm9pZCBMYXllckNocm9taXVtOjpyZW1v
dmVTdWJsYXllcihMYXllcgogICAgIGlmIChmb3VuZEluZGV4ID09IC0xKQogICAgICAgICByZXR1
cm47CiAKLSAgICBtX3N1YmxheWVycy5yZW1vdmUoZm91bmRJbmRleCk7CiAgICAgc3VibGF5ZXIt
PnNldFN1cGVybGF5ZXIoMCk7CisgICAgbV9zdWJsYXllcnMucmVtb3ZlKGZvdW5kSW5kZXgpOwog
ICAgIHNldE5lZWRzQ29tbWl0KCk7CiB9CiAKK3ZvaWQgTGF5ZXJDaHJvbWl1bTo6cmVwbGFjZVN1
YmxheWVyKExheWVyQ2hyb21pdW0qIHJlZmVyZW5jZSwgUGFzc1JlZlB0cjxMYXllckNocm9taXVt
PiBuZXdMYXllcikKK3sKKyAgICBBU1NFUlRfQVJHKHJlZmVyZW5jZSwgcmVmZXJlbmNlKTsKKyAg
ICBBU1NFUlRfQVJHKHJlZmVyZW5jZSwgcmVmZXJlbmNlLT5zdXBlcmxheWVyKCkgPT0gdGhpcyk7
CisKKyAgICBpZiAocmVmZXJlbmNlID09IG5ld0xheWVyKQorICAgICAgICByZXR1cm47CisKKyAg
ICBpbnQgcmVmZXJlbmNlSW5kZXggPSBpbmRleE9mU3VibGF5ZXIocmVmZXJlbmNlKTsKKyAgICBp
ZiAocmVmZXJlbmNlSW5kZXggPT0gLTEpIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICByZWZlcmVuY2UtPnJlbW92ZUZyb21TdXBl
cmxheWVyKCk7CisKKyAgICBpZiAobmV3TGF5ZXIpIHsKKyAgICAgICAgbmV3TGF5ZXItPnJlbW92
ZUZyb21TdXBlcmxheWVyKCk7CisgICAgICAgIGluc2VydFN1YmxheWVyKG5ld0xheWVyLCByZWZl
cmVuY2VJbmRleCk7CisgICAgfQorfQorCiBpbnQgTGF5ZXJDaHJvbWl1bTo6aW5kZXhPZlN1Ymxh
eWVyKGNvbnN0IExheWVyQ2hyb21pdW0qIHJlZmVyZW5jZSkKIHsKICAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IG1fc3VibGF5ZXJzLnNpemUoKTsgaSsrKSB7CkBAIC0yMTQsMTggKzIzNSwyMyBA
QCBjb25zdCBMYXllckNocm9taXVtKiBMYXllckNocm9taXVtOjpyb290CiAKIHZvaWQgTGF5ZXJD
aHJvbWl1bTo6cmVtb3ZlQWxsU3VibGF5ZXJzKCkKIHsKLSAgICBtX3N1YmxheWVycy5jbGVhcigp
OworICAgIHdoaWxlIChtX3N1YmxheWVycy5zaXplKCkpIHsKKyAgICAgICAgTGF5ZXJDaHJvbWl1
bSogbGF5ZXIgPSBtX3N1YmxheWVyc1swXS5nZXQoKTsKKyAgICAgICAgQVNTRVJUKGxheWVyLT5z
dXBlcmxheWVyKCkpOworICAgICAgICBsYXllci0+cmVtb3ZlRnJvbVN1cGVybGF5ZXIoKTsKKyAg
ICB9CiAgICAgc2V0TmVlZHNDb21taXQoKTsKIH0KIAogdm9pZCBMYXllckNocm9taXVtOjpzZXRT
dWJsYXllcnMoY29uc3QgVmVjdG9yPFJlZlB0cjxMYXllckNocm9taXVtPiA+JiBzdWJsYXllcnMp
CiB7Ci0gICAgbV9zdWJsYXllcnMgPSBzdWJsYXllcnM7Ci19CisgICAgaWYgKHN1YmxheWVycyA9
PSBtX3N1YmxheWVycykKKyAgICAgICAgcmV0dXJuOwogCi12b2lkIExheWVyQ2hyb21pdW06OnNl
dFN1cGVybGF5ZXIoTGF5ZXJDaHJvbWl1bSogc3VwZXJsYXllcikKLXsKLSAgICBtX3N1cGVybGF5
ZXIgPSBzdXBlcmxheWVyOworICAgIHJlbW92ZUFsbFN1YmxheWVycygpOworICAgIHNpemVfdCBs
aXN0U2l6ZSA9IHN1YmxheWVycy5zaXplKCk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBs
aXN0U2l6ZTsgaSsrKQorICAgICAgICBhZGRTdWJsYXllcihzdWJsYXllcnNbaV0pOwogfQogCiBM
YXllckNocm9taXVtKiBMYXllckNocm9taXVtOjpzdXBlcmxheWVyKCkgY29uc3QKSW5kZXg6IFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5o
CShyZXZpc2lvbiA1OTQ4MSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
TGF5ZXJDaHJvbWl1bS5oCSh3b3JraW5nIGNvcHkpCkBAIC02Nyw2ICs2Nyw3IEBAIHB1YmxpYzoK
IAogICAgIHZvaWQgYWRkU3VibGF5ZXIoUGFzc1JlZlB0cjxMYXllckNocm9taXVtPik7CiAgICAg
dm9pZCBpbnNlcnRTdWJsYXllcihQYXNzUmVmUHRyPExheWVyQ2hyb21pdW0+LCBzaXplX3QgaW5k
ZXgpOworICAgIHZvaWQgcmVwbGFjZVN1YmxheWVyKExheWVyQ2hyb21pdW0qIHJlZmVyZW5jZSwg
UGFzc1JlZlB0cjxMYXllckNocm9taXVtPiBuZXdMYXllcik7CiAgICAgdm9pZCByZW1vdmVGcm9t
U3VwZXJsYXllcigpOwogCiAgICAgdm9pZCBzZXRBbmNob3JQb2ludChjb25zdCBGbG9hdFBvaW50
JiBhbmNob3JQb2ludCkgeyBtX2FuY2hvclBvaW50ID0gYW5jaG9yUG9pbnQ7IHNldE5lZWRzQ29t
bWl0KCk7IH0KQEAgLTE0MCw3ICsxNDEsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTdWJsYXll
clRyYW5zZm9ybShjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtKSB7IG1fc3Vi
bGF5ZXJUcmFuc2Zvcm0gPSB0cmFuc2Zvcm07IHNldE5lZWRzQ29tbWl0KCk7IH0KICAgICBjb25z
dCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgc3VibGF5ZXJUcmFuc2Zvcm0oKSBjb25zdCB7IHJldHVy
biBtX3N1YmxheWVyVHJhbnNmb3JtOyB9CiAKLSAgICB2b2lkIHNldFN1cGVybGF5ZXIoTGF5ZXJD
aHJvbWl1bSogc3VwZXJsYXllcik7CiAgICAgTGF5ZXJDaHJvbWl1bSogc3VwZXJsYXllcigpIGNv
bnN0OwogCiAKQEAgLTE2NCw2ICsxNjQsOCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzZXROZWVk
c0NvbW1pdCgpOwogCisgICAgdm9pZCBzZXRTdXBlcmxheWVyKExheWVyQ2hyb21pdW0qIHN1cGVy
bGF5ZXIpIHsgbV9zdXBlcmxheWVyID0gc3VwZXJsYXllcjsgfQorCiAgICAgdm9pZCBwYWludE1l
KCk7CiAKICAgICBzaXplX3QgbnVtU3VibGF5ZXJzKCkgY29uc3QK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56157</attachid>
            <date>2010-05-15 09:12:50 -0700</date>
            <delta_ts>2010-05-15 15:19:14 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-39138-20100515091248.patch</filename>
            <type>text/plain</type>
            <size>6246</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YjY3NWQ2NjVmNjg2ZjAxNjgxZDBmYjk2YjMzNzBhNzE0ZTg1ZDg3MS4uMTgzZjUwOTI0OTdjYjhk
NDg3MGRlZWYyNzBiNTNjZDhmOWQwNDYxYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMC0wNS0xNSAgVmFu
Z2VsaXMgS29ra2V2aXMgIDx2YW5nZWxpc0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgRGFyaW4gRmlzaGVyLgorCisgICAgICAgIEZpeGluZyBMYXllckNocm9taXVtIGhpZXJh
cmNoeSB1cGRhdGVzIHdoZXJlIGR1ZSB0byBtaXhlZCBvd25lcnNoaXAKKyAgICAgICAgaGFuZGxp
bmcsIHN1YmxheWVyIHVwZGF0ZXMgZGlkbid0IGFsd2F5cyBwcm9wZXJseSB1cGRhdGUgcGFyZW50
LXRvLWNoaWxkCisgICAgICAgIGFuZCBjaGlsZC10by1wYXJlbnQgcG9pbnRlcnMgaW4gc3luYy4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM5MTM4CisK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ2hyb21pdW06On5MYXllckNocm9taXVtKToKKyAgICAg
ICAgKFdlYkNvcmU6OkxheWVyQ2hyb21pdW06OnNldE5lZWRzQ29tbWl0KTogVHlwbyBmaXguCisg
ICAgICAgIChXZWJDb3JlOjpMYXllckNocm9taXVtOjppbnNlcnRTdWJsYXllcik6CisgICAgICAg
IChXZWJDb3JlOjpMYXllckNocm9taXVtOjpyZW1vdmVGcm9tU3VwZXJsYXllcik6CisgICAgICAg
IChXZWJDb3JlOjpMYXllckNocm9taXVtOjpyZW1vdmVTdWJsYXllcik6CisgICAgICAgIChXZWJD
b3JlOjpMYXllckNocm9taXVtOjpyZXBsYWNlU3VibGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6
TGF5ZXJDaHJvbWl1bTo6cmVtb3ZlQWxsU3VibGF5ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6Okxh
eWVyQ2hyb21pdW06OnNldFN1YmxheWVycyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDaHJvbWl1
bTo6c2V0U3VwZXJsYXllcik6CisKIDIwMTAtMDUtMTUgIExlYW5kcm8gUGVyZWlyYSAgPGxlYW5k
cm9AcHJvZnVzaW9uLm1vYmk+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBUcmVhdC4KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1
bS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0u
Y3BwCmluZGV4IDQ1NDBhYzEwMmE3OTg3MGFiMDI3OWVmYTcyODdkYjI2MTUxZWRhMTcuLjFmNDM1
NmY1ZmMwMjdjNGM2NmI5ZjhkOWNiNjk3YzRmY2MzYjVkZTUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5jcHAKKysrIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmNwcApAQCAtNzUsNyAr
NzUsOCBAQCBMYXllckNocm9taXVtOjpMYXllckNocm9taXVtKExheWVyVHlwZSB0eXBlLCBHcmFw
aGljc0xheWVyQ2hyb21pdW0qIG93bmVyKQogCiBMYXllckNocm9taXVtOjp+TGF5ZXJDaHJvbWl1
bSgpCiB7Ci0gICAgLy8gT3VyIHN1cGVybGF5ZXIgc2hvdWxkIGJlIGhvbGRpbmcgYSByZWZlcmVu
Y2UgdG8gdXMsIHNvIHRoZXJlIHNob3VsZCBiZSBubyB3YXkgZm9yIHVzIHRvIGJlIGRlc3Ryb3ll
ZCB3aGlsZSB3ZSBzdGlsbCBoYXZlIGEgc3VwZXJsYXllci4KKyAgICAvLyBPdXIgc3VwZXJsYXll
ciBzaG91bGQgYmUgaG9sZGluZyBhIHJlZmVyZW5jZSB0byB1cyBzbyB0aGVyZSBzaG91bGQgYmUg
bm8KKyAgICAvLyB3YXkgZm9yIHVzIHRvIGJlIGRlc3Ryb3llZCB3aGlsZSB3ZSBzdGlsbCBoYXZl
IGEgc3VwZXJsYXllci4KICAgICBBU1NFUlQoIXN1cGVybGF5ZXIoKSk7CiB9CiAKQEAgLTEyMyw3
ICsxMjQsNyBAQCB2b2lkIExheWVyQ2hyb21pdW06OmRyYXdEZWJ1Z0JvcmRlcigpCiB2b2lkIExh
eWVyQ2hyb21pdW06OnNldE5lZWRzQ29tbWl0KCkKIHsKICAgICAvLyBDYWxsIG5vdGlmeVN5bmNS
ZXF1aXJlZCgpLCB3aGljaCBpbiB0aGlzIGltcGxlbWVudGF0aW9uIHBsdW1icyB0aHJvdWdoIHRv
Ci0gICAgLy8gY2FsbCBzZXRSb290TGF5ZXJOZWVkc0Rpc3BsYXkoKSBvbiB0aGUgV2ViVmlldywg
d2hpY2ggd2lsbCBjYXVzZSBMYXllclJlbmRlcmVyU2tpYQorICAgIC8vIGNhbGwgc2V0Um9vdExh
eWVyTmVlZHNEaXNwbGF5KCkgb24gdGhlIFdlYlZpZXcsIHdoaWNoIHdpbGwgY2F1c2UgTGF5ZXJS
ZW5kZXJlckNocm9taXVtCiAgICAgLy8gdG8gcmVuZGVyIGEgZnJhbWUuCiAgICAgaWYgKG1fb3du
ZXIpCiAgICAgICAgIG1fb3duZXItPm5vdGlmeVN5bmNSZXF1aXJlZCgpOwpAQCAtMTM3LDE4ICsx
MzgsMTYgQEAgdm9pZCBMYXllckNocm9taXVtOjphZGRTdWJsYXllcihQYXNzUmVmUHRyPExheWVy
Q2hyb21pdW0+IHN1YmxheWVyKQogdm9pZCBMYXllckNocm9taXVtOjppbnNlcnRTdWJsYXllcihQ
YXNzUmVmUHRyPExheWVyQ2hyb21pdW0+IHN1YmxheWVyLCBzaXplX3QgaW5kZXgpCiB7CiAgICAg
aW5kZXggPSBtaW4oaW5kZXgsIG1fc3VibGF5ZXJzLnNpemUoKSk7Ci0gICAgbV9zdWJsYXllcnMu
aW5zZXJ0KGluZGV4LCBzdWJsYXllcik7CisgICAgc3VibGF5ZXItPnJlbW92ZUZyb21TdXBlcmxh
eWVyKCk7CiAgICAgc3VibGF5ZXItPnNldFN1cGVybGF5ZXIodGhpcyk7CisgICAgbV9zdWJsYXll
cnMuaW5zZXJ0KGluZGV4LCBzdWJsYXllcik7CiAgICAgc2V0TmVlZHNDb21taXQoKTsKIH0KIAog
dm9pZCBMYXllckNocm9taXVtOjpyZW1vdmVGcm9tU3VwZXJsYXllcigpCiB7Ci0gICAgTGF5ZXJD
aHJvbWl1bSogc3VwZXJsYXllciA9IHRoaXMtPnN1cGVybGF5ZXIoKTsKLSAgICBpZiAoIXN1cGVy
bGF5ZXIpCi0gICAgICAgIHJldHVybjsKLQotICAgIHN1cGVybGF5ZXItPnJlbW92ZVN1YmxheWVy
KHRoaXMpOworICAgIGlmIChtX3N1cGVybGF5ZXIpCisgICAgICAgIG1fc3VwZXJsYXllci0+cmVt
b3ZlU3VibGF5ZXIodGhpcyk7CiB9CiAKIHZvaWQgTGF5ZXJDaHJvbWl1bTo6cmVtb3ZlU3VibGF5
ZXIoTGF5ZXJDaHJvbWl1bSogc3VibGF5ZXIpCkBAIC0xNTcsMTEgKzE1NiwzMyBAQCB2b2lkIExh
eWVyQ2hyb21pdW06OnJlbW92ZVN1YmxheWVyKExheWVyQ2hyb21pdW0qIHN1YmxheWVyKQogICAg
IGlmIChmb3VuZEluZGV4ID09IC0xKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3N1YmxheWVy
cy5yZW1vdmUoZm91bmRJbmRleCk7CiAgICAgc3VibGF5ZXItPnNldFN1cGVybGF5ZXIoMCk7Cisg
ICAgbV9zdWJsYXllcnMucmVtb3ZlKGZvdW5kSW5kZXgpOwogICAgIHNldE5lZWRzQ29tbWl0KCk7
CiB9CiAKK3ZvaWQgTGF5ZXJDaHJvbWl1bTo6cmVwbGFjZVN1YmxheWVyKExheWVyQ2hyb21pdW0q
IHJlZmVyZW5jZSwgUGFzc1JlZlB0cjxMYXllckNocm9taXVtPiBuZXdMYXllcikKK3sKKyAgICBB
U1NFUlRfQVJHKHJlZmVyZW5jZSwgcmVmZXJlbmNlKTsKKyAgICBBU1NFUlRfQVJHKHJlZmVyZW5j
ZSwgcmVmZXJlbmNlLT5zdXBlcmxheWVyKCkgPT0gdGhpcyk7CisKKyAgICBpZiAocmVmZXJlbmNl
ID09IG5ld0xheWVyKQorICAgICAgICByZXR1cm47CisKKyAgICBpbnQgcmVmZXJlbmNlSW5kZXgg
PSBpbmRleE9mU3VibGF5ZXIocmVmZXJlbmNlKTsKKyAgICBpZiAocmVmZXJlbmNlSW5kZXggPT0g
LTEpIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICByZWZlcmVuY2UtPnJlbW92ZUZyb21TdXBlcmxheWVyKCk7CisKKyAgICBpZiAo
bmV3TGF5ZXIpIHsKKyAgICAgICAgbmV3TGF5ZXItPnJlbW92ZUZyb21TdXBlcmxheWVyKCk7Cisg
ICAgICAgIGluc2VydFN1YmxheWVyKG5ld0xheWVyLCByZWZlcmVuY2VJbmRleCk7CisgICAgfQor
fQorCiBpbnQgTGF5ZXJDaHJvbWl1bTo6aW5kZXhPZlN1YmxheWVyKGNvbnN0IExheWVyQ2hyb21p
dW0qIHJlZmVyZW5jZSkKIHsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fc3VibGF5ZXJz
LnNpemUoKTsgaSsrKSB7CkBAIC0yMTQsMTggKzIzNSwyMyBAQCBjb25zdCBMYXllckNocm9taXVt
KiBMYXllckNocm9taXVtOjpyb290TGF5ZXIoKSBjb25zdAogCiB2b2lkIExheWVyQ2hyb21pdW06
OnJlbW92ZUFsbFN1YmxheWVycygpCiB7Ci0gICAgbV9zdWJsYXllcnMuY2xlYXIoKTsKKyAgICB3
aGlsZSAobV9zdWJsYXllcnMuc2l6ZSgpKSB7CisgICAgICAgIExheWVyQ2hyb21pdW0qIGxheWVy
ID0gbV9zdWJsYXllcnNbMF0uZ2V0KCk7CisgICAgICAgIEFTU0VSVChsYXllci0+c3VwZXJsYXll
cigpKTsKKyAgICAgICAgbGF5ZXItPnJlbW92ZUZyb21TdXBlcmxheWVyKCk7CisgICAgfQogICAg
IHNldE5lZWRzQ29tbWl0KCk7CiB9CiAKIHZvaWQgTGF5ZXJDaHJvbWl1bTo6c2V0U3VibGF5ZXJz
KGNvbnN0IFZlY3RvcjxSZWZQdHI8TGF5ZXJDaHJvbWl1bT4gPiYgc3VibGF5ZXJzKQogewotICAg
IG1fc3VibGF5ZXJzID0gc3VibGF5ZXJzOwotfQorICAgIGlmIChzdWJsYXllcnMgPT0gbV9zdWJs
YXllcnMpCisgICAgICAgIHJldHVybjsKIAotdm9pZCBMYXllckNocm9taXVtOjpzZXRTdXBlcmxh
eWVyKExheWVyQ2hyb21pdW0qIHN1cGVybGF5ZXIpCi17Ci0gICAgbV9zdXBlcmxheWVyID0gc3Vw
ZXJsYXllcjsKKyAgICByZW1vdmVBbGxTdWJsYXllcnMoKTsKKyAgICBzaXplX3QgbGlzdFNpemUg
PSBzdWJsYXllcnMuc2l6ZSgpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlzdFNpemU7
IGkrKykKKyAgICAgICAgYWRkU3VibGF5ZXIoc3VibGF5ZXJzW2ldKTsKIH0KIAogTGF5ZXJDaHJv
bWl1bSogTGF5ZXJDaHJvbWl1bTo6c3VwZXJsYXllcigpIGNvbnN0CmRpZmYgLS1naXQgYS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uaCBiL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5oCmluZGV4IDU1YjEyODhk
Y2I1OWJjMDk5ZTkyZWZiMzliOTU4OTlhOGYzYmVkNjUuLmNmYzQwMmZkNTAxNGRmNzI2MTU0M2Nj
YjZiNmExNWQyMjYxMGQxMDQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5oCkBAIC02Nyw2ICs2Nyw3IEBAIHB1YmxpYzoKIAogICAg
IHZvaWQgYWRkU3VibGF5ZXIoUGFzc1JlZlB0cjxMYXllckNocm9taXVtPik7CiAgICAgdm9pZCBp
bnNlcnRTdWJsYXllcihQYXNzUmVmUHRyPExheWVyQ2hyb21pdW0+LCBzaXplX3QgaW5kZXgpOwor
ICAgIHZvaWQgcmVwbGFjZVN1YmxheWVyKExheWVyQ2hyb21pdW0qIHJlZmVyZW5jZSwgUGFzc1Jl
ZlB0cjxMYXllckNocm9taXVtPiBuZXdMYXllcik7CiAgICAgdm9pZCByZW1vdmVGcm9tU3VwZXJs
YXllcigpOwogCiAgICAgdm9pZCBzZXRBbmNob3JQb2ludChjb25zdCBGbG9hdFBvaW50JiBhbmNo
b3JQb2ludCkgeyBtX2FuY2hvclBvaW50ID0gYW5jaG9yUG9pbnQ7IHNldE5lZWRzQ29tbWl0KCk7
IH0KQEAgLTE0MCw3ICsxNDEsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTdWJsYXllclRyYW5z
Zm9ybShjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtKSB7IG1fc3VibGF5ZXJU
cmFuc2Zvcm0gPSB0cmFuc2Zvcm07IHNldE5lZWRzQ29tbWl0KCk7IH0KICAgICBjb25zdCBUcmFu
c2Zvcm1hdGlvbk1hdHJpeCYgc3VibGF5ZXJUcmFuc2Zvcm0oKSBjb25zdCB7IHJldHVybiBtX3N1
YmxheWVyVHJhbnNmb3JtOyB9CiAKLSAgICB2b2lkIHNldFN1cGVybGF5ZXIoTGF5ZXJDaHJvbWl1
bSogc3VwZXJsYXllcik7CiAgICAgTGF5ZXJDaHJvbWl1bSogc3VwZXJsYXllcigpIGNvbnN0Owog
CiAKQEAgLTE2NCw2ICsxNjQsOCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzZXROZWVkc0NvbW1p
dCgpOwogCisgICAgdm9pZCBzZXRTdXBlcmxheWVyKExheWVyQ2hyb21pdW0qIHN1cGVybGF5ZXIp
IHsgbV9zdXBlcmxheWVyID0gc3VwZXJsYXllcjsgfQorCiAgICAgdm9pZCBwYWludE1lKCk7CiAK
ICAgICBzaXplX3QgbnVtU3VibGF5ZXJzKCkgY29uc3QK
</data>

          </attachment>
      

    </bug>

</bugzilla>