<?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>68723</bug_id>
          
          <creation_ts>2011-09-23 13:29:18 -0700</creation_ts>
          <short_desc>Resolve opcodes should have value profiling.</short_desc>
          <delta_ts>2011-09-23 16:27:36 -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>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>68677</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>barraclough</cc>
    
    <cc>fpizlo</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>472461</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-09-23 13:29:18 -0700</bug_when>
    <thetext>We want all operations that load values from the heap to have value profiling.  The Resolve opcodes are the last ones that don&apos;t.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472551</commentid>
    <comment_count>1</comment_count>
      <attachid>108546</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-09-23 15:27:13 -0700</bug_when>
    <thetext>Created attachment 108546
the patch

This is pretty much performance neutral.  There is a spurious, but totally reproducible, 0.3% slow-down in V8 on my MacBook Pro.  There are similarly sized, though not as reproducible, speed-ups in SunSpider and Kraken.  I checked and none of the benchmarks that have performance variations make any use of any of the affected opcodes.  So these are just insignificant variations due to code layout.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472601</commentid>
    <comment_count>2</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-09-23 16:27:36 -0700</bug_when>
    <thetext>Landed in r95887.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108546</attachid>
            <date>2011-09-23 15:27:13 -0700</date>
            <delta_ts>2011-09-23 16:13:38 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>resolveprofile_patch_2.diff</filename>
            <type>text/plain</type>
            <size>14042</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTU4NTgpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzggQEAK
KzIwMTEtMDktMjMgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZXNvbHZlIG9wY29kZXMgc2hvdWxkIGhhdmUgdmFsdWUgcHJvZmlsaW5nLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg3MjMKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFRoaXMgYWRkcyB2YWx1
ZSBwcm9maWxpbmcgdG8gYWxsIGZvcm1zIG9mIG9wX3Jlc29sdmUgaW4gdGhlCisgICAgICAgIG9s
ZCBKSVQsIGFuZCBwYXRjaGVzIHRoYXQgaW5mb3JtYXRpb24gaW50byB0aGUgREZHIGFsb25nIHdp
dGgKKyAgICAgICAgcGVyZm9ybWluZyB0aGUgYXBwcm9wcmlhdGUgdHlwZSBwcm9wYWdhdGlvbi4K
KworICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OkRG
Rzo6Qnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2spOgorICAgICAgICAqIGRmZy9ERkdHcmFwaC5o
OgorICAgICAgICAoSlNDOjpERkc6OkdyYXBoOjpwcmVkaWN0KToKKyAgICAgICAgKiBkZmcvREZH
Tm9kZS5oOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6Omhhc0lkZW50aWZpZXIpOgorICAgICAg
ICAoSlNDOjpERkc6Ok5vZGU6OnJlc29sdmVHbG9iYWxEYXRhSW5kZXgpOgorICAgICAgICAoSlND
OjpERkc6Ok5vZGU6Omhhc1ByZWRpY3Rpb24pOgorICAgICAgICAqIGRmZy9ERkdQcm9wYWdhdG9y
LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpQcm9wYWdhdG9yOjpwcm9wYWdhdGVOb2RlUHJlZGlj
dGlvbnMpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGppdC9KSVRPcGNv
ZGVzLmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3Jlc29sdmUpOgorICAgICAgICAo
SlNDOjpKSVQ6OmVtaXRfb3BfcmVzb2x2ZV9iYXNlKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0
X29wX3Jlc29sdmVfc2tpcCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9yZXNvbHZlX2ds
b2JhbCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfcmVzb2x2ZV9nbG9iYWwpOgor
ICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcmVzb2x2ZV93aXRoX2Jhc2UpOgorICAgICAgICAo
SlNDOjpKSVQ6OmVtaXRfb3BfcmVzb2x2ZV93aXRoX3RoaXMpOgorICAgICAgICAoSlNDOjpKSVQ6
OmVtaXRTbG93X29wX3Jlc29sdmVfZ2xvYmFsX2R5bmFtaWMpOgorICAgICAgICAqIGppdC9KSVRT
dHViQ2FsbC5oOgorICAgICAgICAoSlNDOjpKSVRTdHViQ2FsbDo6Y2FsbFdpdGhWYWx1ZVByb2Zp
bGluZyk6CisKIDIwMTEtMDktMjMgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAog
ICAgICAgICBQdXRTY29wZWRWYXIgbm9kZXMgc2hvdWxkIHJlcG9ydCB0aGF0IGl0IGhhcyBhIHZh
ciBudW1iZXIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJz
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNv
ZGVQYXJzZXIuY3BwCShyZXZpc2lvbiA5NTg1NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDE1LDggKzE0MTUs
OSBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKHVuc2lnbmVkCiAgICAgICAgIGNh
c2Ugb3BfcmVzb2x2ZTogewogICAgICAgICAgICAgdW5zaWduZWQgaWRlbnRpZmllciA9IGN1cnJl
bnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7CiAKLSAgICAgICAgICAgIE5vZGVJbmRleCByZXNv
bHZlID0gYWRkVG9HcmFwaChSZXNvbHZlLCBPcEluZm8oaWRlbnRpZmllcikpOworICAgICAgICAg
ICAgTm9kZUluZGV4IHJlc29sdmUgPSBhZGRUb0dyYXBoKFJlc29sdmUsIE9wSW5mbyhpZGVudGlm
aWVyKSwgT3BJbmZvKFByZWRpY3ROb25lKSk7CiAgICAgICAgICAgICBzZXQoY3VycmVudEluc3Ry
dWN0aW9uWzFdLnUub3BlcmFuZCwgcmVzb2x2ZSk7CisgICAgICAgICAgICBzdHJvbmdseVByZWRp
Y3QocmVzb2x2ZSk7CiAKICAgICAgICAgICAgIE5FWFRfT1BDT0RFKG9wX3Jlc29sdmUpOwogICAg
ICAgICB9CkBAIC0xNDI0LDE3ICsxNDI1LDIxIEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OnBhcnNl
QmxvY2sodW5zaWduZWQKICAgICAgICAgY2FzZSBvcF9yZXNvbHZlX2Jhc2U6IHsKICAgICAgICAg
ICAgIHVuc2lnbmVkIGlkZW50aWZpZXIgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5k
OwogCi0gICAgICAgICAgICBOb2RlSW5kZXggcmVzb2x2ZSA9IGFkZFRvR3JhcGgoY3VycmVudElu
c3RydWN0aW9uWzNdLnUub3BlcmFuZCA/IFJlc29sdmVCYXNlU3RyaWN0UHV0IDogUmVzb2x2ZUJh
c2UsIE9wSW5mbyhpZGVudGlmaWVyKSk7CisgICAgICAgICAgICBOb2RlSW5kZXggcmVzb2x2ZSA9
IGFkZFRvR3JhcGgoY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZCA/IFJlc29sdmVCYXNl
U3RyaWN0UHV0IDogUmVzb2x2ZUJhc2UsIE9wSW5mbyhpZGVudGlmaWVyKSwgT3BJbmZvKFByZWRp
Y3ROb25lKSk7CiAgICAgICAgICAgICBzZXQoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFu
ZCwgcmVzb2x2ZSk7CisgICAgICAgICAgICBzdHJvbmdseVByZWRpY3QocmVzb2x2ZSk7CiAKICAg
ICAgICAgICAgIE5FWFRfT1BDT0RFKG9wX3Jlc29sdmVfYmFzZSk7CiAgICAgICAgIH0KICAgICAg
ICAgICAgIAogICAgICAgICBjYXNlIG9wX3Jlc29sdmVfZ2xvYmFsOiB7Ci0gICAgICAgICAgICB1
bnNpZ25lZCBpZGVudGlmaWVyID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKLQot
ICAgICAgICAgICAgTm9kZUluZGV4IHJlc29sdmUgPSBhZGRUb0dyYXBoKFJlc29sdmVHbG9iYWws
IE9wSW5mbyhpZGVudGlmaWVyKSwgT3BJbmZvKG1fZ2xvYmFsUmVzb2x2ZU51bWJlcisrKSk7Cisg
ICAgICAgICAgICBOb2RlSW5kZXggcmVzb2x2ZSA9IGFkZFRvR3JhcGgoUmVzb2x2ZUdsb2JhbCwg
T3BJbmZvKG1fZ3JhcGgubV9yZXNvbHZlR2xvYmFsRGF0YS5zaXplKCkpLCBPcEluZm8oUHJlZGlj
dE5vbmUpKTsKKyAgICAgICAgICAgIG1fZ3JhcGgubV9yZXNvbHZlR2xvYmFsRGF0YS5hcHBlbmQo
UmVzb2x2ZUdsb2JhbERhdGEoKSk7CisgICAgICAgICAgICBSZXNvbHZlR2xvYmFsRGF0YSYgZGF0
YSA9IG1fZ3JhcGgubV9yZXNvbHZlR2xvYmFsRGF0YS5sYXN0KCk7CisgICAgICAgICAgICBkYXRh
LmlkZW50aWZpZXJOdW1iZXIgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOworICAg
ICAgICAgICAgZGF0YS5yZXNvbHZlSW5mb0luZGV4ID0gbV9nbG9iYWxSZXNvbHZlTnVtYmVyKys7
CiAgICAgICAgICAgICBzZXQoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCwgcmVzb2x2
ZSk7CisgICAgICAgICAgICBzdHJvbmdseVByZWRpY3QocmVzb2x2ZSk7CiAKICAgICAgICAgICAg
IE5FWFRfT1BDT0RFKG9wX3Jlc29sdmVfZ2xvYmFsKTsKICAgICAgICAgfQpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAkocmV2aXNpb24gOTU4NTYpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgJKHdvcmtpbmcgY29weSkKQEAgLTk3LDYgKzk3LDEx
IEBAIHN0cnVjdCBTdG9yYWdlQWNjZXNzRGF0YSB7CiAgICAgLy8gU3RydWN0dXJlKi4KIH07CiAK
K3N0cnVjdCBSZXNvbHZlR2xvYmFsRGF0YSB7CisgICAgdW5zaWduZWQgaWRlbnRpZmllck51bWJl
cjsKKyAgICB1bnNpZ25lZCByZXNvbHZlSW5mb0luZGV4OworfTsKKwogdHlwZWRlZiBWZWN0b3Ig
PEJsb2NrSW5kZXgsIDI+IFByZWRlY2Vzc29yTGlzdDsKIAogc3RydWN0IEJhc2ljQmxvY2sgewpA
QCAtMTk3LDYgKzIwMiwxMCBAQCBwdWJsaWM6CiAgICAgICAgIGNhc2UgQ29uc3RydWN0OgogICAg
ICAgICBjYXNlIEdldEJ5T2Zmc2V0OgogICAgICAgICBjYXNlIEdldFNjb3BlZFZhcjoKKyAgICAg
ICAgY2FzZSBSZXNvbHZlOgorICAgICAgICBjYXNlIFJlc29sdmVCYXNlOgorICAgICAgICBjYXNl
IFJlc29sdmVCYXNlU3RyaWN0UHV0OgorICAgICAgICBjYXNlIFJlc29sdmVHbG9iYWw6CiAgICAg
ICAgICAgICByZXR1cm4gbm9kZS5wcmVkaWN0KHByZWRpY3Rpb24sIHNvdXJjZSk7CiAgICAgICAg
IGRlZmF1bHQ6CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0zMTYsNiArMzI1LDcgQEAg
cHVibGljOgogICAgIFZlY3RvcjxOb2RlSW5kZXgsIDE2PiBtX3ZhckFyZ0NoaWxkcmVuOwogICAg
IFZlY3RvcjxNZXRob2RDaGVja0RhdGE+IG1fbWV0aG9kQ2hlY2tEYXRhOwogICAgIFZlY3RvcjxT
dG9yYWdlQWNjZXNzRGF0YT4gbV9zdG9yYWdlQWNjZXNzRGF0YTsKKyAgICBWZWN0b3I8UmVzb2x2
ZUdsb2JhbERhdGE+IG1fcmVzb2x2ZUdsb2JhbERhdGE7CiAgICAgdW5zaWduZWQgbV9wcmVzZXJ2
ZWRWYXJzOwogICAgIHVuc2lnbmVkIG1fcGFyYW1ldGVyU2xvdHM7CiBwcml2YXRlOgpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgJKHJldmlzaW9uIDk1ODU2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2Nyw3ICs0
NjcsNiBAQCBzdHJ1Y3QgTm9kZSB7CiAgICAgICAgIGNhc2UgUmVzb2x2ZToKICAgICAgICAgY2Fz
ZSBSZXNvbHZlQmFzZToKICAgICAgICAgY2FzZSBSZXNvbHZlQmFzZVN0cmljdFB1dDoKLSAgICAg
ICAgY2FzZSBSZXNvbHZlR2xvYmFsOgogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
IGRlZmF1bHQ6CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC00ODEsMTAgKzQ4MCwxMCBA
QCBzdHJ1Y3QgTm9kZSB7CiAgICAgICAgIHJldHVybiBtX29wSW5mbzsKICAgICB9CiAgICAgCi0g
ICAgdW5zaWduZWQgcmVzb2x2ZUluZm9JbmRleCgpCisgICAgdW5zaWduZWQgcmVzb2x2ZUdsb2Jh
bERhdGFJbmRleCgpCiAgICAgewogICAgICAgICBBU1NFUlQob3AgPT0gUmVzb2x2ZUdsb2JhbCk7
Ci0gICAgICAgIHJldHVybiBtX29wSW5mbzI7CisgICAgICAgIHJldHVybiBtX29wSW5mbzsKICAg
ICB9CiAKICAgICBib29sIGhhc0FyaXRoTm9kZUZsYWdzKCkKQEAgLTYzMyw2ICs2MzIsMTAgQEAg
c3RydWN0IE5vZGUgewogICAgICAgICBjYXNlIENvbnN0cnVjdDoKICAgICAgICAgY2FzZSBHZXRC
eU9mZnNldDoKICAgICAgICAgY2FzZSBHZXRTY29wZWRWYXI6CisgICAgICAgIGNhc2UgUmVzb2x2
ZToKKyAgICAgICAgY2FzZSBSZXNvbHZlQmFzZToKKyAgICAgICAgY2FzZSBSZXNvbHZlQmFzZVN0
cmljdFB1dDoKKyAgICAgICAgY2FzZSBSZXNvbHZlR2xvYmFsOgogICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Byb3BhZ2F0b3IuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJvcGFnYXRvci5jcHAJKHJldmlzaW9u
IDk1ODU2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcm9wYWdhdG9yLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNTMyLDcgKzUzMiwxMSBAQCBwcml2YXRlOgogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgICAgIAotICAgICAgICBjYXNlIEdldFNjb3BlZFZh
cjogeworICAgICAgICBjYXNlIEdldFNjb3BlZFZhcjoKKyAgICAgICAgY2FzZSBSZXNvbHZlOgor
ICAgICAgICBjYXNlIFJlc29sdmVCYXNlOgorICAgICAgICBjYXNlIFJlc29sdmVCYXNlU3RyaWN0
UHV0OgorICAgICAgICBjYXNlIFJlc29sdmVHbG9iYWw6IHsKICAgICAgICAgICAgIGNoYW5nZWQg
fD0gbm9kZS5wcmVkaWN0KG1fdXNlc1ttX2NvbXBpbGVJbmRleF0gJiB+UHJlZGljdGlvblRhZ01h
c2ssIFN0cm9uZ1ByZWRpY3Rpb24pOwogICAgICAgICAgICAgUHJlZGljdGVkVHlwZSBwcmVkaWN0
aW9uID0gbm9kZS5nZXRQcmVkaWN0aW9uKCk7CiAgICAgICAgICAgICBpZiAoaXNTdHJvbmdQcmVk
aWN0aW9uKHByZWRpY3Rpb24pKQpAQCAtNTkxLDYgKzU5NSw3IEBAIHByaXZhdGU6CiAKICNpZm5k
ZWYgTkRFQlVHCiAgICAgICAgIC8vIFRoZXNlIGdldCBpZ25vcmVkIGJlY2F1c2UgdGhleSBkb24n
dCByZXR1cm4gYW55dGhpbmcuCisgICAgICAgIGNhc2UgUHV0U2NvcGVkVmFyOgogICAgICAgICBj
YXNlIERGRzo6SnVtcDoKICAgICAgICAgY2FzZSBCcmFuY2g6CiAgICAgICAgIGNhc2UgQnJlYWtw
b2ludDoKQEAgLTYwMSwxOSArNjA2LDkgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBUaHJvd1Jl
ZmVyZW5jZUVycm9yOgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKLSAgICAgICAg
Ly8gVGhlc2UgZ2V0IGlnbm9yZWQgYmVjYXVzZSB3ZSBkb24ndCBoYXZlIHByb2ZpbGluZyBmb3Ig
dGhlbSwgeWV0LgotICAgICAgICBjYXNlIFJlc29sdmU6Ci0gICAgICAgIGNhc2UgUmVzb2x2ZUJh
c2U6Ci0gICAgICAgIGNhc2UgUmVzb2x2ZUJhc2VTdHJpY3RQdXQ6Ci0gICAgICAgIGNhc2UgUmVz
b2x2ZUdsb2JhbDoKLSAgICAgICAgY2FzZSBQdXRTY29wZWRWYXI6Ci0gICAgICAgICAgICBicmVh
azsKLSAgICAgICAgICAgIAogICAgICAgICAvLyBUaGlzIGdldHMgaWdub3JlZCBiZWNhdXNlIGl0
IGRvZXNuJ3QgZG8gYW55dGhpbmcuCiAgICAgICAgIGNhc2UgUGhhbnRvbToKICAgICAgICAgICAg
IGJyZWFrOwotCi0KICNlbHNlCiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBicmVhazsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQu
Y3BwCShyZXZpc2lvbiA5NTg1NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDUzLDcgKzIwNTMsOCBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUmIG5vZGUpCiAgICAgICAgIEdQUlJlZyByZXNv
bHZlSW5mb0dQUiA9IHJlc29sdmVJbmZvLmdwcigpOwogICAgICAgICBHUFJSZWcgcmVzdWx0R1BS
ID0gcmVzdWx0LmdwcigpOwogCi0gICAgICAgIEdsb2JhbFJlc29sdmVJbmZvKiByZXNvbHZlSW5m
b0FkZHJlc3MgPSAmKG1faml0LmNvZGVCbG9jaygpLT5nbG9iYWxSZXNvbHZlSW5mbyhub2RlLnJl
c29sdmVJbmZvSW5kZXgoKSkpOworICAgICAgICBSZXNvbHZlR2xvYmFsRGF0YSYgZGF0YSA9IG1f
aml0LmdyYXBoKCkubV9yZXNvbHZlR2xvYmFsRGF0YVtub2RlLnJlc29sdmVHbG9iYWxEYXRhSW5k
ZXgoKV07CisgICAgICAgIEdsb2JhbFJlc29sdmVJbmZvKiByZXNvbHZlSW5mb0FkZHJlc3MgPSAm
KG1faml0LmNvZGVCbG9jaygpLT5nbG9iYWxSZXNvbHZlSW5mbyhkYXRhLnJlc29sdmVJbmZvSW5k
ZXgpKTsKIAogICAgICAgICAvLyBDaGVjayBTdHJ1Y3R1cmUgb2YgZ2xvYmFsIG9iamVjdAogICAg
ICAgICBtX2ppdC5tb3ZlKEpJVENvbXBpbGVyOjpUcnVzdGVkSW1tUHRyKG1faml0LmNvZGVCbG9j
aygpLT5nbG9iYWxPYmplY3QoKSksIGdsb2JhbE9iamVjdEdQUik7CkBAIC0yMDYzLDcgKzIwNjQs
NyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUmIG5vZGUpCiAKICAgICAgICAg
c2lsZW50U3BpbGxBbGxSZWdpc3RlcnMocmVzdWx0R1BSKTsKICAgICAgICAgbV9qaXQubW92ZShy
ZXNvbHZlSW5mb0dQUiwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKLSAgICAgICAgbV9qaXQubW92
ZShKSVRDb21waWxlcjo6VHJ1c3RlZEltbVB0cigmbV9qaXQuY29kZUJsb2NrKCktPmlkZW50aWZp
ZXIobm9kZS5pZGVudGlmaWVyTnVtYmVyKCkpKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKTsKKyAg
ICAgICAgbV9qaXQubW92ZShKSVRDb21waWxlcjo6VHJ1c3RlZEltbVB0cigmbV9qaXQuY29kZUJs
b2NrKCktPmlkZW50aWZpZXIoZGF0YS5pZGVudGlmaWVyTnVtYmVyKSksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMik7CiAgICAgICAgIG1faml0Lm1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIs
IEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgICAgIEpJVENvbXBpbGVyOjpDYWxsIGZ1bmN0
aW9uQ2FsbCA9IGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uUmVzb2x2ZUds
b2JhbCk7CiAgICAgICAgIG1faml0Lm1vdmUoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIHJlc3Vs
dEdQUik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAJKHJl
dmlzaW9uIDk1ODU2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNTE4LDcgKzUxOCw3IEBAIHZvaWQgSklUOjplbWl0X29wX3Jl
c29sdmUoSW5zdHJ1Y3Rpb24qIGMKIHsKICAgICBKSVRTdHViQ2FsbCBzdHViQ2FsbCh0aGlzLCBj
dGlfb3BfcmVzb2x2ZSk7CiAgICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoVHJ1c3RlZEltbVB0cigm
bV9jb2RlQmxvY2stPmlkZW50aWZpZXIoY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCkp
KTsKLSAgICBzdHViQ2FsbC5jYWxsKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpOwor
ICAgIHN0dWJDYWxsLmNhbGxXaXRoVmFsdWVQcm9maWxpbmcoY3VycmVudEluc3RydWN0aW9uWzFd
LnUub3BlcmFuZCwgRmlyc3RQcm9maWxpbmdTaXRlKTsKIH0KIAogdm9pZCBKSVQ6OmVtaXRfb3Bf
dG9fcHJpbWl0aXZlKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCkBAIC01NDksNyAr
NTQ5LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcmVzb2x2ZV9iYXNlKEluc3RydWN0aQogewogICAg
IEpJVFN0dWJDYWxsIHN0dWJDYWxsKHRoaXMsIGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJh
bmQgPyBjdGlfb3BfcmVzb2x2ZV9iYXNlX3N0cmljdF9wdXQgOiBjdGlfb3BfcmVzb2x2ZV9iYXNl
KTsKICAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChUcnVzdGVkSW1tUHRyKCZtX2NvZGVCbG9jay0+
aWRlbnRpZmllcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSkpOwotICAgIHN0dWJD
YWxsLmNhbGwoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCk7CisgICAgc3R1YkNhbGwu
Y2FsbFdpdGhWYWx1ZVByb2ZpbGluZyhjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kLCBG
aXJzdFByb2ZpbGluZ1NpdGUpOwogfQogCiB2b2lkIEpJVDo6ZW1pdF9vcF9lbnN1cmVfcHJvcGVy
dHlfZXhpc3RzKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCkBAIC01NjUsNyArNTY1
LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcmVzb2x2ZV9za2lwKEluc3RydWN0aQogICAgIEpJVFN0
dWJDYWxsIHN0dWJDYWxsKHRoaXMsIGN0aV9vcF9yZXNvbHZlX3NraXApOwogICAgIHN0dWJDYWxs
LmFkZEFyZ3VtZW50KFRydXN0ZWRJbW1QdHIoJm1fY29kZUJsb2NrLT5pZGVudGlmaWVyKGN1cnJl
bnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQpKSk7CiAgICAgc3R1YkNhbGwuYWRkQXJndW1lbnQo
SW1tMzIoY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZCkpOwotICAgIHN0dWJDYWxsLmNh
bGwoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCk7CisgICAgc3R1YkNhbGwuY2FsbFdp
dGhWYWx1ZVByb2ZpbGluZyhjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kLCBGaXJzdFBy
b2ZpbGluZ1NpdGUpOwogfQogCiB2b2lkIEpJVDo6ZW1pdF9vcF9yZXNvbHZlX2dsb2JhbChJbnN0
cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBib29sKQpAQCAtNTg2LDYgKzU4Niw3IEBAIHZv
aWQgSklUOjplbWl0X29wX3Jlc29sdmVfZ2xvYmFsKEluc3RydWMKICAgICBsb2FkUHRyKEFkZHJl
c3MocmVnVDAsIE9CSkVDVF9PRkZTRVRPRihKU0dsb2JhbE9iamVjdCwgbV9wcm9wZXJ0eVN0b3Jh
Z2UpKSwgcmVnVDApOwogICAgIGxvYWQzMihBZGRyZXNzKHJlZ1QyLCBPQkpFQ1RfT0ZGU0VUT0Yo
R2xvYmFsUmVzb2x2ZUluZm8sIG9mZnNldCkpLCByZWdUMSk7CiAgICAgbG9hZFB0cihCYXNlSW5k
ZXgocmVnVDAsIHJlZ1QxLCBTY2FsZVB0ciksIHJlZ1QwKTsKKyAgICBlbWl0VmFsdWVQcm9maWxp
bmdTaXRlKEZpcnN0UHJvZmlsaW5nU2l0ZSk7CiAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rlcihj
dXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKTsKIH0KIApAQCAtNjAxLDcgKzYwMiw3IEBA
IHZvaWQgSklUOjplbWl0U2xvd19vcF9yZXNvbHZlX2dsb2JhbChJbnMKICAgICBzdHViQ2FsbC5h
ZGRBcmd1bWVudChUcnVzdGVkSW1tUHRyKGlkZW50KSk7CiAgICAgc3R1YkNhbGwuYWRkQXJndW1l
bnQoSW1tMzIoY3VycmVudEluZGV4KSk7CiAgICAgc3R1YkNhbGwuYWRkQXJndW1lbnQocmVnVDAp
OwotICAgIHN0dWJDYWxsLmNhbGwoZHN0KTsKKyAgICBzdHViQ2FsbC5jYWxsV2l0aFZhbHVlUHJv
ZmlsaW5nKGRzdCwgU3Vic2VxdWVudFByb2ZpbGluZ1NpdGUpOwogfQogCiB2b2lkIEpJVDo6ZW1p
dF9vcF9ub3QoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKQEAgLTcyMiw3ICs3MjMs
NyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9yZXNvbHZlX3dpdGhfYmFzZShJbnN0CiAgICAgSklUU3R1
YkNhbGwgc3R1YkNhbGwodGhpcywgY3RpX29wX3Jlc29sdmVfd2l0aF9iYXNlKTsKICAgICBzdHVi
Q2FsbC5hZGRBcmd1bWVudChUcnVzdGVkSW1tUHRyKCZtX2NvZGVCbG9jay0+aWRlbnRpZmllcihj
dXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kKSkpOwogICAgIHN0dWJDYWxsLmFkZEFyZ3Vt
ZW50KEltbTMyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpKTsKLSAgICBzdHViQ2Fs
bC5jYWxsKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQpOworICAgIHN0dWJDYWxsLmNh
bGxXaXRoVmFsdWVQcm9maWxpbmcoY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCwgRmly
c3RQcm9maWxpbmdTaXRlKTsKIH0KIAogdm9pZCBKSVQ6OmVtaXRfb3BfcmVzb2x2ZV93aXRoX3Ro
aXMoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKQEAgLTczMCw3ICs3MzEsNyBAQCB2
b2lkIEpJVDo6ZW1pdF9vcF9yZXNvbHZlX3dpdGhfdGhpcyhJbnN0CiAgICAgSklUU3R1YkNhbGwg
c3R1YkNhbGwodGhpcywgY3RpX29wX3Jlc29sdmVfd2l0aF90aGlzKTsKICAgICBzdHViQ2FsbC5h
ZGRBcmd1bWVudChUcnVzdGVkSW1tUHRyKCZtX2NvZGVCbG9jay0+aWRlbnRpZmllcihjdXJyZW50
SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kKSkpOwogICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KElt
bTMyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpKTsKLSAgICBzdHViQ2FsbC5jYWxs
KGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQpOworICAgIHN0dWJDYWxsLmNhbGxXaXRo
VmFsdWVQcm9maWxpbmcoY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCwgRmlyc3RQcm9m
aWxpbmdTaXRlKTsKIH0KIAogdm9pZCBKSVQ6OmVtaXRfb3BfanRydWUoSW5zdHJ1Y3Rpb24qIGN1
cnJlbnRJbnN0cnVjdGlvbikKQEAgLTE1MzEsNyArMTUzMiw3IEBAIHZvaWQgSklUOjplbWl0U2xv
d19vcF9yZXNvbHZlX2dsb2JhbF9keW4KICAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChUcnVzdGVk
SW1tUHRyKGlkZW50KSk7CiAgICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoSW1tMzIoY3VycmVudElu
ZGV4KSk7CiAgICAgc3R1YkNhbGwuYWRkQXJndW1lbnQocmVnVDApOwotICAgIHN0dWJDYWxsLmNh
bGwoZHN0KTsKKyAgICBzdHViQ2FsbC5jYWxsV2l0aFZhbHVlUHJvZmlsaW5nKGRzdCwgU3Vic2Vx
dWVudFByb2ZpbGluZ1NpdGUpOyAvLyBUaGUgZmlyc3QgcHJvZmlsaW5nIHNpdGUgaXMgaW4gZW1p
dF9vcF9yZXNvbHZlX2dsb2JhbAogfQogCiB2b2lkIEpJVDo6ZW1pdF9vcF9uZXdfcmVnZXhwKElu
c3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVFN0dWJDYWxsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRTdHViQ2FsbC5oCShyZXZpc2lvbiA5NTg1NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUU3R1YkNhbGwuaAkod29ya2luZyBjb3B5KQpAQCAtMjAwLDYgKzIwMCwxMSBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgICAgICBtX2ppdC0+ZW1pdFN0b3JlQ2VsbChk
c3QsIEpJVDo6cmV0dXJuVmFsdWVSZWdpc3Rlcik7CiAgICAgICAgICAgICByZXR1cm4gY2FsbDsK
ICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgSklUOjpDYWxsIGNhbGxXaXRoVmFsdWVQcm9m
aWxpbmcodW5zaWduZWQgZHN0LCBKSVQ6OlZhbHVlUHJvZmlsaW5nU2l0ZUtpbmQpCisgICAgICAg
IHsKKyAgICAgICAgICAgIHJldHVybiBjYWxsKGRzdCk7CisgICAgICAgIH0KICNlbHNlCiAgICAg
ICAgIEpJVDo6Q2FsbCBjYWxsKHVuc2lnbmVkIGRzdCkgLy8gZHN0IGlzIGEgdmlydHVhbCByZWdp
c3Rlci4KICAgICAgICAgewpAQCAtMjA4LDYgKzIxMywxNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgICAgIG1faml0LT5lbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGRzdCk7CiAgICAgICAgICAg
ICByZXR1cm4gY2FsbDsKICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgSklUOjpDYWxsIGNh
bGxXaXRoVmFsdWVQcm9maWxpbmcodW5zaWduZWQgZHN0LCBKSVQ6OlZhbHVlUHJvZmlsaW5nU2l0
ZUtpbmQga2luZCkKKyAgICAgICAgeworICAgICAgICAgICAgQVNTRVJUKG1fcmV0dXJuVHlwZSA9
PSBWb2lkUHRyIHx8IG1fcmV0dXJuVHlwZSA9PSBDZWxsKTsKKyAgICAgICAgICAgIEpJVDo6Q2Fs
bCBjYWxsID0gdGhpcy0+Y2FsbCgpOworICAgICAgICAgICAgQVNTRVJUKEpJVDo6cmV0dXJuVmFs
dWVSZWdpc3RlciA9PSBKSVQ6OnJlZ1QwKTsKKyAgICAgICAgICAgIG1faml0LT5lbWl0VmFsdWVQ
cm9maWxpbmdTaXRlKGtpbmQpOworICAgICAgICAgICAgbV9qaXQtPmVtaXRQdXRWaXJ0dWFsUmVn
aXN0ZXIoZHN0KTsKKyAgICAgICAgICAgIHJldHVybiBjYWxsOworICAgICAgICB9CiAjZW5kaWYK
IAogICAgICAgICBKSVQ6OkNhbGwgY2FsbChKSVQ6OlJlZ2lzdGVySUQgZHN0KSAvLyBkc3QgaXMg
YSBtYWNoaW5lIHJlZ2lzdGVyLgo=
</data>
<flag name="review"
          id="105534"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>