<?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>110722</bug_id>
          
          <creation_ts>2013-02-24 22:05:56 -0800</creation_ts>
          <short_desc>DFG::Edge should have more bits for UseKind, and DFG::Allocator should be simpler</short_desc>
          <delta_ts>2013-02-25 12:50:39 -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>840700</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-02-24 22:05:56 -0800</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840713</commentid>
    <comment_count>1</comment_count>
      <attachid>189999</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-02-24 23:09:49 -0800</bug_when>
    <thetext>Created attachment 189999
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841044</commentid>
    <comment_count>2</comment_count>
      <attachid>190075</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-02-25 09:50:04 -0800</bug_when>
    <thetext>Created attachment 190075
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841211</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-02-25 12:50:39 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/143958</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189999</attachid>
            <date>2013-02-24 23:09:49 -0800</date>
            <delta_ts>2013-02-25 09:50:04 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>14149</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTQzODg1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUzIEBA
CisyMDEzLTAyLTI0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
REZHOjpFZGdlIHNob3VsZCBoYXZlIG1vcmUgYml0cyBmb3IgVXNlS2luZCwgYW5kIERGRzo6QWxs
b2NhdG9yIHNob3VsZCBiZSBzaW1wbGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMTA3MjIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKyAgICAgICAgCisgICAgICAgIFRoaXMgcm9sbHMgb3V0IHRoZSBERkc6OkFsbG9jYXRv
ciBwYXJ0IG9mIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzE0MzY1NCwKKyAgICAg
ICAgYW5kIGNoYW5nZXMgRWRnZSB0byBoYXZlIG1vcmUgcm9vbSBmb3IgVXNlS2luZHMgYW5kIHBv
c3NpYmx5IG90aGVyIHRoaW5ncy4KKyAgICAgICAgCisgICAgICAgIFRoaXMgaXMgcGVyZm9ybWFu
Y2UtbmV1dHJhbCBvbiBib3RoIDMyLWJpdCBhbmQgNjQtYml0LiBJdCByZWR1Y2VzIHRoZSBzaXpl
IG9mCisgICAgICAgIERGRzo6Tm9kZSBvbiA2NC1iaXQgKGJ5IHZpcnR1ZSBvZiBnZXR0aW5nIHJp
ZCBvZiB0aGUgMTYtYnl0ZSBhbGlnbm1lbnQgb2YgTm9kZSkKKyAgICAgICAgYW5kIGluY3JlYXNl
cyBpdCBzbGlnaHRseSAoYnkgNCBieXRlcyB0b3RhbCAtIDE2LWJ5dGUgYWxpZ25tZW50IGxlZCB0
byA4MCBieXRlcywKKyAgICAgICAgYnV0IHRoZSBiYXNlIHNpemUgb2YgTm9kZSBwbHVzIHRoZSAx
MiBieXRlcyBvZiBuZXcgbV9lbmNvZGVkV29yZHMgaW4gRWRnZSBnZXRzCisgICAgICAgIDg0IGJ5
dGVzKS4gQnV0LCBpdCB3aWxsIG1lYW4gdGhhdCB3ZSBkb24ndCBoYXZlIHRvIGluY3JlYXNlIE5v
ZGUgYnkgYW5vdGhlciAxNgorICAgICAgICBieXRlcyBpZiB3ZSBldmVyIHdhbnQgdG8gYWRkIG1v
cmUgVXNlS2luZHMgb3Igb3RoZXIgdGhpbmdzIHRvIEVkZ2UuCisKKyAgICAgICAgKiBkZmcvREZH
QWxsb2NhdG9yLmg6CisgICAgICAgIChERkcpOgorICAgICAgICAoQWxsb2NhdG9yKToKKyAgICAg
ICAgKEpTQzo6REZHOjpBbGxvY2F0b3I6OlJlZ2lvbjo6aGVhZGVyU2l6ZSk6CisgICAgICAgIChK
U0M6OkRGRzo6QWxsb2NhdG9yOjpSZWdpb246Om51bWJlck9mVGhpbmdzUGVyUmVnaW9uKToKKyAg
ICAgICAgKEpTQzo6REZHOjpBbGxvY2F0b3I6OlJlZ2lvbjo6ZGF0YSk6CisgICAgICAgIChKU0M6
OkRGRzo6QWxsb2NhdG9yOjpSZWdpb246OmlzSW5UaGlzUmVnaW9uKToKKyAgICAgICAgKEpTQzo6
REZHOjo6OkFsbG9jYXRvcik6CisgICAgICAgIChKU0M6OkRGRzo6Ojp+QWxsb2NhdG9yKToKKyAg
ICAgICAgKEpTQzo6REZHOjo6OmFsbG9jYXRlKToKKyAgICAgICAgKEpTQzo6REZHOjo6OmZyZWUp
OgorICAgICAgICAoSlNDOjpERkc6Ojo6ZnJlZUFsbCk6CisgICAgICAgIChKU0M6OkRGRzo6Ojpy
ZXNldCk6CisgICAgICAgIChKU0M6OkRGRzo6OjppbmRleE9mKToKKyAgICAgICAgKEpTQzo6REZH
Ojo6OmFsbG9jYXRvck9mKToKKyAgICAgICAgKEpTQzo6REZHOjo6OmJ1bXBBbGxvY2F0ZSk6Cisg
ICAgICAgIChKU0M6OkRGRzo6OjpmcmVlTGlzdEFsbG9jYXRlKToKKyAgICAgICAgKEpTQzo6REZH
Ojo6OmFsbG9jYXRlU2xvdyk6CisgICAgICAgIChKU0M6OkRGRzo6OjpmcmVlUmVnaW9uc1N0YXJ0
aW5nQXQpOgorICAgICAgICAoSlNDOjpERkc6Ojo6c3RhcnRCdW1waW5nSW4pOgorICAgICAgICAq
IGRmZy9ERkdFZGdlLmg6CisgICAgICAgIChKU0M6OkRGRzo6RWRnZTo6RWRnZSk6CisgICAgICAg
IChFZGdlKToKKyAgICAgICAgKEpTQzo6REZHOjpFZGdlOjpub2RlKToKKyAgICAgICAgKEpTQzo6
REZHOjpFZGdlOjpzZXROb2RlKToKKyAgICAgICAgKEpTQzo6REZHOjpFZGdlOjp1c2VLaW5kVW5j
aGVja2VkKToKKyAgICAgICAgKEpTQzo6REZHOjpFZGdlOjpzZXRVc2VLaW5kKToKKyAgICAgICAg
KEpTQzo6REZHOjpFZGdlOjpvcGVyYXRvcj09KToKKyAgICAgICAgKEpTQzo6REZHOjpFZGdlOjpv
cGVyYXRvciE9KToKKyAgICAgICAgKEpTQzo6REZHOjpFZGdlOjptYWtlV29yZCk6CisgICAgICAg
ICogZGZnL0RGR05vZGVBbGxvY2F0b3IuaDoKKyAgICAgICAgKERGRyk6CisKIDIwMTMtMDItMjIg
IEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBERkc6OlNwZWN1bGF0
aXZlSklUOjpzcGVjdWxhdGVOdW1iZXIoKSBzaG91bGQganVzdCB1c2UgU3BlY3VsYXRlRG91Ymxl
T3BlcmFuZCBpbnN0ZWFkIG9mIGRvaW5nIGl0cyBvd24gdGhpbmcKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQWxsb2NhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdBbGxvY2F0b3IuaAkocmV2aXNpb24gMTQzODg0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBbGxvY2F0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtNDMs
MTEgKzQzLDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogLy8gICBhbnl0aGlu
Zy4gWW91IGNhbiBqdXN0IGNhbGwgZnJlZUFsbCgpIGluc3RlYWQuCiAvLyAtIFlvdSBjYWxsIGZy
ZWUoKSBvbiBhbGwgVCdzIHRoYXQgeW91IGFsbG9jYXRlZCwgYW5kIG5ldmVyIHVzZSBmcmVlQWxs
KCkuCiAKLS8vIGZvcmNlZENlbGxTaXplOiBzZXQgdGhpcyB0byAwIGlmIHlvdSdyZSBoYXBweSB3
aXRoIHRoZSBkZWZhdWx0IGFsaWdubWVudCwgb3Igc2V0IGl0Ci0vLyB0byBhIG5vbi16ZXJvIHZh
bHVlIGlmIHlvdSB3YW50IHRvIGZvcmNpYmx5IGFsaWduIHRoZSBhbGxvY2F0aW9ucyB0byBhIGNl
cnRhaW4KLS8vIHZhbHVlLiBXaGVuIHlvdSBkbyB0aGlzLCBBbGxvY2F0b3Igd2lsbCBBU1NFUlQg
dGhhdCBmb3JjZWRDZWxsQWxpZ25tZW50ID49IHNpemVvZihUKS4KLQotdGVtcGxhdGU8dHlwZW5h
bWUgVCwgdW5zaWduZWQgZm9yY2VkQ2VsbEFsaWdubWVudD4KK3RlbXBsYXRlPHR5cGVuYW1lIFQ+
CiBjbGFzcyBBbGxvY2F0b3IgewogcHVibGljOgogICAgIEFsbG9jYXRvcigpOwpAQCAtNjcsMjQg
KzYzLDEzIEBAIHByaXZhdGU6CiAgICAgdm9pZCogYnVtcEFsbG9jYXRlKCk7CiAgICAgdm9pZCog
ZnJlZUxpc3RBbGxvY2F0ZSgpOwogICAgIHZvaWQqIGFsbG9jYXRlU2xvdygpOwotICAgIAotICAg
IHN0YXRpYyBzaXplX3QgY2VsbFNpemUoKQotICAgIHsKLSAgICAgICAgaWYgKCFmb3JjZWRDZWxs
QWxpZ25tZW50KQotICAgICAgICAgICAgcmV0dXJuIHNpemVvZihUKTsKLSAgICAgICAgCi0gICAg
ICAgIEFTU0VSVChmb3JjZWRDZWxsQWxpZ25tZW50ID49IHNpemVvZihUKSk7Ci0gICAgICAgIHJl
dHVybiBmb3JjZWRDZWxsQWxpZ25tZW50OwotICAgIH0KLSAgICAKKwogICAgIHN0cnVjdCBSZWdp
b24gewogICAgICAgICBzdGF0aWMgc2l6ZV90IHNpemUoKSB7IHJldHVybiA2NCAqIEtCOyB9Ci0g
ICAgICAgIHN0YXRpYyBzaXplX3QgaGVhZGVyU2l6ZSgpIHsgcmV0dXJuIHN0ZDo6bWF4KHNpemVv
ZihSZWdpb24pLCBjZWxsU2l6ZSgpKTsgfQotICAgICAgICBzdGF0aWMgdW5zaWduZWQgbnVtYmVy
T2ZUaGluZ3NQZXJSZWdpb24oKSB7IHJldHVybiAoc2l6ZSgpIC0gaGVhZGVyU2l6ZSgpKSAvIGNl
bGxTaXplKCk7IH0KLSAgICAgICAgc3RhdGljIHNpemVfdCBwYXlsb2FkU2l6ZSgpIHsgcmV0dXJu
IG51bWJlck9mVGhpbmdzUGVyUmVnaW9uKCkgKiBjZWxsU2l6ZSgpOyB9Ci0gICAgICAgIGNoYXIq
IHBheWxvYWRCZWdpbigpIHsgcmV0dXJuIGJpdHdpc2VfY2FzdDxjaGFyKj4odGhpcykgKyBoZWFk
ZXJTaXplKCk7IH0KLSAgICAgICAgY2hhciogcGF5bG9hZEVuZCgpIHsgcmV0dXJuIHBheWxvYWRC
ZWdpbigpICsgcGF5bG9hZFNpemUoKTsgfQotICAgICAgICBib29sIGlzSW5UaGlzUmVnaW9uKGNv
bnN0IFQqIHBvaW50ZXIpIHsgcmV0dXJuIHN0YXRpY19jYXN0PHNpemVfdD4oYml0d2lzZV9jYXN0
PGNoYXIqPihwb2ludGVyKSAtIHBheWxvYWRCZWdpbigpKSA8IHBheWxvYWRTaXplKCk7IH0KKyAg
ICAgICAgc3RhdGljIHNpemVfdCBoZWFkZXJTaXplKCkgeyByZXR1cm4gc3RkOjptYXgoc2l6ZW9m
KFJlZ2lvbiksIHNpemVvZihUKSk7IH0KKyAgICAgICAgc3RhdGljIHVuc2lnbmVkIG51bWJlck9m
VGhpbmdzUGVyUmVnaW9uKCkgeyByZXR1cm4gKHNpemUoKSAtIGhlYWRlclNpemUoKSkgLyBzaXpl
b2YoVCk7IH0KKyAgICAgICAgVCogZGF0YSgpIHsgcmV0dXJuIGJpdHdpc2VfY2FzdDxUKj4oYml0
d2lzZV9jYXN0PGNoYXIqPih0aGlzKSArIGhlYWRlclNpemUoKSk7IH0KKyAgICAgICAgYm9vbCBp
c0luVGhpc1JlZ2lvbihjb25zdCBUKiBwb2ludGVyKSB7IHJldHVybiBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4ocG9pbnRlciAtIGRhdGEoKSkgPCBudW1iZXJPZlRoaW5nc1BlclJlZ2lvbigpOyB9CiAg
ICAgICAgIHN0YXRpYyBSZWdpb24qIHJlZ2lvbkZvcihjb25zdCBUKiBwb2ludGVyKSB7IHJldHVy
biBiaXR3aXNlX2Nhc3Q8UmVnaW9uKj4oYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4ocG9pbnRlcikg
JiB+KHNpemUoKSAtIDEpKTsgfQogICAgICAgICAKICAgICAgICAgUGFnZUFsbG9jYXRpb25BbGln
bmVkIG1fYWxsb2NhdGlvbjsKQEAgLTk3LDI2ICs4MiwyNiBAQCBwcml2YXRlOgogICAgIAogICAg
IFJlZ2lvbiogbV9yZWdpb25IZWFkOwogICAgIHZvaWQqKiBtX2ZyZWVMaXN0SGVhZDsKLSAgICBj
aGFyKiBtX2J1bXBFbmQ7Ci0gICAgc2l6ZV90IG1fYnVtcFJlbWFpbmluZzsKKyAgICBUKiBtX2J1
bXBFbmQ7CisgICAgdW5zaWduZWQgbV9idW1wUmVtYWluaW5nOwogfTsKIAotdGVtcGxhdGU8dHlw
ZW5hbWUgVCwgdW5zaWduZWQgZm9yY2VkQ2VsbEFsaWdubWVudD4KLWlubGluZSBBbGxvY2F0b3I8
VCwgZm9yY2VkQ2VsbEFsaWdubWVudD46OkFsbG9jYXRvcigpCit0ZW1wbGF0ZTx0eXBlbmFtZSBU
PgoraW5saW5lIEFsbG9jYXRvcjxUPjo6QWxsb2NhdG9yKCkKICAgICA6IG1fcmVnaW9uSGVhZCgw
KQogICAgICwgbV9mcmVlTGlzdEhlYWQoMCkKICAgICAsIG1fYnVtcFJlbWFpbmluZygwKQogewog
fQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBULCB1bnNpZ25lZCBmb3JjZWRDZWxsQWxpZ25tZW50Pgot
aW5saW5lIEFsbG9jYXRvcjxULCBmb3JjZWRDZWxsQWxpZ25tZW50Pjo6fkFsbG9jYXRvcigpCit0
ZW1wbGF0ZTx0eXBlbmFtZSBUPgoraW5saW5lIEFsbG9jYXRvcjxUPjo6fkFsbG9jYXRvcigpCiB7
CiAgICAgcmVzZXQoKTsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgVCwgdW5zaWduZWQgZm9yY2Vk
Q2VsbEFsaWdubWVudD4KLUFMV0FZU19JTkxJTkUgdm9pZCogQWxsb2NhdG9yPFQsIGZvcmNlZENl
bGxBbGlnbm1lbnQ+OjphbGxvY2F0ZSgpCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorQUxXQVlTX0lO
TElORSB2b2lkKiBBbGxvY2F0b3I8VD46OmFsbG9jYXRlKCkKIHsKICAgICB2b2lkKiByZXN1bHQg
PSBidW1wQWxsb2NhdGUoKTsKICAgICBpZiAoTElLRUxZKCEhcmVzdWx0KSkKQEAgLTEyNCw4ICsx
MDksOCBAQCBBTFdBWVNfSU5MSU5FIHZvaWQqIEFsbG9jYXRvcjxULCBmb3JjZWRDCiAgICAgcmV0
dXJuIGZyZWVMaXN0QWxsb2NhdGUoKTsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgVCwgdW5zaWdu
ZWQgZm9yY2VkQ2VsbEFsaWdubWVudD4KLXZvaWQgQWxsb2NhdG9yPFQsIGZvcmNlZENlbGxBbGln
bm1lbnQ+OjpmcmVlKFQqIG9iamVjdCkKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+Cit2b2lkIEFsbG9j
YXRvcjxUPjo6ZnJlZShUKiBvYmplY3QpCiB7CiAgICAgb2JqZWN0LT5+VCgpOwogICAgIApAQCAt
MTM0LDggKzExOSw4IEBAIHZvaWQgQWxsb2NhdG9yPFQsIGZvcmNlZENlbGxBbGlnbm1lbnQ+OjoK
ICAgICBtX2ZyZWVMaXN0SGVhZCA9IGNlbGw7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQsIHVu
c2lnbmVkIGZvcmNlZENlbGxBbGlnbm1lbnQ+Ci12b2lkIEFsbG9jYXRvcjxULCBmb3JjZWRDZWxs
QWxpZ25tZW50Pjo6ZnJlZUFsbCgpCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgordm9pZCBBbGxvY2F0
b3I8VD46OmZyZWVBbGwoKQogewogICAgIGlmICghbV9yZWdpb25IZWFkKSB7CiAgICAgICAgIEFT
U0VSVCghbV9idW1wUmVtYWluaW5nKTsKQEAgLTE1Nyw4ICsxNDIsOCBAQCB2b2lkIEFsbG9jYXRv
cjxULCBmb3JjZWRDZWxsQWxpZ25tZW50Pjo6CiAgICAgc3RhcnRCdW1waW5nSW4obV9yZWdpb25I
ZWFkKTsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgVCwgdW5zaWduZWQgZm9yY2VkQ2VsbEFsaWdu
bWVudD4KLXZvaWQgQWxsb2NhdG9yPFQsIGZvcmNlZENlbGxBbGlnbm1lbnQ+OjpyZXNldCgpCit0
ZW1wbGF0ZTx0eXBlbmFtZSBUPgordm9pZCBBbGxvY2F0b3I8VD46OnJlc2V0KCkKIHsKICAgICBm
cmVlUmVnaW9uc1N0YXJ0aW5nQXQobV9yZWdpb25IZWFkKTsKICAgICAKQEAgLTE2NywzOCArMTUy
LDM4IEBAIHZvaWQgQWxsb2NhdG9yPFQsIGZvcmNlZENlbGxBbGlnbm1lbnQ+OjoKICAgICBtX2J1
bXBSZW1haW5pbmcgPSAwOwogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBULCB1bnNpZ25lZCBmb3Jj
ZWRDZWxsQWxpZ25tZW50PgotdW5zaWduZWQgQWxsb2NhdG9yPFQsIGZvcmNlZENlbGxBbGlnbm1l
bnQ+OjppbmRleE9mKGNvbnN0IFQqIG9iamVjdCkKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+Cit1bnNp
Z25lZCBBbGxvY2F0b3I8VD46OmluZGV4T2YoY29uc3QgVCogb2JqZWN0KQogewogICAgIHVuc2ln
bmVkIGJhc2VJbmRleCA9IDA7CiAgICAgZm9yIChSZWdpb24qIHJlZ2lvbiA9IG1fcmVnaW9uSGVh
ZDsgcmVnaW9uOyByZWdpb24gPSByZWdpb24tPm1fbmV4dCkgewogICAgICAgICBpZiAocmVnaW9u
LT5pc0luVGhpc1JlZ2lvbihvYmplY3QpKQotICAgICAgICAgICAgcmV0dXJuIGJhc2VJbmRleCAr
IChiaXR3aXNlX2Nhc3Q8Y2hhcio+KG9iamVjdCkgLSByZWdpb24tPnBheWxvYWRCZWdpbigpKSAv
IGNlbGxTaXplKCk7CisgICAgICAgICAgICByZXR1cm4gYmFzZUluZGV4ICsgKG9iamVjdCAtIHJl
Z2lvbi0+ZGF0YSgpKTsKICAgICAgICAgYmFzZUluZGV4ICs9IFJlZ2lvbjo6bnVtYmVyT2ZUaGlu
Z3NQZXJSZWdpb24oKTsKICAgICB9CiAgICAgQ1JBU0goKTsKICAgICByZXR1cm4gMDsKIH0KIAot
dGVtcGxhdGU8dHlwZW5hbWUgVCwgdW5zaWduZWQgZm9yY2VkQ2VsbEFsaWdubWVudD4KLUFsbG9j
YXRvcjxULCBmb3JjZWRDZWxsQWxpZ25tZW50PiogQWxsb2NhdG9yPFQsIGZvcmNlZENlbGxBbGln
bm1lbnQ+OjphbGxvY2F0b3JPZihjb25zdCBUKiBvYmplY3QpCit0ZW1wbGF0ZTx0eXBlbmFtZSBU
PgorQWxsb2NhdG9yPFQ+KiBBbGxvY2F0b3I8VD46OmFsbG9jYXRvck9mKGNvbnN0IFQqIG9iamVj
dCkKIHsKICAgICByZXR1cm4gUmVnaW9uOjpyZWdpb25Gb3Iob2JqZWN0KS0+bV9hbGxvY2F0b3I7
CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQsIHVuc2lnbmVkIGZvcmNlZENlbGxBbGlnbm1lbnQ+
Ci1BTFdBWVNfSU5MSU5FIHZvaWQqIEFsbG9jYXRvcjxULCBmb3JjZWRDZWxsQWxpZ25tZW50Pjo6
YnVtcEFsbG9jYXRlKCkKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitBTFdBWVNfSU5MSU5FIHZvaWQq
IEFsbG9jYXRvcjxUPjo6YnVtcEFsbG9jYXRlKCkKIHsKLSAgICBpZiAoc2l6ZV90IHJlbWFpbmlu
ZyA9IG1fYnVtcFJlbWFpbmluZykgewotICAgICAgICByZW1haW5pbmcgLT0gY2VsbFNpemUoKTsK
KyAgICBpZiAodW5zaWduZWQgcmVtYWluaW5nID0gbV9idW1wUmVtYWluaW5nKSB7CisgICAgICAg
IHJlbWFpbmluZy0tOwogICAgICAgICBtX2J1bXBSZW1haW5pbmcgPSByZW1haW5pbmc7Ci0gICAg
ICAgIHJldHVybiBtX2J1bXBFbmQgLSAocmVtYWluaW5nICsgY2VsbFNpemUoKSk7CisgICAgICAg
IHJldHVybiBtX2J1bXBFbmQgLSAocmVtYWluaW5nICsgMSk7CiAgICAgfQogICAgIHJldHVybiAw
OwogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBULCB1bnNpZ25lZCBmb3JjZWRDZWxsQWxpZ25tZW50
Pgotdm9pZCogQWxsb2NhdG9yPFQsIGZvcmNlZENlbGxBbGlnbm1lbnQ+OjpmcmVlTGlzdEFsbG9j
YXRlKCkKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+Cit2b2lkKiBBbGxvY2F0b3I8VD46OmZyZWVMaXN0
QWxsb2NhdGUoKQogewogICAgIHZvaWQqKiByZXN1bHQgPSBtX2ZyZWVMaXN0SGVhZDsKICAgICBp
ZiAoVU5MSUtFTFkoIXJlc3VsdCkpCkBAIC0yMDcsOCArMTkyLDggQEAgdm9pZCogQWxsb2NhdG9y
PFQsIGZvcmNlZENlbGxBbGlnbm1lbnQ+OgogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXRlbXBs
YXRlPHR5cGVuYW1lIFQsIHVuc2lnbmVkIGZvcmNlZENlbGxBbGlnbm1lbnQ+Ci12b2lkKiBBbGxv
Y2F0b3I8VCwgZm9yY2VkQ2VsbEFsaWdubWVudD46OmFsbG9jYXRlU2xvdygpCit0ZW1wbGF0ZTx0
eXBlbmFtZSBUPgordm9pZCogQWxsb2NhdG9yPFQ+OjphbGxvY2F0ZVNsb3coKQogewogICAgIEFT
U0VSVCghbV9mcmVlTGlzdEhlYWQpOwogICAgIEFTU0VSVCghbV9idW1wUmVtYWluaW5nKTsKQEAg
LTIzMSw4ICsyMTYsOCBAQCB2b2lkKiBBbGxvY2F0b3I8VCwgZm9yY2VkQ2VsbEFsaWdubWVudD46
CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgVCwgdW5zaWduZWQg
Zm9yY2VkQ2VsbEFsaWdubWVudD4KLXZvaWQgQWxsb2NhdG9yPFQsIGZvcmNlZENlbGxBbGlnbm1l
bnQ+OjpmcmVlUmVnaW9uc1N0YXJ0aW5nQXQodHlwZW5hbWUgQWxsb2NhdG9yPFQsIGZvcmNlZENl
bGxBbGlnbm1lbnQ+OjpSZWdpb24qIHJlZ2lvbikKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+Cit2b2lk
IEFsbG9jYXRvcjxUPjo6ZnJlZVJlZ2lvbnNTdGFydGluZ0F0KHR5cGVuYW1lIEFsbG9jYXRvcjxU
Pjo6UmVnaW9uKiByZWdpb24pCiB7CiAgICAgd2hpbGUgKHJlZ2lvbikgewogICAgICAgICBSZWdp
b24qIG5leHRSZWdpb24gPSByZWdpb24tPm1fbmV4dDsKQEAgLTI0MSwxMSArMjI2LDExIEBAIHZv
aWQgQWxsb2NhdG9yPFQsIGZvcmNlZENlbGxBbGlnbm1lbnQ+OjoKICAgICB9CiB9CiAKLXRlbXBs
YXRlPHR5cGVuYW1lIFQsIHVuc2lnbmVkIGZvcmNlZENlbGxBbGlnbm1lbnQ+Ci12b2lkIEFsbG9j
YXRvcjxULCBmb3JjZWRDZWxsQWxpZ25tZW50Pjo6c3RhcnRCdW1waW5nSW4odHlwZW5hbWUgQWxs
b2NhdG9yPFQsIGZvcmNlZENlbGxBbGlnbm1lbnQ+OjpSZWdpb24qIHJlZ2lvbikKK3RlbXBsYXRl
PHR5cGVuYW1lIFQ+Cit2b2lkIEFsbG9jYXRvcjxUPjo6c3RhcnRCdW1waW5nSW4odHlwZW5hbWUg
QWxsb2NhdG9yPFQ+OjpSZWdpb24qIHJlZ2lvbikKIHsKLSAgICBtX2J1bXBFbmQgPSByZWdpb24t
PnBheWxvYWRFbmQoKTsKLSAgICBtX2J1bXBSZW1haW5pbmcgPSBSZWdpb246OnBheWxvYWRTaXpl
KCk7CisgICAgbV9idW1wRW5kID0gcmVnaW9uLT5kYXRhKCkgKyBSZWdpb246Om51bWJlck9mVGhp
bmdzUGVyUmVnaW9uKCk7CisgICAgbV9idW1wUmVtYWluaW5nID0gUmVnaW9uOjpudW1iZXJPZlRo
aW5nc1BlclJlZ2lvbigpOwogfQogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0VkZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0VkZ2UuaAkocmV2aXNpb24gMTQzODg0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdFZGdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDM0ICs0
MCw2MiBAQCBjbGFzcyBBZGphY2VuY3lMaXN0OwogY2xhc3MgRWRnZSB7CiBwdWJsaWM6CiAgICAg
RWRnZSgpCisjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgOiBtX2VuY29kZWRXb3JkKG1ha2VX
b3JkKDAsIFVudHlwZWRVc2UpKQorI2Vsc2UKKyAgICAgICAgOiBtX25vZGUoMCkKKyAgICAgICAg
LCBtX2VuY29kZWRXb3JkKFVudHlwZWRVc2UpCisjZW5kaWYKICAgICB7CiAgICAgfQogICAgIAog
ICAgIGV4cGxpY2l0IEVkZ2UoTm9kZSogbm9kZSkKKyNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAg
ICA6IG1fZW5jb2RlZFdvcmQobWFrZVdvcmQobm9kZSwgVW50eXBlZFVzZSkpCisjZWxzZQorICAg
ICAgICA6IG1fbm9kZShub2RlKQorICAgICAgICAsIG1fZW5jb2RlZFdvcmQoVW50eXBlZFVzZSkK
KyNlbmRpZgogICAgIHsKICAgICB9CiAgICAgCiAgICAgRWRnZShOb2RlKiBub2RlLCBVc2VLaW5k
IHVzZUtpbmQpCisjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgOiBtX2VuY29kZWRXb3JkKG1h
a2VXb3JkKG5vZGUsIHVzZUtpbmQpKQorI2Vsc2UKKyAgICAgICAgOiBtX25vZGUobm9kZSkKKyAg
ICAgICAgLCBtX2VuY29kZWRXb3JkKHVzZUtpbmQpCisjZW5kaWYKICAgICB7CiAgICAgfQogICAg
IAotICAgIE5vZGUqIG5vZGUoKSBjb25zdCB7IHJldHVybiBiaXR3aXNlX2Nhc3Q8Tm9kZSo+KG1f
ZW5jb2RlZFdvcmQgJiB+KCgxIDw8IHNoaWZ0KCkpIC0gMSkpOyB9CisjaWYgVVNFKEpTVkFMVUU2
NCkKKyAgICBOb2RlKiBub2RlKCkgY29uc3QgeyByZXR1cm4gYml0d2lzZV9jYXN0PE5vZGUqPiht
X2VuY29kZWRXb3JkID4+IHNoaWZ0KCkpOyB9CisjZWxzZQorICAgIE5vZGUqIG5vZGUoKSBjb25z
dCB7IHJldHVybiBtX25vZGU7IH0KKyNlbmRpZgorCiAgICAgTm9kZSYgb3BlcmF0b3IqKCkgY29u
c3QgeyByZXR1cm4gKm5vZGUoKTsgfQogICAgIE5vZGUqIG9wZXJhdG9yLT4oKSBjb25zdCB7IHJl
dHVybiBub2RlKCk7IH0KICAgICAKICAgICB2b2lkIHNldE5vZGUoTm9kZSogbm9kZSkKICAgICB7
CisjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgbV9lbmNvZGVkV29yZCA9IG1ha2VXb3JkKG5v
ZGUsIHVzZUtpbmQoKSk7CisjZWxzZQorICAgICAgICBtX25vZGUgPSBub2RlOworI2VuZGlmCiAg
ICAgfQogICAgIAogICAgIFVzZUtpbmQgdXNlS2luZFVuY2hlY2tlZCgpIGNvbnN0CiAgICAgewor
I2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAgIHVuc2lnbmVkIG1hc2tlZCA9IG1fZW5jb2RlZFdv
cmQgJiAoKCgxIDw8IHNoaWZ0KCkpIC0gMSkpOwogICAgICAgICBBU1NFUlQobWFza2VkIDwgTGFz
dFVzZUtpbmQpOwogICAgICAgICBVc2VLaW5kIHJlc3VsdCA9IHN0YXRpY19jYXN0PFVzZUtpbmQ+
KG1hc2tlZCk7CisjZWxzZQorICAgICAgICBVc2VLaW5kIHJlc3VsdCA9IHN0YXRpY19jYXN0PFVz
ZUtpbmQ+KG1fZW5jb2RlZFdvcmQpOworI2VuZGlmCiAgICAgICAgIEFTU0VSVChub2RlKCkgfHwg
cmVzdWx0ID09IFVudHlwZWRVc2UpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KQEAg
LTc5LDcgKzEwNywxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRVc2VLaW5kKFVzZUtpbmQgdXNl
S2luZCkKICAgICB7CiAgICAgICAgIEFTU0VSVChub2RlKCkpOworI2lmIFVTRShKU1ZBTFVFNjQp
CiAgICAgICAgIG1fZW5jb2RlZFdvcmQgPSBtYWtlV29yZChub2RlKCksIHVzZUtpbmQpOworI2Vs
c2UKKyAgICAgICAgbV9lbmNvZGVkV29yZCA9IHVzZUtpbmQ7CisjZW5kaWYKICAgICB9CiAgICAg
CiAgICAgYm9vbCBpc1NldCgpIGNvbnN0IHsgcmV0dXJuICEhbm9kZSgpOyB9CkBAIC05MSwxMSAr
MTIzLDE1IEBAIHB1YmxpYzoKICAgICAKICAgICBib29sIG9wZXJhdG9yPT0oRWRnZSBvdGhlcikg
Y29uc3QKICAgICB7CisjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgcmV0dXJuIG1fZW5jb2Rl
ZFdvcmQgPT0gb3RoZXIubV9lbmNvZGVkV29yZDsKKyNlbHNlCisgICAgICAgIHJldHVybiBtX25v
ZGUgPT0gb3RoZXIubV9ub2RlICYmIG1fZW5jb2RlZFdvcmQgPT0gb3RoZXIubV9lbmNvZGVkV29y
ZDsKKyNlbmRpZgogICAgIH0KICAgICBib29sIG9wZXJhdG9yIT0oRWRnZSBvdGhlcikgY29uc3QK
ICAgICB7Ci0gICAgICAgIHJldHVybiBtX2VuY29kZWRXb3JkICE9IG90aGVyLm1fZW5jb2RlZFdv
cmQ7CisgICAgICAgIHJldHVybiAhKCp0aGlzID09IG90aGVyKTsKICAgICB9CiAgICAgCiAgICAg
dm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Q7CkBAIC0xMDMsMTcgKzEzOSwyNSBAQCBwdWJs
aWM6CiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBBZGphY2VuY3lMaXN0OwogICAgIAorI2lm
IFVTRShKU1ZBTFVFNjQpCiAgICAgc3RhdGljIHVpbnQzMl90IHNoaWZ0KCkgeyByZXR1cm4gNDsg
fQogICAgIAogICAgIHN0YXRpYyB1aW50cHRyX3QgbWFrZVdvcmQoTm9kZSogbm9kZSwgVXNlS2lu
ZCB1c2VLaW5kKQogICAgIHsKLSAgICAgICAgdWludHB0cl90IHZhbHVlID0gYml0d2lzZV9jYXN0
PHVpbnRwdHJfdD4obm9kZSk7Ci0gICAgICAgIEFTU0VSVCghKHZhbHVlICYgKCgxIDw8IHNoaWZ0
KCkpIC0gMSkpKTsKKyAgICAgICAgQVNTRVJUKHNpemVvZihub2RlKSA9PSA4KTsKKyAgICAgICAg
dWludHB0cl90IHNoaWZ0ZWRWYWx1ZSA9IGJpdHdpc2VfY2FzdDx1aW50cHRyX3Q+KG5vZGUpIDw8
IHNoaWZ0KCk7CisgICAgICAgIEFTU0VSVCgoc2hpZnRlZFZhbHVlID4+IHNoaWZ0KCkpID09IGJp
dHdpc2VfY2FzdDx1aW50cHRyX3Q+KG5vZGUpKTsKICAgICAgICAgQVNTRVJUKHVzZUtpbmQgPj0g
MCAmJiB1c2VLaW5kIDwgTGFzdFVzZUtpbmQpOwogICAgICAgICBBU1NFUlQoTGFzdFVzZUtpbmQg
PD0gKDEgPDwgc2hpZnQoKSkpOwotICAgICAgICByZXR1cm4gdmFsdWUgfCBzdGF0aWNfY2FzdDx1
aW50cHRyX3Q+KHVzZUtpbmQpOworICAgICAgICByZXR1cm4gc2hpZnRlZFZhbHVlIHwgc3RhdGlj
X2Nhc3Q8dWludHB0cl90Pih1c2VLaW5kKTsKICAgICB9CiAgICAgCisjZWxzZQorICAgIE5vZGUq
IG1fbm9kZTsKKyNlbmRpZgorICAgIC8vIE9uIDY0LWJpdCB0aGlzIGhvbGRzIGJvdGggdGhlIHBv
aW50ZXIgYW5kIHRoZSB1c2Uga2luZCwgd2hpbGUgb24gMzItYml0CisgICAgLy8gdGhpcyBqdXN0
IGhvbGRzIHRoZSB1c2Uga2luZC4gSW4gYm90aCBjYXNlcyB0aGlzIG1heSBiZSBoaWphY2tlZCBi
eQorICAgIC8vIEFkamFjZW5jeUxpc3QgZm9yIHN0b3JpbmcgZmlyc3RDaGlsZCBhbmQgbnVtQ2hp
bGRyZW4uCiAgICAgdWludHB0cl90IG1fZW5jb2RlZFdvcmQ7CiB9OwogCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVBbGxvY2F0b3IuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVBbGxvY2F0b3IuaAkocmV2aXNpb24gMTQzODg0
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlQWxsb2NhdG9yLmgJKHdvcmtp
bmcgY29weSkKQEAgLTM1LDE2ICszNSw3IEBACiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2Ug
REZHIHsKIAotLy8gVGhlIHNlY29uZCB0ZW1wbGF0ZSBhcmd1bWVudCB0byBBbGxvY2F0b3IgaXMg
dGhlIGV4cGVjdGVkIHNpemUgb2YgTm9kZSByb3VuZGVkIHVwIHRvCi0vLyAxNiBieXRlcy4gVGhp
cyBpcyBiYWtlZCBpbiB0byBnaXZlIHVzIGFzc2VydGlvbiBjb3ZlcmFnZSBmb3Igd2hlbiBOb2Rl
IGluY3JlYXNlcyBpbgotLy8gc2l6ZS4gV2UgZG9uJ3Qgd2FudCBpdHMgc2l6ZSB0byBpbmNyZWFz
ZSBmb3Igbm8gZ29vZCByZWFzb24uIFRoZSBtdWx0aXBsZS1vZi0xNgotLy8gcHJvcGVydHkgaXMg
YXNzZXJ0ZWQgYnkgREZHOjpFZGdlLCB3aGljaCBleHBlY3RzIHRvIG5ldmVyIHNlZSBhbnkgb2Yg
dGhlIGxvdyA0IGJpdHMKLS8vIG9mIGEgTm9kZSogYmVpbmcgbm9uLXplcm8uCi0jaWYgVVNFKEpT
VkFMVUU2NCkKLXR5cGVkZWYgQWxsb2NhdG9yPE5vZGUsIDExMj4gTm9kZUFsbG9jYXRvcjsKLSNl
bHNlCi10eXBlZGVmIEFsbG9jYXRvcjxOb2RlLCA4MD4gTm9kZUFsbG9jYXRvcjsKLSNlbmRpZgor
dHlwZWRlZiBBbGxvY2F0b3I8Tm9kZT4gTm9kZUFsbG9jYXRvcjsKIAogfSB9IC8vIG5hbWVzcGFj
ZSBKU0M6OkRGRwogCg==
</data>
<flag name="review"
          id="210575"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190075</attachid>
            <date>2013-02-25 09:50:04 -0800</date>
            <delta_ts>2013-02-25 09:50:04 -0800</delta_ts>
            <desc>patch for landing</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>14156</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTQzODg1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUzIEBA
CisyMDEzLTAyLTI0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
REZHOjpFZGdlIHNob3VsZCBoYXZlIG1vcmUgYml0cyBmb3IgVXNlS2luZCwgYW5kIERGRzo6QWxs
b2NhdG9yIHNob3VsZCBiZSBzaW1wbGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMTA3MjIKKworICAgICAgICBSZXZpZXdlZCBieSBPbGl2ZXIgSHVu
dC4KKyAgICAgICAgCisgICAgICAgIFRoaXMgcm9sbHMgb3V0IHRoZSBERkc6OkFsbG9jYXRvciBw
YXJ0IG9mIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzE0MzY1NCwKKyAgICAgICAg
YW5kIGNoYW5nZXMgRWRnZSB0byBoYXZlIG1vcmUgcm9vbSBmb3IgVXNlS2luZHMgYW5kIHBvc3Np
Ymx5IG90aGVyIHRoaW5ncy4KKyAgICAgICAgCisgICAgICAgIFRoaXMgaXMgcGVyZm9ybWFuY2Ut
bmV1dHJhbCBvbiBib3RoIDMyLWJpdCBhbmQgNjQtYml0LiBJdCByZWR1Y2VzIHRoZSBzaXplIG9m
CisgICAgICAgIERGRzo6Tm9kZSBvbiA2NC1iaXQgKGJ5IHZpcnR1ZSBvZiBnZXR0aW5nIHJpZCBv
ZiB0aGUgMTYtYnl0ZSBhbGlnbm1lbnQgb2YgTm9kZSkKKyAgICAgICAgYW5kIGluY3JlYXNlcyBp
dCBzbGlnaHRseSBvbiAzMi1iaXQgKGJ5IDQgYnl0ZXMgdG90YWwgLSAxNi1ieXRlIGFsaWdubWVu
dCBsZWQgdG8KKyAgICAgICAgODAgYnl0ZXMsIGJ1dCB0aGUgYmFzZSBzaXplIG9mIE5vZGUgcGx1
cyB0aGUgMTIgYnl0ZXMgb2YgbmV3IG1fZW5jb2RlZFdvcmRzIGluCisgICAgICAgIEVkZ2UgZ2V0
cyA4NCBieXRlcykuIEJ1dCwgaXQgd2lsbCBtZWFuIHRoYXQgd2UgZG9uJ3QgaGF2ZSB0byBpbmNy
ZWFzZSBOb2RlIGJ5CisgICAgICAgIGFub3RoZXIgMTYgYnl0ZXMgaWYgd2UgZXZlciB3YW50IHRv
IGFkZCBtb3JlIFVzZUtpbmRzIG9yIG90aGVyIHRoaW5ncyB0byBFZGdlLgorCisgICAgICAgICog
ZGZnL0RGR0FsbG9jYXRvci5oOgorICAgICAgICAoREZHKToKKyAgICAgICAgKEFsbG9jYXRvcik6
CisgICAgICAgIChKU0M6OkRGRzo6QWxsb2NhdG9yOjpSZWdpb246OmhlYWRlclNpemUpOgorICAg
ICAgICAoSlNDOjpERkc6OkFsbG9jYXRvcjo6UmVnaW9uOjpudW1iZXJPZlRoaW5nc1BlclJlZ2lv
bik6CisgICAgICAgIChKU0M6OkRGRzo6QWxsb2NhdG9yOjpSZWdpb246OmRhdGEpOgorICAgICAg
ICAoSlNDOjpERkc6OkFsbG9jYXRvcjo6UmVnaW9uOjppc0luVGhpc1JlZ2lvbik6CisgICAgICAg
IChKU0M6OkRGRzo6OjpBbGxvY2F0b3IpOgorICAgICAgICAoSlNDOjpERkc6Ojo6fkFsbG9jYXRv
cik6CisgICAgICAgIChKU0M6OkRGRzo6OjphbGxvY2F0ZSk6CisgICAgICAgIChKU0M6OkRGRzo6
OjpmcmVlKToKKyAgICAgICAgKEpTQzo6REZHOjo6OmZyZWVBbGwpOgorICAgICAgICAoSlNDOjpE
Rkc6Ojo6cmVzZXQpOgorICAgICAgICAoSlNDOjpERkc6Ojo6aW5kZXhPZik6CisgICAgICAgIChK
U0M6OkRGRzo6OjphbGxvY2F0b3JPZik6CisgICAgICAgIChKU0M6OkRGRzo6OjpidW1wQWxsb2Nh
dGUpOgorICAgICAgICAoSlNDOjpERkc6Ojo6ZnJlZUxpc3RBbGxvY2F0ZSk6CisgICAgICAgIChK
U0M6OkRGRzo6OjphbGxvY2F0ZVNsb3cpOgorICAgICAgICAoSlNDOjpERkc6Ojo6ZnJlZVJlZ2lv
bnNTdGFydGluZ0F0KToKKyAgICAgICAgKEpTQzo6REZHOjo6OnN0YXJ0QnVtcGluZ0luKToKKyAg
ICAgICAgKiBkZmcvREZHRWRnZS5oOgorICAgICAgICAoSlNDOjpERkc6OkVkZ2U6OkVkZ2UpOgor
ICAgICAgICAoRWRnZSk6CisgICAgICAgIChKU0M6OkRGRzo6RWRnZTo6bm9kZSk6CisgICAgICAg
IChKU0M6OkRGRzo6RWRnZTo6c2V0Tm9kZSk6CisgICAgICAgIChKU0M6OkRGRzo6RWRnZTo6dXNl
S2luZFVuY2hlY2tlZCk6CisgICAgICAgIChKU0M6OkRGRzo6RWRnZTo6c2V0VXNlS2luZCk6Cisg
ICAgICAgIChKU0M6OkRGRzo6RWRnZTo6b3BlcmF0b3I9PSk6CisgICAgICAgIChKU0M6OkRGRzo6
RWRnZTo6b3BlcmF0b3IhPSk6CisgICAgICAgIChKU0M6OkRGRzo6RWRnZTo6bWFrZVdvcmQpOgor
ICAgICAgICAqIGRmZy9ERkdOb2RlQWxsb2NhdG9yLmg6CisgICAgICAgIChERkcpOgorCiAyMDEz
LTAyLTIyICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgREZHOjpT
cGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlTnVtYmVyKCkgc2hvdWxkIGp1c3QgdXNlIFNwZWN1bGF0
ZURvdWJsZU9wZXJhbmQgaW5zdGVhZCBvZiBkb2luZyBpdHMgb3duIHRoaW5nCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FsbG9jYXRvci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWxsb2NhdG9yLmgJKHJldmlzaW9uIDE0Mzg4NCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWxsb2NhdG9yLmgJKHdvcmtpbmcgY29weSkK
QEAgLTQzLDExICs0Myw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIC8vICAg
YW55dGhpbmcuIFlvdSBjYW4ganVzdCBjYWxsIGZyZWVBbGwoKSBpbnN0ZWFkLgogLy8gLSBZb3Ug
Y2FsbCBmcmVlKCkgb24gYWxsIFQncyB0aGF0IHlvdSBhbGxvY2F0ZWQsIGFuZCBuZXZlciB1c2Ug
ZnJlZUFsbCgpLgogCi0vLyBmb3JjZWRDZWxsU2l6ZTogc2V0IHRoaXMgdG8gMCBpZiB5b3UncmUg
aGFwcHkgd2l0aCB0aGUgZGVmYXVsdCBhbGlnbm1lbnQsIG9yIHNldCBpdAotLy8gdG8gYSBub24t
emVybyB2YWx1ZSBpZiB5b3Ugd2FudCB0byBmb3JjaWJseSBhbGlnbiB0aGUgYWxsb2NhdGlvbnMg
dG8gYSBjZXJ0YWluCi0vLyB2YWx1ZS4gV2hlbiB5b3UgZG8gdGhpcywgQWxsb2NhdG9yIHdpbGwg
QVNTRVJUIHRoYXQgZm9yY2VkQ2VsbEFsaWdubWVudCA+PSBzaXplb2YoVCkuCi0KLXRlbXBsYXRl
PHR5cGVuYW1lIFQsIHVuc2lnbmVkIGZvcmNlZENlbGxBbGlnbm1lbnQ+Cit0ZW1wbGF0ZTx0eXBl
bmFtZSBUPgogY2xhc3MgQWxsb2NhdG9yIHsKIHB1YmxpYzoKICAgICBBbGxvY2F0b3IoKTsKQEAg
LTY3LDI0ICs2MywxMyBAQCBwcml2YXRlOgogICAgIHZvaWQqIGJ1bXBBbGxvY2F0ZSgpOwogICAg
IHZvaWQqIGZyZWVMaXN0QWxsb2NhdGUoKTsKICAgICB2b2lkKiBhbGxvY2F0ZVNsb3coKTsKLSAg
ICAKLSAgICBzdGF0aWMgc2l6ZV90IGNlbGxTaXplKCkKLSAgICB7Ci0gICAgICAgIGlmICghZm9y
Y2VkQ2VsbEFsaWdubWVudCkKLSAgICAgICAgICAgIHJldHVybiBzaXplb2YoVCk7Ci0gICAgICAg
IAotICAgICAgICBBU1NFUlQoZm9yY2VkQ2VsbEFsaWdubWVudCA+PSBzaXplb2YoVCkpOwotICAg
ICAgICByZXR1cm4gZm9yY2VkQ2VsbEFsaWdubWVudDsKLSAgICB9Ci0gICAgCisKICAgICBzdHJ1
Y3QgUmVnaW9uIHsKICAgICAgICAgc3RhdGljIHNpemVfdCBzaXplKCkgeyByZXR1cm4gNjQgKiBL
QjsgfQotICAgICAgICBzdGF0aWMgc2l6ZV90IGhlYWRlclNpemUoKSB7IHJldHVybiBzdGQ6Om1h
eChzaXplb2YoUmVnaW9uKSwgY2VsbFNpemUoKSk7IH0KLSAgICAgICAgc3RhdGljIHVuc2lnbmVk
IG51bWJlck9mVGhpbmdzUGVyUmVnaW9uKCkgeyByZXR1cm4gKHNpemUoKSAtIGhlYWRlclNpemUo
KSkgLyBjZWxsU2l6ZSgpOyB9Ci0gICAgICAgIHN0YXRpYyBzaXplX3QgcGF5bG9hZFNpemUoKSB7
IHJldHVybiBudW1iZXJPZlRoaW5nc1BlclJlZ2lvbigpICogY2VsbFNpemUoKTsgfQotICAgICAg
ICBjaGFyKiBwYXlsb2FkQmVnaW4oKSB7IHJldHVybiBiaXR3aXNlX2Nhc3Q8Y2hhcio+KHRoaXMp
ICsgaGVhZGVyU2l6ZSgpOyB9Ci0gICAgICAgIGNoYXIqIHBheWxvYWRFbmQoKSB7IHJldHVybiBw
YXlsb2FkQmVnaW4oKSArIHBheWxvYWRTaXplKCk7IH0KLSAgICAgICAgYm9vbCBpc0luVGhpc1Jl
Z2lvbihjb25zdCBUKiBwb2ludGVyKSB7IHJldHVybiBzdGF0aWNfY2FzdDxzaXplX3Q+KGJpdHdp
c2VfY2FzdDxjaGFyKj4ocG9pbnRlcikgLSBwYXlsb2FkQmVnaW4oKSkgPCBwYXlsb2FkU2l6ZSgp
OyB9CisgICAgICAgIHN0YXRpYyBzaXplX3QgaGVhZGVyU2l6ZSgpIHsgcmV0dXJuIHN0ZDo6bWF4
KHNpemVvZihSZWdpb24pLCBzaXplb2YoVCkpOyB9CisgICAgICAgIHN0YXRpYyB1bnNpZ25lZCBu
dW1iZXJPZlRoaW5nc1BlclJlZ2lvbigpIHsgcmV0dXJuIChzaXplKCkgLSBoZWFkZXJTaXplKCkp
IC8gc2l6ZW9mKFQpOyB9CisgICAgICAgIFQqIGRhdGEoKSB7IHJldHVybiBiaXR3aXNlX2Nhc3Q8
VCo+KGJpdHdpc2VfY2FzdDxjaGFyKj4odGhpcykgKyBoZWFkZXJTaXplKCkpOyB9CisgICAgICAg
IGJvb2wgaXNJblRoaXNSZWdpb24oY29uc3QgVCogcG9pbnRlcikgeyByZXR1cm4gc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KHBvaW50ZXIgLSBkYXRhKCkpIDwgbnVtYmVyT2ZUaGluZ3NQZXJSZWdpb24o
KTsgfQogICAgICAgICBzdGF0aWMgUmVnaW9uKiByZWdpb25Gb3IoY29uc3QgVCogcG9pbnRlcikg
eyByZXR1cm4gYml0d2lzZV9jYXN0PFJlZ2lvbio+KGJpdHdpc2VfY2FzdDx1aW50cHRyX3Q+KHBv
aW50ZXIpICYgfihzaXplKCkgLSAxKSk7IH0KICAgICAgICAgCiAgICAgICAgIFBhZ2VBbGxvY2F0
aW9uQWxpZ25lZCBtX2FsbG9jYXRpb247CkBAIC05NywyNiArODIsMjYgQEAgcHJpdmF0ZToKICAg
ICAKICAgICBSZWdpb24qIG1fcmVnaW9uSGVhZDsKICAgICB2b2lkKiogbV9mcmVlTGlzdEhlYWQ7
Ci0gICAgY2hhciogbV9idW1wRW5kOwotICAgIHNpemVfdCBtX2J1bXBSZW1haW5pbmc7CisgICAg
VCogbV9idW1wRW5kOworICAgIHVuc2lnbmVkIG1fYnVtcFJlbWFpbmluZzsKIH07CiAKLXRlbXBs
YXRlPHR5cGVuYW1lIFQsIHVuc2lnbmVkIGZvcmNlZENlbGxBbGlnbm1lbnQ+Ci1pbmxpbmUgQWxs
b2NhdG9yPFQsIGZvcmNlZENlbGxBbGlnbm1lbnQ+OjpBbGxvY2F0b3IoKQordGVtcGxhdGU8dHlw
ZW5hbWUgVD4KK2lubGluZSBBbGxvY2F0b3I8VD46OkFsbG9jYXRvcigpCiAgICAgOiBtX3JlZ2lv
bkhlYWQoMCkKICAgICAsIG1fZnJlZUxpc3RIZWFkKDApCiAgICAgLCBtX2J1bXBSZW1haW5pbmco
MCkKIHsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgVCwgdW5zaWduZWQgZm9yY2VkQ2VsbEFsaWdu
bWVudD4KLWlubGluZSBBbGxvY2F0b3I8VCwgZm9yY2VkQ2VsbEFsaWdubWVudD46On5BbGxvY2F0
b3IoKQordGVtcGxhdGU8dHlwZW5hbWUgVD4KK2lubGluZSBBbGxvY2F0b3I8VD46On5BbGxvY2F0
b3IoKQogewogICAgIHJlc2V0KCk7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQsIHVuc2lnbmVk
IGZvcmNlZENlbGxBbGlnbm1lbnQ+Ci1BTFdBWVNfSU5MSU5FIHZvaWQqIEFsbG9jYXRvcjxULCBm
b3JjZWRDZWxsQWxpZ25tZW50Pjo6YWxsb2NhdGUoKQordGVtcGxhdGU8dHlwZW5hbWUgVD4KK0FM
V0FZU19JTkxJTkUgdm9pZCogQWxsb2NhdG9yPFQ+OjphbGxvY2F0ZSgpCiB7CiAgICAgdm9pZCog
cmVzdWx0ID0gYnVtcEFsbG9jYXRlKCk7CiAgICAgaWYgKExJS0VMWSghIXJlc3VsdCkpCkBAIC0x
MjQsOCArMTA5LDggQEAgQUxXQVlTX0lOTElORSB2b2lkKiBBbGxvY2F0b3I8VCwgZm9yY2VkQwog
ICAgIHJldHVybiBmcmVlTGlzdEFsbG9jYXRlKCk7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQs
IHVuc2lnbmVkIGZvcmNlZENlbGxBbGlnbm1lbnQ+Ci12b2lkIEFsbG9jYXRvcjxULCBmb3JjZWRD
ZWxsQWxpZ25tZW50Pjo6ZnJlZShUKiBvYmplY3QpCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgordm9p
ZCBBbGxvY2F0b3I8VD46OmZyZWUoVCogb2JqZWN0KQogewogICAgIG9iamVjdC0+flQoKTsKICAg
ICAKQEAgLTEzNCw4ICsxMTksOCBAQCB2b2lkIEFsbG9jYXRvcjxULCBmb3JjZWRDZWxsQWxpZ25t
ZW50Pjo6CiAgICAgbV9mcmVlTGlzdEhlYWQgPSBjZWxsOwogfQogCi10ZW1wbGF0ZTx0eXBlbmFt
ZSBULCB1bnNpZ25lZCBmb3JjZWRDZWxsQWxpZ25tZW50Pgotdm9pZCBBbGxvY2F0b3I8VCwgZm9y
Y2VkQ2VsbEFsaWdubWVudD46OmZyZWVBbGwoKQordGVtcGxhdGU8dHlwZW5hbWUgVD4KK3ZvaWQg
QWxsb2NhdG9yPFQ+OjpmcmVlQWxsKCkKIHsKICAgICBpZiAoIW1fcmVnaW9uSGVhZCkgewogICAg
ICAgICBBU1NFUlQoIW1fYnVtcFJlbWFpbmluZyk7CkBAIC0xNTcsOCArMTQyLDggQEAgdm9pZCBB
bGxvY2F0b3I8VCwgZm9yY2VkQ2VsbEFsaWdubWVudD46OgogICAgIHN0YXJ0QnVtcGluZ0luKG1f
cmVnaW9uSGVhZCk7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQsIHVuc2lnbmVkIGZvcmNlZENl
bGxBbGlnbm1lbnQ+Ci12b2lkIEFsbG9jYXRvcjxULCBmb3JjZWRDZWxsQWxpZ25tZW50Pjo6cmVz
ZXQoKQordGVtcGxhdGU8dHlwZW5hbWUgVD4KK3ZvaWQgQWxsb2NhdG9yPFQ+OjpyZXNldCgpCiB7
CiAgICAgZnJlZVJlZ2lvbnNTdGFydGluZ0F0KG1fcmVnaW9uSGVhZCk7CiAgICAgCkBAIC0xNjcs
MzggKzE1MiwzOCBAQCB2b2lkIEFsbG9jYXRvcjxULCBmb3JjZWRDZWxsQWxpZ25tZW50Pjo6CiAg
ICAgbV9idW1wUmVtYWluaW5nID0gMDsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgVCwgdW5zaWdu
ZWQgZm9yY2VkQ2VsbEFsaWdubWVudD4KLXVuc2lnbmVkIEFsbG9jYXRvcjxULCBmb3JjZWRDZWxs
QWxpZ25tZW50Pjo6aW5kZXhPZihjb25zdCBUKiBvYmplY3QpCit0ZW1wbGF0ZTx0eXBlbmFtZSBU
PgordW5zaWduZWQgQWxsb2NhdG9yPFQ+OjppbmRleE9mKGNvbnN0IFQqIG9iamVjdCkKIHsKICAg
ICB1bnNpZ25lZCBiYXNlSW5kZXggPSAwOwogICAgIGZvciAoUmVnaW9uKiByZWdpb24gPSBtX3Jl
Z2lvbkhlYWQ7IHJlZ2lvbjsgcmVnaW9uID0gcmVnaW9uLT5tX25leHQpIHsKICAgICAgICAgaWYg
KHJlZ2lvbi0+aXNJblRoaXNSZWdpb24ob2JqZWN0KSkKLSAgICAgICAgICAgIHJldHVybiBiYXNl
SW5kZXggKyAoYml0d2lzZV9jYXN0PGNoYXIqPihvYmplY3QpIC0gcmVnaW9uLT5wYXlsb2FkQmVn
aW4oKSkgLyBjZWxsU2l6ZSgpOworICAgICAgICAgICAgcmV0dXJuIGJhc2VJbmRleCArIChvYmpl
Y3QgLSByZWdpb24tPmRhdGEoKSk7CiAgICAgICAgIGJhc2VJbmRleCArPSBSZWdpb246Om51bWJl
ck9mVGhpbmdzUGVyUmVnaW9uKCk7CiAgICAgfQogICAgIENSQVNIKCk7CiAgICAgcmV0dXJuIDA7
CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQsIHVuc2lnbmVkIGZvcmNlZENlbGxBbGlnbm1lbnQ+
Ci1BbGxvY2F0b3I8VCwgZm9yY2VkQ2VsbEFsaWdubWVudD4qIEFsbG9jYXRvcjxULCBmb3JjZWRD
ZWxsQWxpZ25tZW50Pjo6YWxsb2NhdG9yT2YoY29uc3QgVCogb2JqZWN0KQordGVtcGxhdGU8dHlw
ZW5hbWUgVD4KK0FsbG9jYXRvcjxUPiogQWxsb2NhdG9yPFQ+OjphbGxvY2F0b3JPZihjb25zdCBU
KiBvYmplY3QpCiB7CiAgICAgcmV0dXJuIFJlZ2lvbjo6cmVnaW9uRm9yKG9iamVjdCktPm1fYWxs
b2NhdG9yOwogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBULCB1bnNpZ25lZCBmb3JjZWRDZWxsQWxp
Z25tZW50PgotQUxXQVlTX0lOTElORSB2b2lkKiBBbGxvY2F0b3I8VCwgZm9yY2VkQ2VsbEFsaWdu
bWVudD46OmJ1bXBBbGxvY2F0ZSgpCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorQUxXQVlTX0lOTElO
RSB2b2lkKiBBbGxvY2F0b3I8VD46OmJ1bXBBbGxvY2F0ZSgpCiB7Ci0gICAgaWYgKHNpemVfdCBy
ZW1haW5pbmcgPSBtX2J1bXBSZW1haW5pbmcpIHsKLSAgICAgICAgcmVtYWluaW5nIC09IGNlbGxT
aXplKCk7CisgICAgaWYgKHVuc2lnbmVkIHJlbWFpbmluZyA9IG1fYnVtcFJlbWFpbmluZykgewor
ICAgICAgICByZW1haW5pbmctLTsKICAgICAgICAgbV9idW1wUmVtYWluaW5nID0gcmVtYWluaW5n
OwotICAgICAgICByZXR1cm4gbV9idW1wRW5kIC0gKHJlbWFpbmluZyArIGNlbGxTaXplKCkpOwor
ICAgICAgICByZXR1cm4gbV9idW1wRW5kIC0gKHJlbWFpbmluZyArIDEpOwogICAgIH0KICAgICBy
ZXR1cm4gMDsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgVCwgdW5zaWduZWQgZm9yY2VkQ2VsbEFs
aWdubWVudD4KLXZvaWQqIEFsbG9jYXRvcjxULCBmb3JjZWRDZWxsQWxpZ25tZW50Pjo6ZnJlZUxp
c3RBbGxvY2F0ZSgpCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgordm9pZCogQWxsb2NhdG9yPFQ+Ojpm
cmVlTGlzdEFsbG9jYXRlKCkKIHsKICAgICB2b2lkKiogcmVzdWx0ID0gbV9mcmVlTGlzdEhlYWQ7
CiAgICAgaWYgKFVOTElLRUxZKCFyZXN1bHQpKQpAQCAtMjA3LDggKzE5Miw4IEBAIHZvaWQqIEFs
bG9jYXRvcjxULCBmb3JjZWRDZWxsQWxpZ25tZW50PjoKICAgICByZXR1cm4gcmVzdWx0OwogfQog
Ci10ZW1wbGF0ZTx0eXBlbmFtZSBULCB1bnNpZ25lZCBmb3JjZWRDZWxsQWxpZ25tZW50Pgotdm9p
ZCogQWxsb2NhdG9yPFQsIGZvcmNlZENlbGxBbGlnbm1lbnQ+OjphbGxvY2F0ZVNsb3coKQordGVt
cGxhdGU8dHlwZW5hbWUgVD4KK3ZvaWQqIEFsbG9jYXRvcjxUPjo6YWxsb2NhdGVTbG93KCkKIHsK
ICAgICBBU1NFUlQoIW1fZnJlZUxpc3RIZWFkKTsKICAgICBBU1NFUlQoIW1fYnVtcFJlbWFpbmlu
Zyk7CkBAIC0yMzEsOCArMjE2LDggQEAgdm9pZCogQWxsb2NhdG9yPFQsIGZvcmNlZENlbGxBbGln
bm1lbnQ+OgogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQsIHVu
c2lnbmVkIGZvcmNlZENlbGxBbGlnbm1lbnQ+Ci12b2lkIEFsbG9jYXRvcjxULCBmb3JjZWRDZWxs
QWxpZ25tZW50Pjo6ZnJlZVJlZ2lvbnNTdGFydGluZ0F0KHR5cGVuYW1lIEFsbG9jYXRvcjxULCBm
b3JjZWRDZWxsQWxpZ25tZW50Pjo6UmVnaW9uKiByZWdpb24pCit0ZW1wbGF0ZTx0eXBlbmFtZSBU
Pgordm9pZCBBbGxvY2F0b3I8VD46OmZyZWVSZWdpb25zU3RhcnRpbmdBdCh0eXBlbmFtZSBBbGxv
Y2F0b3I8VD46OlJlZ2lvbiogcmVnaW9uKQogewogICAgIHdoaWxlIChyZWdpb24pIHsKICAgICAg
ICAgUmVnaW9uKiBuZXh0UmVnaW9uID0gcmVnaW9uLT5tX25leHQ7CkBAIC0yNDEsMTEgKzIyNiwx
MSBAQCB2b2lkIEFsbG9jYXRvcjxULCBmb3JjZWRDZWxsQWxpZ25tZW50Pjo6CiAgICAgfQogfQog
Ci10ZW1wbGF0ZTx0eXBlbmFtZSBULCB1bnNpZ25lZCBmb3JjZWRDZWxsQWxpZ25tZW50Pgotdm9p
ZCBBbGxvY2F0b3I8VCwgZm9yY2VkQ2VsbEFsaWdubWVudD46OnN0YXJ0QnVtcGluZ0luKHR5cGVu
YW1lIEFsbG9jYXRvcjxULCBmb3JjZWRDZWxsQWxpZ25tZW50Pjo6UmVnaW9uKiByZWdpb24pCit0
ZW1wbGF0ZTx0eXBlbmFtZSBUPgordm9pZCBBbGxvY2F0b3I8VD46OnN0YXJ0QnVtcGluZ0luKHR5
cGVuYW1lIEFsbG9jYXRvcjxUPjo6UmVnaW9uKiByZWdpb24pCiB7Ci0gICAgbV9idW1wRW5kID0g
cmVnaW9uLT5wYXlsb2FkRW5kKCk7Ci0gICAgbV9idW1wUmVtYWluaW5nID0gUmVnaW9uOjpwYXls
b2FkU2l6ZSgpOworICAgIG1fYnVtcEVuZCA9IHJlZ2lvbi0+ZGF0YSgpICsgUmVnaW9uOjpudW1i
ZXJPZlRoaW5nc1BlclJlZ2lvbigpOworICAgIG1fYnVtcFJlbWFpbmluZyA9IFJlZ2lvbjo6bnVt
YmVyT2ZUaGluZ3NQZXJSZWdpb24oKTsKIH0KIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdFZGdlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdFZGdlLmgJKHJldmlzaW9uIDE0Mzg4NCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRWRnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00
MCwzNCArNDAsNjIgQEAgY2xhc3MgQWRqYWNlbmN5TGlzdDsKIGNsYXNzIEVkZ2UgewogcHVibGlj
OgogICAgIEVkZ2UoKQorI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAgIDogbV9lbmNvZGVkV29y
ZChtYWtlV29yZCgwLCBVbnR5cGVkVXNlKSkKKyNlbHNlCisgICAgICAgIDogbV9ub2RlKDApCisg
ICAgICAgICwgbV9lbmNvZGVkV29yZChVbnR5cGVkVXNlKQorI2VuZGlmCiAgICAgewogICAgIH0K
ICAgICAKICAgICBleHBsaWNpdCBFZGdlKE5vZGUqIG5vZGUpCisjaWYgVVNFKEpTVkFMVUU2NCkK
ICAgICAgICAgOiBtX2VuY29kZWRXb3JkKG1ha2VXb3JkKG5vZGUsIFVudHlwZWRVc2UpKQorI2Vs
c2UKKyAgICAgICAgOiBtX25vZGUobm9kZSkKKyAgICAgICAgLCBtX2VuY29kZWRXb3JkKFVudHlw
ZWRVc2UpCisjZW5kaWYKICAgICB7CiAgICAgfQogICAgIAogICAgIEVkZ2UoTm9kZSogbm9kZSwg
VXNlS2luZCB1c2VLaW5kKQorI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAgIDogbV9lbmNvZGVk
V29yZChtYWtlV29yZChub2RlLCB1c2VLaW5kKSkKKyNlbHNlCisgICAgICAgIDogbV9ub2RlKG5v
ZGUpCisgICAgICAgICwgbV9lbmNvZGVkV29yZCh1c2VLaW5kKQorI2VuZGlmCiAgICAgewogICAg
IH0KICAgICAKLSAgICBOb2RlKiBub2RlKCkgY29uc3QgeyByZXR1cm4gYml0d2lzZV9jYXN0PE5v
ZGUqPihtX2VuY29kZWRXb3JkICYgfigoMSA8PCBzaGlmdCgpKSAtIDEpKTsgfQorI2lmIFVTRShK
U1ZBTFVFNjQpCisgICAgTm9kZSogbm9kZSgpIGNvbnN0IHsgcmV0dXJuIGJpdHdpc2VfY2FzdDxO
b2RlKj4obV9lbmNvZGVkV29yZCA+PiBzaGlmdCgpKTsgfQorI2Vsc2UKKyAgICBOb2RlKiBub2Rl
KCkgY29uc3QgeyByZXR1cm4gbV9ub2RlOyB9CisjZW5kaWYKKwogICAgIE5vZGUmIG9wZXJhdG9y
KigpIGNvbnN0IHsgcmV0dXJuICpub2RlKCk7IH0KICAgICBOb2RlKiBvcGVyYXRvci0+KCkgY29u
c3QgeyByZXR1cm4gbm9kZSgpOyB9CiAgICAgCiAgICAgdm9pZCBzZXROb2RlKE5vZGUqIG5vZGUp
CiAgICAgeworI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAgIG1fZW5jb2RlZFdvcmQgPSBtYWtl
V29yZChub2RlLCB1c2VLaW5kKCkpOworI2Vsc2UKKyAgICAgICAgbV9ub2RlID0gbm9kZTsKKyNl
bmRpZgogICAgIH0KICAgICAKICAgICBVc2VLaW5kIHVzZUtpbmRVbmNoZWNrZWQoKSBjb25zdAog
ICAgIHsKKyNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICB1bnNpZ25lZCBtYXNrZWQgPSBtX2Vu
Y29kZWRXb3JkICYgKCgoMSA8PCBzaGlmdCgpKSAtIDEpKTsKICAgICAgICAgQVNTRVJUKG1hc2tl
ZCA8IExhc3RVc2VLaW5kKTsKICAgICAgICAgVXNlS2luZCByZXN1bHQgPSBzdGF0aWNfY2FzdDxV
c2VLaW5kPihtYXNrZWQpOworI2Vsc2UKKyAgICAgICAgVXNlS2luZCByZXN1bHQgPSBzdGF0aWNf
Y2FzdDxVc2VLaW5kPihtX2VuY29kZWRXb3JkKTsKKyNlbmRpZgogICAgICAgICBBU1NFUlQobm9k
ZSgpIHx8IHJlc3VsdCA9PSBVbnR5cGVkVXNlKTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAg
ICB9CkBAIC03OSw3ICsxMDcsMTEgQEAgcHVibGljOgogICAgIHZvaWQgc2V0VXNlS2luZChVc2VL
aW5kIHVzZUtpbmQpCiAgICAgewogICAgICAgICBBU1NFUlQobm9kZSgpKTsKKyNpZiBVU0UoSlNW
QUxVRTY0KQogICAgICAgICBtX2VuY29kZWRXb3JkID0gbWFrZVdvcmQobm9kZSgpLCB1c2VLaW5k
KTsKKyNlbHNlCisgICAgICAgIG1fZW5jb2RlZFdvcmQgPSB1c2VLaW5kOworI2VuZGlmCiAgICAg
fQogICAgIAogICAgIGJvb2wgaXNTZXQoKSBjb25zdCB7IHJldHVybiAhIW5vZGUoKTsgfQpAQCAt
OTEsMTEgKzEyMywxNSBAQCBwdWJsaWM6CiAgICAgCiAgICAgYm9vbCBvcGVyYXRvcj09KEVkZ2Ug
b3RoZXIpIGNvbnN0CiAgICAgeworI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAgIHJldHVybiBt
X2VuY29kZWRXb3JkID09IG90aGVyLm1fZW5jb2RlZFdvcmQ7CisjZWxzZQorICAgICAgICByZXR1
cm4gbV9ub2RlID09IG90aGVyLm1fbm9kZSAmJiBtX2VuY29kZWRXb3JkID09IG90aGVyLm1fZW5j
b2RlZFdvcmQ7CisjZW5kaWYKICAgICB9CiAgICAgYm9vbCBvcGVyYXRvciE9KEVkZ2Ugb3RoZXIp
IGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gbV9lbmNvZGVkV29yZCAhPSBvdGhlci5tX2Vu
Y29kZWRXb3JkOworICAgICAgICByZXR1cm4gISgqdGhpcyA9PSBvdGhlcik7CiAgICAgfQogICAg
IAogICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0OwpAQCAtMTAzLDE3ICsxMzksMjUg
QEAgcHVibGljOgogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgQWRqYWNlbmN5TGlzdDsKICAg
ICAKKyNpZiBVU0UoSlNWQUxVRTY0KQogICAgIHN0YXRpYyB1aW50MzJfdCBzaGlmdCgpIHsgcmV0
dXJuIDQ7IH0KICAgICAKICAgICBzdGF0aWMgdWludHB0cl90IG1ha2VXb3JkKE5vZGUqIG5vZGUs
IFVzZUtpbmQgdXNlS2luZCkKICAgICB7Ci0gICAgICAgIHVpbnRwdHJfdCB2YWx1ZSA9IGJpdHdp
c2VfY2FzdDx1aW50cHRyX3Q+KG5vZGUpOwotICAgICAgICBBU1NFUlQoISh2YWx1ZSAmICgoMSA8
PCBzaGlmdCgpKSAtIDEpKSk7CisgICAgICAgIEFTU0VSVChzaXplb2Yobm9kZSkgPT0gOCk7Cisg
ICAgICAgIHVpbnRwdHJfdCBzaGlmdGVkVmFsdWUgPSBiaXR3aXNlX2Nhc3Q8dWludHB0cl90Pihu
b2RlKSA8PCBzaGlmdCgpOworICAgICAgICBBU1NFUlQoKHNoaWZ0ZWRWYWx1ZSA+PiBzaGlmdCgp
KSA9PSBiaXR3aXNlX2Nhc3Q8dWludHB0cl90Pihub2RlKSk7CiAgICAgICAgIEFTU0VSVCh1c2VL
aW5kID49IDAgJiYgdXNlS2luZCA8IExhc3RVc2VLaW5kKTsKICAgICAgICAgQVNTRVJUKExhc3RV
c2VLaW5kIDw9ICgxIDw8IHNoaWZ0KCkpKTsKLSAgICAgICAgcmV0dXJuIHZhbHVlIHwgc3RhdGlj
X2Nhc3Q8dWludHB0cl90Pih1c2VLaW5kKTsKKyAgICAgICAgcmV0dXJuIHNoaWZ0ZWRWYWx1ZSB8
IHN0YXRpY19jYXN0PHVpbnRwdHJfdD4odXNlS2luZCk7CiAgICAgfQogICAgIAorI2Vsc2UKKyAg
ICBOb2RlKiBtX25vZGU7CisjZW5kaWYKKyAgICAvLyBPbiA2NC1iaXQgdGhpcyBob2xkcyBib3Ro
IHRoZSBwb2ludGVyIGFuZCB0aGUgdXNlIGtpbmQsIHdoaWxlIG9uIDMyLWJpdAorICAgIC8vIHRo
aXMganVzdCBob2xkcyB0aGUgdXNlIGtpbmQuIEluIGJvdGggY2FzZXMgdGhpcyBtYXkgYmUgaGlq
YWNrZWQgYnkKKyAgICAvLyBBZGphY2VuY3lMaXN0IGZvciBzdG9yaW5nIGZpcnN0Q2hpbGQgYW5k
IG51bUNoaWxkcmVuLgogICAgIHVpbnRwdHJfdCBtX2VuY29kZWRXb3JkOwogfTsKIApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlQWxsb2NhdG9yLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlQWxsb2NhdG9yLmgJKHJldmlzaW9u
IDE0Mzg4NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUFsbG9jYXRvci5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zNSwxNiArMzUsNyBAQAogCiBuYW1lc3BhY2UgSlNDIHsgbmFt
ZXNwYWNlIERGRyB7CiAKLS8vIFRoZSBzZWNvbmQgdGVtcGxhdGUgYXJndW1lbnQgdG8gQWxsb2Nh
dG9yIGlzIHRoZSBleHBlY3RlZCBzaXplIG9mIE5vZGUgcm91bmRlZCB1cCB0bwotLy8gMTYgYnl0
ZXMuIFRoaXMgaXMgYmFrZWQgaW4gdG8gZ2l2ZSB1cyBhc3NlcnRpb24gY292ZXJhZ2UgZm9yIHdo
ZW4gTm9kZSBpbmNyZWFzZXMgaW4KLS8vIHNpemUuIFdlIGRvbid0IHdhbnQgaXRzIHNpemUgdG8g
aW5jcmVhc2UgZm9yIG5vIGdvb2QgcmVhc29uLiBUaGUgbXVsdGlwbGUtb2YtMTYKLS8vIHByb3Bl
cnR5IGlzIGFzc2VydGVkIGJ5IERGRzo6RWRnZSwgd2hpY2ggZXhwZWN0cyB0byBuZXZlciBzZWUg
YW55IG9mIHRoZSBsb3cgNCBiaXRzCi0vLyBvZiBhIE5vZGUqIGJlaW5nIG5vbi16ZXJvLgotI2lm
IFVTRShKU1ZBTFVFNjQpCi10eXBlZGVmIEFsbG9jYXRvcjxOb2RlLCAxMTI+IE5vZGVBbGxvY2F0
b3I7Ci0jZWxzZQotdHlwZWRlZiBBbGxvY2F0b3I8Tm9kZSwgODA+IE5vZGVBbGxvY2F0b3I7Ci0j
ZW5kaWYKK3R5cGVkZWYgQWxsb2NhdG9yPE5vZGU+IE5vZGVBbGxvY2F0b3I7CiAKIH0gfSAvLyBu
YW1lc3BhY2UgSlNDOjpERkcKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>