<?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>86649</bug_id>
          
          <creation_ts>2012-05-16 10:16:14 -0700</creation_ts>
          <short_desc>isStartOfDocument and isEndOfDocument are poorly named</short_desc>
          <delta_ts>2012-05-21 13:51:36 -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>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>82875</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eae</cc>
    
    <cc>enrica</cc>
    
    <cc>leviw</cc>
    
    <cc>mnaganov</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xji</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>625592</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-05-16 10:16:14 -0700</bug_when>
    <thetext>bool isStartOfDocument(const VisiblePosition &amp;p)
{
    return p.isNotNull() &amp;&amp; p.previous().isNull();
}

bool isEndOfDocument(const VisiblePosition &amp;p)
{
    return p.isNotNull() &amp;&amp; p.next().isNull();
}

These functions are extremely poorly named. They don&apos;t check whether we&apos;re at the end of a document at all. They check whether we&apos;re at an editing boundary or not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>628273</commentid>
    <comment_count>1</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-05-18 17:15:16 -0700</bug_when>
    <thetext>I&apos;m fixing isStartOfDocument and isEndOfDocument to cross editing boundary and adding isEndOfEditableOrNonEditableContent which does what isEndOfDocument used to do.

After this change, selectFrameElementInParentIfFullySelected is the only client of isStartOfDocument and isEndOfDocument. The problem is that this function was added in http://trac.webkit.org/changeset/8942 without any tests without any tests. As far as I know, this function had been broken for ages (it only checked if the selection started and ended at the beginning and the end of the current editable region).

So I&apos;m very inclined to just delete it altogether. If anything, we should probably support control selection on iframes per https://bugs.webkit.org/show_bug.cgi?id=12250.

Darin, what is your opinion on this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>628296</commentid>
    <comment_count>2</comment_count>
      <attachid>142833</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-05-18 17:47:51 -0700</bug_when>
    <thetext>Created attachment 142833
Renames isEndOfDocument and adds fixed versions functions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>628304</commentid>
    <comment_count>3</comment_count>
      <attachid>142836</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-05-18 18:02:33 -0700</bug_when>
    <thetext>Created attachment 142836
Removed erroneous change in FrameSelection</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>628314</commentid>
    <comment_count>4</comment_count>
      <attachid>142836</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-05-18 18:10:29 -0700</bug_when>
    <thetext>Comment on attachment 142836
Removed erroneous change in FrameSelection

Attachment 142836 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/12726614</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>628320</commentid>
    <comment_count>5</comment_count>
      <attachid>142836</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-18 18:13:20 -0700</bug_when>
    <thetext>Comment on attachment 142836
Removed erroneous change in FrameSelection

Attachment 142836 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/12731052</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>628325</commentid>
    <comment_count>6</comment_count>
      <attachid>142836</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-05-18 19:27:02 -0700</bug_when>
    <thetext>Comment on attachment 142836
Removed erroneous change in FrameSelection

Attachment 142836 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/12732062</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>628329</commentid>
    <comment_count>7</comment_count>
      <attachid>142836</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-05-18 19:42:54 -0700</bug_when>
    <thetext>Comment on attachment 142836
Removed erroneous change in FrameSelection

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

&gt; Source/WebCore/editing/visible_units.cpp:-1379
&gt; -bool isStartOfDocument(const VisiblePosition &amp;p)
&gt; -{
&gt; -    return p.isNotNull() &amp;&amp; p.previous().isNull();
&gt; -}
&gt; -
&gt; -bool isEndOfDocument(const VisiblePosition &amp;p)
&gt; -{
&gt; -    return p.isNotNull() &amp;&amp; p.next().isNull();
&gt; -}
&gt; -

How odd. I shouldn&apos;t be removing these functions. Will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>628330</commentid>
    <comment_count>8</comment_count>
      <attachid>142836</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-05-18 19:45:34 -0700</bug_when>
    <thetext>Comment on attachment 142836
Removed erroneous change in FrameSelection

Attachment 142836 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/12730070</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>628339</commentid>
    <comment_count>9</comment_count>
      <attachid>142836</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-05-18 20:13:07 -0700</bug_when>
    <thetext>Comment on attachment 142836
Removed erroneous change in FrameSelection

Attachment 142836 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/12729275</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>628344</commentid>
    <comment_count>10</comment_count>
      <attachid>142847</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-05-18 20:59:59 -0700</bug_when>
    <thetext>Created attachment 142847
Fixed builds</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>628345</commentid>
    <comment_count>11</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-05-18 21:02:12 -0700</bug_when>
    <thetext>For now, I kept selectFrameElementInParentIfFullySelected intact (in fact I&apos;m probably fixing a bug in it).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>628889</commentid>
    <comment_count>12</comment_count>
      <attachid>142847</attachid>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2012-05-21 02:04:02 -0700</bug_when>
    <thetext>Comment on attachment 142847
Fixed builds

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

&gt; Source/WebCore/ChangeLog:10
&gt; +        Also added new versions of isStartOfDocument and isEndOfDocument that correctly cross editing boundaries

Is this true? I don&apos;t see the new versions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629082</commentid>
    <comment_count>13</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-05-21 07:37:43 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 142847 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=142847&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:10
&gt; &gt; +        Also added new versions of isStartOfDocument and isEndOfDocument that correctly cross editing boundaries
&gt; 
&gt; Is this true? I don&apos;t see the new versions.

Ugh... my change in isStartOfDocument and isEndOfDocument have been lost.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629197</commentid>
    <comment_count>14</comment_count>
      <attachid>143050</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-05-21 09:39:07 -0700</bug_when>
    <thetext>Created attachment 143050
Put back the missing changes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629270</commentid>
    <comment_count>15</comment_count>
      <attachid>143050</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-05-21 10:58:52 -0700</bug_when>
    <thetext>Comment on attachment 143050
Put back the missing changes

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        isEndOfDocument to isEndOfEditableOrNonEditableContent because that&apos;s what this function checks.

I believe you&apos;re missing the word &quot;Changed&quot; at the beginning :)

&gt; Source/WebCore/ChangeLog:11
&gt; +        Also added new versions of isStartOfDocument and isEndOfDocument that correctly cross editing boundaries
&gt; +        to be used in selectFrameElementInParentIfFullySelected.

Since you didn&apos;t create a isStartOfEditableOrNonEditableContent (man that&apos;s long) was isStartOfDocument just never used? Is isEndOfDocument still used after this patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629274</commentid>
    <comment_count>16</comment_count>
      <attachid>143050</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-05-21 11:02:20 -0700</bug_when>
    <thetext>Comment on attachment 143050
Put back the missing changes

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

&gt;&gt; Source/WebCore/ChangeLog:11
&gt;&gt; +        to be used in selectFrameElementInParentIfFullySelected.
&gt; 
&gt; Since you didn&apos;t create a isStartOfEditableOrNonEditableContent (man that&apos;s long) was isStartOfDocument just never used? Is isEndOfDocument still used after this patch?

isEndOfDocument and isStartOfDocument are still used in selectFrameElementInParentIfFullySelected.
See my comment #1.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629284</commentid>
    <comment_count>17</comment_count>
      <attachid>143050</attachid>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2012-05-21 11:11:22 -0700</bug_when>
    <thetext>Comment on attachment 143050
Put back the missing changes

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

&gt; Source/WebCore/editing/visible_units.cpp:1400
&gt; +bool isEndOfEditableOrNonEditableContent(const VisiblePosition &amp;p)

This is still a pretty poor name. How about isAtEditableBoundary or even isAtEndOfEditableBoundary?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629292</commentid>
    <comment_count>18</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-05-21 11:21:54 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; (From update of attachment 143050 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=143050&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/editing/visible_units.cpp:1400
&gt; &gt; +bool isEndOfEditableOrNonEditableContent(const VisiblePosition &amp;p)
&gt; 
&gt; This is still a pretty poor name. How about isAtEditableBoundary or even isAtEndOfEditableBoundary?

isAtEditableBoundary is inaccurate. isAtEndOfEditableBoundary doesn&apos;t make sense because an editing boundary is a point in DOM and a point/position doesn&apos;t have a start/end.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629327</commentid>
    <comment_count>19</comment_count>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2012-05-21 11:49:31 -0700</bug_when>
    <thetext>&gt; isAtEditableBoundary is inaccurate. isAtEndOfEditableBoundary doesn&apos;t make sense because an editing boundary is a point in DOM and a point/position doesn&apos;t have a start/end.

Then what is isEndOfEditableOrNonEditableContent trying to communicate if it isn&apos;t a boundary? I&apos;m confused.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629328</commentid>
    <comment_count>20</comment_count>
      <attachid>143050</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-05-21 11:49:50 -0700</bug_when>
    <thetext>Comment on attachment 143050
Put back the missing changes

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

&gt;&gt; Source/WebCore/ChangeLog:8
&gt;&gt; +        isEndOfDocument to isEndOfEditableOrNonEditableContent because that&apos;s what this function checks.
&gt; 
&gt; I believe you&apos;re missing the word &quot;Changed&quot; at the beginning :)

Make this a sentence.

&gt;&gt;&gt; Source/WebCore/editing/visible_units.cpp:1400
&gt;&gt;&gt; +bool isEndOfEditableOrNonEditableContent(const VisiblePosition &amp;p)
&gt;&gt; 
&gt;&gt; This is still a pretty poor name. How about isAtEditableBoundary or even isAtEndOfEditableBoundary?
&gt; 
&gt; isAtEditableBoundary is inaccurate. isAtEndOfEditableBoundary doesn&apos;t make sense because an editing boundary is a point in DOM and a point/position doesn&apos;t have a start/end.

I&apos;m not in love with this name, but it&apos;s at least accurate in what it portrays :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629464</commentid>
    <comment_count>21</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-05-21 13:51:36 -0700</bug_when>
    <thetext>Committed r117813: &lt;http://trac.webkit.org/changeset/117813&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>142833</attachid>
            <date>2012-05-18 17:47:51 -0700</date>
            <delta_ts>2012-05-18 18:02:29 -0700</delta_ts>
            <desc>Renames isEndOfDocument and adds fixed versions functions</desc>
            <filename>bug-86649-20120518175115.patch</filename>
            <type>text/plain</type>
            <size>8800</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExNzY2MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBACisyMDEyLTA1LTE4ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIGlzU3RhcnRPZkRvY3VtZW50IGFu
ZCBpc0VuZE9mRG9jdW1lbnQgYXJlIHBvb3JseSBuYW1lZAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODY2NDkKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBpc0VuZE9mRG9jdW1lbnQgdG8gaXNFbmRPZkVkaXRh
YmxlT3JOb25FZGl0YWJsZUNvbnRlbnQgYmVjYXVzZSB0aGF0J3Mgd2hhdCB0aGlzIGZ1bmN0aW9u
IGNoZWNrcy4KKworICAgICAgICBBbHNvIGFkZGVkIG5ldyB2ZXJzaW9ucyBvZiBpc1N0YXJ0T2ZE
b2N1bWVudCBhbmQgaXNFbmRPZkRvY3VtZW50IHRoYXQgY29ycmVjdGx5IGNyb3NzIGVkaXRpbmcg
Ym91bmRhcmllcworICAgICAgICB0byBiZSB1c2VkIGluIHNlbGVjdEZyYW1lRWxlbWVudEluUGFy
ZW50SWZGdWxseVNlbGVjdGVkLgorCisgICAgICAgICogZWRpdGluZy9Db21wb3NpdGVFZGl0Q29t
bWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6bW92ZVBh
cmFncmFwaENvbnRlbnRzVG9OZXdCbG9ja0lmTmVjZXNzYXJ5KToKKyAgICAgICAgKiBlZGl0aW5n
L0VkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6Omluc2VydExpbmVCcmVhayk6
CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6Omluc2VydFBhcmFncmFwaFNlcGFyYXRvcik6Cisg
ICAgICAgICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
cmFtZVNlbGVjdGlvbjo6c2VsZWN0RnJhbWVFbGVtZW50SW5QYXJlbnRJZkZ1bGx5U2VsZWN0ZWQp
OgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAq
IGVkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWaXNpYmxl
U2VsZWN0aW9uOjpzZXRTdGFydEFuZEVuZEZyb21CYXNlQW5kRXh0ZW50UmVzcGVjdGluZ0dyYW51
bGFyaXR5KToKKyAgICAgICAgKiBlZGl0aW5nL3Zpc2libGVfdW5pdHMuY3BwOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjppc0VuZE9mRWRpdGFibGVPck5vbkVkaXRhYmxl
Q29udGVudCk6CisgICAgICAgICogZWRpdGluZy92aXNpYmxlX3VuaXRzLmg6CisKIDIwMTItMDUt
MTggIExldmkgV2VpbnRyYXViICA8bGV2aXdAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmVy
dCB0byBmbG9hdCBtZXRob2Qgb2Ygc2VsZWN0aW9uIHJlY3QgYWxpZ25tZW50IGZvciBsaW5lIGJv
eCB0cmVlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5k
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRD
b21tYW5kLmNwcAkocmV2aXNpb24gMTE3NjUyKQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9D
b21wb3NpdGVFZGl0Q29tbWFuZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkyOSw4ICs5MjksOCBA
QCBQYXNzUmVmUHRyPE5vZGU+IENvbXBvc2l0ZUVkaXRDb21tYW5kOjptCiAgICAgICAgICAgICAv
LyBXZSBjYW4gYmFpbCBhcyB3ZSBoYXZlIGEgZnVsbCBibG9jayB0byB3b3JrIHdpdGguCiAgICAg
ICAgICAgICBBU1NFUlQodXBzdHJlYW1TdGFydC5kZXByZWNhdGVkTm9kZSgpLT5pc0Rlc2NlbmRh
bnRPZihlbmNsb3NpbmdCbG9jayh1cHN0cmVhbUVuZC5kZXByZWNhdGVkTm9kZSgpKSkpOwogICAg
ICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIH0gZWxzZSBpZiAoaXNFbmRPZkRvY3VtZW50KHZp
c2libGVFbmQpKSB7Ci0gICAgICAgICAgICAvLyBBdCB0aGUgZW5kIG9mIHRoZSBkb2N1bWVudC4g
V2UgY2FuIGJhaWwgaGVyZSBhcyB3ZWxsLgorICAgICAgICB9IGVsc2UgaWYgKGlzRW5kT2ZFZGl0
YWJsZU9yTm9uRWRpdGFibGVDb250ZW50KHZpc2libGVFbmQpKSB7CisgICAgICAgICAgICAvLyBB
dCB0aGUgZW5kIG9mIHRoZSBlZGl0YWJsZSByZWdpb24uIFdlIGNhbiBiYWlsIGhlcmUgYXMgd2Vs
bC4KICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICB9CiAgICAgfQpJbmRleDogU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmNwcAkocmV2aXNpb24gMTE3NjUyKQorKysgU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05NDYsNyArOTQ2LDcgQEAgYm9v
bCBFZGl0b3I6Omluc2VydExpbmVCcmVhaygpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAg
VmlzaWJsZVBvc2l0aW9uIGNhcmV0ID0gbV9mcmFtZS0+c2VsZWN0aW9uKCktPnNlbGVjdGlvbigp
LnZpc2libGVTdGFydCgpOwotICAgIGJvb2wgYWxpZ25Ub0VkZ2UgPSBpc0VuZE9mRG9jdW1lbnQo
Y2FyZXQpOworICAgIGJvb2wgYWxpZ25Ub0VkZ2UgPSBpc0VuZE9mRWRpdGFibGVPck5vbkVkaXRh
YmxlQ29udGVudChjYXJldCk7CiAgICAgYm9vbCBhdXRvY29ycmVjdGlvbklzQXBwbGllZCA9IG1f
YWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci0+YXBwbHlBdXRvY29ycmVjdGlvbkJlZm9yZVR5cGlu
Z0lmQXBwcm9wcmlhdGUoKTsKICAgICBUeXBpbmdDb21tYW5kOjppbnNlcnRMaW5lQnJlYWsobV9m
cmFtZS0+ZG9jdW1lbnQoKSwgYXV0b2NvcnJlY3Rpb25Jc0FwcGxpZWQgPyBUeXBpbmdDb21tYW5k
OjpSZXRhaW5BdXRvY29ycmVjdGlvbkluZGljYXRvciA6IDApOwogICAgIHJldmVhbFNlbGVjdGlv
bkFmdGVyRWRpdGluZ09wZXJhdGlvbihhbGlnblRvRWRnZSA/IFNjcm9sbEFsaWdubWVudDo6YWxp
Z25Ub0VkZ2VJZk5lZWRlZCA6IFNjcm9sbEFsaWdubWVudDo6YWxpZ25DZW50ZXJJZk5lZWRlZCk7
CkBAIC05NjYsNyArOTY2LDcgQEAgYm9vbCBFZGl0b3I6Omluc2VydFBhcmFncmFwaFNlcGFyYXRv
cigpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgVmlzaWJsZVBvc2l0aW9uIGNhcmV0ID0g
bV9mcmFtZS0+c2VsZWN0aW9uKCktPnNlbGVjdGlvbigpLnZpc2libGVTdGFydCgpOwotICAgIGJv
b2wgYWxpZ25Ub0VkZ2UgPSBpc0VuZE9mRG9jdW1lbnQoY2FyZXQpOworICAgIGJvb2wgYWxpZ25U
b0VkZ2UgPSBpc0VuZE9mRWRpdGFibGVPck5vbkVkaXRhYmxlQ29udGVudChjYXJldCk7CiAgICAg
Ym9vbCBhdXRvY29ycmVjdGlvbklzQXBwbGllZCA9IG1fYWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxl
ci0+YXBwbHlBdXRvY29ycmVjdGlvbkJlZm9yZVR5cGluZ0lmQXBwcm9wcmlhdGUoKTsKICAgICBU
eXBpbmdDb21tYW5kOjppbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3IobV9mcmFtZS0+ZG9jdW1lbnQo
KSwgYXV0b2NvcnJlY3Rpb25Jc0FwcGxpZWQgPyBUeXBpbmdDb21tYW5kOjpSZXRhaW5BdXRvY29y
cmVjdGlvbkluZGljYXRvciA6IDApOwogICAgIHJldmVhbFNlbGVjdGlvbkFmdGVyRWRpdGluZ09w
ZXJhdGlvbihhbGlnblRvRWRnZSA/IFNjcm9sbEFsaWdubWVudDo6YWxpZ25Ub0VkZ2VJZk5lZWRl
ZCA6IFNjcm9sbEFsaWdubWVudDo6YWxpZ25DZW50ZXJJZk5lZWRlZCk7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAkocmV2aXNpb24gMTE3NjUyKQorKysg
U291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTE1MTYsNiArMTUxNiw4IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNlbGVjdEZyYW1lRWxl
bWVudEkKICAgICAgICAgcmV0dXJuOwogICAgIGlmICghaXNFbmRPZkRvY3VtZW50KHNlbGVjdGlv
bigpLnZpc2libGVFbmQoKSkpCiAgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKIAogICAgIC8vIEdldCB0byB0aGUgPGlmcmFtZT4gb3IgPGZyYW1lPiAob3Ig
ZXZlbiA8b2JqZWN0PikgZWxlbWVudCBpbiB0aGUgcGFyZW50IGZyYW1lLgogICAgIEVsZW1lbnQq
IG93bmVyRWxlbWVudCA9IG1fZnJhbWUtPm93bmVyRWxlbWVudCgpOwpJbmRleDogU291cmNlL1dl
YkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAJKHJldmlz
aW9uIDExNzY1MikKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNv
bW1hbmQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MzAsNyArODMwLDcgQEAgdm9pZCBSZXBsYWNl
U2VsZWN0aW9uQ29tbWFuZDo6ZG9BcHBseSgpCiAgICAgICAgIHZpc2libGVTdGFydCA9IGVuZGlu
Z1NlbGVjdGlvbigpLnZpc2libGVTdGFydCgpOwogICAgICAgICBpZiAoZnJhZ21lbnQuaGFzSW50
ZXJjaGFuZ2VOZXdsaW5lQXRTdGFydCgpKSB7CiAgICAgICAgICAgICBpZiAoaXNFbmRPZlBhcmFn
cmFwaCh2aXNpYmxlU3RhcnQpICYmICFpc1N0YXJ0T2ZQYXJhZ3JhcGgodmlzaWJsZVN0YXJ0KSkg
ewotICAgICAgICAgICAgICAgIGlmICghaXNFbmRPZkRvY3VtZW50KHZpc2libGVTdGFydCkpCisg
ICAgICAgICAgICAgICAgaWYgKCFpc0VuZE9mRWRpdGFibGVPck5vbkVkaXRhYmxlQ29udGVudCh2
aXNpYmxlU3RhcnQpKQogICAgICAgICAgICAgICAgICAgICBzZXRFbmRpbmdTZWxlY3Rpb24odmlz
aWJsZVN0YXJ0Lm5leHQoKSk7CiAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICBp
bnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3IoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
VmlzaWJsZVNlbGVjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9WaXNpYmxlU2VsZWN0aW9uLmNwcAkocmV2aXNpb24gMTE3NjUyKQorKysgU291cmNlL1dlYkNv
cmUvZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjkzLDEx
ICsyOTMsMTEgQEAgdm9pZCBWaXNpYmxlU2VsZWN0aW9uOjpzZXRTdGFydEFuZEVuZEZybwogICAg
ICAgICAgICAgVmlzaWJsZVBvc2l0aW9uIHN0YXJ0ID0gVmlzaWJsZVBvc2l0aW9uKG1fc3RhcnQs
IG1fYWZmaW5pdHkpOwogICAgICAgICAgICAgVmlzaWJsZVBvc2l0aW9uIG9yaWdpbmFsRW5kKG1f
ZW5kLCBtX2FmZmluaXR5KTsKICAgICAgICAgICAgIEVXb3JkU2lkZSBzaWRlID0gUmlnaHRXb3Jk
SWZPbkJvdW5kYXJ5OwotICAgICAgICAgICAgaWYgKGlzRW5kT2ZEb2N1bWVudChzdGFydCkgfHwg
KGlzRW5kT2ZMaW5lKHN0YXJ0KSAmJiAhaXNTdGFydE9mTGluZShzdGFydCkgJiYgIWlzRW5kT2ZQ
YXJhZ3JhcGgoc3RhcnQpKSkKKyAgICAgICAgICAgIGlmIChpc0VuZE9mRWRpdGFibGVPck5vbkVk
aXRhYmxlQ29udGVudChzdGFydCkgfHwgKGlzRW5kT2ZMaW5lKHN0YXJ0KSAmJiAhaXNTdGFydE9m
TGluZShzdGFydCkgJiYgIWlzRW5kT2ZQYXJhZ3JhcGgoc3RhcnQpKSkKICAgICAgICAgICAgICAg
ICBzaWRlID0gTGVmdFdvcmRJZk9uQm91bmRhcnk7CiAgICAgICAgICAgICBtX3N0YXJ0ID0gc3Rh
cnRPZldvcmQoc3RhcnQsIHNpZGUpLmRlZXBFcXVpdmFsZW50KCk7CiAgICAgICAgICAgICBzaWRl
ID0gUmlnaHRXb3JkSWZPbkJvdW5kYXJ5OwotICAgICAgICAgICAgaWYgKGlzRW5kT2ZEb2N1bWVu
dChvcmlnaW5hbEVuZCkgfHwgKGlzRW5kT2ZMaW5lKG9yaWdpbmFsRW5kKSAmJiAhaXNTdGFydE9m
TGluZShvcmlnaW5hbEVuZCkgJiYgIWlzRW5kT2ZQYXJhZ3JhcGgob3JpZ2luYWxFbmQpKSkKKyAg
ICAgICAgICAgIGlmIChpc0VuZE9mRWRpdGFibGVPck5vbkVkaXRhYmxlQ29udGVudChvcmlnaW5h
bEVuZCkgfHwgKGlzRW5kT2ZMaW5lKG9yaWdpbmFsRW5kKSAmJiAhaXNTdGFydE9mTGluZShvcmln
aW5hbEVuZCkgJiYgIWlzRW5kT2ZQYXJhZ3JhcGgob3JpZ2luYWxFbmQpKSkKICAgICAgICAgICAg
ICAgICBzaWRlID0gTGVmdFdvcmRJZk9uQm91bmRhcnk7CiAgICAgICAgICAgICAgICAgCiAgICAg
ICAgICAgICBWaXNpYmxlUG9zaXRpb24gd29yZEVuZChlbmRPZldvcmQob3JpZ2luYWxFbmQsIHNp
ZGUpKTsKQEAgLTM0OSw3ICszNDksNyBAQCB2b2lkIFZpc2libGVTZWxlY3Rpb246OnNldFN0YXJ0
QW5kRW5kRnJvCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBQYXJhZ3JhcGhHcmFu
dWxhcml0eTogewogICAgICAgICAgICAgVmlzaWJsZVBvc2l0aW9uIHBvcyhtX3N0YXJ0LCBtX2Fm
ZmluaXR5KTsKLSAgICAgICAgICAgIGlmIChpc1N0YXJ0T2ZMaW5lKHBvcykgJiYgaXNFbmRPZkRv
Y3VtZW50KHBvcykpCisgICAgICAgICAgICBpZiAoaXNTdGFydE9mTGluZShwb3MpICYmIGlzRW5k
T2ZFZGl0YWJsZU9yTm9uRWRpdGFibGVDb250ZW50KHBvcykpCiAgICAgICAgICAgICAgICAgcG9z
ID0gcG9zLnByZXZpb3VzKCk7CiAgICAgICAgICAgICBtX3N0YXJ0ID0gc3RhcnRPZlBhcmFncmFw
aChwb3MpLmRlZXBFcXVpdmFsZW50KCk7CiAgICAgICAgICAgICBWaXNpYmxlUG9zaXRpb24gdmlz
aWJsZVBhcmFncmFwaEVuZCA9IGVuZE9mUGFyYWdyYXBoKFZpc2libGVQb3NpdGlvbihtX2VuZCwg
bV9hZmZpbml0eSkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy92aXNpYmxlX3VuaXRz
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL3Zpc2libGVfdW5pdHMu
Y3BwCShyZXZpc2lvbiAxMTc2NTIpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL3Zpc2libGVf
dW5pdHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzY3LDE2ICsxMzY3LDYgQEAgYm9vbCBpblNh
bWVEb2N1bWVudChjb25zdCBWaXNpYmxlUG9zaXRpbwogICAgIHJldHVybiBhbi0+ZG9jdW1lbnQo
KSA9PSBibi0+ZG9jdW1lbnQoKTsKIH0KIAotYm9vbCBpc1N0YXJ0T2ZEb2N1bWVudChjb25zdCBW
aXNpYmxlUG9zaXRpb24gJnApCi17Ci0gICAgcmV0dXJuIHAuaXNOb3ROdWxsKCkgJiYgcC5wcmV2
aW91cygpLmlzTnVsbCgpOwotfQotCi1ib29sIGlzRW5kT2ZEb2N1bWVudChjb25zdCBWaXNpYmxl
UG9zaXRpb24gJnApCi17Ci0gICAgcmV0dXJuIHAuaXNOb3ROdWxsKCkgJiYgcC5uZXh0KCkuaXNO
dWxsKCk7Ci19Ci0KIC8vIC0tLS0tLS0tLQogCiBWaXNpYmxlUG9zaXRpb24gc3RhcnRPZkVkaXRh
YmxlQ29udGVudChjb25zdCBWaXNpYmxlUG9zaXRpb24mIHZpc2libGVQb3NpdGlvbikKQEAgLTEz
OTcsNiArMTM4NywxMSBAQCBWaXNpYmxlUG9zaXRpb24gZW5kT2ZFZGl0YWJsZUNvbnRlbnQoY29u
CiAgICAgcmV0dXJuIGxhc3RQb3NpdGlvbkluTm9kZShoaWdoZXN0Um9vdCk7CiB9CiAKK2Jvb2wg
aXNFbmRPZkVkaXRhYmxlT3JOb25FZGl0YWJsZUNvbnRlbnQoY29uc3QgVmlzaWJsZVBvc2l0aW9u
ICZwKQoreworICAgIHJldHVybiBwLmlzTm90TnVsbCgpICYmIHAubmV4dCgpLmlzTnVsbCgpOwor
fQorCiBWaXNpYmxlUG9zaXRpb24gbGVmdEJvdW5kYXJ5T2ZMaW5lKGNvbnN0IFZpc2libGVQb3Np
dGlvbiYgYywgVGV4dERpcmVjdGlvbiBkaXJlY3Rpb24pCiB7CiAgICAgcmV0dXJuIGRpcmVjdGlv
biA9PSBMVFIgPyBsb2dpY2FsU3RhcnRPZkxpbmUoYykgOiBsb2dpY2FsRW5kT2ZMaW5lKGMpOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy92aXNpYmxlX3VuaXRzLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy92aXNpYmxlX3VuaXRzLmgJKHJldmlzaW9uIDExNzY1
MikKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvdmlzaWJsZV91bml0cy5oCSh3b3JraW5nIGNv
cHkpCkBAIC05NCw2ICs5NCw3IEBAIGJvb2wgaXNFbmRPZkRvY3VtZW50KGNvbnN0IFZpc2libGVQ
b3NpdGkKIC8vIGVkaXRhYmxlIGNvbnRlbnQKIFZpc2libGVQb3NpdGlvbiBzdGFydE9mRWRpdGFi
bGVDb250ZW50KGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOwogVmlzaWJsZVBvc2l0aW9uIGVuZE9m
RWRpdGFibGVDb250ZW50KGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOworYm9vbCBpc0VuZE9mRWRp
dGFibGVPck5vbkVkaXRhYmxlQ29udGVudChjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>142836</attachid>
            <date>2012-05-18 18:02:33 -0700</date>
            <delta_ts>2012-05-18 20:59:54 -0700</delta_ts>
            <desc>Removed erroneous change in FrameSelection</desc>
            <filename>bug-86649-20120518180557.patch</filename>
            <type>text/plain</type>
            <size>8114</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExNzY2MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBACisyMDEyLTA1LTE4ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIGlzU3RhcnRPZkRvY3VtZW50IGFu
ZCBpc0VuZE9mRG9jdW1lbnQgYXJlIHBvb3JseSBuYW1lZAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODY2NDkKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBpc0VuZE9mRG9jdW1lbnQgdG8gaXNFbmRPZkVkaXRh
YmxlT3JOb25FZGl0YWJsZUNvbnRlbnQgYmVjYXVzZSB0aGF0J3Mgd2hhdCB0aGlzIGZ1bmN0aW9u
IGNoZWNrcy4KKworICAgICAgICBBbHNvIGFkZGVkIG5ldyB2ZXJzaW9ucyBvZiBpc1N0YXJ0T2ZE
b2N1bWVudCBhbmQgaXNFbmRPZkRvY3VtZW50IHRoYXQgY29ycmVjdGx5IGNyb3NzIGVkaXRpbmcg
Ym91bmRhcmllcworICAgICAgICB0byBiZSB1c2VkIGluIHNlbGVjdEZyYW1lRWxlbWVudEluUGFy
ZW50SWZGdWxseVNlbGVjdGVkLgorCisgICAgICAgICogZWRpdGluZy9Db21wb3NpdGVFZGl0Q29t
bWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6bW92ZVBh
cmFncmFwaENvbnRlbnRzVG9OZXdCbG9ja0lmTmVjZXNzYXJ5KToKKyAgICAgICAgKiBlZGl0aW5n
L0VkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6Omluc2VydExpbmVCcmVhayk6
CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6Omluc2VydFBhcmFncmFwaFNlcGFyYXRvcik6Cisg
ICAgICAgICogZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgICogZWRp
dGluZy9WaXNpYmxlU2VsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlZpc2libGVTZWxl
Y3Rpb246OnNldFN0YXJ0QW5kRW5kRnJvbUJhc2VBbmRFeHRlbnRSZXNwZWN0aW5nR3JhbnVsYXJp
dHkpOgorICAgICAgICAqIGVkaXRpbmcvdmlzaWJsZV91bml0cy5jcHA6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OmlzRW5kT2ZFZGl0YWJsZU9yTm9uRWRpdGFibGVDb250
ZW50KToKKyAgICAgICAgKiBlZGl0aW5nL3Zpc2libGVfdW5pdHMuaDoKKwogMjAxMi0wNS0xOCAg
TGV2aSBXZWludHJhdWIgIDxsZXZpd0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2ZXJ0IHRv
IGZsb2F0IG1ldGhvZCBvZiBzZWxlY3Rpb24gcmVjdCBhbGlnbm1lbnQgZm9yIGxpbmUgYm94IHRy
ZWUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1h
bmQuY3BwCShyZXZpc2lvbiAxMTc2NTIpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBv
c2l0ZUVkaXRDb21tYW5kLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTI5LDggKzkyOSw4IEBAIFBh
c3NSZWZQdHI8Tm9kZT4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6Om0KICAgICAgICAgICAgIC8vIFdl
IGNhbiBiYWlsIGFzIHdlIGhhdmUgYSBmdWxsIGJsb2NrIHRvIHdvcmsgd2l0aC4KICAgICAgICAg
ICAgIEFTU0VSVCh1cHN0cmVhbVN0YXJ0LmRlcHJlY2F0ZWROb2RlKCktPmlzRGVzY2VuZGFudE9m
KGVuY2xvc2luZ0Jsb2NrKHVwc3RyZWFtRW5kLmRlcHJlY2F0ZWROb2RlKCkpKSk7CiAgICAgICAg
ICAgICByZXR1cm4gMDsKLSAgICAgICAgfSBlbHNlIGlmIChpc0VuZE9mRG9jdW1lbnQodmlzaWJs
ZUVuZCkpIHsKLSAgICAgICAgICAgIC8vIEF0IHRoZSBlbmQgb2YgdGhlIGRvY3VtZW50LiBXZSBj
YW4gYmFpbCBoZXJlIGFzIHdlbGwuCisgICAgICAgIH0gZWxzZSBpZiAoaXNFbmRPZkVkaXRhYmxl
T3JOb25FZGl0YWJsZUNvbnRlbnQodmlzaWJsZUVuZCkpIHsKKyAgICAgICAgICAgIC8vIEF0IHRo
ZSBlbmQgb2YgdGhlIGVkaXRhYmxlIHJlZ2lvbi4gV2UgY2FuIGJhaWwgaGVyZSBhcyB3ZWxsLgog
ICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0KICAgICB9CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0b3IuY3BwCShyZXZpc2lvbiAxMTc2NTIpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk0Niw3ICs5NDYsNyBAQCBib29sIEVk
aXRvcjo6aW5zZXJ0TGluZUJyZWFrKCkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBWaXNp
YmxlUG9zaXRpb24gY2FyZXQgPSBtX2ZyYW1lLT5zZWxlY3Rpb24oKS0+c2VsZWN0aW9uKCkudmlz
aWJsZVN0YXJ0KCk7Ci0gICAgYm9vbCBhbGlnblRvRWRnZSA9IGlzRW5kT2ZEb2N1bWVudChjYXJl
dCk7CisgICAgYm9vbCBhbGlnblRvRWRnZSA9IGlzRW5kT2ZFZGl0YWJsZU9yTm9uRWRpdGFibGVD
b250ZW50KGNhcmV0KTsKICAgICBib29sIGF1dG9jb3JyZWN0aW9uSXNBcHBsaWVkID0gbV9hbHRl
cm5hdGl2ZVRleHRDb250cm9sbGVyLT5hcHBseUF1dG9jb3JyZWN0aW9uQmVmb3JlVHlwaW5nSWZB
cHByb3ByaWF0ZSgpOwogICAgIFR5cGluZ0NvbW1hbmQ6Omluc2VydExpbmVCcmVhayhtX2ZyYW1l
LT5kb2N1bWVudCgpLCBhdXRvY29ycmVjdGlvbklzQXBwbGllZCA/IFR5cGluZ0NvbW1hbmQ6OlJl
dGFpbkF1dG9jb3JyZWN0aW9uSW5kaWNhdG9yIDogMCk7CiAgICAgcmV2ZWFsU2VsZWN0aW9uQWZ0
ZXJFZGl0aW5nT3BlcmF0aW9uKGFsaWduVG9FZGdlID8gU2Nyb2xsQWxpZ25tZW50OjphbGlnblRv
RWRnZUlmTmVlZGVkIDogU2Nyb2xsQWxpZ25tZW50OjphbGlnbkNlbnRlcklmTmVlZGVkKTsKQEAg
LTk2Niw3ICs5NjYsNyBAQCBib29sIEVkaXRvcjo6aW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yKCkK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBWaXNpYmxlUG9zaXRpb24gY2FyZXQgPSBtX2Zy
YW1lLT5zZWxlY3Rpb24oKS0+c2VsZWN0aW9uKCkudmlzaWJsZVN0YXJ0KCk7Ci0gICAgYm9vbCBh
bGlnblRvRWRnZSA9IGlzRW5kT2ZEb2N1bWVudChjYXJldCk7CisgICAgYm9vbCBhbGlnblRvRWRn
ZSA9IGlzRW5kT2ZFZGl0YWJsZU9yTm9uRWRpdGFibGVDb250ZW50KGNhcmV0KTsKICAgICBib29s
IGF1dG9jb3JyZWN0aW9uSXNBcHBsaWVkID0gbV9hbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLT5h
cHBseUF1dG9jb3JyZWN0aW9uQmVmb3JlVHlwaW5nSWZBcHByb3ByaWF0ZSgpOwogICAgIFR5cGlu
Z0NvbW1hbmQ6Omluc2VydFBhcmFncmFwaFNlcGFyYXRvcihtX2ZyYW1lLT5kb2N1bWVudCgpLCBh
dXRvY29ycmVjdGlvbklzQXBwbGllZCA/IFR5cGluZ0NvbW1hbmQ6OlJldGFpbkF1dG9jb3JyZWN0
aW9uSW5kaWNhdG9yIDogMCk7CiAgICAgcmV2ZWFsU2VsZWN0aW9uQWZ0ZXJFZGl0aW5nT3BlcmF0
aW9uKGFsaWduVG9FZGdlID8gU2Nyb2xsQWxpZ25tZW50OjphbGlnblRvRWRnZUlmTmVlZGVkIDog
U2Nyb2xsQWxpZ25tZW50OjphbGlnbkNlbnRlcklmTmVlZGVkKTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwCShyZXZpc2lv
biAxMTc2NTIpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21t
YW5kLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODMwLDcgKzgzMCw3IEBAIHZvaWQgUmVwbGFjZVNl
bGVjdGlvbkNvbW1hbmQ6OmRvQXBwbHkoKQogICAgICAgICB2aXNpYmxlU3RhcnQgPSBlbmRpbmdT
ZWxlY3Rpb24oKS52aXNpYmxlU3RhcnQoKTsKICAgICAgICAgaWYgKGZyYWdtZW50Lmhhc0ludGVy
Y2hhbmdlTmV3bGluZUF0U3RhcnQoKSkgewogICAgICAgICAgICAgaWYgKGlzRW5kT2ZQYXJhZ3Jh
cGgodmlzaWJsZVN0YXJ0KSAmJiAhaXNTdGFydE9mUGFyYWdyYXBoKHZpc2libGVTdGFydCkpIHsK
LSAgICAgICAgICAgICAgICBpZiAoIWlzRW5kT2ZEb2N1bWVudCh2aXNpYmxlU3RhcnQpKQorICAg
ICAgICAgICAgICAgIGlmICghaXNFbmRPZkVkaXRhYmxlT3JOb25FZGl0YWJsZUNvbnRlbnQodmlz
aWJsZVN0YXJ0KSkKICAgICAgICAgICAgICAgICAgICAgc2V0RW5kaW5nU2VsZWN0aW9uKHZpc2li
bGVTdGFydC5uZXh0KCkpOwogICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgaW5z
ZXJ0UGFyYWdyYXBoU2VwYXJhdG9yKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zp
c2libGVTZWxlY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
VmlzaWJsZVNlbGVjdGlvbi5jcHAJKHJldmlzaW9uIDExNzY1MikKKysrIFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5MywxMSAr
MjkzLDExIEBAIHZvaWQgVmlzaWJsZVNlbGVjdGlvbjo6c2V0U3RhcnRBbmRFbmRGcm8KICAgICAg
ICAgICAgIFZpc2libGVQb3NpdGlvbiBzdGFydCA9IFZpc2libGVQb3NpdGlvbihtX3N0YXJ0LCBt
X2FmZmluaXR5KTsKICAgICAgICAgICAgIFZpc2libGVQb3NpdGlvbiBvcmlnaW5hbEVuZChtX2Vu
ZCwgbV9hZmZpbml0eSk7CiAgICAgICAgICAgICBFV29yZFNpZGUgc2lkZSA9IFJpZ2h0V29yZElm
T25Cb3VuZGFyeTsKLSAgICAgICAgICAgIGlmIChpc0VuZE9mRG9jdW1lbnQoc3RhcnQpIHx8IChp
c0VuZE9mTGluZShzdGFydCkgJiYgIWlzU3RhcnRPZkxpbmUoc3RhcnQpICYmICFpc0VuZE9mUGFy
YWdyYXBoKHN0YXJ0KSkpCisgICAgICAgICAgICBpZiAoaXNFbmRPZkVkaXRhYmxlT3JOb25FZGl0
YWJsZUNvbnRlbnQoc3RhcnQpIHx8IChpc0VuZE9mTGluZShzdGFydCkgJiYgIWlzU3RhcnRPZkxp
bmUoc3RhcnQpICYmICFpc0VuZE9mUGFyYWdyYXBoKHN0YXJ0KSkpCiAgICAgICAgICAgICAgICAg
c2lkZSA9IExlZnRXb3JkSWZPbkJvdW5kYXJ5OwogICAgICAgICAgICAgbV9zdGFydCA9IHN0YXJ0
T2ZXb3JkKHN0YXJ0LCBzaWRlKS5kZWVwRXF1aXZhbGVudCgpOwogICAgICAgICAgICAgc2lkZSA9
IFJpZ2h0V29yZElmT25Cb3VuZGFyeTsKLSAgICAgICAgICAgIGlmIChpc0VuZE9mRG9jdW1lbnQo
b3JpZ2luYWxFbmQpIHx8IChpc0VuZE9mTGluZShvcmlnaW5hbEVuZCkgJiYgIWlzU3RhcnRPZkxp
bmUob3JpZ2luYWxFbmQpICYmICFpc0VuZE9mUGFyYWdyYXBoKG9yaWdpbmFsRW5kKSkpCisgICAg
ICAgICAgICBpZiAoaXNFbmRPZkVkaXRhYmxlT3JOb25FZGl0YWJsZUNvbnRlbnQob3JpZ2luYWxF
bmQpIHx8IChpc0VuZE9mTGluZShvcmlnaW5hbEVuZCkgJiYgIWlzU3RhcnRPZkxpbmUob3JpZ2lu
YWxFbmQpICYmICFpc0VuZE9mUGFyYWdyYXBoKG9yaWdpbmFsRW5kKSkpCiAgICAgICAgICAgICAg
ICAgc2lkZSA9IExlZnRXb3JkSWZPbkJvdW5kYXJ5OwogICAgICAgICAgICAgICAgIAogICAgICAg
ICAgICAgVmlzaWJsZVBvc2l0aW9uIHdvcmRFbmQoZW5kT2ZXb3JkKG9yaWdpbmFsRW5kLCBzaWRl
KSk7CkBAIC0zNDksNyArMzQ5LDcgQEAgdm9pZCBWaXNpYmxlU2VsZWN0aW9uOjpzZXRTdGFydEFu
ZEVuZEZybwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgUGFyYWdyYXBoR3JhbnVs
YXJpdHk6IHsKICAgICAgICAgICAgIFZpc2libGVQb3NpdGlvbiBwb3MobV9zdGFydCwgbV9hZmZp
bml0eSk7Ci0gICAgICAgICAgICBpZiAoaXNTdGFydE9mTGluZShwb3MpICYmIGlzRW5kT2ZEb2N1
bWVudChwb3MpKQorICAgICAgICAgICAgaWYgKGlzU3RhcnRPZkxpbmUocG9zKSAmJiBpc0VuZE9m
RWRpdGFibGVPck5vbkVkaXRhYmxlQ29udGVudChwb3MpKQogICAgICAgICAgICAgICAgIHBvcyA9
IHBvcy5wcmV2aW91cygpOwogICAgICAgICAgICAgbV9zdGFydCA9IHN0YXJ0T2ZQYXJhZ3JhcGgo
cG9zKS5kZWVwRXF1aXZhbGVudCgpOwogICAgICAgICAgICAgVmlzaWJsZVBvc2l0aW9uIHZpc2li
bGVQYXJhZ3JhcGhFbmQgPSBlbmRPZlBhcmFncmFwaChWaXNpYmxlUG9zaXRpb24obV9lbmQsIG1f
YWZmaW5pdHkpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvdmlzaWJsZV91bml0cy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy92aXNpYmxlX3VuaXRzLmNw
cAkocmV2aXNpb24gMTE3NjUyKQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy92aXNpYmxlX3Vu
aXRzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM2NywxNiArMTM2Nyw2IEBAIGJvb2wgaW5TYW1l
RG9jdW1lbnQoY29uc3QgVmlzaWJsZVBvc2l0aW8KICAgICByZXR1cm4gYW4tPmRvY3VtZW50KCkg
PT0gYm4tPmRvY3VtZW50KCk7CiB9CiAKLWJvb2wgaXNTdGFydE9mRG9jdW1lbnQoY29uc3QgVmlz
aWJsZVBvc2l0aW9uICZwKQotewotICAgIHJldHVybiBwLmlzTm90TnVsbCgpICYmIHAucHJldmlv
dXMoKS5pc051bGwoKTsKLX0KLQotYm9vbCBpc0VuZE9mRG9jdW1lbnQoY29uc3QgVmlzaWJsZVBv
c2l0aW9uICZwKQotewotICAgIHJldHVybiBwLmlzTm90TnVsbCgpICYmIHAubmV4dCgpLmlzTnVs
bCgpOwotfQotCiAvLyAtLS0tLS0tLS0KIAogVmlzaWJsZVBvc2l0aW9uIHN0YXJ0T2ZFZGl0YWJs
ZUNvbnRlbnQoY29uc3QgVmlzaWJsZVBvc2l0aW9uJiB2aXNpYmxlUG9zaXRpb24pCkBAIC0xMzk3
LDYgKzEzODcsMTEgQEAgVmlzaWJsZVBvc2l0aW9uIGVuZE9mRWRpdGFibGVDb250ZW50KGNvbgog
ICAgIHJldHVybiBsYXN0UG9zaXRpb25Jbk5vZGUoaGlnaGVzdFJvb3QpOwogfQogCitib29sIGlz
RW5kT2ZFZGl0YWJsZU9yTm9uRWRpdGFibGVDb250ZW50KGNvbnN0IFZpc2libGVQb3NpdGlvbiAm
cCkKK3sKKyAgICByZXR1cm4gcC5pc05vdE51bGwoKSAmJiBwLm5leHQoKS5pc051bGwoKTsKK30K
KwogVmlzaWJsZVBvc2l0aW9uIGxlZnRCb3VuZGFyeU9mTGluZShjb25zdCBWaXNpYmxlUG9zaXRp
b24mIGMsIFRleHREaXJlY3Rpb24gZGlyZWN0aW9uKQogewogICAgIHJldHVybiBkaXJlY3Rpb24g
PT0gTFRSID8gbG9naWNhbFN0YXJ0T2ZMaW5lKGMpIDogbG9naWNhbEVuZE9mTGluZShjKTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvdmlzaWJsZV91bml0cy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvdmlzaWJsZV91bml0cy5oCShyZXZpc2lvbiAxMTc2NTIp
CisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL3Zpc2libGVfdW5pdHMuaAkod29ya2luZyBjb3B5
KQpAQCAtOTQsNiArOTQsNyBAQCBib29sIGlzRW5kT2ZEb2N1bWVudChjb25zdCBWaXNpYmxlUG9z
aXRpCiAvLyBlZGl0YWJsZSBjb250ZW50CiBWaXNpYmxlUG9zaXRpb24gc3RhcnRPZkVkaXRhYmxl
Q29udGVudChjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKIFZpc2libGVQb3NpdGlvbiBlbmRPZkVk
aXRhYmxlQ29udGVudChjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKK2Jvb2wgaXNFbmRPZkVkaXRh
YmxlT3JOb25FZGl0YWJsZUNvbnRlbnQoY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>142847</attachid>
            <date>2012-05-18 20:59:59 -0700</date>
            <delta_ts>2012-05-21 09:39:02 -0700</delta_ts>
            <desc>Fixed builds</desc>
            <filename>bug-86649-20120518210323.patch</filename>
            <type>text/plain</type>
            <size>7669</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExNzY2MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBACisyMDEyLTA1LTE4ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIGlzU3RhcnRPZkRvY3VtZW50IGFu
ZCBpc0VuZE9mRG9jdW1lbnQgYXJlIHBvb3JseSBuYW1lZAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODY2NDkKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBpc0VuZE9mRG9jdW1lbnQgdG8gaXNFbmRPZkVkaXRh
YmxlT3JOb25FZGl0YWJsZUNvbnRlbnQgYmVjYXVzZSB0aGF0J3Mgd2hhdCB0aGlzIGZ1bmN0aW9u
IGNoZWNrcy4KKworICAgICAgICBBbHNvIGFkZGVkIG5ldyB2ZXJzaW9ucyBvZiBpc1N0YXJ0T2ZE
b2N1bWVudCBhbmQgaXNFbmRPZkRvY3VtZW50IHRoYXQgY29ycmVjdGx5IGNyb3NzIGVkaXRpbmcg
Ym91bmRhcmllcworICAgICAgICB0byBiZSB1c2VkIGluIHNlbGVjdEZyYW1lRWxlbWVudEluUGFy
ZW50SWZGdWxseVNlbGVjdGVkLgorCisgICAgICAgICogZWRpdGluZy9Db21wb3NpdGVFZGl0Q29t
bWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6bW92ZVBh
cmFncmFwaENvbnRlbnRzVG9OZXdCbG9ja0lmTmVjZXNzYXJ5KToKKyAgICAgICAgKiBlZGl0aW5n
L0VkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6Omluc2VydExpbmVCcmVhayk6
CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6Omluc2VydFBhcmFncmFwaFNlcGFyYXRvcik6Cisg
ICAgICAgICogZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgICogZWRp
dGluZy9WaXNpYmxlU2VsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlZpc2libGVTZWxl
Y3Rpb246OnNldFN0YXJ0QW5kRW5kRnJvbUJhc2VBbmRFeHRlbnRSZXNwZWN0aW5nR3JhbnVsYXJp
dHkpOgorICAgICAgICAqIGVkaXRpbmcvdmlzaWJsZV91bml0cy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjppc0VuZE9mRWRpdGFibGVPck5vbkVkaXRhYmxlQ29udGVudCk6CisgICAgICAgICogZWRp
dGluZy92aXNpYmxlX3VuaXRzLmg6CisKIDIwMTItMDUtMTggIExldmkgV2VpbnRyYXViICA8bGV2
aXdAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmVydCB0byBmbG9hdCBtZXRob2Qgb2Ygc2Vs
ZWN0aW9uIHJlY3QgYWxpZ25tZW50IGZvciBsaW5lIGJveCB0cmVlCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAkocmV2aXNpb24gMTE3
NjUyKQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTkyOSw4ICs5MjksOCBAQCBQYXNzUmVmUHRyPE5vZGU+IENvbXBv
c2l0ZUVkaXRDb21tYW5kOjptCiAgICAgICAgICAgICAvLyBXZSBjYW4gYmFpbCBhcyB3ZSBoYXZl
IGEgZnVsbCBibG9jayB0byB3b3JrIHdpdGguCiAgICAgICAgICAgICBBU1NFUlQodXBzdHJlYW1T
dGFydC5kZXByZWNhdGVkTm9kZSgpLT5pc0Rlc2NlbmRhbnRPZihlbmNsb3NpbmdCbG9jayh1cHN0
cmVhbUVuZC5kZXByZWNhdGVkTm9kZSgpKSkpOwogICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAg
ICAgIH0gZWxzZSBpZiAoaXNFbmRPZkRvY3VtZW50KHZpc2libGVFbmQpKSB7Ci0gICAgICAgICAg
ICAvLyBBdCB0aGUgZW5kIG9mIHRoZSBkb2N1bWVudC4gV2UgY2FuIGJhaWwgaGVyZSBhcyB3ZWxs
LgorICAgICAgICB9IGVsc2UgaWYgKGlzRW5kT2ZFZGl0YWJsZU9yTm9uRWRpdGFibGVDb250ZW50
KHZpc2libGVFbmQpKSB7CisgICAgICAgICAgICAvLyBBdCB0aGUgZW5kIG9mIHRoZSBlZGl0YWJs
ZSByZWdpb24uIFdlIGNhbiBiYWlsIGhlcmUgYXMgd2VsbC4KICAgICAgICAgICAgIHJldHVybiAw
OwogICAgICAgICB9CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3Iu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAkocmV2
aXNpb24gMTE3NjUyKQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC05NDYsNyArOTQ2LDcgQEAgYm9vbCBFZGl0b3I6Omluc2VydExpbmVCcmVh
aygpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgVmlzaWJsZVBvc2l0aW9uIGNhcmV0ID0g
bV9mcmFtZS0+c2VsZWN0aW9uKCktPnNlbGVjdGlvbigpLnZpc2libGVTdGFydCgpOwotICAgIGJv
b2wgYWxpZ25Ub0VkZ2UgPSBpc0VuZE9mRG9jdW1lbnQoY2FyZXQpOworICAgIGJvb2wgYWxpZ25U
b0VkZ2UgPSBpc0VuZE9mRWRpdGFibGVPck5vbkVkaXRhYmxlQ29udGVudChjYXJldCk7CiAgICAg
Ym9vbCBhdXRvY29ycmVjdGlvbklzQXBwbGllZCA9IG1fYWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxl
ci0+YXBwbHlBdXRvY29ycmVjdGlvbkJlZm9yZVR5cGluZ0lmQXBwcm9wcmlhdGUoKTsKICAgICBU
eXBpbmdDb21tYW5kOjppbnNlcnRMaW5lQnJlYWsobV9mcmFtZS0+ZG9jdW1lbnQoKSwgYXV0b2Nv
cnJlY3Rpb25Jc0FwcGxpZWQgPyBUeXBpbmdDb21tYW5kOjpSZXRhaW5BdXRvY29ycmVjdGlvbklu
ZGljYXRvciA6IDApOwogICAgIHJldmVhbFNlbGVjdGlvbkFmdGVyRWRpdGluZ09wZXJhdGlvbihh
bGlnblRvRWRnZSA/IFNjcm9sbEFsaWdubWVudDo6YWxpZ25Ub0VkZ2VJZk5lZWRlZCA6IFNjcm9s
bEFsaWdubWVudDo6YWxpZ25DZW50ZXJJZk5lZWRlZCk7CkBAIC05NjYsNyArOTY2LDcgQEAgYm9v
bCBFZGl0b3I6Omluc2VydFBhcmFncmFwaFNlcGFyYXRvcigpCiAgICAgICAgIHJldHVybiB0cnVl
OwogCiAgICAgVmlzaWJsZVBvc2l0aW9uIGNhcmV0ID0gbV9mcmFtZS0+c2VsZWN0aW9uKCktPnNl
bGVjdGlvbigpLnZpc2libGVTdGFydCgpOwotICAgIGJvb2wgYWxpZ25Ub0VkZ2UgPSBpc0VuZE9m
RG9jdW1lbnQoY2FyZXQpOworICAgIGJvb2wgYWxpZ25Ub0VkZ2UgPSBpc0VuZE9mRWRpdGFibGVP
ck5vbkVkaXRhYmxlQ29udGVudChjYXJldCk7CiAgICAgYm9vbCBhdXRvY29ycmVjdGlvbklzQXBw
bGllZCA9IG1fYWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci0+YXBwbHlBdXRvY29ycmVjdGlvbkJl
Zm9yZVR5cGluZ0lmQXBwcm9wcmlhdGUoKTsKICAgICBUeXBpbmdDb21tYW5kOjppbnNlcnRQYXJh
Z3JhcGhTZXBhcmF0b3IobV9mcmFtZS0+ZG9jdW1lbnQoKSwgYXV0b2NvcnJlY3Rpb25Jc0FwcGxp
ZWQgPyBUeXBpbmdDb21tYW5kOjpSZXRhaW5BdXRvY29ycmVjdGlvbkluZGljYXRvciA6IDApOwog
ICAgIHJldmVhbFNlbGVjdGlvbkFmdGVyRWRpdGluZ09wZXJhdGlvbihhbGlnblRvRWRnZSA/IFNj
cm9sbEFsaWdubWVudDo6YWxpZ25Ub0VkZ2VJZk5lZWRlZCA6IFNjcm9sbEFsaWdubWVudDo6YWxp
Z25DZW50ZXJJZk5lZWRlZCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VT
ZWxlY3Rpb25Db21tYW5kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAkocmV2aXNpb24gMTE3NjUyKQorKysgU291cmNl
L1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTgzMCw3ICs4MzAsNyBAQCB2b2lkIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpkb0Fw
cGx5KCkKICAgICAgICAgdmlzaWJsZVN0YXJ0ID0gZW5kaW5nU2VsZWN0aW9uKCkudmlzaWJsZVN0
YXJ0KCk7CiAgICAgICAgIGlmIChmcmFnbWVudC5oYXNJbnRlcmNoYW5nZU5ld2xpbmVBdFN0YXJ0
KCkpIHsKICAgICAgICAgICAgIGlmIChpc0VuZE9mUGFyYWdyYXBoKHZpc2libGVTdGFydCkgJiYg
IWlzU3RhcnRPZlBhcmFncmFwaCh2aXNpYmxlU3RhcnQpKSB7Ci0gICAgICAgICAgICAgICAgaWYg
KCFpc0VuZE9mRG9jdW1lbnQodmlzaWJsZVN0YXJ0KSkKKyAgICAgICAgICAgICAgICBpZiAoIWlz
RW5kT2ZFZGl0YWJsZU9yTm9uRWRpdGFibGVDb250ZW50KHZpc2libGVTdGFydCkpCiAgICAgICAg
ICAgICAgICAgICAgIHNldEVuZGluZ1NlbGVjdGlvbih2aXNpYmxlU3RhcnQubmV4dCgpKTsKICAg
ICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgIGluc2VydFBhcmFncmFwaFNlcGFyYXRv
cigpOwpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3Bw
CShyZXZpc2lvbiAxMTc2NTIpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVTZWxl
Y3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOTMsMTEgKzI5MywxMSBAQCB2b2lkIFZpc2li
bGVTZWxlY3Rpb246OnNldFN0YXJ0QW5kRW5kRnJvCiAgICAgICAgICAgICBWaXNpYmxlUG9zaXRp
b24gc3RhcnQgPSBWaXNpYmxlUG9zaXRpb24obV9zdGFydCwgbV9hZmZpbml0eSk7CiAgICAgICAg
ICAgICBWaXNpYmxlUG9zaXRpb24gb3JpZ2luYWxFbmQobV9lbmQsIG1fYWZmaW5pdHkpOwogICAg
ICAgICAgICAgRVdvcmRTaWRlIHNpZGUgPSBSaWdodFdvcmRJZk9uQm91bmRhcnk7Ci0gICAgICAg
ICAgICBpZiAoaXNFbmRPZkRvY3VtZW50KHN0YXJ0KSB8fCAoaXNFbmRPZkxpbmUoc3RhcnQpICYm
ICFpc1N0YXJ0T2ZMaW5lKHN0YXJ0KSAmJiAhaXNFbmRPZlBhcmFncmFwaChzdGFydCkpKQorICAg
ICAgICAgICAgaWYgKGlzRW5kT2ZFZGl0YWJsZU9yTm9uRWRpdGFibGVDb250ZW50KHN0YXJ0KSB8
fCAoaXNFbmRPZkxpbmUoc3RhcnQpICYmICFpc1N0YXJ0T2ZMaW5lKHN0YXJ0KSAmJiAhaXNFbmRP
ZlBhcmFncmFwaChzdGFydCkpKQogICAgICAgICAgICAgICAgIHNpZGUgPSBMZWZ0V29yZElmT25C
b3VuZGFyeTsKICAgICAgICAgICAgIG1fc3RhcnQgPSBzdGFydE9mV29yZChzdGFydCwgc2lkZSku
ZGVlcEVxdWl2YWxlbnQoKTsKICAgICAgICAgICAgIHNpZGUgPSBSaWdodFdvcmRJZk9uQm91bmRh
cnk7Ci0gICAgICAgICAgICBpZiAoaXNFbmRPZkRvY3VtZW50KG9yaWdpbmFsRW5kKSB8fCAoaXNF
bmRPZkxpbmUob3JpZ2luYWxFbmQpICYmICFpc1N0YXJ0T2ZMaW5lKG9yaWdpbmFsRW5kKSAmJiAh
aXNFbmRPZlBhcmFncmFwaChvcmlnaW5hbEVuZCkpKQorICAgICAgICAgICAgaWYgKGlzRW5kT2ZF
ZGl0YWJsZU9yTm9uRWRpdGFibGVDb250ZW50KG9yaWdpbmFsRW5kKSB8fCAoaXNFbmRPZkxpbmUo
b3JpZ2luYWxFbmQpICYmICFpc1N0YXJ0T2ZMaW5lKG9yaWdpbmFsRW5kKSAmJiAhaXNFbmRPZlBh
cmFncmFwaChvcmlnaW5hbEVuZCkpKQogICAgICAgICAgICAgICAgIHNpZGUgPSBMZWZ0V29yZElm
T25Cb3VuZGFyeTsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgIFZpc2libGVQb3NpdGlv
biB3b3JkRW5kKGVuZE9mV29yZChvcmlnaW5hbEVuZCwgc2lkZSkpOwpAQCAtMzQ5LDcgKzM0OSw3
IEBAIHZvaWQgVmlzaWJsZVNlbGVjdGlvbjo6c2V0U3RhcnRBbmRFbmRGcm8KICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICBjYXNlIFBhcmFncmFwaEdyYW51bGFyaXR5OiB7CiAgICAgICAgICAg
ICBWaXNpYmxlUG9zaXRpb24gcG9zKG1fc3RhcnQsIG1fYWZmaW5pdHkpOwotICAgICAgICAgICAg
aWYgKGlzU3RhcnRPZkxpbmUocG9zKSAmJiBpc0VuZE9mRG9jdW1lbnQocG9zKSkKKyAgICAgICAg
ICAgIGlmIChpc1N0YXJ0T2ZMaW5lKHBvcykgJiYgaXNFbmRPZkVkaXRhYmxlT3JOb25FZGl0YWJs
ZUNvbnRlbnQocG9zKSkKICAgICAgICAgICAgICAgICBwb3MgPSBwb3MucHJldmlvdXMoKTsKICAg
ICAgICAgICAgIG1fc3RhcnQgPSBzdGFydE9mUGFyYWdyYXBoKHBvcykuZGVlcEVxdWl2YWxlbnQo
KTsKICAgICAgICAgICAgIFZpc2libGVQb3NpdGlvbiB2aXNpYmxlUGFyYWdyYXBoRW5kID0gZW5k
T2ZQYXJhZ3JhcGgoVmlzaWJsZVBvc2l0aW9uKG1fZW5kLCBtX2FmZmluaXR5KSk7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL3Zpc2libGVfdW5pdHMuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvdmlzaWJsZV91bml0cy5jcHAJKHJldmlzaW9uIDExNzY1MikK
KysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvdmlzaWJsZV91bml0cy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTEzOTcsNiArMTM5NywxMSBAQCBWaXNpYmxlUG9zaXRpb24gZW5kT2ZFZGl0YWJsZUNv
bnRlbnQoY29uCiAgICAgcmV0dXJuIGxhc3RQb3NpdGlvbkluTm9kZShoaWdoZXN0Um9vdCk7CiB9
CiAKK2Jvb2wgaXNFbmRPZkVkaXRhYmxlT3JOb25FZGl0YWJsZUNvbnRlbnQoY29uc3QgVmlzaWJs
ZVBvc2l0aW9uICZwKQoreworICAgIHJldHVybiBwLmlzTm90TnVsbCgpICYmIHAubmV4dCgpLmlz
TnVsbCgpOworfQorCiBWaXNpYmxlUG9zaXRpb24gbGVmdEJvdW5kYXJ5T2ZMaW5lKGNvbnN0IFZp
c2libGVQb3NpdGlvbiYgYywgVGV4dERpcmVjdGlvbiBkaXJlY3Rpb24pCiB7CiAgICAgcmV0dXJu
IGRpcmVjdGlvbiA9PSBMVFIgPyBsb2dpY2FsU3RhcnRPZkxpbmUoYykgOiBsb2dpY2FsRW5kT2ZM
aW5lKGMpOwpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy92aXNpYmxlX3VuaXRzLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy92aXNpYmxlX3VuaXRzLmgJKHJldmlz
aW9uIDExNzY1MikKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvdmlzaWJsZV91bml0cy5oCSh3
b3JraW5nIGNvcHkpCkBAIC05NCw2ICs5NCw3IEBAIGJvb2wgaXNFbmRPZkRvY3VtZW50KGNvbnN0
IFZpc2libGVQb3NpdGkKIC8vIGVkaXRhYmxlIGNvbnRlbnQKIFZpc2libGVQb3NpdGlvbiBzdGFy
dE9mRWRpdGFibGVDb250ZW50KGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOwogVmlzaWJsZVBvc2l0
aW9uIGVuZE9mRWRpdGFibGVDb250ZW50KGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOworYm9vbCBp
c0VuZE9mRWRpdGFibGVPck5vbkVkaXRhYmxlQ29udGVudChjb25zdCBWaXNpYmxlUG9zaXRpb24m
KTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143050</attachid>
            <date>2012-05-21 09:39:07 -0700</date>
            <delta_ts>2012-05-21 11:49:50 -0700</delta_ts>
            <desc>Put back the missing changes</desc>
            <filename>bug-86649-20120521094217.patch</filename>
            <type>text/plain</type>
            <size>8124</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExNzc4OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBACisyMDEyLTA1LTIxICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIGlzU3RhcnRPZkRvY3VtZW50IGFu
ZCBpc0VuZE9mRG9jdW1lbnQgYXJlIHBvb3JseSBuYW1lZAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODY2NDkKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBpc0VuZE9mRG9jdW1lbnQgdG8gaXNFbmRPZkVkaXRh
YmxlT3JOb25FZGl0YWJsZUNvbnRlbnQgYmVjYXVzZSB0aGF0J3Mgd2hhdCB0aGlzIGZ1bmN0aW9u
IGNoZWNrcy4KKworICAgICAgICBBbHNvIGFkZGVkIG5ldyB2ZXJzaW9ucyBvZiBpc1N0YXJ0T2ZE
b2N1bWVudCBhbmQgaXNFbmRPZkRvY3VtZW50IHRoYXQgY29ycmVjdGx5IGNyb3NzIGVkaXRpbmcg
Ym91bmRhcmllcworICAgICAgICB0byBiZSB1c2VkIGluIHNlbGVjdEZyYW1lRWxlbWVudEluUGFy
ZW50SWZGdWxseVNlbGVjdGVkLgorCisgICAgICAgICogZWRpdGluZy9Db21wb3NpdGVFZGl0Q29t
bWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6bW92ZVBh
cmFncmFwaENvbnRlbnRzVG9OZXdCbG9ja0lmTmVjZXNzYXJ5KToKKyAgICAgICAgKiBlZGl0aW5n
L0VkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6Omluc2VydExpbmVCcmVhayk6
CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6Omluc2VydFBhcmFncmFwaFNlcGFyYXRvcik6Cisg
ICAgICAgICogZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgICogZWRp
dGluZy9WaXNpYmxlU2VsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlZpc2libGVTZWxl
Y3Rpb246OnNldFN0YXJ0QW5kRW5kRnJvbUJhc2VBbmRFeHRlbnRSZXNwZWN0aW5nR3JhbnVsYXJp
dHkpOgorICAgICAgICAqIGVkaXRpbmcvdmlzaWJsZV91bml0cy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjppc0VuZE9mRWRpdGFibGVPck5vbkVkaXRhYmxlQ29udGVudCk6CisgICAgICAgICogZWRp
dGluZy92aXNpYmxlX3VuaXRzLmg6CisKIDIwMTItMDUtMjEgIFN0ZXBoZW4gQ2hlbm5leSAgPHNj
aGVubmV5QGNocm9taXVtLm9yZz4KIAogICAgICAgICBTVkdUZXh0UnVuUmVuZGVyaW5nQ29udGV4
dCBjYW4gcmV0dXJuIG51bGwgZm9udCwgY2FsbGluZyBjb2RlIGFzc2VydHMgbm90IG51bGwKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3Bw
CShyZXZpc2lvbiAxMTc3ODkpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVk
aXRDb21tYW5kLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTI5LDggKzkyOSw4IEBAIFBhc3NSZWZQ
dHI8Tm9kZT4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6Om0KICAgICAgICAgICAgIC8vIFdlIGNhbiBi
YWlsIGFzIHdlIGhhdmUgYSBmdWxsIGJsb2NrIHRvIHdvcmsgd2l0aC4KICAgICAgICAgICAgIEFT
U0VSVCh1cHN0cmVhbVN0YXJ0LmRlcHJlY2F0ZWROb2RlKCktPmlzRGVzY2VuZGFudE9mKGVuY2xv
c2luZ0Jsb2NrKHVwc3RyZWFtRW5kLmRlcHJlY2F0ZWROb2RlKCkpKSk7CiAgICAgICAgICAgICBy
ZXR1cm4gMDsKLSAgICAgICAgfSBlbHNlIGlmIChpc0VuZE9mRG9jdW1lbnQodmlzaWJsZUVuZCkp
IHsKLSAgICAgICAgICAgIC8vIEF0IHRoZSBlbmQgb2YgdGhlIGRvY3VtZW50LiBXZSBjYW4gYmFp
bCBoZXJlIGFzIHdlbGwuCisgICAgICAgIH0gZWxzZSBpZiAoaXNFbmRPZkVkaXRhYmxlT3JOb25F
ZGl0YWJsZUNvbnRlbnQodmlzaWJsZUVuZCkpIHsKKyAgICAgICAgICAgIC8vIEF0IHRoZSBlbmQg
b2YgdGhlIGVkaXRhYmxlIHJlZ2lvbi4gV2UgY2FuIGJhaWwgaGVyZSBhcyB3ZWxsLgogICAgICAg
ICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0KICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0b3IuY3BwCShyZXZpc2lvbiAxMTc3ODkpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk0Niw3ICs5NDYsNyBAQCBib29sIEVkaXRvcjo6
aW5zZXJ0TGluZUJyZWFrKCkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBWaXNpYmxlUG9z
aXRpb24gY2FyZXQgPSBtX2ZyYW1lLT5zZWxlY3Rpb24oKS0+c2VsZWN0aW9uKCkudmlzaWJsZVN0
YXJ0KCk7Ci0gICAgYm9vbCBhbGlnblRvRWRnZSA9IGlzRW5kT2ZEb2N1bWVudChjYXJldCk7Cisg
ICAgYm9vbCBhbGlnblRvRWRnZSA9IGlzRW5kT2ZFZGl0YWJsZU9yTm9uRWRpdGFibGVDb250ZW50
KGNhcmV0KTsKICAgICBib29sIGF1dG9jb3JyZWN0aW9uSXNBcHBsaWVkID0gbV9hbHRlcm5hdGl2
ZVRleHRDb250cm9sbGVyLT5hcHBseUF1dG9jb3JyZWN0aW9uQmVmb3JlVHlwaW5nSWZBcHByb3By
aWF0ZSgpOwogICAgIFR5cGluZ0NvbW1hbmQ6Omluc2VydExpbmVCcmVhayhtX2ZyYW1lLT5kb2N1
bWVudCgpLCBhdXRvY29ycmVjdGlvbklzQXBwbGllZCA/IFR5cGluZ0NvbW1hbmQ6OlJldGFpbkF1
dG9jb3JyZWN0aW9uSW5kaWNhdG9yIDogMCk7CiAgICAgcmV2ZWFsU2VsZWN0aW9uQWZ0ZXJFZGl0
aW5nT3BlcmF0aW9uKGFsaWduVG9FZGdlID8gU2Nyb2xsQWxpZ25tZW50OjphbGlnblRvRWRnZUlm
TmVlZGVkIDogU2Nyb2xsQWxpZ25tZW50OjphbGlnbkNlbnRlcklmTmVlZGVkKTsKQEAgLTk2Niw3
ICs5NjYsNyBAQCBib29sIEVkaXRvcjo6aW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yKCkKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAKICAgICBWaXNpYmxlUG9zaXRpb24gY2FyZXQgPSBtX2ZyYW1lLT5z
ZWxlY3Rpb24oKS0+c2VsZWN0aW9uKCkudmlzaWJsZVN0YXJ0KCk7Ci0gICAgYm9vbCBhbGlnblRv
RWRnZSA9IGlzRW5kT2ZEb2N1bWVudChjYXJldCk7CisgICAgYm9vbCBhbGlnblRvRWRnZSA9IGlz
RW5kT2ZFZGl0YWJsZU9yTm9uRWRpdGFibGVDb250ZW50KGNhcmV0KTsKICAgICBib29sIGF1dG9j
b3JyZWN0aW9uSXNBcHBsaWVkID0gbV9hbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLT5hcHBseUF1
dG9jb3JyZWN0aW9uQmVmb3JlVHlwaW5nSWZBcHByb3ByaWF0ZSgpOwogICAgIFR5cGluZ0NvbW1h
bmQ6Omluc2VydFBhcmFncmFwaFNlcGFyYXRvcihtX2ZyYW1lLT5kb2N1bWVudCgpLCBhdXRvY29y
cmVjdGlvbklzQXBwbGllZCA/IFR5cGluZ0NvbW1hbmQ6OlJldGFpbkF1dG9jb3JyZWN0aW9uSW5k
aWNhdG9yIDogMCk7CiAgICAgcmV2ZWFsU2VsZWN0aW9uQWZ0ZXJFZGl0aW5nT3BlcmF0aW9uKGFs
aWduVG9FZGdlID8gU2Nyb2xsQWxpZ25tZW50OjphbGlnblRvRWRnZUlmTmVlZGVkIDogU2Nyb2xs
QWxpZ25tZW50OjphbGlnbkNlbnRlcklmTmVlZGVkKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwCShyZXZpc2lvbiAxMTc3
ODkpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtODMwLDcgKzgzMCw3IEBAIHZvaWQgUmVwbGFjZVNlbGVjdGlv
bkNvbW1hbmQ6OmRvQXBwbHkoKQogICAgICAgICB2aXNpYmxlU3RhcnQgPSBlbmRpbmdTZWxlY3Rp
b24oKS52aXNpYmxlU3RhcnQoKTsKICAgICAgICAgaWYgKGZyYWdtZW50Lmhhc0ludGVyY2hhbmdl
TmV3bGluZUF0U3RhcnQoKSkgewogICAgICAgICAgICAgaWYgKGlzRW5kT2ZQYXJhZ3JhcGgodmlz
aWJsZVN0YXJ0KSAmJiAhaXNTdGFydE9mUGFyYWdyYXBoKHZpc2libGVTdGFydCkpIHsKLSAgICAg
ICAgICAgICAgICBpZiAoIWlzRW5kT2ZEb2N1bWVudCh2aXNpYmxlU3RhcnQpKQorICAgICAgICAg
ICAgICAgIGlmICghaXNFbmRPZkVkaXRhYmxlT3JOb25FZGl0YWJsZUNvbnRlbnQodmlzaWJsZVN0
YXJ0KSkKICAgICAgICAgICAgICAgICAgICAgc2V0RW5kaW5nU2VsZWN0aW9uKHZpc2libGVTdGFy
dC5uZXh0KCkpOwogICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgaW5zZXJ0UGFy
YWdyYXBoU2VwYXJhdG9yKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVT
ZWxlY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJs
ZVNlbGVjdGlvbi5jcHAJKHJldmlzaW9uIDExNzc4OSkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvVmlzaWJsZVNlbGVjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5MywxMSArMjkzLDEx
IEBAIHZvaWQgVmlzaWJsZVNlbGVjdGlvbjo6c2V0U3RhcnRBbmRFbmRGcm8KICAgICAgICAgICAg
IFZpc2libGVQb3NpdGlvbiBzdGFydCA9IFZpc2libGVQb3NpdGlvbihtX3N0YXJ0LCBtX2FmZmlu
aXR5KTsKICAgICAgICAgICAgIFZpc2libGVQb3NpdGlvbiBvcmlnaW5hbEVuZChtX2VuZCwgbV9h
ZmZpbml0eSk7CiAgICAgICAgICAgICBFV29yZFNpZGUgc2lkZSA9IFJpZ2h0V29yZElmT25Cb3Vu
ZGFyeTsKLSAgICAgICAgICAgIGlmIChpc0VuZE9mRG9jdW1lbnQoc3RhcnQpIHx8IChpc0VuZE9m
TGluZShzdGFydCkgJiYgIWlzU3RhcnRPZkxpbmUoc3RhcnQpICYmICFpc0VuZE9mUGFyYWdyYXBo
KHN0YXJ0KSkpCisgICAgICAgICAgICBpZiAoaXNFbmRPZkVkaXRhYmxlT3JOb25FZGl0YWJsZUNv
bnRlbnQoc3RhcnQpIHx8IChpc0VuZE9mTGluZShzdGFydCkgJiYgIWlzU3RhcnRPZkxpbmUoc3Rh
cnQpICYmICFpc0VuZE9mUGFyYWdyYXBoKHN0YXJ0KSkpCiAgICAgICAgICAgICAgICAgc2lkZSA9
IExlZnRXb3JkSWZPbkJvdW5kYXJ5OwogICAgICAgICAgICAgbV9zdGFydCA9IHN0YXJ0T2ZXb3Jk
KHN0YXJ0LCBzaWRlKS5kZWVwRXF1aXZhbGVudCgpOwogICAgICAgICAgICAgc2lkZSA9IFJpZ2h0
V29yZElmT25Cb3VuZGFyeTsKLSAgICAgICAgICAgIGlmIChpc0VuZE9mRG9jdW1lbnQob3JpZ2lu
YWxFbmQpIHx8IChpc0VuZE9mTGluZShvcmlnaW5hbEVuZCkgJiYgIWlzU3RhcnRPZkxpbmUob3Jp
Z2luYWxFbmQpICYmICFpc0VuZE9mUGFyYWdyYXBoKG9yaWdpbmFsRW5kKSkpCisgICAgICAgICAg
ICBpZiAoaXNFbmRPZkVkaXRhYmxlT3JOb25FZGl0YWJsZUNvbnRlbnQob3JpZ2luYWxFbmQpIHx8
IChpc0VuZE9mTGluZShvcmlnaW5hbEVuZCkgJiYgIWlzU3RhcnRPZkxpbmUob3JpZ2luYWxFbmQp
ICYmICFpc0VuZE9mUGFyYWdyYXBoKG9yaWdpbmFsRW5kKSkpCiAgICAgICAgICAgICAgICAgc2lk
ZSA9IExlZnRXb3JkSWZPbkJvdW5kYXJ5OwogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg
VmlzaWJsZVBvc2l0aW9uIHdvcmRFbmQoZW5kT2ZXb3JkKG9yaWdpbmFsRW5kLCBzaWRlKSk7CkBA
IC0zNDksNyArMzQ5LDcgQEAgdm9pZCBWaXNpYmxlU2VsZWN0aW9uOjpzZXRTdGFydEFuZEVuZEZy
bwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgUGFyYWdyYXBoR3JhbnVsYXJpdHk6
IHsKICAgICAgICAgICAgIFZpc2libGVQb3NpdGlvbiBwb3MobV9zdGFydCwgbV9hZmZpbml0eSk7
Ci0gICAgICAgICAgICBpZiAoaXNTdGFydE9mTGluZShwb3MpICYmIGlzRW5kT2ZEb2N1bWVudChw
b3MpKQorICAgICAgICAgICAgaWYgKGlzU3RhcnRPZkxpbmUocG9zKSAmJiBpc0VuZE9mRWRpdGFi
bGVPck5vbkVkaXRhYmxlQ29udGVudChwb3MpKQogICAgICAgICAgICAgICAgIHBvcyA9IHBvcy5w
cmV2aW91cygpOwogICAgICAgICAgICAgbV9zdGFydCA9IHN0YXJ0T2ZQYXJhZ3JhcGgocG9zKS5k
ZWVwRXF1aXZhbGVudCgpOwogICAgICAgICAgICAgVmlzaWJsZVBvc2l0aW9uIHZpc2libGVQYXJh
Z3JhcGhFbmQgPSBlbmRPZlBhcmFncmFwaChWaXNpYmxlUG9zaXRpb24obV9lbmQsIG1fYWZmaW5p
dHkpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvdmlzaWJsZV91bml0cy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy92aXNpYmxlX3VuaXRzLmNwcAkocmV2
aXNpb24gMTE3Nzg5KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy92aXNpYmxlX3VuaXRzLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTM2OSwxMiArMTM2OSwxMiBAQCBib29sIGluU2FtZURvY3Vt
ZW50KGNvbnN0IFZpc2libGVQb3NpdGlvCiAKIGJvb2wgaXNTdGFydE9mRG9jdW1lbnQoY29uc3Qg
VmlzaWJsZVBvc2l0aW9uICZwKQogewotICAgIHJldHVybiBwLmlzTm90TnVsbCgpICYmIHAucHJl
dmlvdXMoKS5pc051bGwoKTsKKyAgICByZXR1cm4gcC5pc05vdE51bGwoKSAmJiBwLnByZXZpb3Vz
KENhbkNyb3NzRWRpdGluZ0JvdW5kYXJ5KS5pc051bGwoKTsKIH0KIAogYm9vbCBpc0VuZE9mRG9j
dW1lbnQoY29uc3QgVmlzaWJsZVBvc2l0aW9uICZwKQogewotICAgIHJldHVybiBwLmlzTm90TnVs
bCgpICYmIHAubmV4dCgpLmlzTnVsbCgpOworICAgIHJldHVybiBwLmlzTm90TnVsbCgpICYmIHAu
bmV4dChDYW5Dcm9zc0VkaXRpbmdCb3VuZGFyeSkuaXNOdWxsKCk7CiB9CiAKIC8vIC0tLS0tLS0t
LQpAQCAtMTM5Nyw2ICsxMzk3LDExIEBAIFZpc2libGVQb3NpdGlvbiBlbmRPZkVkaXRhYmxlQ29u
dGVudChjb24KICAgICByZXR1cm4gbGFzdFBvc2l0aW9uSW5Ob2RlKGhpZ2hlc3RSb290KTsKIH0K
IAorYm9vbCBpc0VuZE9mRWRpdGFibGVPck5vbkVkaXRhYmxlQ29udGVudChjb25zdCBWaXNpYmxl
UG9zaXRpb24gJnApCit7CisgICAgcmV0dXJuIHAuaXNOb3ROdWxsKCkgJiYgcC5uZXh0KCkuaXNO
dWxsKCk7Cit9CisKIFZpc2libGVQb3NpdGlvbiBsZWZ0Qm91bmRhcnlPZkxpbmUoY29uc3QgVmlz
aWJsZVBvc2l0aW9uJiBjLCBUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbikKIHsKICAgICByZXR1cm4g
ZGlyZWN0aW9uID09IExUUiA/IGxvZ2ljYWxTdGFydE9mTGluZShjKSA6IGxvZ2ljYWxFbmRPZkxp
bmUoYyk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL3Zpc2libGVfdW5pdHMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL3Zpc2libGVfdW5pdHMuaAkocmV2aXNp
b24gMTE3Nzg5KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy92aXNpYmxlX3VuaXRzLmgJKHdv
cmtpbmcgY29weSkKQEAgLTk0LDYgKzk0LDcgQEAgYm9vbCBpc0VuZE9mRG9jdW1lbnQoY29uc3Qg
VmlzaWJsZVBvc2l0aQogLy8gZWRpdGFibGUgY29udGVudAogVmlzaWJsZVBvc2l0aW9uIHN0YXJ0
T2ZFZGl0YWJsZUNvbnRlbnQoY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CiBWaXNpYmxlUG9zaXRp
b24gZW5kT2ZFZGl0YWJsZUNvbnRlbnQoY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7Citib29sIGlz
RW5kT2ZFZGl0YWJsZU9yTm9uRWRpdGFibGVDb250ZW50KGNvbnN0IFZpc2libGVQb3NpdGlvbiYp
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
</data>
<flag name="review"
          id="149522"
          type_id="1"
          status="+"
          setter="leviw"
    />
          </attachment>
      

    </bug>

</bugzilla>