<?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>20461</bug_id>
          
          <creation_ts>2008-08-20 12:37:49 -0700</creation_ts>
          <short_desc>Collapse multiline values in inputs</short_desc>
          <delta_ts>2008-10-12 17:58:15 -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>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Roman">eroman</reporter>
          <assigned_to name="Glenn Wilson">gwilson</assigned_to>
          <cc>adele</cc>
    
    <cc>justin.garcia</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>88927</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Roman">eroman</who>
    <bug_when>2008-08-20 12:37:49 -0700</bug_when>
    <thetext>If you paste a multiline address into maps.google.com, only the first line appears in the input.

IE/Firefox/Opera all collapse the multiline value to avoid this problem.
-IE and Opera strip the newline.
-Firefox replaces it with a space.

Webkit should similarly strip newlines so you can paste into inputs easily.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>88928</commentid>
    <comment_count>1</comment_count>
      <attachid>22898</attachid>
    <who name="Eric Roman">eroman</who>
    <bug_when>2008-08-20 12:38:53 -0700</bug_when>
    <thetext>Created attachment 22898
Either paste into the field, or click the button to repro multi-line issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>88985</commentid>
    <comment_count>2</comment_count>
    <who name="Glenn Wilson">gwilson</who>
    <bug_when>2008-08-20 18:42:43 -0700</bug_when>
    <thetext>This is an interesting issue because all browsers seem to handle copying and pasting newlines, carriage returns, and non-displayable characters (like \0) differently.

Tested on WinXPSP2,
IE6/IE7 ==&gt; cuts newlines and carriage returns out of the string, truncates everything after a null character
FF3 ==&gt; replaces CRLF with one space, shows null character as a unicode &quot;box with numbers&quot;
Safari 3.1==&gt; truncates after the first ASCII char &apos;below&apos; a space (excluding &apos;\t&apos;)

So when copying in multiple lines into a text field, should each CRLF be replaced with zero spaces like IE, one space like FF, or two spaces (one for each character)?  And should it accept the null character (\0) and other unexpected characters?

I&apos;m leaning towards following FF&apos;s lead here...my thoughts:

1.  If a CR, LF, or CRLF were once between characters in a string, that string was intended to have some kind of whitespace there.  Otherwise, for example, &quot;Our record is 10-5\n8 players scored goals&quot; would become &quot;Our record is 10-58 players scored goals&quot;.  So at least some whitespace should be retained to maintain some intention of the original text.  However, two spaces for a CRLF seems inconsistent with the way CRLF is displayed in most cases -- as one space.

2.  Retaining the null character is dependent on whether it can be rendered, and whether it makes sense.  Firefox shows a little box with &quot;0000&quot; in it, which looks to be a representation of the unicode character, U+0000.  So clearly, FF has a way of showing the character and the user can understand it&apos;s a funky char, and can decide what to do with it.  In Safari 3.1, when forced to show the null character, it doesn&apos;t display at all.  So truncating on it doesn&apos;t seem necessary.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>88988</commentid>
    <comment_count>3</comment_count>
    <who name="Glenn Wilson">gwilson</who>
    <bug_when>2008-08-20 21:06:06 -0700</bug_when>
    <thetext>On second thought, letting non-visible characters live in input fields could cause a lot of potential problems for users.  I can imagine a situation wherein a user is tortured by trying to log in somewhere with a null character in their username/password.  Not to mention what kind of security concerns this might raise.

It&apos;s probably better to handle issue #1, and just collapse CR/LF into spaces when pasting into a text-like input, and handle the non-rendering of system characters as part of a separate bug.



 </thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>90700</commentid>
    <comment_count>4</comment_count>
    <who name="Glenn Wilson">gwilson</who>
    <bug_when>2008-09-09 16:08:37 -0700</bug_when>
    <thetext>This bug looks to be associated with the fix to bug #8104.

The original problem seemed to be that input text fields&apos; heights would change when newlines were pasted in.  So any input getting into a text field would just be truncated on a newline.

But this doesn&apos;t seem right: IE7, FF3 take multi-line inputs and &quot;flatten&quot; them to be put into single-line text inputs.


</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>90709</commentid>
    <comment_count>5</comment_count>
      <attachid>23306</attachid>
    <who name="Glenn Wilson">gwilson</who>
    <bug_when>2008-09-09 17:46:06 -0700</bug_when>
    <thetext>Created attachment 23306
Possible fix to bug 20461

Here is a potential fix to this problem.

This bug is the result of an earlier issue wherein pasting text with multi-line inputs would result in text areas mis-sizing.  The solution was to simply truncate all input after the first non-tab system character had been found.

I believe that this behavior is not entirely correct.  Other browsers do not truncate after the first system character, but simply replace newlines with spaces.  This seems to be helpful to the user: for example, copy a two-line postal address and paste into Google Maps&apos; one-line text field.  This change modified how the input filter replaced text: it now replaces newlines and carriage returns (and the combination, \r\n) with a single space.

However, not all behavior has been changed.  The input still truncates on non-tab, non-carriage return, non-newline system characters.

As a result, a layout test has been added and the old layout test has been removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>91081</commentid>
    <comment_count>6</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2008-09-13 14:30:45 -0700</bug_when>
    <thetext>Cc&apos;d Adele and Justin who might better understand the context of the original change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>91388</commentid>
    <comment_count>7</comment_count>
      <attachid>23306</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-09-16 10:26:43 -0700</bug_when>
    <thetext>Comment on attachment 23306
Possible fix to bug 20461

Truncating strings at the first newline was an intentional design decision in the original Safari development cycle. The original check-in for this was:

    http://trac.webkit.org/changeset/7408

&gt; IE/Firefox/Opera all collapse the multiline value to avoid this problem.
&gt; -IE and Opera strip the newline.
&gt; -Firefox replaces it with a space.

At the change of change 7408 that was not true of IE. Presumably IE changed their behavior at some point. We decided to match IE rather than Gecko back then.

+        string.replace(static_cast&lt;WebCore::String&gt;(&quot;\r\n&quot;), static_cast&lt;WebCore::String&gt;(&quot; &quot;));

You should be able to just write:

    string.replace(&quot;\r\n&quot;, &quot; &quot;);

Those typecasts are unnecessary, and in fact they prevent us from later overloading String::replace to create a more efficient version that doesn&apos;t create intermediate String objects.

The patch looks fine otherwise. I&apos;d prefer that someone remove the redundant static_cast calls.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>91389</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-09-16 10:27:18 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; However, not all behavior has been changed. The input still truncates on
&gt; non-tab, non-carriage return, non-newline system characters.

We need a test for this part of the behavior then! I missed that in my review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>91402</commentid>
    <comment_count>9</comment_count>
    <who name="Glenn Wilson">gwilson</who>
    <bug_when>2008-09-16 11:04:01 -0700</bug_when>
    <thetext>I think with the static casts, I was conforming to what my IDE was telling me...intellisense has led me astray.  Those casts can be removed if they are problematic.

The unit test included does test that inputs are truncated at the first non- tab/newline/CR as well as testing that multiline inputs are collapsed.  Admittedly, it only tests that the truncation happens with with a null character (&apos;\0&apos;), and in theory it *should* test every system character.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95118</commentid>
    <comment_count>10</comment_count>
      <attachid>23306</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-10-12 17:46:27 -0700</bug_when>
    <thetext>Comment on attachment 23306
Possible fix to bug 20461

This patch breaks the test output from test fast/forms/8250.html, which fails now. That test needs to be updated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95120</commentid>
    <comment_count>11</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-10-12 17:58:15 -0700</bug_when>
    <thetext>I took care of it. There were also tabs in the test file that I had to remove.

http://trac.webkit.org/changeset/37539
</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>22898</attachid>
            <date>2008-08-20 12:38:53 -0700</date>
            <delta_ts>2008-08-20 12:38:53 -0700</delta_ts>
            <desc>Either paste into the field, or click the button to repro multi-line issue.</desc>
            <filename>multiline-input.html</filename>
            <type>text/html</type>
            <size>1913</size>
            <attacher name="Eric Roman">eroman</attacher>
            
              <data encoding="base64">PGh0bWw+CiAgPGhlYWQ+CiAgICA8c2NyaXB0PgogICAgICBmdW5jdGlvbiBzZXR1cCgpIHsKICAg
ICAgICBnZXRJbnB1dCgpLm9uY2hhbmdlID0gdXBkYXRlSW5wdXRWYWx1ZTsKICAgICAgICBnZXRJ
bnB1dCgpLm9ua2V5ZG93biA9IHVwZGF0ZUlucHV0VmFsdWU7CgogICAgICAgIC8vIFN5bmNoIHZh
bHVlIGZpZWxkIGV2ZXJ5IDEgc2Vjb25kcyBpbiBjYXNlIHNvbWV0aGluZyBpcyBtaXNzZWQuCiAg
ICAgICAgd2luZG93LnNldEludGVydmFsKHVwZGF0ZUlucHV0VmFsdWUsIDUwMCk7CiAgICAgIH0K
CiAgICAgIGZ1bmN0aW9uIGdldElucHV0KCkgewogICAgICAgIHJldHVybiBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnaW5wdXRJZCcpOwogICAgICB9CgogICAgICB2YXIgREVGQVVMVF9MSU5FID0g
ImxpbmVcdCgxIG9mIDIpXG5saW5lXHQoMiBvZiAyKSI7CgogICAgICBmdW5jdGlvbiBzZXRNdWx0
aWxpbmVWYWx1ZSgpIHsKICAgICAgICBnZXRJbnB1dCgpLnZhbHVlID0gREVGQVVMVF9MSU5FOwog
ICAgICAgIHVwZGF0ZUlucHV0VmFsdWUoKTsKICAgICAgfQoKICAgICAgZnVuY3Rpb24gdXBkYXRl
SW5wdXRWYWx1ZSgpIHsKICAgICAgICB2YXIgc3RyID0ganNFc2NhcGUoZ2V0SW5wdXQoKS52YWx1
ZSk7CgogICAgICAgIHZhciB2YWx1ZUZpZWxkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lu
cHV0VmFsdWVJZCcpOwogICAgICAgIHZhbHVlRmllbGQuaW5uZXJIVE1MID0gIiI7CiAgICAgICAg
dmFsdWVGaWVsZC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShzdHIpKTsKICAg
ICAgfQoKICAgICAgZnVuY3Rpb24ganNFc2NhcGUocykgewogICAgICAgIC8vIFBhcnRpYWwKICAg
ICAgICB2YXIgcmVwbGFjZW1lbnRzID0gWwogICAgICAgIFsiXHIiLCAiXFxyIl0sCiAgICAgICAg
WyJcbiIsICJcXG4iXSwKICAgICAgICBbIlx0IiwgIlxcdCJdLAogICAgICAgIFsiXGYiLCAiXFxm
Il0sCiAgICAgICAgWyJcdCIsICJcXHQiXQogICAgICAgIF07CgogICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgcmVwbGFjZW1lbnRzLmxlbmd0aDsgKytpKSB7CiAgICAgICAgICB2YXIgciA9IHJl
cGxhY2VtZW50c1tpXTsKICAgICAgICAgIHMgPSBzLnJlcGxhY2UoclswXSwgclsxXSk7CiAgICAg
ICAgfQogICAgICAgIHJldHVybiBzOwogICAgICB9CiAgICA8L3NjcmlwdD4KCiAgICA8c3R5bGU+
CiAgICAgIC5jb2RlIHsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICB9CiAg
ICA8L3N0eWxlPgogIDwvaGVhZD4KICA8Ym9keSBvbmxvYWQ9InNldHVwKCkiPgogICAgPGgyPk11
bHRpbGluZSBjb250ZW50IGluIGlucHV0czwvaDI+CiAgICA8dGFibGUgYm9yZGVyPTE+CiAgICAg
IDx0cj4KICAgICAgICA8dGQ+aW5wdXQ8L3RkPgogICAgICAgIDx0ZD48aW5wdXQgaWQ9aW5wdXRJ
ZCBzaXplPTYwIC8+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZCB2YWxp
Z249dG9wPnZhbHVlPC90ZD4KICAgICAgICA8dGQgdmFsaWduPXRvcCBjbGFzcz1jb2RlPgogICAg
ICAgICAgIjxzcGFuIGlkPWlucHV0VmFsdWVJZD48L3NwYW4+IgogICAgICAgIDwvdGQ+CiAgICAg
IDwvdHI+CiAgICA8L3RhYmxlPgoKICAgIDxici8+CgogICAgPHRhYmxlPgogICAgICA8dHI+CiAg
ICAgICAgPHRkPgogICAgICAgICAgPGlucHV0IHR5cGU9YnV0dG9uIG9uY2xpY2s9c2V0TXVsdGls
aW5lVmFsdWUoKSB2YWx1ZT0nc2V0IG11bHRpbGluZSB2YWx1ZScgLz4KICAgICAgICA8L3RkPgog
ICAgICAgIDx0ZD4mcmFycjsgPHNwYW4gY2xhc3M9Y29kZT48c2NyaXB0PmRvY3VtZW50LndyaXRl
KGpzRXNjYXBlKERFRkFVTFRfTElORSkpPC9zY3JpcHQ+PC9zcGFuPjwvdGQ+CiAgICAgIDwvdHI+
CiAgICA8L3RhYmxlPgogIDwvYm9keT4KPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>23306</attachid>
            <date>2008-09-09 17:46:06 -0700</date>
            <delta_ts>2008-09-16 10:26:43 -0700</delta_ts>
            <desc>Possible fix to bug 20461</desc>
            <filename>patch20461.txt</filename>
            <type>text/plain</type>
            <size>7971</size>
            <attacher name="Glenn Wilson">gwilson</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9DaGFuZ2VM
b2cJKHJldmlzaW9uIDM2MzA1KQ0KKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
DQpAQCAtMSwzICsxLDE4IEBADQorMjAwOC0wOS0wOSAgR2xlbm4gV2lsc29uICA8Z3dpbHNvbkBn
b29nbGUuY29tPg0KKw0KKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuDQorDQor
ICAgICAgICBBZGRlZCBmZWF0dXJlIHRvIGFsbG93IG11bHRpLWxpbmUgaW5wdXRzIGludG8gdGV4
dCBmaWVsZHMuDQorICAgICAgICBIVE1MSW5wdXRFbGVtZW50IHdvdWxkIGN1dCB0aGUgc2V0IHRl
eHQgYXQgdGhlIGZpcnN0ICdzeXN0ZW0nIGNoYXJhY3RlciwNCisgICAgICAgIHNvIGl0IHdvdWxk
IHRydW5jYXRlIGF0IHRoZSBmaXJzdCBjYXJyaWFnZSByZXR1cm4gb3IgbmV3bGluZS4NCisgICAg
ICAgIFRoaXMgZml4IG1vZGlmaWVzIHRoYXQgYmVoYXZpb3IgdG8gdHJ1bmNhdGUgYXQgYW55IG5v
bi1zcGFjZSBzeXN0ZW0gY2hhcmFjdGVyDQorICAgICAgICBidXQgY2hhbmdlcyBcciwgXG4sIGFu
ZCBcclxuIHRvIGEgc2luZ2xlIHNwYWNlLg0KKw0KKyAgICAgICAgVGVzdHM6IGVkaXRpbmcvcGFz
dGVib2FyZC9wYXN0ZS1tdWx0aWxpbmUtdGV4dC1pbnB1dC5odG1sDQorICAgICAgICAgICAgICAg
DQorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5jcHA6DQorICAgICAgICAoV2ViQ29y
ZTo6SFRNTElucHV0RWxlbWVudDo6Y29uc3RyYWluVmFsdWUpOg0KKw0KIDIwMDgtMDktMDkgIERh
dmUgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+DQogDQogICAgICAgICBNYWtlIHRoZSBXaW5kb3dz
IGNsYXNzaWMgY2FzZSB3b3JrIGFnYWluLiAgT3ZlcmxhcCBpbiBzbGlkZXIgY29uc3RhbnRzIGFu
ZCBvdGhlciBjb25zdGFudHMgYnJva2UNCkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTElucHV0RWxl
bWVudC5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5j
cHAJKHJldmlzaW9uIDM1OTE3KQ0KKysrIFdlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNw
cAkod29ya2luZyBjb3B5KQ0KQEAgLTE1NTIsOCArMTU1MiwxMiBAQCB2b2lkIEhUTUxJbnB1dEVs
ZW1lbnQ6OnVucmVnaXN0ZXJGb3JDYWNoDQogDQogU3RyaW5nIEhUTUxJbnB1dEVsZW1lbnQ6OmNv
bnN0cmFpblZhbHVlKGNvbnN0IFN0cmluZyYgcHJvcG9zZWRWYWx1ZSwgaW50IG1heExlbikgY29u
c3QNCiB7DQorICAgIFN0cmluZyBzdHJpbmcgPSBwcm9wb3NlZFZhbHVlOw0KICAgICBpZiAoaXNU
ZXh0RmllbGQoKSkgew0KLSAgICAgICAgU3RyaW5nSW1wbCogcyA9IHByb3Bvc2VkVmFsdWUuaW1w
bCgpOw0KKyAgICAgICAgc3RyaW5nLnJlcGxhY2Uoc3RhdGljX2Nhc3Q8V2ViQ29yZTo6U3RyaW5n
PigiXHJcbiIpLCBzdGF0aWNfY2FzdDxXZWJDb3JlOjpTdHJpbmc+KCIgIikpOw0KKyAgICAgICAg
c3RyaW5nLnJlcGxhY2UoJ1xyJywgJyAnKTsNCisgICAgICAgIHN0cmluZy5yZXBsYWNlKCdcbics
ICcgJyk7DQorICAgICAgICBTdHJpbmdJbXBsKiBzID0gc3RyaW5nLmltcGwoKTsNCiAgICAgICAg
IGludCBuZXdMZW4gPSBudW1DaGFyYWN0ZXJzSW5HcmFwaGVtZUNsdXN0ZXJzKHMsIG1heExlbik7
DQogICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG5ld0xlbjsgKytpKSB7DQogICAgICAgICAg
ICAgY29uc3QgVUNoYXIgY3VycmVudCA9ICgqcylbaV07DQpAQCAtMTU2MiwxMCArMTU2NiwxMCBA
QCBTdHJpbmcgSFRNTElucHV0RWxlbWVudDo6Y29uc3RyYWluVmFsdWUoDQogICAgICAgICAgICAg
ICAgIGJyZWFrOw0KICAgICAgICAgICAgIH0NCiAgICAgICAgIH0NCi0gICAgICAgIGlmIChuZXdM
ZW4gPCBzdGF0aWNfY2FzdDxpbnQ+KHByb3Bvc2VkVmFsdWUubGVuZ3RoKCkpKQ0KLSAgICAgICAg
ICAgIHJldHVybiBwcm9wb3NlZFZhbHVlLnN1YnN0cmluZygwLCBuZXdMZW4pOw0KKyAgICAgICAg
aWYgKG5ld0xlbiA8IHN0YXRpY19jYXN0PGludD4oc3RyaW5nLmxlbmd0aCgpKSkNCisgICAgICAg
ICAgICByZXR1cm4gc3RyaW5nLnN1YnN0cmluZygwLCBuZXdMZW4pOw0KICAgICB9DQotICAgIHJl
dHVybiBwcm9wb3NlZFZhbHVlOw0KKyAgICByZXR1cm4gc3RyaW5nOw0KIH0NCiANCiB2b2lkIEhU
TUxJbnB1dEVsZW1lbnQ6OmFkZFNlYXJjaFJlc3VsdCgpDQpJbmRleDogTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09DQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAz
NjMwNSkNCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkNCkBAIC0xLDMg
KzEsMTUgQEANCisyMDA4LTA5LTA5ICBHbGVubiBXaWxzb24gIDxnd2lsc29uQGdvb2dsZS5jb20+
DQorDQorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4NCisNCisgICAgICAgIEFk
ZGVkIG5ldyB0ZXN0IHRvIHZlcmlmeSB0aGF0IHRoZSB1c2VyIGNhbiBjdXQgYW5kIHBhc3RlIG11
bHRpcGxlIGxpbmVzIG9mIHRleHQNCisgICAgICAgIGludG8gYSBzaW5nbGUgbGluZSB0ZXh0IGZp
ZWxkLiAoYnVnICMyMDQ2MSkNCisNCisgICAgICAgICogZmFzdC9mb3Jtcy9wYXN0ZS1tdWx0aWxp
bmUtdGV4dC1pbnB1dC1leHBlY3RlZC50eHQ6IEFkZGVkLg0KKyAgICAgICAgKiBmYXN0L2Zvcm1z
L3Bhc3RlLW11bHRpbGluZS10ZXh0LWlucHV0Lmh0bWw6IEFkZGVkLg0KKyAgICAgICAgKiBmYXN0
L2Zvcm1zL2lucHV0LXRydW5jYXRlLW5ld2xpbmUtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLg0KKyAg
ICAgICAgKiBmYXN0L2Zvcm1zL2lucHV0LXRydW5jYXRlLW5ld2xpbmUuaHRtbDogUmVtb3ZlZC4N
CisNCiAyMDA4LTA5LTA1ICBDaHJpcyBNYXJyaW4gIDxjbWFycmluQGFwcGxlLmNvbT4NCiANCiAg
ICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuDQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9pbnB1dC10cnVuY2F0ZS1uZXdsaW5lLWV4cGVjdGVkLnR4dA0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0t
IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtdHJ1bmNhdGUtbmV3bGluZS1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDM1OTE3KQ0KKysrIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtdHJ1
bmNhdGUtbmV3bGluZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkNCkBAIC0xLDQgKzAsMCBA
QA0KLVRoaXMgdGVzdHMgdGhhdCB3aGVuIG5ld2xpbmVzIGFyZSBwYXN0ZWQgaW50byB0ZXh0IGZp
ZWxkcywgdGhlIHRleHQgZ2V0cyB0cnVuY2F0ZWQgcHJvcGVybHkuIA0KLQ0KLQ0KLVBhc3NlZC4N
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXRydW5jYXRlLW5ld2xpbmUuaHRt
bA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQ0KLS0tIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtdHJ1bmNhdGUt
bmV3bGluZS5odG1sCShyZXZpc2lvbiAzNTkxNykNCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2lucHV0LXRydW5jYXRlLW5ld2xpbmUuaHRtbAkod29ya2luZyBjb3B5KQ0KQEAgLTEsMzkgKzAs
MCBAQA0KLTxodG1sPg0KLTxoZWFkPg0KLTxzY3JpcHQgc3JjPS4uLy4uL2VkaXRpbmcvZWRpdGlu
Zy5qcyBsYW5ndWFnZT0iSmF2YVNjcmlwdCIgdHlwZT0idGV4dC9KYXZhU2NyaXB0IiA+PC9zY3Jp
cHQ+DQotPHNjcmlwdD4NCi0NCi1mdW5jdGlvbiB0ZXN0KCkNCi17IA0KLSAgICB2YXIgcmVzID0g
IiI7DQotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsNCi0gICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsNCi0gICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLndhaXRVbnRpbERvbmUoKTsNCi0gICAgfQ0KLSAgICANCi0gICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2R2JykuZm9jdXMoKTsNCi0gICAgY29weUNvbW1hbmQoKTsNCi0gICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RmJykuZm9jdXMoKTsNCi0gICAgcGFzdGVDb21tYW5kKCk7
DQotICAgIA0KLSAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RmJykudmFsdWUgPT0g
IlRlc3QiKSB7DQotICAgICAgICByZXMrPSAiUGFzc2VkLlxuIjsNCi0gICAgfQ0KLSAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnZHYnKS5pbm5lckhUTUwgPSAiIjsNCi0gICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpLmlubmVySFRNTCA9IHJlczsNCi0gICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikgew0KLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
bm90aWZ5RG9uZSgpOw0KLSAgICB9DQotfQ0KLQ0KLTwvc2NyaXB0Pg0KLTwvaGVhZD4NCi08Ym9k
eSBvbmxvYWQ9InRlc3QoKSI+DQotVGhpcyB0ZXN0cyB0aGF0IHdoZW4gbmV3bGluZXMgYXJlIHBh
c3RlZCBpbnRvIHRleHQgZmllbGRzLCB0aGUgdGV4dCBnZXRzIHRydW5jYXRlZCBwcm9wZXJseS4N
Ci08YnI+PGJyPg0KLTxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0idGYiPjwvaW5wdXQ+DQotPGRpdiBj
b250ZW50ZWRpdGFibGUgaWQ9ImR2Ij5UZXN0PGJyPkZhaWxlZDwvZGl2Pg0KLTxkaXYgaWQ9InJl
c3VsdCI+DQotPC9kaXY+DQotPC9ib2R5Pg0KLTwvaHRtbD4NCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL3Bhc3RlLW11bHRpbGluZS10ZXh0LWlucHV0LWV4cGVjdGVkLnR4dA0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQ0KLS0tIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvcGFzdGUtbXVsdGlsaW5lLXRleHQtaW5w
dXQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQ0KKysrIExheW91dFRlc3RzL2Zhc3QvZm9ybXMv
cGFzdGUtbXVsdGlsaW5lLXRleHQtaW5wdXQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQ0KQEAg
LTAsMCArMSw4IEBADQorVGVzdDogVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgdGV4dCBpbnB1dHMg
d2lsbCBhY2NlcHQgbXVsdGlwbGUgbGluZXMgb2YgcGFzdGVkIHRleHQuIFlvdSBzaG91bGQgc2Vl
IHR3byB0ZXN0cyAiUEFTUyIgYmVsb3cuDQorDQorDQorTXVsdGktbGluZSB0ZXN0Og0KK1BBU1MN
CitOdWxsIGNoYXIgdGVzdDoNCitQQVNTDQorDQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9wYXN0ZS1tdWx0aWxpbmUtdGV4dC1pbnB1dC5odG1sDQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9wYXN0ZS1tdWx0aWxpbmUtdGV4dC1pbnB1dC5odG1sCShyZXZpc2lv
biAwKQ0KKysrIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvcGFzdGUtbXVsdGlsaW5lLXRleHQtaW5w
dXQuaHRtbAkocmV2aXNpb24gMCkNCkBAIC0wLDAgKzEsODAgQEANCis8aHRtbD4gDQorICA8aGVh
ZD4gDQorICAgIDxzY3JpcHQ+IA0KKwlpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQ0K
KyAgICAJCXdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7DQorDQorICAg
ICAgZnVuY3Rpb24gZ2V0SW5wdXQoKSB7DQorICAgICAgICByZXR1cm4gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2lucHV0SWQnKTsNCisgICAgICB9DQorDQorCQ0KKyAgICAgIHZhciBERUZBVUxU
X0xJTkVfMSA9ICJsaW5lXHQoMSBvZiAyKVxyXG5saW5lXHQoMiBvZiAyKSI7DQorICAgICAgdmFy
IEVYUEVDVEVEX0xJTkVfMSA9ICJsaW5lXHQoMSBvZiAyKSBsaW5lXHQoMiBvZiAyKSI7DQorDQor
CXZhciBERUZBVUxUX0xJTkVfMiA9ICJudWxsXDBjaGFyIjsNCisJdmFyIEVYUEVDVEVEX0xJTkVf
MiA9ICJudWxsIjsNCisgDQorCXZhciBURVNUX05BTUVfMSA9ICJNdWx0aS1saW5lIHRlc3QiOw0K
Kwl2YXIgVEVTVF9OQU1FXzIgPSAiTnVsbCBjaGFyIHRlc3QiOw0KKw0KKyAgICAgIGZ1bmN0aW9u
IHRlc3RNdWx0aWxpbmUoKSB7DQorCSAgbG9nKFRFU1RfTkFNRV8xICsgIjoiKTsNCisJICB0ZXN0
SW5wdXRGaWVsZChERUZBVUxUX0xJTkVfMSwgRVhQRUNURURfTElORV8xKTsNCisNCisJICBsb2co
VEVTVF9OQU1FXzIgKyAiOiIpOw0KKwkgIHRlc3RJbnB1dEZpZWxkKERFRkFVTFRfTElORV8yLCBF
WFBFQ1RFRF9MSU5FXzIpOw0KKwl9DQorIA0KKwlmdW5jdGlvbiB0ZXN0SW5wdXRGaWVsZChpbnB1
dF92YWx1ZSwgZXhwZWN0ZWQpIHsNCisgICAgICAgIGdldElucHV0KCkudmFsdWUgPSBpbnB1dF92
YWx1ZTsNCisgICAgICAgIHZhciBzdHIgPSBqc0VzY2FwZShnZXRJbnB1dCgpLnZhbHVlKTsNCisg
CSAgaWYoc3RyID09IGpzRXNjYXBlKGV4cGVjdGVkKSkNCisJCWxvZygiUEFTUyIpOw0KKwkgIGVs
c2UNCisJCWxvZygiRkFJTDogIiArIHN0cik7DQorCX0NCisNCisJZnVuY3Rpb24gbG9nKHN0cikg
ew0KKyAgICAgICAgdmFyIHZhbHVlRmllbGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29u
c29sZScpOw0KKyAgICAgICAgdmFsdWVGaWVsZC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVU
ZXh0Tm9kZShzdHIpKTsNCisJICB2YWx1ZUZpZWxkLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImJyIikpOw0KKwl9DQorDQorICAgICAgZnVuY3Rpb24ganNFc2NhcGUocykgew0K
KyAgICAgICAgLy8gUGFydGlhbA0KKyAgICAgICAgdmFyIHJlcGxhY2VtZW50cyA9IFsNCisgICAg
ICAgIFsiXHIiLCAiXFxyIl0sDQorICAgICAgICBbIlxuIiwgIlxcbiJdLA0KKyAgICAgICAgWyJc
dCIsICJcXHQiXSwNCisgICAgICAgIFsiXGYiLCAiXFxmIl0sDQorICAgICAgICBbIlx0IiwgIlxc
dCJdLA0KKwkgIFsiXDAiLCAiXFwwIl0NCisgICAgICAgIF07DQorIA0KKyAgICAgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCByZXBsYWNlbWVudHMubGVuZ3RoOyArK2kpIHsNCisgICAgICAgICAgdmFy
IHIgPSByZXBsYWNlbWVudHNbaV07DQorICAgICAgICAgIHMgPSBzLnJlcGxhY2UoclswXSwgclsx
XSk7DQorICAgICAgICB9DQorICAgICAgICByZXR1cm4gczsNCisgICAgICB9DQorICAgIDwvc2Ny
aXB0PiANCisgDQorICAgIDxzdHlsZT4NCisJLnBhc3Mgew0KKwkgIGNvbG9yOiBncmVlbjsNCisJ
fSANCisJLmZhaWwgew0KKwkgIGNvbG9yOiByZWQ7DQorCX0NCisgICAgICAuY29kZSB7DQorICAg
ICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOw0KKyAgICAgIH0NCisgICAgPC9zdHlsZT4gDQor
ICA8L2hlYWQ+IA0KKyAgPGJvZHkgb25sb2FkPSJ0ZXN0TXVsdGlsaW5lKCkiPiANCisgICAgPGgy
PlRlc3Q6IFRoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IHRleHQgaW5wdXRzIHdpbGwgYWNjZXB0IG11
bHRpcGxlIGxpbmVzIG9mIHBhc3RlZCB0ZXh0LiAgWW91IHNob3VsZCBzZWUgdHdvIHRlc3RzICJQ
QVNTIiBiZWxvdy48L2gyPiANCisgICAgPGlucHV0IGlkPWlucHV0SWQgc3R5bGU9InZpc2liaWxp
dHk6IGhpZGRlbjsiIHNpemU9NjAgLz48YnI+DQorICAgIDxzcGFuIGNsYXNzPWNvZGUgaWQ9Y29u
c29sZT48L3NwYW4+DQorICA8L2JvZHk+IA0KKzwvaHRtbD4gDQoNClByb3BlcnR5IGNoYW5nZXMg
b246IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvcGFzdGUtbXVsdGlsaW5lLXRleHQtaW5wdXQuaHRt
bA0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fXw0KQWRkZWQ6IHN2bjpleGVjdXRhYmxlDQogICArICoNCg0K
</data>
<flag name="review"
          id="10383"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>