<?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>15657</bug_id>
          
          <creation_ts>2007-10-23 23:43:14 -0700</creation_ts>
          <short_desc>change static hash tables to use powers of two for speed</short_desc>
          <delta_ts>2007-10-24 03:24:01 -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>JavaScriptCore</component>
          <version>523.x (Safari 3)</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>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>59315</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-10-23 23:43:14 -0700</bug_when>
    <thetext>Gives 0.7% on SunSpider</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>59316</commentid>
    <comment_count>1</comment_count>
      <attachid>16830</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-10-23 23:49:22 -0700</bug_when>
    <thetext>Created attachment 16830
patch with change log</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>59318</commentid>
    <comment_count>2</comment_count>
      <attachid>16830</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2007-10-24 01:11:40 -0700</bug_when>
    <thetext>Comment on attachment 16830
patch with change log

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>59319</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-10-24 01:15:13 -0700</bug_when>
    <thetext>Committed revision 26956.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>59320</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2007-10-24 03:24:01 -0700</bug_when>
    <thetext>This was landed in r26956.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>16830</attachid>
            <date>2007-10-23 23:49:22 -0700</date>
            <delta_ts>2007-10-24 01:11:40 -0700</delta_ts>
            <desc>patch with change log</desc>
            <filename>LookupPatch.txt</filename>
            <type>text/plain</type>
            <size>12556</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2OTUwKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMDctMTAtMjMgIERhcmluIEFk
bGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIC0gaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTU2NTcKKyAgICAgICAgICBjaGFuZ2Ugc3RhdGljIGhhc2ggdGFibGVzIHRvIHVzZSBwb3dlcnMg
b2YgdHdvIGZvciBzcGVlZAorCisgICAgICAgICoga2pzL2NyZWF0ZV9oYXNoX3RhYmxlOiBVcGRh
dGVkIHRvIGdlbmVyYXRlIG5ldyBmb3JtYXQuCisgICAgICAgICoga2pzL2xvb2t1cC5jcHA6Cisg
ICAgICAgIChLSlM6OmtleXNNYXRjaCk6IFRvb2sgb3V0IHVubmVlZGVkIHR5cGVjYXN0LgorICAg
ICAgICAoS0pTOjpmaW5kRW50cnkpOiBVcGRhdGVkIHRvIGV4cGVjdCB0YWJsZSB0eXBlIDMgLS0g
Y2hhbmdlZCB0aGUgcHJpbnRmIHRvIGEgcGxhaW4gb2xkIGFzc2VydC4KKyAgICAgICAgUmVwbGFj
ZWQgdGhlIG1vZHVsdXMgd2l0aCBhIGJpdCBtYXNrLgorICAgICAgICAoS0pTOjpMb29rdXA6OmZp
bmRFbnRyeSk6IEdldCB0aGUgaGFzaCBkaXJlY3RseSwgc2luY2Ugd2Uga25vdyBpZGVudGlmaWVy
cyBhbHJlYWR5IGhhdmUgY29tcHV0ZWQKKyAgICAgICAgdGhlaXIgaGFzaCAtLSBzYXZlcyBhIGJy
YW5jaC4KKyAgICAgICAgKEtKUzo6TG9va3VwOjpmaW5kKTogRGl0dG8uCisgICAgICAgICoga2pz
L2xvb2t1cC5oOiBDaGFuZ2VkIGF0dHIgZnJvbSAyLWJ5dGUgdmFsdWUgdG8gb25lLWJ5dGUgdmFs
dWUuIFJlcGxhY2VkIGhhc2hTaXplIHdpdGggaGFzaFNpemVNYXNrLgorCiAyMDA3LTEwLTIzICBE
YXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYWNp
ZWouCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ranMvY3JlYXRlX2hhc2hfdGFibGUKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gSmF2YVNjcmlwdENvcmUva2pzL2NyZWF0ZV9oYXNoX3RhYmxlCShyZXZpc2lvbiAyNjk0
OSkKKysrIEphdmFTY3JpcHRDb3JlL2tqcy9jcmVhdGVfaGFzaF90YWJsZQkod29ya2luZyBjb3B5
KQpAQCAtNSw2ICs1LDcgQEAKICMgKGMpIDIwMDAtMjAwMiBieSBIYXJyaSBQb3J0ZW4gPHBvcnRl
bkBrZGUub3JnPiBhbmQKICMgICAgICAgICAgICAgICAgICBEYXZpZCBGYXVyZSA8ZmF1cmVAa2Rl
Lm9yZz4KICMgTW9kaWZpZWQgKGMpIDIwMDQgYnkgTmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94
QGtkZS5vcmc+CisjIENvcHlyaWdodCAoQykgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAjCiAjIFBhcnQgb2YgdGhlIEtKUyBsaWJyYXJ5LgogIwpAQCAtMjcsMTIgKzI4LDgg
QEAgdXNlIHN0cmljdDsKIAogbXkgJGZpbGUgPSAkQVJHVlswXTsKIHNoaWZ0OwotbXkgJGZpbmRT
aXplID0gMDsKIG15ICRpbmNsdWRlbG9va3VwID0gMDsKIAotIyBVc2UgLXMgYXMgc2Vjb25kIGFy
Z3VtZW50IHRvIG1ha2UgaXQgdHJ5IG1hbnkgaGFzaCBzaXplcwotJGZpbmRTaXplID0gMSBpZiAo
ZGVmaW5lZCgkQVJHVlswXSkgJiYgJEFSR1ZbMF0gZXEgIi1zIik7Ci0KICMgVXNlIC1pIGFzIHNl
Y29uZCBhcmd1bWVudCB0byBtYWtlIGl0IGluY2x1ZGUgImxvb2t1cC5oIgogJGluY2x1ZGVsb29r
dXAgPSAxIGlmIChkZWZpbmVkKCRBUkdWWzBdKSAmJiAkQVJHVlswXSBlcSAiLWkiKTsKIApAQCAt
NTMsNyArNTAsNyBAQCBteSBAbGlua3MgPSAoKTsKIG15ICRpbnNpZGUgPSAwOwogbXkgJG5hbWU7
CiBteSAkc2l6ZTsKLW15ICRoYXNoc2l6ZTsKK215ICRoYXNoU2l6ZU1hc2s7CiBteSAkYmFubmVy
ID0gMDsKIHN1YiBjYWxjVGFibGUoKTsKIHN1YiBvdXRwdXQoKTsKQEAgLTY1LDIyICs2MiwxNSBA
QCB3aGlsZSAoPElOPikgewogICBpZiAoL15cI3xeJC8pIHsKICAgICAgICMgY29tbWVudC4gZG8g
bm90aGluZwogICAgIH0gZWxzaWYgKC9eXEBiZWdpbi8gJiYgISRpbnNpZGUpIHsKLSAgICAgIGlm
ICgvXlxAYmVnaW5ccyooWzpfXHddKylccyooXGQrKVxzKiQvKSB7CisgICAgICBpZiAoL15cQGJl
Z2luXHMqKFs6X1x3XSspXHMqXGQqXHMqJC8pIHsKICAgICAgICAgJGluc2lkZSA9IDE7CiAgICAg
ICAgICRuYW1lID0gJDE7Ci0gICAgICAgICRoYXNoc2l6ZSA9ICQyOwogICAgICAgfSBlbHNlIHsK
ICAgICAgICAgIHByaW50ZiBTVERFUlIgIldBUk5JTkc6IFxAYmVnaW4gd2l0aG91dCB0YWJsZSBu
YW1lIGFuZCBoYXNoc2l6ZSwgc2tpcHBpbmcgJF9cbiI7CiAgICAgICB9CiAgICAgfSBlbHNpZiAo
L15cQGVuZFxzKiQvICYmICRpbnNpZGUpIHsKIAotICAgICAgaWYoJGZpbmRTaXplKSB7Ci0JbXkg
JGVudHJpZXNudW09QGtleXM7Ci0gICAgICAgIHByaW50IFNUREVSUiAiVGFibGU6ICRuYW1lICAg
JGVudHJpZXNudW0gZW50cmllc1xuIjsKLQlmb3IoIG15ICRpPTMgOyAkaTw3OSA7ICsrJGkpIHsg
JGhhc2hzaXplPSRpIDsgY2FsY1RhYmxlKCk7IH0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIGNh
bGNUYWJsZSgpOwotICAgICAgfQorICAgICAgY2FsY1RhYmxlKCk7CiAKICAgICAgIG91dHB1dCgp
OwogICAgICAgQGtleXMgPSAoKTsKQEAgLTExMCw3ICsxMDAsMjEgQEAgd2hpbGUgKDxJTj4pIHsK
IAogZGllICJtaXNzaW5nIGNsb3NpbmcgXEBlbmQiIGlmICgkaW5zaWRlKTsKIAorc3ViIGNlaWxp
bmdUb1Bvd2VyT2YyCit7CisgICAgbXkgKCRzaXplKSA9IEBfOworCisgICAgbXkgJHBvd2VyT2Yy
ID0gMTsKKyAgICB3aGlsZSAoJHNpemUgPiAkcG93ZXJPZjIpIHsKKyAgICAgICAgJHBvd2VyT2Yy
IDw8PSAxOworICAgIH0KKworICAgIHJldHVybiAkcG93ZXJPZjI7Cit9CisKIHN1YiBjYWxjVGFi
bGUoKSB7CisgIG15ICRoYXNoc2l6ZSA9IGNlaWxpbmdUb1Bvd2VyT2YyKDIgKiBAa2V5cyk7Cisg
ICRoYXNoU2l6ZU1hc2sgPSAkaGFzaHNpemUgLSAxOwogICAkc2l6ZSA9ICRoYXNoc2l6ZTsKICAg
bXkgJGNvbGxpc2lvbnMgPSAwOwogICBteSAkbWF4ZGVwdGggPSAwOwpAQCAtMTI5LDcgKzEzMyw2
IEBAIHN1YiBjYWxjVGFibGUoKSB7CiAJJHNpemUrKzsKICAgICAgIH0KICAgICB9Ci0gICAgI3By
aW50IFNUREVSUiAidGFibGVbJGhdID0gJGlcbiI7CiAgICAgJHRhYmxlWyRoXSA9ICRpOwogICAg
ICRpKys7CiAgICAgJG1heGRlcHRoID0gJGRlcHRoIGlmICggJGRlcHRoID4gJG1heGRlcHRoKTsK
QEAgLTEzOSwyMiArMTQyLDYgQEAgc3ViIGNhbGNUYWJsZSgpIHsKICAgaWYgKCAkI3RhYmxlKzEg
PCAkc2l6ZSApIHsKICAgICAkI3RhYmxlID0gJHNpemUtMTsKICAgfQotICAjcHJpbnQgU1RERVJS
ICJBZnRlciBsb29wOiBzaXplPSRzaXplIHRhYmxlPSIuKCQjdGFibGUrMSkuIlxuIjsKLQotICBp
ZiAoJGZpbmRTaXplKSB7Ci0gICAgbXkgJGVtcHR5Y291bnQgPSAwOwotICAgIGZvcmVhY2ggbXkg
JGVudHJ5IChAdGFibGUpIHsKLSAgICAgICRlbXB0eWNvdW50KysgaWYgKCFkZWZpbmVkKCRlbnRy
eSkpOwotICAgIH0KLSAgICBwcmludCBTVERFUlIgIkhhc2hzaXplOiAkaGFzaHNpemUgIFRvdGFs
IFNpemU6ICRzaXplIEVtcHR5OiAkZW1wdHljb3VudCBNYXhEZXB0aDogJG1heGRlcHRoIENvbGxp
c2lvbnM6ICRjb2xsaXNpb25zXG4iOwotICB9Ci0jICBteSAkZGVidWd0YWJsZSA9IDA7Ci0jICBm
b3JlYWNoIG15ICRlbnRyeSAoQHRhYmxlKSB7Ci0jICAgIHByaW50IFNUREVSUiAiJGRlYnVndGFi
bGUgIiAuIChkZWZpbmVkICRlbnRyeSA/ICRlbnRyeSA6ICc8dW5kZWZpbmVkPicpOwotIyAgICBw
cmludCBTVERFUlIgIiAtPiAiIC4gJGxpbmtzWyRkZWJ1Z3RhYmxlXSBpZiAoZGVmaW5lZCgkbGlu
a3NbJGRlYnVndGFibGVdKSk7Ci0jICAgIHByaW50IFNUREVSUiAiXG4iOwotIyAgICAkZGVidWd0
YWJsZSsrOwotIyAgfQogfQogCiBzdWIgbGVmdFNoaWZ0KCQkKSB7CkBAIC0yMzMsMTUgKzIyMCw3
IEBAIHN1YiBvdXRwdXQoKSB7CiAgIH0KICAgcHJpbnQgIlxuc3RhdGljIGNvbnN0IHN0cnVjdCBI
YXNoRW50cnkgIi4kbmFtZUVudHJpZXMuIltdID0ge1xuIjsKICAgbXkgJGkgPSAwOwotICAjcHJp
bnQgU1RERVJSICJ3cml0aW5nIG91dCB0YWJsZSB3aXRoICIuKCQjdGFibGUrMSkuIiBlbnRyaWVz
XG4iOwogICAKLSAgaWYgKCRoYXNoc2l6ZSBlcSAwKSB7Ci0gICAgIyBUbyBtYWtlIHRoZSBoYXNo
IHRhYmxlIGxvb2t1cCBjb2RlIGZhc3QsIHdlIGRvbid0IGFsbG93IHRhYmxlcyBvZiBzaXplIDAu
Ci0gICAgIyBUaGF0IHdheSBpdCBjYW4gZG8gYSBtb2R1bG8gYnkgdGhlIHNpemUgd2l0aG91dCBh
IHNwZWNpYWwgY2FzZSB0byBhdm9pZCBkaXZpc2lvbiBieSAwLgotICAgIHByaW50ICIgICBceyAw
LCAwLCAwLCAwLCAwIFx9XG4iOwotICAgICRoYXNoc2l6ZSA9IDE7Ci0gICAgJHNpemUgPSAxOwot
ICB9IGVsc2UgewogICAgIGZvcmVhY2ggbXkgJGVudHJ5IChAdGFibGUpIHsKICAgICAgIGlmIChk
ZWZpbmVkKCRlbnRyeSkpIHsKICAgICAgICAgbXkgJGtleSA9ICRrZXlzWyRlbnRyeV07CkBAIC0y
NTcsMTUgKzIzNiwxNSBAQCBzdWIgb3V0cHV0KCkgewogICAgICAgICB9CiAgICAgICAgIHByaW50
ICIvKiAiIC4gJGhhc2hlc1skZW50cnldIC4gIiAqLyAiOwogICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgcHJpbnQgIiAgIFx7IDAsIDAsIDAsIDAsIDAgXH0iOworICAgICAgICBwcmludCAiICAgeyAw
LCAwLCAwLCAwLCAwIH0iOwogICAgICAgfSAgICAKICAgICAgIHByaW50ICIsIiB1bmxlc3MgKCRp
ID09ICRzaXplIC0gMSk7CiAgICAgICBwcmludCAiXG4iOwogICAgICAgJGkrKzsKICAgICB9Ci0g
IH0KKwogICBwcmludCAifTtcblxuIjsKICAgcHJpbnQgImNvbnN0IHN0cnVjdCBIYXNoVGFibGUg
JG5hbWUgPSAiOwotICBwcmludCAiXHsgMiwgJHNpemUsICIuJG5hbWVFbnRyaWVzLiIsICRoYXNo
c2l6ZSBcfTtcblxuIjsKKyAgcHJpbnQgIlx7IDMsICRzaXplLCAkbmFtZUVudHJpZXMsICRoYXNo
U2l6ZU1hc2sgXH07XG5cbiI7CiAgIHByaW50ICJ9IC8vIG5hbWVzcGFjZVxuIjsKIH0KSW5kZXg6
IEphdmFTY3JpcHRDb3JlL2tqcy9sb29rdXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRD
b3JlL2tqcy9sb29rdXAuY3BwCShyZXZpc2lvbiAyNjk0OSkKKysrIEphdmFTY3JpcHRDb3JlL2tq
cy9sb29rdXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDggKzEsNyBAQAogLy8gLSotIGMtYmFz
aWMtb2Zmc2V0OiAyIC0qLQogLyoKLSAqICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIGxp
YnJhcmllcwogICogIENvcHlyaWdodCAoQykgMTk5OS0yMDAwIEhhcnJpIFBvcnRlbiAocG9ydGVu
QGtkZS5vcmcpCi0gKiAgQ29weXJpZ2h0IChDKSAyMDAzIEFwcGxlIENvbXB1dGVyLCBJbmMuCisg
KiAgQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTIxLDM5ICsyMCwyOSBAQAogICovCiAKICNpbmNs
dWRlICJjb25maWcuaCIKLSNpbmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPHN0cmluZy5oPgot
CiAjaW5jbHVkZSAibG9va3VwLmgiCisKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogCiBu
YW1lc3BhY2UgS0pTIHsKIAotc3RhdGljIGlubGluZSBib29sIGtleXNNYXRjaChjb25zdCBVQ2hh
ciAqYywgdW5zaWduZWQgbGVuLCBjb25zdCBjaGFyICpzKQorc3RhdGljIGlubGluZSBib29sIGtl
eXNNYXRjaChjb25zdCBVQ2hhciogYywgdW5zaWduZWQgbGVuLCBjb25zdCBjaGFyKiBzKQogewor
ICAvLyBGSVhNRTogVGhpcyBjYW4gcnVuIG9mZiB0aGUgZW5kIG9mIHxzfCBpZiB8Y3wgaGFzIGEg
VSswMDAwIGNoYXJhY3RlciBpbiBpdC4KICAgY29uc3QgY2hhciogZW5kID0gcyArIGxlbjsKICAg
Zm9yICg7IHMgIT0gZW5kOyBjKyssIHMrKykKLSAgICBpZiAoYy0+dWMgIT0gKHVuc2lnbmVkIGNo
YXIpKnMpCisgICAgaWYgKGMtPnVjICE9ICpzKQogICAgICAgcmV0dXJuIGZhbHNlOwogICByZXR1
cm4gKnMgPT0gMDsKIH0KIAotc3RhdGljIGlubGluZSBjb25zdCBIYXNoRW50cnkqIGZpbmRFbnRy
eShjb25zdCBzdHJ1Y3QgSGFzaFRhYmxlICp0YWJsZSwgdW5zaWduZWQgaW50IGhhc2gsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFVDaGFyICpjLCB1bnNp
Z25lZCBpbnQgbGVuICkKK3N0YXRpYyBpbmxpbmUgY29uc3QgSGFzaEVudHJ5KiBmaW5kRW50cnko
Y29uc3Qgc3RydWN0IEhhc2hUYWJsZSogdGFibGUsIHVuc2lnbmVkIGludCBoYXNoLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBVQ2hhciogYywgdW5zaWdu
ZWQgaW50IGxlbikKIHsKLSNpZm5kZWYgTkRFQlVHCi0gIGlmICh0YWJsZS0+dHlwZSAhPSAyKSB7
Ci0gICAgZnByaW50ZihzdGRlcnIsICJLSlM6IFVua25vd24gaGFzaCB0YWJsZSB2ZXJzaW9uLlxu
Iik7Ci0gICAgcmV0dXJuIDA7Ci0gIH0KLSNlbmRpZgotICBBU1NFUlQodGFibGUtPmhhc2hTaXpl
ICE9IDApOworICBBU1NFUlQodGFibGUtPnR5cGUgPT0gMyk7CiAgICAgCi0gIGhhc2ggJT0gdGFi
bGUtPmhhc2hTaXplOworICBjb25zdCBIYXNoRW50cnkqIGUgPSAmdGFibGUtPmVudHJpZXNbaGFz
aCAmIHRhYmxlLT5oYXNoU2l6ZU1hc2tdOwogCi0gIGNvbnN0IEhhc2hFbnRyeSAqZSA9ICZ0YWJs
ZS0+ZW50cmllc1toYXNoXTsKLQotICAvLyBlbXB0eSBidWNrZXQgPwogICBpZiAoIWUtPnMpCiAg
ICAgcmV0dXJuIDA7CiAKQEAgLTY4LDE1ICs1NywxMiBAQCBzdGF0aWMgaW5saW5lIGNvbnN0IEhh
c2hFbnRyeSogZmluZEVudHJ5CiAgIHJldHVybiAwOwogfQogCi1jb25zdCBIYXNoRW50cnkqIExv
b2t1cDo6ZmluZEVudHJ5KGNvbnN0IHN0cnVjdCBIYXNoVGFibGUgKnRhYmxlLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJZGVudGlmaWVyICZzICkKK2NvbnN0IEhh
c2hFbnRyeSogTG9va3VwOjpmaW5kRW50cnkoY29uc3Qgc3RydWN0IEhhc2hUYWJsZSogdGFibGUs
IGNvbnN0IElkZW50aWZpZXImIHMpCiB7Ci0gIGNvbnN0IEhhc2hFbnRyeSogZW50cnkgPSBLSlM6
OmZpbmRFbnRyeSh0YWJsZSwgcy51c3RyaW5nKCkucmVwKCktPmhhc2goKSwgcy5kYXRhKCksIHMu
c2l6ZSgpKTsKLSAgcmV0dXJuIGVudHJ5OworICByZXR1cm4gS0pTOjpmaW5kRW50cnkodGFibGUs
IHMudXN0cmluZygpLnJlcCgpLT5faGFzaCwgcy5kYXRhKCksIHMuc2l6ZSgpKTsKIH0KIAotaW50
IExvb2t1cDo6ZmluZChjb25zdCBzdHJ1Y3QgSGFzaFRhYmxlICp0YWJsZSwKLSAgICAgICAgICAg
ICAgICAgY29uc3QgVUNoYXIgKmMsIHVuc2lnbmVkIGludCBsZW4pCitpbnQgTG9va3VwOjpmaW5k
KGNvbnN0IHN0cnVjdCBIYXNoVGFibGUgKnRhYmxlLCBjb25zdCBVQ2hhciAqYywgdW5zaWduZWQg
aW50IGxlbikKIHsKICAgY29uc3QgSGFzaEVudHJ5ICplbnRyeSA9IEtKUzo6ZmluZEVudHJ5KHRh
YmxlLCBVU3RyaW5nOjpSZXA6OmNvbXB1dGVIYXNoKGMsIGxlbiksIGMsIGxlbik7CiAgIGlmIChl
bnRyeSkKQEAgLTg0LDEzICs3MCwxMiBAQCBpbnQgTG9va3VwOjpmaW5kKGNvbnN0IHN0cnVjdCBI
YXNoVGFibGUgCiAgIHJldHVybiAtMTsKIH0KIAotaW50IExvb2t1cDo6ZmluZChjb25zdCBzdHJ1
Y3QgSGFzaFRhYmxlICp0YWJsZSwgY29uc3QgSWRlbnRpZmllciAmcykKK2ludCBMb29rdXA6OmZp
bmQoY29uc3Qgc3RydWN0IEhhc2hUYWJsZSogdGFibGUsIGNvbnN0IElkZW50aWZpZXImIHMpCiB7
Ci0gIGNvbnN0IEhhc2hFbnRyeSAqZW50cnkgPSBLSlM6OmZpbmRFbnRyeSh0YWJsZSwgcy51c3Ry
aW5nKCkucmVwKCktPmhhc2goKSwgcy5kYXRhKCksIHMuc2l6ZSgpKTsKKyAgY29uc3QgSGFzaEVu
dHJ5KiBlbnRyeSA9IEtKUzo6ZmluZEVudHJ5KHRhYmxlLCBzLnVzdHJpbmcoKS5yZXAoKS0+X2hh
c2gsIHMuZGF0YSgpLCBzLnNpemUoKSk7CiAgIGlmIChlbnRyeSkKICAgICByZXR1cm4gZW50cnkt
PnZhbHVlOwogICByZXR1cm4gLTE7CiB9CiAKIH0KLQpJbmRleDogSmF2YVNjcmlwdENvcmUva2pz
L2xvb2t1cC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL2tqcy9sb29rdXAuaAkocmV2
aXNpb24gMjY5NDkpCisrKyBKYXZhU2NyaXB0Q29yZS9ranMvbG9va3VwLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEsOCArMSw3IEBACiAvLyAtKi0gYy1iYXNpYy1vZmZzZXQ6IDIgLSotCiAvKgotICog
IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgbGlicmFyaWVzCiAgKiAgQ29weXJpZ2h0IChD
KSAxOTk5LTIwMDAgSGFycmkgUG9ydGVuIChwb3J0ZW5Aa2RlLm9yZykKLSAqICBDb3B5cmlnaHQg
KEMpIDIwMDMgQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDMsIDIw
MDYsIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqICBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAg
KiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1
YmxpYwpAQCAtMzIsOCArMzEsNiBAQAogCiBuYW1lc3BhY2UgS0pTIHsKIAotICBjbGFzcyBGdW5j
dGlvblByb3RvdHlwZTsKLQogICAvKioKICAgICogQW4gZW50cnkgaW4gYSBoYXNoIHRhYmxlLgog
ICAgKi8KQEAgLTUwLDcgKzQ3LDcgQEAgbmFtZXNwYWNlIEtKUyB7CiAgICAgLyoqCiAgICAgICog
YXR0ciBpcyBhIHNldCBmb3IgZmxhZ3MgKGUuZy4gdGhlIHByb3BlcnR5IGZsYWdzLCBzZWUgb2Jq
ZWN0LmgpCiAgICAgICovCi0gICAgc2hvcnQgaW50IGF0dHI7CisgICAgdW5zaWduZWQgY2hhciBh
dHRyOwogICAgIC8qKgogICAgICAqIHBhcmFtcyBpcyBhbm90aGVyIG51bWJlci4gRm9yIHByb3Bl
cnR5IGhhc2h0YWJsZXMsIGl0IGlzIHVzZWQgdG8KICAgICAgKiBkZW5vdGUgdGhlIG51bWJlciBv
ZiBhcmd1bWVudCBvZiB0aGUgZnVuY3Rpb24KQEAgLTkwLDkgKzg3LDkgQEAgbmFtZXNwYWNlIEtK
UyB7CiAgICAgICovCiAgICAgY29uc3QgSGFzaEVudHJ5KiBlbnRyaWVzOwogICAgIC8qKgotICAg
ICAqIHRoZSBtYXhpbXVtIHZhbHVlIGZvciB0aGUgaGFzaC4gQWx3YXlzIHNtYWxsZXIgdGhhbiBz
aXplLgorICAgICAqIHRoZSBtYXhpbXVtIHZhbHVlIGZvciB0aGUgaGFzaCBtaW51cyAxLiBBbHdh
eXMgc21hbGxlciB0aGFuIHNpemUuCiAgICAgICovCi0gICAgaW50IGhhc2hTaXplOworICAgIGlu
dCBoYXNoU2l6ZU1hc2s7CiAgIH07CiAKICAgLyoqCkBAIC0xMDYsNyArMTAzLDYgQEAgbmFtZXNw
YWNlIEtKUyB7CiAgICAgc3RhdGljIGludCBmaW5kKGNvbnN0IHN0cnVjdCBIYXNoVGFibGUqLCBj
b25zdCBJZGVudGlmaWVyJik7CiAgICAgc3RhdGljIGludCBmaW5kKGNvbnN0IHN0cnVjdCBIYXNo
VGFibGUqLCBjb25zdCBVQ2hhciosIHVuc2lnbmVkIGludCBsZW4pOwogCi0KICAgICAvKioKICAg
ICAgKiBGaW5kIGFuIGVudHJ5IGluIHRoZSB0YWJsZSwgYW5kIHJldHVybiB0aGUgZW50cnkKICAg
ICAgKiBUaGlzIHZhcmlhbnQgZ2l2ZXMgYWNjZXNzIHRvIHRoZSBvdGhlciBhdHRyaWJ1dGVzIG9m
IHRoZSBlbnRyeSwKSW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjk1MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMDctMTAtMjMgIERhcmluIEFkbGVyICA8ZGFy
aW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIC0gaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU2NTcKKyAg
ICAgICAgICBjaGFuZ2Ugc3RhdGljIGhhc2ggdGFibGVzIHRvIHVzZSBwb3dlcnMgb2YgdHdvIGZv
ciBzcGVlZAorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06
IFVwZGF0ZWQgdG8gZ2VuZXJhdGUgbmV3IGZvcm1hdC4KKwogMjAwNy0xMC0yMyAgQWxwIFRva2Vy
ICA8YWxwQGF0b2tlci5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFjaWVqLgpJbmRleDog
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCShyZXZpc2lvbiAy
Njk0OSkKKysrIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHdv
cmtpbmcgY29weSkKQEAgLTE1NDEsNiArMTU0MSwxOCBAQCBzdWIgTmF0aXZlVG9KU1ZhbHVlCiAg
ICAgcmV0dXJuICJ0b0pTKGV4ZWMsIFdURjo6Z2V0UHRyKCR2YWx1ZSkpIjsKIH0KIAorc3ViIGNl
aWxpbmdUb1Bvd2VyT2YyCit7CisgICAgbXkgKCRzaXplKSA9IEBfOworCisgICAgbXkgJHBvd2Vy
T2YyID0gMTsKKyAgICB3aGlsZSAoJHNpemUgPiAkcG93ZXJPZjIpIHsKKyAgICAgICAgJHBvd2Vy
T2YyIDw8PSAxOworICAgIH0KKworICAgIHJldHVybiAkcG93ZXJPZjI7Cit9CisKICMgSW50ZXJu
YWwgSGVscGVyCiBzdWIgR2VuZXJhdGVIYXNoVGFibGUKIHsKQEAgLTE1NTcsNiArMTU2OSw4IEBA
IHN1YiBHZW5lcmF0ZUhhc2hUYWJsZQogICAgIG15IEB0YWJsZSA9ICgpOwogICAgIG15IEBsaW5r
cyA9ICgpOwogCisgICAgJHNpemUgPSBjZWlsaW5nVG9Qb3dlck9mMigkc2l6ZSAqIDIpOworCiAg
ICAgbXkgJG1heERlcHRoID0gMDsKICAgICBteSAkY29sbGlzaW9ucyA9IDA7CiAgICAgbXkgJG51
bUVudHJpZXMgPSAkc2l6ZTsKQEAgLTE1OTQsOCArMTYwOCw2IEBAIHN1YiBHZW5lcmF0ZUhhc2hU
YWJsZQogICAgIG15ICRuYW1lRW50cmllcyA9ICIke25hbWV9RW50cmllcyI7CiAgICAgJG5hbWVF
bnRyaWVzID1+IHMvOi9fL2c7CiAKLSAgICAjIGZpcnN0LCBidWlsZCB0aGUgc3RyaW5nIHRhYmxl
Ci0gICAgbXkgJXNvZmZzZXQgPSAoKTsKICAgICBpZiAoKCRuYW1lID1+IC9Qcm90b3R5cGUvKSBv
ciAoJG5hbWUgPX4gL0NvbnN0cnVjdG9yLykpIHsKICAgICAgICAgbXkgJHR5cGUgPSAkbmFtZTsK
ICAgICAgICAgbXkgJGltcGxDbGFzczsKQEAgLTE2MzMsNyArMTY0NSw3IEBAIHN1YiBHZW5lcmF0
ZUhhc2hUYWJsZQogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiMCBcfSIpOwog
ICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgXHsgMCwgMCwgMCwgMCwgMCBcfSIpOworICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgeyAwLCAwLCAwLCAwLCAwIH0iKTsKICAgICAgICAgfQogCiAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiLCIpIHVubGVzcygkaSBlcSAkc2l6ZSAtIDEpOwpAQCAtMTY0
MiwxNSArMTY1NCwxMSBAQCBzdWIgR2VuZXJhdGVIYXNoVGFibGUKICAgICAgICAgJGkrKzsKICAg
ICB9CiAKLSAgICBpZiAoJHNpemUgZXEgMCkgewotICAgICAgICAjIGR1bW15IGJ1Y2tldCAtLSBh
biBlbXB0eSB0YWJsZSB3b3VsZCBjcmFzaCBMb29rdXA6OmZpbmRFbnRyeQotICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICBceyAwLCAwLCAwLCAwLCAwIFx9XG4iKSA7Ci0gICAgICAgICRu
dW1FbnRyaWVzID0gMTsKLSAgICAgICAgJHNpemUgPSAxOwotICAgIH0KKyAgICBteSAkc2l6ZU1h
c2sgPSAkbnVtRW50cmllcyAtIDE7CisKICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn07XG5cbiIp
OwogICAgIHB1c2goQGltcGxDb250ZW50LCAic3RhdGljIGNvbnN0IEhhc2hUYWJsZSAkbmFtZSA9
IFxuIik7Ci0gICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4gICAgMiwgJHNpemUsICRuYW1lRW50
cmllcywgJG51bUVudHJpZXNcbn07XG5cbiIpOworICAgIHB1c2goQGltcGxDb250ZW50LCAie1xu
ICAgIDMsICRzaXplLCAkbmFtZUVudHJpZXMsICRzaXplTWFza1xufTtcblxuIik7CiB9CiAKICMg
SW50ZXJuYWwgaGVscGVyCg==
</data>
<flag name="review"
          id="7122"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
      

    </bug>

</bugzilla>