<?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>106058</bug_id>
          
          <creation_ts>2013-01-03 15:49:06 -0800</creation_ts>
          <short_desc>DFG::ByteCodeCache serves little or no purpose ever since we decided to keep bytecode around permanently</short_desc>
          <delta_ts>2013-01-03 16:29:46 -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>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>
          
          
          <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>799783</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-01-03 15:49:06 -0800</bug_when>
    <thetext>ByteCodeCache used to be great because we would by default throw away the instruction stream of code blocks at the earliest opportunity.  ByteCodeCache would allow the DFG to reparse code blocks on demand, regenerating the instruction stream if necessary.

But now we always keep the instruction stream around.  Hence, all we really need to be doing is asking the executable for the baseline code block.  The bytecode parser already does this, and its insistence on distinguishing between the code block and the profiled block is unnecessary for inlinees.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>799785</commentid>
    <comment_count>1</comment_count>
      <attachid>181241</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-01-03 15:50:36 -0800</bug_when>
    <thetext>Created attachment 181241
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>799829</commentid>
    <comment_count>2</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-01-03 16:29:46 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/138763</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181241</attachid>
            <date>2013-01-03 15:50:36 -0800</date>
            <delta_ts>2013-01-03 15:59:52 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>killcache.patch</filename>
            <type>text/plain</type>
            <size>16224</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTM4NzU3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBA
CisyMDEzLTAxLTAzICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
REZHOjpCeXRlQ29kZUNhY2hlIHNlcnZlcyBsaXR0bGUgb3Igbm8gcHVycG9zZSBldmVyIHNpbmNl
IHdlIGRlY2lkZWQgdG8ga2VlcCBieXRlY29kZSBhcm91bmQgcGVybWFuZW50bHkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNjA1OAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgQWxsIGJhc2Vs
aW5lIGNvZGUgYmxvY2tzIG5vdyBhbHdheXMgaGF2ZSBieXRlY29kZSwgc28gdGhlIGJ5dGVjb2Rl
IGNhY2hlJ3MgYWJpbGl0eSB0byBtaW5pbWl6ZSB0aGUKKyAgICAgICAgbnVtYmVyIG9mIHRpbWVz
IHRoYXQgdGhlIERGRyBwcm9kdWNlcyBieXRlY29kZSBzZXF1ZW5jZXMgZm9yIGNvZGUgYmxvY2tz
IGlzIHN1cGVyZmx1b3VzLgorCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAg
ICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IGRmZy9ERkdCeXRlQ29kZUNhY2hlLmg6IFJlbW92ZWQuCisgICAgICAgICogZGZnL0RGR0J5dGVD
b2RlUGFyc2VyLmNwcDoKKyAgICAgICAgKEJ5dGVDb2RlUGFyc2VyKToKKyAgICAgICAgKEpTQzo6
REZHOjpCeXRlQ29kZVBhcnNlcjo6aGFuZGxlSW5saW5pbmcpOgorICAgICAgICAqIHJ1bnRpbWUv
RXhlY3V0YWJsZS5jcHA6CisgICAgICAgIChKU0MpOgorICAgICAgICAqIHJ1bnRpbWUvRXhlY3V0
YWJsZS5oOgorICAgICAgICAoRnVuY3Rpb25FeGVjdXRhYmxlKToKKwogMjAxMy0wMS0wMyAgRmls
aXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGZpeCBi
dWlsZCBmb3IgREZHIEpJVCBkaXNhYmxlZC4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCShyZXZpc2lvbiAxMzg3NDUpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkod29ya2luZyBjb3B5KQpAQCAtMTc3LDcgKzE3Nyw2
IEBAIGphdmFzY3JpcHRjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQXNzZW1ibHlIZWxwZXJzLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
QmFzaWNCbG9jay5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0JyYW5jaERpcmVj
dGlvbi5oIFwKLQlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlQ2FjaGUuaCBc
CiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAgXAogCVNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuaCBcCiAJU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdDQ2FsbEhlbHBlcnMuaCBcCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagkocmV2aXNpb24gMTM4NzQ1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkK
QEAgLTE3Miw3ICsxNzIsNiBAQAogCQkwRjc3MDA5MjE0MDJGRjNDMDA3OEVCMzkgLyogU2FtcGxp
bmdDb3VudGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGNzcwMDkxMTQwMkZGMjgwMDc4RUIzOSAvKiBTYW1wbGluZ0NvdW50ZXIuY3BwICovOyB9
OwogCQkwRjdCMjk0QTE0QzNDRDI5MDA3QzNEQjEgLyogREZHQ0NhbGxIZWxwZXJzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjdCMjk0ODE0QzNDRDIz
MDA3QzNEQjEgLyogREZHQ0NhbGxIZWxwZXJzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY3QjI5NEIxNEMzQ0QyRjAwN0MzREIxIC8qIERGR0Nh
cGFiaWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEZEODJFMUYxNDE3MkMyRjAwMTc5Qzk0IC8qIERGR0NhcGFiaWxpdGllcy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTBGN0IyOTRDMTRDM0NE
NDMwMDdDM0RCMSAvKiBERkdCeXRlQ29kZUNhY2hlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjVGMDhDQzE0NkJFNjAyMDAwNDcyQTkgLyogREZHQnl0
ZUNvZGVDYWNoZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTBGN0IyOTREMTRDM0NENEMwMDdDM0RCMSAvKiBERkdDb21tb24uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQzA5NzdFMTQ2OUVCQzQwMENG
MjQ0MiAvKiBERkdDb21tb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQkwRjgwMjNFQTE2MTM4MzJCMDBBMEJBNDUgLyogQnlWYWxJbmZvLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjgwMjNFOTE2MTM4
MzIzMDBBMEJBNDUgLyogQnlWYWxJbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY4MzM1QjcxNjM5QzFFNjAwMTQ0M0I1IC8qIEFycmF5QWxs
b2NhdGlvblByb2ZpbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEY4MzM1QjQxNjM5QzFFMzAwMTQ0M0I1IC8qIEFycmF5QWxsb2NhdGlvblByb2Zp
bGUuY3BwICovOyB9OwpAQCAtOTk5LDcgKzk5OCw2IEBACiAJCTBGNTcyRDREMTY4NzlGREIwMEU1
N0ZCRCAvKiBUaHVua0dlbmVyYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBUaHVua0dlbmVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjVFRjkx
QjE2ODc4Rjc4MDAzRTVDMjUgLyogSklUVGh1bmtzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpJVFRodW5rcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTBGNUVGOTFDMTY4NzhGNzgwMDNFNUMyNSAvKiBKSVRUaHVua3MuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSklUVGh1bmtzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTBGNUYwOENDMTQ2QkU2MDIwMDA0NzJBOSAvKiBERkdCeXRlQ29kZUNhY2hlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR0J5dGVDb2RlQ2FjaGUuaDsgcGF0aCA9
IGRmZy9ERkdCeXRlQ29kZUNhY2hlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
NUYwOENFMTQ2Qzc2MkYwMDA0NzJBOSAvKiBVbmNvbmRpdGlvbmFsRmluYWxpemVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVuY29uZGl0aW9uYWxGaW5hbGl6ZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY2MjAxNkQxNDNGQ0QyRjAwNjhCNzdDIC8qIERG
R0Fic3RyYWN0U3RhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
REZHQWJzdHJhY3RTdGF0ZS5jcHA7IHBhdGggPSBkZmcvREZHQWJzdHJhY3RTdGF0ZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNjIwMTZFMTQzRkNEMkYwMDY4Qjc3QyAvKiBE
RkdBYnN0cmFjdFN0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR0Fi
c3RyYWN0U3RhdGUuaDsgcGF0aCA9IGRmZy9ERkdBYnN0cmFjdFN0YXRlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0yNTQzLDcgKzI1NDEsNiBAQAogCQkJCTBGQzA5NzZDMTQ2OEFC
NEEwMENGMjQ0MiAvKiBERkdBc3NlbWJseUhlbHBlcnMuaCAqLywKIAkJCQkwRjYyMDE3MDE0M0ZD
RDJGMDA2OEI3N0MgLyogREZHQmFzaWNCbG9jay5oICovLAogCQkJCTBGODM2NEI1MTY0QjBDMEUw
MDUzMzI5QSAvKiBERkdCcmFuY2hEaXJlY3Rpb24uaCAqLywKLQkJCQkwRjVGMDhDQzE0NkJFNjAy
MDAwNDcyQTkgLyogREZHQnl0ZUNvZGVDYWNoZS5oICovLAogCQkJCTg2RUM5REI0MTMyOERGODIw
MDJCMkFENyAvKiBERkdCeXRlQ29kZVBhcnNlci5jcHAgKi8sCiAJCQkJODZFQzlEQjUxMzI4REY4
MjAwMkIyQUQ3IC8qIERGR0J5dGVDb2RlUGFyc2VyLmggKi8sCiAJCQkJMEYyNTZDMzQxNjI3QjBB
QTAwN0YyNzgzIC8qIERGR0NhbGxBcnJheUFsbG9jYXRvclNsb3dQYXRoR2VuZXJhdG9yLmggKi8s
CkBAIC0zMTMwLDcgKzMxMjcsNiBAQAogCQkJCTBGMjFDMjdGMTRCRUFBODIwMEFEQzY0QiAvKiBC
eXRlY29kZUNvbnZlbnRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjdCMjk0QTE0QzNDRDI5
MDA3QzNEQjEgLyogREZHQ0NhbGxIZWxwZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjdCMjk0
QjE0QzNDRDJGMDA3QzNEQjEgLyogREZHQ2FwYWJpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKLQkJ
CQkwRjdCMjk0QzE0QzNDRDQzMDA3QzNEQjEgLyogREZHQnl0ZUNvZGVDYWNoZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEY3QjI5NEQxNEMzQ0Q0QzAwN0MzREIxIC8qIERGR0NvbW1vbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEY5MzMyOUUxNENBN0RDNTAwODVGM0M2IC8qIENhbGxMaW5rU3RhdHVz
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjkzMzJBMDE0Q0E3RENEMDA4NUYzQzYgLyogR2V0QnlJ
ZFN0YXR1cy5oIGluIEhlYWRlcnMgKi8sCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0J5dGVDb2RlQ2FjaGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0J5dGVDb2RlQ2FjaGUuaAkocmV2aXNpb24gMTM4NzQ1KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZUNhY2hlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsMTg1
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQot
I2lmbmRlZiBERkdCeXRlQ29kZUNhY2hlX2gKLSNkZWZpbmUgREZHQnl0ZUNvZGVDYWNoZV9oCi0K
LSNpbmNsdWRlIDx3dGYvUGxhdGZvcm0uaD4KLQotI2lmIEVOQUJMRShERkdfSklUKQotCi0jaW5j
bHVkZSAiQ29kZUJsb2NrLmgiCi0jaW5jbHVkZSAiRXhlY3V0YWJsZS5oIgotI2luY2x1ZGUgIkpT
RnVuY3Rpb24uaCIKLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotCi1uYW1lc3BhY2UgSlNDIHsg
bmFtZXNwYWNlIERGRyB7Ci0KLWNsYXNzIENvZGVCbG9ja0tleSB7Ci1wdWJsaWM6Ci0gICAgQ29k
ZUJsb2NrS2V5KCkKLSAgICAgICAgOiBtX2V4ZWN1dGFibGUoMCkKLSAgICAgICAgLCBtX2tpbmQo
Q29kZUZvckNhbGwpIC8vIENvZGVGb3JDYWxsID0gZW1wdHkgdmFsdWUKLSAgICB7Ci0gICAgfQot
ICAgIAotICAgIENvZGVCbG9ja0tleShXVEY6Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZVR5cGUpCi0g
ICAgICAgIDogbV9leGVjdXRhYmxlKDApCi0gICAgICAgICwgbV9raW5kKENvZGVGb3JDb25zdHJ1
Y3QpIC8vIENvZGVGb3JDb25zdHJ1Y3QgPSBkZWxldGVkIHZhbHVlCi0gICAgewotICAgIH0KLSAg
ICAKLSAgICBDb2RlQmxvY2tLZXkoRnVuY3Rpb25FeGVjdXRhYmxlKiBleGVjdXRhYmxlLCBDb2Rl
U3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpCi0gICAgICAgIDogbV9leGVjdXRhYmxlKGV4ZWN1dGFi
bGUpCi0gICAgICAgICwgbV9raW5kKGtpbmQpCi0gICAgewotICAgIH0KLSAgICAKLSAgICBib29s
IG9wZXJhdG9yPT0oY29uc3QgQ29kZUJsb2NrS2V5JiBvdGhlcikgY29uc3QKLSAgICB7Ci0gICAg
ICAgIHJldHVybiBtX2V4ZWN1dGFibGUgPT0gb3RoZXIubV9leGVjdXRhYmxlCi0gICAgICAgICAg
ICAmJiBtX2tpbmQgPT0gb3RoZXIubV9raW5kOwotICAgIH0KLSAgICAKLSAgICB1bnNpZ25lZCBo
YXNoKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBXVEY6OlB0ckhhc2g8RnVuY3Rpb25F
eGVjdXRhYmxlKj46Omhhc2gobV9leGVjdXRhYmxlKSBeIHN0YXRpY19jYXN0PHVuc2lnbmVkPiht
X2tpbmQpOwotICAgIH0KLSAgICAKLSAgICBGdW5jdGlvbkV4ZWN1dGFibGUqIGV4ZWN1dGFibGUo
KSBjb25zdCB7IHJldHVybiBtX2V4ZWN1dGFibGU7IH0KLSAgICBDb2RlU3BlY2lhbGl6YXRpb25L
aW5kIGtpbmQoKSBjb25zdCB7IHJldHVybiBtX2tpbmQ7IH0KLQotICAgIGJvb2wgaXNIYXNoVGFi
bGVEZWxldGVkVmFsdWUoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuICFtX2V4ZWN1dGFi
bGUgJiYgbV9raW5kID09IENvZGVGb3JDb25zdHJ1Y3Q7Ci0gICAgfQotCi1wcml2YXRlOgotICAg
IEZ1bmN0aW9uRXhlY3V0YWJsZSogbV9leGVjdXRhYmxlOwotICAgIENvZGVTcGVjaWFsaXphdGlv
bktpbmQgbV9raW5kOwotfTsKLQotc3RydWN0IENvZGVCbG9ja0tleUhhc2ggewotICAgIHN0YXRp
YyB1bnNpZ25lZCBoYXNoKGNvbnN0IENvZGVCbG9ja0tleSYga2V5KSB7IHJldHVybiBrZXkuaGFz
aCgpOyB9Ci0gICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgQ29kZUJsb2NrS2V5JiBhLCBjb25z
dCBDb2RlQmxvY2tLZXkmIGIpIHsgcmV0dXJuIGEgPT0gYjsgfQotICAgIAotICAgIHN0YXRpYyBj
b25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKLX07Ci0KLX0g
fSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKLQotbmFtZXNwYWNlIFdURiB7Ci0KLXRlbXBsYXRlPHR5
cGVuYW1lIFQ+IHN0cnVjdCBEZWZhdWx0SGFzaDsKLXRlbXBsYXRlPD4gc3RydWN0IERlZmF1bHRI
YXNoPEpTQzo6REZHOjpDb2RlQmxvY2tLZXk+IHsKLSAgICB0eXBlZGVmIEpTQzo6REZHOjpDb2Rl
QmxvY2tLZXlIYXNoIEhhc2g7Ci19OwotCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgSGFz
aFRyYWl0czsKLXRlbXBsYXRlPD4gc3RydWN0IEhhc2hUcmFpdHM8SlNDOjpERkc6OkNvZGVCbG9j
a0tleT4gOiBTaW1wbGVDbGFzc0hhc2hUcmFpdHM8SlNDOjpERkc6OkNvZGVCbG9ja0tleT4geyB9
OwotCi19IC8vIG5hbWVzcGFjZSBXVEYKLQotbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcg
ewotCi1zdHJ1Y3QgQnl0ZUNvZGVDYWNoZVZhbHVlIHsKLSAgICBGdW5jdGlvbkNvZGVCbG9jayog
Y29kZUJsb2NrOwotICAgIGJvb2wgb3duZWQ7Ci0gICAgYm9vbCBvbGRWYWx1ZU9mU2hvdWxkRGlz
Y2FyZEJ5dGVjb2RlOwotICAgIAotICAgIC8vIEFsbCB1c2VzIG9mIHRoaXMgc3RydWN0IGluaXRp
YWxpemUgZXZlcnl0aGluZyBtYW51YWxseS4gQnV0IGdjYyBpc24ndAotICAgIC8vIHNtYXJ0IGVu
b3VnaCB0byBzZWUgdGhhdCwgc28gdGhpcyBjb25zdHJ1Y3RvciBpcyBqdXN0IGhlcmUgdG8gbWFr
ZSB0aGUKLSAgICAvLyBjb21waWxlciBoYXBweS4KLSAgICBCeXRlQ29kZUNhY2hlVmFsdWUoKQot
ICAgICAgICA6IGNvZGVCbG9jaygwKQotICAgICAgICAsIG93bmVkKGZhbHNlKQotICAgICAgICAs
IG9sZFZhbHVlT2ZTaG91bGREaXNjYXJkQnl0ZWNvZGUoZmFsc2UpCi0gICAgewotICAgIH0KLX07
Ci0KLXRlbXBsYXRlPGJvb2wgKCpmaWx0ZXJGdW5jdGlvbikoQ29kZUJsb2NrKiwgQ29kZVNwZWNp
YWxpemF0aW9uS2luZCk+Ci1jbGFzcyBCeXRlQ29kZUNhY2hlIHsKLXB1YmxpYzoKLSAgICB0eXBl
ZGVmIEhhc2hNYXA8Q29kZUJsb2NrS2V5LCBCeXRlQ29kZUNhY2hlVmFsdWU+IE1hcDsKLSAgICAK
LSAgICBCeXRlQ29kZUNhY2hlKCkgeyB9Ci0gICAgCi0gICAgfkJ5dGVDb2RlQ2FjaGUoKQotICAg
IHsKLSAgICAgICAgTWFwOjppdGVyYXRvciBiZWdpbiA9IG1fbWFwLmJlZ2luKCk7Ci0gICAgICAg
IE1hcDo6aXRlcmF0b3IgZW5kID0gbV9tYXAuZW5kKCk7Ci0gICAgICAgIGZvciAoTWFwOjppdGVy
YXRvciBpdGVyID0gYmVnaW47IGl0ZXIgIT0gZW5kOyArK2l0ZXIpIHsKLSAgICAgICAgICAgIGlm
ICghaXRlci0+dmFsdWUuY29kZUJsb2NrKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAg
ICAgICAgICAgaWYgKGl0ZXItPnZhbHVlLm93bmVkKSB7Ci0gICAgICAgICAgICAgICAgZGVsZXRl
IGl0ZXItPnZhbHVlLmNvZGVCbG9jazsKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLSAgICAKLSAgICBDb2RlQmxvY2sqIGdldChjb25z
dCBDb2RlQmxvY2tLZXkmIGtleSwgSlNTY29wZSogc2NvcGUpCi0gICAgewotICAgICAgICBNYXA6
Oml0ZXJhdG9yIGl0ZXIgPSBtX21hcC5maW5kKGtleSk7Ci0gICAgICAgIGlmIChpdGVyICE9IG1f
bWFwLmVuZCgpKQotICAgICAgICAgICAgcmV0dXJuIGl0ZXItPnZhbHVlLmNvZGVCbG9jazsKLSAg
ICAgICAgCi0gICAgICAgIEJ5dGVDb2RlQ2FjaGVWYWx1ZSB2YWx1ZTsKLSAgICAgICAgCi0gICAg
ICAgIC8vIEZpcnN0IHNlZSBpZiB0aGVyZSBpcyBhbHJlYWR5IGEgcGFyc2VkIGNvZGUgYmxvY2sg
dGhhdCBzdGlsbCBoYXMgc29tZQotICAgICAgICAvLyBieXRlY29kZSBpbiBpdC4KLSAgICAgICAg
dmFsdWUuY29kZUJsb2NrID0ga2V5LmV4ZWN1dGFibGUoKS0+Y29kZUJsb2NrV2l0aEJ5dGVjb2Rl
Rm9yKGtleS5raW5kKCkpOwotICAgICAgICBpZiAodmFsdWUuY29kZUJsb2NrKSB7Ci0gICAgICAg
ICAgICB2YWx1ZS5vd25lZCA9IGZhbHNlOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
Ly8gTm9wZSwgc28gdHJ5IHRvIHBhcnNlIG9uZS4KLSAgICAgICAgICAgIEpTT2JqZWN0KiBleGNl
cHRpb247Ci0gICAgICAgICAgICB2YWx1ZS5vd25lZCA9IHRydWU7Ci0gICAgICAgICAgICB2YWx1
ZS5jb2RlQmxvY2sgPSBrZXkuZXhlY3V0YWJsZSgpLT5wcm9kdWNlQ29kZUJsb2NrRm9yKHNjb3Bl
LCBrZXkua2luZCgpLCBleGNlcHRpb24pLmxlYWtQdHIoKTsKLSAgICAgICAgfQotICAgICAgICAK
LSAgICAgICAgLy8gQ2hlY2sgaWYgdGhlcmUgaXMgYW55IHJlYXNvbiB0byByZWplY3QgdGhpcyBm
cm9tIG91ciBjYWNoZS4gSWYgc28sIHRoZW4KLSAgICAgICAgLy8gcG9pc29uIGl0LgotICAgICAg
ICBpZiAoISF2YWx1ZS5jb2RlQmxvY2sgJiYgIWZpbHRlckZ1bmN0aW9uKHZhbHVlLmNvZGVCbG9j
aywga2V5LmtpbmQoKSkpIHsKLSAgICAgICAgICAgIGlmICh2YWx1ZS5vd25lZCkKLSAgICAgICAg
ICAgICAgICBkZWxldGUgdmFsdWUuY29kZUJsb2NrOwotICAgICAgICAgICAgdmFsdWUuY29kZUJs
b2NrID0gMDsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgbV9tYXAuYWRkKGtleSwgdmFs
dWUpOwotICAgICAgICAKLSAgICAgICAgcmV0dXJuIHZhbHVlLmNvZGVCbG9jazsKLSAgICB9Ci0K
LXByaXZhdGU6Ci0gICAgTWFwIG1fbWFwOwotfTsKLQotfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRG
RwotCi0jZW5kaWYgLy8gRU5BQkxFKERGR19KSVQpCi0KLSNlbmRpZiAvLyBERkdCeXRlQ29kZUNh
Y2hlX2gKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQ
YXJzZXIuY3BwCShyZXZpc2lvbiAxMzg3NDUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0J5dGVDb2RlUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNiBAQAog
I2luY2x1ZGUgIkNhbGxMaW5rU3RhdHVzLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5j
bHVkZSAiREZHQXJyYXlNb2RlLmgiCi0jaW5jbHVkZSAiREZHQnl0ZUNvZGVDYWNoZS5oIgogI2lu
Y2x1ZGUgIkRGR0NhcGFiaWxpdGllcy5oIgogI2luY2x1ZGUgIkdldEJ5SWRTdGF0dXMuaCIKICNp
bmNsdWRlICJQdXRCeUlkU3RhdHVzLmgiCkBAIC0xMjYzLDkgKzEyNjIsNiBAQCBwcml2YXRlOgog
ICAgIC8vIHdvcmstYXJvdW5kIGZvciB0aGUgZmFjdCB0aGF0IEpTVmFsdWVNYXAgY2FuJ3QgaGFu
ZGxlICJlbXB0eSIgdmFsdWVzLgogICAgIHVuc2lnbmVkIG1fZW1wdHlKU1ZhbHVlSW5kZXg7CiAg
ICAgCi0gICAgLy8gQ2FjaGUgb2YgY29kZSBibG9ja3MgdGhhdCB3ZSd2ZSBnZW5lcmF0ZWQgYnl0
ZWNvZGUgZm9yLgotICAgIEJ5dGVDb2RlQ2FjaGU8Y2FuSW5saW5lRnVuY3Rpb25Gb3I+IG1fY29k
ZUJsb2NrQ2FjaGU7Ci0gICAgCiAgICAgSW5zdHJ1Y3Rpb24qIG1fY3VycmVudEluc3RydWN0aW9u
OwogfTsKIApAQCAtMTM5NywyNiArMTM5MywxOCBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpoYW5k
bGVJbmxpbmluZyhib29sCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7IC8vIFJlY3Vyc2lvbiBk
ZXRlY3RlZC4KICAgICB9CiAgICAgCi0gICAgLy8gRG9lcyB0aGUgY29kZSBibG9jaydzIHNpemUg
bWF0Y2ggdGhlIGhldXJpc3RpY3MvcmVxdWlyZW1lbnRzIGZvciBiZWluZwotICAgIC8vIGFuIGlu
bGluZSBjYW5kaWRhdGU/Ci0gICAgQ29kZUJsb2NrKiBwcm9maWxlZEJsb2NrID0gZXhlY3V0YWJs
ZS0+cHJvZmlsZWRDb2RlQmxvY2tGb3Ioa2luZCk7Ci0gICAgaWYgKCFwcm9maWxlZEJsb2NrKQot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgaWYgKCFtaWdodElubGluZUZ1bmN0aW9u
Rm9yKHByb2ZpbGVkQmxvY2ssIGtpbmQpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0g
ICAgLy8gSWYgd2UgZ2V0IGhlcmUgdGhlbiBpdCBsb29rcyBsaWtlIHdlIHNob3VsZCBkZWZpbml0
ZWx5IGlubGluZSB0aGlzIGNvZGUuIFByb2NlZWQKLSAgICAvLyB3aXRoIHBhcnNpbmcgdGhlIGNv
ZGUgdG8gZ2V0IGJ5dGVjb2RlLCBzbyB0aGF0IHdlIGNhbiB0aGVuIHBhcnNlIHRoZSBieXRlY29k
ZS4KLSAgICAvLyBOb3RlIHRoYXQgaWYgTExJbnQgaXMgZW5hYmxlZCwgdGhlIGJ5dGVjb2RlIHdp
bGwgYWx3YXlzIGJlIGF2YWlsYWJsZS4gQWxzbyBub3RlCi0gICAgLy8gdGhhdCBpZiBMTEludCBp
cyBlbmFibGVkLCB3ZSBtYXkgaW5saW5lIGEgY29kZSBibG9jayB0aGF0IGhhcyBuZXZlciBiZWVu
IEpJVHRlZAotICAgIC8vIGJlZm9yZSEKLSAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IG1fY29k
ZUJsb2NrQ2FjaGUuZ2V0KENvZGVCbG9ja0tleShleGVjdXRhYmxlLCBraW5kKSwgZXhwZWN0ZWRG
dW5jdGlvbi0+c2NvcGUoKSk7CisgICAgLy8gRG8gd2UgaGF2ZSBhIGNvZGUgYmxvY2ssIGFuZCBk
b2VzIHRoZSBjb2RlIGJsb2NrJ3Mgc2l6ZSBtYXRjaCB0aGUgaGV1cmlzdGljcy9yZXF1aXJlbWVu
dHMgZm9yCisgICAgLy8gYmVpbmcgYW4gaW5saW5lIGNhbmRpZGF0ZT8gV2UgbWlnaHQgbm90IGhh
dmUgYSBjb2RlIGJsb2NrIGlmIGNvZGUgd2FzIHRocm93biBhd2F5IG9yIGlmIHdlCisgICAgLy8g
c2ltcGx5IGhhZG4ndCBhY3R1YWxseSBtYWRlIHRoaXMgY2FsbCB5ZXQuIFdlIGNvdWxkIHN0aWxs
IHRoZW9yZXRpY2FsbHkgYXR0ZW1wdCB0byBpbmxpbmUgaXQKKyAgICAvLyBpZiB3ZSBoYWQgYSBz
dGF0aWMgcHJvb2Ygb2Ygd2hhdCB3YXMgYmVpbmcgY2FsbGVkOyB0aGlzIG1pZ2h0IGhhcHBlbiBm
b3IgZXhhbXBsZSBpZiB5b3UgY2FsbCBhCisgICAgLy8gZ2xvYmFsIGZ1bmN0aW9uLCB3aGVyZSB3
YXRjaHBvaW50aW5nIGdpdmVzIHVzIHN0YXRpYyBpbmZvcm1hdGlvbi4gT3ZlcmFsbCwgaXQncyBh
IHJhcmUgY2FzZQorICAgIC8vIGJlY2F1c2Ugd2UgZXhwZWN0IHRoYXQgYW55IGhvdCBjYWxsZWVz
IHdvdWxkIGhhdmUgYWxyZWFkeSBiZWVuIGNvbXBpbGVkLgorICAgIENvZGVCbG9jayogY29kZUJs
b2NrID0gZXhlY3V0YWJsZS0+YmFzZWxpbmVDb2RlQmxvY2tGb3Ioa2luZCk7CiAgICAgaWYgKCFj
b2RlQmxvY2spCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWNhbklubGluZUZ1bmN0
aW9uRm9yKGNvZGVCbG9jaywga2luZCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKLSAg
ICBBU1NFUlQoY2FuSW5saW5lRnVuY3Rpb25Gb3IoY29kZUJsb2NrLCBraW5kKSk7Ci0KICNpZiBE
RkdfRU5BQkxFKERFQlVHX1ZFUkJPU0UpCiAgICAgZGF0YUxvZ0YoIklubGluaW5nIGV4ZWN1dGFi
bGUgJXAuXG4iLCBleGVjdXRhYmxlKTsKICNlbmRpZgpAQCAtMTQ0Niw3ICsxNDM0LDcgQEAgYm9v
bCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlSW5saW5pbmcoYm9vbAogICAgIHNpemVfdCBhcmd1bWVu
dFBvc2l0aW9uU3RhcnQgPSBtX2dyYXBoLm1fYXJndW1lbnRQb3NpdGlvbnMuc2l6ZSgpOwogCiAg
ICAgSW5saW5lU3RhY2tFbnRyeSBpbmxpbmVTdGFja0VudHJ5KAotICAgICAgICB0aGlzLCBjb2Rl
QmxvY2ssIHByb2ZpbGVkQmxvY2ssIG1fZ3JhcGgubV9ibG9ja3Muc2l6ZSgpIC0gMSwKKyAgICAg
ICAgdGhpcywgY29kZUJsb2NrLCBjb2RlQmxvY2ssIG1fZ3JhcGgubV9ibG9ja3Muc2l6ZSgpIC0g
MSwKICAgICAgICAgZXhwZWN0ZWRGdW5jdGlvbiwgKFZpcnR1YWxSZWdpc3RlciltX2lubGluZVN0
YWNrVG9wLT5yZW1hcE9wZXJhbmQoCiAgICAgICAgICAgICB1c2VzUmVzdWx0ID8gcmVzdWx0T3Bl
cmFuZCA6IEludmFsaWRWaXJ0dWFsUmVnaXN0ZXIpLAogICAgICAgICAoVmlydHVhbFJlZ2lzdGVy
KWlubGluZUNhbGxGcmFtZVN0YXJ0LCBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcywga2luZCk7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcAko
cmV2aXNpb24gMTM4NzQ1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0
YWJsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4NywxMSArNDg3LDYgQEAgYm9vbCBGdW5jdGlv
bkV4ZWN1dGFibGU6OmppdENvbXBpbGVGb3JDbwogfQogI2VuZGlmCiAKLUZ1bmN0aW9uQ29kZUJs
b2NrKiBGdW5jdGlvbkV4ZWN1dGFibGU6OmNvZGVCbG9ja1dpdGhCeXRlY29kZUZvcihDb2RlU3Bl
Y2lhbGl6YXRpb25LaW5kIGtpbmQpCi17Ci0gICAgcmV0dXJuIGJhc2VsaW5lQ29kZUJsb2NrRm9y
KGtpbmQpOwotfQotCiBQYXNzT3duUHRyPEZ1bmN0aW9uQ29kZUJsb2NrPiBGdW5jdGlvbkV4ZWN1
dGFibGU6OnByb2R1Y2VDb2RlQmxvY2tGb3IoSlNTY29wZSogc2NvcGUsIENvZGVTcGVjaWFsaXph
dGlvbktpbmQgc3BlY2lhbGl6YXRpb25LaW5kLCBKU09iamVjdComIGV4Y2VwdGlvbikKIHsKICAg
ICBpZiAoISFjb2RlQmxvY2tGb3Ioc3BlY2lhbGl6YXRpb25LaW5kKSkKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmgJKHJldmlzaW9uIDEzODc0NSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuaAkod29ya2luZyBjb3B5
KQpAQCAtNTk3LDggKzU5Nyw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgcmV0dXJu
ICptX2NvZGVCbG9ja0ZvckNvbnN0cnVjdDsKICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAg
RnVuY3Rpb25Db2RlQmxvY2sqIGNvZGVCbG9ja1dpdGhCeXRlY29kZUZvcihDb2RlU3BlY2lhbGl6
YXRpb25LaW5kKTsKLSAgICAgICAgCiAgICAgICAgIFBhc3NPd25QdHI8RnVuY3Rpb25Db2RlQmxv
Y2s+IHByb2R1Y2VDb2RlQmxvY2tGb3IoSlNTY29wZSosIENvZGVTcGVjaWFsaXphdGlvbktpbmQs
IEpTT2JqZWN0KiYgZXhjZXB0aW9uKTsKIAogICAgICAgICBKU09iamVjdCogY29tcGlsZUZvckNh
bGwoRXhlY1N0YXRlKiBleGVjLCBKU1Njb3BlKiBzY29wZSkK
</data>
<flag name="review"
          id="198786"
          type_id="1"
          status="+"
          setter="msaboff"
    />
          </attachment>
      

    </bug>

</bugzilla>