<?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>159859</bug_id>
          
          <creation_ts>2016-07-16 15:37:52 -0700</creation_ts>
          <short_desc>DFG CSE should know how to decay a MultiGetByOffset</short_desc>
          <delta_ts>2018-04-24 11:56:26 -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>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>159858</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1211804</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-07-16 15:37:52 -0700</bug_when>
    <thetext>This probably means teaching Node::remove() how to decay a MultiGetByOffset, which implies passing Graph&amp; to remove() so that it can create a StructureSet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1243535</commentid>
    <comment_count>1</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-10-23 12:29:04 -0700</bug_when>
    <thetext>Is MultiGetByOffset not dominated by a StructureCheck the way GetByOffset is?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1243539</commentid>
    <comment_count>2</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-10-23 13:02:26 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Is MultiGetByOffset not dominated by a StructureCheck the way GetByOffset is?

It&apos;s not dominated by a CheckStructure.  The MultiGetByOffset does its own structure check.

We want one switch statement that both checks that we have the structure we want and loads the value.  CheckStructure with multiple structures in its set will be a switch and MultiGetByOffset is always a switch (unless we failed to strength-reduce a one-case MultiGetByOffset), so that would be two switches.  That&apos;s not cool, because we can&apos;t guarantee that B3 will jump-thread or tail-dup two switches in a row.  So, MultiGetByOffset is its own check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1245503</commentid>
    <comment_count>3</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-10-28 02:31:48 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (In reply to comment #1)
&gt; &gt; Is MultiGetByOffset not dominated by a StructureCheck the way GetByOffset is?
&gt; 
&gt; It&apos;s not dominated by a CheckStructure.  The MultiGetByOffset does its own
&gt; structure check.
&gt; 
&gt; We want one switch statement that both checks that we have the structure we
&gt; want and loads the value.  CheckStructure with multiple structures in its
&gt; set will be a switch and MultiGetByOffset is always a switch (unless we
&gt; failed to strength-reduce a one-case MultiGetByOffset), so that would be two
&gt; switches.  That&apos;s not cool, because we can&apos;t guarantee that B3 will
&gt; jump-thread or tail-dup two switches in a row.  So, MultiGetByOffset is its
&gt; own check.

Gotcha. I&apos;ll work on fixing this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1417165</commentid>
    <comment_count>4</comment_count>
      <attachid>338653</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2018-04-24 08:48:50 -0700</bug_when>
    <thetext>Created attachment 338653
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1417214</commentid>
    <comment_count>5</comment_count>
      <attachid>338653</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2018-04-24 11:49:59 -0700</bug_when>
    <thetext>Comment on attachment 338653
the patch

r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1417216</commentid>
    <comment_count>6</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2018-04-24 11:55:02 -0700</bug_when>
    <thetext>Landed in https://trac.webkit.org/changeset/230964/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1417218</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-04-24 11:56:26 -0700</bug_when>
    <thetext>&lt;rdar://problem/39692355&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>338653</attachid>
            <date>2018-04-24 08:48:50 -0700</date>
            <delta_ts>2018-04-24 11:49:59 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>8136</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjMwOTU1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBA
CisyMDE4LTA0LTI0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
REZHIENTRSBzaG91bGQga25vdyBob3cgdG8gZGVjYXkgYSBNdWx0aUdldEJ5T2Zmc2V0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTk4NTkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFRoaXMg
dGVhY2hlcyBOb2RlOjpyZW1vdmUoKSBob3cgdG8gZGVjYXkgYSBNdWx0aUdldEJ5T2Zmc2V0IHRv
IGEgQ2hlY2tTdHJ1Y3R1cmUsIHNvIHRoYXQKKyAgICAgICAgY2xvYmJlcml6ZSgpIGNhbiByZXBv
cnQgYSBkZWYoKSBmb3IgTXVsdGlHZXRCeU9mZnNldC4KKyAgICAgICAgCisgICAgICAgIFRoaXMg
aXMgYSBzbGlnaHQgc3BsYXkgcHJvZ3Jlc3Npb24gYmVjYXVzZSBzcGxheSBpcyBhIGhlYXZ5IHVz
ZXIgb2YgTXVsdGlHZXRCeU9mZnNldC4gSXQgdXNlcworICAgICAgICBpdCByZWR1bmRhbnRseSBp
biBvbmUgb2YgaXRzIGhvdCBmdW5jdGlvbnMgKHRoZSBmdW5jdGlvbiBjYWxsZWQgInNwbGF5XyIp
LgorCisgICAgICAgICogZGZnL0RGR0Nsb2JiZXJpemUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpj
bG9iYmVyaXplKToKKyAgICAgICAgKiBkZmcvREZHTm9kZS5jcHA6CisgICAgICAgIChKU0M6OkRG
Rzo6Tm9kZTo6cmVtb3ZlKToKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjpyZW1vdmVXaXRob3V0
Q2hlY2tzKToKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjpyZXBsYWNlV2l0aCk6CisgICAgICAg
IChKU0M6OkRGRzo6Tm9kZTo6cmVwbGFjZVdpdGhXaXRob3V0Q2hlY2tzKToKKyAgICAgICAgKiBk
ZmcvREZHTm9kZS5oOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6OmNvbnZlcnRUb011bHRpR2V0
QnlPZmZzZXQpOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6OnJlcGxhY2VXaXRoKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBkZmcvREZHTm9kZVR5cGUuaDoKKyAgICAgICAgKiBkZmcvREZHT2JqZWN0
QWxsb2NhdGlvblNpbmtpbmdQaGFzZS5jcHA6CisKIDIwMTgtMDQtMjMgIFphbGFuIEJ1anRhcyAg
PHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRdIElu
aXRpYWwgY29tbWl0LgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVy
aXplLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVy
aXplLmgJKHJldmlzaW9uIDIzMDkyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Q2xvYmJlcml6ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTg4LDkgKzExODgsNyBAQCB2b2lkIGNs
b2JiZXJpemUoR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlCiAgICAgICAgIHJlYWQoSlNPYmplY3Rf
YnV0dGVyZmx5TWFzayk7CiAgICAgICAgIEFic3RyYWN0SGVhcCBoZWFwKE5hbWVkUHJvcGVydGll
cywgbm9kZS0+bXVsdGlHZXRCeU9mZnNldERhdGEoKS5pZGVudGlmaWVyTnVtYmVyKTsKICAgICAg
ICAgcmVhZChoZWFwKTsKLSAgICAgICAgLy8gRklYTUU6IFdlIGNhbm5vdCBkZWYoKSBmb3IgTXVs
dGlHZXRCeU9mZnNldCBiZWNhdXNlIENTRSBpcyBub3Qgc21hcnQgZW5vdWdoIHRvIGRlY2F5IGl0
Ci0gICAgICAgIC8vIHRvIGEgQ2hlY2tTdHJ1Y3R1cmUuCi0gICAgICAgIC8vIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTk4NTkKKyAgICAgICAgZGVmKEhlYXBMb2Nh
dGlvbihOYW1lZFByb3BlcnR5TG9jLCBoZWFwLCBub2RlLT5jaGlsZDEoKSksIExhenlOb2RlKG5v
ZGUpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAgICAgCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHTm9kZS5jcHAJKHJldmlzaW9uIDIzMDkyOSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHTm9kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0LCAyMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE4IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtODMs
MjcgKzgzLDYyIEBAIGJvb2wgTm9kZTo6aGFzVmFyaWFibGVBY2Nlc3NEYXRhKEdyYXBoJiAKIAog
dm9pZCBOb2RlOjpyZW1vdmUoR3JhcGgmIGdyYXBoKQogewotICAgIGlmIChmbGFncygpICYgTm9k
ZUhhc1ZhckFyZ3MpIHsKLSAgICAgICAgdW5zaWduZWQgdGFyZ2V0SW5kZXggPSAwOwotICAgICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtQ2hpbGRyZW4oKTsgKytpKSB7Ci0gICAgICAg
ICAgICBFZGdlJiBlZGdlID0gZ3JhcGgudmFyQXJnQ2hpbGQodGhpcywgaSk7Ci0gICAgICAgICAg
ICBpZiAoIWVkZ2UpCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICBpZiAo
ZWRnZS53aWxsSGF2ZUNoZWNrKCkpIHsKLSAgICAgICAgICAgICAgICBFZGdlJiBkc3QgPSBncmFw
aC52YXJBcmdDaGlsZCh0aGlzLCB0YXJnZXRJbmRleCsrKTsKLSAgICAgICAgICAgICAgICBzdGQ6
OnN3YXAoZHN0LCBlZGdlKTsKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICBzd2l0Y2gg
KG9wKCkpIHsKKyAgICBjYXNlIE11bHRpR2V0QnlPZmZzZXQ6IHsKKyAgICAgICAgTXVsdGlHZXRC
eU9mZnNldERhdGEmIGRhdGEgPSBtdWx0aUdldEJ5T2Zmc2V0RGF0YSgpOworICAgICAgICBTdHJ1
Y3R1cmVTZXQgc2V0OworICAgICAgICBmb3IgKE11bHRpR2V0QnlPZmZzZXRDYXNlJiBnZXRDYXNl
IDogZGF0YS5jYXNlcykgeworICAgICAgICAgICAgZ2V0Q2FzZS5zZXQoKS5mb3JFYWNoKAorICAg
ICAgICAgICAgICAgIFsmXSAoUmVnaXN0ZXJlZFN0cnVjdHVyZSBzdHJ1Y3R1cmUpIHsKKyAgICAg
ICAgICAgICAgICAgICAgc2V0LmFkZChzdHJ1Y3R1cmUuZ2V0KCkpOworICAgICAgICAgICAgICAg
IH0pOworICAgICAgICB9CisgICAgICAgIGNvbnZlcnRUb0NoZWNrU3RydWN0dXJlKGdyYXBoLmFk
ZFN0cnVjdHVyZVNldChzZXQpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAgICAgCisg
ICAgZGVmYXVsdDoKKyAgICAgICAgaWYgKGZsYWdzKCkgJiBOb2RlSGFzVmFyQXJncykgeworICAg
ICAgICAgICAgdW5zaWduZWQgdGFyZ2V0SW5kZXggPSAwOworICAgICAgICAgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IG51bUNoaWxkcmVuKCk7ICsraSkgeworICAgICAgICAgICAgICAgIEVk
Z2UmIGVkZ2UgPSBncmFwaC52YXJBcmdDaGlsZCh0aGlzLCBpKTsKKyAgICAgICAgICAgICAgICBp
ZiAoIWVkZ2UpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAg
IGlmIChlZGdlLndpbGxIYXZlQ2hlY2soKSkgeworICAgICAgICAgICAgICAgICAgICBFZGdlJiBk
c3QgPSBncmFwaC52YXJBcmdDaGlsZCh0aGlzLCB0YXJnZXRJbmRleCsrKTsKKyAgICAgICAgICAg
ICAgICAgICAgc3RkOjpzd2FwKGRzdCwgZWRnZSk7CisgICAgICAgICAgICAgICAgICAgIGNvbnRp
bnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlZGdlID0gRWRnZSgpOwog
ICAgICAgICAgICAgfQotICAgICAgICAgICAgZWRnZSA9IEVkZ2UoKTsKKyAgICAgICAgICAgIHNl
dE9wQW5kRGVmYXVsdEZsYWdzKENoZWNrVmFyYXJncyk7CisgICAgICAgICAgICBjaGlsZHJlbi5z
ZXROdW1DaGlsZHJlbih0YXJnZXRJbmRleCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICBjaGlsZHJlbiA9IGNoaWxkcmVuLmp1c3RDaGVja3MoKTsKKyAgICAgICAgICAgIHNldE9wQW5k
RGVmYXVsdEZsYWdzKENoZWNrKTsKICAgICAgICAgfQotICAgICAgICBzZXRPcEFuZERlZmF1bHRG
bGFncyhDaGVja1ZhcmFyZ3MpOwotICAgICAgICBjaGlsZHJlbi5zZXROdW1DaGlsZHJlbih0YXJn
ZXRJbmRleCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgY2hpbGRyZW4gPSBjaGlsZHJlbi5qdXN0
Q2hlY2tzKCk7Ci0gICAgICAgIHNldE9wQW5kRGVmYXVsdEZsYWdzKENoZWNrKTsKKyAgICAgICAg
cmV0dXJuOwogICAgIH0KIH0KIAordm9pZCBOb2RlOjpyZW1vdmVXaXRob3V0Q2hlY2tzKCkKK3sK
KyAgICBjaGlsZHJlbiA9IEFkamFjZW5jeUxpc3QoKTsKKyAgICBzZXRPcEFuZERlZmF1bHRGbGFn
cyhDaGVjayk7Cit9CisKK3ZvaWQgTm9kZTo6cmVwbGFjZVdpdGgoR3JhcGgmIGdyYXBoLCBOb2Rl
KiBvdGhlcikKK3sKKyAgICByZW1vdmUoZ3JhcGgpOworICAgIHNldFJlcGxhY2VtZW50KG90aGVy
KTsKK30KKwordm9pZCBOb2RlOjpyZXBsYWNlV2l0aFdpdGhvdXRDaGVja3MoTm9kZSogb3RoZXIp
Cit7CisgICAgcmVtb3ZlV2l0aG91dENoZWNrcygpOworICAgIHNldFJlcGxhY2VtZW50KG90aGVy
KTsKK30KKwogdm9pZCBOb2RlOjpjb252ZXJ0VG9JZGVudGl0eSgpCiB7CiAgICAgUkVMRUFTRV9B
U1NFUlQoY2hpbGQxKCkpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2Rl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgJKHJl
dmlzaW9uIDIzMDkyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC00MzEsNiArNDMxLDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIHZv
aWQgcmVtb3ZlKEdyYXBoJik7CisgICAgdm9pZCByZW1vdmVXaXRob3V0Q2hlY2tzKCk7CiAKICAg
ICB2b2lkIGNvbnZlcnRUb0NoZWNrU3RydWN0dXJlKFJlZ2lzdGVyZWRTdHJ1Y3R1cmVTZXQqIHNl
dCkKICAgICB7CkBAIC00NTEsMTEgKzQ1Miw4IEBAIHB1YmxpYzoKICAgICAgICAgY2hpbGRyZW4u
c2V0Q2hpbGQxKEVkZ2Uoc3RydWN0dXJlLCBDZWxsVXNlKSk7CiAgICAgfQogICAgIAotICAgIHZv
aWQgcmVwbGFjZVdpdGgoR3JhcGgmIGdyYXBoLCBOb2RlKiBvdGhlcikKLSAgICB7Ci0gICAgICAg
IHJlbW92ZShncmFwaCk7Ci0gICAgICAgIHNldFJlcGxhY2VtZW50KG90aGVyKTsKLSAgICB9Cisg
ICAgdm9pZCByZXBsYWNlV2l0aChHcmFwaCYsIE5vZGUqIG90aGVyKTsKKyAgICB2b2lkIHJlcGxh
Y2VXaXRoV2l0aG91dENoZWNrcyhOb2RlKiBvdGhlcik7CiAKICAgICB2b2lkIGNvbnZlcnRUb0lk
ZW50aXR5KCk7CiAgICAgdm9pZCBjb252ZXJ0VG9JZGVudGl0eU9uKE5vZGUqKTsKQEAgLTU2Miwx
MSArNTYwLDExIEBAIHB1YmxpYzoKICAgICAKICAgICB2b2lkIGNvbnZlcnRUb011bHRpR2V0QnlP
ZmZzZXQoTXVsdGlHZXRCeU9mZnNldERhdGEqIGRhdGEpCiAgICAgewotICAgICAgICBBU1NFUlQo
bV9vcCA9PSBHZXRCeUlkIHx8IG1fb3AgPT0gR2V0QnlJZEZsdXNoIHx8IG1fb3AgPT0gR2V0QnlJ
ZERpcmVjdCB8fCBtX29wID09IEdldEJ5SWREaXJlY3RGbHVzaCk7CisgICAgICAgIFJFTEVBU0Vf
QVNTRVJUKG1fb3AgPT0gR2V0QnlJZCB8fCBtX29wID09IEdldEJ5SWRGbHVzaCB8fCBtX29wID09
IEdldEJ5SWREaXJlY3QgfHwgbV9vcCA9PSBHZXRCeUlkRGlyZWN0Rmx1c2gpOwogICAgICAgICBt
X29wSW5mbyA9IGRhdGE7CiAgICAgICAgIGNoaWxkMSgpLnNldFVzZUtpbmQoQ2VsbFVzZSk7CiAg
ICAgICAgIG1fb3AgPSBNdWx0aUdldEJ5T2Zmc2V0OwotICAgICAgICBBU1NFUlQobV9mbGFncyAm
IE5vZGVNdXN0R2VuZXJhdGUpOworICAgICAgICBSRUxFQVNFX0FTU0VSVChtX2ZsYWdzICYgTm9k
ZU11c3RHZW5lcmF0ZSk7CiAgICAgfQogICAgIAogICAgIHZvaWQgY29udmVydFRvUHV0QnlPZmZz
ZXQoU3RvcmFnZUFjY2Vzc0RhdGEmIGRhdGEsIEVkZ2Ugc3RvcmFnZSwgRWRnZSBiYXNlKQpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAkocmV2aXNpb24gMjMwOTI5
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPYmplY3RBbGxvY2F0aW9u
U2lua2luZ1BoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR09iamVjdEFsbG9jYXRpb25TaW5raW5nUGhhc2UuY3BwCShyZXZpc2lvbiAyMzA5MjkpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09iamVjdEFsbG9jYXRpb25TaW5raW5nUGhh
c2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTUtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTk2MCw3ICs5NjAsNyBAQCBwcml2YXRlOgogICAgICAgICAg
ICAgICAgIFByb21vdGVkSGVhcExvY2F0aW9uIGxvY2F0aW9uKE5hbWVkUHJvcGVydHlQTG9jLCBh
bGxvY2F0aW9uLT5pZGVudGlmaWVyKCksIGlkZW50aWZpZXJOdW1iZXIpOwogICAgICAgICAgICAg
ICAgIGlmIChOb2RlKiB2YWx1ZSA9IGhlYXBSZXNvbHZlKGxvY2F0aW9uKSkgewogICAgICAgICAg
ICAgICAgICAgICBpZiAoYWxsb2NhdGlvbi0+c3RydWN0dXJlcygpLmlzU3Vic2V0T2YodmFsaWRT
dHJ1Y3R1cmVzKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUtPnJlcGxhY2VXaXRoKG1f
Z3JhcGgsIHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUtPnJlcGxhY2VXaXRo
V2l0aG91dENoZWNrcyh2YWx1ZSk7CiAgICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAg
ICAgICAgICAgICAgICAgICAgTm9kZSogc3RydWN0dXJlID0gaGVhcFJlc29sdmUoUHJvbW90ZWRI
ZWFwTG9jYXRpb24oYWxsb2NhdGlvbi0+aWRlbnRpZmllcigpLCBTdHJ1Y3R1cmVQTG9jKSk7CiAg
ICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlQoc3RydWN0dXJlKTsK
</data>
<flag name="review"
          id="356920"
          type_id="1"
          status="+"
          setter="keith_miller"
    />
          </attachment>
      

    </bug>

</bugzilla>