<?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>113819</bug_id>
          
          <creation_ts>2013-04-02 12:21:22 -0700</creation_ts>
          <short_desc>fourthTier: FTL should have the equivalent of a ValueRecovery</short_desc>
          <delta_ts>2013-04-02 12:52:35 -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>113623</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>868158</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-04-02 12:21:22 -0700</bug_when>
    <thetext>ValueRecoveries speak of registers. The FTL doesn&apos;t speak of registers. Also, the FTL doesn&apos;t have to reason about the plethora of places that a value could have been put into; it just needs to know the LLVMValueRef (i.e. LValue).  In fact, the FTL really just needs to speak in terms of values-with-formats - essentially a modestly type-refined LLVM value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>868160</commentid>
    <comment_count>1</comment_count>
      <attachid>196209</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-04-02 12:26:45 -0700</bug_when>
    <thetext>Created attachment 196209
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>868162</commentid>
    <comment_count>2</comment_count>
      <attachid>196209</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-04-02 12:30:54 -0700</bug_when>
    <thetext>Comment on attachment 196209
the patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>868182</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-04-02 12:52:35 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/147487</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>196209</attachid>
            <date>2013-04-02 12:26:45 -0700</date>
            <delta_ts>2013-04-02 12:30:54 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>10435</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTQ3NDgzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBA
CisyMDEzLTA0LTAyICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
Zm91cnRoVGllcjogRlRMIHNob3VsZCBoYXZlIHRoZSBlcXVpdmFsZW50IG9mIGEgVmFsdWVSZWNv
dmVyeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEz
ODE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAg
ICAgICBUaGlzIGFkZHMgYSB3YXkgb2Ygc2F5aW5nIHRoYXQgd2UgaGF2ZSBhIHZhbHVlLCB3ZSBk
b24ndCB3YW50IHRvIHNheSB3aGF0CisgICAgICAgIG5vZGUgdGhlIHZhbHVlIGNhbWUgZnJvbSwg
YnV0IHdlIGtub3cgc3BlY2lmaWNzIG9mIGhvdyB0aGUgdmFsdWUgaXMKKyAgICAgICAgZm9ybWF0
dGVkLiBUaGlzIGlzIHRoZSBMTFZNIGVxdWl2YWxlbnQgb2YgREZHJ3MgVmFsdWVSZWNvdmVyeS4K
KworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogZnRsL0ZUTEZvcm1hdHRlZFZhbHVlLmg6IEFkZGVkLgorICAgICAgICAoRlRMKToK
KyAgICAgICAgKEZvcm1hdHRlZFZhbHVlKToKKyAgICAgICAgKEpTQzo6RlRMOjpGb3JtYXR0ZWRW
YWx1ZTo6Rm9ybWF0dGVkVmFsdWUpOgorICAgICAgICAoSlNDOjpGVEw6OkZvcm1hdHRlZFZhbHVl
OjpvcGVyYXRvciEpOgorICAgICAgICAoSlNDOjpGVEw6OkZvcm1hdHRlZFZhbHVlOjpmb3JtYXQp
OgorICAgICAgICAoSlNDOjpGVEw6OkZvcm1hdHRlZFZhbHVlOjp2YWx1ZSk6CisgICAgICAgICog
ZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1Rv
TExWTTo6Y29tcGlsZVVJbnQzMlRvTnVtYmVyKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRG
R1RvTExWTTo6c3BlY3VsYXRlRm9yd2FyZCk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdU
b0xMVk06OndlYWtQb2ludGVyKToKKwogMjAxMy0wNC0wMiAgRmlsaXAgUGl6bG8gIDxmcGl6bG9A
YXBwbGUuY29tPgogCiAgICAgICAgIGZvdXJ0aFRpZXI6IEZUTCBzaG91bGQgdXNlIHRoZSByaWdo
dCBhYnN0cmFjdCBoZWFwIGZvciBJbnQzMiBhcnJheSBhY2Nlc3NlcwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE0NzQ4MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNv
cHkpCkBAIC0zMDMsNiArMzAzLDcgQEAKIAkJMEZFQTBBMjcxNzA5NjIzQjAwQkI3MjJDIC8qIEZU
TENvbW1vblZhbHVlcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRkVBMEEyNTE3MDk2MjNCMDBCQjcyMkMgLyogRlRMQ29tbW9uVmFsdWVzLmNwcCAq
LzsgfTsKIAkJMEZFQTBBMjgxNzA5NjIzQjAwQkI3MjJDIC8qIEZUTEludHJpbnNpY1JlcG9zaXRv
cnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZF
QTBBMjYxNzA5NjIzQjAwQkI3MjJDIC8qIEZUTEludHJpbnNpY1JlcG9zaXRvcnkuY3BwICovOyB9
OwogCQkwRkVBMEEyQTE3MDk2Mjk2MDBCQjcyMkMgLyogRlRMT3V0cHV0LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRUEwQTI5MTcwOTYyOTYwMEJC
NzIyQyAvKiBGVExPdXRwdXQuY3BwICovOyB9OworCQkwRkVBMEEyQzE3MEI2NjE5MDBCQjcyMkMg
LyogRlRMRm9ybWF0dGVkVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGRUEwQTJCMTcwQjY2MTkwMEJCNzIyQyAvKiBGVExGb3JtYXR0ZWRWYWx1
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBG
RUIzRUNEMTYyMzdGNEQwMEFCNjdBRCAvKiBUeXBlZEFycmF5RGVzY3JpcHRvci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZFQjNFQ0IxNjIzN0Y0NzAw
QUI2N0FEIC8qIFR5cGVkQXJyYXlEZXNjcmlwdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEZFQjNFQ0YxNjIzN0Y2QzAwQUI2N0FEIC8qIE1h
Y3JvQXNzZW1ibGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDBGRUIzRUNFMTYyMzdGNjcwMEFCNjdBRCAvKiBNYWNyb0Fzc2VtYmxlci5jcHAgKi87
IH07CiAJCTBGRUZDOUFBMTY4MUEzQjMwMDU2N0Y1MyAvKiBERkdPU1JFeGl0SnVtcFBsYWNlaG9s
ZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
RUZDOUE3MTY4MUEzQjAwMDU2N0Y1MyAvKiBERkdPU1JFeGl0SnVtcFBsYWNlaG9sZGVyLmNwcCAq
LzsgfTsKQEAgLTEyNDIsNiArMTI0Myw3IEBACiAJCTBGRUEwQTI1MTcwOTYyM0IwMEJCNzIyQyAv
KiBGVExDb21tb25WYWx1ZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1l
ID0gRlRMQ29tbW9uVmFsdWVzLmNwcDsgcGF0aCA9IGZ0bC9GVExDb21tb25WYWx1ZXMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkVBMEEyNjE3MDk2MjNCMDBCQjcyMkMgLyog
RlRMSW50cmluc2ljUmVwb3NpdG9yeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBGVExJbnRyaW5zaWNSZXBvc2l0b3J5LmNwcDsgcGF0aCA9IGZ0bC9GVExJbnRyaW5z
aWNSZXBvc2l0b3J5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZFQTBBMjkx
NzA5NjI5NjAwQkI3MjJDIC8qIEZUTE91dHB1dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBGVExPdXRwdXQuY3BwOyBwYXRoID0gZnRsL0ZUTE91dHB1dC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGRUEwQTJCMTcwQjY2MTkwMEJCNzIyQyAvKiBG
VExGb3JtYXR0ZWRWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBGVExG
b3JtYXR0ZWRWYWx1ZS5oOyBwYXRoID0gZnRsL0ZUTEZvcm1hdHRlZFZhbHVlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGRUIzRUNCMTYyMzdGNDcwMEFCNjdBRCAvKiBUeXBlZEFy
cmF5RGVzY3JpcHRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUeXBlZEFy
cmF5RGVzY3JpcHRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkVCM0VDRTE2
MjM3RjY3MDBBQjY3QUQgLyogTWFjcm9Bc3NlbWJsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gTWFjcm9Bc3NlbWJsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwRkVGQzlBNzE2ODFBM0IwMDA1NjdGNTMgLyogREZHT1NSRXhpdEp1bXBQbGFj
ZWhvbGRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBERkdPU1JF
eGl0SnVtcFBsYWNlaG9sZGVyLmNwcDsgcGF0aCA9IGRmZy9ERkdPU1JFeGl0SnVtcFBsYWNlaG9s
ZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIwMjIsNiArMjAyNCw3IEBA
CiAJCQkJMEZFQTBBMjExNzA5NjA2OTAwQkI3MjJDIC8qIEZUTENvbW1vblZhbHVlcy5oICovLAog
CQkJCTBGRUEwQTAwMTcwNTEzREIwMEJCNzIyQyAvKiBGVExDb21waWxlLmNwcCAqLywKIAkJCQkw
RkVBMEEwMTE3MDUxM0RCMDBCQjcyMkMgLyogRlRMQ29tcGlsZS5oICovLAorCQkJCTBGRUEwQTJC
MTcwQjY2MTkwMEJCNzIyQyAvKiBGVExGb3JtYXR0ZWRWYWx1ZS5oICovLAogCQkJCTBGRUEwQTI2
MTcwOTYyM0IwMEJCNzIyQyAvKiBGVExJbnRyaW5zaWNSZXBvc2l0b3J5LmNwcCAqLywKIAkJCQkw
RkVBMEEyMjE3MDk2MDY5MDBCQjcyMkMgLyogRlRMSW50cmluc2ljUmVwb3NpdG9yeS5oICovLAog
CQkJCTBGRUEwQTAyMTcwNTEzREIwMEJCNzIyQyAvKiBGVExKSVRDb2RlLmNwcCAqLywKQEAgLTMx
MTEsNiArMzExNCw3IEBACiAJCQkJMEZFQTBBMTExNzA1MTNEQjAwQkI3MjJDIC8qIEZUTE91dHB1
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyNTZDMzYxNjI3QjBBRDAwN0YyNzgzIC8qIERGR0Nh
bGxBcnJheUFsbG9jYXRvclNsb3dQYXRoR2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RjdCMjk0QjE0QzNDRDJGMDA3QzNEQjEgLyogREZHQ2FwYWJpbGl0aWVzLmggaW4gSGVhZGVycyAq
LywKKwkJCQkwRkVBMEEyQzE3MEI2NjE5MDBCQjcyMkMgLyogRlRMRm9ybWF0dGVkVmFsdWUuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGN0IyOTRBMTRDM0NEMjkwMDdDM0RCMSAvKiBERkdDQ2FsbEhl
bHBlcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRkZDOTU4MTRFRjkwQTIwMEM3MjUzMiAvKiBE
RkdDRkFQaGFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYzQjNBMjgxNTQ0Qzk5NzAwM0VEMEZG
IC8qIERGR0NGR1NpbXBsaWZpY2F0aW9uUGhhc2UuaCBpbiBIZWFkZXJzICovLApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExGb3JtYXR0ZWRWYWx1ZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMRm9ybWF0dGVkVmFsdWUuaAkocmV2aXNpb24g
MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMRm9ybWF0dGVkVmFsdWUuaAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDg5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgRlRMRm9ybWF0dGVkVmFsdWVfaAorI2RlZmluZSBG
VExGb3JtYXR0ZWRWYWx1ZV9oCisKKyNpbmNsdWRlIDx3dGYvUGxhdGZvcm0uaD4KKworI2lmIEVO
QUJMRShGVExfSklUKQorCisjaW5jbHVkZSAiRlRMQWJicmV2aWF0aW9ucy5oIgorCituYW1lc3Bh
Y2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CisKKy8vIFRoaXMgY2xhc3MgaXMgbW9zdGx5IHVzZWQg
Zm9yIE9TUjsgaXQncyBhIHdheSBvZiBzcGVjaWZ5aW5nIGhvdyBhIHZhbHVlIGlzIGZvcm1hdHRl
ZAorLy8gaW4gY2FzZXMgd2hlcmUgaXQgd291bGRuJ3QgaGF2ZSBiZWVuIG9idmlvdXMgZnJvbSBs
b29raW5nIGF0IG90aGVyIGluZGljYXRvcnMgKGxpa2UKKy8vIHRoZSB0eXBlIG9mIHRoZSBMTFZN
VmFsdWVSZWYgb3IgdGhlIHR5cGUgb2YgdGhlIERGRzo6Tm9kZSkuIFR5cGljYWxseSB0aGlzIGFy
aXNlcworLy8gYmVjYXVzZSBMTFZNVmFsdWVSZWYgZG9lc24ndCBnaXZlIHVzIHRoZSBncmFudWxh
cml0eSB3ZSBuZWVkIHRvIGJlZ2luIHdpdGgsIGFuZCB3ZQorLy8gdXNlIHRoaXMgaW4gc2l0dWF0
aW9ucyB3aGVyZSB0aGVyZSBpcyBubyBnb29kIHdheSB0byBzYXkgd2hhdCBub2RlIHRoZSB2YWx1
ZSBjYW1lCisvLyBmcm9tLgorCisvLyBOb3RlIHRoYXQgdGhpcyBpcyBhd2t3YXJkbHkgc2ltaWxh
ciB0byBEYXRhRm9ybWF0IGluIG90aGVyIHBhcnRzIG9mIEpTQywgZXhjZXB0IHRoYXQKKy8vIHVu
bGlrZSBEYXRhRm9ybWF0IGFuZCBsaWtlIFZhbHVlUmVjb3ZlcnksIGl0IGRpc3Rpbmd1aXNoZXMg
YmV0d2VlbiBVSW50MzIgYW5kIEludDMyLgorCitlbnVtIFZhbHVlRm9ybWF0IHsKKyAgICBJbnZh
bGlkVmFsdWVGb3JtYXQsCisgICAgVmFsdWVGb3JtYXRJbnQzMiwKKyAgICBWYWx1ZUZvcm1hdFVJ
bnQzMiwKKyAgICBWYWx1ZUZvcm1hdEJvb2xlYW4sCisgICAgVmFsdWVGb3JtYXRKU1ZhbHVlLAor
ICAgIFZhbHVlRm9ybWF0RG91YmxlCit9OworCitjbGFzcyBGb3JtYXR0ZWRWYWx1ZSB7CitwdWJs
aWM6CisgICAgRm9ybWF0dGVkVmFsdWUoKQorICAgICAgICA6IG1fZm9ybWF0KEludmFsaWRWYWx1
ZUZvcm1hdCkKKyAgICAgICAgLCBtX3ZhbHVlKDApCisgICAgeworICAgIH0KKyAgICAKKyAgICBG
b3JtYXR0ZWRWYWx1ZShWYWx1ZUZvcm1hdCBmb3JtYXQsIExWYWx1ZSB2YWx1ZSkKKyAgICAgICAg
OiBtX2Zvcm1hdChmb3JtYXQpCisgICAgICAgICwgbV92YWx1ZSh2YWx1ZSkKKyAgICB7CisgICAg
fQorICAgIAorICAgIGJvb2wgb3BlcmF0b3IhKCkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VS
VCgobV9mb3JtYXQgPT0gSW52YWxpZFZhbHVlRm9ybWF0KSA9PSAhbV92YWx1ZSk7CisgICAgICAg
IHJldHVybiBtX2Zvcm1hdCA9PSBJbnZhbGlkVmFsdWVGb3JtYXQ7CisgICAgfQorICAgIAorICAg
IFZhbHVlRm9ybWF0IGZvcm1hdCgpIGNvbnN0IHsgcmV0dXJuIG1fZm9ybWF0OyB9CisgICAgTFZh
bHVlIHZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZTsgfQorCitwcml2YXRlOgorICAgIFZh
bHVlRm9ybWF0IG1fZm9ybWF0OworICAgIExWYWx1ZSBtX3ZhbHVlOworfTsKKworfSB9IC8vIG5h
bWVzcGFjZSBKU0M6OkZUTAorCisjZW5kaWYgLy8gRU5BQkxFKEZUTF9KSVQpCisKKyNlbmRpZiAv
LyBGVExGb3JtYXR0ZWRWYWx1ZV9oCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMTG93ZXJERkdUb0xMVk0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCShyZXZpc2lvbiAxNDc0ODMpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiREZHQWJzdHJhY3RTdGF0ZS5oIgogI2luY2x1
ZGUgIkZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaCIKKyNpbmNsdWRlICJGVExGb3JtYXR0ZWRW
YWx1ZS5oIgogI2luY2x1ZGUgIkZUTE91dHB1dC5oIgogI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIK
IApAQCAtNjU0LDExICs2NTUsOSBAQCBwcml2YXRlOgogICAgICAgICB9CiAgICAgICAgIAogICAg
ICAgICBMVmFsdWUgdmFsdWUgPSBsb3dJbnQzMihtX25vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAg
Ly8gRklYTUU6IE1ha2Ugc3VyZSB0aGF0IHdlIGhhdmUgc29tZSB3YXkgb2YgcGFzc2luZyB0aGUg
ZXF1aXZhbGVudCBvZiBhCi0gICAgICAgIC8vIFZhbHVlUmVjb3Zlcnkgb3ZlcnJpZGUgZm9yIE9T
UiBleGl0LgotICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTEzNjIzCi0gICAgICAgIHNwZWN1bGF0ZUZvcndhcmQoT3ZlcmZsb3csIDAsIDAsIG1fb3V0
Lmxlc3NUaGFuKHZhbHVlLCBtX291dC5pbnQzMlplcm8pKTsKLSAgICAgICAgCisgICAgICAgIHNw
ZWN1bGF0ZUZvcndhcmQoCisgICAgICAgICAgICBPdmVyZmxvdywgMCwgMCwgbV9vdXQubGVzc1Ro
YW4odmFsdWUsIG1fb3V0LmludDMyWmVybyksCisgICAgICAgICAgICBGb3JtYXR0ZWRWYWx1ZShW
YWx1ZUZvcm1hdFVJbnQzMiwgdmFsdWUpKTsKICAgICAgICAgbV9pbnQzMlZhbHVlcy5hZGQobV9u
b2RlLCB2YWx1ZSk7CiAgICAgfQogICAgIApAQCAtODgwLDcgKzg3OSw3IEBAIHByaXZhdGU6CiAg
ICAgICAgIG1fb3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlvbiwgbGFzdE5leHQpOwogICAgIH0KICAg
ICAKLSAgICB2b2lkIHNwZWN1bGF0ZUZvcndhcmQoRXhpdEtpbmQga2luZCwgTFZhbHVlIGxvd1Zh
bHVlLCBOb2RlKiBoaWdoVmFsdWUsIExWYWx1ZSBmYWlsQ29uZGl0aW9uKQorICAgIHZvaWQgc3Bl
Y3VsYXRlRm9yd2FyZChFeGl0S2luZCBraW5kLCBMVmFsdWUgbG93VmFsdWUsIE5vZGUqIGhpZ2hW
YWx1ZSwgTFZhbHVlIGZhaWxDb25kaXRpb24sIGNvbnN0IEZvcm1hdHRlZFZhbHVlJikKICAgICB7
CiAgICAgICAgIHNwZWN1bGF0ZUJhY2t3YXJkKGtpbmQsIGxvd1ZhbHVlLCBoaWdoVmFsdWUsIGZh
aWxDb25kaXRpb24pOwogICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHJld2lyaW5nIG9mIE9T
UiBleGl0IHRvIGZvcndhcmQuCkBAIC0xMTA5LDcgKzExMDgsNyBAQCBwcml2YXRlOgogICAgIExW
YWx1ZSB3ZWFrUG9pbnRlcihKU0NlbGwqIHBvaW50ZXIpCiAgICAgewogICAgICAgICBjb2RlQmxv
Y2soKS0+YXBwZW5kV2Vha1JlZmVyZW5jZShwb2ludGVyKTsKLSAgICAgICAgcmV0dXJuIGFjY291
bnRlZFBvaW50ZXIobV9vdXQuY29uc3RJbnRQdHIocG9pbnRlcikpOworICAgICAgICByZXR1cm4g
bV9vdXQuY29uc3RJbnRQdHIocG9pbnRlcik7CiAgICAgfQogICAgIAogICAgIFR5cGVkUG9pbnRl
ciBhZGRyZXNzRm9yKExWYWx1ZSBiYXNlLCBpbnQgb3BlcmFuZCwgcHRyZGlmZl90IG9mZnNldCA9
IDApCg==
</data>
<flag name="review"
          id="218239"
          type_id="1"
          status="+"
          setter="mhahnenberg"
    />
          </attachment>
      

    </bug>

</bugzilla>