<?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>105339</bug_id>
          
          <creation_ts>2012-12-18 12:59:00 -0800</creation_ts>
          <short_desc>Restrictions on oversize CopiedBlock allocations should be relaxed</short_desc>
          <delta_ts>2012-12-18 14:02:40 -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>Unspecified</rep_platform>
          <op_sys>Unspecified</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="Mark Hahnenberg">mhahnenberg</reporter>
          <assigned_to name="Mark Hahnenberg">mhahnenberg</assigned_to>
          <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>793959</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-12-18 12:59:00 -0800</bug_when>
    <thetext>Currently the DFG has a single branch in the inline allocation path for property/array storage where it checks to see if the number of bytes requested will fit in the current block. This does not match what the C++ allocation path does; it checks if the requested number of bytes is oversize, and then if it&apos;s not, it tries to fit it in the current block. The garbage collector assumes that ALL allocations that are greater than 16KB are in oversize blocks. Therefore, this mismatch can lead to crashes when the collector tries to perform some operation on a CopiedBlock.

To avoid adding an extra branch to the inline allocation path in the JIT, we should make it so that oversize blocks are allocated on the same alignment boundaries so that there is a single mask to find the block header of any CopiedBlock (rather than two, one for normal and one for oversize blocks), and we should figure out if a block is oversize by some other method than just whatever the JSObject says it is. One way we could record this info Region of the block, since we allocate a one-off Region for oversize blocks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793962</commentid>
    <comment_count>1</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-12-18 13:01:00 -0800</bug_when>
    <thetext>&lt;rdar://problem/12814946&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793974</commentid>
    <comment_count>2</comment_count>
      <attachid>180012</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-12-18 13:13:23 -0800</bug_when>
    <thetext>Created attachment 180012
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>794023</commentid>
    <comment_count>3</comment_count>
      <attachid>180012</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-18 14:02:37 -0800</bug_when>
    <thetext>Comment on attachment 180012
Patch

Clearing flags on attachment: 180012

Committed r138067: &lt;http://trac.webkit.org/changeset/138067&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>794024</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-18 14:02:40 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180012</attachid>
            <date>2012-12-18 13:13:23 -0800</date>
            <delta_ts>2012-12-18 14:02:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105339-20121218131040.patch</filename>
            <type>text/plain</type>
            <size>12109</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTM4MDU3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU0IEBA
CisyMDEyLTEyLTE4ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgUmVzdHJpY3Rpb25zIG9uIG92ZXJzaXplIENvcGllZEJsb2NrIGFsbG9jYXRpb25z
IHNob3VsZCBiZSByZWxheGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDUzMzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBDdXJyZW50bHkgdGhlIERGRyBoYXMgYSBzaW5nbGUgYnJhbmNoIGluIHRoZSBp
bmxpbmUgYWxsb2NhdGlvbiBwYXRoIGZvciBwcm9wZXJ0eS9hcnJheSBzdG9yYWdlIHdoZXJlIAor
ICAgICAgICBpdCBjaGVja3MgdG8gc2VlIGlmIHRoZSBudW1iZXIgb2YgYnl0ZXMgcmVxdWVzdGVk
IHdpbGwgZml0IGluIHRoZSBjdXJyZW50IGJsb2NrLiBUaGlzIGRvZXMgbm90IG1hdGNoIAorICAg
ICAgICB3aGF0IHRoZSBDKysgYWxsb2NhdGlvbiBwYXRoIGRvZXM7IGl0IGNoZWNrcyBpZiB0aGUg
cmVxdWVzdGVkIG51bWJlciBvZiBieXRlcyBpcyBvdmVyc2l6ZSwgYW5kIHRoZW4gCisgICAgICAg
IGlmIGl0J3Mgbm90LCBpdCB0cmllcyB0byBmaXQgaXQgaW4gdGhlIGN1cnJlbnQgYmxvY2suIFRo
ZSBnYXJiYWdlIGNvbGxlY3RvciBhc3N1bWVzIHRoYXQgQUxMIGFsbG9jYXRpb25zIAorICAgICAg
ICB0aGF0IGFyZSBncmVhdGVyIHRoYW4gMTZLQiBhcmUgaW4gb3ZlcnNpemUgYmxvY2tzLiBUaGVy
ZWZvcmUsIHRoaXMgbWlzbWF0Y2ggY2FuIGxlYWQgdG8gY3Jhc2hlcyB3aGVuIAorICAgICAgICB0
aGUgY29sbGVjdG9yIHRyaWVzIHRvIHBlcmZvcm0gc29tZSBvcGVyYXRpb24gb24gYSBDb3BpZWRC
bG9jay4KKworICAgICAgICBUbyBhdm9pZCBhZGRpbmcgYW4gZXh0cmEgYnJhbmNoIHRvIHRoZSBp
bmxpbmUgYWxsb2NhdGlvbiBwYXRoIGluIHRoZSBKSVQsIHdlIHNob3VsZCBtYWtlIGl0IHNvIHRo
YXQgCisgICAgICAgIG92ZXJzaXplIGJsb2NrcyBhcmUgYWxsb2NhdGVkIG9uIHRoZSBzYW1lIGFs
aWdubWVudCBib3VuZGFyaWVzIHNvIHRoYXQgdGhlcmUgaXMgYSBzaW5nbGUgbWFzayB0byBmaW5k
IAorICAgICAgICB0aGUgYmxvY2sgaGVhZGVyIG9mIGFueSBDb3BpZWRCbG9jayAocmF0aGVyIHRo
YW4gdHdvLCBvbmUgZm9yIG5vcm1hbCBhbmQgb25lIGZvciBvdmVyc2l6ZSBibG9ja3MpLCBhbmQg
CisgICAgICAgIHdlIHNob3VsZCBmaWd1cmUgb3V0IGlmIGEgYmxvY2sgaXMgb3ZlcnNpemUgYnkg
c29tZSBvdGhlciBtZXRob2QgdGhhbiBqdXN0IHdoYXRldmVyIHRoZSBKU09iamVjdCBzYXlzIAor
ICAgICAgICBpdCBpcy4gT25lIHdheSB3ZSBjb3VsZCByZWNvcmQgdGhpcyBpbmZvIFJlZ2lvbiBv
ZiB0aGUgYmxvY2ssIHNpbmNlIHdlIGFsbG9jYXRlIGEgb25lLW9mZiBSZWdpb24gZm9yIAorICAg
ICAgICBvdmVyc2l6ZSBibG9ja3MuCisKKyAgICAgICAgKiBoZWFwL0Jsb2NrQWxsb2NhdG9yLmg6
CisgICAgICAgIChKU0M6OlJlZ2lvbjo6aXNDdXN0b21TaXplKTogCisgICAgICAgIChSZWdpb24p
OgorICAgICAgICAoSlNDOjpSZWdpb246OmNyZWF0ZUN1c3RvbVNpemUpOgorICAgICAgICAoSlND
OjpSZWdpb246OlJlZ2lvbik6CisgICAgICAgIChKU0M6OkJsb2NrQWxsb2NhdG9yOjpkZWFsbG9j
YXRlQ3VzdG9tU2l6ZSk6CisgICAgICAgICogaGVhcC9Db3BpZWRCbG9jay5oOgorICAgICAgICAo
Q29waWVkQmxvY2spOgorICAgICAgICAoSlNDOjpDb3BpZWRCbG9jazo6aXNPdmVyc2l6ZSk6IAor
ICAgICAgICAoSlNDKToKKyAgICAgICAgKiBoZWFwL0NvcGllZFNwYWNlLmNwcDoKKyAgICAgICAg
KEpTQzo6Q29waWVkU3BhY2U6OnRyeUFsbG9jYXRlT3ZlcnNpemUpOgorICAgICAgICAoSlNDOjpD
b3BpZWRTcGFjZTo6dHJ5UmVhbGxvY2F0ZSk6CisgICAgICAgIChKU0M6OkNvcGllZFNwYWNlOjp0
cnlSZWFsbG9jYXRlT3ZlcnNpemUpOgorICAgICAgICAqIGhlYXAvQ29waWVkU3BhY2UuaDoKKyAg
ICAgICAgKENvcGllZFNwYWNlKTogCisgICAgICAgICogaGVhcC9Db3BpZWRTcGFjZUlubGluZXMu
aDoKKyAgICAgICAgKEpTQzo6Q29waWVkU3BhY2U6OmNvbnRhaW5zKToKKyAgICAgICAgKEpTQzo6
Q29waWVkU3BhY2U6OnRyeUFsbG9jYXRlKToKKyAgICAgICAgKEpTQyk6CisgICAgICAgICogaGVh
cC9Db3B5VmlzaXRvci5oOgorICAgICAgICAoQ29weVZpc2l0b3IpOgorICAgICAgICAqIGhlYXAv
Q29weVZpc2l0b3JJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkNvcHlWaXNpdG9yOjpjaGVja0lm
U2hvdWxkQ29weSk6CisgICAgICAgIChKU0M6OkNvcHlWaXNpdG9yOjpkaWRDb3B5KToKKyAgICAg
ICAgKiBoZWFwL1Nsb3RWaXNpdG9ySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpTbG90VmlzaXRv
cjo6Y29weUxhdGVyKToKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0LmNwcDoKKyAgICAgICAg
KEpTQzo6SlNPYmplY3Q6OmNvcHlCdXR0ZXJmbHkpOgorCiAyMDEyLTEyLTE4ICBNaWNoYWVsIFNh
Ym9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgogCiAgICAgICAgIFtRdF0gRml4IHRoZSBBUk12NyBi
dWlsZCBhZnRlciByMTM3OTc2CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9CbG9j
a0FsbG9jYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Js
b2NrQWxsb2NhdG9yLmgJKHJldmlzaW9uIDEzODA0OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL0Jsb2NrQWxsb2NhdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTY4LDYgKzY4LDcgQEAg
cHVibGljOgogICAgIHNpemVfdCBibG9ja1NpemUoKSBjb25zdCB7IHJldHVybiBtX2Jsb2NrU2l6
ZTsgfQogICAgIGJvb2wgaXNGdWxsKCkgY29uc3QgeyByZXR1cm4gbV9ibG9ja3NJblVzZSA9PSBt
X3RvdGFsQmxvY2tzOyB9CiAgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gIW1fYmxv
Y2tzSW5Vc2U7IH0KKyAgICBib29sIGlzQ3VzdG9tU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1faXND
dXN0b21TaXplOyB9CiAKICAgICBEZWFkQmxvY2sqIGFsbG9jYXRlKCk7CiAgICAgdm9pZCBkZWFs
bG9jYXRlKHZvaWQqKTsKQEAgLTgxLDYgKzgyLDcgQEAgcHJpdmF0ZToKICAgICBzaXplX3QgbV90
b3RhbEJsb2NrczsKICAgICBzaXplX3QgbV9ibG9ja3NJblVzZTsKICAgICBzaXplX3QgbV9ibG9j
a1NpemU7CisgICAgYm9vbCBtX2lzQ3VzdG9tU2l6ZTsKICAgICBSZWdpb24qIG1fcHJldjsKICAg
ICBSZWdpb24qIG1fbmV4dDsKICAgICBEb3VibHlMaW5rZWRMaXN0PERlYWRCbG9jaz4gbV9kZWFk
QmxvY2tzOwpAQCAtMTAxLDcgKzEwMyw5IEBAIGlubGluZSBSZWdpb24qIFJlZ2lvbjo6Y3JlYXRl
Q3VzdG9tU2l6ZSgKICAgICBQYWdlQWxsb2NhdGlvbkFsaWduZWQgYWxsb2NhdGlvbiA9IFBhZ2VB
bGxvY2F0aW9uQWxpZ25lZDo6YWxsb2NhdGUoYmxvY2tTaXplLCBibG9ja0FsaWdubWVudCwgT1NB
bGxvY2F0b3I6OkpTR0NIZWFwUGFnZXMpOwogICAgIGlmICghc3RhdGljX2Nhc3Q8Ym9vbD4oYWxs
b2NhdGlvbikpCiAgICAgICAgIENSQVNIKCk7Ci0gICAgcmV0dXJuIG5ldyBSZWdpb24oYWxsb2Nh
dGlvbiwgYmxvY2tTaXplLCAxKTsKKyAgICBSZWdpb24qIHJlZ2lvbiA9IG5ldyBSZWdpb24oYWxs
b2NhdGlvbiwgYmxvY2tTaXplLCAxKTsKKyAgICByZWdpb24tPm1faXNDdXN0b21TaXplID0gdHJ1
ZTsKKyAgICByZXR1cm4gcmVnaW9uOwogfQogCiBpbmxpbmUgUmVnaW9uOjpSZWdpb24oUGFnZUFs
bG9jYXRpb25BbGlnbmVkJiBhbGxvY2F0aW9uLCBzaXplX3QgYmxvY2tTaXplLCBzaXplX3QgdG90
YWxCbG9ja3MpCkBAIC0xMTAsNiArMTE0LDcgQEAgaW5saW5lIFJlZ2lvbjo6UmVnaW9uKFBhZ2VB
bGxvY2F0aW9uQWxpZwogICAgICwgbV90b3RhbEJsb2Nrcyh0b3RhbEJsb2NrcykKICAgICAsIG1f
YmxvY2tzSW5Vc2UoMCkKICAgICAsIG1fYmxvY2tTaXplKGJsb2NrU2l6ZSkKKyAgICAsIG1faXND
dXN0b21TaXplKGZhbHNlKQogICAgICwgbV9wcmV2KDApCiAgICAgLCBtX25leHQoMCkKIHsKQEAg
LTMwMCw2ICszMDUsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogaW5saW5lIHZvaWQgQmxvY2tB
bGxvY2F0b3I6OmRlYWxsb2NhdGVDdXN0b21TaXplKFQqIGJsb2NrKQogewogICAgIFJlZ2lvbiog
cmVnaW9uID0gYmxvY2stPnJlZ2lvbigpOworICAgIEFTU0VSVChyZWdpb24tPmlzQ3VzdG9tU2l6
ZSgpKTsKICAgICByZWdpb24tPmRlYWxsb2NhdGUoYmxvY2spOwogICAgIGRlbGV0ZSByZWdpb247
CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db3BpZWRCbG9jay5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcGllZEJsb2NrLmgJKHJldmlz
aW9uIDEzODA0OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcGllZEJsb2NrLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTUwLDYgKzUwLDggQEAgcHVibGljOgogICAgIHZvaWQgcGluKCk7
CiAgICAgYm9vbCBpc1Bpbm5lZCgpOwogCisgICAgYm9vbCBpc092ZXJzaXplKCk7CisKICAgICB1
bnNpZ25lZCBsaXZlQnl0ZXMoKTsKICAgICB2b2lkIHJlcG9ydExpdmVCeXRlcyhKU0NlbGwqLCB1
bnNpZ25lZCk7CiAgICAgdm9pZCBkaWRTdXJ2aXZlR0MoKTsKQEAgLTE2OCw2ICsxNzAsMTEgQEAg
aW5saW5lIGJvb2wgQ29waWVkQmxvY2s6OmlzUGlubmVkKCkKICAgICByZXR1cm4gbV9pc1Bpbm5l
ZDsKIH0KIAoraW5saW5lIGJvb2wgQ29waWVkQmxvY2s6OmlzT3ZlcnNpemUoKQoreworICAgIHJl
dHVybiByZWdpb24oKS0+aXNDdXN0b21TaXplKCk7Cit9CisKIGlubGluZSB1bnNpZ25lZCBDb3Bp
ZWRCbG9jazo6bGl2ZUJ5dGVzKCkKIHsKICAgICByZXR1cm4gbV9saXZlQnl0ZXM7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db3BpZWRTcGFjZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29waWVkU3BhY2UuY3BwCShyZXZpc2lvbiAxMzgw
NDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db3BpZWRTcGFjZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTgxLDcgKzgxLDcgQEAgQ2hlY2tlZEJvb2xlYW4gQ29waWVkU3BhY2U6OnRy
eUFsbG9jYXRlTwogewogICAgIEFTU0VSVChpc092ZXJzaXplKGJ5dGVzKSk7CiAgICAgCi0gICAg
Q29waWVkQmxvY2sqIGJsb2NrID0gQ29waWVkQmxvY2s6OmNyZWF0ZShtX2hlYXAtPmJsb2NrQWxs
b2NhdG9yKCkuYWxsb2NhdGVDdXN0b21TaXplKHNpemVvZihDb3BpZWRCbG9jaykgKyBieXRlcywg
V1RGOjpwYWdlU2l6ZSgpKSk7CisgICAgQ29waWVkQmxvY2sqIGJsb2NrID0gQ29waWVkQmxvY2s6
OmNyZWF0ZShtX2hlYXAtPmJsb2NrQWxsb2NhdG9yKCkuYWxsb2NhdGVDdXN0b21TaXplKHNpemVv
ZihDb3BpZWRCbG9jaykgKyBieXRlcywgQ29waWVkQmxvY2s6OmJsb2NrU2l6ZSkpOwogICAgIG1f
b3ZlcnNpemVCbG9ja3MucHVzaChibG9jayk7CiAgICAgbV9ibG9ja0ZpbHRlci5hZGQocmVpbnRl
cnByZXRfY2FzdDxCaXRzPihibG9jaykpOwogICAgIG1fYmxvY2tTZXQuYWRkKGJsb2NrKTsKQEAg
LTEwNCw3ICsxMDQsNyBAQCBDaGVja2VkQm9vbGVhbiBDb3BpZWRTcGFjZTo6dHJ5UmVhbGxvY2F0
CiAgICAgdm9pZCogb2xkUHRyID0gKnB0cjsKICAgICBBU1NFUlQoIW1faGVhcC0+Z2xvYmFsRGF0
YSgpLT5pc0luaXRpYWxpemluZ09iamVjdCgpKTsKICAgICAKLSAgICBpZiAoaXNPdmVyc2l6ZShv
bGRTaXplKSB8fCBpc092ZXJzaXplKG5ld1NpemUpKQorICAgIGlmIChDb3BpZWRTcGFjZTo6Ymxv
Y2tGb3Iob2xkUHRyKS0+aXNPdmVyc2l6ZSgpIHx8IGlzT3ZlcnNpemUobmV3U2l6ZSkpCiAgICAg
ICAgIHJldHVybiB0cnlSZWFsbG9jYXRlT3ZlcnNpemUocHRyLCBvbGRTaXplLCBuZXdTaXplKTsK
ICAgICAKICAgICBpZiAobV9hbGxvY2F0b3IudHJ5UmVhbGxvY2F0ZShvbGRQdHIsIG9sZFNpemUs
IG5ld1NpemUpKQpAQCAtMTM1LDggKzEzNSw4IEBAIENoZWNrZWRCb29sZWFuIENvcGllZFNwYWNl
Ojp0cnlSZWFsbG9jYXQKIAogICAgIG1lbWNweShuZXdQdHIsIG9sZFB0ciwgb2xkU2l6ZSk7CiAK
LSAgICBpZiAoaXNPdmVyc2l6ZShvbGRTaXplKSkgewotICAgICAgICBDb3BpZWRCbG9jayogb2xk
QmxvY2sgPSBvdmVyc2l6ZUJsb2NrRm9yKG9sZFB0cik7CisgICAgQ29waWVkQmxvY2sqIG9sZEJs
b2NrID0gQ29waWVkU3BhY2U6OmJsb2NrRm9yKG9sZFB0cik7CisgICAgaWYgKG9sZEJsb2NrLT5p
c092ZXJzaXplKCkpIHsKICAgICAgICAgbV9vdmVyc2l6ZUJsb2Nrcy5yZW1vdmUob2xkQmxvY2sp
OwogICAgICAgICBtX2Jsb2NrU2V0LnJlbW92ZShvbGRCbG9jayk7CiAgICAgICAgIG1faGVhcC0+
YmxvY2tBbGxvY2F0b3IoKS5kZWFsbG9jYXRlQ3VzdG9tU2l6ZShDb3BpZWRCbG9jazo6ZGVzdHJv
eShvbGRCbG9jaykpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29waWVkU3Bh
Y2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db3BpZWRTcGFj
ZS5oCShyZXZpc2lvbiAxMzgwNDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db3Bp
ZWRTcGFjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC04Miw3ICs4Miw2IEBAIHB1YmxpYzoKIAogcHJp
dmF0ZToKICAgICBzdGF0aWMgYm9vbCBpc092ZXJzaXplKHNpemVfdCk7Ci0gICAgc3RhdGljIENv
cGllZEJsb2NrKiBvdmVyc2l6ZUJsb2NrRm9yKHZvaWQqIHB0cik7CiAKICAgICBKU19FWFBPUlRf
UFJJVkFURSBDaGVja2VkQm9vbGVhbiB0cnlBbGxvY2F0ZVNsb3dDYXNlKHNpemVfdCwgdm9pZCoq
KTsKICAgICBDaGVja2VkQm9vbGVhbiB0cnlBbGxvY2F0ZU92ZXJzaXplKHNpemVfdCwgdm9pZCoq
KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcGllZFNwYWNlSW5saW5lcy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcGllZFNwYWNlSW5s
aW5lcy5oCShyZXZpc2lvbiAxMzgwNDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9D
b3BpZWRTcGFjZUlubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtNDcsOSArNDcsOCBAQCBpbmxp
bmUgYm9vbCBDb3BpZWRTcGFjZTo6Y29udGFpbnModm9pZCogCiAgICAgICAgIHJlc3VsdCA9IGJs
b2NrOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAgYmxvY2sgPSBvdmVyc2l6ZUJs
b2NrRm9yKHB0cik7Ci0gICAgcmVzdWx0ID0gYmxvY2s7Ci0gICAgcmV0dXJuIGNvbnRhaW5zKGJs
b2NrKTsKKyAgICByZXN1bHQgPSAwOworICAgIHJldHVybiBmYWxzZTsKIH0KIAogaW5saW5lIHZv
aWQgQ29waWVkU3BhY2U6OnBpbihDb3BpZWRCbG9jayogYmxvY2spCkBAIC0xNTMsNyArMTUyLDcg
QEAgaW5saW5lIENoZWNrZWRCb29sZWFuIENvcGllZFNwYWNlOjp0cnlBbAogewogICAgIEFTU0VS
VCghbV9oZWFwLT5nbG9iYWxEYXRhKCktPmlzSW5pdGlhbGl6aW5nT2JqZWN0KCkpOwogCi0gICAg
aWYgKGlzT3ZlcnNpemUoYnl0ZXMpIHx8ICFtX2FsbG9jYXRvci50cnlBbGxvY2F0ZShieXRlcywg
b3V0UHRyKSkKKyAgICBpZiAoIW1fYWxsb2NhdG9yLnRyeUFsbG9jYXRlKGJ5dGVzLCBvdXRQdHIp
KQogICAgICAgICByZXR1cm4gdHJ5QWxsb2NhdGVTbG93Q2FzZShieXRlcywgb3V0UHRyKTsKICAg
ICAKICAgICBBU1NFUlQoKm91dFB0cik7CkBAIC0xNzAsMTEgKzE2OSw2IEBAIGlubGluZSBib29s
IENvcGllZFNwYWNlOjppc1Bpbm5lZCh2b2lkKiAKICAgICByZXR1cm4gYmxvY2tGb3IocHRyKS0+
bV9pc1Bpbm5lZDsKIH0KIAotaW5saW5lIENvcGllZEJsb2NrKiBDb3BpZWRTcGFjZTo6b3ZlcnNp
emVCbG9ja0Zvcih2b2lkKiBwdHIpCi17Ci0gICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Q29w
aWVkQmxvY2sqPihyZWludGVycHJldF9jYXN0PHNpemVfdD4ocHRyKSAmIFdURjo6cGFnZU1hc2so
KSk7Ci19Ci0KIGlubGluZSBDb3BpZWRCbG9jayogQ29waWVkU3BhY2U6OmJsb2NrRm9yKHZvaWQq
IHB0cikKIHsKICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxDb3BpZWRCbG9jayo+KHJlaW50
ZXJwcmV0X2Nhc3Q8c2l6ZV90PihwdHIpICYgc19ibG9ja01hc2spOwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvQ29weVZpc2l0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9Db3B5VmlzaXRvci5oCShyZXZpc2lvbiAxMzgwNDkpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db3B5VmlzaXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC00
NSw3ICs0NSw3IEBAIHB1YmxpYzoKICAgICAvLyBMb3ctbGV2ZWwgQVBJIGZvciBjb3B5aW5nLCBh
cHByb3ByaWF0ZSBmb3IgY2FzZXMgd2hlcmUgdGhlIG9iamVjdCdzIGhlYXAgcmVmZXJlbmNlcwog
ICAgIC8vIGFyZSBkaXNjb250aWd1b3VzIG9yIGlmIHRoZSBvYmplY3Qgb2NjdXJzIGZyZXF1ZW50
bHkgZW5vdWdoIHRoYXQgeW91IG5lZWQgdG8gZm9jdXMgb24KICAgICAvLyBwZXJmb3JtYW5jZS4g
VXNlIHRoaXMgd2l0aCBjYXJlIGFzIGl0IGlzIGVhc3kgdG8gc2hvb3QgeW91cnNlbGYgaW4gdGhl
IGZvb3QuCi0gICAgYm9vbCBjaGVja0lmU2hvdWxkQ29weSh2b2lkKiwgc2l6ZV90KTsKKyAgICBi
b29sIGNoZWNrSWZTaG91bGRDb3B5KHZvaWQqKTsKICAgICB2b2lkKiBhbGxvY2F0ZU5ld1NwYWNl
KHNpemVfdCk7CiAgICAgdm9pZCBkaWRDb3B5KHZvaWQqLCBzaXplX3QpOwogCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db3B5VmlzaXRvcklubGluZXMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db3B5VmlzaXRvcklubGluZXMuaAkocmV2aXNp
b24gMTM4MDQ5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29weVZpc2l0b3JJbmxp
bmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDE0ICs0MCwxMSBAQCBpbmxpbmUgdm9pZCBDb3B5
VmlzaXRvcjo6dmlzaXRDZWxsKEpTQ2VsCiAgICAgSlNPYmplY3Q6OmNvcHlCYWNraW5nU3RvcmUo
Y2VsbCwgKnRoaXMpOwogfQogCi1pbmxpbmUgYm9vbCBDb3B5VmlzaXRvcjo6Y2hlY2tJZlNob3Vs
ZENvcHkodm9pZCogb2xkUHRyLCBzaXplX3QgYnl0ZXMpCitpbmxpbmUgYm9vbCBDb3B5VmlzaXRv
cjo6Y2hlY2tJZlNob3VsZENvcHkodm9pZCogb2xkUHRyKQogewotICAgIGlmIChDb3BpZWRTcGFj
ZTo6aXNPdmVyc2l6ZShieXRlcykpCisgICAgQ29waWVkQmxvY2sqIGJsb2NrID0gQ29waWVkU3Bh
Y2U6OmJsb2NrRm9yKG9sZFB0cik7CisgICAgaWYgKGJsb2NrLT5pc092ZXJzaXplKCkgfHwgYmxv
Y2stPmlzUGlubmVkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmIChDb3BpZWRT
cGFjZTo6YmxvY2tGb3Iob2xkUHRyKS0+aXNQaW5uZWQoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTkyLDggKzg5LDggQEAgaW5saW5lIHZvaWQg
Q29weVZpc2l0b3I6OmRvbmVDb3B5aW5nKCkKIAogaW5saW5lIHZvaWQgQ29weVZpc2l0b3I6OmRp
ZENvcHkodm9pZCogcHRyLCBzaXplX3QgYnl0ZXMpCiB7Ci0gICAgQVNTRVJUKCFDb3BpZWRTcGFj
ZTo6aXNPdmVyc2l6ZShieXRlcykpOwogICAgIENvcGllZEJsb2NrKiBibG9jayA9IENvcGllZFNw
YWNlOjpibG9ja0ZvcihwdHIpOworICAgIEFTU0VSVCghYmxvY2stPmlzT3ZlcnNpemUoKSk7CiAg
ICAgQVNTRVJUKCFibG9jay0+aXNQaW5uZWQoKSk7CiAKICAgICBibG9jay0+ZGlkRXZhY3VhdGVC
eXRlcyhieXRlcyk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRv
cklubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90
VmlzaXRvcklubGluZXMuaAkocmV2aXNpb24gMTM4MDQ5KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvU2xvdFZpc2l0b3JJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTE2MywxMiAr
MTYzLDEyIEBAIGlubGluZSB2b2lkIFNsb3RWaXNpdG9yOjpkb25hdGVBbmREcmFpbigKIAogaW5s
aW5lIHZvaWQgU2xvdFZpc2l0b3I6OmNvcHlMYXRlcihKU0NlbGwqIG93bmVyLCB2b2lkKiBwdHIs
IHNpemVfdCBieXRlcykKIHsKLSAgICBpZiAoQ29waWVkU3BhY2U6OmlzT3ZlcnNpemUoYnl0ZXMp
KSB7Ci0gICAgICAgIG1fc2hhcmVkLm1fY29waWVkU3BhY2UtPnBpbihDb3BpZWRTcGFjZTo6b3Zl
cnNpemVCbG9ja0ZvcihwdHIpKTsKKyAgICBDb3BpZWRCbG9jayogYmxvY2sgPSBDb3BpZWRTcGFj
ZTo6YmxvY2tGb3IocHRyKTsKKyAgICBpZiAoYmxvY2stPmlzT3ZlcnNpemUoKSkgeworICAgICAg
ICBtX3NoYXJlZC5tX2NvcGllZFNwYWNlLT5waW4oYmxvY2spOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgQ29waWVkQmxvY2sqIGJsb2NrID0gQ29waWVkU3BhY2U6OmJsb2NrRm9yKHB0
cik7CiAgICAgaWYgKGJsb2NrLT5pc1Bpbm5lZCgpKQogICAgICAgICByZXR1cm47CiAKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAJKHJldmlzaW9uIDEz
ODA0OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTEwLDcgKzExMCw3IEBAIEFMV0FZU19JTkxJTkUgdm9pZCBKU09iamVj
dDo6Y29weUJ1dHRlcmYKICAgICAgICAgaW5kZXhpbmdQYXlsb2FkU2l6ZUluQnl0ZXMgPSAwOwog
ICAgIH0KICAgICBzaXplX3QgY2FwYWNpdHlJbkJ5dGVzID0gQnV0dGVyZmx5Ojp0b3RhbFNpemUo
cHJlQ2FwYWNpdHksIHByb3BlcnR5Q2FwYWNpdHksIGhhc0luZGV4aW5nSGVhZGVyLCBpbmRleGlu
Z1BheWxvYWRTaXplSW5CeXRlcyk7Ci0gICAgaWYgKHZpc2l0b3IuY2hlY2tJZlNob3VsZENvcHko
YnV0dGVyZmx5LT5iYXNlKHByZUNhcGFjaXR5LCBwcm9wZXJ0eUNhcGFjaXR5KSwgY2FwYWNpdHlJ
bkJ5dGVzKSkgeworICAgIGlmICh2aXNpdG9yLmNoZWNrSWZTaG91bGRDb3B5KGJ1dHRlcmZseS0+
YmFzZShwcmVDYXBhY2l0eSwgcHJvcGVydHlDYXBhY2l0eSkpKSB7CiAgICAgICAgIEJ1dHRlcmZs
eSogbmV3QnV0dGVyZmx5ID0gQnV0dGVyZmx5OjpjcmVhdGVVbmluaXRpYWxpemVkRHVyaW5nQ29s
bGVjdGlvbih2aXNpdG9yLCBwcmVDYXBhY2l0eSwgcHJvcGVydHlDYXBhY2l0eSwgaGFzSW5kZXhp
bmdIZWFkZXIsIGluZGV4aW5nUGF5bG9hZFNpemVJbkJ5dGVzKTsKICAgICAgICAgCiAgICAgICAg
IC8vIENvcHkgdGhlIHByb3BlcnRpZXMuCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>