<?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>9234</bug_id>
          
          <creation_ts>2006-06-02 08:42:14 -0700</creation_ts>
          <short_desc>Implement $&amp;, $&apos; and $` replacement codes in String.prototype.replace</short_desc>
          <delta_ts>2006-12-19 10:10:43 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</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></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>9205</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter>mitz</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ggaren</cc>
    
    <cc>Udo.Borkowski</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>44377</commentid>
    <comment_count>0</comment_count>
    <who name="">mitz</who>
    <bug_when>2006-06-02 08:42:14 -0700</bug_when>
    <thetext>According to Ecma-262 15.5.4.11, if replaceValue is a string, then $&amp; should be replaced with the matched substring, $` with everything preceding the matched substring, and $&apos; with everything following the matched substring. For example,

&quot;abcdefg&quot;.replace(/d(e)/, &quot;[$&amp;]&quot;) == &quot;abc[de]fg&quot; (currently achievable using $0)
&quot;abcdefg&quot;.replace(/d(e)/, &quot;[$`]&quot;) == &quot;abc[abc]fg&quot;
&quot;abcdefg&quot;.replace(/d(e)/, &quot;[$&apos;]&quot;) == &quot;abc[fg]fg&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>44378</commentid>
    <comment_count>1</comment_count>
      <attachid>8665</attachid>
    <who name="">mitz</who>
    <bug_when>2006-06-02 08:45:45 -0700</bug_when>
    <thetext>Created attachment 8665
Patch without test case and change log

This passes all JavaScriptCore tests and WebCore layout test, but I didn&apos;t know what kind of test to attach to it. Does it need to be a JSC test?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>44402</commentid>
    <comment_count>2</comment_count>
      <attachid>8665</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2006-06-02 11:28:53 -0700</bug_when>
    <thetext>Comment on attachment 8665
Patch without test case and change log

for (int i = 0; (i = substitutedReplacement.find(UString(&quot;$&quot;), i)) != -1; i++) {

This line confused the dickens out of me, because &apos;i = 0&apos; has no meaning, and &apos;i++&apos; has meaning only as a side-effect in the test that follows it. I know it&apos;s not something you changed, but consider one of these (maybe my perception is skewed):

int i = -1;
while ((i = substitutedReplacement.find(UString(&quot;$&quot;), i + 1)) != -1)

OR

for (int i = substitutedReplacement.find(UString(&quot;$&quot;)); i != -1; i = substitutedReplacement.find(UString(&quot;$&quot;), i + 1))

This comment would change, too:
      i += backrefLength - 1; // -1 offsets i++ (--&gt; &apos;i + 1&apos;)


Anyway, looks good. We discussed how to write a layout test, so I&apos;m going to clear the review bit for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>44430</commentid>
    <comment_count>3</comment_count>
      <attachid>8671</attachid>
    <who name="">mitz</who>
    <bug_when>2006-06-02 14:48:54 -0700</bug_when>
    <thetext>Created attachment 8671
Patch including change log and test

This patch also adds double-digit back references ($nn) as required by the spec.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>44498</commentid>
    <comment_count>4</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-06-02 21:52:38 -0700</bug_when>
    <thetext>Committed revision 14705.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41018</commentid>
    <comment_count>5</comment_count>
    <who name="">mitz</who>
    <bug_when>2006-12-19 10:10:43 -0800</bug_when>
    <thetext>*** Bug 7919 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>8665</attachid>
            <date>2006-06-02 08:45:45 -0700</date>
            <delta_ts>2006-06-02 15:31:26 -0700</delta_ts>
            <desc>Patch without test case and change log</desc>
            <filename>9234_r0.patch</filename>
            <type>text/plain</type>
            <size>2366</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL2tqcy9zdHJpbmdfb2JqZWN0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBKYXZhU2NyaXB0Q29yZS9ranMvc3RyaW5nX29iamVjdC5jcHAJKHJldmlzaW9uIDE0Njg0KQor
KysgSmF2YVNjcmlwdENvcmUva2pzL3N0cmluZ19vYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yMzUsMjAgKzIzNSwzNCBAQCBzdGF0aWMgaW5saW5lIFVTdHJpbmcgc3Vic3RpdHV0ZUJhY2ty
ZWZlCiAgIGJvb2wgY29udmVydGVkOwogCiAgIGZvciAoaW50IGkgPSAwOyAoaSA9IHN1YnN0aXR1
dGVkUmVwbGFjZW1lbnQuZmluZChVU3RyaW5nKCIkIiksIGkpKSAhPSAtMTsgaSsrKSB7Ci0gICAg
aWYgKGkrMSA8IHN1YnN0aXR1dGVkUmVwbGFjZW1lbnQuc2l6ZSgpICYmIHN1YnN0aXR1dGVkUmVw
bGFjZW1lbnRbaSsxXSA9PSAnJCcpIHsgIC8vICIkJCIgLT4gIiQiCisgICAgaWYgKGkrMSA9PSBz
dWJzdGl0dXRlZFJlcGxhY2VtZW50LnNpemUoKSkKKyAgICAgICAgYnJlYWs7CisgICAgS0pTOjpV
Q2hhciByZWYgPSBzdWJzdGl0dXRlZFJlcGxhY2VtZW50W2krMV07CisgICAgaW50IGJhY2tyZWZT
dGFydCA9IDA7CisgICAgaW50IGJhY2tyZWZMZW5ndGggPSAwOworICAgIGlmIChyZWYgPT0gJyQn
KSB7ICAvLyAiJCQiIC0+ICIkIgogICAgICAgc3Vic3RpdHV0ZWRSZXBsYWNlbWVudCA9IHN1YnN0
aXR1dGVkUmVwbGFjZW1lbnQuc3Vic3RyKDAsaSkgKyAiJCIgKyBzdWJzdGl0dXRlZFJlcGxhY2Vt
ZW50LnN1YnN0cihpKzIpOwogICAgICAgY29udGludWU7Ci0gICAgfQotICAgIC8vIEFzc3VtZSBu
dW1iZXIgcGFydCBpcyBvbmUgY2hhciBleGFjdGx5Ci0gICAgdW5zaWduZWQgYmFja3JlZkluZGV4
ID0gc3Vic3RpdHV0ZWRSZXBsYWNlbWVudC5zdWJzdHIoaSsxLDEpLnRvVUludDMyKCZjb252ZXJ0
ZWQsIGZhbHNlIC8qIHRvbGVyYXRlIGVtcHR5IHN0cmluZyAqLyk7Ci0gICAgaWYgKGNvbnZlcnRl
ZCAmJiBiYWNrcmVmSW5kZXggPD0gKHVuc2lnbmVkKXJlZy0+c3ViUGF0dGVybnMoKSkgewotICAg
ICAgaW50IGJhY2tyZWZTdGFydCA9IG92ZWN0b3JbMipiYWNrcmVmSW5kZXhdOwotICAgICAgaW50
IGJhY2tyZWZMZW5ndGggPSBvdmVjdG9yWzIqYmFja3JlZkluZGV4KzFdIC0gYmFja3JlZlN0YXJ0
OwotICAgICAgc3Vic3RpdHV0ZWRSZXBsYWNlbWVudCA9IHN1YnN0aXR1dGVkUmVwbGFjZW1lbnQu
c3Vic3RyKDAsaSkKLSAgICAgICAgKyBzb3VyY2Uuc3Vic3RyKGJhY2tyZWZTdGFydCwgYmFja3Jl
Zkxlbmd0aCkKLSAgICAgICAgKyBzdWJzdGl0dXRlZFJlcGxhY2VtZW50LnN1YnN0cihpKzIpOwot
ICAgICAgaSArPSBiYWNrcmVmTGVuZ3RoIC0gMTsgLy8gLTEgb2Zmc2V0cyBpKysKLSAgICB9Cisg
ICAgfSBlbHNlIGlmIChyZWYgPT0gJyYnKSB7CisgICAgICAgIGJhY2tyZWZTdGFydCA9IG92ZWN0
b3JbMF07CisgICAgICAgIGJhY2tyZWZMZW5ndGggPSBvdmVjdG9yWzFdIC0gYmFja3JlZlN0YXJ0
OworICAgIH0gZWxzZSBpZiAocmVmID09ICdgJykgeworICAgICAgICBiYWNrcmVmU3RhcnQgPSAw
OworICAgICAgICBiYWNrcmVmTGVuZ3RoID0gb3ZlY3RvclswXTsKKyAgICB9IGVsc2UgaWYgKHJl
ZiA9PSAnXCcnKSB7CisgICAgICAgIGJhY2tyZWZTdGFydCA9IG92ZWN0b3JbMV07CisgICAgICAg
IGJhY2tyZWZMZW5ndGggPSBzb3VyY2Uuc2l6ZSgpIC0gYmFja3JlZlN0YXJ0OworICAgIH0gZWxz
ZSB7CisgICAgICAgIHVuc2lnbmVkIGJhY2tyZWZJbmRleCA9IHN1YnN0aXR1dGVkUmVwbGFjZW1l
bnQuc3Vic3RyKGkrMSwxKS50b1VJbnQzMigmY29udmVydGVkLCBmYWxzZSAvKiB0b2xlcmF0ZSBl
bXB0eSBzdHJpbmcgKi8pOworICAgICAgICBpZiAoIWNvbnZlcnRlZCB8fCBiYWNrcmVmSW5kZXgg
PiAodW5zaWduZWQpcmVnLT5zdWJQYXR0ZXJucygpKQorICAgICAgICAgICAgY29udGludWU7Cisg
ICAgICAgIGJhY2tyZWZTdGFydCA9IG92ZWN0b3JbMipiYWNrcmVmSW5kZXhdOworICAgICAgICBi
YWNrcmVmTGVuZ3RoID0gb3ZlY3RvclsyKmJhY2tyZWZJbmRleCsxXSAtIGJhY2tyZWZTdGFydDsK
KyAgICB9CisgICAgc3Vic3RpdHV0ZWRSZXBsYWNlbWVudCA9IHN1YnN0aXR1dGVkUmVwbGFjZW1l
bnQuc3Vic3RyKDAsaSkKKyAgICAgICsgc291cmNlLnN1YnN0cihiYWNrcmVmU3RhcnQsIGJhY2ty
ZWZMZW5ndGgpCisgICAgICArIHN1YnN0aXR1dGVkUmVwbGFjZW1lbnQuc3Vic3RyKGkrMik7Cisg
ICAgaSArPSBiYWNrcmVmTGVuZ3RoIC0gMTsgLy8gLTEgb2Zmc2V0cyBpKysKICAgfQogCiAgIHJl
dHVybiBzdWJzdGl0dXRlZFJlcGxhY2VtZW50Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>8671</attachid>
            <date>2006-06-02 14:48:54 -0700</date>
            <delta_ts>2006-06-02 15:47:54 -0700</delta_ts>
            <desc>Patch including change log and test</desc>
            <filename>9234_r1.patch</filename>
            <type>text/plain</type>
            <size>7458</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0NjkyKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMDYtMDYtIyMgIE1pdHogUGV0
dGVsICA8b3BlbmRhcndpbi5vcmdAbWl0enBldHRlbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgLSBodHRwOi8vYnVnemlsbGEub3BlbmRhcndp
bi5vcmcvc2hvd19idWcuY2dpP2lkPTkyMzQKKyAgICAgICAgICBJbXBsZW1lbnQgJCYsICQnIGFu
ZCAkYCByZXBsYWNlbWVudCBjb2RlcyBpbiBTdHJpbmcucHJvdG90eXBlLnJlcGxhY2UKKworICAg
ICAgICBUZXN0OiBmYXN0L2pzL3N0cmluZy1yZXBsYWNlLTMuaHRtbAorCisgICAgICAgICoga2pz
L3N0cmluZ19vYmplY3QuY3BwOgorICAgICAgICAoc3Vic3RpdHV0ZUJhY2tyZWZlcmVuY2VzKTog
QWRkZWQgc3VwcG9ydCBmb3IgJCYgKG1hdGNoZWQgc3Vic3RyaW5nKSwKKyAgICAgICAgJGAgKGV2
ZXJ5dGhpbmcgcHJlY2VkaW5nIG1hdGNoZWQgc3Vic3RyaW5nKSwgJCcgKGV2ZXJ5dGhpbmcgZm9s
bG93aW5nCisgICAgICAgIG1hdGNoZWQgc3Vic3RyaW5nKSBhbmQgMi1kaWdpdCBiYWNrIHJlZmVy
ZW5jZXMsIGFuZCBjbGVhbmVkIHVwIGEgbGl0dGxlLgorCiAyMDA2LTA1LTI2ICBTdGV2ZSBGYWxr
ZW5idXJnICA8c2ZhbGtlbkBhcHBsZS5jb20+CiAKICAgICAgICAgQnVpbGQgZml4ZXMvdHdlYWtz
CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ranMvc3RyaW5nX29iamVjdC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gSmF2YVNjcmlwdENvcmUva2pzL3N0cmluZ19vYmplY3QuY3BwCShyZXZpc2lvbiAxNDY4NykK
KysrIEphdmFTY3JpcHRDb3JlL2tqcy9zdHJpbmdfb2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjMyLDIzICsyMzIsNDkgQEAgc3RhdGljIGlubGluZSBVU3RyaW5nIHN1YnN0aXR1dGVCYWNr
cmVmZQogewogICBVU3RyaW5nIHN1YnN0aXR1dGVkUmVwbGFjZW1lbnQgPSByZXBsYWNlbWVudDsK
IAotICBib29sIGNvbnZlcnRlZDsKKyAgaW50IGkgPSAtMTsKKyAgd2hpbGUgKChpID0gc3Vic3Rp
dHV0ZWRSZXBsYWNlbWVudC5maW5kKFVTdHJpbmcoIiQiKSwgaSArIDEpKSAhPSAtMSkgeworICAg
IGlmIChpKzEgPT0gc3Vic3RpdHV0ZWRSZXBsYWNlbWVudC5zaXplKCkpCisgICAgICAgIGJyZWFr
OwogCi0gIGZvciAoaW50IGkgPSAwOyAoaSA9IHN1YnN0aXR1dGVkUmVwbGFjZW1lbnQuZmluZChV
U3RyaW5nKCIkIiksIGkpKSAhPSAtMTsgaSsrKSB7Ci0gICAgaWYgKGkrMSA8IHN1YnN0aXR1dGVk
UmVwbGFjZW1lbnQuc2l6ZSgpICYmIHN1YnN0aXR1dGVkUmVwbGFjZW1lbnRbaSsxXSA9PSAnJCcp
IHsgIC8vICIkJCIgLT4gIiQiCi0gICAgICBzdWJzdGl0dXRlZFJlcGxhY2VtZW50ID0gc3Vic3Rp
dHV0ZWRSZXBsYWNlbWVudC5zdWJzdHIoMCxpKSArICIkIiArIHN1YnN0aXR1dGVkUmVwbGFjZW1l
bnQuc3Vic3RyKGkrMik7Ci0gICAgICBjb250aW51ZTsKLSAgICB9Ci0gICAgLy8gQXNzdW1lIG51
bWJlciBwYXJ0IGlzIG9uZSBjaGFyIGV4YWN0bHkKLSAgICB1bnNpZ25lZCBiYWNrcmVmSW5kZXgg
PSBzdWJzdGl0dXRlZFJlcGxhY2VtZW50LnN1YnN0cihpKzEsMSkudG9VSW50MzIoJmNvbnZlcnRl
ZCwgZmFsc2UgLyogdG9sZXJhdGUgZW1wdHkgc3RyaW5nICovKTsKLSAgICBpZiAoY29udmVydGVk
ICYmIGJhY2tyZWZJbmRleCA8PSAodW5zaWduZWQpcmVnLT5zdWJQYXR0ZXJucygpKSB7Ci0gICAg
ICBpbnQgYmFja3JlZlN0YXJ0ID0gb3ZlY3RvclsyKmJhY2tyZWZJbmRleF07Ci0gICAgICBpbnQg
YmFja3JlZkxlbmd0aCA9IG92ZWN0b3JbMipiYWNrcmVmSW5kZXgrMV0gLSBiYWNrcmVmU3RhcnQ7
Ci0gICAgICBzdWJzdGl0dXRlZFJlcGxhY2VtZW50ID0gc3Vic3RpdHV0ZWRSZXBsYWNlbWVudC5z
dWJzdHIoMCxpKQotICAgICAgICArIHNvdXJjZS5zdWJzdHIoYmFja3JlZlN0YXJ0LCBiYWNrcmVm
TGVuZ3RoKQotICAgICAgICArIHN1YnN0aXR1dGVkUmVwbGFjZW1lbnQuc3Vic3RyKGkrMik7Ci0g
ICAgICBpICs9IGJhY2tyZWZMZW5ndGggLSAxOyAvLyAtMSBvZmZzZXRzIGkrKwotICAgIH0KKyAg
ICB1bnNpZ25lZCBzaG9ydCByZWYgPSBzdWJzdGl0dXRlZFJlcGxhY2VtZW50W2krMV0udW5pY29k
ZSgpOworICAgIGludCBiYWNrcmVmU3RhcnQgPSAwOworICAgIGludCBiYWNrcmVmTGVuZ3RoID0g
MDsKKyAgICBpbnQgYWR2YW5jZSA9IDA7CisKKyAgICBpZiAocmVmID09ICckJykgeyAgLy8gIiQk
IiAtPiAiJCIKKyAgICAgICAgc3Vic3RpdHV0ZWRSZXBsYWNlbWVudCA9IHN1YnN0aXR1dGVkUmVw
bGFjZW1lbnQuc3Vic3RyKDAsIGkgKyAxKSArIHN1YnN0aXR1dGVkUmVwbGFjZW1lbnQuc3Vic3Ry
KGkgKyAyKTsKKyAgICAgICAgY29udGludWU7CisgICAgfSBlbHNlIGlmIChyZWYgPT0gJyYnKSB7
CisgICAgICAgIGJhY2tyZWZTdGFydCA9IG92ZWN0b3JbMF07CisgICAgICAgIGJhY2tyZWZMZW5n
dGggPSBvdmVjdG9yWzFdIC0gYmFja3JlZlN0YXJ0OworICAgIH0gZWxzZSBpZiAocmVmID09ICdg
JykgeworICAgICAgICBiYWNrcmVmU3RhcnQgPSAwOworICAgICAgICBiYWNrcmVmTGVuZ3RoID0g
b3ZlY3RvclswXTsKKyAgICB9IGVsc2UgaWYgKHJlZiA9PSAnXCcnKSB7CisgICAgICAgIGJhY2ty
ZWZTdGFydCA9IG92ZWN0b3JbMV07CisgICAgICAgIGJhY2tyZWZMZW5ndGggPSBzb3VyY2Uuc2l6
ZSgpIC0gYmFja3JlZlN0YXJ0OworICAgIH0gZWxzZSBpZiAocmVmID49ICcwJyAmJiByZWYgPD0g
JzknKSB7CisgICAgICAgIC8vIDEtIGFuZCAyLWRpZ2l0IGJhY2sgcmVmZXJlbmNlcyBhcmUgYWxs
b3dlZAorICAgICAgICB1bnNpZ25lZCBiYWNrcmVmSW5kZXggPSByZWYgLSAnMCc7CisgICAgICAg
IGlmIChzdWJzdGl0dXRlZFJlcGxhY2VtZW50LnNpemUoKSA+IGkgKyAyKSB7CisgICAgICAgICAg
ICByZWYgPSBzdWJzdGl0dXRlZFJlcGxhY2VtZW50W2krMl0udW5pY29kZSgpOworICAgICAgICAg
ICAgaWYgKHJlZiA+PSAnMCcgJiYgcmVmIDw9ICc5JykgeworICAgICAgICAgICAgICAgIGJhY2ty
ZWZJbmRleCA9IDEwICogYmFja3JlZkluZGV4ICsgcmVmIC0gJzAnOworICAgICAgICAgICAgICAg
IGFkdmFuY2UgPSAxOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChiYWNr
cmVmSW5kZXggPiAodW5zaWduZWQpcmVnLT5zdWJQYXR0ZXJucygpKSB7CisgICAgICAgICAgICBp
ICs9IGFkdmFuY2U7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorICAgICAgICBi
YWNrcmVmU3RhcnQgPSBvdmVjdG9yWzIgKiBiYWNrcmVmSW5kZXhdOworICAgICAgICBiYWNrcmVm
TGVuZ3RoID0gb3ZlY3RvclsyICogYmFja3JlZkluZGV4ICsgMV0gLSBiYWNrcmVmU3RhcnQ7Cisg
ICAgfSBlbHNlCisgICAgICAgIGNvbnRpbnVlOworCisgICAgc3Vic3RpdHV0ZWRSZXBsYWNlbWVu
dCA9IHN1YnN0aXR1dGVkUmVwbGFjZW1lbnQuc3Vic3RyKDAsIGkpICsgc291cmNlLnN1YnN0cihi
YWNrcmVmU3RhcnQsIGJhY2tyZWZMZW5ndGgpICsgc3Vic3RpdHV0ZWRSZXBsYWNlbWVudC5zdWJz
dHIoaSArIDIgKyBhZHZhbmNlKTsKKyAgICBpICs9IGJhY2tyZWZMZW5ndGggLSAxOyAvLyAtIDEg
b2Zmc2V0cyAnaSArIDEnCiAgIH0KIAogICByZXR1cm4gc3Vic3RpdHV0ZWRSZXBsYWNlbWVudDsK
SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE0NjkyKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDYtMDYtIyMgIE1pdHogUGV0dGVsICA8b3Bl
bmRhcndpbi5vcmdAbWl0enBldHRlbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgLSB0ZXN0IGZvciBodHRwOi8vYnVnemlsbGEub3BlbmRhcndp
bi5vcmcvc2hvd19idWcuY2dpP2lkPTkyMzQKKyAgICAgICAgICBJbXBsZW1lbnQgJCYsICQnIGFu
ZCAkYCByZXBsYWNlbWVudCBjb2RlcyBpbiBTdHJpbmcucHJvdG90eXBlLnJlcGxhY2UKKworICAg
ICAgICAqIGZhc3QvanMvcmVzb3VyY2VzL3N0cmluZy1yZXBsYWNlLTMuanM6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvanMvc3RyaW5nLXJlcGxhY2UtMy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvanMvc3RyaW5nLXJlcGxhY2UtMy5odG1sOiBBZGRlZC4KKwogMjAwNi0wNi0w
MiAgUsOpbWkgWmFyYSAgPHJlbWlfemFyYUBtYWMuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IEh5YXR0LgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9yZXNvdXJjZXMvc3RyaW5nLXJlcGxh
Y2UtMy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL3Jlc291cmNlcy9zdHJp
bmctcmVwbGFjZS0zLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9yZXNv
dXJjZXMvc3RyaW5nLXJlcGxhY2UtMy5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNyBAQAor
ZGVzY3JpcHRpb24oCisiU3RyaW5nLnJlcGxhY2UoJmhlbGxpcDspIHRlc3QgJm1kYXNoOyAkJmFt
cDssICRgLCAkJyBhbmQgJG5uIgorKTsKKwordmFyIHRlc3RTdHJpbmcgPSAiSXQncyB0aGUgZW5k
IG9mIHRoZSB3b3JsZCBhcyB3ZSBrbm93IGl0LCBhbmQgSSBmZWVsIGZpbmUuIjsKK3Nob3VsZEJl
KCJ0ZXN0U3RyaW5nIiwKKyAgICAgICAgICJcIkl0J3MgdGhlIGVuZCBvZiB0aGUgd29ybGQgYXMg
d2Uga25vdyBpdCwgYW5kIEkgZmVlbCBmaW5lLlwiIik7CitzaG91bGRCZSgidGVzdFN0cmluZy5y
ZXBsYWNlKC9JIGZlZWwvLCAneWV0ICQmIGp1c3QnKSIsCisgICAgICAgICAiXCJJdCdzIHRoZSBl
bmQgb2YgdGhlIHdvcmxkIGFzIHdlIGtub3cgaXQsIGFuZCB5ZXQgSSBmZWVsIGp1c3QgZmluZS5c
IiIpOworc2hvdWxkQmUoInRlc3RTdHJpbmcucmVwbGFjZSgvdGhlIGVuZC8sICduaWNlLiAkYGEg
cGljdHVyZScpIiwKKyAgICAgICAgICJcIkl0J3MgbmljZS4gSXQncyBhIHBpY3R1cmUgb2YgdGhl
IHdvcmxkIGFzIHdlIGtub3cgaXQsIGFuZCBJIGZlZWwgZmluZS5cIiIpOworc2hvdWxkQmUoJ3Rl
c3RTdHJpbmcucmVwbGFjZSgvZmVlbCBmaW4vLCAiYW0gZ29uJFwnIEJ5IiknLAorICAgICAgICAg
IlwiSXQncyB0aGUgZW5kIG9mIHRoZSB3b3JsZCBhcyB3ZSBrbm93IGl0LCBhbmQgSSBhbSBnb25l
LiBCeWUuXCIiKTsKK3Nob3VsZEJlKCJ0ZXN0U3RyaW5nLnJlcGxhY2UoLyh0KShoKShlIGUpKG4p
KGQpKCBvKShmKSggKSh0KShoKShlICkoW15yXSopKHJsZCkvLCAnbm90ICQxMm9sbHkgbWFtbW90
aCcpIiwKKyAgICAgICAgICJcIkl0J3Mgbm90IHdvb2xseSBtYW1tb3RoIGFzIHdlIGtub3cgaXQs
IGFuZCBJIGZlZWwgZmluZS5cIiIpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvc3RyaW5nLXJlcGxhY2UtMy1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9zdHJpbmctcmVwbGFjZS0zLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvanMvc3RyaW5nLXJlcGxh
Y2UtMy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTQgQEAKK1N0cmluZy5y
ZXBsYWNlKOKApikgdGVzdCDigJQgJCYsICRgLCAkJyBhbmQgJG5uCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitQQVNTIHRlc3RTdHJpbmcgaXMgIkl0J3MgdGhlIGVuZCBvZiB0aGUg
d29ybGQgYXMgd2Uga25vdyBpdCwgYW5kIEkgZmVlbCBmaW5lLiIKK1BBU1MgdGVzdFN0cmluZy5y
ZXBsYWNlKC9JIGZlZWwvLCAneWV0ICQmIGp1c3QnKSBpcyAiSXQncyB0aGUgZW5kIG9mIHRoZSB3
b3JsZCBhcyB3ZSBrbm93IGl0LCBhbmQgeWV0IEkgZmVlbCBqdXN0IGZpbmUuIgorUEFTUyB0ZXN0
U3RyaW5nLnJlcGxhY2UoL3RoZSBlbmQvLCAnbmljZS4gJGBhIHBpY3R1cmUnKSBpcyAiSXQncyBu
aWNlLiBJdCdzIGEgcGljdHVyZSBvZiB0aGUgd29ybGQgYXMgd2Uga25vdyBpdCwgYW5kIEkgZmVl
bCBmaW5lLiIKK1BBU1MgdGVzdFN0cmluZy5yZXBsYWNlKC9mZWVsIGZpbi8sICJhbSBnb24kJyBC
eSIpIGlzICJJdCdzIHRoZSBlbmQgb2YgdGhlIHdvcmxkIGFzIHdlIGtub3cgaXQsIGFuZCBJIGFt
IGdvbmUuIEJ5ZS4iCitQQVNTIHRlc3RTdHJpbmcucmVwbGFjZSgvKHQpKGgpKGUgZSkobikoZCko
IG8pKGYpKCApKHQpKGgpKGUgKShbXnJdKikocmxkKS8sICdub3QgJDEyb2xseSBtYW1tb3RoJykg
aXMgIkl0J3Mgbm90IHdvb2xseSBtYW1tb3RoIGFzIHdlIGtub3cgaXQsIGFuZCBJIGZlZWwgZmlu
ZS4iCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9zdHJpbmctcmVwbGFjZS0zLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9zdHJpbmctcmVwbGFjZS0zLmh0bWwJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL3N0cmluZy1yZXBsYWNlLTMuaHRtbAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9E
VEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJl
Zj0icmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3Jp
cHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InJlc291
cmNlcy9zdHJpbmctcmVwbGFjZS0zLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>
<flag name="review"
          id="2500"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>