<?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>65377</bug_id>
          
          <creation_ts>2011-07-29 08:00:01 -0700</creation_ts>
          <short_desc>Hidden text nodes slow down position traversing</short_desc>
          <delta_ts>2012-01-25 11:00:34 -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>Text</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>LATER</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>77027</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yong Li">yong.li.webkit</reporter>
          <assigned_to name="Yong Li">yong.li.webkit</assigned_to>
          <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>gustavo.noronha</cc>
    
    <cc>gustavo</cc>
    
    <cc>justin.garcia</cc>
    
    <cc>leviw</cc>
    
    <cc>rniwa</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>443941</commentid>
    <comment_count>0</comment_count>
      <attachid>102361</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2011-07-29 08:00:01 -0700</bug_when>
    <thetext>Created attachment 102361
the test case

When WebKit traverses positions, it wastes CPU time on hidden text nodes.

Open the test case in a WebKit browser, click the blank area on the left of the visible text, you will see the page doesn&apos;t respond for text selection any more. This is because WebKit is busy in traversing hidden text nodes.

The test case doesn&apos;t exist in real world. However pages with hidden text do exist in real world, and if we fix this, we could probably boost selection performance in some cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443944</commentid>
    <comment_count>1</comment_count>
      <attachid>102364</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2011-07-29 08:21:13 -0700</bug_when>
    <thetext>Created attachment 102364
proposed patch

There may be more places we can optimize in Position related code. Is it a correct approach?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443945</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-29 08:25:04 -0700</bug_when>
    <thetext>Attachment 102364 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebCore/editing/htmlediting.cpp:222:  Declaration has space between type name and * in RenderObject *renderer  [whitespace/declaration] [3]
Source/WebCore/editing/htmlediting.cpp:248:  Declaration has space between type name and * in RenderObject *renderer  [whitespace/declaration] [3]
Total errors found: 2 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443952</commentid>
    <comment_count>3</comment_count>
      <attachid>102364</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-07-29 08:33:51 -0700</bug_when>
    <thetext>Comment on attachment 102364
proposed patch

Attachment 102364 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/9266519</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443954</commentid>
    <comment_count>4</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2011-07-29 08:36:41 -0700</bug_when>
    <thetext>Yong, would you have numbers to share?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443956</commentid>
    <comment_count>5</comment_count>
      <attachid>102367</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2011-07-29 08:40:20 -0700</bug_when>
    <thetext>Created attachment 102367
proposed patch again</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443988</commentid>
    <comment_count>6</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2011-07-29 10:33:57 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Yong, would you have numbers to share?

No numbers. The result is significant with the test case. Without the patch, browser freezes. With the patch, you cannot feel any slowness</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443990</commentid>
    <comment_count>7</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2011-07-29 10:37:12 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; Created an attachment (id=102361) [details]
&gt; the test case
&gt; 
&gt; When WebKit traverses positions, it wastes CPU time on hidden text nodes.
&gt; 
&gt; Open the test case in a WebKit browser, click the blank area on the left of the visible text, you will see the page doesn&apos;t respond for text selection any more. This is because WebKit is busy in traversing hidden text nodes.
&gt; 
&gt; The test case doesn&apos;t exist in real world. However pages with hidden text do exist in real world, and if we fix this, we could probably boost selection performance in some cases.

Correction: &quot;click the blank area on the left of...&quot; shouldbe &quot;on the right of&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>444458</commentid>
    <comment_count>8</comment_count>
      <attachid>102367</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-07-31 14:37:58 -0700</bug_when>
    <thetext>Comment on attachment 102367
proposed patch again

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

&gt; Source/WebCore/ChangeLog:10
&gt; +        No new tests because it doesn&apos;t fix any layout issue.

We have a layout test system for making performance tests that check that performance has the correct order of magnitude. These tests are in the LayoutTests/perf directory using the Magnitude object. Using that you should be able to make a test that uses giant hidden text nodes to show the massive speedup from this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446285</commentid>
    <comment_count>9</comment_count>
      <attachid>102367</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2011-08-03 19:07:05 -0700</bug_when>
    <thetext>Comment on attachment 102367
proposed patch again

will write a layout test...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456198</commentid>
    <comment_count>10</comment_count>
      <attachid>105019</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2011-08-24 10:54:53 -0700</bug_when>
    <thetext>Created attachment 105019
With a test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456199</commentid>
    <comment_count>11</comment_count>
      <attachid>105019</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2011-08-24 10:55:20 -0700</bug_when>
    <thetext>Comment on attachment 105019
With a test case

forgot to add change log for layouttest</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456206</commentid>
    <comment_count>12</comment_count>
      <attachid>105021</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2011-08-24 11:00:55 -0700</bug_when>
    <thetext>Created attachment 105021
The patch with test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456221</commentid>
    <comment_count>13</comment_count>
      <attachid>105021</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-24 11:10:56 -0700</bug_when>
    <thetext>Comment on attachment 105021
The patch with test case

Attachment 105021 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/9486175</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456238</commentid>
    <comment_count>14</comment_count>
      <attachid>105021</attachid>
    <who name="Collabora GTK+ EWS bot">gustavo.noronha</who>
    <bug_when>2011-08-24 11:22:31 -0700</bug_when>
    <thetext>Comment on attachment 105021
The patch with test case

Attachment 105021 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/9487204</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456255</commentid>
    <comment_count>15</comment_count>
      <attachid>105021</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-08-24 11:34:01 -0700</bug_when>
    <thetext>Comment on attachment 105021
The patch with test case

Attachment 105021 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/9490139</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456256</commentid>
    <comment_count>16</comment_count>
      <attachid>105021</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-08-24 11:34:52 -0700</bug_when>
    <thetext>Comment on attachment 105021
The patch with test case

Attachment 105021 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/9488190</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456262</commentid>
    <comment_count>17</comment_count>
      <attachid>105021</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-24 11:40:20 -0700</bug_when>
    <thetext>Comment on attachment 105021
The patch with test case

Attachment 105021 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/9486194</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456284</commentid>
    <comment_count>18</comment_count>
      <attachid>105035</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2011-08-24 12:01:50 -0700</bug_when>
    <thetext>Created attachment 105035
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456501</commentid>
    <comment_count>19</comment_count>
      <attachid>105035</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-08-24 16:00:42 -0700</bug_when>
    <thetext>Comment on attachment 105035
the patch

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

&gt; LayoutTests/ChangeLog:13
&gt; +011-08-24  Andrew Scherkus  &lt;scherkus@chromium.org&gt;

Patch deletes the &quot;2&quot; here!

&gt; Source/WebCore/ChangeLog:25
&gt; +011-08-24  Sam Weinig  &lt;sam@webkit.org&gt;

Patch deletes the &quot;2&quot; here!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456515</commentid>
    <comment_count>20</comment_count>
      <attachid>105035</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-08-24 16:16:17 -0700</bug_when>
    <thetext>Comment on attachment 105035
the patch

There are 8 different code changes here. There is only one test case. Does the test cover all 8 changes? Or do we need to make more test cases to make sure we cover the improvements in all 8?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>457113</commentid>
    <comment_count>21</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2011-08-25 13:48:30 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; (From update of attachment 105035 [details])
&gt; There are 8 different code changes here. There is only one test case. Does the test cover all 8 changes? Or do we need to make more test cases to make sure we cover the improvements in all 8?

Actually 6 of them can be tested by just manually clicking on the blank area of the page. However I cannot make DRT show the problem by using eventSender to simulate mouse events. So I ended up with using selection, which tests the other 2 changes. I&apos;ll give a further try...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>525605</commentid>
    <comment_count>22</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-12-21 14:32:15 -0800</bug_when>
    <thetext>Attachment 105035 was posted by a committer and has review+, assigning to Yong Li for commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542299</commentid>
    <comment_count>23</comment_count>
      <attachid>123945</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-01-25 08:37:06 -0800</bug_when>
    <thetext>Created attachment 123945
Fix the change log</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542347</commentid>
    <comment_count>24</comment_count>
      <attachid>123945</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-25 09:24:04 -0800</bug_when>
    <thetext>Comment on attachment 123945
Fix the change log

Clearing flags on attachment: 123945

Committed r105885: &lt;http://trac.webkit.org/changeset/105885&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542349</commentid>
    <comment_count>25</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-25 09:24:12 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542454</commentid>
    <comment_count>26</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-01-25 11:00:34 -0800</bug_when>
    <thetext>the patch seems obsolete and causes assertions. push this task to later</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>102361</attachid>
            <date>2011-07-29 08:00:01 -0700</date>
            <delta_ts>2012-01-25 08:37:06 -0800</delta_ts>
            <desc>the test case</desc>
            <filename>longhiddentext.html</filename>
            <type>text/html</type>
            <size>516</size>
            <attacher name="Yong Li">yong.li.webkit</attacher>
            
              <data encoding="base64">PGh0bWw+Cjx0aXRsZT5WZXJ5IExvbmcgSGlkZGVuIFRleHQ8L3RpdGxlPgo8Ym9keT4KV2hlbiBw
YWdlIGlzIGxvYWRlZCwgY2xpY2sgb24gYmxhbmsgYXJlYSBvbiB0aGUgbGVmdCBvZiB0aGlzIGxp
bmUuCjxkaXYgaWQ9IkhpZGRlblRleHQiPjwvZGl2Pgo8c2NyaXB0Pgp2YXIgaGlkZGVuRGl2ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ0hpZGRlblRleHQnKTsKaGlkZGVuRGl2LnN0eWxlLmRp
c3BsYXkgPSAnbm9uZSc7CnZhciBsb25nVGV4dCA9ICJzdXBlciBsb25nIGxvbmcgdGV4dCI7Cndo
aWxlIChsb25nVGV4dC5sZW5ndGggPCAxNiAqIDEwMjQgKiAxMDI0KSB7Cglsb25nVGV4dCA9IGxv
bmdUZXh0ICsgbG9uZ1RleHQ7Cn0KCmZvciAodmFyIGkgPSAwOyBpIDwgNTEyOyArK2kpIHsKICAg
IHZhciB0ZXh0Tm9kZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGxvbmdUZXh0KTsKICAgIGhp
ZGRlbkRpdi5hcHBlbmRDaGlsZCh0ZXh0Tm9kZSk7Cn0KPC9zY3JpcHQ+CjwvaHRtbD4KPC9ib2R5
PgoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102364</attachid>
            <date>2011-07-29 08:21:13 -0700</date>
            <delta_ts>2011-07-29 08:35:59 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>65377.patch</filename>
            <type>text/plain</type>
            <size>5439</size>
            <attacher name="Yong Li">yong.li.webkit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4ZTMzZTYxLi4wZmQ2N2VkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQg
QEAKKzIwMTEtMDctMjggIFlvbmcgTGkgIDx5b2xpQHJpbS5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY1Mzc3CisgICAgICAgIFNraXAgdGhlIGVudGlyZSBub2RlIHdoZW4g
aXQgaXMgcmlnaHQgdG8gZG8gc28sIGluc3RlYWQgb2Ygc3RlcHBpbmcKKyAgICAgICAgdGhyb3Vn
aCBldmVyeSBjaGFyYWN0ZXIsIHNvIHdlIHNhdmUgQ1BVIHRpbWUgb24gY2hlY2tpbmcgZXZlcnkg
cG9zaXRpb24KKyAgICAgICAgdW5uZWNlc3NhcmlseS4KKworICAgICAgICBObyBuZXcgdGVzdHMg
YmVjYXVzZSBpdCBkb2Vzbid0IGZpeCBhbnkgbGF5b3V0IGlzc3VlLgorCisgICAgICAgICogZG9t
L1Bvc2l0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvc2l0aW9uOjp1cHN0cmVhbSk6Cisg
ICAgICAgIChXZWJDb3JlOjpQb3NpdGlvbjo6ZG93bnN0cmVhbSk6CisgICAgICAgICogZG9tL1Bv
c2l0aW9uSXRlcmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9zaXRpb25JdGVyYXRvcjo6
bW92ZVRvTGVhZk5vZGVTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpQb3NpdGlvbkl0ZXJhdG9y
Ojptb3ZlVG9MZWFmTm9kZUVuZCk6CisgICAgICAgICogZG9tL1Bvc2l0aW9uSXRlcmF0b3IuaDoK
KyAgICAgICAgKiBlZGl0aW5nL2h0bWxlZGl0aW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om5l
eHRWaXN1YWxseURpc3RpbmN0Q2FuZGlkYXRlKToKKwogMjAxMS0wNy0yOCAgTGVhbmRybyBHcmFj
aWEgR2lsICA8bGVhbmRyb2dyYWNpYUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgRml4IHNwZWVj
aCBpbnB1dCBpY29uIHJlY3Qgb24gUlRMIGRpcmVjdGlvbnMuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vUG9zaXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNw
cAppbmRleCA2ZDNkMTU1Li44YTA4N2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
UG9zaXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAKQEAgLTYx
NSw4ICs2MTUsMTAgQEAgUG9zaXRpb24gUG9zaXRpb246OnVwc3RyZWFtKEVkaXRpbmdCb3VuZGFy
eUNyb3NzaW5nUnVsZSBydWxlKSBjb25zdAogCiAgICAgICAgIC8vIHNraXAgcG9zaXRpb24gaW4g
dW5yZW5kZXJlZCBvciBpbnZpc2libGUgbm9kZQogICAgICAgICBSZW5kZXJPYmplY3QqIHJlbmRl
cmVyID0gY3VycmVudE5vZGUtPnJlbmRlcmVyKCk7Ci0gICAgICAgIGlmICghcmVuZGVyZXIgfHwg
cmVuZGVyZXItPnN0eWxlKCktPnZpc2liaWxpdHkoKSAhPSBWSVNJQkxFKQorICAgICAgICBpZiAo
IXJlbmRlcmVyIHx8IHJlbmRlcmVyLT5zdHlsZSgpLT52aXNpYmlsaXR5KCkgIT0gVklTSUJMRSkg
eworICAgICAgICAgICAgY3VycmVudFBvcy5tb3ZlVG9MZWFmTm9kZVN0YXJ0KCk7CiAgICAgICAg
ICAgICBjb250aW51ZTsKKyAgICAgICAgfQogICAgICAgICAgICAgICAgICAKICAgICAgICAgaWYg
KHJ1bGUgPT0gQ2FuQ3Jvc3NFZGl0aW5nQm91bmRhcnkgJiYgYm91bmRhcnlDcm9zc2VkKSB7CiAg
ICAgICAgICAgICBsYXN0VmlzaWJsZSA9IGN1cnJlbnRQb3M7CkBAIC02MzYsNiArNjM4LDcgQEAg
UG9zaXRpb24gUG9zaXRpb246OnVwc3RyZWFtKEVkaXRpbmdCb3VuZGFyeUNyb3NzaW5nUnVsZSBy
dWxlKSBjb25zdAogICAgICAgICBpZiAoZWRpdGluZ0lnbm9yZXNDb250ZW50KGN1cnJlbnROb2Rl
KSB8fCBpc1RhYmxlRWxlbWVudChjdXJyZW50Tm9kZSkpIHsKICAgICAgICAgICAgIGlmIChjdXJy
ZW50UG9zLmF0RW5kT2ZOb2RlKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHBvc2l0aW9uQWZ0
ZXJOb2RlKGN1cnJlbnROb2RlKTsKKyAgICAgICAgICAgIGN1cnJlbnRQb3MubW92ZVRvTGVhZk5v
ZGVTdGFydCgpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIApAQCAtNzQ3LDgg
Kzc1MCwxMCBAQCBQb3NpdGlvbiBQb3NpdGlvbjo6ZG93bnN0cmVhbShFZGl0aW5nQm91bmRhcnlD
cm9zc2luZ1J1bGUgcnVsZSkgY29uc3QKIAogICAgICAgICAvLyBza2lwIHBvc2l0aW9uIGluIHVu
cmVuZGVyZWQgb3IgaW52aXNpYmxlIG5vZGUKICAgICAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJl
ciA9IGN1cnJlbnROb2RlLT5yZW5kZXJlcigpOwotICAgICAgICBpZiAoIXJlbmRlcmVyIHx8IHJl
bmRlcmVyLT5zdHlsZSgpLT52aXNpYmlsaXR5KCkgIT0gVklTSUJMRSkKKyAgICAgICAgaWYgKCFy
ZW5kZXJlciB8fCByZW5kZXJlci0+c3R5bGUoKS0+dmlzaWJpbGl0eSgpICE9IFZJU0lCTEUpIHsK
KyAgICAgICAgICAgIGN1cnJlbnRQb3MubW92ZVRvTGVhZk5vZGVFbmQoKTsKICAgICAgICAgICAg
IGNvbnRpbnVlOworICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgaWYgKHJ1bGUgPT0g
Q2FuQ3Jvc3NFZGl0aW5nQm91bmRhcnkgJiYgYm91bmRhcnlDcm9zc2VkKSB7CiAgICAgICAgICAg
ICBsYXN0VmlzaWJsZSA9IGN1cnJlbnRQb3M7CkBAIC03NjMsNiArNzY4LDcgQEAgUG9zaXRpb24g
UG9zaXRpb246OmRvd25zdHJlYW0oRWRpdGluZ0JvdW5kYXJ5Q3Jvc3NpbmdSdWxlIHJ1bGUpIGNv
bnN0CiAgICAgICAgIGlmIChlZGl0aW5nSWdub3Jlc0NvbnRlbnQoY3VycmVudE5vZGUpIHx8IGlz
VGFibGVFbGVtZW50KGN1cnJlbnROb2RlKSkgewogICAgICAgICAgICAgaWYgKGN1cnJlbnRQb3Mu
b2Zmc2V0SW5MZWFmTm9kZSgpIDw9IHJlbmRlcmVyLT5jYXJldE1pbk9mZnNldCgpKQogICAgICAg
ICAgICAgICAgIHJldHVybiBjcmVhdGVMZWdhY3lFZGl0aW5nUG9zaXRpb24oY3VycmVudE5vZGUs
IHJlbmRlcmVyLT5jYXJldE1pbk9mZnNldCgpKTsKKyAgICAgICAgICAgIGN1cnJlbnRQb3MubW92
ZVRvTGVhZk5vZGVFbmQoKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbkl0ZXJhdG9yLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbkl0ZXJhdG9yLmNwcAppbmRleCA0MjZjOTA0Li5mZTQ5MmIy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb25JdGVyYXRvci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uSXRlcmF0b3IuY3BwCkBAIC0xNzcsNCArMTc3
LDIwIEBAIGJvb2wgUG9zaXRpb25JdGVyYXRvcjo6aXNDYW5kaWRhdGUoKSBjb25zdAogICAgIHJl
dHVybiBmYWxzZTsKIH0KIAordm9pZCBQb3NpdGlvbkl0ZXJhdG9yOjptb3ZlVG9MZWFmTm9kZVN0
YXJ0KCkKK3sKKyAgICBpZiAoIW1fYW5jaG9yTm9kZSB8fCBtX25vZGVBZnRlclBvc2l0aW9uSW5B
bmNob3IgfHwgbV9hbmNob3JOb2RlLT5oYXNDaGlsZE5vZGVzKCkpCisgICAgICAgIHJldHVybjsK
KworICAgIG1fb2Zmc2V0SW5BbmNob3IgPSAwOworfQorCit2b2lkIFBvc2l0aW9uSXRlcmF0b3I6
Om1vdmVUb0xlYWZOb2RlRW5kKCkKK3sKKyAgICBpZiAoIW1fYW5jaG9yTm9kZSB8fCBtX25vZGVB
ZnRlclBvc2l0aW9uSW5BbmNob3IgfHwgbV9hbmNob3JOb2RlLT5oYXNDaGlsZE5vZGVzKCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIG1fb2Zmc2V0SW5BbmNob3IgPSBsYXN0T2Zmc2V0Rm9yRWRp
dGluZyhtX2FuY2hvck5vZGUpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb25JdGVyYXRvci5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL1Bvc2l0aW9uSXRlcmF0b3IuaAppbmRleCAwODMyOWJiLi5hMGRiMTEzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb25JdGVyYXRvci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Qb3NpdGlvbkl0ZXJhdG9yLmgKQEAgLTY0LDYgKzY0LDkgQEAgcHVibGljOgog
ICAgIGJvb2wgYXRFbmRPZk5vZGUoKSBjb25zdDsKICAgICBib29sIGlzQ2FuZGlkYXRlKCkgY29u
c3Q7CiAKKyAgICB2b2lkIG1vdmVUb0xlYWZOb2RlU3RhcnQoKTsKKyAgICB2b2lkIG1vdmVUb0xl
YWZOb2RlRW5kKCk7CisKIHByaXZhdGU6CiAgICAgTm9kZSogbV9hbmNob3JOb2RlOwogICAgIE5v
ZGUqIG1fbm9kZUFmdGVyUG9zaXRpb25JbkFuY2hvcjsgLy8gSWYgdGhpcyBpcyBub24tbnVsbCwg
bV9ub2RlQWZ0ZXJQb3NpdGlvbkluQW5jaG9yLT5wYXJlbnROb2RlKCkgPT0gbV9hbmNob3JOb2Rl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmNwcAppbmRleCA0MzQ3OTIxLi5lNzU2
MTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmNwcApAQCAtMjE5LDYgKzIx
OSw5IEBAIFBvc2l0aW9uIG5leHRWaXN1YWxseURpc3RpbmN0Q2FuZGlkYXRlKGNvbnN0IFBvc2l0
aW9uJiBwb3NpdGlvbikKICAgICAgICAgcCA9IHAubmV4dChDaGFyYWN0ZXIpOwogICAgICAgICBp
ZiAocC5pc0NhbmRpZGF0ZSgpICYmIHAuZG93bnN0cmVhbSgpICE9IGRvd25zdHJlYW1TdGFydCkK
ICAgICAgICAgICAgIHJldHVybiBwOworICAgICAgICBSZW5kZXJPYmplY3QgKnJlbmRlcmVyID0g
cC5ub2RlKCktPnJlbmRlcmVyKCk7CisgICAgICAgIGlmICghcmVuZGVyZXIgfHwgcmVuZGVyZXIt
PnN0eWxlKCktPnZpc2liaWxpdHkoKSAhPSBWSVNJQkxFKQorICAgICAgICAgICAgcC5tb3ZlVG9P
ZmZzZXQobGFzdE9mZnNldEZvckVkaXRpbmcocC5ub2RlKCkpKTsKICAgICB9CiAgICAgcmV0dXJu
IFBvc2l0aW9uKCk7CiB9CkBAIC0yNDIsNiArMjQ1LDkgQEAgUG9zaXRpb24gcHJldmlvdXNWaXN1
YWxseURpc3RpbmN0Q2FuZGlkYXRlKGNvbnN0IFBvc2l0aW9uJiBwb3NpdGlvbikKICAgICAgICAg
cCA9IHAucHJldmlvdXMoQ2hhcmFjdGVyKTsKICAgICAgICAgaWYgKHAuaXNDYW5kaWRhdGUoKSAm
JiBwLmRvd25zdHJlYW0oKSAhPSBkb3duc3RyZWFtU3RhcnQpCiAgICAgICAgICAgICByZXR1cm4g
cDsKKyAgICAgICAgUmVuZGVyT2JqZWN0ICpyZW5kZXJlciA9IHAubm9kZSgpLT5yZW5kZXJlcigp
OworICAgICAgICBpZiAoIXJlbmRlcmVyIHx8IHJlbmRlcmVyLT5zdHlsZSgpLT52aXNpYmlsaXR5
KCkgIT0gVklTSUJMRSkKKyAgICAgICAgICAgIHAubW92ZVRvT2Zmc2V0KDApOwogICAgIH0KICAg
ICByZXR1cm4gUG9zaXRpb24oKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102367</attachid>
            <date>2011-07-29 08:40:20 -0700</date>
            <delta_ts>2011-08-24 10:55:32 -0700</delta_ts>
            <desc>proposed patch again</desc>
            <filename>65377.patch</filename>
            <type>text/plain</type>
            <size>5469</size>
            <attacher name="Yong Li">yong.li.webkit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4ZTMzZTYxLi4wZmQ2N2VkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQg
QEAKKzIwMTEtMDctMjggIFlvbmcgTGkgIDx5b2xpQHJpbS5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY1Mzc3CisgICAgICAgIFNraXAgdGhlIGVudGlyZSBub2RlIHdoZW4g
aXQgaXMgcmlnaHQgdG8gZG8gc28sIGluc3RlYWQgb2Ygc3RlcHBpbmcKKyAgICAgICAgdGhyb3Vn
aCBldmVyeSBjaGFyYWN0ZXIsIHNvIHdlIHNhdmUgQ1BVIHRpbWUgb24gY2hlY2tpbmcgZXZlcnkg
cG9zaXRpb24KKyAgICAgICAgdW5uZWNlc3NhcmlseS4KKworICAgICAgICBObyBuZXcgdGVzdHMg
YmVjYXVzZSBpdCBkb2Vzbid0IGZpeCBhbnkgbGF5b3V0IGlzc3VlLgorCisgICAgICAgICogZG9t
L1Bvc2l0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvc2l0aW9uOjp1cHN0cmVhbSk6Cisg
ICAgICAgIChXZWJDb3JlOjpQb3NpdGlvbjo6ZG93bnN0cmVhbSk6CisgICAgICAgICogZG9tL1Bv
c2l0aW9uSXRlcmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9zaXRpb25JdGVyYXRvcjo6
bW92ZVRvTGVhZk5vZGVTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpQb3NpdGlvbkl0ZXJhdG9y
Ojptb3ZlVG9MZWFmTm9kZUVuZCk6CisgICAgICAgICogZG9tL1Bvc2l0aW9uSXRlcmF0b3IuaDoK
KyAgICAgICAgKiBlZGl0aW5nL2h0bWxlZGl0aW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om5l
eHRWaXN1YWxseURpc3RpbmN0Q2FuZGlkYXRlKToKKwogMjAxMS0wNy0yOCAgTGVhbmRybyBHcmFj
aWEgR2lsICA8bGVhbmRyb2dyYWNpYUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgRml4IHNwZWVj
aCBpbnB1dCBpY29uIHJlY3Qgb24gUlRMIGRpcmVjdGlvbnMuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vUG9zaXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNw
cAppbmRleCA2ZDNkMTU1Li44YTA4N2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
UG9zaXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAKQEAgLTYx
NSw4ICs2MTUsMTAgQEAgUG9zaXRpb24gUG9zaXRpb246OnVwc3RyZWFtKEVkaXRpbmdCb3VuZGFy
eUNyb3NzaW5nUnVsZSBydWxlKSBjb25zdAogCiAgICAgICAgIC8vIHNraXAgcG9zaXRpb24gaW4g
dW5yZW5kZXJlZCBvciBpbnZpc2libGUgbm9kZQogICAgICAgICBSZW5kZXJPYmplY3QqIHJlbmRl
cmVyID0gY3VycmVudE5vZGUtPnJlbmRlcmVyKCk7Ci0gICAgICAgIGlmICghcmVuZGVyZXIgfHwg
cmVuZGVyZXItPnN0eWxlKCktPnZpc2liaWxpdHkoKSAhPSBWSVNJQkxFKQorICAgICAgICBpZiAo
IXJlbmRlcmVyIHx8IHJlbmRlcmVyLT5zdHlsZSgpLT52aXNpYmlsaXR5KCkgIT0gVklTSUJMRSkg
eworICAgICAgICAgICAgY3VycmVudFBvcy5tb3ZlVG9MZWFmTm9kZVN0YXJ0KCk7CiAgICAgICAg
ICAgICBjb250aW51ZTsKKyAgICAgICAgfQogICAgICAgICAgICAgICAgICAKICAgICAgICAgaWYg
KHJ1bGUgPT0gQ2FuQ3Jvc3NFZGl0aW5nQm91bmRhcnkgJiYgYm91bmRhcnlDcm9zc2VkKSB7CiAg
ICAgICAgICAgICBsYXN0VmlzaWJsZSA9IGN1cnJlbnRQb3M7CkBAIC02MzYsNiArNjM4LDcgQEAg
UG9zaXRpb24gUG9zaXRpb246OnVwc3RyZWFtKEVkaXRpbmdCb3VuZGFyeUNyb3NzaW5nUnVsZSBy
dWxlKSBjb25zdAogICAgICAgICBpZiAoZWRpdGluZ0lnbm9yZXNDb250ZW50KGN1cnJlbnROb2Rl
KSB8fCBpc1RhYmxlRWxlbWVudChjdXJyZW50Tm9kZSkpIHsKICAgICAgICAgICAgIGlmIChjdXJy
ZW50UG9zLmF0RW5kT2ZOb2RlKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHBvc2l0aW9uQWZ0
ZXJOb2RlKGN1cnJlbnROb2RlKTsKKyAgICAgICAgICAgIGN1cnJlbnRQb3MubW92ZVRvTGVhZk5v
ZGVTdGFydCgpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIApAQCAtNzQ3LDgg
Kzc1MCwxMCBAQCBQb3NpdGlvbiBQb3NpdGlvbjo6ZG93bnN0cmVhbShFZGl0aW5nQm91bmRhcnlD
cm9zc2luZ1J1bGUgcnVsZSkgY29uc3QKIAogICAgICAgICAvLyBza2lwIHBvc2l0aW9uIGluIHVu
cmVuZGVyZWQgb3IgaW52aXNpYmxlIG5vZGUKICAgICAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJl
ciA9IGN1cnJlbnROb2RlLT5yZW5kZXJlcigpOwotICAgICAgICBpZiAoIXJlbmRlcmVyIHx8IHJl
bmRlcmVyLT5zdHlsZSgpLT52aXNpYmlsaXR5KCkgIT0gVklTSUJMRSkKKyAgICAgICAgaWYgKCFy
ZW5kZXJlciB8fCByZW5kZXJlci0+c3R5bGUoKS0+dmlzaWJpbGl0eSgpICE9IFZJU0lCTEUpIHsK
KyAgICAgICAgICAgIGN1cnJlbnRQb3MubW92ZVRvTGVhZk5vZGVFbmQoKTsKICAgICAgICAgICAg
IGNvbnRpbnVlOworICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgaWYgKHJ1bGUgPT0g
Q2FuQ3Jvc3NFZGl0aW5nQm91bmRhcnkgJiYgYm91bmRhcnlDcm9zc2VkKSB7CiAgICAgICAgICAg
ICBsYXN0VmlzaWJsZSA9IGN1cnJlbnRQb3M7CkBAIC03NjMsNiArNzY4LDcgQEAgUG9zaXRpb24g
UG9zaXRpb246OmRvd25zdHJlYW0oRWRpdGluZ0JvdW5kYXJ5Q3Jvc3NpbmdSdWxlIHJ1bGUpIGNv
bnN0CiAgICAgICAgIGlmIChlZGl0aW5nSWdub3Jlc0NvbnRlbnQoY3VycmVudE5vZGUpIHx8IGlz
VGFibGVFbGVtZW50KGN1cnJlbnROb2RlKSkgewogICAgICAgICAgICAgaWYgKGN1cnJlbnRQb3Mu
b2Zmc2V0SW5MZWFmTm9kZSgpIDw9IHJlbmRlcmVyLT5jYXJldE1pbk9mZnNldCgpKQogICAgICAg
ICAgICAgICAgIHJldHVybiBjcmVhdGVMZWdhY3lFZGl0aW5nUG9zaXRpb24oY3VycmVudE5vZGUs
IHJlbmRlcmVyLT5jYXJldE1pbk9mZnNldCgpKTsKKyAgICAgICAgICAgIGN1cnJlbnRQb3MubW92
ZVRvTGVhZk5vZGVFbmQoKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbkl0ZXJhdG9yLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbkl0ZXJhdG9yLmNwcAppbmRleCA0MjZjOTA0Li5mZTQ5MmIy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb25JdGVyYXRvci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uSXRlcmF0b3IuY3BwCkBAIC0xNzcsNCArMTc3
LDIwIEBAIGJvb2wgUG9zaXRpb25JdGVyYXRvcjo6aXNDYW5kaWRhdGUoKSBjb25zdAogICAgIHJl
dHVybiBmYWxzZTsKIH0KIAordm9pZCBQb3NpdGlvbkl0ZXJhdG9yOjptb3ZlVG9MZWFmTm9kZVN0
YXJ0KCkKK3sKKyAgICBpZiAoIW1fYW5jaG9yTm9kZSB8fCBtX25vZGVBZnRlclBvc2l0aW9uSW5B
bmNob3IgfHwgbV9hbmNob3JOb2RlLT5oYXNDaGlsZE5vZGVzKCkpCisgICAgICAgIHJldHVybjsK
KworICAgIG1fb2Zmc2V0SW5BbmNob3IgPSAwOworfQorCit2b2lkIFBvc2l0aW9uSXRlcmF0b3I6
Om1vdmVUb0xlYWZOb2RlRW5kKCkKK3sKKyAgICBpZiAoIW1fYW5jaG9yTm9kZSB8fCBtX25vZGVB
ZnRlclBvc2l0aW9uSW5BbmNob3IgfHwgbV9hbmNob3JOb2RlLT5oYXNDaGlsZE5vZGVzKCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIG1fb2Zmc2V0SW5BbmNob3IgPSBsYXN0T2Zmc2V0Rm9yRWRp
dGluZyhtX2FuY2hvck5vZGUpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb25JdGVyYXRvci5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL1Bvc2l0aW9uSXRlcmF0b3IuaAppbmRleCAwODMyOWJiLi5hMGRiMTEzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb25JdGVyYXRvci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Qb3NpdGlvbkl0ZXJhdG9yLmgKQEAgLTY0LDYgKzY0LDkgQEAgcHVibGljOgog
ICAgIGJvb2wgYXRFbmRPZk5vZGUoKSBjb25zdDsKICAgICBib29sIGlzQ2FuZGlkYXRlKCkgY29u
c3Q7CiAKKyAgICB2b2lkIG1vdmVUb0xlYWZOb2RlU3RhcnQoKTsKKyAgICB2b2lkIG1vdmVUb0xl
YWZOb2RlRW5kKCk7CisKIHByaXZhdGU6CiAgICAgTm9kZSogbV9hbmNob3JOb2RlOwogICAgIE5v
ZGUqIG1fbm9kZUFmdGVyUG9zaXRpb25JbkFuY2hvcjsgLy8gSWYgdGhpcyBpcyBub24tbnVsbCwg
bV9ub2RlQWZ0ZXJQb3NpdGlvbkluQW5jaG9yLT5wYXJlbnROb2RlKCkgPT0gbV9hbmNob3JOb2Rl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmNwcAppbmRleCA0MzQ3OTIxLi44MDdk
Zjg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmNwcApAQCAtMjE5LDYgKzIx
OSw5IEBAIFBvc2l0aW9uIG5leHRWaXN1YWxseURpc3RpbmN0Q2FuZGlkYXRlKGNvbnN0IFBvc2l0
aW9uJiBwb3NpdGlvbikKICAgICAgICAgcCA9IHAubmV4dChDaGFyYWN0ZXIpOwogICAgICAgICBp
ZiAocC5pc0NhbmRpZGF0ZSgpICYmIHAuZG93bnN0cmVhbSgpICE9IGRvd25zdHJlYW1TdGFydCkK
ICAgICAgICAgICAgIHJldHVybiBwOworICAgICAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0g
cC5kZXByZWNhdGVkTm9kZSgpLT5yZW5kZXJlcigpOworICAgICAgICBpZiAoIXJlbmRlcmVyIHx8
IHJlbmRlcmVyLT5zdHlsZSgpLT52aXNpYmlsaXR5KCkgIT0gVklTSUJMRSkKKyAgICAgICAgICAg
IHAubW92ZVRvT2Zmc2V0KGxhc3RPZmZzZXRGb3JFZGl0aW5nKHAuZGVwcmVjYXRlZE5vZGUoKSkp
OwogICAgIH0KICAgICByZXR1cm4gUG9zaXRpb24oKTsKIH0KQEAgLTI0Miw2ICsyNDUsOSBAQCBQ
b3NpdGlvbiBwcmV2aW91c1Zpc3VhbGx5RGlzdGluY3RDYW5kaWRhdGUoY29uc3QgUG9zaXRpb24m
IHBvc2l0aW9uKQogICAgICAgICBwID0gcC5wcmV2aW91cyhDaGFyYWN0ZXIpOwogICAgICAgICBp
ZiAocC5pc0NhbmRpZGF0ZSgpICYmIHAuZG93bnN0cmVhbSgpICE9IGRvd25zdHJlYW1TdGFydCkK
ICAgICAgICAgICAgIHJldHVybiBwOworICAgICAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0g
cC5kZXByZWNhdGVkTm9kZSgpLT5yZW5kZXJlcigpOworICAgICAgICBpZiAoIXJlbmRlcmVyIHx8
IHJlbmRlcmVyLT5zdHlsZSgpLT52aXNpYmlsaXR5KCkgIT0gVklTSUJMRSkKKyAgICAgICAgICAg
IHAubW92ZVRvT2Zmc2V0KDApOwogICAgIH0KICAgICByZXR1cm4gUG9zaXRpb24oKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105019</attachid>
            <date>2011-08-24 10:54:53 -0700</date>
            <delta_ts>2011-08-24 10:55:20 -0700</delta_ts>
            <desc>With a test case</desc>
            <filename>65377.patch</filename>
            <type>text/plain</type>
            <size>7830</size>
            <attacher name="Yong Li">yong.li.webkit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BlcmYvc2VsZWN0aW9uLXNraXAtaGlkZGVuLW5vZGUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGVyZi9zZWxlY3Rpb24tc2tpcC1oaWRkZW4tbm9k
ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjdjMGVj
MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BlcmYvc2VsZWN0aW9uLXNraXAtaGlk
ZGVuLW5vZGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorVGVzdHMgdGhhdCB0cmF2ZXJz
aW5nIGhpZGRlbiB0ZXh0IG5vZGVzIGlzIGNvbnN0YW50IHRpbWUuCitQQVNTCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BlcmYvc2VsZWN0aW9uLXNraXAtaGlkZGVuLW5vZGUuaHRtbCBiL0xh
eW91dFRlc3RzL3BlcmYvc2VsZWN0aW9uLXNraXAtaGlkZGVuLW5vZGUuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNTE0YjBkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvcGVyZi9zZWxlY3Rpb24tc2tpcC1oaWRkZW4tbm9kZS5odG1sCkBAIC0wLDAgKzEs
MzQgQEAKKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tYWduaXR1ZGUtcGVyZi5q
cyI+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJIaWRkZW5UZXh0Ij48L2Rpdj4KKzxwIGlkPSJWaXNpYmxl
VGV4dCI+VmlzaWJsZSBUZXh0PC9wPgorPHNjcmlwdD4KK3ZhciB2aXNpYmxlVGV4dCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdWaXNpYmxlVGV4dCcpOwordmFyIGhpZGRlbkRpdiA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdIaWRkZW5UZXh0Jyk7CitoaWRkZW5EaXYuc3R5bGUuZGlzcGxh
eSA9ICdub25lJzsKK3ZhciBsb25nVGV4dCA9ICJzdXBlciBsb25nIGxvbmcgdGV4dCI7Cit3aGls
ZSAobG9uZ1RleHQubGVuZ3RoIDwgMTYpIHsKKyAgICBsb25nVGV4dCA9IGxvbmdUZXh0ICsgbG9u
Z1RleHQ7Cit9CisKK2Z1bmN0aW9uIHNldHVwRnVuY3Rpb24obWFnbml0dWRlKQoreworICAgIHdo
aWxlIChoaWRkZW5EaXYuaGFzQ2hpbGROb2RlcygpKQorICAgICAgICBoaWRkZW5EaXYucmVtb3Zl
Q2hpbGQoaGlkZGVuRGl2Lmxhc3RDaGlsZCk7CisgICAgdmFyIHRleHQgPSBsb25nVGV4dDsKKyAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IG1hZ25pdHVkZTsgKytpKQorICAgICAgICB0ZXh0ICs9IGxv
bmdUZXh0OworICAgIHZhciB0ZXh0Tm9kZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRleHQp
OworICAgIGhpZGRlbkRpdi5hcHBlbmRDaGlsZCh0ZXh0Tm9kZSk7Cit9CisKK2Z1bmN0aW9uIHRl
c3QobWFnbml0dWRlKQoreworICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5zZXRQb3NpdGlvbihk
b2N1bWVudC5ib2R5LCAwKTsKK30KKworTWFnbml0dWRlLmRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0
IHRyYXZlcnNpbmcgaGlkZGVuIHRleHQgbm9kZXMgaXMgY29uc3RhbnQgdGltZS4iKTsKK01hZ25p
dHVkZS5ydW4oc2V0dXBGdW5jdGlvbiwgdGVzdCwgTWFnbml0dWRlLkNPTlNUQU5UKTsKKworPC9z
Y3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTk5ZGU5MC4uZjkzNjhhYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI0IEBACisyMDExLTA3LTI4ICBZb25nIExpICA8eW9saUByaW0uY29tPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTM3NworICAgICAgICBTa2lwIHRoZSBl
bnRpcmUgbm9kZSB3aGVuIGl0IGlzIHJpZ2h0IHRvIGRvIHNvLCBpbnN0ZWFkIG9mIHN0ZXBwaW5n
CisgICAgICAgIHRocm91Z2ggZXZlcnkgY2hhcmFjdGVyLCBzbyB3ZSBzYXZlIENQVSB0aW1lIG9u
IGNoZWNraW5nIGV2ZXJ5IHBvc2l0aW9uCisgICAgICAgIHVubmVjZXNzYXJpbHkuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzIGJlY2F1c2UgaXQgZG9lc24ndCBmaXggYW55IGxheW91dCBpc3N1ZS4K
KworICAgICAgICAqIGRvbS9Qb3NpdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3NpdGlv
bjo6dXBzdHJlYW0pOgorICAgICAgICAoV2ViQ29yZTo6UG9zaXRpb246OmRvd25zdHJlYW0pOgor
ICAgICAgICAqIGRvbS9Qb3NpdGlvbkl0ZXJhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBv
c2l0aW9uSXRlcmF0b3I6Om1vdmVUb0xlYWZOb2RlU3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6
UG9zaXRpb25JdGVyYXRvcjo6bW92ZVRvTGVhZk5vZGVFbmQpOgorICAgICAgICAqIGRvbS9Qb3Np
dGlvbkl0ZXJhdG9yLmg6CisgICAgICAgICogZWRpdGluZy9odG1sZWRpdGluZy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpuZXh0VmlzdWFsbHlEaXN0aW5jdENhbmRpZGF0ZSk6CisKIDIwMTEtMDgt
MDkgIEFsZXhlaSBTdml0a2luZSAgPGFzdml0a2luZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
W0Nocm9taXVtXSBFbmFibGUgcnViYmVyIGJhbmRpbmcgd2hlbiBzY3JvbGxpbmcuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L1Bvc2l0aW9uLmNwcAppbmRleCA2ZDNkMTU1Li44YTA4N2YyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlv
bi5jcHAKQEAgLTYxNSw4ICs2MTUsMTAgQEAgUG9zaXRpb24gUG9zaXRpb246OnVwc3RyZWFtKEVk
aXRpbmdCb3VuZGFyeUNyb3NzaW5nUnVsZSBydWxlKSBjb25zdAogCiAgICAgICAgIC8vIHNraXAg
cG9zaXRpb24gaW4gdW5yZW5kZXJlZCBvciBpbnZpc2libGUgbm9kZQogICAgICAgICBSZW5kZXJP
YmplY3QqIHJlbmRlcmVyID0gY3VycmVudE5vZGUtPnJlbmRlcmVyKCk7Ci0gICAgICAgIGlmICgh
cmVuZGVyZXIgfHwgcmVuZGVyZXItPnN0eWxlKCktPnZpc2liaWxpdHkoKSAhPSBWSVNJQkxFKQor
ICAgICAgICBpZiAoIXJlbmRlcmVyIHx8IHJlbmRlcmVyLT5zdHlsZSgpLT52aXNpYmlsaXR5KCkg
IT0gVklTSUJMRSkgeworICAgICAgICAgICAgY3VycmVudFBvcy5tb3ZlVG9MZWFmTm9kZVN0YXJ0
KCk7CiAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQogICAgICAgICAgICAgICAgICAK
ICAgICAgICAgaWYgKHJ1bGUgPT0gQ2FuQ3Jvc3NFZGl0aW5nQm91bmRhcnkgJiYgYm91bmRhcnlD
cm9zc2VkKSB7CiAgICAgICAgICAgICBsYXN0VmlzaWJsZSA9IGN1cnJlbnRQb3M7CkBAIC02MzYs
NiArNjM4LDcgQEAgUG9zaXRpb24gUG9zaXRpb246OnVwc3RyZWFtKEVkaXRpbmdCb3VuZGFyeUNy
b3NzaW5nUnVsZSBydWxlKSBjb25zdAogICAgICAgICBpZiAoZWRpdGluZ0lnbm9yZXNDb250ZW50
KGN1cnJlbnROb2RlKSB8fCBpc1RhYmxlRWxlbWVudChjdXJyZW50Tm9kZSkpIHsKICAgICAgICAg
ICAgIGlmIChjdXJyZW50UG9zLmF0RW5kT2ZOb2RlKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJu
IHBvc2l0aW9uQWZ0ZXJOb2RlKGN1cnJlbnROb2RlKTsKKyAgICAgICAgICAgIGN1cnJlbnRQb3Mu
bW92ZVRvTGVhZk5vZGVTdGFydCgpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0K
IApAQCAtNzQ3LDggKzc1MCwxMCBAQCBQb3NpdGlvbiBQb3NpdGlvbjo6ZG93bnN0cmVhbShFZGl0
aW5nQm91bmRhcnlDcm9zc2luZ1J1bGUgcnVsZSkgY29uc3QKIAogICAgICAgICAvLyBza2lwIHBv
c2l0aW9uIGluIHVucmVuZGVyZWQgb3IgaW52aXNpYmxlIG5vZGUKICAgICAgICAgUmVuZGVyT2Jq
ZWN0KiByZW5kZXJlciA9IGN1cnJlbnROb2RlLT5yZW5kZXJlcigpOwotICAgICAgICBpZiAoIXJl
bmRlcmVyIHx8IHJlbmRlcmVyLT5zdHlsZSgpLT52aXNpYmlsaXR5KCkgIT0gVklTSUJMRSkKKyAg
ICAgICAgaWYgKCFyZW5kZXJlciB8fCByZW5kZXJlci0+c3R5bGUoKS0+dmlzaWJpbGl0eSgpICE9
IFZJU0lCTEUpIHsKKyAgICAgICAgICAgIGN1cnJlbnRQb3MubW92ZVRvTGVhZk5vZGVFbmQoKTsK
ICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAg
aWYgKHJ1bGUgPT0gQ2FuQ3Jvc3NFZGl0aW5nQm91bmRhcnkgJiYgYm91bmRhcnlDcm9zc2VkKSB7
CiAgICAgICAgICAgICBsYXN0VmlzaWJsZSA9IGN1cnJlbnRQb3M7CkBAIC03NjMsNiArNzY4LDcg
QEAgUG9zaXRpb24gUG9zaXRpb246OmRvd25zdHJlYW0oRWRpdGluZ0JvdW5kYXJ5Q3Jvc3NpbmdS
dWxlIHJ1bGUpIGNvbnN0CiAgICAgICAgIGlmIChlZGl0aW5nSWdub3Jlc0NvbnRlbnQoY3VycmVu
dE5vZGUpIHx8IGlzVGFibGVFbGVtZW50KGN1cnJlbnROb2RlKSkgewogICAgICAgICAgICAgaWYg
KGN1cnJlbnRQb3Mub2Zmc2V0SW5MZWFmTm9kZSgpIDw9IHJlbmRlcmVyLT5jYXJldE1pbk9mZnNl
dCgpKQogICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVMZWdhY3lFZGl0aW5nUG9zaXRpb24o
Y3VycmVudE5vZGUsIHJlbmRlcmVyLT5jYXJldE1pbk9mZnNldCgpKTsKKyAgICAgICAgICAgIGN1
cnJlbnRQb3MubW92ZVRvTGVhZk5vZGVFbmQoKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAg
ICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbkl0ZXJhdG9y
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbkl0ZXJhdG9yLmNwcAppbmRleCA0MjZj
OTA0Li5mZTQ5MmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb25JdGVy
YXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uSXRlcmF0b3IuY3BwCkBA
IC0xNzcsNCArMTc3LDIwIEBAIGJvb2wgUG9zaXRpb25JdGVyYXRvcjo6aXNDYW5kaWRhdGUoKSBj
b25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAordm9pZCBQb3NpdGlvbkl0ZXJhdG9yOjptb3Zl
VG9MZWFmTm9kZVN0YXJ0KCkKK3sKKyAgICBpZiAoIW1fYW5jaG9yTm9kZSB8fCBtX25vZGVBZnRl
clBvc2l0aW9uSW5BbmNob3IgfHwgbV9hbmNob3JOb2RlLT5oYXNDaGlsZE5vZGVzKCkpCisgICAg
ICAgIHJldHVybjsKKworICAgIG1fb2Zmc2V0SW5BbmNob3IgPSAwOworfQorCit2b2lkIFBvc2l0
aW9uSXRlcmF0b3I6Om1vdmVUb0xlYWZOb2RlRW5kKCkKK3sKKyAgICBpZiAoIW1fYW5jaG9yTm9k
ZSB8fCBtX25vZGVBZnRlclBvc2l0aW9uSW5BbmNob3IgfHwgbV9hbmNob3JOb2RlLT5oYXNDaGls
ZE5vZGVzKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fb2Zmc2V0SW5BbmNob3IgPSBsYXN0
T2Zmc2V0Rm9yRWRpdGluZyhtX2FuY2hvck5vZGUpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb25JdGVyYXRvci5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uSXRlcmF0b3IuaAppbmRleCAwODMyOWJiLi5hMGRi
MTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb25JdGVyYXRvci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbkl0ZXJhdG9yLmgKQEAgLTY0LDYgKzY0LDkg
QEAgcHVibGljOgogICAgIGJvb2wgYXRFbmRPZk5vZGUoKSBjb25zdDsKICAgICBib29sIGlzQ2Fu
ZGlkYXRlKCkgY29uc3Q7CiAKKyAgICB2b2lkIG1vdmVUb0xlYWZOb2RlU3RhcnQoKTsKKyAgICB2
b2lkIG1vdmVUb0xlYWZOb2RlRW5kKCk7CisKIHByaXZhdGU6CiAgICAgTm9kZSogbV9hbmNob3JO
b2RlOwogICAgIE5vZGUqIG1fbm9kZUFmdGVyUG9zaXRpb25JbkFuY2hvcjsgLy8gSWYgdGhpcyBp
cyBub24tbnVsbCwgbV9ub2RlQWZ0ZXJQb3NpdGlvbkluQW5jaG9yLT5wYXJlbnROb2RlKCkgPT0g
bV9hbmNob3JOb2RlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1sZWRp
dGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmNwcAppbmRleCA1
ODA5MjhkLi44MDZjN2NkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxl
ZGl0aW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmNwcApA
QCAtMjA3LDYgKzIwNyw5IEBAIFBvc2l0aW9uIG5leHRDYW5kaWRhdGUoY29uc3QgUG9zaXRpb24m
IHBvc2l0aW9uKQogICAgICAgICBwLmluY3JlbWVudCgpOwogICAgICAgICBpZiAocC5pc0NhbmRp
ZGF0ZSgpKQogICAgICAgICAgICAgcmV0dXJuIHA7CisgICAgICAgIFJlbmRlck9iamVjdCogcmVu
ZGVyZXIgPSBwLmRlcHJlY2F0ZWROb2RlKCkgPyBwLmRlcHJlY2F0ZWROb2RlKCktPnJlbmRlcmVy
KCkgOiAwOworICAgICAgICBpZiAoIXJlbmRlcmVyIHx8IHJlbmRlcmVyLT5zdHlsZSgpLT52aXNp
YmlsaXR5KCkgIT0gVklTSUJMRSkKKyAgICAgICAgICAgIHAubW92ZVRvTGVhZk5vZGVFbmQoKTsK
ICAgICB9CiAgICAgcmV0dXJuIFBvc2l0aW9uKCk7CiB9CkBAIC0yMTksNiArMjIyLDkgQEAgUG9z
aXRpb24gbmV4dFZpc3VhbGx5RGlzdGluY3RDYW5kaWRhdGUoY29uc3QgUG9zaXRpb24mIHBvc2l0
aW9uKQogICAgICAgICBwID0gcC5uZXh0KENoYXJhY3Rlcik7CiAgICAgICAgIGlmIChwLmlzQ2Fu
ZGlkYXRlKCkgJiYgcC5kb3duc3RyZWFtKCkgIT0gZG93bnN0cmVhbVN0YXJ0KQogICAgICAgICAg
ICAgcmV0dXJuIHA7CisgICAgICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBwLmRlcHJlY2F0
ZWROb2RlKCkgPyBwLmRlcHJlY2F0ZWROb2RlKCktPnJlbmRlcmVyKCkgOiAwOworICAgICAgICBp
ZiAoIXJlbmRlcmVyIHx8IHJlbmRlcmVyLT5zdHlsZSgpLT52aXNpYmlsaXR5KCkgIT0gVklTSUJM
RSkKKyAgICAgICAgICAgIHAubW92ZVRvT2Zmc2V0KGxhc3RPZmZzZXRGb3JFZGl0aW5nKHAuZGVw
cmVjYXRlZE5vZGUoKSkpOwogICAgIH0KICAgICByZXR1cm4gUG9zaXRpb24oKTsKIH0KQEAgLTIz
MCw2ICsyMzYsOSBAQCBQb3NpdGlvbiBwcmV2aW91c0NhbmRpZGF0ZShjb25zdCBQb3NpdGlvbiYg
cG9zaXRpb24pCiAgICAgICAgIHAuZGVjcmVtZW50KCk7CiAgICAgICAgIGlmIChwLmlzQ2FuZGlk
YXRlKCkpCiAgICAgICAgICAgICByZXR1cm4gcDsKKyAgICAgICAgUmVuZGVyT2JqZWN0KiByZW5k
ZXJlciA9IHAuZGVwcmVjYXRlZE5vZGUoKSA/IHAuZGVwcmVjYXRlZE5vZGUoKS0+cmVuZGVyZXIo
KSA6IDA7CisgICAgICAgIGlmICghcmVuZGVyZXIgfHwgcmVuZGVyZXItPnN0eWxlKCktPnZpc2li
aWxpdHkoKSAhPSBWSVNJQkxFKQorICAgICAgICAgICAgcC5tb3ZlVG9MZWFmTm9kZVN0YXJ0KCk7
CiAgICAgfQogICAgIHJldHVybiBQb3NpdGlvbigpOwogfQpAQCAtMjQyLDYgKzI1MSw5IEBAIFBv
c2l0aW9uIHByZXZpb3VzVmlzdWFsbHlEaXN0aW5jdENhbmRpZGF0ZShjb25zdCBQb3NpdGlvbiYg
cG9zaXRpb24pCiAgICAgICAgIHAgPSBwLnByZXZpb3VzKENoYXJhY3Rlcik7CiAgICAgICAgIGlm
IChwLmlzQ2FuZGlkYXRlKCkgJiYgcC5kb3duc3RyZWFtKCkgIT0gZG93bnN0cmVhbVN0YXJ0KQog
ICAgICAgICAgICAgcmV0dXJuIHA7CisgICAgICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBw
LmRlcHJlY2F0ZWROb2RlKCkgPyBwLmRlcHJlY2F0ZWROb2RlKCktPnJlbmRlcmVyKCkgOiAwOwor
ICAgICAgICBpZiAoIXJlbmRlcmVyIHx8IHJlbmRlcmVyLT5zdHlsZSgpLT52aXNpYmlsaXR5KCkg
IT0gVklTSUJMRSkKKyAgICAgICAgICAgIHAubW92ZVRvT2Zmc2V0KDApOwogICAgIH0KICAgICBy
ZXR1cm4gUG9zaXRpb24oKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105021</attachid>
            <date>2011-08-24 11:00:55 -0700</date>
            <delta_ts>2011-08-24 11:47:49 -0700</delta_ts>
            <desc>The patch with test case</desc>
            <filename>65377.patch</filename>
            <type>text/plain</type>
            <size>8652</size>
            <attacher name="Yong Li">yong.li.webkit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlMThiNDA5Li5jOGExZDFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDgt
MjQgIFlvbmcgTGkgIDx5b2xpQHJpbS5jb20+CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTY1Mzc3CisgICAgICAgIFNraXAgdGhlIGVudGlyZSBub2Rl
IHdoZW4gaXQgaXMgcmlnaHQgdG8gZG8gc28sIGluc3RlYWQgb2Ygc3RlcHBpbmcKKyAgICAgICAg
dGhyb3VnaCBldmVyeSBjaGFyYWN0ZXIsIHNvIHdlIHNhdmUgQ1BVIHRpbWUgb24gY2hlY2tpbmcg
ZXZlcnkgcG9zaXRpb24KKyAgICAgICAgdW5uZWNlc3NhcmlseS4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBlcmYvc2VsZWN0aW9uLXNraXAtaGlk
ZGVuLW5vZGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwZXJmL3NlbGVjdGlvbi1z
a2lwLWhpZGRlbi1ub2RlLmh0bWw6IEFkZGVkLgorCiAyMDExLTA4LTA5ICBBbmRlcnMgQ2FybHNz
b24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHVwZGF0ZWQgbWVkaWEgdGVz
dCByZXN1bHRzIGZvciBMaW9uLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGVyZi9zZWxlY3Rp
b24tc2tpcC1oaWRkZW4tbm9kZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wZXJmL3NlbGVj
dGlvbi1za2lwLWhpZGRlbi1ub2RlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi42N2MwZWMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGVy
Zi9zZWxlY3Rpb24tc2tpcC1oaWRkZW4tbm9kZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBA
CitUZXN0cyB0aGF0IHRyYXZlcnNpbmcgaGlkZGVuIHRleHQgbm9kZXMgaXMgY29uc3RhbnQgdGlt
ZS4KK1BBU1MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGVyZi9zZWxlY3Rpb24tc2tpcC1o
aWRkZW4tbm9kZS5odG1sIGIvTGF5b3V0VGVzdHMvcGVyZi9zZWxlY3Rpb24tc2tpcC1oaWRkZW4t
bm9kZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY1MTRiMGQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wZXJmL3NlbGVjdGlvbi1za2lwLWhpZGRlbi1u
b2RlLmh0bWwKQEAgLTAsMCArMSwzNCBAQAorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3Vy
Y2VzL21hZ25pdHVkZS1wZXJmLmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9IkhpZGRlblRleHQiPjwv
ZGl2PgorPHAgaWQ9IlZpc2libGVUZXh0Ij5WaXNpYmxlIFRleHQ8L3A+Cis8c2NyaXB0PgordmFy
IHZpc2libGVUZXh0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ1Zpc2libGVUZXh0Jyk7Cit2
YXIgaGlkZGVuRGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ0hpZGRlblRleHQnKTsKK2hp
ZGRlbkRpdi5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwordmFyIGxvbmdUZXh0ID0gInN1cGVyIGxv
bmcgbG9uZyB0ZXh0IjsKK3doaWxlIChsb25nVGV4dC5sZW5ndGggPCAxNikgeworICAgIGxvbmdU
ZXh0ID0gbG9uZ1RleHQgKyBsb25nVGV4dDsKK30KKworZnVuY3Rpb24gc2V0dXBGdW5jdGlvbiht
YWduaXR1ZGUpCit7CisgICAgd2hpbGUgKGhpZGRlbkRpdi5oYXNDaGlsZE5vZGVzKCkpCisgICAg
ICAgIGhpZGRlbkRpdi5yZW1vdmVDaGlsZChoaWRkZW5EaXYubGFzdENoaWxkKTsKKyAgICB2YXIg
dGV4dCA9IGxvbmdUZXh0OworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbWFnbml0dWRlOyArK2kp
CisgICAgICAgIHRleHQgKz0gbG9uZ1RleHQ7CisgICAgdmFyIHRleHROb2RlID0gZG9jdW1lbnQu
Y3JlYXRlVGV4dE5vZGUodGV4dCk7CisgICAgaGlkZGVuRGl2LmFwcGVuZENoaWxkKHRleHROb2Rl
KTsKK30KKworZnVuY3Rpb24gdGVzdChtYWduaXR1ZGUpCit7CisgICAgd2luZG93LmdldFNlbGVj
dGlvbigpLnNldFBvc2l0aW9uKGRvY3VtZW50LmJvZHksIDApOworfQorCitNYWduaXR1ZGUuZGVz
Y3JpcHRpb24oIlRlc3RzIHRoYXQgdHJhdmVyc2luZyBoaWRkZW4gdGV4dCBub2RlcyBpcyBjb25z
dGFudCB0aW1lLiIpOworTWFnbml0dWRlLnJ1bihzZXR1cEZ1bmN0aW9uLCB0ZXN0LCBNYWduaXR1
ZGUuQ09OU1RBTlQpOworCis8L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhOTlkZTkw
Li4zMGE1NjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTEtMDgtMjQgIFlvbmcg
TGkgIDx5b2xpQHJpbS5jb20+CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTY1Mzc3CisgICAgICAgIFNraXAgdGhlIGVudGlyZSBub2RlIHdoZW4gaXQg
aXMgcmlnaHQgdG8gZG8gc28sIGluc3RlYWQgb2Ygc3RlcHBpbmcKKyAgICAgICAgdGhyb3VnaCBl
dmVyeSBjaGFyYWN0ZXIsIHNvIHdlIHNhdmUgQ1BVIHRpbWUgb24gY2hlY2tpbmcgZXZlcnkgcG9z
aXRpb24KKyAgICAgICAgdW5uZWNlc3NhcmlseS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBwZXJmL3NlbGVjdGlvbi1za2lwLWhpZGRlbi1u
b2RlLmh0bWwKKworICAgICAgICAqIGRvbS9Qb3NpdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpQb3NpdGlvbjo6dXBzdHJlYW0pOgorICAgICAgICAoV2ViQ29yZTo6UG9zaXRpb246OmRvd25z
dHJlYW0pOgorICAgICAgICAqIGRvbS9Qb3NpdGlvbkl0ZXJhdG9yLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlBvc2l0aW9uSXRlcmF0b3I6Om1vdmVUb0xlYWZOb2RlU3RhcnQpOgorICAgICAgICAo
V2ViQ29yZTo6UG9zaXRpb25JdGVyYXRvcjo6bW92ZVRvTGVhZk5vZGVFbmQpOgorICAgICAgICAq
IGRvbS9Qb3NpdGlvbkl0ZXJhdG9yLmg6CisgICAgICAgICogZWRpdGluZy9odG1sZWRpdGluZy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpuZXh0Q2FuZGlkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
Om5leHRWaXN1YWxseURpc3RpbmN0Q2FuZGlkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnByZXZp
b3VzQ2FuZGlkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnByZXZpb3VzVmlzdWFsbHlEaXN0aW5j
dENhbmRpZGF0ZSk6CisKIDIwMTEtMDgtMDkgIEFsZXhlaSBTdml0a2luZSAgPGFzdml0a2luZUBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBFbmFibGUgcnViYmVyIGJhbmRpbmcg
d2hlbiBzY3JvbGxpbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNwcAppbmRleCA2ZDNkMTU1Li44YTA4
N2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAKQEAgLTYxNSw4ICs2MTUsMTAgQEAgUG9zaXRp
b24gUG9zaXRpb246OnVwc3RyZWFtKEVkaXRpbmdCb3VuZGFyeUNyb3NzaW5nUnVsZSBydWxlKSBj
b25zdAogCiAgICAgICAgIC8vIHNraXAgcG9zaXRpb24gaW4gdW5yZW5kZXJlZCBvciBpbnZpc2li
bGUgbm9kZQogICAgICAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gY3VycmVudE5vZGUtPnJl
bmRlcmVyKCk7Ci0gICAgICAgIGlmICghcmVuZGVyZXIgfHwgcmVuZGVyZXItPnN0eWxlKCktPnZp
c2liaWxpdHkoKSAhPSBWSVNJQkxFKQorICAgICAgICBpZiAoIXJlbmRlcmVyIHx8IHJlbmRlcmVy
LT5zdHlsZSgpLT52aXNpYmlsaXR5KCkgIT0gVklTSUJMRSkgeworICAgICAgICAgICAgY3VycmVu
dFBvcy5tb3ZlVG9MZWFmTm9kZVN0YXJ0KCk7CiAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAg
ICAgfQogICAgICAgICAgICAgICAgICAKICAgICAgICAgaWYgKHJ1bGUgPT0gQ2FuQ3Jvc3NFZGl0
aW5nQm91bmRhcnkgJiYgYm91bmRhcnlDcm9zc2VkKSB7CiAgICAgICAgICAgICBsYXN0VmlzaWJs
ZSA9IGN1cnJlbnRQb3M7CkBAIC02MzYsNiArNjM4LDcgQEAgUG9zaXRpb24gUG9zaXRpb246OnVw
c3RyZWFtKEVkaXRpbmdCb3VuZGFyeUNyb3NzaW5nUnVsZSBydWxlKSBjb25zdAogICAgICAgICBp
ZiAoZWRpdGluZ0lnbm9yZXNDb250ZW50KGN1cnJlbnROb2RlKSB8fCBpc1RhYmxlRWxlbWVudChj
dXJyZW50Tm9kZSkpIHsKICAgICAgICAgICAgIGlmIChjdXJyZW50UG9zLmF0RW5kT2ZOb2RlKCkp
CiAgICAgICAgICAgICAgICAgcmV0dXJuIHBvc2l0aW9uQWZ0ZXJOb2RlKGN1cnJlbnROb2RlKTsK
KyAgICAgICAgICAgIGN1cnJlbnRQb3MubW92ZVRvTGVhZk5vZGVTdGFydCgpOwogICAgICAgICAg
ICAgY29udGludWU7CiAgICAgICAgIH0KIApAQCAtNzQ3LDggKzc1MCwxMCBAQCBQb3NpdGlvbiBQ
b3NpdGlvbjo6ZG93bnN0cmVhbShFZGl0aW5nQm91bmRhcnlDcm9zc2luZ1J1bGUgcnVsZSkgY29u
c3QKIAogICAgICAgICAvLyBza2lwIHBvc2l0aW9uIGluIHVucmVuZGVyZWQgb3IgaW52aXNpYmxl
IG5vZGUKICAgICAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IGN1cnJlbnROb2RlLT5yZW5k
ZXJlcigpOwotICAgICAgICBpZiAoIXJlbmRlcmVyIHx8IHJlbmRlcmVyLT5zdHlsZSgpLT52aXNp
YmlsaXR5KCkgIT0gVklTSUJMRSkKKyAgICAgICAgaWYgKCFyZW5kZXJlciB8fCByZW5kZXJlci0+
c3R5bGUoKS0+dmlzaWJpbGl0eSgpICE9IFZJU0lCTEUpIHsKKyAgICAgICAgICAgIGN1cnJlbnRQ
b3MubW92ZVRvTGVhZk5vZGVFbmQoKTsKICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9
CiAgICAgICAgICAgICAKICAgICAgICAgaWYgKHJ1bGUgPT0gQ2FuQ3Jvc3NFZGl0aW5nQm91bmRh
cnkgJiYgYm91bmRhcnlDcm9zc2VkKSB7CiAgICAgICAgICAgICBsYXN0VmlzaWJsZSA9IGN1cnJl
bnRQb3M7CkBAIC03NjMsNiArNzY4LDcgQEAgUG9zaXRpb24gUG9zaXRpb246OmRvd25zdHJlYW0o
RWRpdGluZ0JvdW5kYXJ5Q3Jvc3NpbmdSdWxlIHJ1bGUpIGNvbnN0CiAgICAgICAgIGlmIChlZGl0
aW5nSWdub3Jlc0NvbnRlbnQoY3VycmVudE5vZGUpIHx8IGlzVGFibGVFbGVtZW50KGN1cnJlbnRO
b2RlKSkgewogICAgICAgICAgICAgaWYgKGN1cnJlbnRQb3Mub2Zmc2V0SW5MZWFmTm9kZSgpIDw9
IHJlbmRlcmVyLT5jYXJldE1pbk9mZnNldCgpKQogICAgICAgICAgICAgICAgIHJldHVybiBjcmVh
dGVMZWdhY3lFZGl0aW5nUG9zaXRpb24oY3VycmVudE5vZGUsIHJlbmRlcmVyLT5jYXJldE1pbk9m
ZnNldCgpKTsKKyAgICAgICAgICAgIGN1cnJlbnRQb3MubW92ZVRvTGVhZk5vZGVFbmQoKTsKICAg
ICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Qb3NpdGlvbkl0ZXJhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlv
bkl0ZXJhdG9yLmNwcAppbmRleCA0MjZjOTA0Li5mZTQ5MmIyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vUG9zaXRpb25JdGVyYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L1Bvc2l0aW9uSXRlcmF0b3IuY3BwCkBAIC0xNzcsNCArMTc3LDIwIEBAIGJvb2wgUG9zaXRpb25J
dGVyYXRvcjo6aXNDYW5kaWRhdGUoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAordm9p
ZCBQb3NpdGlvbkl0ZXJhdG9yOjptb3ZlVG9MZWFmTm9kZVN0YXJ0KCkKK3sKKyAgICBpZiAoIW1f
YW5jaG9yTm9kZSB8fCBtX25vZGVBZnRlclBvc2l0aW9uSW5BbmNob3IgfHwgbV9hbmNob3JOb2Rl
LT5oYXNDaGlsZE5vZGVzKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fb2Zmc2V0SW5BbmNo
b3IgPSAwOworfQorCit2b2lkIFBvc2l0aW9uSXRlcmF0b3I6Om1vdmVUb0xlYWZOb2RlRW5kKCkK
K3sKKyAgICBpZiAoIW1fYW5jaG9yTm9kZSB8fCBtX25vZGVBZnRlclBvc2l0aW9uSW5BbmNob3Ig
fHwgbV9hbmNob3JOb2RlLT5oYXNDaGlsZE5vZGVzKCkpCisgICAgICAgIHJldHVybjsKKworICAg
IG1fb2Zmc2V0SW5BbmNob3IgPSBsYXN0T2Zmc2V0Rm9yRWRpdGluZyhtX2FuY2hvck5vZGUpOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vUG9zaXRpb25JdGVyYXRvci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uSXRlcmF0
b3IuaAppbmRleCAwODMyOWJiLi5hMGRiMTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vUG9zaXRpb25JdGVyYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbkl0
ZXJhdG9yLmgKQEAgLTY0LDYgKzY0LDkgQEAgcHVibGljOgogICAgIGJvb2wgYXRFbmRPZk5vZGUo
KSBjb25zdDsKICAgICBib29sIGlzQ2FuZGlkYXRlKCkgY29uc3Q7CiAKKyAgICB2b2lkIG1vdmVU
b0xlYWZOb2RlU3RhcnQoKTsKKyAgICB2b2lkIG1vdmVUb0xlYWZOb2RlRW5kKCk7CisKIHByaXZh
dGU6CiAgICAgTm9kZSogbV9hbmNob3JOb2RlOwogICAgIE5vZGUqIG1fbm9kZUFmdGVyUG9zaXRp
b25JbkFuY2hvcjsgLy8gSWYgdGhpcyBpcyBub24tbnVsbCwgbV9ub2RlQWZ0ZXJQb3NpdGlvbklu
QW5jaG9yLT5wYXJlbnROb2RlKCkgPT0gbV9hbmNob3JOb2RlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L2h0bWxlZGl0aW5nLmNwcAppbmRleCA1ODA5MjhkLi44MDZjN2NkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL2h0bWxlZGl0aW5nLmNwcApAQCAtMjA3LDYgKzIwNyw5IEBAIFBvc2l0aW9uIG5leHRD
YW5kaWRhdGUoY29uc3QgUG9zaXRpb24mIHBvc2l0aW9uKQogICAgICAgICBwLmluY3JlbWVudCgp
OwogICAgICAgICBpZiAocC5pc0NhbmRpZGF0ZSgpKQogICAgICAgICAgICAgcmV0dXJuIHA7Cisg
ICAgICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBwLmRlcHJlY2F0ZWROb2RlKCkgPyBwLmRl
cHJlY2F0ZWROb2RlKCktPnJlbmRlcmVyKCkgOiAwOworICAgICAgICBpZiAoIXJlbmRlcmVyIHx8
IHJlbmRlcmVyLT5zdHlsZSgpLT52aXNpYmlsaXR5KCkgIT0gVklTSUJMRSkKKyAgICAgICAgICAg
IHAubW92ZVRvTGVhZk5vZGVFbmQoKTsKICAgICB9CiAgICAgcmV0dXJuIFBvc2l0aW9uKCk7CiB9
CkBAIC0yMTksNiArMjIyLDkgQEAgUG9zaXRpb24gbmV4dFZpc3VhbGx5RGlzdGluY3RDYW5kaWRh
dGUoY29uc3QgUG9zaXRpb24mIHBvc2l0aW9uKQogICAgICAgICBwID0gcC5uZXh0KENoYXJhY3Rl
cik7CiAgICAgICAgIGlmIChwLmlzQ2FuZGlkYXRlKCkgJiYgcC5kb3duc3RyZWFtKCkgIT0gZG93
bnN0cmVhbVN0YXJ0KQogICAgICAgICAgICAgcmV0dXJuIHA7CisgICAgICAgIFJlbmRlck9iamVj
dCogcmVuZGVyZXIgPSBwLmRlcHJlY2F0ZWROb2RlKCkgPyBwLmRlcHJlY2F0ZWROb2RlKCktPnJl
bmRlcmVyKCkgOiAwOworICAgICAgICBpZiAoIXJlbmRlcmVyIHx8IHJlbmRlcmVyLT5zdHlsZSgp
LT52aXNpYmlsaXR5KCkgIT0gVklTSUJMRSkKKyAgICAgICAgICAgIHAubW92ZVRvT2Zmc2V0KGxh
c3RPZmZzZXRGb3JFZGl0aW5nKHAuZGVwcmVjYXRlZE5vZGUoKSkpOwogICAgIH0KICAgICByZXR1
cm4gUG9zaXRpb24oKTsKIH0KQEAgLTIzMCw2ICsyMzYsOSBAQCBQb3NpdGlvbiBwcmV2aW91c0Nh
bmRpZGF0ZShjb25zdCBQb3NpdGlvbiYgcG9zaXRpb24pCiAgICAgICAgIHAuZGVjcmVtZW50KCk7
CiAgICAgICAgIGlmIChwLmlzQ2FuZGlkYXRlKCkpCiAgICAgICAgICAgICByZXR1cm4gcDsKKyAg
ICAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IHAuZGVwcmVjYXRlZE5vZGUoKSA/IHAuZGVw
cmVjYXRlZE5vZGUoKS0+cmVuZGVyZXIoKSA6IDA7CisgICAgICAgIGlmICghcmVuZGVyZXIgfHwg
cmVuZGVyZXItPnN0eWxlKCktPnZpc2liaWxpdHkoKSAhPSBWSVNJQkxFKQorICAgICAgICAgICAg
cC5tb3ZlVG9MZWFmTm9kZVN0YXJ0KCk7CiAgICAgfQogICAgIHJldHVybiBQb3NpdGlvbigpOwog
fQpAQCAtMjQyLDYgKzI1MSw5IEBAIFBvc2l0aW9uIHByZXZpb3VzVmlzdWFsbHlEaXN0aW5jdENh
bmRpZGF0ZShjb25zdCBQb3NpdGlvbiYgcG9zaXRpb24pCiAgICAgICAgIHAgPSBwLnByZXZpb3Vz
KENoYXJhY3Rlcik7CiAgICAgICAgIGlmIChwLmlzQ2FuZGlkYXRlKCkgJiYgcC5kb3duc3RyZWFt
KCkgIT0gZG93bnN0cmVhbVN0YXJ0KQogICAgICAgICAgICAgcmV0dXJuIHA7CisgICAgICAgIFJl
bmRlck9iamVjdCogcmVuZGVyZXIgPSBwLmRlcHJlY2F0ZWROb2RlKCkgPyBwLmRlcHJlY2F0ZWRO
b2RlKCktPnJlbmRlcmVyKCkgOiAwOworICAgICAgICBpZiAoIXJlbmRlcmVyIHx8IHJlbmRlcmVy
LT5zdHlsZSgpLT52aXNpYmlsaXR5KCkgIT0gVklTSUJMRSkKKyAgICAgICAgICAgIHAubW92ZVRv
T2Zmc2V0KDApOwogICAgIH0KICAgICByZXR1cm4gUG9zaXRpb24oKTsKIH0K
</data>
<flag name="commit-queue"
          id="101055"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105035</attachid>
            <date>2011-08-24 12:01:50 -0700</date>
            <delta_ts>2012-01-25 08:37:06 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>65377.patch</filename>
            <type>text/plain</type>
            <size>8751</size>
            <attacher name="Yong Li">yong.li.webkit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhNmJmMTBhLi5mOWE4NzcxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDQgKzEsMTYgQEAKLTIwMTEtMDgt
MjQgIEFuZHJldyBTY2hlcmt1cyAgPHNjaGVya3VzQGNocm9taXVtLm9yZz4KKzIwMTEtMDgtMjQg
IFlvbmcgTGkgIDx5b2xpQHJpbS5jb20+CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTY1Mzc3CisgICAgICAgIFNraXAgdGhlIGVudGlyZSBub2RlIHdo
ZW4gaXQgaXMgcmlnaHQgdG8gZG8gc28sIGluc3RlYWQgb2Ygc3RlcHBpbmcKKyAgICAgICAgdGhy
b3VnaCBldmVyeSBjaGFyYWN0ZXIsIHNvIHdlIHNhdmUgQ1BVIHRpbWUgb24gY2hlY2tpbmcgZXZl
cnkgcG9zaXRpb24KKyAgICAgICAgdW5uZWNlc3NhcmlseS4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBlcmYvc2VsZWN0aW9uLXNraXAtaGlkZGVu
LW5vZGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwZXJmL3NlbGVjdGlvbi1za2lw
LWhpZGRlbi1ub2RlLmh0bWw6IEFkZGVkLgorCiswMTEtMDgtMjQgIEFuZHJldyBTY2hlcmt1cyAg
PHNjaGVya3VzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByZWJhc2VsaW5p
bmcgbWVkaWEvdmlkZW8tY3VycmVudFRpbWUtc2V0Lmh0bWwgZHVlIHRvCiAgICAgICAgIEZGbXBl
ZyB1ZHBhdGUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wZXJmL3NlbGVjdGlvbi1za2lwLWhp
ZGRlbi1ub2RlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BlcmYvc2VsZWN0aW9uLXNraXAt
aGlkZGVuLW5vZGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjY3YzBlYzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wZXJmL3NlbGVjdGlv
bi1za2lwLWhpZGRlbi1ub2RlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKK1Rlc3RzIHRo
YXQgdHJhdmVyc2luZyBoaWRkZW4gdGV4dCBub2RlcyBpcyBjb25zdGFudCB0aW1lLgorUEFTUwor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wZXJmL3NlbGVjdGlvbi1za2lwLWhpZGRlbi1ub2Rl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9wZXJmL3NlbGVjdGlvbi1za2lwLWhpZGRlbi1ub2RlLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWFkMzViNAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3BlcmYvc2VsZWN0aW9uLXNraXAtaGlkZGVuLW5vZGUuaHRtbApA
QCAtMCwwICsxLDM0IEBACis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvbWFnbml0
dWRlLXBlcmYuanMiPjwvc2NyaXB0PgorPGRpdiBpZD0iSGlkZGVuVGV4dCI+PC9kaXY+PHAgaWQ9
IlZpc2libGVUZXh0Ij5WaXNpYmxlIFRleHQ8L3A+Cis8c2NyaXB0PgordmFyIGhpZGRlbkRpdiA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdIaWRkZW5UZXh0Jyk7CitoaWRkZW5EaXYuc3R5bGUu
ZGlzcGxheSA9ICdub25lJzsKKwordmFyIGxvbmdUZXh0ID0gInN1cGVyIGxvbmcgbG9uZyB0ZXh0
IjsKK3doaWxlIChsb25nVGV4dC5sZW5ndGggPCAxNikKKyAgICBsb25nVGV4dCA9IGxvbmdUZXh0
ICsgbG9uZ1RleHQ7CisKK2Z1bmN0aW9uIHNldHVwRnVuY3Rpb24obWFnbml0dWRlKQoreworICAg
IHdoaWxlIChoaWRkZW5EaXYuaGFzQ2hpbGROb2RlcygpKQorICAgICAgICBoaWRkZW5EaXYucmVt
b3ZlQ2hpbGQoaGlkZGVuRGl2Lmxhc3RDaGlsZCk7CisKKyAgICB2YXIgdGV4dCA9IGxvbmdUZXh0
OworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbWFnbml0dWRlOyArK2kpCisgICAgICAgIHRleHQg
Kz0gbG9uZ1RleHQ7CisKKyAgICB2YXIgdGV4dE5vZGUgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9k
ZSh0ZXh0KTsKKyAgICBoaWRkZW5EaXYuYXBwZW5kQ2hpbGQodGV4dE5vZGUpOworfQorCitmdW5j
dGlvbiB0ZXN0KG1hZ25pdHVkZSkKK3sKKyAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2V0UG9z
aXRpb24oZG9jdW1lbnQuYm9keSwgMCk7Cit9CisKK01hZ25pdHVkZS5kZXNjcmlwdGlvbigiVGVz
dHMgdGhhdCB0cmF2ZXJzaW5nIGhpZGRlbiB0ZXh0IG5vZGVzIGlzIGNvbnN0YW50IHRpbWUuIik7
CitNYWduaXR1ZGUucnVuKHNldHVwRnVuY3Rpb24sIHRlc3QsIE1hZ25pdHVkZS5DT05TVEFOVCk7
CisKKzwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGFkMmYyM2QuLjJkNmUwNGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsNCArMSwyOCBAQAotMjAxMS0wOC0yNCAgU2FtIFdlaW5pZyAgPHNhbUB3
ZWJraXQub3JnPgorMjAxMS0wOC0yNCAgWW9uZyBMaSAgPHlvbGlAcmltLmNvbT4KKworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjUzNzcKKyAgICAgICAg
U2tpcCB0aGUgZW50aXJlIG5vZGUgd2hlbiBpdCBpcyByaWdodCB0byBkbyBzbywgaW5zdGVhZCBv
ZiBzdGVwcGluZworICAgICAgICB0aHJvdWdoIGV2ZXJ5IGNoYXJhY3Rlciwgc28gd2Ugc2F2ZSBD
UFUgdGltZSBvbiBjaGVja2luZyBldmVyeSBwb3NpdGlvbgorICAgICAgICB1bm5lY2Vzc2FyaWx5
LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6
IHBlcmYvc2VsZWN0aW9uLXNraXAtaGlkZGVuLW5vZGUuaHRtbAorCisgICAgICAgICogZG9tL1Bv
c2l0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvc2l0aW9uOjp1cHN0cmVhbSk6CisgICAg
ICAgIChXZWJDb3JlOjpQb3NpdGlvbjo6ZG93bnN0cmVhbSk6CisgICAgICAgICogZG9tL1Bvc2l0
aW9uSXRlcmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9zaXRpb25JdGVyYXRvcjo6bW92
ZVRvTGVhZk5vZGVTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpQb3NpdGlvbkl0ZXJhdG9yOjpt
b3ZlVG9MZWFmTm9kZUVuZCk6CisgICAgICAgICogZG9tL1Bvc2l0aW9uSXRlcmF0b3IuaDoKKyAg
ICAgICAgKiBlZGl0aW5nL2h0bWxlZGl0aW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om5leHRD
YW5kaWRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6bmV4dFZpc3VhbGx5RGlzdGluY3RDYW5kaWRh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6cHJldmlvdXNDYW5kaWRhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6cHJldmlvdXNWaXN1YWxseURpc3RpbmN0Q2FuZGlkYXRlKToKKworMDExLTA4LTI0ICBT
YW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgSlNIVE1MSW1hZ2VFbGVtZW50
IChhbmQgYXNzb2NpYXRlZCBOb2RlKSBpcyBhYmFuZG9uZWQgd2hlbiBpbWFnZSBsb2FkIGlzIGNh
bmNlbGVkCiAgICAgICAgIDxyZGFyOi8vcHJvYmxlbS85OTI1NjMwPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlv
bi5jcHAKaW5kZXggNmQzZDE1NS4uOGEwODdmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL1Bvc2l0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCkBA
IC02MTUsOCArNjE1LDEwIEBAIFBvc2l0aW9uIFBvc2l0aW9uOjp1cHN0cmVhbShFZGl0aW5nQm91
bmRhcnlDcm9zc2luZ1J1bGUgcnVsZSkgY29uc3QKIAogICAgICAgICAvLyBza2lwIHBvc2l0aW9u
IGluIHVucmVuZGVyZWQgb3IgaW52aXNpYmxlIG5vZGUKICAgICAgICAgUmVuZGVyT2JqZWN0KiBy
ZW5kZXJlciA9IGN1cnJlbnROb2RlLT5yZW5kZXJlcigpOwotICAgICAgICBpZiAoIXJlbmRlcmVy
IHx8IHJlbmRlcmVyLT5zdHlsZSgpLT52aXNpYmlsaXR5KCkgIT0gVklTSUJMRSkKKyAgICAgICAg
aWYgKCFyZW5kZXJlciB8fCByZW5kZXJlci0+c3R5bGUoKS0+dmlzaWJpbGl0eSgpICE9IFZJU0lC
TEUpIHsKKyAgICAgICAgICAgIGN1cnJlbnRQb3MubW92ZVRvTGVhZk5vZGVTdGFydCgpOwogICAg
ICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KICAgICAgICAgICAgICAgICAgCiAgICAgICAg
IGlmIChydWxlID09IENhbkNyb3NzRWRpdGluZ0JvdW5kYXJ5ICYmIGJvdW5kYXJ5Q3Jvc3NlZCkg
ewogICAgICAgICAgICAgbGFzdFZpc2libGUgPSBjdXJyZW50UG9zOwpAQCAtNjM2LDYgKzYzOCw3
IEBAIFBvc2l0aW9uIFBvc2l0aW9uOjp1cHN0cmVhbShFZGl0aW5nQm91bmRhcnlDcm9zc2luZ1J1
bGUgcnVsZSkgY29uc3QKICAgICAgICAgaWYgKGVkaXRpbmdJZ25vcmVzQ29udGVudChjdXJyZW50
Tm9kZSkgfHwgaXNUYWJsZUVsZW1lbnQoY3VycmVudE5vZGUpKSB7CiAgICAgICAgICAgICBpZiAo
Y3VycmVudFBvcy5hdEVuZE9mTm9kZSgpKQogICAgICAgICAgICAgICAgIHJldHVybiBwb3NpdGlv
bkFmdGVyTm9kZShjdXJyZW50Tm9kZSk7CisgICAgICAgICAgICBjdXJyZW50UG9zLm1vdmVUb0xl
YWZOb2RlU3RhcnQoKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKQEAgLTc0
Nyw4ICs3NTAsMTAgQEAgUG9zaXRpb24gUG9zaXRpb246OmRvd25zdHJlYW0oRWRpdGluZ0JvdW5k
YXJ5Q3Jvc3NpbmdSdWxlIHJ1bGUpIGNvbnN0CiAKICAgICAgICAgLy8gc2tpcCBwb3NpdGlvbiBp
biB1bnJlbmRlcmVkIG9yIGludmlzaWJsZSBub2RlCiAgICAgICAgIFJlbmRlck9iamVjdCogcmVu
ZGVyZXIgPSBjdXJyZW50Tm9kZS0+cmVuZGVyZXIoKTsKLSAgICAgICAgaWYgKCFyZW5kZXJlciB8
fCByZW5kZXJlci0+c3R5bGUoKS0+dmlzaWJpbGl0eSgpICE9IFZJU0lCTEUpCisgICAgICAgIGlm
ICghcmVuZGVyZXIgfHwgcmVuZGVyZXItPnN0eWxlKCktPnZpc2liaWxpdHkoKSAhPSBWSVNJQkxF
KSB7CisgICAgICAgICAgICBjdXJyZW50UG9zLm1vdmVUb0xlYWZOb2RlRW5kKCk7CiAgICAgICAg
ICAgICBjb250aW51ZTsKKyAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgIGlmIChydWxl
ID09IENhbkNyb3NzRWRpdGluZ0JvdW5kYXJ5ICYmIGJvdW5kYXJ5Q3Jvc3NlZCkgewogICAgICAg
ICAgICAgbGFzdFZpc2libGUgPSBjdXJyZW50UG9zOwpAQCAtNzYzLDYgKzc2OCw3IEBAIFBvc2l0
aW9uIFBvc2l0aW9uOjpkb3duc3RyZWFtKEVkaXRpbmdCb3VuZGFyeUNyb3NzaW5nUnVsZSBydWxl
KSBjb25zdAogICAgICAgICBpZiAoZWRpdGluZ0lnbm9yZXNDb250ZW50KGN1cnJlbnROb2RlKSB8
fCBpc1RhYmxlRWxlbWVudChjdXJyZW50Tm9kZSkpIHsKICAgICAgICAgICAgIGlmIChjdXJyZW50
UG9zLm9mZnNldEluTGVhZk5vZGUoKSA8PSByZW5kZXJlci0+Y2FyZXRNaW5PZmZzZXQoKSkKICAg
ICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKGN1cnJlbnRO
b2RlLCByZW5kZXJlci0+Y2FyZXRNaW5PZmZzZXQoKSk7CisgICAgICAgICAgICBjdXJyZW50UG9z
Lm1vdmVUb0xlYWZOb2RlRW5kKCk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb25JdGVyYXRvci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb25JdGVyYXRvci5jcHAKaW5kZXggNDI2YzkwNC4uZmU0
OTJiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uSXRlcmF0b3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbkl0ZXJhdG9yLmNwcApAQCAtMTc3LDQg
KzE3NywyMCBAQCBib29sIFBvc2l0aW9uSXRlcmF0b3I6OmlzQ2FuZGlkYXRlKCkgY29uc3QKICAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKK3ZvaWQgUG9zaXRpb25JdGVyYXRvcjo6bW92ZVRvTGVhZk5v
ZGVTdGFydCgpCit7CisgICAgaWYgKCFtX2FuY2hvck5vZGUgfHwgbV9ub2RlQWZ0ZXJQb3NpdGlv
bkluQW5jaG9yIHx8IG1fYW5jaG9yTm9kZS0+aGFzQ2hpbGROb2RlcygpKQorICAgICAgICByZXR1
cm47CisKKyAgICBtX29mZnNldEluQW5jaG9yID0gMDsKK30KKwordm9pZCBQb3NpdGlvbkl0ZXJh
dG9yOjptb3ZlVG9MZWFmTm9kZUVuZCgpCit7CisgICAgaWYgKCFtX2FuY2hvck5vZGUgfHwgbV9u
b2RlQWZ0ZXJQb3NpdGlvbkluQW5jaG9yIHx8IG1fYW5jaG9yTm9kZS0+aGFzQ2hpbGROb2Rlcygp
KQorICAgICAgICByZXR1cm47CisKKyAgICBtX29mZnNldEluQW5jaG9yID0gbGFzdE9mZnNldEZv
ckVkaXRpbmcobV9hbmNob3JOb2RlKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uSXRlcmF0b3IuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Qb3NpdGlvbkl0ZXJhdG9yLmgKaW5kZXggMDgzMjliYi4uYTBkYjExMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uSXRlcmF0b3IuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vUG9zaXRpb25JdGVyYXRvci5oCkBAIC02NCw2ICs2NCw5IEBAIHB1Ymxp
YzoKICAgICBib29sIGF0RW5kT2ZOb2RlKCkgY29uc3Q7CiAgICAgYm9vbCBpc0NhbmRpZGF0ZSgp
IGNvbnN0OwogCisgICAgdm9pZCBtb3ZlVG9MZWFmTm9kZVN0YXJ0KCk7CisgICAgdm9pZCBtb3Zl
VG9MZWFmTm9kZUVuZCgpOworCiBwcml2YXRlOgogICAgIE5vZGUqIG1fYW5jaG9yTm9kZTsKICAg
ICBOb2RlKiBtX25vZGVBZnRlclBvc2l0aW9uSW5BbmNob3I7IC8vIElmIHRoaXMgaXMgbm9uLW51
bGwsIG1fbm9kZUFmdGVyUG9zaXRpb25JbkFuY2hvci0+cGFyZW50Tm9kZSgpID09IG1fYW5jaG9y
Tm9kZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5jcHAKaW5kZXggNTgwOTI4ZC4u
NDZlNTE3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5jcHAKQEAgLTIwNyw2
ICsyMDcsOSBAQCBQb3NpdGlvbiBuZXh0Q2FuZGlkYXRlKGNvbnN0IFBvc2l0aW9uJiBwb3NpdGlv
bikKICAgICAgICAgcC5pbmNyZW1lbnQoKTsKICAgICAgICAgaWYgKHAuaXNDYW5kaWRhdGUoKSkK
ICAgICAgICAgICAgIHJldHVybiBwOworICAgICAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0g
cC5ub2RlKCkgPyBwLm5vZGUoKS0+cmVuZGVyZXIoKSA6IDA7CisgICAgICAgIGlmICghcmVuZGVy
ZXIgfHwgcmVuZGVyZXItPnN0eWxlKCktPnZpc2liaWxpdHkoKSAhPSBWSVNJQkxFKQorICAgICAg
ICAgICAgcC5tb3ZlVG9MZWFmTm9kZUVuZCgpOwogICAgIH0KICAgICByZXR1cm4gUG9zaXRpb24o
KTsKIH0KQEAgLTIxOSw2ICsyMjIsOSBAQCBQb3NpdGlvbiBuZXh0VmlzdWFsbHlEaXN0aW5jdENh
bmRpZGF0ZShjb25zdCBQb3NpdGlvbiYgcG9zaXRpb24pCiAgICAgICAgIHAgPSBwLm5leHQoQ2hh
cmFjdGVyKTsKICAgICAgICAgaWYgKHAuaXNDYW5kaWRhdGUoKSAmJiBwLmRvd25zdHJlYW0oKSAh
PSBkb3duc3RyZWFtU3RhcnQpCiAgICAgICAgICAgICByZXR1cm4gcDsKKyAgICAgICAgUmVuZGVy
T2JqZWN0KiByZW5kZXJlciA9IHAuZGVwcmVjYXRlZE5vZGUoKSA/IHAuZGVwcmVjYXRlZE5vZGUo
KS0+cmVuZGVyZXIoKSA6IDA7CisgICAgICAgIGlmICghcmVuZGVyZXIgfHwgcmVuZGVyZXItPnN0
eWxlKCktPnZpc2liaWxpdHkoKSAhPSBWSVNJQkxFKQorICAgICAgICAgICAgcC5tb3ZlVG9PZmZz
ZXQobGFzdE9mZnNldEZvckVkaXRpbmcocC5kZXByZWNhdGVkTm9kZSgpKSk7CiAgICAgfQogICAg
IHJldHVybiBQb3NpdGlvbigpOwogfQpAQCAtMjMwLDYgKzIzNiw5IEBAIFBvc2l0aW9uIHByZXZp
b3VzQ2FuZGlkYXRlKGNvbnN0IFBvc2l0aW9uJiBwb3NpdGlvbikKICAgICAgICAgcC5kZWNyZW1l
bnQoKTsKICAgICAgICAgaWYgKHAuaXNDYW5kaWRhdGUoKSkKICAgICAgICAgICAgIHJldHVybiBw
OworICAgICAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gcC5ub2RlKCkgPyBwLm5vZGUoKS0+
cmVuZGVyZXIoKSA6IDA7CisgICAgICAgIGlmICghcmVuZGVyZXIgfHwgcmVuZGVyZXItPnN0eWxl
KCktPnZpc2liaWxpdHkoKSAhPSBWSVNJQkxFKQorICAgICAgICAgICAgcC5tb3ZlVG9MZWFmTm9k
ZVN0YXJ0KCk7CiAgICAgfQogICAgIHJldHVybiBQb3NpdGlvbigpOwogfQpAQCAtMjQyLDYgKzI1
MSw5IEBAIFBvc2l0aW9uIHByZXZpb3VzVmlzdWFsbHlEaXN0aW5jdENhbmRpZGF0ZShjb25zdCBQ
b3NpdGlvbiYgcG9zaXRpb24pCiAgICAgICAgIHAgPSBwLnByZXZpb3VzKENoYXJhY3Rlcik7CiAg
ICAgICAgIGlmIChwLmlzQ2FuZGlkYXRlKCkgJiYgcC5kb3duc3RyZWFtKCkgIT0gZG93bnN0cmVh
bVN0YXJ0KQogICAgICAgICAgICAgcmV0dXJuIHA7CisgICAgICAgIFJlbmRlck9iamVjdCogcmVu
ZGVyZXIgPSBwLmRlcHJlY2F0ZWROb2RlKCkgPyBwLmRlcHJlY2F0ZWROb2RlKCktPnJlbmRlcmVy
KCkgOiAwOworICAgICAgICBpZiAoIXJlbmRlcmVyIHx8IHJlbmRlcmVyLT5zdHlsZSgpLT52aXNp
YmlsaXR5KCkgIT0gVklTSUJMRSkKKyAgICAgICAgICAgIHAubW92ZVRvT2Zmc2V0KDApOwogICAg
IH0KICAgICByZXR1cm4gUG9zaXRpb24oKTsKIH0K
</data>
<flag name="review"
          id="101092"
          type_id="1"
          status="+"
          setter="darin"
    />
    <flag name="commit-queue"
          id="101143"
          type_id="3"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123945</attachid>
            <date>2012-01-25 08:37:06 -0800</date>
            <delta_ts>2012-01-25 09:24:04 -0800</delta_ts>
            <desc>Fix the change log</desc>
            <filename>65377.patch</filename>
            <type>text/plain</type>
            <size>8602</size>
            <attacher name="Yong Li">yong.li.webkit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjN2M0ZDM5Li5jMWI2ZTJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDgt
MjQgIFlvbmcgTGkgIDx5b2xpQHJpbS5jb20+CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTY1Mzc3CisgICAgICAgIFNraXAgdGhlIGVudGlyZSBub2Rl
IHdoZW4gaXQgaXMgcmlnaHQgdG8gZG8gc28sIGluc3RlYWQgb2Ygc3RlcHBpbmcKKyAgICAgICAg
dGhyb3VnaCBldmVyeSBjaGFyYWN0ZXIsIHNvIHdlIHNhdmUgQ1BVIHRpbWUgb24gY2hlY2tpbmcg
ZXZlcnkgcG9zaXRpb24KKyAgICAgICAgdW5uZWNlc3NhcmlseS4KKworICAgICAgICBSZXZpZXdl
ZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICAqIHBlcmYvc2VsZWN0aW9uLXNraXAtaGlkZGVu
LW5vZGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwZXJmL3NlbGVjdGlvbi1za2lw
LWhpZGRlbi1ub2RlLmh0bWw6IEFkZGVkLgorCiAyMDEyLTAxLTI1ICBTYW1pIEt5b3N0aWxhICA8
c2t5b3N0aWxAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIENsaXBwaW5nIG9mIHJlbmRlciBsYXll
ciBib3VuZGFyaWVzIGRvZXMgbm90IHRha2UgcGFnZSBzY2FsZSBpbnRvIGFjY291bnQKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BlcmYvc2VsZWN0aW9uLXNraXAtaGlkZGVuLW5vZGUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGVyZi9zZWxlY3Rpb24tc2tpcC1oaWRkZW4tbm9kZS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjdjMGVjMQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BlcmYvc2VsZWN0aW9uLXNraXAtaGlkZGVuLW5v
ZGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorVGVzdHMgdGhhdCB0cmF2ZXJzaW5nIGhp
ZGRlbiB0ZXh0IG5vZGVzIGlzIGNvbnN0YW50IHRpbWUuCitQQVNTCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BlcmYvc2VsZWN0aW9uLXNraXAtaGlkZGVuLW5vZGUuaHRtbCBiL0xheW91dFRl
c3RzL3BlcmYvc2VsZWN0aW9uLXNraXAtaGlkZGVuLW5vZGUuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5lYWQzNWI0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvcGVyZi9zZWxlY3Rpb24tc2tpcC1oaWRkZW4tbm9kZS5odG1sCkBAIC0wLDAgKzEsMzQgQEAK
Kzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tYWduaXR1ZGUtcGVyZi5qcyI+PC9z
Y3JpcHQ+Cis8ZGl2IGlkPSJIaWRkZW5UZXh0Ij48L2Rpdj48cCBpZD0iVmlzaWJsZVRleHQiPlZp
c2libGUgVGV4dDwvcD4KKzxzY3JpcHQ+Cit2YXIgaGlkZGVuRGl2ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ0hpZGRlblRleHQnKTsKK2hpZGRlbkRpdi5zdHlsZS5kaXNwbGF5ID0gJ25vbmUn
OworCit2YXIgbG9uZ1RleHQgPSAic3VwZXIgbG9uZyBsb25nIHRleHQiOword2hpbGUgKGxvbmdU
ZXh0Lmxlbmd0aCA8IDE2KQorICAgIGxvbmdUZXh0ID0gbG9uZ1RleHQgKyBsb25nVGV4dDsKKwor
ZnVuY3Rpb24gc2V0dXBGdW5jdGlvbihtYWduaXR1ZGUpCit7CisgICAgd2hpbGUgKGhpZGRlbkRp
di5oYXNDaGlsZE5vZGVzKCkpCisgICAgICAgIGhpZGRlbkRpdi5yZW1vdmVDaGlsZChoaWRkZW5E
aXYubGFzdENoaWxkKTsKKworICAgIHZhciB0ZXh0ID0gbG9uZ1RleHQ7CisgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCBtYWduaXR1ZGU7ICsraSkKKyAgICAgICAgdGV4dCArPSBsb25nVGV4dDsKKwor
ICAgIHZhciB0ZXh0Tm9kZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRleHQpOworICAgIGhp
ZGRlbkRpdi5hcHBlbmRDaGlsZCh0ZXh0Tm9kZSk7Cit9CisKK2Z1bmN0aW9uIHRlc3QobWFnbml0
dWRlKQoreworICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5zZXRQb3NpdGlvbihkb2N1bWVudC5i
b2R5LCAwKTsKK30KKworTWFnbml0dWRlLmRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHRyYXZlcnNp
bmcgaGlkZGVuIHRleHQgbm9kZXMgaXMgY29uc3RhbnQgdGltZS4iKTsKK01hZ25pdHVkZS5ydW4o
c2V0dXBGdW5jdGlvbiwgdGVzdCwgTWFnbml0dWRlLkNPTlNUQU5UKTsKKworPC9zY3JpcHQ+Cis8
L2JvZHk+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggZTljMmM4Yi4uNzAyYWQ5ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDI3IEBACisyMDExLTA4LTI0ICBZb25nIExpICA8eW9saUByaW0uY29tPgorCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTM3NworICAgICAgICBT
a2lwIHRoZSBlbnRpcmUgbm9kZSB3aGVuIGl0IGlzIHJpZ2h0IHRvIGRvIHNvLCBpbnN0ZWFkIG9m
IHN0ZXBwaW5nCisgICAgICAgIHRocm91Z2ggZXZlcnkgY2hhcmFjdGVyLCBzbyB3ZSBzYXZlIENQ
VSB0aW1lIG9uIGNoZWNraW5nIGV2ZXJ5IHBvc2l0aW9uCisgICAgICAgIHVubmVjZXNzYXJpbHku
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgVGVzdDogcGVy
Zi9zZWxlY3Rpb24tc2tpcC1oaWRkZW4tbm9kZS5odG1sCisKKyAgICAgICAgKiBkb20vUG9zaXRp
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9zaXRpb246OnVwc3RyZWFtKToKKyAgICAgICAg
KFdlYkNvcmU6OlBvc2l0aW9uOjpkb3duc3RyZWFtKToKKyAgICAgICAgKiBkb20vUG9zaXRpb25J
dGVyYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3NpdGlvbkl0ZXJhdG9yOjptb3ZlVG9M
ZWFmTm9kZVN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlBvc2l0aW9uSXRlcmF0b3I6Om1vdmVU
b0xlYWZOb2RlRW5kKToKKyAgICAgICAgKiBkb20vUG9zaXRpb25JdGVyYXRvci5oOgorICAgICAg
ICAqIGVkaXRpbmcvaHRtbGVkaXRpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bmV4dENhbmRp
ZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpuZXh0VmlzdWFsbHlEaXN0aW5jdENhbmRpZGF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpwcmV2aW91c0NhbmRpZGF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpwcmV2aW91c1Zpc3VhbGx5RGlzdGluY3RDYW5kaWRhdGUpOgorCiAyMDEyLTAxLTI1ICBTYW1p
IEt5b3N0aWxhICA8c2t5b3N0aWxAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIENsaXBwaW5nIG9m
IHJlbmRlciBsYXllciBib3VuZGFyaWVzIGRvZXMgbm90IHRha2UgcGFnZSBzY2FsZSBpbnRvIGFj
Y291bnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCmluZGV4IGZlZDA0OTQuLmQ3ZDA5ODggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL1Bvc2l0aW9uLmNwcApAQCAtNjE1LDggKzYxNSwxMCBAQCBQb3NpdGlvbiBQb3NpdGlv
bjo6dXBzdHJlYW0oRWRpdGluZ0JvdW5kYXJ5Q3Jvc3NpbmdSdWxlIHJ1bGUpIGNvbnN0CiAKICAg
ICAgICAgLy8gc2tpcCBwb3NpdGlvbiBpbiB1bnJlbmRlcmVkIG9yIGludmlzaWJsZSBub2RlCiAg
ICAgICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBjdXJyZW50Tm9kZS0+cmVuZGVyZXIoKTsK
LSAgICAgICAgaWYgKCFyZW5kZXJlciB8fCByZW5kZXJlci0+c3R5bGUoKS0+dmlzaWJpbGl0eSgp
ICE9IFZJU0lCTEUpCisgICAgICAgIGlmICghcmVuZGVyZXIgfHwgcmVuZGVyZXItPnN0eWxlKCkt
PnZpc2liaWxpdHkoKSAhPSBWSVNJQkxFKSB7CisgICAgICAgICAgICBjdXJyZW50UG9zLm1vdmVU
b0xlYWZOb2RlU3RhcnQoKTsKICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgIAogICAgICAgICBpZiAocnVsZSA9PSBDYW5Dcm9zc0VkaXRpbmdCb3VuZGFy
eSAmJiBib3VuZGFyeUNyb3NzZWQpIHsKICAgICAgICAgICAgIGxhc3RWaXNpYmxlID0gY3VycmVu
dFBvczsKQEAgLTYzNiw2ICs2MzgsNyBAQCBQb3NpdGlvbiBQb3NpdGlvbjo6dXBzdHJlYW0oRWRp
dGluZ0JvdW5kYXJ5Q3Jvc3NpbmdSdWxlIHJ1bGUpIGNvbnN0CiAgICAgICAgIGlmIChlZGl0aW5n
SWdub3Jlc0NvbnRlbnQoY3VycmVudE5vZGUpIHx8IGlzVGFibGVFbGVtZW50KGN1cnJlbnROb2Rl
KSkgewogICAgICAgICAgICAgaWYgKGN1cnJlbnRQb3MuYXRFbmRPZk5vZGUoKSkKICAgICAgICAg
ICAgICAgICByZXR1cm4gcG9zaXRpb25BZnRlck5vZGUoY3VycmVudE5vZGUpOworICAgICAgICAg
ICAgY3VycmVudFBvcy5tb3ZlVG9MZWFmTm9kZVN0YXJ0KCk7CiAgICAgICAgICAgICBjb250aW51
ZTsKICAgICAgICAgfQogCkBAIC03NDcsOCArNzUwLDEwIEBAIFBvc2l0aW9uIFBvc2l0aW9uOjpk
b3duc3RyZWFtKEVkaXRpbmdCb3VuZGFyeUNyb3NzaW5nUnVsZSBydWxlKSBjb25zdAogCiAgICAg
ICAgIC8vIHNraXAgcG9zaXRpb24gaW4gdW5yZW5kZXJlZCBvciBpbnZpc2libGUgbm9kZQogICAg
ICAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gY3VycmVudE5vZGUtPnJlbmRlcmVyKCk7Ci0g
ICAgICAgIGlmICghcmVuZGVyZXIgfHwgcmVuZGVyZXItPnN0eWxlKCktPnZpc2liaWxpdHkoKSAh
PSBWSVNJQkxFKQorICAgICAgICBpZiAoIXJlbmRlcmVyIHx8IHJlbmRlcmVyLT5zdHlsZSgpLT52
aXNpYmlsaXR5KCkgIT0gVklTSUJMRSkgeworICAgICAgICAgICAgY3VycmVudFBvcy5tb3ZlVG9M
ZWFmTm9kZUVuZCgpOwogICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KICAgICAgICAg
ICAgIAogICAgICAgICBpZiAocnVsZSA9PSBDYW5Dcm9zc0VkaXRpbmdCb3VuZGFyeSAmJiBib3Vu
ZGFyeUNyb3NzZWQpIHsKICAgICAgICAgICAgIGxhc3RWaXNpYmxlID0gY3VycmVudFBvczsKQEAg
LTc2Myw2ICs3NjgsNyBAQCBQb3NpdGlvbiBQb3NpdGlvbjo6ZG93bnN0cmVhbShFZGl0aW5nQm91
bmRhcnlDcm9zc2luZ1J1bGUgcnVsZSkgY29uc3QKICAgICAgICAgaWYgKGVkaXRpbmdJZ25vcmVz
Q29udGVudChjdXJyZW50Tm9kZSkgfHwgaXNUYWJsZUVsZW1lbnQoY3VycmVudE5vZGUpKSB7CiAg
ICAgICAgICAgICBpZiAoY3VycmVudFBvcy5vZmZzZXRJbkxlYWZOb2RlKCkgPD0gcmVuZGVyZXIt
PmNhcmV0TWluT2Zmc2V0KCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUxlZ2FjeUVk
aXRpbmdQb3NpdGlvbihjdXJyZW50Tm9kZSwgcmVuZGVyZXItPmNhcmV0TWluT2Zmc2V0KCkpOwor
ICAgICAgICAgICAgY3VycmVudFBvcy5tb3ZlVG9MZWFmTm9kZUVuZCgpOwogICAgICAgICAgICAg
Y29udGludWU7CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Bv
c2l0aW9uSXRlcmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uSXRlcmF0b3Iu
Y3BwCmluZGV4IDQyNmM5MDQuLmZlNDkyYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Qb3NpdGlvbkl0ZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb25J
dGVyYXRvci5jcHAKQEAgLTE3Nyw0ICsxNzcsMjAgQEAgYm9vbCBQb3NpdGlvbkl0ZXJhdG9yOjpp
c0NhbmRpZGF0ZSgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCit2b2lkIFBvc2l0aW9u
SXRlcmF0b3I6Om1vdmVUb0xlYWZOb2RlU3RhcnQoKQoreworICAgIGlmICghbV9hbmNob3JOb2Rl
IHx8IG1fbm9kZUFmdGVyUG9zaXRpb25JbkFuY2hvciB8fCBtX2FuY2hvck5vZGUtPmhhc0NoaWxk
Tm9kZXMoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9vZmZzZXRJbkFuY2hvciA9IDA7Cit9
CisKK3ZvaWQgUG9zaXRpb25JdGVyYXRvcjo6bW92ZVRvTGVhZk5vZGVFbmQoKQoreworICAgIGlm
ICghbV9hbmNob3JOb2RlIHx8IG1fbm9kZUFmdGVyUG9zaXRpb25JbkFuY2hvciB8fCBtX2FuY2hv
ck5vZGUtPmhhc0NoaWxkTm9kZXMoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9vZmZzZXRJ
bkFuY2hvciA9IGxhc3RPZmZzZXRGb3JFZGl0aW5nKG1fYW5jaG9yTm9kZSk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlv
bkl0ZXJhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb25JdGVyYXRvci5oCmluZGV4
IDA4MzI5YmIuLmEwZGIxMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlv
bkl0ZXJhdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uSXRlcmF0b3IuaApA
QCAtNjQsNiArNjQsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBhdEVuZE9mTm9kZSgpIGNvbnN0Owog
ICAgIGJvb2wgaXNDYW5kaWRhdGUoKSBjb25zdDsKIAorICAgIHZvaWQgbW92ZVRvTGVhZk5vZGVT
dGFydCgpOworICAgIHZvaWQgbW92ZVRvTGVhZk5vZGVFbmQoKTsKKwogcHJpdmF0ZToKICAgICBO
b2RlKiBtX2FuY2hvck5vZGU7CiAgICAgTm9kZSogbV9ub2RlQWZ0ZXJQb3NpdGlvbkluQW5jaG9y
OyAvLyBJZiB0aGlzIGlzIG5vbi1udWxsLCBtX25vZGVBZnRlclBvc2l0aW9uSW5BbmNob3ItPnBh
cmVudE5vZGUoKSA9PSBtX2FuY2hvck5vZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL2h0bWxlZGl0aW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRp
bmcuY3BwCmluZGV4IDRlNmQ1MjguLmQxOWZmMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvaHRtbGVkaXRpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaHRt
bGVkaXRpbmcuY3BwCkBAIC0yMDksNiArMjA5LDkgQEAgUG9zaXRpb24gbmV4dENhbmRpZGF0ZShj
b25zdCBQb3NpdGlvbiYgcG9zaXRpb24pCiAgICAgICAgIHAuaW5jcmVtZW50KCk7CiAgICAgICAg
IGlmIChwLmlzQ2FuZGlkYXRlKCkpCiAgICAgICAgICAgICByZXR1cm4gcDsKKyAgICAgICAgUmVu
ZGVyT2JqZWN0KiByZW5kZXJlciA9IHAubm9kZSgpID8gcC5ub2RlKCktPnJlbmRlcmVyKCkgOiAw
OworICAgICAgICBpZiAoIXJlbmRlcmVyIHx8IHJlbmRlcmVyLT5zdHlsZSgpLT52aXNpYmlsaXR5
KCkgIT0gVklTSUJMRSkKKyAgICAgICAgICAgIHAubW92ZVRvTGVhZk5vZGVFbmQoKTsKICAgICB9
CiAgICAgcmV0dXJuIFBvc2l0aW9uKCk7CiB9CkBAIC0yMjEsNiArMjI0LDkgQEAgUG9zaXRpb24g
bmV4dFZpc3VhbGx5RGlzdGluY3RDYW5kaWRhdGUoY29uc3QgUG9zaXRpb24mIHBvc2l0aW9uKQog
ICAgICAgICBwID0gcC5uZXh0KENoYXJhY3Rlcik7CiAgICAgICAgIGlmIChwLmlzQ2FuZGlkYXRl
KCkgJiYgcC5kb3duc3RyZWFtKCkgIT0gZG93bnN0cmVhbVN0YXJ0KQogICAgICAgICAgICAgcmV0
dXJuIHA7CisgICAgICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBwLmRlcHJlY2F0ZWROb2Rl
KCkgPyBwLmRlcHJlY2F0ZWROb2RlKCktPnJlbmRlcmVyKCkgOiAwOworICAgICAgICBpZiAoIXJl
bmRlcmVyIHx8IHJlbmRlcmVyLT5zdHlsZSgpLT52aXNpYmlsaXR5KCkgIT0gVklTSUJMRSkKKyAg
ICAgICAgICAgIHAubW92ZVRvT2Zmc2V0KGxhc3RPZmZzZXRGb3JFZGl0aW5nKHAuZGVwcmVjYXRl
ZE5vZGUoKSkpOwogICAgIH0KICAgICByZXR1cm4gUG9zaXRpb24oKTsKIH0KQEAgLTIzMiw2ICsy
MzgsOSBAQCBQb3NpdGlvbiBwcmV2aW91c0NhbmRpZGF0ZShjb25zdCBQb3NpdGlvbiYgcG9zaXRp
b24pCiAgICAgICAgIHAuZGVjcmVtZW50KCk7CiAgICAgICAgIGlmIChwLmlzQ2FuZGlkYXRlKCkp
CiAgICAgICAgICAgICByZXR1cm4gcDsKKyAgICAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9
IHAubm9kZSgpID8gcC5ub2RlKCktPnJlbmRlcmVyKCkgOiAwOworICAgICAgICBpZiAoIXJlbmRl
cmVyIHx8IHJlbmRlcmVyLT5zdHlsZSgpLT52aXNpYmlsaXR5KCkgIT0gVklTSUJMRSkKKyAgICAg
ICAgICAgIHAubW92ZVRvTGVhZk5vZGVTdGFydCgpOwogICAgIH0KICAgICByZXR1cm4gUG9zaXRp
b24oKTsKIH0KQEAgLTI0NCw2ICsyNTMsOSBAQCBQb3NpdGlvbiBwcmV2aW91c1Zpc3VhbGx5RGlz
dGluY3RDYW5kaWRhdGUoY29uc3QgUG9zaXRpb24mIHBvc2l0aW9uKQogICAgICAgICBwID0gcC5w
cmV2aW91cyhDaGFyYWN0ZXIpOwogICAgICAgICBpZiAocC5pc0NhbmRpZGF0ZSgpICYmIHAuZG93
bnN0cmVhbSgpICE9IGRvd25zdHJlYW1TdGFydCkKICAgICAgICAgICAgIHJldHVybiBwOworICAg
ICAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gcC5kZXByZWNhdGVkTm9kZSgpID8gcC5kZXBy
ZWNhdGVkTm9kZSgpLT5yZW5kZXJlcigpIDogMDsKKyAgICAgICAgaWYgKCFyZW5kZXJlciB8fCBy
ZW5kZXJlci0+c3R5bGUoKS0+dmlzaWJpbGl0eSgpICE9IFZJU0lCTEUpCisgICAgICAgICAgICBw
Lm1vdmVUb09mZnNldCgwKTsKICAgICB9CiAgICAgcmV0dXJuIFBvc2l0aW9uKCk7CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>