<?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>22545</bug_id>
          
          <creation_ts>2008-11-28 12:12:07 -0800</creation_ts>
          <short_desc>Add intrinsic event support to WMLCardElement</short_desc>
          <delta_ts>2008-11-28 13:53:52 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>XML</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>20393</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Nikolas Zimmermann">zimmermann</reporter>
          <assigned_to name="Nikolas Zimmermann">zimmermann</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>100614</commentid>
    <comment_count>0</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2008-11-28 12:12:07 -0800</bug_when>
    <thetext>Handle onenterforward/onenterbackward/ontimer support for WMLCardElement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100616</commentid>
    <comment_count>1</comment_count>
      <attachid>25576</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2008-11-28 12:17:16 -0800</bug_when>
    <thetext>Created attachment 25576
Initial patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100619</commentid>
    <comment_count>2</comment_count>
      <attachid>25576</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2008-11-28 12:26:39 -0800</bug_when>
    <thetext>Comment on attachment 25576
Initial patch

&gt; +        Fixes: https://bugs.webkit.org/show_bug.cgi?id=22545
&gt; +
&gt; +        Add onenterforward/onenterbackward/ontimer support for &lt;card&gt; elements.

Please note why no testing is possible right now using DRT.

&gt; +
&gt; +        /* FIXME: template support
&gt; +        else if (m_template) {
&gt; +            eventHandler = m_template-&gt;eventHandler();
&gt; +            if (eventHandler &amp;&amp; eventHandler-&gt;hasIntrinsicEvent(eventType))
&gt; +                hasIntrinsicEvent = true;
&gt; +        }
&gt; +        */

Please don&apos;t include commented out code.

&gt; +    // FIXME Start the timer if it exists in current card
&gt; +    /*
&gt; +    if (eventTimer)
&gt; +        eventTimer-&gt;start();
&gt; +    */
&gt; +
&gt; +    // FIXME: Initialize input/select  elements in this card
&gt; +    /*
&gt; +    Node* node = this;
&gt; +    while (node = node-&gt;traverseNextNode()) {
&gt; +        if (node-&gt;hasTagName(inputTag))
&gt; +            static_cast&lt;WMLInputElement*&gt;(node)-&gt;init();
&gt; +        else if (node-&gt;hasTagName(selectTag))
&gt; +            static_cast&lt;WMLSelectElement*&gt;(node)-&gt;selectInitialOptions();
&gt; +    }
&gt; +    */
Here too.

&gt; +}
&gt; +
&gt; +void WMLCardElement::parseMappedAttribute(MappedAttribute* attr)
&gt; +{
&gt; +    WMLIntrinsicEventType eventType = WMLIntrinsicEventUnknown;
&gt; +
&gt; +    if (attr-&gt;name() == onenterforwardAttr)
&gt; +        eventType = WMLIntrinsicEventOnEnterForward;
&gt; +    else if (attr-&gt;name() == onenterbackwardAttr)
&gt; +        eventType = WMLIntrinsicEventOnEnterBackward;
&gt; +    else if (attr-&gt;name() == ontimerAttr)
&gt; +        eventType = WMLIntrinsicEventOnTimer;
&gt; +    else if (attr-&gt;name() == newcontextAttr)
&gt; +        m_isNewContext = (attr-&gt;value() == &quot;true&quot;) ? true : false;
&gt; +    else if (attr-&gt;name() == orderedAttr)
&gt; +        m_isOrdered = (attr-&gt;value() == &quot;true&quot;) ? true : false;
The explicit true/false are not needed.


r=me but please address the comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100627</commentid>
    <comment_count>3</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2008-11-28 13:26:43 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 25576 [review])
&gt; &gt; +        Fixes: https://bugs.webkit.org/show_bug.cgi?id=22545
&gt; &gt; +
&gt; &gt; +        Add onenterforward/onenterbackward/ontimer support for &lt;card&gt; elements.
&gt; 
&gt; Please note why no testing is possible right now using DRT.
I wouldn&apos;t need scripting to test this, but a working &lt;go&gt; implementation, because these events use the &lt;go&gt; element internally.

&gt; &gt; +
&gt; &gt; +        /* FIXME: template support
&gt; &gt; +        else if (m_template) {
&gt; &gt; +            eventHandler = m_template-&gt;eventHandler();
&gt; &gt; +            if (eventHandler &amp;&amp; eventHandler-&gt;hasIntrinsicEvent(eventType))
&gt; &gt; +                hasIntrinsicEvent = true;
&gt; &gt; +        }
&gt; &gt; +        */
&gt; 
&gt; Please don&apos;t include commented out code.
I&apos;ve included comment code like this everywhile in wml/. I&apos;ve already landed similar patches. It helps a lot while merging in the original WML patch. Remember, this is not &apos;new&apos; work. I&apos;m just reworking the original TorchMobile WML support patch.

&gt; &gt; +    // FIXME Start the timer if it exists in current card
&gt; &gt; +    /*
&gt; &gt; +    if (eventTimer)
&gt; &gt; +        eventTimer-&gt;start();
&gt; &gt; +    */
&gt; &gt; +
&gt; &gt; +    // FIXME: Initialize input/select  elements in this card
&gt; &gt; +    /*
&gt; &gt; +    Node* node = this;
&gt; &gt; +    while (node = node-&gt;traverseNextNode()) {
&gt; &gt; +        if (node-&gt;hasTagName(inputTag))
&gt; &gt; +            static_cast&lt;WMLInputElement*&gt;(node)-&gt;init();
&gt; &gt; +        else if (node-&gt;hasTagName(selectTag))
&gt; &gt; +            static_cast&lt;WMLSelectElement*&gt;(node)-&gt;selectInitialOptions();
&gt; &gt; +    }
&gt; &gt; +    */
&gt; Here too.
Same reason, why it should stay :-)

&gt; 
&gt; &gt; +}
&gt; &gt; +
&gt; &gt; +void WMLCardElement::parseMappedAttribute(MappedAttribute* attr)
&gt; &gt; +{
&gt; &gt; +    WMLIntrinsicEventType eventType = WMLIntrinsicEventUnknown;
&gt; &gt; +
&gt; &gt; +    if (attr-&gt;name() == onenterforwardAttr)
&gt; &gt; +        eventType = WMLIntrinsicEventOnEnterForward;
&gt; &gt; +    else if (attr-&gt;name() == onenterbackwardAttr)
&gt; &gt; +        eventType = WMLIntrinsicEventOnEnterBackward;
&gt; &gt; +    else if (attr-&gt;name() == ontimerAttr)
&gt; &gt; +        eventType = WMLIntrinsicEventOnTimer;
&gt; &gt; +    else if (attr-&gt;name() == newcontextAttr)
&gt; &gt; +        m_isNewContext = (attr-&gt;value() == &quot;true&quot;) ? true : false;
&gt; &gt; +    else if (attr-&gt;name() == orderedAttr)
&gt; &gt; +        m_isOrdered = (attr-&gt;value() == &quot;true&quot;) ? true : false;
&gt; The explicit true/false are not needed.
Ok, will fix.

Thanks for the review.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100635</commentid>
    <comment_count>4</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2008-11-28 13:53:52 -0800</bug_when>
    <thetext>Landed in r38833.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>25576</attachid>
            <date>2008-11-28 12:17:16 -0800</date>
            <delta_ts>2008-11-28 12:26:39 -0800</delta_ts>
            <desc>Initial patch</desc>
            <filename>AddIntrinsicEvents.diff</filename>
            <type>text/plain</type>
            <size>9613</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDM4ODMy
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjYgQEAKKzIwMDgtMTEt
MjggIE5pa29sYXMgWmltbWVybWFubiAgPG5pa29sYXMuemltbWVybWFubkB0b3JjaG1vYmlsZS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4
ZXM6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU0NQorCisgICAg
ICAgIEFkZCBvbmVudGVyZm9yd2FyZC9vbmVudGVyYmFja3dhcmQvb250aW1lciBzdXBwb3J0IGZv
ciA8Y2FyZD4gZWxlbWVudHMuCisKKyAgICAgICAgKiB3bWwvV01MQ2FyZEVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6V01MQ2FyZEVsZW1lbnQ6OldNTENhcmRFbGVtZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OldNTENhcmRFbGVtZW50OjpoYW5kbGVJbnRyaW5zaWNFdmVudElmTmVlZGVk
KToKKyAgICAgICAgKFdlYkNvcmU6OldNTENhcmRFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpXTUxDYXJkRWxlbWVudDo6c2V0QWN0aXZlQ2FyZEluRG9j
dW1lbnQpOgorICAgICAgICAqIHdtbC9XTUxDYXJkRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29y
ZTo6V01MQ2FyZEVsZW1lbnQ6OmlzTmV3Q29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpXTUxD
YXJkRWxlbWVudDo6aXNPcmRlcmVkKToKKyAgICAgICAgKiB3bWwvV01MRG9jdW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6V01MRG9jdW1lbnQ6OmZpbmlzaGVkUGFyc2luZyk6CisgICAgICAg
ICogd21sL1dNTEludHJpbnNpY0V2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldNTEludHJp
bnNpY0V2ZW50OjpXTUxJbnRyaW5zaWNFdmVudCk6CisgICAgICAgICogd21sL1dNTEludHJpbnNp
Y0V2ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpXTUxJbnRyaW5zaWNFdmVudDo6Y3JlYXRlKToK
KwogMjAwOC0xMS0yNyAgTGFzemxvIEdvbWJvcyAgPGxhc3psby4xLmdvbWJvc0Bub2tpYS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVG9yIEFybmUgVmVzdGLDuC4KSW5kZXg6IHdtbC9XTUxD
YXJkRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gd21sL1dNTENhcmRFbGVtZW50LmNwcAkocmV2
aXNpb24gMzg4MzEpCisrKyB3bWwvV01MQ2FyZEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yNiwxNiArMjYsMjQgQEAKIAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVM
b2FkZXIuaCIKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJOb2RlTGlzdC5oIgog
I2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIldN
TERvY3VtZW50LmgiCisjaW5jbHVkZSAiV01MSW50cmluc2ljRXZlbnRIYW5kbGVyLmgiCisjaW5j
bHVkZSAiV01MTmFtZXMuaCIKICNpbmNsdWRlICJXTUxQYWdlU3RhdGUuaCIKKyNpbmNsdWRlICJX
TUxWYXJpYWJsZXMuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCit1c2luZyBuYW1lc3BhY2Ug
V01MTmFtZXM7CisKIFdNTENhcmRFbGVtZW50OjpXTUxDYXJkRWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jKQogICAgIDogV01MRXZlbnRIYW5kbGluZ0Vs
ZW1lbnQodGFnTmFtZSwgZG9jKQorICAgICwgbV9pc05ld0NvbnRleHQoZmFsc2UpCisgICAgLCBt
X2lzT3JkZXJlZChmYWxzZSkKICAgICAsIG1faXNWaXNpYmxlKGZhbHNlKQogewogfQpAQCAtNDQs
NiArNTIsMTAwIEBAIFdNTENhcmRFbGVtZW50Ojp+V01MQ2FyZEVsZW1lbnQoKQogewogfQogCit2
b2lkIFdNTENhcmRFbGVtZW50OjpoYW5kbGVJbnRyaW5zaWNFdmVudElmTmVlZGVkKCkKK3sKKyAg
ICBXTUxQYWdlU3RhdGUqIHBhZ2VTdGF0ZSA9IHdtbFBhZ2VTdGF0ZUZvckRvY3VtZW50KGRvY3Vt
ZW50KCkpOworICAgIGlmICghcGFnZVN0YXRlKQorICAgICAgICByZXR1cm47CisKKyAgICBGcmFt
ZSogZnJhbWUgPSBkb2N1bWVudCgpLT5mcmFtZSgpOworICAgIGlmICghZnJhbWUpCisgICAgICAg
IHJldHVybjsKKworICAgIEZyYW1lTG9hZGVyKiBsb2FkZXIgPSBmcmFtZS0+bG9hZGVyKCk7Cisg
ICAgaWYgKCFsb2FkZXIpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBpbnQgY3VycmVudEhp
c3RvcnlMZW5ndGggPSBsb2FkZXItPmdldEhpc3RvcnlMZW5ndGgoKTsKKyAgICBpbnQgbGFzdEhp
c3RvcnlMZW5ndGggPSBwYWdlU3RhdGUtPmhpc3RvcnlMZW5ndGgoKTsKKworICAgIC8vIENhbGN1
bGF0ZSB0aGUgZW50cnkgbWV0aG9kIG9mIGN1cnJlbnQgY2FyZCAKKyAgICBXTUxJbnRyaW5zaWNF
dmVudFR5cGUgZXZlbnRUeXBlID0gV01MSW50cmluc2ljRXZlbnRVbmtub3duOworICAgIGlmIChs
YXN0SGlzdG9yeUxlbmd0aCA+IGN1cnJlbnRIaXN0b3J5TGVuZ3RoKQorICAgICAgICBldmVudFR5
cGUgPSBXTUxJbnRyaW5zaWNFdmVudE9uRW50ZXJCYWNrd2FyZDsKKyAgICBlbHNlIGlmIChsYXN0
SGlzdG9yeUxlbmd0aCA8IGN1cnJlbnRIaXN0b3J5TGVuZ3RoKQorICAgICAgICBldmVudFR5cGUg
PSBXTUxJbnRyaW5zaWNFdmVudE9uRW50ZXJGb3J3YXJkOworCisgICAgLy8gU3luY2hyb25pemUg
aGlzdG9yeSBsZW5ndGggd2l0aCBXTUxQYWdlU3RhdGUKKyAgICBwYWdlU3RhdGUtPnNldEhpc3Rv
cnlMZW5ndGgoY3VycmVudEhpc3RvcnlMZW5ndGgpOworIAorICAgIC8vIEZpZ3VyZSBvdXQgdGFy
Z2V0IGV2ZW50IGhhbmRsZXIKKyAgICBXTUxJbnRyaW5zaWNFdmVudEhhbmRsZXIqIGV2ZW50SGFu
ZGxlciA9IHRoaXMtPmV2ZW50SGFuZGxlcigpOworICAgIGJvb2wgaGFzSW50cmluc2ljRXZlbnQg
PSBmYWxzZTsKKworICAgIGlmIChldmVudFR5cGUgIT0gV01MSW50cmluc2ljRXZlbnRVbmtub3du
KSB7CisgICAgICAgIGlmIChldmVudEhhbmRsZXIgJiYgZXZlbnRIYW5kbGVyLT5oYXNJbnRyaW5z
aWNFdmVudChldmVudFR5cGUpKQorICAgICAgICAgICAgaGFzSW50cmluc2ljRXZlbnQgPSB0cnVl
OworCisgICAgICAgIC8qIEZJWE1FOiB0ZW1wbGF0ZSBzdXBwb3J0CisgICAgICAgIGVsc2UgaWYg
KG1fdGVtcGxhdGUpIHsKKyAgICAgICAgICAgIGV2ZW50SGFuZGxlciA9IG1fdGVtcGxhdGUtPmV2
ZW50SGFuZGxlcigpOworICAgICAgICAgICAgaWYgKGV2ZW50SGFuZGxlciAmJiBldmVudEhhbmRs
ZXItPmhhc0ludHJpbnNpY0V2ZW50KGV2ZW50VHlwZSkpCisgICAgICAgICAgICAgICAgaGFzSW50
cmluc2ljRXZlbnQgPSB0cnVlOworICAgICAgICB9CisgICAgICAgICovCisgICAgfQorIAorICAg
IGlmIChoYXNJbnRyaW5zaWNFdmVudCkKKyAgICAgICAgZXZlbnRIYW5kbGVyLT50cmlnZ2VySW50
cmluc2ljRXZlbnQoZXZlbnRUeXBlKTsKKworICAgIC8vIEZJWE1FIFN0YXJ0IHRoZSB0aW1lciBp
ZiBpdCBleGlzdHMgaW4gY3VycmVudCBjYXJkCisgICAgLyoKKyAgICBpZiAoZXZlbnRUaW1lcikK
KyAgICAgICAgZXZlbnRUaW1lci0+c3RhcnQoKTsKKyAgICAqLworCisgICAgLy8gRklYTUU6IElu
aXRpYWxpemUgaW5wdXQvc2VsZWN0ICBlbGVtZW50cyBpbiB0aGlzIGNhcmQKKyAgICAvKgorICAg
IE5vZGUqIG5vZGUgPSB0aGlzOworICAgIHdoaWxlIChub2RlID0gbm9kZS0+dHJhdmVyc2VOZXh0
Tm9kZSgpKSB7CisgICAgICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKGlucHV0VGFnKSkKKyAgICAg
ICAgICAgIHN0YXRpY19jYXN0PFdNTElucHV0RWxlbWVudCo+KG5vZGUpLT5pbml0KCk7CisgICAg
ICAgIGVsc2UgaWYgKG5vZGUtPmhhc1RhZ05hbWUoc2VsZWN0VGFnKSkKKyAgICAgICAgICAgIHN0
YXRpY19jYXN0PFdNTFNlbGVjdEVsZW1lbnQqPihub2RlKS0+c2VsZWN0SW5pdGlhbE9wdGlvbnMo
KTsKKyAgICB9CisgICAgKi8KK30KKwordm9pZCBXTUxDYXJkRWxlbWVudDo6cGFyc2VNYXBwZWRB
dHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlKiBhdHRyKQoreworICAgIFdNTEludHJpbnNpY0V2ZW50
VHlwZSBldmVudFR5cGUgPSBXTUxJbnRyaW5zaWNFdmVudFVua25vd247CisKKyAgICBpZiAoYXR0
ci0+bmFtZSgpID09IG9uZW50ZXJmb3J3YXJkQXR0cikKKyAgICAgICAgZXZlbnRUeXBlID0gV01M
SW50cmluc2ljRXZlbnRPbkVudGVyRm9yd2FyZDsKKyAgICBlbHNlIGlmIChhdHRyLT5uYW1lKCkg
PT0gb25lbnRlcmJhY2t3YXJkQXR0cikKKyAgICAgICAgZXZlbnRUeXBlID0gV01MSW50cmluc2lj
RXZlbnRPbkVudGVyQmFja3dhcmQ7CisgICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IG9udGlt
ZXJBdHRyKQorICAgICAgICBldmVudFR5cGUgPSBXTUxJbnRyaW5zaWNFdmVudE9uVGltZXI7Cisg
ICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IG5ld2NvbnRleHRBdHRyKQorICAgICAgICBtX2lz
TmV3Q29udGV4dCA9IChhdHRyLT52YWx1ZSgpID09ICJ0cnVlIikgPyB0cnVlIDogZmFsc2U7Cisg
ICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IG9yZGVyZWRBdHRyKQorICAgICAgICBtX2lzT3Jk
ZXJlZCA9IChhdHRyLT52YWx1ZSgpID09ICJ0cnVlIikgPyB0cnVlIDogZmFsc2U7CisgICAgZWxz
ZSB7CisgICAgICAgIFdNTEV2ZW50SGFuZGxpbmdFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0
ZShhdHRyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChldmVudFR5cGUgPT0g
V01MSW50cmluc2ljRXZlbnRVbmtub3duKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBSZWdp
c3RlciBpbnRyaW5zaWMgZXZlbnQgaW4gY2FyZAorICAgIFJlZlB0cjxXTUxJbnRyaW5zaWNFdmVu
dD4gZXZlbnQgPSBXTUxJbnRyaW5zaWNFdmVudDo6Y3JlYXRlKGRvY3VtZW50KCksIGF0dHItPnZh
bHVlKCkpOworCisgICAgY3JlYXRlRXZlbnRIYW5kbGVySWZOZWVkZWQoKTsKKyAgICBldmVudEhh
bmRsZXIoKS0+cmVnaXN0ZXJJbnRyaW5zaWNFdmVudChldmVudFR5cGUsIGV2ZW50KTsKK30KKwog
dm9pZCBXTUxDYXJkRWxlbWVudDo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKQogewogICAgIFdNTEV2
ZW50SGFuZGxpbmdFbGVtZW50OjppbnNlcnRlZEludG9Eb2N1bWVudCgpOwpAQCAtOTMsOSArMTk1
LDEwIEBAIFdNTENhcmRFbGVtZW50KiBXTUxDYXJkRWxlbWVudDo6c2V0QWN0aXYKICAgICAgICAg
ICAgICAgICBjb250aW51ZTsKIAogICAgICAgICAgICAgLy8gRm9yY2UgZnJhbWUgbG9hZGVyIHRv
IGxvYWQgdGhlIFVSTCB3aXRoIGZyYWdtZW50IGlkZW50aWZpZXIKLSAgICAgICAgICAgIGlmIChG
cmFtZSogZnJhbWUgPSBwYWdlU3RhdGUtPnBhZ2UoKS0+bWFpbkZyYW1lKCkpCisgICAgICAgICAg
ICBpZiAoRnJhbWUqIGZyYW1lID0gcGFnZVN0YXRlLT5wYWdlKCktPm1haW5GcmFtZSgpKSB7CiAg
ICAgICAgICAgICAgICAgaWYgKEZyYW1lTG9hZGVyKiBsb2FkZXIgPSBmcmFtZS0+bG9hZGVyKCkp
CiAgICAgICAgICAgICAgICAgICAgIGxvYWRlci0+c2V0Rm9yY2VSZWxvYWRXbWxEZWNrKHRydWUp
OworICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBhY3RpdmVDYXJkID0gY2FyZDsKICAgICAg
ICAgICAgIGJyZWFrOwpJbmRleDogd21sL1dNTENhcmRFbGVtZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
d21sL1dNTENhcmRFbGVtZW50LmgJKHJldmlzaW9uIDM4ODMxKQorKysgd21sL1dNTENhcmRFbGVt
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDEyIEBAIHB1YmxpYzoKICAgICBXTUxD
YXJkRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKICAgICB2aXJ0dWFs
IH5XTUxDYXJkRWxlbWVudCgpOwogCisgICAgYm9vbCBpc05ld0NvbnRleHQoKSBjb25zdCB7IHJl
dHVybiBtX2lzTmV3Q29udGV4dDsgfQorICAgIGJvb2wgaXNPcmRlcmVkKCkgY29uc3QgeyByZXR1
cm4gbV9pc09yZGVyZWQ7IH0KKworICAgIHZvaWQgaGFuZGxlSW50cmluc2ljRXZlbnRJZk5lZWRl
ZCgpOworCisgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKE1hcHBlZEF0dHJp
YnV0ZSopOwogICAgIHZpcnR1YWwgdm9pZCBpbnNlcnRlZEludG9Eb2N1bWVudCgpOwogICAgIHZp
cnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSosIFJlbmRlclN0
eWxlKik7CiAKQEAgLTQzLDYgKzQ5LDggQEAgcHJpdmF0ZToKICAgICBib29sIGlzVmlzaWJsZSgp
IGNvbnN0IHsgcmV0dXJuIG1faXNWaXNpYmxlOyB9CiAgICAgdm9pZCBzZXRWaXNpYmxlKGJvb2wg
aXNWaXNpYmxlKSB7IG1faXNWaXNpYmxlID0gaXNWaXNpYmxlOyB9CiAKKyAgICBib29sIG1faXNO
ZXdDb250ZXh0OworICAgIGJvb2wgbV9pc09yZGVyZWQ7CiAgICAgYm9vbCBtX2lzVmlzaWJsZTsK
IH07CiAKSW5kZXg6IHdtbC9XTUxEb2N1bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gd21sL1dNTERv
Y3VtZW50LmNwcAkocmV2aXNpb24gMzg4MzEpCisrKyB3bWwvV01MRG9jdW1lbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSAiV01MRG9jdW1lbnQuaCIKIAog
I2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJUb2tlbml6ZXIuaCIKICNpbmNsdWRlICJXTUxD
YXJkRWxlbWVudC5oIgogI2luY2x1ZGUgIldNTEVycm9ySGFuZGxpbmcuaCIKICNpbmNsdWRlICJX
TUxQYWdlU3RhdGUuaCIKQEAgLTU4LDYgKzU5LDE1IEBAIHZvaWQgV01MRG9jdW1lbnQ6OmZpbmlz
aGVkUGFyc2luZygpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBUb2tlbml6ZXIqIHRv
a2VuaXplciA9IHRoaXMtPnRva2VuaXplcigpOworICAgIGlmICh0b2tlbml6ZXIgJiYgIXRva2Vu
aXplci0+d2VsbEZvcm1lZCgpKSB7CisgICAgICAgIERvY3VtZW50OjpmaW5pc2hlZFBhcnNpbmco
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIFJlbWVtYmVyIHRoYXQgd2UnZSBz
dWNjZXNzZnVsbHkgZW50ZXJlZCB0aGUgZGVjaworICAgIHdtbFBhZ2VTdGF0ZS0+c2V0TmVlZENo
ZWNrRGVja0FjY2VzcyhmYWxzZSk7CisKICAgICAvLyBGSVhNRTogTm90aWZ5IHRoZSBleGlzdGFu
Y2Ugb2YgdGVtcGxhdGVzIHRvIGFsbCBjYXJkcyBvZiB0aGUgY3VycmVudCBkZWNrCiAgICAgLy8g
V01MVGVtcGxhdGVFbGVtZW50OjpyZWdpc3RlclRlbXBsYXRlc0luRG9jdW1lbnQoZG9jdW1lbnQo
KSkpOwogCkBAIC03MCw5ICs4MCwxMCBAQCB2b2lkIFdNTERvY3VtZW50OjpmaW5pc2hlZFBhcnNp
bmcoKQogICAgIH0KICAKICAgICAvLyBGSVhNRTogc2hhZG93IHRoZSBkZWNrLWxldmVsIGRvIGlm
IG5lZWRlZAotICAgIC8vIEZJWE1FOiBoYW5kbGUgdGhlIGludHJpbnNpYyBldmVudAogCi0gICAg
d21sUGFnZVN0YXRlLT5zZXROZWVkQ2hlY2tEZWNrQWNjZXNzKGZhbHNlKTsKKyAgICAvLyBIYW5k
bGUgY2FyZC1sZXZlbCBpbnRyaW5zaWMgZXZlbnQKKyAgICBjYXJkLT5oYW5kbGVJbnRyaW5zaWNF
dmVudElmTmVlZGVkKCk7CisKICAgICBEb2N1bWVudDo6ZmluaXNoZWRQYXJzaW5nKCk7CiB9CiAK
SW5kZXg6IHdtbC9XTUxJbnRyaW5zaWNFdmVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gd21sL1dNTElu
dHJpbnNpY0V2ZW50LmNwcAkocmV2aXNpb24gMzg4MzEpCisrKyB3bWwvV01MSW50cmluc2ljRXZl
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw2ICsyNCw3IEBACiAjaWYgRU5BQkxFKFdNTCkK
ICNpbmNsdWRlICJXTUxJbnRyaW5zaWNFdmVudC5oIgogCisjaW5jbHVkZSAiSFRNTE5hbWVzLmgi
CiAjaW5jbHVkZSAiV01MRWxlbWVudEZhY3RvcnkuaCIKICNpbmNsdWRlICJXTUxOYW1lcy5oIgog
I2luY2x1ZGUgIldNTFRhc2tFbGVtZW50LmgiCkBAIC0zNyw5ICszOCwxMCBAQCBzdGF0aWMgUGFz
c1JlZlB0cjxXTUxUYXNrRWxlbWVudD4gY3JlYXRlCiAgICAgcmV0dXJuIHN0YXRpY19wb2ludGVy
X2Nhc3Q8V01MVGFza0VsZW1lbnQ+KFdNTEVsZW1lbnRGYWN0b3J5OjpjcmVhdGVXTUxFbGVtZW50
KGdvVGFnLCBkb2N1bWVudCwgZmFsc2UpKTsKIH0KIAotV01MSW50cmluc2ljRXZlbnQ6OldNTElu
dHJpbnNpY0V2ZW50KERvY3VtZW50KiBkb2N1bWVudCkKK1dNTEludHJpbnNpY0V2ZW50OjpXTUxJ
bnRyaW5zaWNFdmVudChEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGFyZ2V0VVJM
KQogICAgIDogbV90YXNrRWxlbWVudChjcmVhdGVUYXNrRWxlbWVudChkb2N1bWVudCkpCiB7Cisg
ICAgbV90YXNrRWxlbWVudC0+c2V0QXR0cmlidXRlKEhUTUxOYW1lczo6aHJlZkF0dHIsIHRhcmdl
dFVSTCk7CiB9CiAKIFdNTEludHJpbnNpY0V2ZW50OjpXTUxJbnRyaW5zaWNFdmVudChXTUxUYXNr
RWxlbWVudCogdGFza0VsZW1lbnQpCkluZGV4OiB3bWwvV01MSW50cmluc2ljRXZlbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSB3bWwvV01MSW50cmluc2ljRXZlbnQuaAkocmV2aXNpb24gMzg4MzEpCisrKyB3
bWwvV01MSW50cmluc2ljRXZlbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzUsOSArMzUsOSBAQCBj
bGFzcyBEb2N1bWVudDsKIAogY2xhc3MgV01MSW50cmluc2ljRXZlbnQgOiBwdWJsaWMgUmVmQ291
bnRlZDxXTUxJbnRyaW5zaWNFdmVudD4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFdNTEludHJpbnNpY0V2ZW50PiBjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQorICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFdNTEludHJpbnNpY0V2ZW50PiBjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50
LCBjb25zdCBTdHJpbmcmIHRhcmdldFVSTCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgV01MSW50cmluc2ljRXZlbnQoZG9jdW1lbnQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBXTUxJbnRyaW5zaWNFdmVudChkb2N1bWVudCwgdGFyZ2V0VVJMKSk7CiAgICAgfQog
CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8V01MSW50cmluc2ljRXZlbnQ+IGNyZWF0ZVdpdGhUYXNr
KFdNTFRhc2tFbGVtZW50KiB0YXNrRWxlbWVudCkKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgog
ICAgIFdNTFRhc2tFbGVtZW50KiB0YXNrRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fdGFza0Vs
ZW1lbnQuZ2V0KCk7IH0KIAogcHJpdmF0ZToKLSAgICBXTUxJbnRyaW5zaWNFdmVudChEb2N1bWVu
dCopOworICAgIFdNTEludHJpbnNpY0V2ZW50KERvY3VtZW50KiwgY29uc3QgU3RyaW5nJiB0YXJn
ZXRVUkwpOwogICAgIFdNTEludHJpbnNpY0V2ZW50KFdNTFRhc2tFbGVtZW50Kik7CiAKICAgICBS
ZWZQdHI8V01MVGFza0VsZW1lbnQ+IG1fdGFza0VsZW1lbnQ7Cg==
</data>
<flag name="review"
          id="11904"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>