<?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>27760</bug_id>
          
          <creation_ts>2009-07-28 02:35:35 -0700</creation_ts>
          <short_desc>HTMLOptionElement::value() returns incorrect value</short_desc>
          <delta_ts>2009-07-29 01:12:01 -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>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kent Tamura">tkent</reporter>
          <assigned_to name="David Levin">levin</assigned_to>
          <cc>levin</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>135144</commentid>
    <comment_count>0</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-07-28 02:35:35 -0700</bug_when>
    <thetext>Suppose that we have 4 OPTION elements as follows:
 &lt;option id=&quot;o1&quot;&gt;text&lt;/option&gt;
 &lt;option id=&quot;o2&quot; value=&quot;value&quot;&gt;text&lt;/option&gt;
 &lt;option id=&quot;o3&quot; label=&quot;label&quot;&gt;text&lt;/option&gt;
 &lt;option id=&quot;o4&quot; value=&quot;value&quot; label=&quot;label&quot;&gt;text&lt;/option&gt;

The current WebKit returns the following values for .value and .label:
o1: value=text label=
o2: value=value label=
o3: value=label label=label
o4: value=value label=label

Apparently the value of o3 is incorrect.  It should be &quot;text&quot; or &quot;&quot;.  I think r40130 introduced this bug.

FYI:
On Firefox 3.5 and Opera 10:
o1: value=text label=
o2: value=value label=
o3: value=text label=label
o4: value=value label=label

On IE8:
o1: value= label=
o2: value=value label=
o3: value= label=label
o4: value=value label=label

As for HTML5, .value and .label just reflect their attribute values.
http://www.whatwg.org/specs/web-apps/current-work/multipage/forms.html#dom-option-value
So IE8 behavior is compliant.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135145</commentid>
    <comment_count>1</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-07-28 02:43:50 -0700</bug_when>
    <thetext>Correction:
In the description, IE8 meant IE7.  IE8&apos;s behavior is exactly same as Firefox 3.5 and Opera 10.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135156</commentid>
    <comment_count>2</comment_count>
      <attachid>33613</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-07-28 03:48:47 -0700</bug_when>
    <thetext>Created attachment 33613
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135295</commentid>
    <comment_count>3</comment_count>
      <attachid>33613</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2009-07-28 11:32:37 -0700</bug_when>
    <thetext>Comment on attachment 33613
patch

&gt; diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
&gt; index d934c7d..6a83b21 100644
&gt; --- a/LayoutTests/ChangeLog
&gt; +++ b/LayoutTests/ChangeLog
&gt; @@ -1,3 +1,13 @@
&gt; +2009-07-28  Kent Tamura  &lt;tkent@chromium.org&gt;
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        Fix a bug that HTMLOptionElement::value() returns an incorrect value.
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=27760
&gt; +
&gt; +        * fast/forms/option-value-and-label-expected.txt: Added.
&gt; +        * fast/forms/option-value-and-label.html: Added.
&gt; +
&gt;  2009-07-27  Antonio Gomes   &lt;antonio.gomes@openbossa.org&gt;
&gt;  
&gt;          Reviewed by Adam Treat.
&gt; diff --git a/LayoutTests/fast/forms/option-value-and-label-expected.txt b/LayoutTests/fast/forms/option-value-and-label-expected.txt
&gt; new file mode 100644
&gt; index 0000000..99dffe3
&gt; --- /dev/null
&gt; +++ b/LayoutTests/fast/forms/option-value-and-label-expected.txt
&gt; @@ -0,0 +1,17 @@
&gt; +Test for .value and .label of OPTION element
&gt; +
&gt; +On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
&gt; +
&gt; +
&gt; +PASS o1.value is &quot;text&quot;
&gt; +PASS o1.label is &quot;&quot;
&gt; +PASS o2.value is &quot;value&quot;
&gt; +PASS o2.label is &quot;&quot;
&gt; +PASS o3.value is &quot;text&quot;
&gt; +PASS o3.label is &quot;label&quot;
&gt; +PASS o4.value is &quot;value&quot;
&gt; +PASS o4.label is &quot;label&quot;
&gt; +PASS successfullyParsed is true
&gt; +
&gt; +TEST COMPLETE
&gt; +
&gt; diff --git a/LayoutTests/fast/forms/option-value-and-label.html b/LayoutTests/fast/forms/option-value-and-label.html
&gt; new file mode 100644
&gt; index 0000000..afe3e30
&gt; --- /dev/null
&gt; +++ b/LayoutTests/fast/forms/option-value-and-label.html
&gt; @@ -0,0 +1,41 @@
&gt; +&lt;!DOCTYPE HTML&gt;
&gt; +&lt;html&gt;
&gt; +&lt;head&gt;
&gt; +&lt;link rel=&quot;stylesheet&quot; href=&quot;../../fast/js/resources/js-test-style.css&quot;&gt;
&gt; +&lt;script src=&quot;../../fast/js/resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
&gt; +&lt;/head&gt;
&gt; +&lt;body&gt;
&gt; +&lt;p id=&quot;description&quot;&gt;&lt;/p&gt;
&gt; +&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
&gt; +
&gt; +&lt;select&gt;
&gt; +&lt;option id=&quot;o1&quot;&gt;text&lt;/option&gt;
&gt; +&lt;option id=&quot;o2&quot; value=&quot;value&quot;&gt;text&lt;/option&gt;
&gt; +&lt;option id=&quot;o3&quot; label=&quot;label&quot;&gt;text&lt;/option&gt;
&gt; +&lt;option id=&quot;o4&quot; value=&quot;value&quot; label=&quot;label&quot;&gt;text&lt;/option&gt;
&gt; +&lt;/select&gt;
&gt; +
&gt; +&lt;script&gt;
&gt; +description(&apos;Test for .value and .label of OPTION element&apos;);
&gt; +
&gt; +var o1 = document.getElementById(&apos;o1&apos;);
&gt; +shouldBe(&apos;o1.value&apos;, &apos;&quot;text&quot;&apos;);
&gt; +shouldBe(&apos;o1.label&apos;, &apos;&quot;&quot;&apos;);
&gt; +
&gt; +var o2 = document.getElementById(&apos;o2&apos;);
&gt; +shouldBe(&apos;o2.value&apos;, &apos;&quot;value&quot;&apos;);
&gt; +shouldBe(&apos;o2.label&apos;, &apos;&quot;&quot;&apos;);
&gt; +
&gt; +var o3 = document.getElementById(&apos;o3&apos;);
&gt; +shouldBe(&apos;o3.value&apos;, &apos;&quot;text&quot;&apos;);
&gt; +shouldBe(&apos;o3.label&apos;, &apos;&quot;label&quot;&apos;);
&gt; +
&gt; +var o4 = document.getElementById(&apos;o4&apos;);
&gt; +shouldBe(&apos;o4.value&apos;, &apos;&quot;value&quot;&apos;);
&gt; +shouldBe(&apos;o4.label&apos;, &apos;&quot;label&quot;&apos;);
&gt; +
&gt; +var successfullyParsed = true;
&gt; +&lt;/script&gt;
&gt; +&lt;script src=&quot;../../fast/js/resources/js-test-post.js&quot;&gt;&lt;/script&gt;
&gt; +&lt;/body&gt;
&gt; +&lt;/html&gt;
&gt; diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
&gt; index 467345a..b75fe69 100644
&gt; --- a/WebCore/ChangeLog
&gt; +++ b/WebCore/ChangeLog
&gt; @@ -1,3 +1,23 @@
&gt; +2009-07-28  Kent Tamura  &lt;tkent@chromium.org&gt;
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        Fix a bug that HTMLOptionElement::value() returns an incorrect value.
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=27760
&gt; +
&gt; +        Test: fast/forms/option-value-and-label.html
&gt; +
&gt; +        * dom/OptionElement.cpp:
&gt; +        (WebCore::OptionElement::collectOptionLabel):
&gt; +        (WebCore::OptionElement::collectOptionText):
&gt; +        (WebCore::OptionElement::collectOptionTextRespectingGroupLabel):
&gt; +        (WebCore::OptionElement::collectOptionValue):
&gt; +        * dom/OptionElement.h:
&gt; +        * html/HTMLOptionElement.cpp:
&gt; +        (WebCore::HTMLOptionElement::text):
&gt; +        * wml/WMLOptionElement.cpp:
&gt; +        (WebCore::WMLOptionElement::text):

Can you please come up with a more detailed ChangeLog, it helps in tricky cases like this..
;
&gt; +    static String collectOptionText(const Element*, String);
Use &quot;const String&amp;&quot; here.
  
&gt;  String HTMLOptionElement::text() const
&gt;  {
&gt; -    return OptionElement::collectOptionText(m_data, this);
&gt; +    return OptionElement::collectOptionLabel(m_data, this);
&gt;  }

&gt;  String WMLOptionElement::text() const
&gt;  {
&gt; -    return OptionElement::collectOptionText(m_data, this);
&gt; +    return OptionElement::collectOptionLabel(m_data, this);
&gt;  }

Hmm, very unfortunate that the naming is misleading nowadays, maybe this indicates we need better function names here.
I like the patch, though we clearly need a better naming scheme here, it&apos;s confusing. Or a detailed ChangeLog describing why it is as it is :-)

r-, for the ChangeLog &amp; &quot;const String&amp;&quot; issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135446</commentid>
    <comment_count>4</comment_count>
      <attachid>33685</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-07-28 18:21:20 -0700</bug_when>
    <thetext>Created attachment 33685
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135447</commentid>
    <comment_count>5</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-07-28 18:22:56 -0700</bug_when>
    <thetext>Thank you for the comments.
I have updated the patch.
 - Improve ChangeLogs
 - Use const String&amp; for a parameter
 - Rename method names, and restructuring some methods.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135465</commentid>
    <comment_count>6</comment_count>
      <attachid>33685</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2009-07-28 19:29:32 -0700</bug_when>
    <thetext>Comment on attachment 33685
patch

Looks perfect, r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135475</commentid>
    <comment_count>7</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-07-28 21:29:24 -0700</bug_when>
    <thetext>Would you commit it for me please?
I&apos;m not a committer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135506</commentid>
    <comment_count>8</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2009-07-29 00:20:37 -0700</bug_when>
    <thetext>Assigned to levin for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135525</commentid>
    <comment_count>9</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2009-07-29 01:12:01 -0700</bug_when>
    <thetext>Committed as http://trac.webkit.org/changeset/46524</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33613</attachid>
            <date>2009-07-28 03:48:47 -0700</date>
            <delta_ts>2009-07-28 18:21:15 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug-27760-20090728194846.patch</filename>
            <type>text/plain</type>
            <size>7269</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkOTM0YzdkLi42YTgzYjIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDktMDct
MjggIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCBhIGJ1ZyB0aGF0IEhUTUxPcHRpb25F
bGVtZW50Ojp2YWx1ZSgpIHJldHVybnMgYW4gaW5jb3JyZWN0IHZhbHVlLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc3NjAKKworICAgICAgICAqIGZh
c3QvZm9ybXMvb3B0aW9uLXZhbHVlLWFuZC1sYWJlbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvZm9ybXMvb3B0aW9uLXZhbHVlLWFuZC1sYWJlbC5odG1sOiBBZGRlZC4KKwog
MjAwOS0wNy0yNyAgQW50b25pbyBHb21lcyAgIDxhbnRvbmlvLmdvbWVzQG9wZW5ib3NzYS5vcmc+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBUcmVhdC4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvb3B0aW9uLXZhbHVlLWFuZC1sYWJlbC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL29wdGlvbi12YWx1ZS1hbmQtbGFiZWwtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk5ZGZmZTMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL29wdGlvbi12YWx1ZS1hbmQtbGFiZWwtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKK1Rlc3QgZm9yIC52YWx1ZSBhbmQgLmxhYmVsIG9mIE9Q
VElPTiBlbGVtZW50CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG8xLnZh
bHVlIGlzICJ0ZXh0IgorUEFTUyBvMS5sYWJlbCBpcyAiIgorUEFTUyBvMi52YWx1ZSBpcyAidmFs
dWUiCitQQVNTIG8yLmxhYmVsIGlzICIiCitQQVNTIG8zLnZhbHVlIGlzICJ0ZXh0IgorUEFTUyBv
My5sYWJlbCBpcyAibGFiZWwiCitQQVNTIG80LnZhbHVlIGlzICJ2YWx1ZSIKK1BBU1MgbzQubGFi
ZWwgaXMgImxhYmVsIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvb3B0aW9uLXZhbHVl
LWFuZC1sYWJlbC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9vcHRpb24tdmFsdWUtYW5k
LWxhYmVsLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWZlM2UzMAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvb3B0aW9uLXZhbHVlLWFu
ZC1sYWJlbC5odG1sCkBAIC0wLDAgKzEsNDEgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8
aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRl
c2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNlbGVjdD4KKzxv
cHRpb24gaWQ9Im8xIj50ZXh0PC9vcHRpb24+Cis8b3B0aW9uIGlkPSJvMiIgdmFsdWU9InZhbHVl
Ij50ZXh0PC9vcHRpb24+Cis8b3B0aW9uIGlkPSJvMyIgbGFiZWw9ImxhYmVsIj50ZXh0PC9vcHRp
b24+Cis8b3B0aW9uIGlkPSJvNCIgdmFsdWU9InZhbHVlIiBsYWJlbD0ibGFiZWwiPnRleHQ8L29w
dGlvbj4KKzwvc2VsZWN0PgorCis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3QgZm9yIC52YWx1
ZSBhbmQgLmxhYmVsIG9mIE9QVElPTiBlbGVtZW50Jyk7CisKK3ZhciBvMSA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdvMScpOworc2hvdWxkQmUoJ28xLnZhbHVlJywgJyJ0ZXh0IicpOworc2hv
dWxkQmUoJ28xLmxhYmVsJywgJyIiJyk7CisKK3ZhciBvMiA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdvMicpOworc2hvdWxkQmUoJ28yLnZhbHVlJywgJyJ2YWx1ZSInKTsKK3Nob3VsZEJlKCdv
Mi5sYWJlbCcsICciIicpOworCit2YXIgbzMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbzMn
KTsKK3Nob3VsZEJlKCdvMy52YWx1ZScsICcidGV4dCInKTsKK3Nob3VsZEJlKCdvMy5sYWJlbCcs
ICcibGFiZWwiJyk7CisKK3ZhciBvNCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvNCcpOwor
c2hvdWxkQmUoJ280LnZhbHVlJywgJyJ2YWx1ZSInKTsKK3Nob3VsZEJlKCdvNC5sYWJlbCcsICci
bGFiZWwiJyk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDY3MzQ1YS4uYjc1ZmU2OSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAor
MjAwOS0wNy0yOCAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IGEgYnVnIHRoYXQgSFRN
TE9wdGlvbkVsZW1lbnQ6OnZhbHVlKCkgcmV0dXJucyBhbiBpbmNvcnJlY3QgdmFsdWUuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzc2MAorCisgICAg
ICAgIFRlc3Q6IGZhc3QvZm9ybXMvb3B0aW9uLXZhbHVlLWFuZC1sYWJlbC5odG1sCisKKyAgICAg
ICAgKiBkb20vT3B0aW9uRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpPcHRpb25FbGVt
ZW50Ojpjb2xsZWN0T3B0aW9uTGFiZWwpOgorICAgICAgICAoV2ViQ29yZTo6T3B0aW9uRWxlbWVu
dDo6Y29sbGVjdE9wdGlvblRleHQpOgorICAgICAgICAoV2ViQ29yZTo6T3B0aW9uRWxlbWVudDo6
Y29sbGVjdE9wdGlvblRleHRSZXNwZWN0aW5nR3JvdXBMYWJlbCk6CisgICAgICAgIChXZWJDb3Jl
OjpPcHRpb25FbGVtZW50Ojpjb2xsZWN0T3B0aW9uVmFsdWUpOgorICAgICAgICAqIGRvbS9PcHRp
b25FbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MT3B0aW9uRWxlbWVudDo6dGV4dCk6CisgICAgICAgICogd21sL1dN
TE9wdGlvbkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V01MT3B0aW9uRWxlbWVudDo6
dGV4dCk6CisKIDIwMDktMDctMjMgIEFudG9uIE11aGluICA8YW50b25tQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9k
b20vT3B0aW9uRWxlbWVudC5jcHAgYi9XZWJDb3JlL2RvbS9PcHRpb25FbGVtZW50LmNwcAppbmRl
eCA1ODFjMDcwLi5lZmRkNjQ5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9PcHRpb25FbGVtZW50
LmNwcAorKysgYi9XZWJDb3JlL2RvbS9PcHRpb25FbGVtZW50LmNwcApAQCAtNjcsNyArNjcsNyBA
QCBpbnQgT3B0aW9uRWxlbWVudDo6b3B0aW9uSW5kZXgoU2VsZWN0RWxlbWVudCogc2VsZWN0RWxl
bWVudCwgY29uc3QgRWxlbWVudCogZWxlbQogICAgIHJldHVybiAwOwogfQogCi1TdHJpbmcgT3B0
aW9uRWxlbWVudDo6Y29sbGVjdE9wdGlvblRleHQoY29uc3QgT3B0aW9uRWxlbWVudERhdGEmIGRh
dGEsIGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQpCitTdHJpbmcgT3B0aW9uRWxlbWVudDo6Y29sbGVj
dE9wdGlvbkxhYmVsKGNvbnN0IE9wdGlvbkVsZW1lbnREYXRhJiBkYXRhLCBjb25zdCBFbGVtZW50
KiBlbGVtZW50KQogewogICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGVsZW1lbnQtPmRvY3VtZW50
KCk7CiAgICAgU3RyaW5nIHRleHQ7CkBAIC03NSw2ICs3NSwxMiBAQCBTdHJpbmcgT3B0aW9uRWxl
bWVudDo6Y29sbGVjdE9wdGlvblRleHQoY29uc3QgT3B0aW9uRWxlbWVudERhdGEmIGRhdGEsIGNv
bnN0IEVsZQogICAgIC8vIFdpbklFIGRvZXMgbm90IHVzZSB0aGUgbGFiZWwgYXR0cmlidXRlLCBz
byBhcyBhIHF1aXJrLCB3ZSBpZ25vcmUgaXQuCiAgICAgaWYgKCFkb2N1bWVudC0+aW5Db21wYXRN
b2RlKCkpCiAgICAgICAgIHRleHQgPSBkYXRhLmxhYmVsKCk7CisgICAgcmV0dXJuIGNvbGxlY3RP
cHRpb25UZXh0KGVsZW1lbnQsIHRleHQpOworfQorCitTdHJpbmcgT3B0aW9uRWxlbWVudDo6Y29s
bGVjdE9wdGlvblRleHQoY29uc3QgRWxlbWVudCogZWxlbWVudCwgU3RyaW5nIHRleHQpCit7Cisg
ICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gZWxlbWVudC0+ZG9jdW1lbnQoKTsKIAogICAgIGlmICh0
ZXh0LmlzRW1wdHkoKSkgewogICAgICAgICBOb2RlKiBuID0gZWxlbWVudC0+Zmlyc3RDaGlsZCgp
OwpAQCAtMTA0LDkgKzExMCw5IEBAIFN0cmluZyBPcHRpb25FbGVtZW50Ojpjb2xsZWN0T3B0aW9u
VGV4dFJlc3BlY3RpbmdHcm91cExhYmVsKGNvbnN0IE9wdGlvbkVsZW1lbnRECiB7CiAgICAgRWxl
bWVudCogcGFyZW50RWxlbWVudCA9IHN0YXRpY19jYXN0PEVsZW1lbnQqPihlbGVtZW50LT5wYXJl
bnROb2RlKCkpOwogICAgIGlmIChwYXJlbnRFbGVtZW50ICYmIHRvT3B0aW9uR3JvdXBFbGVtZW50
KHBhcmVudEVsZW1lbnQpKQotICAgICAgICByZXR1cm4gIiAgICAiICsgY29sbGVjdE9wdGlvblRl
eHQoZGF0YSwgZWxlbWVudCk7CisgICAgICAgIHJldHVybiAiICAgICIgKyBjb2xsZWN0T3B0aW9u
TGFiZWwoZGF0YSwgZWxlbWVudCk7CiAKLSAgICByZXR1cm4gY29sbGVjdE9wdGlvblRleHQoZGF0
YSwgZWxlbWVudCk7CisgICAgcmV0dXJuIGNvbGxlY3RPcHRpb25MYWJlbChkYXRhLCBlbGVtZW50
KTsKIH0KIAogU3RyaW5nIE9wdGlvbkVsZW1lbnQ6OmNvbGxlY3RPcHRpb25WYWx1ZShjb25zdCBP
cHRpb25FbGVtZW50RGF0YSYgZGF0YSwgY29uc3QgRWxlbWVudCogZWxlbWVudCkKQEAgLTExNiw3
ICsxMjIsNyBAQCBTdHJpbmcgT3B0aW9uRWxlbWVudDo6Y29sbGVjdE9wdGlvblZhbHVlKGNvbnN0
IE9wdGlvbkVsZW1lbnREYXRhJiBkYXRhLCBjb25zdCBFbAogICAgICAgICByZXR1cm4gdmFsdWU7
CiAKICAgICAvLyBVc2UgdGhlIHRleHQgaWYgdGhlIHZhbHVlIHdhc24ndCBzZXQuCi0gICAgcmV0
dXJuIGNvbGxlY3RPcHRpb25UZXh0KGRhdGEsIGVsZW1lbnQpLnN0cmlwV2hpdGVTcGFjZSgpOwor
ICAgIHJldHVybiBjb2xsZWN0T3B0aW9uVGV4dChlbGVtZW50LCBTdHJpbmcoKSkuc3RyaXBXaGl0
ZVNwYWNlKCk7CiB9CiAKIC8vIE9wdGlvbkVsZW1lbnREYXRhCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2RvbS9PcHRpb25FbGVtZW50LmggYi9XZWJDb3JlL2RvbS9PcHRpb25FbGVtZW50LmgKaW5kZXgg
YzZiOTc3OC4uZDE2ZjYxZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vT3B0aW9uRWxlbWVudC5o
CisrKyBiL1dlYkNvcmUvZG9tL09wdGlvbkVsZW1lbnQuaApAQCAtNDQsNyArNDQsOCBAQCBwdWJs
aWM6CiBwcm90ZWN0ZWQ6CiAgICAgc3RhdGljIHZvaWQgc2V0U2VsZWN0ZWRTdGF0ZShPcHRpb25F
bGVtZW50RGF0YSYsIEVsZW1lbnQqLCBib29sIHNlbGVjdGVkKTsKICAgICBzdGF0aWMgaW50IG9w
dGlvbkluZGV4KFNlbGVjdEVsZW1lbnQqLCBjb25zdCBFbGVtZW50Kik7Ci0gICAgc3RhdGljIFN0
cmluZyBjb2xsZWN0T3B0aW9uVGV4dChjb25zdCBPcHRpb25FbGVtZW50RGF0YSYsIGNvbnN0IEVs
ZW1lbnQqKTsKKyAgICBzdGF0aWMgU3RyaW5nIGNvbGxlY3RPcHRpb25MYWJlbChjb25zdCBPcHRp
b25FbGVtZW50RGF0YSYsIGNvbnN0IEVsZW1lbnQqKTsKKyAgICBzdGF0aWMgU3RyaW5nIGNvbGxl
Y3RPcHRpb25UZXh0KGNvbnN0IEVsZW1lbnQqLCBTdHJpbmcpOwogICAgIHN0YXRpYyBTdHJpbmcg
Y29sbGVjdE9wdGlvblRleHRSZXNwZWN0aW5nR3JvdXBMYWJlbChjb25zdCBPcHRpb25FbGVtZW50
RGF0YSYsIGNvbnN0IEVsZW1lbnQqKTsKICAgICBzdGF0aWMgU3RyaW5nIGNvbGxlY3RPcHRpb25W
YWx1ZShjb25zdCBPcHRpb25FbGVtZW50RGF0YSYsIGNvbnN0IEVsZW1lbnQqKTsKIH07CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwIGIvV2ViQ29yZS9odG1s
L0hUTUxPcHRpb25FbGVtZW50LmNwcAppbmRleCA4Y2I5NWQwLi40YzRiOWE5IDEwMDY0NAotLS0g
YS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9I
VE1MT3B0aW9uRWxlbWVudC5jcHAKQEAgLTc5LDcgKzc5LDcgQEAgY29uc3QgQXRvbWljU3RyaW5n
JiBIVE1MT3B0aW9uRWxlbWVudDo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKIAogU3RyaW5nIEhU
TUxPcHRpb25FbGVtZW50Ojp0ZXh0KCkgY29uc3QKIHsKLSAgICByZXR1cm4gT3B0aW9uRWxlbWVu
dDo6Y29sbGVjdE9wdGlvblRleHQobV9kYXRhLCB0aGlzKTsKKyAgICByZXR1cm4gT3B0aW9uRWxl
bWVudDo6Y29sbGVjdE9wdGlvbkxhYmVsKG1fZGF0YSwgdGhpcyk7CiB9CiAKIHZvaWQgSFRNTE9w
dGlvbkVsZW1lbnQ6OnNldFRleHQoY29uc3QgU3RyaW5nICZ0ZXh0LCBFeGNlcHRpb25Db2RlJiBl
YykKZGlmZiAtLWdpdCBhL1dlYkNvcmUvd21sL1dNTE9wdGlvbkVsZW1lbnQuY3BwIGIvV2ViQ29y
ZS93bWwvV01MT3B0aW9uRWxlbWVudC5jcHAKaW5kZXggNjBkM2RlNi4uMmI2NjdjOCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS93bWwvV01MT3B0aW9uRWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS93bWwv
V01MT3B0aW9uRWxlbWVudC5jcHAKQEAgLTE0Myw3ICsxNDMsNyBAQCBTdHJpbmcgV01MT3B0aW9u
RWxlbWVudDo6dmFsdWUoKSBjb25zdAogCiBTdHJpbmcgV01MT3B0aW9uRWxlbWVudDo6dGV4dCgp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIE9wdGlvbkVsZW1lbnQ6OmNvbGxlY3RPcHRpb25UZXh0KG1f
ZGF0YSwgdGhpcyk7CisgICAgcmV0dXJuIE9wdGlvbkVsZW1lbnQ6OmNvbGxlY3RPcHRpb25MYWJl
bChtX2RhdGEsIHRoaXMpOwogfQogCiBTdHJpbmcgV01MT3B0aW9uRWxlbWVudDo6dGV4dEluZGVu
dGVkVG9SZXNwZWN0R3JvdXBMYWJlbCgpIGNvbnN0
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33685</attachid>
            <date>2009-07-28 18:21:20 -0700</date>
            <delta_ts>2009-07-28 19:29:32 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug-27760-20090729102119.patch</filename>
            <type>text/plain</type>
            <size>8923</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkOTM0YzdkLi5kMGYwMzk0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMDktMDct
MjggIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCBhIGJ1ZyB0aGF0IEhUTUxPcHRpb25F
bGVtZW50Ojp2YWx1ZSgpIHJldHVybnMgYW4gaW5jb3JyZWN0CisgICAgICAgIHZhbHVlIGluIGEg
Y2FzZSB0aGF0IHRoZSBlbGVtZW50IGhhcyBhIGxhYmVsIGF0dHJpYnV0ZSBhbmQgbm8KKyAgICAg
ICAgdmFsdWUgYXR0cmlidXRlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9Mjc3NjAKKworICAgICAgICAqIGZhc3QvZm9ybXMvb3B0aW9uLXZhbHVlLWFu
ZC1sYWJlbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvb3B0aW9u
LXZhbHVlLWFuZC1sYWJlbC5odG1sOiBBZGRlZC4KKwogMjAwOS0wNy0yNyAgQW50b25pbyBHb21l
cyAgIDxhbnRvbmlvLmdvbWVzQG9wZW5ib3NzYS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
QWRhbSBUcmVhdC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvb3B0aW9uLXZh
bHVlLWFuZC1sYWJlbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL29wdGlv
bi12YWx1ZS1hbmQtbGFiZWwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjk5ZGZmZTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL29wdGlvbi12YWx1ZS1hbmQtbGFiZWwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAK
K1Rlc3QgZm9yIC52YWx1ZSBhbmQgLmxhYmVsIG9mIE9QVElPTiBlbGVtZW50CisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG8xLnZhbHVlIGlzICJ0ZXh0IgorUEFTUyBvMS5s
YWJlbCBpcyAiIgorUEFTUyBvMi52YWx1ZSBpcyAidmFsdWUiCitQQVNTIG8yLmxhYmVsIGlzICIi
CitQQVNTIG8zLnZhbHVlIGlzICJ0ZXh0IgorUEFTUyBvMy5sYWJlbCBpcyAibGFiZWwiCitQQVNT
IG80LnZhbHVlIGlzICJ2YWx1ZSIKK1BBU1MgbzQubGFiZWwgaXMgImxhYmVsIgorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvb3B0aW9uLXZhbHVlLWFuZC1sYWJlbC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9vcHRpb24tdmFsdWUtYW5kLWxhYmVsLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWZlM2UzMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvb3B0aW9uLXZhbHVlLWFuZC1sYWJlbC5odG1sCkBAIC0wLDAgKzEs
NDEgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KKworPHNlbGVjdD4KKzxvcHRpb24gaWQ9Im8xIj50ZXh0PC9vcHRp
b24+Cis8b3B0aW9uIGlkPSJvMiIgdmFsdWU9InZhbHVlIj50ZXh0PC9vcHRpb24+Cis8b3B0aW9u
IGlkPSJvMyIgbGFiZWw9ImxhYmVsIj50ZXh0PC9vcHRpb24+Cis8b3B0aW9uIGlkPSJvNCIgdmFs
dWU9InZhbHVlIiBsYWJlbD0ibGFiZWwiPnRleHQ8L29wdGlvbj4KKzwvc2VsZWN0PgorCis8c2Ny
aXB0PgorZGVzY3JpcHRpb24oJ1Rlc3QgZm9yIC52YWx1ZSBhbmQgLmxhYmVsIG9mIE9QVElPTiBl
bGVtZW50Jyk7CisKK3ZhciBvMSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvMScpOworc2hv
dWxkQmUoJ28xLnZhbHVlJywgJyJ0ZXh0IicpOworc2hvdWxkQmUoJ28xLmxhYmVsJywgJyIiJyk7
CisKK3ZhciBvMiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvMicpOworc2hvdWxkQmUoJ28y
LnZhbHVlJywgJyJ2YWx1ZSInKTsKK3Nob3VsZEJlKCdvMi5sYWJlbCcsICciIicpOworCit2YXIg
bzMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbzMnKTsKK3Nob3VsZEJlKCdvMy52YWx1ZScs
ICcidGV4dCInKTsKK3Nob3VsZEJlKCdvMy5sYWJlbCcsICcibGFiZWwiJyk7CisKK3ZhciBvNCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvNCcpOworc2hvdWxkQmUoJ280LnZhbHVlJywgJyJ2
YWx1ZSInKTsKK3Nob3VsZEJlKCdvNC5sYWJlbCcsICcibGFiZWwiJyk7CisKK3ZhciBzdWNjZXNz
ZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NDY3MzQ1YS4uNmExYWQzNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAwOS0wNy0yOCAgS2VudCBUYW11cmEg
IDx0a2VudEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgRml4IGEgYnVnIHRoYXQgSFRNTE9wdGlvbkVsZW1lbnQ6OnZhbHVlKCkg
cmV0dXJucyBhbiBpbmNvcnJlY3QKKyAgICAgICAgdmFsdWUgaW4gYSBjYXNlIHRoYXQgdGhlIGVs
ZW1lbnQgaGFzIGEgbGFiZWwgYXR0cmlidXRlIGFuZCBubworICAgICAgICB2YWx1ZSBhdHRyaWJ1
dGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzc2
MAorCisgICAgICAgIFRlc3Q6IGZhc3QvZm9ybXMvb3B0aW9uLXZhbHVlLWFuZC1sYWJlbC5odG1s
CisKKyAgICAgICAgKiBkb20vT3B0aW9uRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpP
cHRpb25FbGVtZW50Ojpjb2xsZWN0T3B0aW9uTGFiZWxPclRleHQpOgorICAgICAgICAoV2ViQ29y
ZTo6T3B0aW9uRWxlbWVudDo6Y29sbGVjdE9wdGlvbklubmVyVGV4dCk6CisgICAgICAgIChXZWJD
b3JlOjpPcHRpb25FbGVtZW50Ojpub3JtYWxpemVUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6Ok9w
dGlvbkVsZW1lbnQ6OmNvbGxlY3RPcHRpb25UZXh0UmVzcGVjdGluZ0dyb3VwTGFiZWwpOgorICAg
ICAgICAoV2ViQ29yZTo6T3B0aW9uRWxlbWVudDo6Y29sbGVjdE9wdGlvblZhbHVlKToKKyAgICAg
ICAgKiBkb20vT3B0aW9uRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTE9wdGlvbkVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9wdGlvbkVsZW1lbnQ6OnRleHQpOgorICAg
ICAgICAqIHdtbC9XTUxPcHRpb25FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldNTE9w
dGlvbkVsZW1lbnQ6OnRleHQpOgorCiAyMDA5LTA3LTIzICBBbnRvbiBNdWhpbiAgPGFudG9ubUBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvZG9tL09wdGlvbkVsZW1lbnQuY3BwIGIvV2ViQ29yZS9kb20vT3B0aW9uRWxl
bWVudC5jcHAKaW5kZXggNTgxYzA3MC4uMWRlNWZhNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20v
T3B0aW9uRWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9kb20vT3B0aW9uRWxlbWVudC5jcHAKQEAg
LTY3LDcgKzY3LDcgQEAgaW50IE9wdGlvbkVsZW1lbnQ6Om9wdGlvbkluZGV4KFNlbGVjdEVsZW1l
bnQqIHNlbGVjdEVsZW1lbnQsIGNvbnN0IEVsZW1lbnQqIGVsZW0KICAgICByZXR1cm4gMDsKIH0K
IAotU3RyaW5nIE9wdGlvbkVsZW1lbnQ6OmNvbGxlY3RPcHRpb25UZXh0KGNvbnN0IE9wdGlvbkVs
ZW1lbnREYXRhJiBkYXRhLCBjb25zdCBFbGVtZW50KiBlbGVtZW50KQorU3RyaW5nIE9wdGlvbkVs
ZW1lbnQ6OmNvbGxlY3RPcHRpb25MYWJlbE9yVGV4dChjb25zdCBPcHRpb25FbGVtZW50RGF0YSYg
ZGF0YSwgY29uc3QgRWxlbWVudCogZWxlbWVudCkKIHsKICAgICBEb2N1bWVudCogZG9jdW1lbnQg
PSBlbGVtZW50LT5kb2N1bWVudCgpOwogICAgIFN0cmluZyB0ZXh0OwpAQCAtNzUsMjIgKzc1LDMx
IEBAIFN0cmluZyBPcHRpb25FbGVtZW50Ojpjb2xsZWN0T3B0aW9uVGV4dChjb25zdCBPcHRpb25F
bGVtZW50RGF0YSYgZGF0YSwgY29uc3QgRWxlCiAgICAgLy8gV2luSUUgZG9lcyBub3QgdXNlIHRo
ZSBsYWJlbCBhdHRyaWJ1dGUsIHNvIGFzIGEgcXVpcmssIHdlIGlnbm9yZSBpdC4KICAgICBpZiAo
IWRvY3VtZW50LT5pbkNvbXBhdE1vZGUoKSkKICAgICAgICAgdGV4dCA9IGRhdGEubGFiZWwoKTsK
KyAgICBpZiAodGV4dC5pc0VtcHR5KCkpCisgICAgICAgIHRleHQgPSBjb2xsZWN0T3B0aW9uSW5u
ZXJUZXh0KGVsZW1lbnQpOworICAgIHJldHVybiBub3JtYWxpemVUZXh0KGRvY3VtZW50LCB0ZXh0
KTsKK30KIAotICAgIGlmICh0ZXh0LmlzRW1wdHkoKSkgewotICAgICAgICBOb2RlKiBuID0gZWxl
bWVudC0+Zmlyc3RDaGlsZCgpOwotICAgICAgICB3aGlsZSAobikgewotICAgICAgICAgICAgaWYg
KG4tPm5vZGVUeXBlKCkgPT0gTm9kZTo6VEVYVF9OT0RFIHx8IG4tPm5vZGVUeXBlKCkgPT0gTm9k
ZTo6Q0RBVEFfU0VDVElPTl9OT0RFKQotICAgICAgICAgICAgICAgIHRleHQgKz0gbi0+bm9kZVZh
bHVlKCk7Ci0KLSAgICAgICAgICAgIC8vIHNraXAgc2NyaXB0IGNvbnRlbnQKLSAgICAgICAgICAg
IGlmIChuLT5pc0VsZW1lbnROb2RlKCkgJiYgdG9TY3JpcHRFbGVtZW50KHN0YXRpY19jYXN0PEVs
ZW1lbnQqPihuKSkpCi0gICAgICAgICAgICAgICAgbiA9IG4tPnRyYXZlcnNlTmV4dFNpYmxpbmco
ZWxlbWVudCk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgbiA9IG4tPnRyYXZl
cnNlTmV4dE5vZGUoZWxlbWVudCk7Ci0gICAgICAgIH0KK1N0cmluZyBPcHRpb25FbGVtZW50Ojpj
b2xsZWN0T3B0aW9uSW5uZXJUZXh0KGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgU3Ry
aW5nIHRleHQ7CisgICAgTm9kZSogbiA9IGVsZW1lbnQtPmZpcnN0Q2hpbGQoKTsKKyAgICB3aGls
ZSAobikgeworICAgICAgICBpZiAobi0+bm9kZVR5cGUoKSA9PSBOb2RlOjpURVhUX05PREUgfHwg
bi0+bm9kZVR5cGUoKSA9PSBOb2RlOjpDREFUQV9TRUNUSU9OX05PREUpCisgICAgICAgICAgICB0
ZXh0ICs9IG4tPm5vZGVWYWx1ZSgpOworCisgICAgICAgIC8vIHNraXAgc2NyaXB0IGNvbnRlbnQK
KyAgICAgICAgaWYgKG4tPmlzRWxlbWVudE5vZGUoKSAmJiB0b1NjcmlwdEVsZW1lbnQoc3RhdGlj
X2Nhc3Q8RWxlbWVudCo+KG4pKSkKKyAgICAgICAgICAgIG4gPSBuLT50cmF2ZXJzZU5leHRTaWJs
aW5nKGVsZW1lbnQpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBuID0gbi0+dHJhdmVyc2VO
ZXh0Tm9kZShlbGVtZW50KTsKICAgICB9CisgICAgcmV0dXJuIHRleHQ7Cit9CiAKLSAgICB0ZXh0
ID0gZG9jdW1lbnQtPmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2RpbmcodGV4dCk7CitTdHJp
bmcgT3B0aW9uRWxlbWVudDo6bm9ybWFsaXplVGV4dChjb25zdCBEb2N1bWVudCogZG9jdW1lbnQs
IGNvbnN0IFN0cmluZyYgc3JjKQoreworICAgIFN0cmluZyB0ZXh0ID0gZG9jdW1lbnQtPmRpc3Bs
YXlTdHJpbmdNb2RpZmllZEJ5RW5jb2Rpbmcoc3JjKTsKIAogICAgIC8vIEluIFdpbklFLCBsZWFk
aW5nIGFuZCB0cmFpbGluZyB3aGl0ZXNwYWNlIGlzIGlnbm9yZWQgaW4gb3B0aW9ucyBhbmQgb3B0
Z3JvdXBzLiBXZSBtYXRjaCB0aGlzIGJlaGF2aW9yLgogICAgIHRleHQgPSB0ZXh0LnN0cmlwV2hp
dGVTcGFjZSgpOwpAQCAtMTA0LDkgKzExMyw5IEBAIFN0cmluZyBPcHRpb25FbGVtZW50Ojpjb2xs
ZWN0T3B0aW9uVGV4dFJlc3BlY3RpbmdHcm91cExhYmVsKGNvbnN0IE9wdGlvbkVsZW1lbnRECiB7
CiAgICAgRWxlbWVudCogcGFyZW50RWxlbWVudCA9IHN0YXRpY19jYXN0PEVsZW1lbnQqPihlbGVt
ZW50LT5wYXJlbnROb2RlKCkpOwogICAgIGlmIChwYXJlbnRFbGVtZW50ICYmIHRvT3B0aW9uR3Jv
dXBFbGVtZW50KHBhcmVudEVsZW1lbnQpKQotICAgICAgICByZXR1cm4gIiAgICAiICsgY29sbGVj
dE9wdGlvblRleHQoZGF0YSwgZWxlbWVudCk7CisgICAgICAgIHJldHVybiAiICAgICIgKyBjb2xs
ZWN0T3B0aW9uTGFiZWxPclRleHQoZGF0YSwgZWxlbWVudCk7CiAKLSAgICByZXR1cm4gY29sbGVj
dE9wdGlvblRleHQoZGF0YSwgZWxlbWVudCk7CisgICAgcmV0dXJuIGNvbGxlY3RPcHRpb25MYWJl
bE9yVGV4dChkYXRhLCBlbGVtZW50KTsKIH0KIAogU3RyaW5nIE9wdGlvbkVsZW1lbnQ6OmNvbGxl
Y3RPcHRpb25WYWx1ZShjb25zdCBPcHRpb25FbGVtZW50RGF0YSYgZGF0YSwgY29uc3QgRWxlbWVu
dCogZWxlbWVudCkKQEAgLTExNiw3ICsxMjUsNyBAQCBTdHJpbmcgT3B0aW9uRWxlbWVudDo6Y29s
bGVjdE9wdGlvblZhbHVlKGNvbnN0IE9wdGlvbkVsZW1lbnREYXRhJiBkYXRhLCBjb25zdCBFbAog
ICAgICAgICByZXR1cm4gdmFsdWU7CiAKICAgICAvLyBVc2UgdGhlIHRleHQgaWYgdGhlIHZhbHVl
IHdhc24ndCBzZXQuCi0gICAgcmV0dXJuIGNvbGxlY3RPcHRpb25UZXh0KGRhdGEsIGVsZW1lbnQp
LnN0cmlwV2hpdGVTcGFjZSgpOworICAgIHJldHVybiBjb2xsZWN0T3B0aW9uSW5uZXJUZXh0KGVs
ZW1lbnQpLnN0cmlwV2hpdGVTcGFjZSgpOwogfQogCiAvLyBPcHRpb25FbGVtZW50RGF0YQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9kb20vT3B0aW9uRWxlbWVudC5oIGIvV2ViQ29yZS9kb20vT3B0aW9u
RWxlbWVudC5oCmluZGV4IGM2Yjk3NzguLmE3NjVkNTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9t
L09wdGlvbkVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2RvbS9PcHRpb25FbGVtZW50LmgKQEAgLTQ0
LDkgKzQ0LDEyIEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBzdGF0aWMgdm9pZCBzZXRTZWxl
Y3RlZFN0YXRlKE9wdGlvbkVsZW1lbnREYXRhJiwgRWxlbWVudCosIGJvb2wgc2VsZWN0ZWQpOwog
ICAgIHN0YXRpYyBpbnQgb3B0aW9uSW5kZXgoU2VsZWN0RWxlbWVudCosIGNvbnN0IEVsZW1lbnQq
KTsKLSAgICBzdGF0aWMgU3RyaW5nIGNvbGxlY3RPcHRpb25UZXh0KGNvbnN0IE9wdGlvbkVsZW1l
bnREYXRhJiwgY29uc3QgRWxlbWVudCopOworICAgIHN0YXRpYyBTdHJpbmcgY29sbGVjdE9wdGlv
bkxhYmVsT3JUZXh0KGNvbnN0IE9wdGlvbkVsZW1lbnREYXRhJiwgY29uc3QgRWxlbWVudCopOwog
ICAgIHN0YXRpYyBTdHJpbmcgY29sbGVjdE9wdGlvblRleHRSZXNwZWN0aW5nR3JvdXBMYWJlbChj
b25zdCBPcHRpb25FbGVtZW50RGF0YSYsIGNvbnN0IEVsZW1lbnQqKTsKICAgICBzdGF0aWMgU3Ry
aW5nIGNvbGxlY3RPcHRpb25WYWx1ZShjb25zdCBPcHRpb25FbGVtZW50RGF0YSYsIGNvbnN0IEVs
ZW1lbnQqKTsKK3ByaXZhdGU6CisgICAgc3RhdGljIFN0cmluZyBjb2xsZWN0T3B0aW9uSW5uZXJU
ZXh0KGNvbnN0IEVsZW1lbnQqKTsKKyAgICBzdGF0aWMgU3RyaW5nIG5vcm1hbGl6ZVRleHQoY29u
c3QgRG9jdW1lbnQqLCBjb25zdCBTdHJpbmcmKTsKIH07CiAKIC8vIEhUTUwvV01MT3B0aW9uRWxl
bWVudCBob2xkIHRoaXMgc3RydWN0IGFzIG1lbWJlciB2YXJpYWJsZQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9u
RWxlbWVudC5jcHAKaW5kZXggOGNiOTVkMC4uZjY1YzA2YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9o
dG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVs
ZW1lbnQuY3BwCkBAIC03OSw3ICs3OSw3IEBAIGNvbnN0IEF0b21pY1N0cmluZyYgSFRNTE9wdGlv
bkVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiAKIFN0cmluZyBIVE1MT3B0aW9uRWxl
bWVudDo6dGV4dCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIE9wdGlvbkVsZW1lbnQ6OmNvbGxlY3RP
cHRpb25UZXh0KG1fZGF0YSwgdGhpcyk7CisgICAgcmV0dXJuIE9wdGlvbkVsZW1lbnQ6OmNvbGxl
Y3RPcHRpb25MYWJlbE9yVGV4dChtX2RhdGEsIHRoaXMpOwogfQogCiB2b2lkIEhUTUxPcHRpb25F
bGVtZW50OjpzZXRUZXh0KGNvbnN0IFN0cmluZyAmdGV4dCwgRXhjZXB0aW9uQ29kZSYgZWMpCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3dtbC9XTUxPcHRpb25FbGVtZW50LmNwcCBiL1dlYkNvcmUvd21s
L1dNTE9wdGlvbkVsZW1lbnQuY3BwCmluZGV4IDYwZDNkZTYuLjc2NGQzYTEgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvd21sL1dNTE9wdGlvbkVsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvd21sL1dNTE9w
dGlvbkVsZW1lbnQuY3BwCkBAIC0xNDMsNyArMTQzLDcgQEAgU3RyaW5nIFdNTE9wdGlvbkVsZW1l
bnQ6OnZhbHVlKCkgY29uc3QKIAogU3RyaW5nIFdNTE9wdGlvbkVsZW1lbnQ6OnRleHQoKSBjb25z
dAogewotICAgIHJldHVybiBPcHRpb25FbGVtZW50Ojpjb2xsZWN0T3B0aW9uVGV4dChtX2RhdGEs
IHRoaXMpOworICAgIHJldHVybiBPcHRpb25FbGVtZW50Ojpjb2xsZWN0T3B0aW9uTGFiZWxPclRl
eHQobV9kYXRhLCB0aGlzKTsKIH0KIAogU3RyaW5nIFdNTE9wdGlvbkVsZW1lbnQ6OnRleHRJbmRl
bnRlZFRvUmVzcGVjdEdyb3VwTGFiZWwoKSBjb25zdA==
</data>
<flag name="review"
          id="17906"
          type_id="1"
          status="+"
          setter="zimmermann"
    />
          </attachment>
      

    </bug>

</bugzilla>