<?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>5303</bug_id>
          
          <creation_ts>2005-10-09 02:45:03 -0700</creation_ts>
          <short_desc>TextInputController should support attributed strings</short_desc>
          <delta_ts>2005-10-28 12:44:08 -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>Tools / Tests</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>VERIFIED</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="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>evan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>21605</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2005-10-09 02:45:03 -0700</bug_when>
    <thetext> </thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>21606</commentid>
    <comment_count>1</comment_count>
      <attachid>4264</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2005-10-09 02:45:28 -0700</bug_when>
    <thetext>Created attachment 4264
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>22055</commentid>
    <comment_count>2</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2005-10-13 23:26:35 -0700</bug_when>
    <thetext>It would be preferrable to document.write() the various test outputs instead of alert()ing them, because 
alert can have timing issues in webkit tests sometimes, and lead to tests that periodically fail. r- for that, 
but the substance of the patch is fine I suppose. Woudl be better if we actually had any support for 
attributedSubstringInRange: in WebHTMLView.


</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>22098</commentid>
    <comment_count>3</comment_count>
      <attachid>4362</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2005-10-14 13:10:42 -0700</bug_when>
    <thetext>Created attachment 4362
Patch with a corrected test case

Yes, implementing [WebHTMLView attributedSubstringInRange] is a work in
progress (bug 4680), and I expect that having such a testing facility will help
to move it forward...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>22203</commentid>
    <comment_count>4</comment_count>
      <attachid>4362</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2005-10-18 00:46:28 -0700</bug_when>
    <thetext>Comment on attachment 4362
Patch with a corrected test case

r=me</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>4264</attachid>
            <date>2005-10-09 02:45:28 -0700</date>
            <delta_ts>2005-10-14 13:10:42 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>AttrStringsPatch.txt</filename>
            <type>text/plain</type>
            <size>10645</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IGF0dHJpYnV0ZWQtc3RyaW5ncy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpkaWZmIC1O
cHUgYXR0cmlidXRlZC1zdHJpbmdzLWV4cGVjdGVkLnR4dAotLS0gYXR0cmlidXRlZC1zdHJpbmdz
LWV4cGVjdGVkLnR4dAkxIEphbiAxOTcwIDAwOjAwOjAwIC0wMDAwCisrKyBhdHRyaWJ1dGVkLXN0
cmluZ3MtZXhwZWN0ZWQudHh0CTkgT2N0IDIwMDUgMDk6Mzg6MzEgLTAwMDAKQEAgLTAsMCArMSwy
OCBAQAorQUxFUlQ6IHRlc3R7fQorQUxFUlQ6IDQKK0FMRVJUOiB0ZXN0CitBTEVSVDogdGV7Cisg
ICAgTlNGb250ID0gIk1vbmFjbyAxMi4wMCBwdC4gUCBbXSAoMHgwNzkxYTAxMCkgZm9iaj0weDA3
OTFhNzgwLCBzcGM9Ny4yMCI7IAorICAgIE5TRm9yZWdyb3VuZENvbG9yID0gTlNEZXZpY2VSR0JD
b2xvclNwYWNlIDEgMC41IDEgMC41OyAKKyAgICBOU09ibGlxdWVuZXNzID0gMC41OyAKKyAgICBO
U1Rvb2xUaXAgPSAiVG9vbCBUaXAiOyAKK31zdHsKKyAgICBOU0ZvbnQgPSAiTW9uYWNvIDE0LjAw
IHB0LiBQIFtdICgweDA3OTE5MTEwKSBmb2JqPTB4MDc5OGY5NTAsIHNwYz04LjQwIjsgCisgICAg
TlNGb3JlZ3JvdW5kQ29sb3IgPSBOU0RldmljZVJHQkNvbG9yU3BhY2UgMSAxIDEgMC41OyAKKyAg
ICBOU1Rvb2xUaXAgPSAiVG9vbCBUaXAiOyAKK30KK0FMRVJUOiA0CitBTEVSVDogdGVzdAorQUxF
UlQ6IE5TRm9yZWdyb3VuZENvbG9yLE5TVG9vbFRpcCxOU0ZvbnQsTlNPYmxpcXVlbmVzcworQUxF
UlQ6IE5TVG9vbFRpcCxOU0ZvcmVncm91bmRDb2xvcixOU0ZvbnQKK0FMRVJUOiAwLjUKK0FMRVJU
OiB1bmRlZmluZWQKK0FMRVJUOiB1bmRlZmluZWQKK0FMRVJUOiBOU0RldmljZVJHQkNvbG9yU3Bh
Y2UgMSAwLjUgMSAwLjUKK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9N
UmFuZ2U6KG51bGwpIHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAwIG9mICN0ZXh0ID4gRElWID4gQk9E
WSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gNyBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4g
I2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2Vs
ZWN0aW5nOkZBTFNFCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9u
OldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6
IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlm
aWNhdGlvbgorRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZToo
bnVsbCkgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDAgb2YgRElWID4gQk9EWSA+IEhUTUwgPiAjZG9j
dW1lbnQgdG8gMCBvZiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1Nl
bGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBE
RUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0
aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZp
ZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24KKwpJbmRleDogYXR0cmlidXRlZC1zdHJpbmdzLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQpkaWZmIC1OcHUgYXR0cmlidXRlZC1zdHJpbmdzLmh0bWwKLS0tIGF0dHJpYnV0
ZWQtc3RyaW5ncy5odG1sCTEgSmFuIDE5NzAgMDA6MDA6MDAgLTAwMDAKKysrIGF0dHJpYnV0ZWQt
c3RyaW5ncy5odG1sCTkgT2N0IDIwMDUgMDk6MTE6MjUgLTAwMDAKQEAgLTAsMCArMSw1NyBAQAor
PGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2JvZHkgeyBtYXJnaW46IDA7IHBhZGRpbmc6IDAgfQor
PC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBjb250ZW50ZWRpdGFibGUgbmFtZT1jZT5G
QUlMVVJFPC9kaXY+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisKKwlpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisJCQorCQl0cnkgeworCQkKKwkJCWxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKwkJCisJCQl2YXIgc3Vic3RyID0gdGV4dElucHV0
Q29udHJvbGxlci5hdHRyaWJ1dGVkU3Vic3RyaW5nRnJvbVJhbmdlKDAsIDIpOworLy8JCQlhbGVy
dChzdWJzdHIpOyAtLSBhdHRyaWJ1dGVkU3Vic3RyaW5nRnJvbVJhbmdlIGlzIG5vdCBpbXBsZW1l
bnRlZCBpbiBXZWJLaXQgeWV0CisJCisJCQl2YXIgYXR0clN0cmluZyA9IHRleHRJbnB1dENvbnRy
b2xsZXIubWFrZUF0dHJpYnV0ZWRTdHJpbmcoInRlc3QiKTsKKwkJCWFsZXJ0KGF0dHJTdHJpbmcp
OworCQkJYWxlcnQoYXR0clN0cmluZy5sZW5ndGgoKSk7CisJCQlhbGVydChhdHRyU3RyaW5nLnN0
cmluZygpKTsKKworCQkJYXR0clN0cmluZy5hZGRBdHRyaWJ1dGUoIk5TVG9vbFRpcCIsICJUb29s
IFRpcCIpOworCQkJYXR0clN0cmluZy5hZGRGb250QXR0cmlidXRlKCJOU0ZvbnQiLCAiTW9uYWNv
IiwgMTQpOworCQkJYXR0clN0cmluZy5hZGRDb2xvckF0dHJpYnV0ZSgiTlNGb3JlZ3JvdW5kQ29s
b3IiLCAxLCAxLCAxLCAwLjUpOworCisJCQlhdHRyU3RyaW5nLmFkZEZvbnRBdHRyaWJ1dGVGb3JS
YW5nZSgiTlNGb250IiwgIk1vbmFjbyIsIDEyLCAwLCAyKTsKKwkJCWF0dHJTdHJpbmcuYWRkQ29s
b3JBdHRyaWJ1dGVGb3JSYW5nZSgiTlNGb3JlZ3JvdW5kQ29sb3IiLCAxLCAwLjUsIDEsIDAuNSwg
MCwgMik7CisJCQlhdHRyU3RyaW5nLmFkZEF0dHJpYnV0ZUZvclJhbmdlKCJOU09ibGlxdWVuZXNz
IiwgMC41LCAwLCAyKTsKKworCQkJYWxlcnQoYXR0clN0cmluZyk7CisJCQlhbGVydChhdHRyU3Ry
aW5nLmxlbmd0aCgpKTsKKwkJCWFsZXJ0KGF0dHJTdHJpbmcuc3RyaW5nKCkpOworCQkJCisJCQlh
bGVydChhdHRyU3RyaW5nLmdldEF0dHJpYnV0ZU5hbWVzQXRJbmRleCgwKSk7CisJCQlhbGVydChh
dHRyU3RyaW5nLmdldEF0dHJpYnV0ZU5hbWVzQXRJbmRleCgzKSk7CisKKwkJCWFsZXJ0KGF0dHJT
dHJpbmcuZ2V0QXR0cmlidXRlVmFsdWVBdEluZGV4KCJOU09ibGlxdWVuZXNzIiwgMCkpOworCQkJ
YWxlcnQoYXR0clN0cmluZy5nZXRBdHRyaWJ1dGVWYWx1ZUF0SW5kZXgoIk5TT2JsaXF1ZW5lc3Mi
LCAzKSk7CisJCQlhbGVydChhdHRyU3RyaW5nLmdldEF0dHJpYnV0ZVZhbHVlQXRJbmRleCgiTlNP
YmxpcXVlbmVzcyIsIDEwKSk7CisKKwkJCWFsZXJ0KGF0dHJTdHJpbmcuZ2V0QXR0cmlidXRlVmFs
dWVBdEluZGV4KCJOU0ZvcmVncm91bmRDb2xvciIsIDEpKTsKKwkJCQorCQkJZG9jdW1lbnQuZXhl
Y0NvbW1hbmQoIlNlbGVjdEFsbCIpOworCQkJZG9jdW1lbnQuZXhlY0NvbW1hbmQoIkRlbGV0ZSIp
OworCisJCX0gY2F0Y2ggKGV4KSB7CisJCQlkb2N1bWVudC53cml0ZSgiRXhjZXB0aW9uOiAiICsg
ZXguZGVzY3JpcHRpb24pOworCQl9CisJfSBlbHNlIHsKKwkJZG9jdW1lbnQud3JpdGUoIihjYW5u
b3QgcnVuIGludGVyYWN0aXZlbHkpIik7CisJfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CkluZGV4OiBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9UZXh0SW5wdXRDb250cm9sbGVyLm0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVl
L1RleHRJbnB1dENvbnRyb2xsZXIubSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xCmRpZmYgLXAg
LXUgLXIxLjEgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvVGV4dElucHV0Q29udHJvbGxlci5t
Ci0tLSBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9UZXh0SW5wdXRDb250cm9sbGVyLm0JOSBP
Y3QgMjAwNSAwMjo1NzoyMCAtMDAwMAkxLjEKKysrIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVl
L1RleHRJbnB1dENvbnRyb2xsZXIubQk5IE9jdCAyMDA1IDA5OjQ0OjE4IC0wMDAwCkBAIC0zNCw5
ICszNCw5NyBAQAogI2ltcG9ydCA8V2ViS2l0L1dlYkZyYW1lVmlldy5oPgogI2ltcG9ydCA8V2Vi
S2l0L1dlYlZpZXcuaD4KIAotQGltcGxlbWVudGF0aW9uIFRleHRJbnB1dENvbnRyb2xsZXIKK0Bp
bXBsZW1lbnRhdGlvbiBOU011dGFibGVBdHRyaWJ1dGVkU3RyaW5nIChUZXh0SW5wdXRDb250cm9s
bGVyKQorCisrIChCT09MKWlzU2VsZWN0b3JFeGNsdWRlZEZyb21XZWJTY3JpcHQ6KFNFTClhU2Vs
ZWN0b3IKK3sKKyAgICBpZiAoYVNlbGVjdG9yID09IEBzZWxlY3RvcihzdHJpbmcpCisgICAgICAg
ICAgICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKGdldExlbmd0aCkKKyAgICAgICAgICAgIHx8
IGFTZWxlY3RvciA9PSBAc2VsZWN0b3IoYXR0cmlidXRlTmFtZXNBdEluZGV4OikKKyAgICAgICAg
ICAgIHx8IGFTZWxlY3RvciA9PSBAc2VsZWN0b3IodmFsdWVPZkF0dHJpYnV0ZTphdEluZGV4OikK
KyAgICAgICAgICAgIHx8IGFTZWxlY3RvciA9PSBAc2VsZWN0b3IoYWRkQXR0cmlidXRlOnZhbHVl
OikKKyAgICAgICAgICAgIHx8IGFTZWxlY3RvciA9PSBAc2VsZWN0b3IoYWRkQXR0cmlidXRlOnZh
bHVlOmZyb206bGVuZ3RoOikKKyAgICAgICAgICAgIHx8IGFTZWxlY3RvciA9PSBAc2VsZWN0b3Io
YWRkQ29sb3JBdHRyaWJ1dGU6cmVkOmdyZWVuOmJsdWU6YWxwaGE6KQorICAgICAgICAgICAgfHwg
YVNlbGVjdG9yID09IEBzZWxlY3RvcihhZGRDb2xvckF0dHJpYnV0ZTpyZWQ6Z3JlZW46Ymx1ZTph
bHBoYTpmcm9tOmxlbmd0aDopCisgICAgICAgICAgICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9y
KGFkZEZvbnRBdHRyaWJ1dGU6Zm9udE5hbWU6c2l6ZTopCisgICAgICAgICAgICB8fCBhU2VsZWN0
b3IgPT0gQHNlbGVjdG9yKGFkZEZvbnRBdHRyaWJ1dGU6Zm9udE5hbWU6c2l6ZTpmcm9tOmxlbmd0
aDopKQorICAgICAgICByZXR1cm4gTk87CisgICAgcmV0dXJuIFlFUzsKK30KKworKyAoTlNTdHJp
bmcgKil3ZWJTY3JpcHROYW1lRm9yU2VsZWN0b3I6KFNFTClhU2VsZWN0b3IKK3sKKyAgICBpZiAo
YVNlbGVjdG9yID09IEBzZWxlY3RvcihnZXRMZW5ndGgpKQorICAgICAgICByZXR1cm4gQCJsZW5n
dGgiOworICAgIGlmIChhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKGF0dHJpYnV0ZU5hbWVzQXRJbmRl
eDopKQorICAgICAgICByZXR1cm4gQCJnZXRBdHRyaWJ1dGVOYW1lc0F0SW5kZXgiOworICAgIGlm
IChhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKHZhbHVlT2ZBdHRyaWJ1dGU6YXRJbmRleDopKQorICAg
ICAgICByZXR1cm4gQCJnZXRBdHRyaWJ1dGVWYWx1ZUF0SW5kZXgiOworICAgIGlmIChhU2VsZWN0
b3IgPT0gQHNlbGVjdG9yKGFkZEF0dHJpYnV0ZTp2YWx1ZTopKQorICAgICAgICByZXR1cm4gQCJh
ZGRBdHRyaWJ1dGUiOworICAgIGlmIChhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKGFkZEF0dHJpYnV0
ZTp2YWx1ZTpmcm9tOmxlbmd0aDopKQorICAgICAgICByZXR1cm4gQCJhZGRBdHRyaWJ1dGVGb3JS
YW5nZSI7CisgICAgaWYgKGFTZWxlY3RvciA9PSBAc2VsZWN0b3IoYWRkQ29sb3JBdHRyaWJ1dGU6
cmVkOmdyZWVuOmJsdWU6YWxwaGE6KSkKKyAgICAgICAgcmV0dXJuIEAiYWRkQ29sb3JBdHRyaWJ1
dGUiOworICAgIGlmIChhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKGFkZENvbG9yQXR0cmlidXRlOnJl
ZDpncmVlbjpibHVlOmFscGhhOmZyb206bGVuZ3RoOikpCisgICAgICAgIHJldHVybiBAImFkZENv
bG9yQXR0cmlidXRlRm9yUmFuZ2UiOworICAgIGlmIChhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKGFk
ZEZvbnRBdHRyaWJ1dGU6Zm9udE5hbWU6c2l6ZTopKQorICAgICAgICByZXR1cm4gQCJhZGRGb250
QXR0cmlidXRlIjsKKyAgICBpZiAoYVNlbGVjdG9yID09IEBzZWxlY3RvcihhZGRGb250QXR0cmli
dXRlOmZvbnROYW1lOnNpemU6ZnJvbTpsZW5ndGg6KSkKKyAgICAgICAgcmV0dXJuIEAiYWRkRm9u
dEF0dHJpYnV0ZUZvclJhbmdlIjsKKworICAgIHJldHVybiBuaWw7Cit9CisKKy0gKGludClnZXRM
ZW5ndGgKK3sKKyAgICByZXR1cm4gKGludClbc2VsZiBsZW5ndGhdOworfQorCistIChOU0FycmF5
ICopYXR0cmlidXRlTmFtZXNBdEluZGV4OihpbnQpaW5kZXgKK3sKKyAgICBOU0RpY3Rpb25hcnkg
KmF0dHJpYnV0ZXMgPSBbc2VsZiBhdHRyaWJ1dGVzQXRJbmRleDoodW5zaWduZWQpaW5kZXggZWZm
ZWN0aXZlUmFuZ2U6bmlsXTsKKyAgICByZXR1cm4gW2F0dHJpYnV0ZXMgYWxsS2V5c107Cit9CisK
Ky0gKGlkKXZhbHVlT2ZBdHRyaWJ1dGU6KE5TU3RyaW5nICopYXR0ck5hbWUgYXRJbmRleDooaW50
KWluZGV4Cit7CisgICAgcmV0dXJuIFtzZWxmIGF0dHJpYnV0ZTphdHRyTmFtZSBhdEluZGV4Oih1
bnNpZ25lZClpbmRleCBlZmZlY3RpdmVSYW5nZTpuaWxdOworfQorCistICh2b2lkKWFkZEF0dHJp
YnV0ZTooTlNTdHJpbmcgKilhdHRyTmFtZSB2YWx1ZTooaWQpdmFsdWUKK3sKKyAgICBbc2VsZiBh
ZGRBdHRyaWJ1dGU6YXR0ck5hbWUgdmFsdWU6dmFsdWUgcmFuZ2U6TlNNYWtlUmFuZ2UoMCwgW3Nl
bGYgbGVuZ3RoXSldOworfQorCistICh2b2lkKWFkZEF0dHJpYnV0ZTooTlNTdHJpbmcgKilhdHRy
TmFtZSB2YWx1ZTooaWQpdmFsdWUgZnJvbTooaW50KWZyb20gbGVuZ3RoOihpbnQpbGVuZ3RoCit7
CisgICAgW3NlbGYgYWRkQXR0cmlidXRlOmF0dHJOYW1lIHZhbHVlOnZhbHVlIHJhbmdlOk5TTWFr
ZVJhbmdlKCh1bnNpZ25lZClmcm9tLCAodW5zaWduZWQpbGVuZ3RoKV07Cit9CisKKy0gKHZvaWQp
YWRkQ29sb3JBdHRyaWJ1dGU6KE5TU3RyaW5nICopYXR0ck5hbWUgcmVkOihmbG9hdClyZWQgZ3Jl
ZW46KGZsb2F0KWdyZWVuIGJsdWU6KGZsb2F0KWJsdWUgYWxwaGE6KGZsb2F0KWFscGhhCit7Cisg
ICAgW3NlbGYgYWRkQXR0cmlidXRlOmF0dHJOYW1lIHZhbHVlOltOU0NvbG9yIGNvbG9yV2l0aERl
dmljZVJlZDpyZWQgZ3JlZW46Z3JlZW4gYmx1ZTpibHVlIGFscGhhOmFscGhhXSByYW5nZTpOU01h
a2VSYW5nZSgwLCBbc2VsZiBsZW5ndGhdKV07Cit9CisKKy0gKHZvaWQpYWRkQ29sb3JBdHRyaWJ1
dGU6KE5TU3RyaW5nICopYXR0ck5hbWUgcmVkOihmbG9hdClyZWQgZ3JlZW46KGZsb2F0KWdyZWVu
IGJsdWU6KGZsb2F0KWJsdWUgYWxwaGE6KGZsb2F0KWFscGhhIGZyb206KGludClmcm9tIGxlbmd0
aDooaW50KWxlbmd0aAoreworICAgIFtzZWxmIGFkZEF0dHJpYnV0ZTphdHRyTmFtZSB2YWx1ZTpb
TlNDb2xvciBjb2xvcldpdGhEZXZpY2VSZWQ6cmVkIGdyZWVuOmdyZWVuIGJsdWU6Ymx1ZSBhbHBo
YTphbHBoYV0gcmFuZ2U6TlNNYWtlUmFuZ2UoKHVuc2lnbmVkKWZyb20sICh1bnNpZ25lZClsZW5n
dGgpXTsKK30KIAotLy8gRklYTUU6IG5lZWQgdG8gc3VwcG9ydCBhdHRyaWJ1dGVkIHN0cmluZ3MK
Ky0gKHZvaWQpYWRkRm9udEF0dHJpYnV0ZTooTlNTdHJpbmcgKilhdHRyTmFtZSBmb250TmFtZToo
TlNTdHJpbmcgKilmb250TmFtZSBzaXplOihmbG9hdClmb250U2l6ZQoreworICAgIFtzZWxmIGFk
ZEF0dHJpYnV0ZTphdHRyTmFtZSB2YWx1ZTpbTlNGb250IGZvbnRXaXRoTmFtZTpmb250TmFtZSBz
aXplOmZvbnRTaXplXSByYW5nZTpOU01ha2VSYW5nZSgwLCBbc2VsZiBsZW5ndGhdKV07Cit9CisK
Ky0gKHZvaWQpYWRkRm9udEF0dHJpYnV0ZTooTlNTdHJpbmcgKilhdHRyTmFtZSBmb250TmFtZToo
TlNTdHJpbmcgKilmb250TmFtZSBzaXplOihmbG9hdClmb250U2l6ZSBmcm9tOihpbnQpZnJvbSBs
ZW5ndGg6KGludClsZW5ndGgKK3sKKyAgICBbc2VsZiBhZGRBdHRyaWJ1dGU6YXR0ck5hbWUgdmFs
dWU6W05TRm9udCBmb250V2l0aE5hbWU6Zm9udE5hbWUgc2l6ZTpmb250U2l6ZV0gcmFuZ2U6TlNN
YWtlUmFuZ2UoKHVuc2lnbmVkKWZyb20sICh1bnNpZ25lZClsZW5ndGgpXTsKK30KKworQGVuZAor
CitAaW1wbGVtZW50YXRpb24gVGV4dElucHV0Q29udHJvbGxlcgogCiArIChCT09MKWlzU2VsZWN0
b3JFeGNsdWRlZEZyb21XZWJTY3JpcHQ6KFNFTClhU2VsZWN0b3IKIHsKQEAgLTQ3LDExICsxMzUs
MTMgQEAKICAgICAgICAgICAgIHx8IGFTZWxlY3RvciA9PSBAc2VsZWN0b3IoaGFzTWFya2VkVGV4
dCkKICAgICAgICAgICAgIHx8IGFTZWxlY3RvciA9PSBAc2VsZWN0b3IoY29udmVyc2F0aW9uSWRl
bnRpZmllcikKICAgICAgICAgICAgIHx8IGFTZWxlY3RvciA9PSBAc2VsZWN0b3Ioc3Vic3RyaW5n
RnJvbTpsZW5ndGg6KQorICAgICAgICAgICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3RvcihhdHRy
aWJ1dGVkU3Vic3RyaW5nRnJvbTpsZW5ndGg6KQogICAgICAgICAgICAgfHwgYVNlbGVjdG9yID09
IEBzZWxlY3RvcihtYXJrZWRSYW5nZSkKICAgICAgICAgICAgIHx8IGFTZWxlY3RvciA9PSBAc2Vs
ZWN0b3Ioc2VsZWN0ZWRSYW5nZSkKICAgICAgICAgICAgIHx8IGFTZWxlY3RvciA9PSBAc2VsZWN0
b3IoZmlyc3RSZWN0Rm9yQ2hhcmFjdGVyc0Zyb206bGVuZ3RoOikKICAgICAgICAgICAgIHx8IGFT
ZWxlY3RvciA9PSBAc2VsZWN0b3IoY2hhcmFjdGVySW5kZXhGb3JQb2ludFg6WTopCi0gICAgICAg
ICAgICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKHZhbGlkQXR0cmlidXRlc0Zvck1hcmtlZFRl
eHQpKQorICAgICAgICAgICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3Rvcih2YWxpZEF0dHJpYnV0
ZXNGb3JNYXJrZWRUZXh0KQorICAgICAgICAgICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3Rvcihh
dHRyaWJ1dGVkU3RyaW5nV2l0aFN0cmluZzopKQogICAgICAgICByZXR1cm4gTk87CiAgICAgcmV0
dXJuIFlFUzsKIH0KQEAgLTY2LDEwICsxNTYsMTQgQEAKICAgICAgICAgcmV0dXJuIEAic2V0TWFy
a2VkVGV4dCI7CiAgICAgZWxzZSBpZiAoYVNlbGVjdG9yID09IEBzZWxlY3RvcihzdWJzdHJpbmdG
cm9tOmxlbmd0aDopKQogICAgICAgICByZXR1cm4gQCJzdWJzdHJpbmdGcm9tUmFuZ2UiOworICAg
IGVsc2UgaWYgKGFTZWxlY3RvciA9PSBAc2VsZWN0b3IoYXR0cmlidXRlZFN1YnN0cmluZ0Zyb206
bGVuZ3RoOikpCisgICAgICAgIHJldHVybiBAImF0dHJpYnV0ZWRTdWJzdHJpbmdGcm9tUmFuZ2Ui
OwogICAgIGVsc2UgaWYgKGFTZWxlY3RvciA9PSBAc2VsZWN0b3IoZmlyc3RSZWN0Rm9yQ2hhcmFj
dGVyc0Zyb206bGVuZ3RoOikpCiAgICAgICAgIHJldHVybiBAImZpcnN0UmVjdEZvckNoYXJhY3Rl
clJhbmdlIjsKICAgICBlbHNlIGlmIChhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKGNoYXJhY3Rlcklu
ZGV4Rm9yUG9pbnRYOlk6KSkKICAgICAgICAgcmV0dXJuIEAiY2hhcmFjdGVySW5kZXhGb3JQb2lu
dCI7CisgICAgZWxzZSBpZiAoYVNlbGVjdG9yID09IEBzZWxlY3RvcihhdHRyaWJ1dGVkU3RyaW5n
V2l0aFN0cmluZzopKQorICAgICAgICByZXR1cm4gQCJtYWtlQXR0cmlidXRlZFN0cmluZyI7IC8v
IGp1c3QgYSBmYWN0b3J5IG1ldGhvZCwgZG9lc24ndCBjYWxsIGludG8gTlNUZXh0SW5wdXQKIAog
ICAgIHJldHVybiBuaWw7CiB9CkBAIC04Nyw3ICsxODEsNyBAQAogICAgIHJldHVybiBbdmlldyBj
b25mb3Jtc1RvUHJvdG9jb2w6QHByb3RvY29sKE5TVGV4dElucHV0KV0gPyB2aWV3IDogbmlsOwog
fQogCi0tICh2b2lkKWluc2VydFRleHQ6KE5TU3RyaW5nICopYVN0cmluZworLSAodm9pZClpbnNl
cnRUZXh0OihpZClhU3RyaW5nCiB7CiAgICAgTlNPYmplY3QgPE5TVGV4dElucHV0PiAqdGV4dElu
cHV0ID0gW3NlbGYgdGV4dElucHV0XTsKIApAQCAtMTQ5LDYgKzI0MywxOCBAQAogICAgIHJldHVy
biBAIiI7CiB9CiAKKy0gKE5TTXV0YWJsZUF0dHJpYnV0ZWRTdHJpbmcgKilhdHRyaWJ1dGVkU3Vi
c3RyaW5nRnJvbTooaW50KWZyb20gbGVuZ3RoOihpbnQpbGVuZ3RoCit7CisgICAgTlNPYmplY3Qg
PE5TVGV4dElucHV0PiAqdGV4dElucHV0ID0gW3NlbGYgdGV4dElucHV0XTsKKworICAgIE5TTXV0
YWJsZUF0dHJpYnV0ZWRTdHJpbmcgKnJldCA9IFtbW05TTXV0YWJsZUF0dHJpYnV0ZWRTdHJpbmcg
YWxsb2NdIGluaXRdIGF1dG9yZWxlYXNlXTsKKworICAgIGlmICh0ZXh0SW5wdXQpCisgICAgICAg
IFtyZXQgc2V0QXR0cmlidXRlZFN0cmluZzpbdGV4dElucHV0IGF0dHJpYnV0ZWRTdWJzdHJpbmdG
cm9tUmFuZ2U6TlNNYWtlUmFuZ2UoZnJvbSwgbGVuZ3RoKV1dOworICAgIAorICAgIHJldHVybiBy
ZXQ7Cit9CisKIC0gKE5TQXJyYXkgKiltYXJrZWRSYW5nZQogewogICAgIE5TT2JqZWN0IDxOU1Rl
eHRJbnB1dD4gKnRleHRJbnB1dCA9IFtzZWxmIHRleHRJbnB1dF07CkBAIC0yMTEsNCArMzE3LDEx
IEBACiAgICAgcmV0dXJuIG5pbDsKIH0KIAorLSAoTlNNdXRhYmxlQXR0cmlidXRlZFN0cmluZyAq
KWF0dHJpYnV0ZWRTdHJpbmdXaXRoU3RyaW5nOihOU1N0cmluZyAqKWFTdHJpbmcKK3sKKyAgICBO
U011dGFibGVBdHRyaWJ1dGVkU3RyaW5nICpyZXQgPSBbW1tOU011dGFibGVBdHRyaWJ1dGVkU3Ry
aW5nIGFsbG9jXSBpbml0XSBhdXRvcmVsZWFzZV07CisgICAgW3JldCBzZXRBdHRyaWJ1dGVkU3Ry
aW5nOltbW05TQXR0cmlidXRlZFN0cmluZyBhbGxvY10gaW5pdFdpdGhTdHJpbmc6YVN0cmluZ10g
YXV0b3JlbGVhc2VdXTsKKyAgICByZXR1cm4gcmV0OworfQorCiBAZW5kCg==
</data>
<flag name="review"
          id="704"
          type_id="1"
          status="-"
          setter="mjs"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>4362</attachid>
            <date>2005-10-14 13:10:42 -0700</date>
            <delta_ts>2005-10-18 00:46:28 -0700</delta_ts>
            <desc>Patch with a corrected test case</desc>
            <filename>AttrStringsPatch.txt</filename>
            <type>text/plain</type>
            <size>10696</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IGF0dHJpYnV0ZWQtc3RyaW5ncy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpkaWZmIC1O
cHUgYXR0cmlidXRlZC1zdHJpbmdzLWV4cGVjdGVkLnR4dAotLS0gYXR0cmlidXRlZC1zdHJpbmdz
LWV4cGVjdGVkLnR4dAkxIEphbiAxOTcwIDAwOjAwOjAwIC0wMDAwCisrKyBhdHRyaWJ1dGVkLXN0
cmluZ3MtZXhwZWN0ZWQudHh0CTE0IE9jdCAyMDA1IDE5OjUxOjE3IC0wMDAwCkBAIC0wLDAgKzEs
MjEgQEAKK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6KG51
bGwpIHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAwIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwg
PiAjZG9jdW1lbnQgdG8gNyBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50
IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZB
TFNFCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdE
aWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZElu
c2VydFRleHQ6dGVzdCByZXBsYWNpbmdET01SYW5nZTpyYW5nZSBmcm9tIDAgb2YgI3RleHQgPiBE
SVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA3IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+
IEhUTUwgPiAjZG9jdW1lbnQgZ2l2ZW5BY3Rpb246V2ViVmlld0luc2VydEFjdGlvblR5cGVkCitF
RElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFu
Z2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNl
bGVjdGVkRE9NUmFuZ2U6KG51bGwpIHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSA0IG9mICN0ZXh0ID4g
RElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gNCBvZiAjdGV4dCA+IERJViA+IEJPRFkg
PiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFt
IHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdl
U2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcg
REVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgor
dGVzdAordGVzdHt9Cis0Cit0ZXN0Cis0Cit0ZXN0CitOU0ZvcmVncm91bmRDb2xvcixOU1Rvb2xU
aXAsTlNGb250LE5TT2JsaXF1ZW5lc3MKK05TVG9vbFRpcCxOU0ZvcmVncm91bmRDb2xvcixOU0Zv
bnQKKzAuNQordW5kZWZpbmVkCit1bmRlZmluZWQKK05TRGV2aWNlUkdCQ29sb3JTcGFjZSAxIDAu
NSAxIDAuNQorCisKSW5kZXg6IGF0dHJpYnV0ZWQtc3RyaW5ncy5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZGlm
ZiAtTnB1IGF0dHJpYnV0ZWQtc3RyaW5ncy5odG1sCi0tLSBhdHRyaWJ1dGVkLXN0cmluZ3MuaHRt
bAkxIEphbiAxOTcwIDAwOjAwOjAwIC0wMDAwCisrKyBhdHRyaWJ1dGVkLXN0cmluZ3MuaHRtbAkx
NCBPY3QgMjAwNSAxOTo1MTowOSAtMDAwMApAQCAtMCwwICsxLDcwIEBACis8aHRtbD4KKzxoZWFk
PgorPHN0eWxlPgorYm9keSB7IG1hcmdpbjogMDsgcGFkZGluZzogMCB9Cis8L3N0eWxlPgorPC9o
ZWFkPgorPGJvZHk+Cis8ZGl2IGNvbnRlbnRlZGl0YWJsZT5GQUlMVVJFPC9kaXY+Cis8cCBpZD0i
Y29uc29sZSI+PC9wPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorCQorCXZhciBj
b25zb2xlX21lc3NhZ2VzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgib2wiKTsKKwkKKwlmdW5j
dGlvbiBsb2cobWVzc2FnZSkKKwl7CisJCXZhciBpdGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgibGkiKTsKKwkJaXRlbS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNz
YWdlKSk7CisJCWNvbnNvbGVfbWVzc2FnZXMuYXBwZW5kQ2hpbGQoaXRlbSk7CisJfQorCQorCWlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKwkJCisJCXRyeSB7CisKKwkJCWxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworCQkJdmFyIHN1YnN0ciA9IHRleHRJbnB1
dENvbnRyb2xsZXIuYXR0cmlidXRlZFN1YnN0cmluZ0Zyb21SYW5nZSgwLCAyKTsKKy8vCQkJbG9n
KHN1YnN0cik7IC0tIGF0dHJpYnV0ZWRTdWJzdHJpbmdGcm9tUmFuZ2UgaXMgbm90IGltcGxlbWVu
dGVkIGluIFdlYktpdCB5ZXQKKwkKKwkJCXZhciBhdHRyU3RyaW5nID0gdGV4dElucHV0Q29udHJv
bGxlci5tYWtlQXR0cmlidXRlZFN0cmluZygidGVzdCIpOworCQkJbG9nKGF0dHJTdHJpbmcpOwor
CQkJbG9nKGF0dHJTdHJpbmcubGVuZ3RoKCkpOworCQkJbG9nKGF0dHJTdHJpbmcuc3RyaW5nKCkp
OworCisJCQlhdHRyU3RyaW5nLmFkZEF0dHJpYnV0ZSgiTlNUb29sVGlwIiwgIlRvb2wgVGlwIik7
CisJCQlhdHRyU3RyaW5nLmFkZEZvbnRBdHRyaWJ1dGUoIk5TRm9udCIsICJNb25hY28iLCAxNCk7
CisJCQlhdHRyU3RyaW5nLmFkZENvbG9yQXR0cmlidXRlKCJOU0ZvcmVncm91bmRDb2xvciIsIDEs
IDEsIDEsIDAuNSk7CisKKwkJCWF0dHJTdHJpbmcuYWRkRm9udEF0dHJpYnV0ZUZvclJhbmdlKCJO
U0ZvbnQiLCAiTW9uYWNvIiwgMTIsIDAsIDIpOworCQkJYXR0clN0cmluZy5hZGRDb2xvckF0dHJp
YnV0ZUZvclJhbmdlKCJOU0ZvcmVncm91bmRDb2xvciIsIDEsIDAuNSwgMSwgMC41LCAwLCAyKTsK
KwkJCWF0dHJTdHJpbmcuYWRkQXR0cmlidXRlRm9yUmFuZ2UoIk5TT2JsaXF1ZW5lc3MiLCAwLjUs
IDAsIDIpOworCisJCQlsb2coYXR0clN0cmluZy5sZW5ndGgoKSk7CisJCQlsb2coYXR0clN0cmlu
Zy5zdHJpbmcoKSk7CisJCQkKKwkJCWxvZyhhdHRyU3RyaW5nLmdldEF0dHJpYnV0ZU5hbWVzQXRJ
bmRleCgwKSk7CisJCQlsb2coYXR0clN0cmluZy5nZXRBdHRyaWJ1dGVOYW1lc0F0SW5kZXgoMykp
OworCisJCQlsb2coYXR0clN0cmluZy5nZXRBdHRyaWJ1dGVWYWx1ZUF0SW5kZXgoIk5TT2JsaXF1
ZW5lc3MiLCAwKSk7CisJCQlsb2coYXR0clN0cmluZy5nZXRBdHRyaWJ1dGVWYWx1ZUF0SW5kZXgo
Ik5TT2JsaXF1ZW5lc3MiLCAzKSk7CisJCQlsb2coYXR0clN0cmluZy5nZXRBdHRyaWJ1dGVWYWx1
ZUF0SW5kZXgoIk5TT2JsaXF1ZW5lc3MiLCAxMCkpOworCisJCQlsb2coYXR0clN0cmluZy5nZXRB
dHRyaWJ1dGVWYWx1ZUF0SW5kZXgoIk5TRm9yZWdyb3VuZENvbG9yIiwgMSkpOworCQkJCisJCQlk
b2N1bWVudC5leGVjQ29tbWFuZCgiU2VsZWN0QWxsIik7CisJCQkKKwkJCXRleHRJbnB1dENvbnRy
b2xsZXIuaW5zZXJ0VGV4dChhdHRyU3RyaW5nKTsKKwkJCQorCQl9IGNhdGNoIChleCkgeworCQkJ
ZG9jdW1lbnQud3JpdGUoIkV4Y2VwdGlvbjogIiArIGV4LmRlc2NyaXB0aW9uKTsKKwkJfQorCQkK
KwkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5hcHBlbmRDaGlsZChjb25zb2xl
X21lc3NhZ2VzKTsKKwkJCisJfSBlbHNlIHsKKwkJZG9jdW1lbnQud3JpdGUoIihjYW5ub3QgcnVu
IGludGVyYWN0aXZlbHkpIik7CisJfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4
OiBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9UZXh0SW5wdXRDb250cm9sbGVyLm0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL1RleHRJ
bnB1dENvbnRyb2xsZXIubSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xCmRpZmYgLXAgLXUgLXIx
LjEgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvVGV4dElucHV0Q29udHJvbGxlci5tCi0tLSBX
ZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9UZXh0SW5wdXRDb250cm9sbGVyLm0JOSBPY3QgMjAw
NSAwMjo1NzoyMCAtMDAwMAkxLjEKKysrIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL1RleHRJ
bnB1dENvbnRyb2xsZXIubQk5IE9jdCAyMDA1IDA5OjQ0OjE4IC0wMDAwCkBAIC0zNCw5ICszNCw5
NyBAQAogI2ltcG9ydCA8V2ViS2l0L1dlYkZyYW1lVmlldy5oPgogI2ltcG9ydCA8V2ViS2l0L1dl
YlZpZXcuaD4KIAotQGltcGxlbWVudGF0aW9uIFRleHRJbnB1dENvbnRyb2xsZXIKK0BpbXBsZW1l
bnRhdGlvbiBOU011dGFibGVBdHRyaWJ1dGVkU3RyaW5nIChUZXh0SW5wdXRDb250cm9sbGVyKQor
CisrIChCT09MKWlzU2VsZWN0b3JFeGNsdWRlZEZyb21XZWJTY3JpcHQ6KFNFTClhU2VsZWN0b3IK
K3sKKyAgICBpZiAoYVNlbGVjdG9yID09IEBzZWxlY3RvcihzdHJpbmcpCisgICAgICAgICAgICB8
fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKGdldExlbmd0aCkKKyAgICAgICAgICAgIHx8IGFTZWxl
Y3RvciA9PSBAc2VsZWN0b3IoYXR0cmlidXRlTmFtZXNBdEluZGV4OikKKyAgICAgICAgICAgIHx8
IGFTZWxlY3RvciA9PSBAc2VsZWN0b3IodmFsdWVPZkF0dHJpYnV0ZTphdEluZGV4OikKKyAgICAg
ICAgICAgIHx8IGFTZWxlY3RvciA9PSBAc2VsZWN0b3IoYWRkQXR0cmlidXRlOnZhbHVlOikKKyAg
ICAgICAgICAgIHx8IGFTZWxlY3RvciA9PSBAc2VsZWN0b3IoYWRkQXR0cmlidXRlOnZhbHVlOmZy
b206bGVuZ3RoOikKKyAgICAgICAgICAgIHx8IGFTZWxlY3RvciA9PSBAc2VsZWN0b3IoYWRkQ29s
b3JBdHRyaWJ1dGU6cmVkOmdyZWVuOmJsdWU6YWxwaGE6KQorICAgICAgICAgICAgfHwgYVNlbGVj
dG9yID09IEBzZWxlY3RvcihhZGRDb2xvckF0dHJpYnV0ZTpyZWQ6Z3JlZW46Ymx1ZTphbHBoYTpm
cm9tOmxlbmd0aDopCisgICAgICAgICAgICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKGFkZEZv
bnRBdHRyaWJ1dGU6Zm9udE5hbWU6c2l6ZTopCisgICAgICAgICAgICB8fCBhU2VsZWN0b3IgPT0g
QHNlbGVjdG9yKGFkZEZvbnRBdHRyaWJ1dGU6Zm9udE5hbWU6c2l6ZTpmcm9tOmxlbmd0aDopKQor
ICAgICAgICByZXR1cm4gTk87CisgICAgcmV0dXJuIFlFUzsKK30KKworKyAoTlNTdHJpbmcgKil3
ZWJTY3JpcHROYW1lRm9yU2VsZWN0b3I6KFNFTClhU2VsZWN0b3IKK3sKKyAgICBpZiAoYVNlbGVj
dG9yID09IEBzZWxlY3RvcihnZXRMZW5ndGgpKQorICAgICAgICByZXR1cm4gQCJsZW5ndGgiOwor
ICAgIGlmIChhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKGF0dHJpYnV0ZU5hbWVzQXRJbmRleDopKQor
ICAgICAgICByZXR1cm4gQCJnZXRBdHRyaWJ1dGVOYW1lc0F0SW5kZXgiOworICAgIGlmIChhU2Vs
ZWN0b3IgPT0gQHNlbGVjdG9yKHZhbHVlT2ZBdHRyaWJ1dGU6YXRJbmRleDopKQorICAgICAgICBy
ZXR1cm4gQCJnZXRBdHRyaWJ1dGVWYWx1ZUF0SW5kZXgiOworICAgIGlmIChhU2VsZWN0b3IgPT0g
QHNlbGVjdG9yKGFkZEF0dHJpYnV0ZTp2YWx1ZTopKQorICAgICAgICByZXR1cm4gQCJhZGRBdHRy
aWJ1dGUiOworICAgIGlmIChhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKGFkZEF0dHJpYnV0ZTp2YWx1
ZTpmcm9tOmxlbmd0aDopKQorICAgICAgICByZXR1cm4gQCJhZGRBdHRyaWJ1dGVGb3JSYW5nZSI7
CisgICAgaWYgKGFTZWxlY3RvciA9PSBAc2VsZWN0b3IoYWRkQ29sb3JBdHRyaWJ1dGU6cmVkOmdy
ZWVuOmJsdWU6YWxwaGE6KSkKKyAgICAgICAgcmV0dXJuIEAiYWRkQ29sb3JBdHRyaWJ1dGUiOwor
ICAgIGlmIChhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKGFkZENvbG9yQXR0cmlidXRlOnJlZDpncmVl
bjpibHVlOmFscGhhOmZyb206bGVuZ3RoOikpCisgICAgICAgIHJldHVybiBAImFkZENvbG9yQXR0
cmlidXRlRm9yUmFuZ2UiOworICAgIGlmIChhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKGFkZEZvbnRB
dHRyaWJ1dGU6Zm9udE5hbWU6c2l6ZTopKQorICAgICAgICByZXR1cm4gQCJhZGRGb250QXR0cmli
dXRlIjsKKyAgICBpZiAoYVNlbGVjdG9yID09IEBzZWxlY3RvcihhZGRGb250QXR0cmlidXRlOmZv
bnROYW1lOnNpemU6ZnJvbTpsZW5ndGg6KSkKKyAgICAgICAgcmV0dXJuIEAiYWRkRm9udEF0dHJp
YnV0ZUZvclJhbmdlIjsKKworICAgIHJldHVybiBuaWw7Cit9CisKKy0gKGludClnZXRMZW5ndGgK
K3sKKyAgICByZXR1cm4gKGludClbc2VsZiBsZW5ndGhdOworfQorCistIChOU0FycmF5ICopYXR0
cmlidXRlTmFtZXNBdEluZGV4OihpbnQpaW5kZXgKK3sKKyAgICBOU0RpY3Rpb25hcnkgKmF0dHJp
YnV0ZXMgPSBbc2VsZiBhdHRyaWJ1dGVzQXRJbmRleDoodW5zaWduZWQpaW5kZXggZWZmZWN0aXZl
UmFuZ2U6bmlsXTsKKyAgICByZXR1cm4gW2F0dHJpYnV0ZXMgYWxsS2V5c107Cit9CisKKy0gKGlk
KXZhbHVlT2ZBdHRyaWJ1dGU6KE5TU3RyaW5nICopYXR0ck5hbWUgYXRJbmRleDooaW50KWluZGV4
Cit7CisgICAgcmV0dXJuIFtzZWxmIGF0dHJpYnV0ZTphdHRyTmFtZSBhdEluZGV4Oih1bnNpZ25l
ZClpbmRleCBlZmZlY3RpdmVSYW5nZTpuaWxdOworfQorCistICh2b2lkKWFkZEF0dHJpYnV0ZToo
TlNTdHJpbmcgKilhdHRyTmFtZSB2YWx1ZTooaWQpdmFsdWUKK3sKKyAgICBbc2VsZiBhZGRBdHRy
aWJ1dGU6YXR0ck5hbWUgdmFsdWU6dmFsdWUgcmFuZ2U6TlNNYWtlUmFuZ2UoMCwgW3NlbGYgbGVu
Z3RoXSldOworfQorCistICh2b2lkKWFkZEF0dHJpYnV0ZTooTlNTdHJpbmcgKilhdHRyTmFtZSB2
YWx1ZTooaWQpdmFsdWUgZnJvbTooaW50KWZyb20gbGVuZ3RoOihpbnQpbGVuZ3RoCit7CisgICAg
W3NlbGYgYWRkQXR0cmlidXRlOmF0dHJOYW1lIHZhbHVlOnZhbHVlIHJhbmdlOk5TTWFrZVJhbmdl
KCh1bnNpZ25lZClmcm9tLCAodW5zaWduZWQpbGVuZ3RoKV07Cit9CisKKy0gKHZvaWQpYWRkQ29s
b3JBdHRyaWJ1dGU6KE5TU3RyaW5nICopYXR0ck5hbWUgcmVkOihmbG9hdClyZWQgZ3JlZW46KGZs
b2F0KWdyZWVuIGJsdWU6KGZsb2F0KWJsdWUgYWxwaGE6KGZsb2F0KWFscGhhCit7CisgICAgW3Nl
bGYgYWRkQXR0cmlidXRlOmF0dHJOYW1lIHZhbHVlOltOU0NvbG9yIGNvbG9yV2l0aERldmljZVJl
ZDpyZWQgZ3JlZW46Z3JlZW4gYmx1ZTpibHVlIGFscGhhOmFscGhhXSByYW5nZTpOU01ha2VSYW5n
ZSgwLCBbc2VsZiBsZW5ndGhdKV07Cit9CisKKy0gKHZvaWQpYWRkQ29sb3JBdHRyaWJ1dGU6KE5T
U3RyaW5nICopYXR0ck5hbWUgcmVkOihmbG9hdClyZWQgZ3JlZW46KGZsb2F0KWdyZWVuIGJsdWU6
KGZsb2F0KWJsdWUgYWxwaGE6KGZsb2F0KWFscGhhIGZyb206KGludClmcm9tIGxlbmd0aDooaW50
KWxlbmd0aAoreworICAgIFtzZWxmIGFkZEF0dHJpYnV0ZTphdHRyTmFtZSB2YWx1ZTpbTlNDb2xv
ciBjb2xvcldpdGhEZXZpY2VSZWQ6cmVkIGdyZWVuOmdyZWVuIGJsdWU6Ymx1ZSBhbHBoYTphbHBo
YV0gcmFuZ2U6TlNNYWtlUmFuZ2UoKHVuc2lnbmVkKWZyb20sICh1bnNpZ25lZClsZW5ndGgpXTsK
K30KIAotLy8gRklYTUU6IG5lZWQgdG8gc3VwcG9ydCBhdHRyaWJ1dGVkIHN0cmluZ3MKKy0gKHZv
aWQpYWRkRm9udEF0dHJpYnV0ZTooTlNTdHJpbmcgKilhdHRyTmFtZSBmb250TmFtZTooTlNTdHJp
bmcgKilmb250TmFtZSBzaXplOihmbG9hdClmb250U2l6ZQoreworICAgIFtzZWxmIGFkZEF0dHJp
YnV0ZTphdHRyTmFtZSB2YWx1ZTpbTlNGb250IGZvbnRXaXRoTmFtZTpmb250TmFtZSBzaXplOmZv
bnRTaXplXSByYW5nZTpOU01ha2VSYW5nZSgwLCBbc2VsZiBsZW5ndGhdKV07Cit9CisKKy0gKHZv
aWQpYWRkRm9udEF0dHJpYnV0ZTooTlNTdHJpbmcgKilhdHRyTmFtZSBmb250TmFtZTooTlNTdHJp
bmcgKilmb250TmFtZSBzaXplOihmbG9hdClmb250U2l6ZSBmcm9tOihpbnQpZnJvbSBsZW5ndGg6
KGludClsZW5ndGgKK3sKKyAgICBbc2VsZiBhZGRBdHRyaWJ1dGU6YXR0ck5hbWUgdmFsdWU6W05T
Rm9udCBmb250V2l0aE5hbWU6Zm9udE5hbWUgc2l6ZTpmb250U2l6ZV0gcmFuZ2U6TlNNYWtlUmFu
Z2UoKHVuc2lnbmVkKWZyb20sICh1bnNpZ25lZClsZW5ndGgpXTsKK30KKworQGVuZAorCitAaW1w
bGVtZW50YXRpb24gVGV4dElucHV0Q29udHJvbGxlcgogCiArIChCT09MKWlzU2VsZWN0b3JFeGNs
dWRlZEZyb21XZWJTY3JpcHQ6KFNFTClhU2VsZWN0b3IKIHsKQEAgLTQ3LDExICsxMzUsMTMgQEAK
ICAgICAgICAgICAgIHx8IGFTZWxlY3RvciA9PSBAc2VsZWN0b3IoaGFzTWFya2VkVGV4dCkKICAg
ICAgICAgICAgIHx8IGFTZWxlY3RvciA9PSBAc2VsZWN0b3IoY29udmVyc2F0aW9uSWRlbnRpZmll
cikKICAgICAgICAgICAgIHx8IGFTZWxlY3RvciA9PSBAc2VsZWN0b3Ioc3Vic3RyaW5nRnJvbTps
ZW5ndGg6KQorICAgICAgICAgICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3RvcihhdHRyaWJ1dGVk
U3Vic3RyaW5nRnJvbTpsZW5ndGg6KQogICAgICAgICAgICAgfHwgYVNlbGVjdG9yID09IEBzZWxl
Y3RvcihtYXJrZWRSYW5nZSkKICAgICAgICAgICAgIHx8IGFTZWxlY3RvciA9PSBAc2VsZWN0b3Io
c2VsZWN0ZWRSYW5nZSkKICAgICAgICAgICAgIHx8IGFTZWxlY3RvciA9PSBAc2VsZWN0b3IoZmly
c3RSZWN0Rm9yQ2hhcmFjdGVyc0Zyb206bGVuZ3RoOikKICAgICAgICAgICAgIHx8IGFTZWxlY3Rv
ciA9PSBAc2VsZWN0b3IoY2hhcmFjdGVySW5kZXhGb3JQb2ludFg6WTopCi0gICAgICAgICAgICB8
fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKHZhbGlkQXR0cmlidXRlc0Zvck1hcmtlZFRleHQpKQor
ICAgICAgICAgICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3Rvcih2YWxpZEF0dHJpYnV0ZXNGb3JN
YXJrZWRUZXh0KQorICAgICAgICAgICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3RvcihhdHRyaWJ1
dGVkU3RyaW5nV2l0aFN0cmluZzopKQogICAgICAgICByZXR1cm4gTk87CiAgICAgcmV0dXJuIFlF
UzsKIH0KQEAgLTY2LDEwICsxNTYsMTQgQEAKICAgICAgICAgcmV0dXJuIEAic2V0TWFya2VkVGV4
dCI7CiAgICAgZWxzZSBpZiAoYVNlbGVjdG9yID09IEBzZWxlY3RvcihzdWJzdHJpbmdGcm9tOmxl
bmd0aDopKQogICAgICAgICByZXR1cm4gQCJzdWJzdHJpbmdGcm9tUmFuZ2UiOworICAgIGVsc2Ug
aWYgKGFTZWxlY3RvciA9PSBAc2VsZWN0b3IoYXR0cmlidXRlZFN1YnN0cmluZ0Zyb206bGVuZ3Ro
OikpCisgICAgICAgIHJldHVybiBAImF0dHJpYnV0ZWRTdWJzdHJpbmdGcm9tUmFuZ2UiOwogICAg
IGVsc2UgaWYgKGFTZWxlY3RvciA9PSBAc2VsZWN0b3IoZmlyc3RSZWN0Rm9yQ2hhcmFjdGVyc0Zy
b206bGVuZ3RoOikpCiAgICAgICAgIHJldHVybiBAImZpcnN0UmVjdEZvckNoYXJhY3RlclJhbmdl
IjsKICAgICBlbHNlIGlmIChhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKGNoYXJhY3RlckluZGV4Rm9y
UG9pbnRYOlk6KSkKICAgICAgICAgcmV0dXJuIEAiY2hhcmFjdGVySW5kZXhGb3JQb2ludCI7Cisg
ICAgZWxzZSBpZiAoYVNlbGVjdG9yID09IEBzZWxlY3RvcihhdHRyaWJ1dGVkU3RyaW5nV2l0aFN0
cmluZzopKQorICAgICAgICByZXR1cm4gQCJtYWtlQXR0cmlidXRlZFN0cmluZyI7IC8vIGp1c3Qg
YSBmYWN0b3J5IG1ldGhvZCwgZG9lc24ndCBjYWxsIGludG8gTlNUZXh0SW5wdXQKIAogICAgIHJl
dHVybiBuaWw7CiB9CkBAIC04Nyw3ICsxODEsNyBAQAogICAgIHJldHVybiBbdmlldyBjb25mb3Jt
c1RvUHJvdG9jb2w6QHByb3RvY29sKE5TVGV4dElucHV0KV0gPyB2aWV3IDogbmlsOwogfQogCi0t
ICh2b2lkKWluc2VydFRleHQ6KE5TU3RyaW5nICopYVN0cmluZworLSAodm9pZClpbnNlcnRUZXh0
OihpZClhU3RyaW5nCiB7CiAgICAgTlNPYmplY3QgPE5TVGV4dElucHV0PiAqdGV4dElucHV0ID0g
W3NlbGYgdGV4dElucHV0XTsKIApAQCAtMTQ5LDYgKzI0MywxOCBAQAogICAgIHJldHVybiBAIiI7
CiB9CiAKKy0gKE5TTXV0YWJsZUF0dHJpYnV0ZWRTdHJpbmcgKilhdHRyaWJ1dGVkU3Vic3RyaW5n
RnJvbTooaW50KWZyb20gbGVuZ3RoOihpbnQpbGVuZ3RoCit7CisgICAgTlNPYmplY3QgPE5TVGV4
dElucHV0PiAqdGV4dElucHV0ID0gW3NlbGYgdGV4dElucHV0XTsKKworICAgIE5TTXV0YWJsZUF0
dHJpYnV0ZWRTdHJpbmcgKnJldCA9IFtbW05TTXV0YWJsZUF0dHJpYnV0ZWRTdHJpbmcgYWxsb2Nd
IGluaXRdIGF1dG9yZWxlYXNlXTsKKworICAgIGlmICh0ZXh0SW5wdXQpCisgICAgICAgIFtyZXQg
c2V0QXR0cmlidXRlZFN0cmluZzpbdGV4dElucHV0IGF0dHJpYnV0ZWRTdWJzdHJpbmdGcm9tUmFu
Z2U6TlNNYWtlUmFuZ2UoZnJvbSwgbGVuZ3RoKV1dOworICAgIAorICAgIHJldHVybiByZXQ7Cit9
CisKIC0gKE5TQXJyYXkgKiltYXJrZWRSYW5nZQogewogICAgIE5TT2JqZWN0IDxOU1RleHRJbnB1
dD4gKnRleHRJbnB1dCA9IFtzZWxmIHRleHRJbnB1dF07CkBAIC0yMTEsNCArMzE3LDExIEBACiAg
ICAgcmV0dXJuIG5pbDsKIH0KIAorLSAoTlNNdXRhYmxlQXR0cmlidXRlZFN0cmluZyAqKWF0dHJp
YnV0ZWRTdHJpbmdXaXRoU3RyaW5nOihOU1N0cmluZyAqKWFTdHJpbmcKK3sKKyAgICBOU011dGFi
bGVBdHRyaWJ1dGVkU3RyaW5nICpyZXQgPSBbW1tOU011dGFibGVBdHRyaWJ1dGVkU3RyaW5nIGFs
bG9jXSBpbml0XSBhdXRvcmVsZWFzZV07CisgICAgW3JldCBzZXRBdHRyaWJ1dGVkU3RyaW5nOltb
W05TQXR0cmlidXRlZFN0cmluZyBhbGxvY10gaW5pdFdpdGhTdHJpbmc6YVN0cmluZ10gYXV0b3Jl
bGVhc2VdXTsKKyAgICByZXR1cm4gcmV0OworfQorCiBAZW5kCg==
</data>
<flag name="review"
          id="743"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
      

    </bug>

</bugzilla>