<?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>15902</bug_id>
          
          <creation_ts>2007-11-08 14:09:02 -0800</creation_ts>
          <short_desc>15% of string-validate-input.js is spent compiling the same regular expression</short_desc>
          <delta_ts>2007-11-11 20:31:03 -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>528+ (Nightly build)</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>
          <dependson>15861</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Geoffrey Garen">ggaren</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          <cc>eric</cc>
    
    <cc>mjs</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>60671</commentid>
    <comment_count>0</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2007-11-08 14:09:02 -0800</bug_when>
    <thetext>A short history:

In bug 15861, we concluded that, for compatibility with Firefox and ECMA3, we should create a single, persistent RegExpImp (JS wrapper) per regular expression literal in the AST.

However, IE6 creates a new JS wrapper each time the regular expression literal is evaluated. Also, Firefox&apos;s behavior has caused many compatibility problems. (See https://bugzilla.mozilla.org/show_bug.cgi?id=98409.) And, as a result of these facts, the current draft of ECMA4 contradicts ECMA3 and specifies the IE6 behavior. (See http://www.ecmascript.org/es4/spec/incompatibilities.pdf.)

So, I don&apos;t think we should create a single, persistent RegExpImp (JS wrapper) per regular expression literal in the AST.

However, building on the work in bug 15861, I think we can store a compiled RegExp in the AST, for a performance win.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60672</commentid>
    <comment_count>1</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-11-08 14:11:20 -0800</bug_when>
    <thetext>I think perhaps we should dup bug 15900 to this one :)

Got to love web compatibility!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60697</commentid>
    <comment_count>2</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2007-11-08 15:48:41 -0800</bug_when>
    <thetext>*** Bug 15900 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60789</commentid>
    <comment_count>3</comment_count>
      <attachid>17159</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2007-11-09 11:42:26 -0800</bug_when>
    <thetext>Created attachment 17159
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60947</commentid>
    <comment_count>4</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2007-11-11 20:31:03 -0800</bug_when>
    <thetext>Committed revision 27702.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17159</attachid>
            <date>2007-11-09 11:42:26 -0800</date>
            <delta_ts>2007-11-09 17:26:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch-regexp-ast.txt</filename>
            <type>text/plain</type>
            <size>8888</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDI3NjIw
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzAgQEAKKzIwMDctMTEt
MDkgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIEZpeGVkIGh0dHA6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTAyCisgICAgICAgIDE1JSBvZiBzdHJpbmct
dmFsaWRhdGUtaW5wdXQuanMgaXMgc3BlbnQgY29tcGlsaW5nIHRoZSBzYW1lIHJlZ3VsYXIgZXhw
cmVzc2lvbgorICAgICAgICAKKyAgICAgICAgU3RvcmUgYSBjb21waWxlZCByZXByZXNlbnRhdGlv
biBvZiB0aGUgcmVndWxhciBleHByZXNzaW9uIGluIHRoZSBBU1QuCisgICAgICAgIAorICAgICAg
ICBPbmx5IGEgLjIlIFN1blNwaWRlciBzcGVlZHVwIG92ZXJhbGwsIGJ1dCBhIDEwLjYlIHNwZWVk
dXAgb24gCisgICAgICAgIHN0cmluZy12YWxpZGF0ZS1pbnB1dC5qcy4KKworICAgICAgICAqIGtq
cy9ub2Rlcy5jcHA6CisgICAgICAgIChLSlM6OlJlZ0V4cE5vZGU6OmV2YWx1YXRlKToKKyAgICAg
ICAgKiBranMvbm9kZXMuaDoKKyAgICAgICAgKEtKUzo6UmVnRXhwTm9kZTo6KToKKyAgICAgICAg
KiBranMvbm9kZXMyc3RyaW5nLmNwcDoKKyAgICAgICAgKEtKUzo6UmVnRXhwTm9kZTo6c3RyZWFt
VG8pOgorICAgICAgICAqIGtqcy9yZWdleHAuY3BwOgorICAgICAgICAoS0pTOjpSZWdFeHA6OmZs
YWdzKToKKyAgICAgICAgKiBranMvcmVnZXhwLmg6CisgICAgICAgIChLSlM6OlJlZ0V4cDo6cGF0
dGVybik6CisgICAgICAgICoga2pzL3JlZ2V4cF9vYmplY3QuY3BwOgorICAgICAgICAoS0pTOjpS
ZWdFeHBPYmplY3RJbXA6OmNvbnN0cnVjdCk6CisgICAgICAgIChLSlM6OlJlZ0V4cE9iamVjdElt
cDo6Y3JlYXRlUmVnRXhwSW1wKToKKyAgICAgICAgKiBranMvcmVnZXhwX29iamVjdC5oOgorCiAy
MDA3LTExLTA4ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgU2FtLgpJbmRleDoga2pzL25vZGVzMnN0cmluZy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
a2pzL25vZGVzMnN0cmluZy5jcHAJKHJldmlzaW9uIDI3NjIwKQorKysga2pzL25vZGVzMnN0cmlu
Zy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4NSw3ICsyODUsNyBAQCB2b2lkIFN0cmluZ05vZGU6
OnN0cmVhbVRvKFNvdXJjZVN0cmVhbSYgCiAKIHZvaWQgUmVnRXhwTm9kZTo6c3RyZWFtVG8oU291
cmNlU3RyZWFtJiBzKSBjb25zdAogeyAKLSAgICBzIDw8ICcvJyA8PCAgcGF0dGVybiA8PCAnLycg
PDwgZmxhZ3M7IAorICAgIHMgPDwgJy8nIDw8ICBtX3JlZ0V4cC0+cGF0dGVybigpIDw8ICcvJyA8
PCBtX3JlZ0V4cC0+ZmxhZ3MoKTsKIH0KIAogdm9pZCBUaGlzTm9kZTo6c3RyZWFtVG8oU291cmNl
U3RyZWFtJiBzKSBjb25zdApJbmRleDoga2pzL25vZGVzLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBranMv
bm9kZXMuY3BwCShyZXZpc2lvbiAyNzYyMCkKKysrIGtqcy9ub2Rlcy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQwNSwxNCArNDA1LDkgQEAgZG91YmxlIFN0cmluZ05vZGU6OmV2YWx1YXRlVG9OdW1i
ZXIoRXhlYwogICAgIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFJlZ0V4cE5v
ZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotSlNWYWx1ZSAqUmVnRXhw
Tm9kZTo6ZXZhbHVhdGUoRXhlY1N0YXRlICpleGVjKQorSlNWYWx1ZSogUmVnRXhwTm9kZTo6ZXZh
bHVhdGUoRXhlY1N0YXRlKiBleGVjKQogewotICBMaXN0IGxpc3Q7Ci0gIGxpc3QuYXBwZW5kKGpz
T3duZWRTdHJpbmcocGF0dGVybikpOwotICBsaXN0LmFwcGVuZChqc093bmVkU3RyaW5nKGZsYWdz
KSk7Ci0KLSAgSlNPYmplY3QgKnJlZyA9IGV4ZWMtPmxleGljYWxJbnRlcnByZXRlcigpLT5idWls
dGluUmVnRXhwKCk7Ci0gIHJldHVybiByZWctPmNvbnN0cnVjdChleGVjLGxpc3QpOworICAgIHJl
dHVybiBleGVjLT5sZXhpY2FsSW50ZXJwcmV0ZXIoKS0+YnVpbHRpblJlZ0V4cCgpLT5jcmVhdGVS
ZWdFeHBJbXAoZXhlYywgbV9yZWdFeHApOwogfQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0gVGhpc05vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpJ
bmRleDoga2pzL25vZGVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga2pzL25vZGVzLmgJKHJldmlzaW9uIDI3
NjIwKQorKysga2pzL25vZGVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKIAog
I2luY2x1ZGUgIlBhcnNlci5oIgogI2luY2x1ZGUgImludGVybmFsLmgiCisjaW5jbHVkZSAiUmVn
RXhwLmgiCiAjaW5jbHVkZSAiU3ltYm9sVGFibGUuaCIKICNpbmNsdWRlIDx3dGYvTGlzdFJlZlB0
ci5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KQEAgLTI0NiwxMyArMjQ3LDE1IEBAIG5hbWVz
cGFjZSBLSlMgewogCiAgIGNsYXNzIFJlZ0V4cE5vZGUgOiBwdWJsaWMgTm9kZSB7CiAgIHB1Ymxp
YzoKLSAgICBSZWdFeHBOb2RlKGNvbnN0IFVTdHJpbmcgJnAsIGNvbnN0IFVTdHJpbmcgJmYpIEtK
U19GQVNUX0NBTEwgCi0gICAgICA6IHBhdHRlcm4ocCksIGZsYWdzKGYpIHsgfQorICAgIFJlZ0V4
cE5vZGUoY29uc3QgVVN0cmluZyYgcGF0dGVybiwgY29uc3QgVVN0cmluZyYgZmxhZ3MpIEtKU19G
QVNUX0NBTEwgCisgICAgICAgIDogbV9yZWdFeHAobmV3IFJlZ0V4cChwYXR0ZXJuLCBmbGFncykp
CisgICAgeworICAgIH0KICAgICBKU1ZhbHVlKiBldmFsdWF0ZShFeGVjU3RhdGUqKSBLSlNfRkFT
VF9DQUxMOwogICAgIHZpcnR1YWwgdm9pZCBzdHJlYW1UbyhTb3VyY2VTdHJlYW0mKSBjb25zdCBL
SlNfRkFTVF9DQUxMOwogICAgIHZpcnR1YWwgUHJlY2VkZW5jZSBwcmVjZWRlbmNlKCkgY29uc3Qg
eyByZXR1cm4gUHJlY1ByaW1hcnk7IH0KICAgcHJpdmF0ZToKLSAgICBVU3RyaW5nIHBhdHRlcm4s
IGZsYWdzOworICAgIFJlZlB0cjxSZWdFeHA+IG1fcmVnRXhwOwogICB9OwogCiAgIGNsYXNzIFRo
aXNOb2RlIDogcHVibGljIE5vZGUgewpJbmRleDoga2pzL3JlZ2V4cC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0ga2pzL3JlZ2V4cC5jcHAJKHJldmlzaW9uIDI3NjIwKQorKysga2pzL3JlZ2V4cC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEsNyArMSw4IEBACiAvLyAtKi0gYy1iYXNpYy1vZmZzZXQ6IDIgLSot
CiAvKgogICogIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgbGlicmFyaWVzCi0gKiAgQ29w
eXJpZ2h0IChDKSAxOTk5LTIwMDEsMjAwNCBIYXJyaSBQb3J0ZW4gKHBvcnRlbkBrZGUub3JnKQor
ICogIENvcHlyaWdodCAoQykgMTk5OS0yMDAxLCAyMDA0IEhhcnJpIFBvcnRlbiAocG9ydGVuQGtk
ZS5vcmcpCisgKiAgQ29weXJpZ2h0IChjKSAyMDA3LCBBcHBsZSBJbmMuCiAgKgogICogIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
ICAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg
UHVibGljCkBAIC0zMywxMiArMzQsMTIgQEAgbmFtZXNwYWNlIEtKUyB7CiBSZWdFeHA6OlJlZ0V4
cChjb25zdCBVU3RyaW5nJiBwYXR0ZXJuKQogICA6IG1fcmVmQ291bnQoMCkKICAgLCBtX3BhdHRl
cm4ocGF0dGVybikKLSAgLCBtX2ZsYWdzKDApCisgICwgbV9mbGFnQml0cygwKQogICAsIG1fY29u
c3RydWN0aW9uRXJyb3IoMCkKICAgLCBtX251bVN1YnBhdHRlcm5zKDApCiB7CiAgICAgY29uc3Qg
Y2hhciogZXJyb3JNZXNzYWdlOwotICAgIG1fcmVnRXhwID0ganNSZWdFeHBDb21waWxlKHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgSlNSZWdFeHBDaGFyKj4obV9wYXR0ZXJuLmRhdGEoKSksIG1fcGF0
dGVybi5zaXplKCksIDAsICZtX251bVN1YnBhdHRlcm5zLCAmZXJyb3JNZXNzYWdlKTsKKyAgICBt
X3JlZ0V4cCA9IGpzUmVnRXhwQ29tcGlsZShyZWludGVycHJldF9jYXN0PGNvbnN0IEpTUmVnRXhw
Q2hhcio+KHBhdHRlcm4uZGF0YSgpKSwgcGF0dGVybi5zaXplKCksIDAsICZtX251bVN1YnBhdHRl
cm5zLCAmZXJyb3JNZXNzYWdlKTsKICAgICBpZiAoIW1fcmVnRXhwKQogICAgICAgICBtX2NvbnN0
cnVjdGlvbkVycm9yID0gc3RyZHVwKGVycm9yTWVzc2FnZSk7CiB9CkBAIC00NiwyOSArNDcsMzAg
QEAgUmVnRXhwOjpSZWdFeHAoY29uc3QgVVN0cmluZyYgcGF0dGVybikKIFJlZ0V4cDo6UmVnRXhw
KGNvbnN0IFVTdHJpbmcmIHBhdHRlcm4sIGNvbnN0IFVTdHJpbmcmIGZsYWdzKQogICA6IG1fcmVm
Q291bnQoMCkKICAgLCBtX3BhdHRlcm4ocGF0dGVybikKLSAgLCBtX2ZsYWdzKDApCisgICwgbV9m
bGFncyhmbGFncykKKyAgLCBtX2ZsYWdCaXRzKDApCiAgICwgbV9jb25zdHJ1Y3Rpb25FcnJvcigw
KQogICAsIG1fbnVtU3VicGF0dGVybnMoMCkKIHsKICAgICAvLyBOT1RFOiBUaGUgZ2xvYmFsIGZs
YWcgaXMgaGFuZGxlZCBvbiBhIGNhc2UtYnktY2FzZSBiYXNpcyBieSBmdW5jdGlvbnMgbGlrZQog
ICAgIC8vIFN0cmluZzo6bWF0Y2ggYW5kIFJlZ0V4cEltcDo6bWF0Y2guCiAgICAgaWYgKGZsYWdz
LmZpbmQoJ2cnKSAhPSAtMSkKLSAgICAgICAgbV9mbGFncyB8PSBHbG9iYWw7CisgICAgICAgIG1f
ZmxhZ0JpdHMgfD0gR2xvYmFsOwogCiAgICAgLy8gRklYTUU6IEVsaW1pbmF0ZSBkdXBsaWNhdGlv
biBieSBhZGRpbmcgYSB3YXkgYXNrIGEgSlNSZWdFeHAgd2hhdCBpdHMgZmxhZ3MgYXJlLgogICAg
IGludCBvcHRpb25zID0gMDsKICAgICBpZiAoZmxhZ3MuZmluZCgnaScpICE9IC0xKSB7Ci0gICAg
ICAgIG1fZmxhZ3MgfD0gSWdub3JlQ2FzZTsKKyAgICAgICAgbV9mbGFnQml0cyB8PSBJZ25vcmVD
YXNlOwogICAgICAgICBvcHRpb25zIHw9IEpTX1JFR0VYUF9DQVNFTEVTUzsKICAgICB9CiAKICAg
ICBpZiAoZmxhZ3MuZmluZCgnbScpICE9IC0xKSB7Ci0gICAgICAgIG1fZmxhZ3MgfD0gTXVsdGls
aW5lOworICAgICAgICBtX2ZsYWdCaXRzIHw9IE11bHRpbGluZTsKICAgICAgICAgb3B0aW9ucyB8
PSBKU19SRUdFWFBfTVVMVElMSU5FOwogICAgIH0KICAgICAKICAgICBjb25zdCBjaGFyKiBlcnJv
ck1lc3NhZ2U7Ci0gICAgbV9yZWdFeHAgPSBqc1JlZ0V4cENvbXBpbGUocmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBKU1JlZ0V4cENoYXIqPihtX3BhdHRlcm4uZGF0YSgpKSwgbV9wYXR0ZXJuLnNpemUo
KSwgb3B0aW9ucywgJm1fbnVtU3VicGF0dGVybnMsICZlcnJvck1lc3NhZ2UpOworICAgIG1fcmVn
RXhwID0ganNSZWdFeHBDb21waWxlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgSlNSZWdFeHBDaGFy
Kj4obV9wYXR0ZXJuLmRhdGEoKSksIHBhdHRlcm4uc2l6ZSgpLCBvcHRpb25zLCAmbV9udW1TdWJw
YXR0ZXJucywgJmVycm9yTWVzc2FnZSk7CiAgICAgaWYgKCFtX3JlZ0V4cCkKICAgICAgICAgbV9j
b25zdHJ1Y3Rpb25FcnJvciA9IHN0cmR1cChlcnJvck1lc3NhZ2UpOwogfQpJbmRleDoga2pzL3Jl
Z2V4cC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIGtqcy9yZWdleHAuaAkocmV2aXNpb24gMjc2MjApCisrKyBr
anMvcmVnZXhwLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDEwICs0NiwxMiBAQCBuYW1lc3BhY2Ug
S0pTIHsKICAgICB2b2lkIGRlcmVmKCkgeyBpZiAoLS1tX3JlZkNvdW50ID09IDApIGRlbGV0ZSB0
aGlzOyB9CiAgICAgaW50IHJlZkNvdW50KCkgeyByZXR1cm4gbV9yZWZDb3VudDsgfQogCi0gICAg
Ym9vbCBnbG9iYWwoKSBjb25zdCB7IHJldHVybiBtX2ZsYWdzICYgR2xvYmFsOyB9Ci0gICAgYm9v
bCBpZ25vcmVDYXNlKCkgY29uc3QgeyByZXR1cm4gbV9mbGFncyAmIElnbm9yZUNhc2U7IH0KLSAg
ICBib29sIG11bHRpbGluZSgpIGNvbnN0IHsgcmV0dXJuIG1fZmxhZ3MgJiBNdWx0aWxpbmU7IH0K
KyAgICBib29sIGdsb2JhbCgpIGNvbnN0IHsgcmV0dXJuIG1fZmxhZ0JpdHMgJiBHbG9iYWw7IH0K
KyAgICBib29sIGlnbm9yZUNhc2UoKSBjb25zdCB7IHJldHVybiBtX2ZsYWdCaXRzICYgSWdub3Jl
Q2FzZTsgfQorICAgIGJvb2wgbXVsdGlsaW5lKCkgY29uc3QgeyByZXR1cm4gbV9mbGFnQml0cyAm
IE11bHRpbGluZTsgfQorCiAgICAgY29uc3QgVVN0cmluZyYgcGF0dGVybigpIGNvbnN0IHsgcmV0
dXJuIG1fcGF0dGVybjsgfQorICAgIGNvbnN0IFVTdHJpbmcmIGZsYWdzKCkgY29uc3QgeyByZXR1
cm4gbV9mbGFnczsgfQogCiAgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gIW1fY29u
c3RydWN0aW9uRXJyb3I7IH0KICAgICBjb25zdCBjaGFyKiBlcnJvck1lc3NhZ2UoKSBjb25zdCB7
IHJldHVybiBtX2NvbnN0cnVjdGlvbkVycm9yOyB9CkBAIC02Myw4ICs2NSw5IEBAIG5hbWVzcGFj
ZSBLSlMgewogICAgIGludCBtX3JlZkNvdW50OwogICAgIAogICAgIC8vIERhdGEgc3VwcGxpZWQg
YnkgY2FsbGVyLgotICAgIFVTdHJpbmcgbV9wYXR0ZXJuOwotICAgIGludCBtX2ZsYWdzOworICAg
IFVTdHJpbmcgbV9wYXR0ZXJuOyAvLyBGSVhNRTogSnVzdCBkZWNvbXBpbGUgbV9yZWdFeHAgaW5z
dGVhZCBvZiBzdG9yaW5nIHRoaXMuCisgICAgVVN0cmluZyBtX2ZsYWdzOyAvLyBGSVhNRTogSnVz
dCBkZWNvbXBpbGUgbV9yZWdFeHAgaW5zdGVhZCBvZiBzdG9yaW5nIHRoaXMuCisgICAgaW50IG1f
ZmxhZ0JpdHM7CiAKICAgICAvLyBEYXRhIHN1cHBsaWVkIGJ5IFBDUkUuCiAgICAgSlNSZWdFeHAq
IG1fcmVnRXhwOwpJbmRleDoga2pzL3JlZ2V4cF9vYmplY3QuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtq
cy9yZWdleHBfb2JqZWN0LmNwcAkocmV2aXNpb24gMjc2MjApCisrKyBranMvcmVnZXhwX29iamVj
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0OCwxMSArNDQ4LDE1IEBAIEpTT2JqZWN0ICpSZWdF
eHBPYmplY3RJbXA6OmNvbnN0cnVjdChFeGUKICAgCiAgIFVTdHJpbmcgcGF0dGVybiA9IGFyZzAt
PmlzVW5kZWZpbmVkKCkgPyBVU3RyaW5nKCIiKSA6IGFyZzAtPnRvU3RyaW5nKGV4ZWMpOwogICBV
U3RyaW5nIGZsYWdzID0gYXJnMS0+aXNVbmRlZmluZWQoKSA/IFVTdHJpbmcoIiIpIDogYXJnMS0+
dG9TdHJpbmcoZXhlYyk7Ci0gIFJlZlB0cjxSZWdFeHA+IHJlZ0V4cCA9IG5ldyBSZWdFeHAocGF0
dGVybiwgZmxhZ3MpOworICAKKyAgcmV0dXJuIGNyZWF0ZVJlZ0V4cEltcChleGVjLCBuZXcgUmVn
RXhwKHBhdHRlcm4sIGZsYWdzKSk7Cit9CiAKLSAgcmV0dXJuIHJlZ0V4cC0+aXNWYWxpZCgpCi0g
ICAgPyBuZXcgUmVnRXhwSW1wKHN0YXRpY19jYXN0PFJlZ0V4cFByb3RvdHlwZSo+KGV4ZWMtPmxl
eGljYWxJbnRlcnByZXRlcigpLT5idWlsdGluUmVnRXhwUHJvdG90eXBlKCkpLCByZWdFeHAucmVs
ZWFzZSgpKQotICAgIDogdGhyb3dFcnJvcihleGVjLCBTeW50YXhFcnJvciwgVVN0cmluZygiSW52
YWxpZCByZWd1bGFyIGV4cHJlc3Npb246ICIpLmFwcGVuZChyZWdFeHAtPmVycm9yTWVzc2FnZSgp
KSk7CitKU09iamVjdCogUmVnRXhwT2JqZWN0SW1wOjpjcmVhdGVSZWdFeHBJbXAoRXhlY1N0YXRl
KiBleGVjLCBQYXNzUmVmUHRyPFJlZ0V4cD4gcmVnRXhwKQoreworICAgIHJldHVybiByZWdFeHAt
PmlzVmFsaWQoKQorICAgICAgICA/IG5ldyBSZWdFeHBJbXAoc3RhdGljX2Nhc3Q8UmVnRXhwUHJv
dG90eXBlKj4oZXhlYy0+bGV4aWNhbEludGVycHJldGVyKCktPmJ1aWx0aW5SZWdFeHBQcm90b3R5
cGUoKSksIHJlZ0V4cCkKKyAgICAgICAgOiB0aHJvd0Vycm9yKGV4ZWMsIFN5bnRheEVycm9yLCBV
U3RyaW5nKCJJbnZhbGlkIHJlZ3VsYXIgZXhwcmVzc2lvbjogIikuYXBwZW5kKHJlZ0V4cC0+ZXJy
b3JNZXNzYWdlKCkpKTsKIH0KIAogLy8gRUNNQSAxNS4xMC4zCkluZGV4OiBranMvcmVnZXhwX29i
amVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIGtqcy9yZWdleHBfb2JqZWN0LmgJKHJldmlzaW9uIDI3NjIw
KQorKysga2pzL3JlZ2V4cF9vYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtODUsNiArODUsNyBA
QCBuYW1lc3BhY2UgS0pTIHsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgaW1wbGVtZW50c0NvbnN0
cnVjdCgpIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIEpTT2JqZWN0KiBjb25zdHJ1Y3QoRXhlY1N0
YXRlKiwgY29uc3QgTGlzdCYpOworICAgICAgICBKU09iamVjdCogY3JlYXRlUmVnRXhwSW1wKEV4
ZWNTdGF0ZSosIFBhc3NSZWZQdHI8UmVnRXhwPik7CiAgICAgICAgIHZpcnR1YWwgSlNWYWx1ZSog
Y2FsbEFzRnVuY3Rpb24oRXhlY1N0YXRlKiwgSlNPYmplY3QqLCBjb25zdCBMaXN0Jik7CiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFs
dWUqLCBpbnQgYXR0cmlidXRlcyA9IE5vbmUpOwogICAgICAgICB2b2lkIHB1dFZhbHVlUHJvcGVy
dHkoRXhlY1N0YXRlKiwgaW50IHRva2VuLCBKU1ZhbHVlKiwgaW50IGF0dHJpYnV0ZXMpOwo=
</data>
<flag name="review"
          id="7301"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>