<?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>42814</bug_id>
          
          <creation_ts>2010-07-22 03:38:57 -0700</creation_ts>
          <short_desc>maxLength should not be applied to non-text types</short_desc>
          <delta_ts>2010-07-22 19:32:56 -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>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kent Tamura">tkent</reporter>
          <assigned_to name="Kent Tamura">tkent</assigned_to>
          <cc>adele</cc>
    
    <cc>dglazkov</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>254714</commentid>
    <comment_count>0</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-07-22 03:38:57 -0700</bug_when>
    <thetext>maxLength should not be applied to non-text types</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254716</commentid>
    <comment_count>1</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-07-22 03:40:49 -0700</bug_when>
    <thetext>According to http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary ,
maxLength should be applied only to text, search, url, tel, email, and password types.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254717</commentid>
    <comment_count>2</comment_count>
      <attachid>62283</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-07-22 03:46:56 -0700</bug_when>
    <thetext>Created attachment 62283
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254778</commentid>
    <comment_count>3</comment_count>
      <attachid>62283</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-07-22 07:31:20 -0700</bug_when>
    <thetext>Comment on attachment 62283
Patch

&gt; +var input = document.createElement(&apos;input&apos;);
&gt; +input.maxLength = 2;
&gt; +input.type = &apos;number&apos;;
&gt; +document.body.appendChild(input);
&gt; +input.focus();
&gt; +document.execCommand(&apos;insertText&apos;, false, &apos;1234&apos;);
&gt; +shouldBe(&apos;input.value&apos;, &apos;&quot;1234&quot;&apos;);

Once you&apos;ve set up the basics like this, it would be better to have the test cover many cases. It&apos;s good to go past the minimum and make sure you&apos;ve covered all the code. Ideally you have a test that will fail if you change anything in your patch, rather than a test that covers just the most important thing you&apos;ve changed.

It&apos;s unfortunate that HTMLInputElement itself calls a virtual function for supportsMaxLength. It&apos;s true that it needs to be virtual so that InputElement can call it, but when HTMLInputElement is calling itself the extra cost is not justified. There is a programming technique that eliminates this without any special care at call sites. See Node::localName, Node::virtualLocalName, Element::localName and Element::virtualLocalName, for an example of the technique. Using the technique would make our compiled code smaller and faster, but would make the code a bit more ugly.

Something from the existing code, not new: It seems a little bit unfortunate that when invoking the regular expression engine you can&apos;t tell it that you want to match against the entire string. It ends up doing work you don&apos;t need. We could consider adding a new operation to RegularExpression.

Otherwise things look good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255166</commentid>
    <comment_count>4</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-07-22 19:32:43 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Once you&apos;ve set up the basics like this, it would be better to have the test cover many cases. It&apos;s good to go past the minimum and make sure you&apos;ve covered all the code. Ideally you have a test that will fail if you change anything in your patch, rather than a test that covers just the most important thing you&apos;ve changed.

I think the existing tests (not only the new one) cover this change well.

&gt; It&apos;s unfortunate that HTMLInputElement itself calls a virtual function for supportsMaxLength. It&apos;s true that it needs to be virtual so that InputElement can call it, but when HTMLInputElement is calling itself the extra cost is not justified. There is a programming technique that eliminates this without any special care at call sites. See Node::localName, Node::virtualLocalName, Element::localName and Element::virtualLocalName, for an example of the technique. Using the technique would make our compiled code smaller and faster, but would make the code a bit more ugly.

Ok, I changed supportsMaxLength() call in HTMLInputElement to isTextType() and a comment.

Committed as r63942.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62283</attachid>
            <date>2010-07-22 03:46:56 -0700</date>
            <delta_ts>2010-07-22 19:32:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-42814-20100722194654.patch</filename>
            <type>text/plain</type>
            <size>11285</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwZmUwYjYzMWMyNWNlNzMzYTc4MjU3YTY2NjhkMmNmODdjMGE5OWMxLi40YTJlYjRi
OTg4NDMzZjBhM2RlMWMwNDE5MTEwYjNlYmJmOTA5MjAxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTAtMDctMjIgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIG1heExlbmd0aCBzaG91bGQg
bm90IGJlIGFwcGxpZWQgdG8gbm9uLXRleHQgdHlwZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyODE0CisKKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lu
cHV0LW1heGxlbmd0aC11bnN1cHBvcnRlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZm9ybXMvaW5wdXQtbWF4bGVuZ3RoLXVuc3VwcG9ydGVkLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2lucHV0LW1heGxlbmd0aC11bnN1cHBvcnRl
ZC5qczogQWRkZWQuCisKIDIwMTAtMDctMjIgIEtlbnQgSGFuc2VuICA8a2VudC5oYW5zZW5Abm9r
aWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LW1heGxlbmd0aC11bnN1cHBvcnRlZC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LW1heGxlbmd0aC11bnN1cHBvcnRl
ZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTYwYWU0MjhhZWEwN2U2MWY2N2Y5NmVkZmU0NTFh
YTJlZjU1ZjhiOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5w
dXQtbWF4bGVuZ3RoLXVuc3VwcG9ydGVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitB
IHRlc3QgZm9yIG1heGxlbmd0aCBhdHRyaWJ1dGUgb2YgYW4gaW5wdXQgZWxlbWVudCB3aXRoIG5v
bi10ZXh0IHR5cGUKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgaW5wdXQu
dmFsdWUgaXMgIjEyMzQiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1tYXhs
ZW5ndGgtdW5zdXBwb3J0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtbWF4
bGVuZ3RoLXVuc3VwcG9ydGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjk4MzVhYjAwZjllZTFlMDMxNDc0
NzYzNWQ5YTYyNDE1MDcyZDljYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvaW5wdXQtbWF4bGVuZ3RoLXVuc3VwcG9ydGVkLmh0bWwKQEAgLTAsMCArMSwxMyBAQAor
PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8
aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRl
c2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJz
Y3JpcHQtdGVzdHMvaW5wdXQtbWF4bGVuZ3RoLXVuc3VwcG9ydGVkLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9zY3JpcHQtdGVzdHMvaW5wdXQtbWF4bGVuZ3RoLXVuc3VwcG9ydGVkLmpzIGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvaW5wdXQtbWF4bGVuZ3RoLXVuc3VwcG9ydGVkLmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjMxYzllYmU0MWIwMzI1NDljMzgyMWJlN2YxY2Y3ZmUxYTNmNzBiODMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9pbnB1
dC1tYXhsZW5ndGgtdW5zdXBwb3J0ZWQuanMKQEAgLTAsMCArMSwxMiBAQAorZGVzY3JpcHRpb24o
J0EgdGVzdCBmb3IgbWF4bGVuZ3RoIGF0dHJpYnV0ZSBvZiBhbiBpbnB1dCBlbGVtZW50IHdpdGgg
bm9uLXRleHQgdHlwZScpOworCit2YXIgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdp
bnB1dCcpOworaW5wdXQubWF4TGVuZ3RoID0gMjsKK2lucHV0LnR5cGUgPSAnbnVtYmVyJzsKK2Rv
Y3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW5wdXQpOworaW5wdXQuZm9jdXMoKTsKK2RvY3VtZW50
LmV4ZWNDb21tYW5kKCdpbnNlcnRUZXh0JywgZmFsc2UsICcxMjM0Jyk7CitzaG91bGRCZSgnaW5w
dXQudmFsdWUnLCAnIjEyMzQiJyk7CisKK2lucHV0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoaW5w
dXQpOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGY5NzZjZjI3MzY3ODRkMjA0ZjZk
MmMxYzAxYWZjYjhlMDhkM2M3NGYuLjkwNGJmYTNiMjI3MzlkMDU5YTgyZDUzYzYxYThjMGU4MDYy
MTk3MTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTAtMDctMjMgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIG1heExlbmd0aCBzaG91bGQgbm90IGJlIGFwcGxpZWQgdG8gbm9uLXRleHQgdHlwZXMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyODE0CisKKyAg
ICAgICAgQWNjb3JkaW5nIHRvIHRoZSBIVE1MNSBzcGVjaWZpY2F0aW9uLCBtYXhMZW5ndGggYXR0
cmlidXRlIHNob3VsZAorICAgICAgICBiZSBhcHBsaWVkIHRvIHRleHQsIHNlYXJjaCwgdXJsLCB0
ZWwsIGVtYWlsLCBhbmQgcGFzc3dvcmQgdHlwZXMuCisKKyAgICAgICAgVGVzdDogZmFzdC9mb3Jt
cy9pbnB1dC1tYXhsZW5ndGgtdW5zdXBwb3J0ZWQuaHRtbAorCisgICAgICAgICogZG9tL0lucHV0
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dEVsZW1lbnQ6OmhhbmRsZUJlZm9y
ZVRleHRJbnNlcnRlZEV2ZW50KToKKyAgICAgICAgIEFwcGx5IG1heExlbmd0aCgpIG9ubHkgaWYg
c3VwcG9ydHNNYXhMZW5ndGgoKSBpcyB0cnVlLgorICAgICAgICAqIGRvbS9JbnB1dEVsZW1lbnQu
aDoKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTElucHV0RWxlbWVudDo6cGF0dGVybk1pc21hdGNoKToKKyAgICAgICAgIENvZGUgY2xl
YW51cCBieSBpc1RleHRUeXBlKCkuCisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50
Ojp0b29Mb25nKToKKyAgICAgICAgIGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0
RWxlbWVudDo6aXNUZXh0VHlwZSk6CisgICAgICAgICBBZGRlZC4gVGhpcyByZXR1cm5zIHRydWUg
Zm9yIHR5cGVzIHdpdGggbWF4TGVuZ3RoL3BhdHRlcm4vcGxhY2Vob2xkZXIuCisgICAgICAgICog
aHRtbC9IVE1MSW5wdXRFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVt
ZW50OjpzdXBwb3J0c01heExlbmd0aCk6CisgICAgICAgICBBZGRlZC4gSnVzdCBjYWxscyBpc1Rl
eHRUeXBlKCkuCisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzdXBwb3J0c1Bs
YWNlaG9sZGVyKToKKyAgICAgICAgIENvZGUgY2xlYW51cCBieSBpc1RleHRUeXBlKCkuCisgICAg
ICAgICogd21sL1dNTElucHV0RWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6V01MSW5wdXRF
bGVtZW50OjpzdXBwb3J0c01heExlbmd0aCk6CisgICAgICAgICBBZGRlZC4gQWx3YXlzIHJldHVy
bnMgdHJ1ZS4KKwogMjAxMC0wNy0yMiAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2RvbS9JbnB1dEVsZW1lbnQuY3BwIGIvV2ViQ29yZS9kb20vSW5wdXRFbGVtZW50LmNwcAppbmRl
eCBjZTk4MTk3MzA1MDE0ZjkwYTBhZDNhZWVjOTZjMDcyOTBlNmYwZmQxLi4yYTUzYjc3YWViZDYy
YTllMjFjNDEyYjc1OGNjNDExZTYyNWY0ZWUxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9JbnB1
dEVsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL0lucHV0RWxlbWVudC5jcHAKQEAgLTIwNCw3
ICsyMDQsNyBAQCB2b2lkIElucHV0RWxlbWVudDo6aGFuZGxlQmVmb3JlVGV4dEluc2VydGVkRXZl
bnQoSW5wdXRFbGVtZW50RGF0YSYgZGF0YSwgSW5wdXRFbAogCiAgICAgLy8gU2VsZWN0ZWQgY2hh
cmFjdGVycyB3aWxsIGJlIHJlbW92ZWQgYnkgdGhlIG5leHQgdGV4dCBldmVudC4KICAgICB1bnNp
Z25lZCBiYXNlTGVuZ3RoID0gb2xkTGVuZ3RoIC0gc2VsZWN0aW9uTGVuZ3RoOwotICAgIHVuc2ln
bmVkIG1heExlbmd0aCA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihkYXRhLm1heExlbmd0aCgpKTsg
Ly8gbWF4TGVuZ3RoKCkgY2FuIG5ldmVyIGJlIG5lZ2F0aXZlLgorICAgIHVuc2lnbmVkIG1heExl
bmd0aCA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihpbnB1dEVsZW1lbnQtPnN1cHBvcnRzTWF4TGVu
Z3RoKCkgPyBkYXRhLm1heExlbmd0aCgpIDogc19tYXhpbXVtTGVuZ3RoKTsgLy8gbWF4TGVuZ3Ro
KCkgY2FuIG5ldmVyIGJlIG5lZ2F0aXZlLgogICAgIHVuc2lnbmVkIGFwcGVuZGFibGVMZW5ndGgg
PSBtYXhMZW5ndGggPiBiYXNlTGVuZ3RoID8gbWF4TGVuZ3RoIC0gYmFzZUxlbmd0aCA6IDA7CiAK
ICAgICAvLyBUcnVuY2F0ZSB0aGUgaW5zZXJ0ZWQgdGV4dCB0byBhdm9pZCB2aW9sYXRpbmcgdGhl
IG1heExlbmd0aCBhbmQgb3RoZXIgY29uc3RyYWludHMuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Rv
bS9JbnB1dEVsZW1lbnQuaCBiL1dlYkNvcmUvZG9tL0lucHV0RWxlbWVudC5oCmluZGV4IDBmMTY0
ZjljM2Q2ZGQ5ZjIxMDM3NmViZWEzMjhkZjIzMzQ1ZjVlYWYuLmRjODdiM2RhY2ZjMzZhNGI5M2Yw
ZTllZThhOWM2NGM4MTljMTU4ODIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0lucHV0RWxlbWVu
dC5oCisrKyBiL1dlYkNvcmUvZG9tL0lucHV0RWxlbWVudC5oCkBAIC00Myw2ICs0Myw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNQYXNzd29yZEZpZWxkKCkgY29uc3QgPSAwOwogICAg
IHZpcnR1YWwgYm9vbCBpc1NlYXJjaEZpZWxkKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9v
bCBpc1RleHRGaWVsZCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNNYXhM
ZW5ndGgoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIGhhc1NwaW5CdXR0b24oKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQogI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCiAgICAgdmlydHVh
bCBib29sIGlzU3BlZWNoRW5hYmxlZCgpIGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50
LmNwcAppbmRleCAzZGYzNTQ0MDlmODM0YjhhN2JkMTRiNWZhN2I3MzE1ZDQ2Zjc4ZWM1Li41MmEw
ZmJkZWQ3ZDc4MTAxN2FiZmZiZjA5NWM4YTc1ZTU0ZmIyY2JlIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVs
ZW1lbnQuY3BwCkBAIC0yNDcsODcgKzI0NywzMiBAQCBib29sIEhUTUxJbnB1dEVsZW1lbnQ6OnZh
bHVlTWlzc2luZygpIGNvbnN0CiAKIGJvb2wgSFRNTElucHV0RWxlbWVudDo6cGF0dGVybk1pc21h
dGNoKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKGlucHV0VHlwZSgpKSB7Ci0gICAgY2FzZSBCVVRU
T046Ci0gICAgY2FzZSBDSEVDS0JPWDoKLSAgICBjYXNlIENPTE9SOgotICAgIGNhc2UgREFURToK
LSAgICBjYXNlIERBVEVUSU1FOgotICAgIGNhc2UgREFURVRJTUVMT0NBTDoKLSAgICBjYXNlIEZJ
TEU6Ci0gICAgY2FzZSBISURERU46Ci0gICAgY2FzZSBJTUFHRToKLSAgICBjYXNlIElTSU5ERVg6
Ci0gICAgY2FzZSBNT05USDoKLSAgICBjYXNlIE5VTUJFUjoKLSAgICBjYXNlIFJBRElPOgotICAg
IGNhc2UgUkFOR0U6Ci0gICAgY2FzZSBSRVNFVDoKLSAgICBjYXNlIFNVQk1JVDoKLSAgICBjYXNl
IFRJTUU6Ci0gICAgY2FzZSBXRUVLOgorICAgIGlmICghaXNUZXh0VHlwZSgpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgY2FzZSBFTUFJTDoKLSAgICBjYXNlIFBBU1NXT1JEOgotICAgIGNh
c2UgU0VBUkNIOgotICAgIGNhc2UgVEVMRVBIT05FOgotICAgIGNhc2UgVEVYVDoKLSAgICBjYXNl
IFVSTDoKLSAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBwYXR0ZXJuID0gZ2V0QXR0cmlidXRl
KHBhdHRlcm5BdHRyKTsKLSAgICAgICAgU3RyaW5nIHZhbHVlID0gdGhpcy0+dmFsdWUoKTsKLSAg
ICAgICAgIC8vIEVtcHR5IHZhbHVlcyBjYW4ndCBiZSBtaXNtYXRjaGVkCi0gICAgICAgIGlmIChw
YXR0ZXJuLmlzRW1wdHkoKSB8fCB2YWx1ZS5pc0VtcHR5KCkpCi0gICAgICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgICAgIFJlZ3VsYXJFeHByZXNzaW9uIHBhdHRlcm5SZWdFeHAocGF0dGVybiwg
VGV4dENhc2VTZW5zaXRpdmUpOwotICAgICAgICBpbnQgbWF0Y2hMZW5ndGggPSAwOwotICAgICAg
ICBpbnQgdmFsdWVMZW5ndGggPSB2YWx1ZS5sZW5ndGgoKTsKLSAgICAgICAgaW50IG1hdGNoT2Zm
c2V0ID0gcGF0dGVyblJlZ0V4cC5tYXRjaCh2YWx1ZSwgMCwgJm1hdGNoTGVuZ3RoKTsKLSAgICAg
ICAgcmV0dXJuIG1hdGNoT2Zmc2V0IHx8IG1hdGNoTGVuZ3RoICE9IHZhbHVlTGVuZ3RoOwotICAg
IH0KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgY29u
c3QgQXRvbWljU3RyaW5nJiBwYXR0ZXJuID0gZ2V0QXR0cmlidXRlKHBhdHRlcm5BdHRyKTsKKyAg
ICBTdHJpbmcgdmFsdWUgPSB0aGlzLT52YWx1ZSgpOworICAgIC8vIEVtcHR5IHZhbHVlcyBjYW4n
dCBiZSBtaXNtYXRjaGVkCisgICAgaWYgKHBhdHRlcm4uaXNFbXB0eSgpIHx8IHZhbHVlLmlzRW1w
dHkoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIFJlZ3VsYXJFeHByZXNzaW9uIHBhdHRl
cm5SZWdFeHAocGF0dGVybiwgVGV4dENhc2VTZW5zaXRpdmUpOworICAgIGludCBtYXRjaExlbmd0
aCA9IDA7CisgICAgaW50IHZhbHVlTGVuZ3RoID0gdmFsdWUubGVuZ3RoKCk7CisgICAgaW50IG1h
dGNoT2Zmc2V0ID0gcGF0dGVyblJlZ0V4cC5tYXRjaCh2YWx1ZSwgMCwgJm1hdGNoTGVuZ3RoKTsK
KyAgICByZXR1cm4gbWF0Y2hPZmZzZXQgfHwgbWF0Y2hMZW5ndGggIT0gdmFsdWVMZW5ndGg7CiB9
CiAKIGJvb2wgSFRNTElucHV0RWxlbWVudDo6dG9vTG9uZygpIGNvbnN0CiB7Ci0gICAgc3dpdGNo
IChpbnB1dFR5cGUoKSkgewotICAgIGNhc2UgRU1BSUw6Ci0gICAgY2FzZSBQQVNTV09SRDoKLSAg
ICBjYXNlIFNFQVJDSDoKLSAgICBjYXNlIFRFTEVQSE9ORToKLSAgICBjYXNlIFRFWFQ6Ci0gICAg
Y2FzZSBVUkw6IHsKLSAgICAgICAgaW50IG1heCA9IG1heExlbmd0aCgpOwotICAgICAgICBpZiAo
bWF4IDwgMCkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgLy8gUmV0dXJuIGZh
bHNlIGZvciB0aGUgZGVmYXVsdCB2YWx1ZSBldmVuIGlmIGl0IGlzIGxvbmdlciB0aGFuIG1heExl
bmd0aC4KLSAgICAgICAgYm9vbCB1c2VyRWRpdGVkID0gIW1fZGF0YS52YWx1ZSgpLmlzTnVsbCgp
OwotICAgICAgICBpZiAoIXVzZXJFZGl0ZWQpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgICAgIHJldHVybiBudW1HcmFwaGVtZUNsdXN0ZXJzKHZhbHVlKCkpID4gc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KG1heCk7Ci0gICAgfQotICAgIGNhc2UgQlVUVE9OOgotICAgIGNhc2UgQ0hFQ0tC
T1g6Ci0gICAgY2FzZSBDT0xPUjoKLSAgICBjYXNlIERBVEU6Ci0gICAgY2FzZSBEQVRFVElNRToK
LSAgICBjYXNlIERBVEVUSU1FTE9DQUw6Ci0gICAgY2FzZSBGSUxFOgotICAgIGNhc2UgSElEREVO
OgotICAgIGNhc2UgSU1BR0U6Ci0gICAgY2FzZSBJU0lOREVYOgotICAgIGNhc2UgTU9OVEg6Ci0g
ICAgY2FzZSBOVU1CRVI6Ci0gICAgY2FzZSBSQURJTzoKLSAgICBjYXNlIFJBTkdFOgotICAgIGNh
c2UgUkVTRVQ6Ci0gICAgY2FzZSBTVUJNSVQ6Ci0gICAgY2FzZSBUSU1FOgotICAgIGNhc2UgV0VF
SzoKKyAgICBpZiAoIXN1cHBvcnRzTWF4TGVuZ3RoKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICB9Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIGZhbHNlOworICAg
IGludCBtYXggPSBtYXhMZW5ndGgoKTsKKyAgICBpZiAobWF4IDwgMCkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIC8vIFJldHVybiBmYWxzZSBmb3IgdGhlIGRlZmF1bHQgdmFsdWUgZXZlbiBp
ZiBpdCBpcyBsb25nZXIgdGhhbiBtYXhMZW5ndGguCisgICAgYm9vbCB1c2VyRWRpdGVkID0gIW1f
ZGF0YS52YWx1ZSgpLmlzTnVsbCgpOworICAgIGlmICghdXNlckVkaXRlZCkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIHJldHVybiBudW1HcmFwaGVtZUNsdXN0ZXJzKHZhbHVlKCkpID4gc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KG1heCk7CiB9CiAKIGJvb2wgSFRNTElucHV0RWxlbWVudDo6cmFu
Z2VVbmRlcmZsb3coKSBjb25zdApAQCAtMTQ1MCw2ICsxMzk1LDQwIEBAIGJvb2wgSFRNTElucHV0
RWxlbWVudDo6aXNUZXh0RmllbGQoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAorYm9v
bCBIVE1MSW5wdXRFbGVtZW50Ojppc1RleHRUeXBlKCkgY29uc3QKK3sKKyAgICBzd2l0Y2ggKGlu
cHV0VHlwZSgpKSB7CisgICAgY2FzZSBFTUFJTDoKKyAgICBjYXNlIFBBU1NXT1JEOgorICAgIGNh
c2UgU0VBUkNIOgorICAgIGNhc2UgVEVMRVBIT05FOgorICAgIGNhc2UgVEVYVDoKKyAgICBjYXNl
IFVSTDoKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgY2FzZSBCVVRUT046CisgICAgY2FzZSBD
SEVDS0JPWDoKKyAgICBjYXNlIENPTE9SOgorICAgIGNhc2UgREFURToKKyAgICBjYXNlIERBVEVU
SU1FOgorICAgIGNhc2UgREFURVRJTUVMT0NBTDoKKyAgICBjYXNlIEZJTEU6CisgICAgY2FzZSBI
SURERU46CisgICAgY2FzZSBJTUFHRToKKyAgICBjYXNlIElTSU5ERVg6CisgICAgY2FzZSBNT05U
SDoKKyAgICBjYXNlIE5VTUJFUjoKKyAgICBjYXNlIFJBRElPOgorICAgIGNhc2UgUkFOR0U6Cisg
ICAgY2FzZSBSRVNFVDoKKyAgICBjYXNlIFNVQk1JVDoKKyAgICBjYXNlIFRJTUU6CisgICAgY2Fz
ZSBXRUVLOgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwogdm9pZCBIVE1MSW5wdXRFbGVtZW50Ojpz
ZXRDaGVja2VkKGJvb2wgbm93Q2hlY2tlZCwgYm9vbCBzZW5kQ2hhbmdlRXZlbnQpCiB7CiAgICAg
aWYgKGNoZWNrZWQoKSA9PSBub3dDaGVja2VkKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hU
TUxJbnB1dEVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKaW5kZXgg
M2I5YmE4ODc2YzBiNThjNWVlMmFiZjlhYWRiOTVhZjQ2NTQ3NzRhMy4uNzJhYzU4OTRjMDYzNTVl
NWZkNzJhOWE4ZDU2YmE5ZDhmZjdhNWE3NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxJ
bnB1dEVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCkBAIC0y
OTAsNyArMjkwLDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCByZWdpc3RlckZvckFjdGl2YXRpb25D
YWxsYmFja0lmTmVlZGVkKCk7CiAgICAgdm9pZCB1bnJlZ2lzdGVyRm9yQWN0aXZhdGlvbkNhbGxi
YWNrSWZOZWVkZWQoKTsKIAotICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1BsYWNlaG9sZGVyKCkg
Y29uc3QgeyByZXR1cm4gaXNUZXh0RmllbGQoKTsgfQorICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0
c01heExlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIGlzVGV4dFR5cGUoKTsgfQorICAgIGJvb2wgaXNU
ZXh0VHlwZSgpIGNvbnN0OworCisgICAgdmlydHVhbCBib29sIHN1cHBvcnRzUGxhY2Vob2xkZXIo
KSBjb25zdCB7IHJldHVybiBpc1RleHRUeXBlKCkgfHwgaW5wdXRUeXBlKCkgPT0gSVNJTkRFWDsg
fQogICAgIHZpcnR1YWwgYm9vbCBpc0VtcHR5VmFsdWUoKSBjb25zdCB7IHJldHVybiB2YWx1ZSgp
LmlzRW1wdHkoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVGb2N1c0V2ZW50KCk7CiAgICAg
dmlydHVhbCB2b2lkIGhhbmRsZUJsdXJFdmVudCgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS93bWwv
V01MSW5wdXRFbGVtZW50LmggYi9XZWJDb3JlL3dtbC9XTUxJbnB1dEVsZW1lbnQuaAppbmRleCBi
ODc0OGZkOWNmMWFkZWQ4ZGRkNzVmNGZlMDVlZjVkZTcwYjM0YzlmLi5mZTFhZTg5NDk5MzI5OGM3
ZWZmZmQxNjMxNTIxN2ZjNTQ1MjVmNWZkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3dtbC9XTUxJbnB1
dEVsZW1lbnQuaAorKysgYi9XZWJDb3JlL3dtbC9XTUxJbnB1dEVsZW1lbnQuaApAQCAtOTYsNiAr
OTYsNyBAQCBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBXTUxDYXJkRWxlbWVudDsKICAgICB2
b2lkIGluaXRpYWxpemUoKTsKIAorICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c01heExlbmd0aCgp
IGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICBTdHJpbmcgdmFsaWRhdGVJbnB1dE1hc2soY29u
c3QgU3RyaW5nJik7CiAgICAgdW5zaWduZWQgY3Vyc29yUG9zaXRpb25Ub01hc2tJbmRleCh1bnNp
Z25lZCk7CiAgICAgU3RyaW5nIGNvbnN0cmFpblZhbHVlKGNvbnN0IFN0cmluZyYpIGNvbnN0Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>