<?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>8769</bug_id>
          
          <creation_ts>2006-05-07 04:05:26 -0700</creation_ts>
          <short_desc>TextEncoding::fromUnicode() - support non-BMP characters and convert to NFC</short_desc>
          <delta_ts>2006-06-19 13:46:05 -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>WebCore Misc.</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://www.w3.org/TR/charmod-norm</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="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>FrankTang+opendarwin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>41430</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-05-07 04:05:26 -0700</bug_when>
    <thetext>Since the CFString branch seems to stay for a while, here are some improvements to its fromUnicode().

- properly combine surrogate pairs coming from CFString;
- normalize the string to NFC (canonically composed form).

I don&apos;t think any browser actually does the latter, but this is obviously more important on Mac OS X than on Windows. If Mail.app uses this code, this may correct problems with sending files having accented characters in their names to Windows recipients.

form-data-encoding.html has been modified to cover more Latin-1 cases, and another case has been added for UTF-8.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41431</commentid>
    <comment_count>1</comment_count>
      <attachid>8140</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-05-07 04:06:23 -0700</bug_when>
    <thetext>Created attachment 8140
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41446</commentid>
    <comment_count>2</comment_count>
      <attachid>8140</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-05-07 10:39:47 -0700</bug_when>
    <thetext>Comment on attachment 8140
proposed patch

Looks fine.

Using more ICU in cases like this leads to code that I think is more readable. For example:

    - Instead of unsigned int, ICU has the UChar32 type.
    - Instead of (badChar &amp; 0xfc00) == 0xd800, ICU has the U16_IS_LEAD macro.
    - Instead of ((low &amp; 0xfc00) == 0xdc00), ICU has the U16_IS_TRAIL macro.
    - instead of:

+                    badChar &lt;&lt;= 10;
+                    badChar += low;
+                    badChar += 0x10000 - (0xd800 &lt;&lt; 10) - 0xdc00;

    ICU has the U16_GET_SUPPLEMENTARY macro.

There are other advantages to ICU too. One of the worst things about this function is the number of times it copies the string. It&apos;s particularly unfortunate that we create a brand new CGString by calling DeprecatedString::getCFString and then immdiately turn around and call CFStringCreateMutableCopy.

If this function was hot at all, we could take advantage of the unorm_quickCheck call in ICU which will quickly determine if there&apos;s a possibility normalization is needed; in the common case we won&apos;t have to make a copy.

But I suppose we can do some of those sorts of things when we make a non-Mac-specific version of the function.

I suppose that ultimately that&apos;s what I would have liked to see. A non-Macintosh-specific ICU-based version.

r=me on this anyway</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41452</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-05-07 11:01:02 -0700</bug_when>
    <thetext>&gt; But I suppose we can do some of those sorts of things when we make a
&gt; non-Mac-specific version of the function.

Yes, I didn&apos;t want to create an unholy mess of technologies in the Mac-specific code path. The ICU-based fromUnicode() will obviously need to use these ICU macros.

Landed, r14217.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41463</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-05-07 13:57:54 -0700</bug_when>
    <thetext>This has caused fast/parser/entities-in-xhtml.xhtml to fail - turns out &apos;rang&apos; and &apos;lang&apos; entities map to characters that are canonically equivalent to U+3009 and U+3008, respectively. Sorry - this test always fails for me because of font differences :-(.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41464</commentid>
    <comment_count>5</comment_count>
      <attachid>8140</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-05-07 14:02:55 -0700</bug_when>
    <thetext>Comment on attachment 8140
proposed patch

Clearing the review flag, so that this doesn&apos;t show up in the commit queue.

I think the change in test results is OK, but I don&apos;t understand why only the rightmost column has changed - will investigate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41465</commentid>
    <comment_count>6</comment_count>
      <attachid>8154</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-05-07 14:29:49 -0700</bug_when>
    <thetext>Created attachment 8154
update a failing test

I&apos;m suggesting to update the test case to the new results. Since we&apos;re supposed to normalize input to NFC anyway, the change is a slight improvement (also, standard Mac fonts don&apos;t have glyphs for U+2328 or U+2329, but do have glyphs for the equivalents).

OTOH, processing of entities becomes pretty inconsistent now, and that&apos;s ugly. An alternative fix would be to modify getXHTMLEntity() not to do normalization.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41483</commentid>
    <comment_count>7</comment_count>
      <attachid>8154</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-05-07 18:41:47 -0700</bug_when>
    <thetext>Comment on attachment 8154
update a failing test

OK. Seems like there are some loose ends here, but fine to land this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41501</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-05-07 22:41:13 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; OK. Seems like there are some loose ends here, but fine to land this.

I&apos;d really like to see this patch apply the same kind of fix to TextEncoding.cpp, since that&apos;s a cross-platform implementation that will replace the Mac-specific one once we deal with the few encodings that are not supported in ICU.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41508</commentid>
    <comment_count>9</comment_count>
      <attachid>8154</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-05-08 00:09:36 -0700</bug_when>
    <thetext>Comment on attachment 8154
update a failing test

&gt;I&apos;d really like to see this patch apply the same kind of fix to
TextEncoding.cpp

OK. Since this is basically the same bug, and the fix won&apos;t have a separate test case, I&apos;ll attach it here. Landed the test case fix, cleared the review flag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41511</commentid>
    <comment_count>10</comment_count>
      <attachid>8164</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-05-08 01:51:06 -0700</bug_when>
    <thetext>Created attachment 8164
patch for ICU branch

The ICU branch already had non-BMP entities properly supported, but the normalization behavior was even worse - it didn&apos;t try to convert to legacy encodings such as Latin-1 nearly as hard as CFString tries. E.g., decomposed &quot;c with cedilla&quot; was encoded as c followed with an entity for cedilla, even though Latin-1 has a code for this (composed) character.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41529</commentid>
    <comment_count>11</comment_count>
      <attachid>8164</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-05-08 11:59:51 -0700</bug_when>
    <thetext>Comment on attachment 8164
patch for ICU branch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>46302</commentid>
    <comment_count>12</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-06-19 13:45:38 -0700</bug_when>
    <thetext>*** Bug 9483 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>46304</commentid>
    <comment_count>13</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-06-19 13:46:05 -0700</bug_when>
    <thetext>*** Bug 9482 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>8140</attachid>
            <date>2006-05-07 04:06:23 -0700</date>
            <delta_ts>2006-05-07 14:02:55 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>NFC_patch.txt</filename>
            <type>text/plain</type>
            <size>6625</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybS1kYXRhLWVuY29kaW5nLTItZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybS1kYXRhLWVu
Y29kaW5nLTItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9mb3JtLWRhdGEtZW5jb2RpbmctMi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsNCBAQAorCitTdWNjZXNzCisKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9m
b3JtLWRhdGEtZW5jb2RpbmctMi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvZm9ybS1kYXRhLWVuY29kaW5nLTIuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL2Zhc3QvZm9ybXMvZm9ybS1kYXRhLWVuY29kaW5nLTIuaHRtbAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwzOCBAQAorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQt
dHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4KKzx0aXRsZT5DaGFyc2V0
cyBhbmQgc3VibWl0dGluZyBmb3JtczwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxmb3JtIGFj
dGlvbj0iPyIgbmFtZT1mPgorIDxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPXEgdmFsdWU9IiYjMTEw
NTsmIzY2NTYwOyYjMTE5MDgzO8OnYyI+PGJyPgorPC9mb3JtPgorPHNjcmlwdD4KK2lmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworfQor
CitpZiAoZG9jdW1lbnQuVVJMLnN1YnN0cmluZygwLCA0KSA9PSAiZmlsZSIpIHsKKworICAgIGlm
IChkb2N1bWVudC5VUkwuaW5kZXhPZignPycpID09IC0xKSB7CisgICAgICAgIGRvY3VtZW50LmYu
cS52YWx1ZSArPSAiXHUwMzI3IjsgLy8gY2VkaWxsYSBmb3IgJ2MnCisgICAgICAgIGRvY3VtZW50
LmYuc3VibWl0KCk7CisKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAodW5lc2NhcGUoZG9jdW1l
bnQuVVJMLnN1YnN0cmluZyhkb2N1bWVudC5VUkwuaW5kZXhPZignPycpKzEsIGRvY3VtZW50LlVS
TC5sZW5ndGgpKSA9PSB1bmVzY2FwZSgicT0lRDElOTElRjAlOTAlOTAlODAlRjAlOUQlODQlQUIl
QzMlQTclQzMlQTciKSkKKyAgICAgICAgICAgIGRvY3VtZW50LndyaXRlKCI8cD5TdWNjZXNzPC9w
PiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBkb2N1bWVudC53cml0ZSgiPHA+RmFpbHVy
ZTwvcD4iKTsKKyAgICAgICAgCisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAg
fQorCit9IGVsc2UgeworCisgICAgZG9jdW1lbnQud3JpdGUoIjxwPlRoaXMgdGVzdCBkb2Vzbid0
IHdvcmsgZGlyZWN0bHkgZnJvbSBidWd6aWxsYSwgcGxlYXNlIHNhdmUgaXQgdG8gYSBsb2NhbCBm
aWxlIGZpcnN0LjwvcD4iKTsKK30KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvZm9ybS1k
YXRhLWVuY29kaW5nLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9m
b3JtLWRhdGEtZW5jb2RpbmcuaHRtbAkocmV2aXNpb24gMTQyMTYpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL2Zvcm0tZGF0YS1lbmNvZGluZy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC01LDM0
ICs1LDMzIEBACiA8L2hlYWQ+CiA8Ym9keT4KIDxmb3JtIGFjdGlvbj0iPyIgbmFtZT1mPgotIDxp
bnB1dCB0eXBlPWhpZGRlbiBuYW1lPXEgdmFsdWU9IiYjMTA5MDsmIzEwNzc7JiMxMDg5OyYjMTA5
MDsiPjxicj4KKyA8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1xIHZhbHVlPSImIzExMDU7JiM2NjU2
MDsmIzExOTA4MzvnYyI+PGJyPgogPC9mb3JtPgogPHNjcmlwdD4KIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIHsKLQlsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0J
bGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxE
b25lKCk7CiB9CiAKIGlmIChkb2N1bWVudC5VUkwuc3Vic3RyaW5nKDAsIDQpID09ICJmaWxlIikg
ewogCi0JaWYgKGRvY3VtZW50LlVSTC5pbmRleE9mKCc/JykgPT0gLTEpIHsKLQotCQlkb2N1bWVu
dC5mLnN1Ym1pdCgpOwotCi0JfSBlbHNlIHsKLQkJCi0JCWlmICh1bmVzY2FwZShkb2N1bWVudC5V
Ukwuc3Vic3RyaW5nKGRvY3VtZW50LlVSTC5pbmRleE9mKCc/JykrMSwgZG9jdW1lbnQuVVJMLmxl
bmd0aCkpID09IHVuZXNjYXBlKCJxPSUyNiUyMzEwOTAlM0IlMjYlMjMxMDc3JTNCJTI2JTIzMTA4
OSUzQiUyNiUyMzEwOTAlM0IiKSkKLQkJCWRvY3VtZW50LndyaXRlKCI8cD5TdWNjZXNzPC9wPiIp
OwotCQllbHNlCi0JCQlkb2N1bWVudC53cml0ZSgiPHA+RmFpbHVyZTwvcD4iKTsKLQkJCi0JCWlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0JCQlsYXlvdXRUZXN0Q29udHJvbGxlci5u
b3RpZnlEb25lKCk7Ci0JfQorICAgIGlmIChkb2N1bWVudC5VUkwuaW5kZXhPZignPycpID09IC0x
KSB7CisgICAgICAgIGRvY3VtZW50LmYucS52YWx1ZSArPSAiXHUwMzI3IjsgLy8gY2VkaWxsYSBm
b3IgJ2MnCisgICAgICAgIGRvY3VtZW50LmYuc3VibWl0KCk7CisKKyAgICB9IGVsc2UgeworICAg
ICAgICBpZiAodW5lc2NhcGUoZG9jdW1lbnQuVVJMLnN1YnN0cmluZyhkb2N1bWVudC5VUkwuaW5k
ZXhPZignPycpKzEsIGRvY3VtZW50LlVSTC5sZW5ndGgpKSA9PSB1bmVzY2FwZSgicT0lMjYlMjMx
MTA1JTNCJTI2JTIzNjY1NjAlM0IlMjYlMjMxMTkwODMlM0IlRTclRTciKSkKKyAgICAgICAgICAg
IGRvY3VtZW50LndyaXRlKCI8cD5TdWNjZXNzPC9wPiIpOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICBkb2N1bWVudC53cml0ZSgiPHA+RmFpbHVyZTwvcD4iKTsKKyAgICAgICAgCisgICAgICAg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfQogCiB9IGVsc2UgewogCi0JZG9jdW1lbnQu
d3JpdGUoIjxwPlRoaXMgdGVzdCBkb2Vzbid0IHdvcmsgZGlyZWN0bHkgZnJvbSBidWd6aWxsYSwg
cGxlYXNlIHNhdmUgaXQgdG8gYSBsb2NhbCBmaWxlIGZpcnN0LjwvcD4iKTsKKyAgICBkb2N1bWVu
dC53cml0ZSgiPHA+VGhpcyB0ZXN0IGRvZXNuJ3Qgd29yayBkaXJlY3RseSBmcm9tIGJ1Z3ppbGxh
LCBwbGVhc2Ugc2F2ZSBpdCB0byBhIGxvY2FsIGZpbGUgZmlyc3QuPC9wPiIpOwogfQogPC9zY3Jp
cHQ+CiA8L2JvZHk+CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL21hYy9UZXh0RW5jb2RpbmdNYWMu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbWFjL1RleHRFbmNvZGluZ01hYy5j
cHAJKHJldmlzaW9uIDE0MjE2KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGV4dEVuY29kaW5n
TWFjLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTMsMzUgKzUzLDQ3IEBAIERlcHJlY2F0ZWRDU3Ry
aW5nIFRleHRFbmNvZGluZzo6ZnJvbVVuaWMKICAgICBEZXByZWNhdGVkU3RyaW5nIGNvcHkgPSBx
Y3M7CiAgICAgY29weS5yZXBsYWNlKFFDaGFyKCdcXCcpLCBiYWNrc2xhc2hBc0N1cnJlbmN5U3lt
Ym9sKCkpOwogICAgIENGU3RyaW5nUmVmIGNmcyA9IGNvcHkuZ2V0Q0ZTdHJpbmcoKTsKKyAgICBD
Rk11dGFibGVTdHJpbmdSZWYgY2ZtcyA9IENGU3RyaW5nQ3JlYXRlTXV0YWJsZUNvcHkoMCwgMCwg
Y2ZzKTsgLy8gaW4gcmFyZSBjYXNlcywgbm9ybWFsaXphdGlvbiBjYW4gbWFrZSB0aGUgc3RyaW5n
IGxvbmdlciwgdGh1cyBubyBsaW1pdCBvbiBpdHMgbGVuZ3RoCisgICAgQ0ZTdHJpbmdOb3JtYWxp
emUoY2Ztcywga0NGU3RyaW5nTm9ybWFsaXphdGlvbkZvcm1DKTsKICAgICAKICAgICBDRkluZGV4
IHN0YXJ0UG9zID0gMDsKLSAgICBDRkluZGV4IGNoYXJhY3RlcnNMZWZ0ID0gQ0ZTdHJpbmdHZXRM
ZW5ndGgoY2ZzKTsKLSAgICBEZXByZWNhdGVkQ1N0cmluZyByZXN1bHQoMSk7IC8vIGZvciB0cmFp
bG5nIHplcm8KKyAgICBDRkluZGV4IGNoYXJhY3RlcnNMZWZ0ID0gQ0ZTdHJpbmdHZXRMZW5ndGgo
Y2Ztcyk7CisgICAgRGVwcmVjYXRlZENTdHJpbmcgcmVzdWx0KDEpOyAvLyBmb3IgdHJhaWxpbmcg
emVybwogCiAgICAgd2hpbGUgKGNoYXJhY3RlcnNMZWZ0ID4gMCkgewogICAgICAgICBDRlJhbmdl
IHJhbmdlID0gQ0ZSYW5nZU1ha2Uoc3RhcnRQb3MsIGNoYXJhY3RlcnNMZWZ0KTsKICAgICAgICAg
Q0ZJbmRleCBidWZmZXJMZW5ndGg7Ci0gICAgICAgIENGU3RyaW5nR2V0Qnl0ZXMoY2ZzLCByYW5n
ZSwgZW5jb2RpbmcsIGFsbG93RW50aXRpZXMgPyAwIDogJz8nLCBmYWxzZSwgTlVMTCwgMHg3RkZG
RkZGRiwgJmJ1ZmZlckxlbmd0aCk7CisgICAgICAgIENGU3RyaW5nR2V0Qnl0ZXMoY2ZtcywgcmFu
Z2UsIGVuY29kaW5nLCBhbGxvd0VudGl0aWVzID8gMCA6ICc/JywgZmFsc2UsIE5VTEwsIDB4N0ZG
RkZGRkYsICZidWZmZXJMZW5ndGgpOwogICAgICAgICAKICAgICAgICAgRGVwcmVjYXRlZENTdHJp
bmcgY2h1bmsoYnVmZmVyTGVuZ3RoICsgMSk7CiAgICAgICAgIHVuc2lnbmVkIGNoYXIgKmJ1ZmZl
ciA9IHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQgY2hhciAqPihjaHVuay5kYXRhKCkpOwotICAg
ICAgICBDRkluZGV4IGNoYXJhY3RlcnNDb252ZXJ0ZWQgPSBDRlN0cmluZ0dldEJ5dGVzKGNmcywg
cmFuZ2UsIGVuY29kaW5nLCBhbGxvd0VudGl0aWVzID8gMCA6ICc/JywgZmFsc2UsIGJ1ZmZlciwg
YnVmZmVyTGVuZ3RoLCAmYnVmZmVyTGVuZ3RoKTsKKyAgICAgICAgQ0ZJbmRleCBjaGFyYWN0ZXJz
Q29udmVydGVkID0gQ0ZTdHJpbmdHZXRCeXRlcyhjZm1zLCByYW5nZSwgZW5jb2RpbmcsIGFsbG93
RW50aXRpZXMgPyAwIDogJz8nLCBmYWxzZSwgYnVmZmVyLCBidWZmZXJMZW5ndGgsICZidWZmZXJM
ZW5ndGgpOwogICAgICAgICBidWZmZXJbYnVmZmVyTGVuZ3RoXSA9IDA7CiAgICAgICAgIHJlc3Vs
dC5hcHBlbmQoY2h1bmspOwogICAgICAgICAKICAgICAgICAgaWYgKGNoYXJhY3RlcnNDb252ZXJ0
ZWQgIT0gY2hhcmFjdGVyc0xlZnQpIHsKLSAgICAgICAgICAgIC8vIEZJWE1FOiBzdXBwb3J0IHN1
cnJvZ2F0ZSBwYWlycwotICAgICAgICAgICAgVW5pQ2hhciBiYWRDaGFyID0gQ0ZTdHJpbmdHZXRD
aGFyYWN0ZXJBdEluZGV4KGNmcywgc3RhcnRQb3MgKyBjaGFyYWN0ZXJzQ29udmVydGVkKTsKKyAg
ICAgICAgICAgIHVuc2lnbmVkIGludCBiYWRDaGFyID0gQ0ZTdHJpbmdHZXRDaGFyYWN0ZXJBdElu
ZGV4KGNmbXMsIHN0YXJ0UG9zICsgY2hhcmFjdGVyc0NvbnZlcnRlZCk7CisgICAgICAgICAgICAr
K2NoYXJhY3RlcnNDb252ZXJ0ZWQ7CisKKyAgICAgICAgICAgIGlmICgoYmFkQ2hhciAmIDB4ZmMw
MCkgPT0gMHhkODAwICYmICAgICAvLyBpcyBoaWdoIHN1cnJvZ2F0ZQorICAgICAgICAgICAgICAg
ICAgY2hhcmFjdGVyc0NvbnZlcnRlZCAhPSBjaGFyYWN0ZXJzTGVmdCkgeworICAgICAgICAgICAg
ICAgIFVuaUNoYXIgbG93ID0gQ0ZTdHJpbmdHZXRDaGFyYWN0ZXJBdEluZGV4KGNmbXMsIHN0YXJ0
UG9zICsgY2hhcmFjdGVyc0NvbnZlcnRlZCk7CisgICAgICAgICAgICAgICAgaWYgKChsb3cgJiAw
eGZjMDApID09IDB4ZGMwMCkgeyAgICAgLy8gaXMgbG93IHN1cnJvZ2F0ZQorICAgICAgICAgICAg
ICAgICAgICBiYWRDaGFyIDw8PSAxMDsKKyAgICAgICAgICAgICAgICAgICAgYmFkQ2hhciArPSBs
b3c7CisgICAgICAgICAgICAgICAgICAgIGJhZENoYXIgKz0gMHgxMDAwMCAtICgweGQ4MDAgPDwg
MTApIC0gMHhkYzAwOworICAgICAgICAgICAgICAgICAgICArK2NoYXJhY3RlcnNDb252ZXJ0ZWQ7
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQogICAgICAgICAgICAgY2hhciBidWZb
MTZdOwogICAgICAgICAgICAgc3ByaW50ZihidWYsICImIyV1OyIsIGJhZENoYXIpOwogICAgICAg
ICAgICAgcmVzdWx0LmFwcGVuZChidWYpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICArK2No
YXJhY3RlcnNDb252ZXJ0ZWQ7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIHN0YXJ0UG9z
ICs9IGNoYXJhY3RlcnNDb252ZXJ0ZWQ7CiAgICAgICAgIGNoYXJhY3RlcnNMZWZ0IC09IGNoYXJh
Y3RlcnNDb252ZXJ0ZWQ7CiAgICAgfQorICAgIENGUmVsZWFzZShjZm1zKTsKICAgICByZXR1cm4g
cmVzdWx0OwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>8154</attachid>
            <date>2006-05-07 14:29:49 -0700</date>
            <delta_ts>2006-05-08 00:09:36 -0700</delta_ts>
            <desc>update a failing test</desc>
            <filename>8769_results.txt</filename>
            <type>text/plain</type>
            <size>2127</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvcGFyc2VyL2VudGl0aWVzLWluLXhodG1sLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3BhcnNlci9lbnRpdGllcy1pbi14
aHRtbC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE0MjE4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9w
YXJzZXIvZW50aXRpZXMtaW4teGh0bWwtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC00
Nzg4LDggKzQ3ODgsOCBAQCBsYXllciBhdCAoMCwwKSBzaXplIDc4NXg2NTE5CiAgICAgICAgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMiwyKSBzaXplIDEyeDE4CiAgICAgICAgICAgICAg
ICAgdGV4dCBydW4gYXQgKDIsMikgd2lkdGggMTI6ICJceHsyMzI5fSIKICAgICAgICAgICAgIFJl
bmRlclRhYmxlQ2VsbCB7dGR9IGF0ICgzNjEsMjgxMCkgc2l6ZSA2MHgyMiBbYm9yZGVyOiAoMXB4
IGluc2V0ICM4MDgwODApXSBbcj0xMTcgYz01IHJzPTEgY3M9MV0KLSAgICAgICAgICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICgyLDIpIHNpemUgMTJ4MTgKLSAgICAgICAgICAgICAgICB0ZXh0
IHJ1biBhdCAoMiwyKSB3aWR0aCAxMjogIlx4ezIzMjl9IgorICAgICAgICAgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDIsMikgc2l6ZSA1eDE4CisgICAgICAgICAgICAgICAgdGV4dCBydW4g
YXQgKDIsMikgd2lkdGggNTogIlx4ezMwMDh9IgogICAgICAgICAgIFJlbmRlclRhYmxlUm93IHt0
cn0gYXQgKDAsMjgzNCkgc2l6ZSA0MjN4MjIKICAgICAgICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7
dGR9IGF0ICgyLDI4MzQpIHNpemUgNTZ4MjIgW2JvcmRlcjogKDFweCBpbnNldCAjODA4MDgwKV0g
W3I9MTE4IGM9MCBycz0xIGNzPTFdCiAgICAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMiwyKSBzaXplIDMyeDE4CkBAIC00ODA3LDggKzQ4MDcsOCBAQCBsYXllciBhdCAoMCwwKSBz
aXplIDc4NXg2NTE5CiAgICAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMiwyKSBz
aXplIDEyeDE4CiAgICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDIsMikgd2lkdGggMTI6ICJc
eHsyMzJBfSIKICAgICAgICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7dGR9IGF0ICgzNjEsMjgzNCkg
c2l6ZSA2MHgyMiBbYm9yZGVyOiAoMXB4IGluc2V0ICM4MDgwODApXSBbcj0xMTggYz01IHJzPTEg
Y3M9MV0KLSAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgyLDIpIHNpemUgMTJ4
MTgKLSAgICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMiwyKSB3aWR0aCAxMjogIlx4ezIzMkF9
IgorICAgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDIsMikgc2l6ZSA1eDE4Cisg
ICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDIsMikgd2lkdGggNTogIlx4ezMwMDl9IgogICAg
ICAgICAgIFJlbmRlclRhYmxlUm93IHt0cn0gYXQgKDAsMjg1OCkgc2l6ZSA0MjN4MjIKICAgICAg
ICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7dGR9IGF0ICgyLDI4NTgpIHNpemUgNTZ4MjIgW2JvcmRl
cjogKDFweCBpbnNldCAjODA4MDgwKV0gW3I9MTE5IGM9MCBycz0xIGNzPTFdCiAgICAgICAgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMiwyKSBzaXplIDMyeDE4CkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L3BhcnNlci9lbnRpdGllcy1pbi14aHRtbC1leHBlY3RlZC5jaGVja3N1bQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3BhcnNlci9lbnRpdGllcy1pbi14aHRtbC1leHBl
Y3RlZC5jaGVja3N1bQkocmV2aXNpb24gMTQyMTgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3BhcnNl
ci9lbnRpdGllcy1pbi14aHRtbC1leHBlY3RlZC5jaGVja3N1bQkod29ya2luZyBjb3B5KQpAQCAt
MSArMSBAQAotYzI5NGI4MDYzYTYwMGZiNjdlMGY5OTYxMDI5NWRkY2IKXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCis3OWNmNjEyOTEyY2IyOWUwZjRiZmU1NDNjZmFiZTQxNQpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>8164</attachid>
            <date>2006-05-08 01:51:06 -0700</date>
            <delta_ts>2006-05-08 11:59:51 -0700</delta_ts>
            <desc>patch for ICU branch</desc>
            <filename>8769icu_patch.txt</filename>
            <type>text/plain</type>
            <size>2114</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vVGV4dEVuY29kaW5nLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BsYXRmb3JtL1RleHRFbmNvZGluZy5jcHAJKHJldmlzaW9uIDE0MjI1KQorKysgV2Vi
Q29yZS9wbGF0Zm9ybS9UZXh0RW5jb2RpbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICsz
MCw3IEBACiAjaW5jbHVkZSA8a3htbGNvcmUvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPGt4bWxj
b3JlL0hhc2hTZXQuaD4KICNpbmNsdWRlICJTdHJlYW1pbmdUZXh0RGVjb2Rlci5oIgorI2luY2x1
ZGUgPHVuaWNvZGUvdW5vcm0uaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xNDMsNyAr
MTQ0LDIyIEBAIERlcHJlY2F0ZWRDU3RyaW5nIFRleHRFbmNvZGluZzo6ZnJvbVVuaWMKICAgICBj
b25zdCBVQ2hhciogc291cmNlID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBVQ2hhcio+KGNvcHku
dW5pY29kZSgpKTsKICAgICBjb25zdCBVQ2hhciogc291cmNlTGltaXQgPSBzb3VyY2UgKyBjb3B5
Lmxlbmd0aCgpOwogCi0gICAgRGVwcmVjYXRlZENTdHJpbmcgcmVzdWx0KDEpOyAvLyBmb3IgdHJh
aWxuZyB6ZXJvCisgICAgRGVwcmVjYXRlZFN0cmluZyBub3JtYWxpemVkU3RyaW5nOworICAgIGlm
IChVTk9STV9ZRVMgIT0gdW5vcm1fcXVpY2tDaGVjayhzb3VyY2UsIGNvcHkubGVuZ3RoKCksIFVO
T1JNX05GQywgJmVycikpIHsKKyAgICAgICAgbm9ybWFsaXplZFN0cmluZy50cnVuY2F0ZShjb3B5
Lmxlbmd0aCgpKTsgLy8gbm9ybWFsaXphdGlvbiB0byBORkMgcmFyZWx5IGluY3JlYXNlcyB0aGUg
bGVuZ3RoLCBzbyB0aGlzIGZpcnN0IGF0dGVtcHQgd2lsbCB1c3VhbGx5IHN1Y2NlZWQKKyAgICAg
ICAgCisgICAgICAgIGludDMyX3Qgbm9ybWFsaXplZExlbmd0aCA9IHVub3JtX25vcm1hbGl6ZShz
b3VyY2UsIGNvcHkubGVuZ3RoKCksIFVOT1JNX05GQywgMCwgcmVpbnRlcnByZXRfY2FzdDxVQ2hh
cio+KGNvbnN0X2Nhc3Q8UUNoYXIqPihub3JtYWxpemVkU3RyaW5nLnVuaWNvZGUoKSkpLCBjb3B5
Lmxlbmd0aCgpLCAmZXJyKTsKKyAgICAgICAgaWYgKGVyciA9PSBVX0JVRkZFUl9PVkVSRkxPV19F
UlJPUikgeworICAgICAgICAgICAgZXJyID0gVV9aRVJPX0VSUk9SOworICAgICAgICAgICAgbm9y
bWFsaXplZFN0cmluZy50cnVuY2F0ZShub3JtYWxpemVkTGVuZ3RoKTsKKyAgICAgICAgICAgIG5v
cm1hbGl6ZWRMZW5ndGggPSB1bm9ybV9ub3JtYWxpemUoc291cmNlLCBjb3B5Lmxlbmd0aCgpLCBV
Tk9STV9ORkMsIDAsIHJlaW50ZXJwcmV0X2Nhc3Q8VUNoYXIqPihjb25zdF9jYXN0PFFDaGFyKj4o
bm9ybWFsaXplZFN0cmluZy51bmljb2RlKCkpKSwgbm9ybWFsaXplZExlbmd0aCwgJmVycik7Cisg
ICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHNvdXJjZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29u
c3QgVUNoYXIqPihub3JtYWxpemVkU3RyaW5nLnVuaWNvZGUoKSk7CisgICAgICAgIHNvdXJjZUxp
bWl0ID0gc291cmNlICsgbm9ybWFsaXplZExlbmd0aDsKKyAgICB9CisKKyAgICBEZXByZWNhdGVk
Q1N0cmluZyByZXN1bHQoMSk7IC8vIGZvciB0cmFpbGluZyB6ZXJvCiAKICAgICBpZiAoYWxsb3dF
bnRpdGllcykKICAgICAgICAgdWNudl9zZXRGcm9tVUNhbGxCYWNrKGNvbnYsIFVDTlZfRlJPTV9V
X0NBTExCQUNLX0VTQ0FQRSwgVUNOVl9FU0NBUEVfWE1MX0RFQywgMCwgMCwgJmVycik7CkBAIC0x
NTIsNiArMTY4LDEwIEBAIERlcHJlY2F0ZWRDU3RyaW5nIFRleHRFbmNvZGluZzo6ZnJvbVVuaWMK
ICAgICAgICAgdWNudl9zZXRGcm9tVUNhbGxCYWNrKGNvbnYsIFVDTlZfRlJPTV9VX0NBTExCQUNL
X1NVQlNUSVRVVEUsIDAsIDAsIDAsICZlcnIpOwogICAgIH0KIAorICAgIEFTU0VSVChVX1NVQ0NF
U1MoZXJyKSk7CisgICAgaWYgKFVfRkFJTFVSRShlcnIpKQorICAgICAgICByZXR1cm4gRGVwcmVj
YXRlZENTdHJpbmcoKTsKKwogICAgIGRvIHsKICAgICAgICAgY2hhciogdGFyZ2V0ID0gYnVmZmVy
OwogICAgICAgICBjaGFyKiB0YXJnZXRMaW1pdCA9IHRhcmdldCArIENvbnZlcnNpb25CdWZmZXJT
aXplOwo=
</data>
<flag name="review"
          id="2269"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>