<?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>127748</bug_id>
          
          <creation_ts>2014-01-27 18:11:08 -0800</creation_ts>
          <short_desc>FTL should support ArrayPush</short_desc>
          <delta_ts>2014-01-28 15:18:44 -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>
          <dependson>127754</dependson>
          <blocked>127746</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>mmirman</cc>
    
    <cc>msaboff</cc>
    
    <cc>nrotem</cc>
    
    <cc>oliver</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>972725</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-01-27 18:11:08 -0800</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972749</commentid>
    <comment_count>1</comment_count>
      <attachid>222398</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-01-27 19:47:18 -0800</bug_when>
    <thetext>Created attachment 222398
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972755</commentid>
    <comment_count>2</comment_count>
      <attachid>222398</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-01-27 20:05:10 -0800</bug_when>
    <thetext>Comment on attachment 222398
the patch

There&apos;s still some bug here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972759</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-01-27 20:24:07 -0800</bug_when>
    <thetext>This appears to be revealing a latent FTL bug.  Yuck.  I am investigating.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973039</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-01-28 12:45:22 -0800</bug_when>
    <thetext>It looks like a bug with arity fixup.  Those are the best!  I&apos;m still investigating.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973044</commentid>
    <comment_count>5</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-01-28 12:58:37 -0800</bug_when>
    <thetext>Aha!  The bug is that the arityFixup code uses regT3, which is a callee-save.  Hence if we have an FTL-&gt;FTL call that requires fixup, we will clobber things.

This should be an easy fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973087</commentid>
    <comment_count>6</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-01-28 14:12:38 -0800</bug_when>
    <thetext>Latent bugs fixed in http://trac.webkit.org/changeset/162958, coming back to working on this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973141</commentid>
    <comment_count>7</comment_count>
      <attachid>222503</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-01-28 15:11:08 -0800</bug_when>
    <thetext>Created attachment 222503
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973143</commentid>
    <comment_count>8</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-01-28 15:18:44 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/162969</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222398</attachid>
            <date>2014-01-27 19:47:18 -0800</date>
            <delta_ts>2014-01-28 15:11:08 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>9589</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTYyOTA1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBA
CisyMDE0LTAxLTI3ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
RlRMIHNob3VsZCBzdXBwb3J0IEFycmF5UHVzaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3NzQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBmdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oOgor
ICAgICAgICAoSlNDOjpGVEw6OkFic3RyYWN0SGVhcFJlcG9zaXRvcnk6OmZvckFycmF5VHlwZSk6
CisgICAgICAgICogZnRsL0ZUTENhcGFiaWxpdGllcy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6
Y2FuQ29tcGlsZSk6CisgICAgICAgICogZnRsL0ZUTEludHJpbnNpY1JlcG9zaXRvcnkuaDoKKyAg
ICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwOgorICAgICAgICAoSlNDOjpGVEw6Okxv
d2VyREZHVG9MTFZNOjpjb21waWxlTm9kZSk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdU
b0xMVk06OmNvbXBpbGVBcnJheVB1c2gpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9hcnJheS1w
dXNoLWNvbnRpZ3VvdXMuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKiB0ZXN0
cy9zdHJlc3MvYXJyYXktcHVzaC1kb3VibGUuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKwog
MjAxNC0wMS0yNyAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIERG
RyBBcnJheVB1c2ggaW1wbGVtZW50YXRpb24gZG9lcyBzdHJhbmdlIHRoaW5ncyB0byB0aGUgcmVz
dWx0IHJlZ2lzdGVyIG9uIHRoZSBzbG93IHBhdGgKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oCShyZXZpc2lvbiAx
NjI5MDUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9z
aXRvcnkuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogCiAjaWYgRU5BQkxFKEZU
TF9KSVQpCiAKKyNpbmNsdWRlICJERkdBcnJheU1vZGUuaCIKICNpbmNsdWRlICJGVExBYnN0cmFj
dEhlYXAuaCIKICNpbmNsdWRlICJJbmRleGluZ1R5cGUuaCIKIApAQCAtMTM2LDYgKzEzNywyNCBA
QCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgfQogICAgIH0KKyAgICAK
KyAgICBJbmRleGVkQWJzdHJhY3RIZWFwJiBmb3JBcnJheVR5cGUoREZHOjpBcnJheTo6VHlwZSB0
eXBlKQorICAgIHsKKyAgICAgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgIGNhc2UgREZHOjpB
cnJheTo6SW50MzI6CisgICAgICAgICAgICByZXR1cm4gaW5kZXhlZEludDMyUHJvcGVydGllczsK
KyAgICAgICAgY2FzZSBERkc6OkFycmF5OjpEb3VibGU6CisgICAgICAgICAgICByZXR1cm4gaW5k
ZXhlZERvdWJsZVByb3BlcnRpZXM7CisgICAgICAgIGNhc2UgREZHOjpBcnJheTo6Q29udGlndW91
czoKKyAgICAgICAgICAgIHJldHVybiBpbmRleGVkQ29udGlndW91c1Byb3BlcnRpZXM7CisgICAg
ICAgIGNhc2UgREZHOjpBcnJheTo6QXJyYXlTdG9yYWdlOgorICAgICAgICBjYXNlIERGRzo6QXJy
YXk6OlNsb3dQdXRBcnJheVN0b3JhZ2U6CisgICAgICAgICAgICByZXR1cm4gaW5kZXhlZEFycmF5
U3RvcmFnZVByb3BlcnRpZXM7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgcmV0dXJuIGluZGV4ZWRJbnQzMlBy
b3BlcnRpZXM7CisgICAgICAgIH0KKyAgICB9CiAKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNz
IEFic3RyYWN0SGVhcDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJp
bGl0aWVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENh
cGFiaWxpdGllcy5jcHAJKHJldmlzaW9uIDE2MjkwNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjAxLDYgKzIwMSwx
NiBAQCBpbmxpbmUgQ2FwYWJpbGl0eUxldmVsIGNhbkNvbXBpbGUoTm9kZSogCiAgICAgICAgICAg
ICByZXR1cm4gQ2Fubm90Q29tcGlsZTsKICAgICAgICAgfQogICAgICAgICBicmVhazsKKyAgICBj
YXNlIEFycmF5UHVzaDoKKyAgICAgICAgc3dpdGNoIChub2RlLT5hcnJheU1vZGUoKS50eXBlKCkp
IHsKKyAgICAgICAgY2FzZSBBcnJheTo6SW50MzI6CisgICAgICAgIGNhc2UgQXJyYXk6OkNvbnRp
Z3VvdXM6CisgICAgICAgIGNhc2UgQXJyYXk6OkRvdWJsZToKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIENhbm5vdENvbXBpbGU7CisgICAg
ICAgIH0KKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb21wYXJlRXE6CiAgICAgICAgIGlmIChu
b2RlLT5pc0JpbmFyeVVzZUtpbmQoSW50MzJVc2UpKQogICAgICAgICAgICAgYnJlYWs7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEludHJpbnNpY1JlcG9zaXRvcnkuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEludHJpbnNpY1JlcG9zaXRv
cnkuaAkocmV2aXNpb24gMTYyOTA1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJ
bnRyaW5zaWNSZXBvc2l0b3J5LmgJKHdvcmtpbmcgY29weSkKQEAgLTYzLDYgKzYzLDggQEAgbmFt
ZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgewogICAgIG1hY3JvKElfSklUT3BlcmF0aW9uX0VK
c3MsIGZ1bmN0aW9uVHlwZShpbnRQdHIsIGludFB0ciwgaW50UHRyKSkgXAogICAgIG1hY3JvKEpf
SklUT3BlcmF0aW9uX0UsIGZ1bmN0aW9uVHlwZShpbnQ2NCwgaW50UHRyKSkgXAogICAgIG1hY3Jv
KEpfSklUT3BlcmF0aW9uX0VBWiwgZnVuY3Rpb25UeXBlKGludDY0LCBpbnRQdHIsIGludFB0ciwg
aW50MzIpKSBcCisgICAgbWFjcm8oSl9KSVRPcGVyYXRpb25fRURBLCBmdW5jdGlvblR5cGUoaW50
NjQsIGludFB0ciwgZG91YmxlVHlwZSwgaW50UHRyKSkgXAorICAgIG1hY3JvKEpfSklUT3BlcmF0
aW9uX0VKQSwgZnVuY3Rpb25UeXBlKGludDY0LCBpbnRQdHIsIGludDY0LCBpbnRQdHIpKSBcCiAg
ICAgbWFjcm8oSl9KSVRPcGVyYXRpb25fRUpKLCBmdW5jdGlvblR5cGUoaW50NjQsIGludFB0ciwg
aW50NjQsIGludDY0KSkgXAogICAgIG1hY3JvKEpfSklUT3BlcmF0aW9uX0VKc3NaLCBmdW5jdGlv
blR5cGUoaW50NjQsIGludFB0ciwgaW50UHRyLCBpbnQzMikpIFwKICAgICBtYWNybyhKX0pJVE9w
ZXJhdGlvbl9FU3NpSkksIGZ1bmN0aW9uVHlwZShpbnQ2NCwgaW50UHRyLCBpbnRQdHIsIGludDY0
LCBpbnRQdHIpKSBcCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZH
VG9MTFZNLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExv
d2VyREZHVG9MTFZNLmNwcAkocmV2aXNpb24gMTYyOTA1KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQxNiw2ICs0
MTYsOSBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIFB1dEJ5VmFsRGlyZWN0OgogICAgICAgICAg
ICAgY29tcGlsZVB1dEJ5VmFsKCk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBB
cnJheVB1c2g6CisgICAgICAgICAgICBjb21waWxlQXJyYXlQdXNoKCk7CisgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBOZXdPYmplY3Q6CiAgICAgICAgICAgICBjb21waWxlTmV3T2Jq
ZWN0KCk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTIxODEsNiArMjE4NCw3NSBAQCBwcml2YXRl
OgogICAgICAgICB9CiAgICAgfQogICAgIAorICAgIHZvaWQgY29tcGlsZUFycmF5UHVzaCgpCisg
ICAgeworICAgICAgICBMVmFsdWUgYmFzZSA9IGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSk7Cisg
ICAgICAgIExWYWx1ZSBzdG9yYWdlID0gbG93U3RvcmFnZShtX25vZGUtPmNoaWxkMygpKTsKKyAg
ICAgICAgCisgICAgICAgIHN3aXRjaCAobV9ub2RlLT5hcnJheU1vZGUoKS50eXBlKCkpIHsKKyAg
ICAgICAgY2FzZSBBcnJheTo6SW50MzI6CisgICAgICAgIGNhc2UgQXJyYXk6OkNvbnRpZ3VvdXM6
CisgICAgICAgIGNhc2UgQXJyYXk6OkRvdWJsZTogeworICAgICAgICAgICAgTFZhbHVlIHZhbHVl
OworICAgICAgICAgICAgTFR5cGUgcmVmVHlwZTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAg
aWYgKG1fbm9kZS0+YXJyYXlNb2RlKCkudHlwZSgpICE9IEFycmF5OjpEb3VibGUpIHsKKyAgICAg
ICAgICAgICAgICB2YWx1ZSA9IGxvd0pTVmFsdWUobV9ub2RlLT5jaGlsZDIoKSwgTWFudWFsT3Bl
cmFuZFNwZWN1bGF0aW9uKTsKKyAgICAgICAgICAgICAgICBpZiAobV9ub2RlLT5hcnJheU1vZGUo
KS50eXBlKCkgPT0gQXJyYXk6OkludDMyKSB7CisgICAgICAgICAgICAgICAgICAgIEZUTF9UWVBF
X0NIRUNLKAorICAgICAgICAgICAgICAgICAgICAgICAganNWYWx1ZVZhbHVlKHZhbHVlKSwgbV9u
b2RlLT5jaGlsZDIoKSwgU3BlY0ludDMyLCBpc05vdEludDMyKHZhbHVlKSk7CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIHJlZlR5cGUgPSBtX291dC5yZWY2NDsKKyAgICAgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgdmFsdWUgPSBsb3dEb3VibGUobV9ub2RlLT5j
aGlsZDIoKSk7CisgICAgICAgICAgICAgICAgcmVmVHlwZSA9IG1fb3V0LnJlZkRvdWJsZTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgSW5kZXhlZEFic3RyYWN0SGVh
cCYgaGVhcCA9IG1faGVhcHMuZm9yQXJyYXlUeXBlKG1fbm9kZS0+YXJyYXlNb2RlKCkudHlwZSgp
KTsKKworICAgICAgICAgICAgTFZhbHVlIHByZXZMZW5ndGggPSBtX291dC5sb2FkMzIoc3RvcmFn
ZSwgbV9oZWFwcy5CdXR0ZXJmbHlfcHVibGljTGVuZ3RoKTsKKyAgICAgICAgICAgIAorICAgICAg
ICAgICAgTEJhc2ljQmxvY2sgZmFzdFBhdGggPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkFycmF5
UHVzaCBpbnQzMi9jb250aWd1b3VzIGZhc3QgcGF0aCIpKTsKKyAgICAgICAgICAgIExCYXNpY0Js
b2NrIHNsb3dQYXRoID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcnJheVB1c2ggaW50MzIvY29u
dGlndW91cyBzbG93IHBhdGgiKSk7CisgICAgICAgICAgICBMQmFzaWNCbG9jayBjb250aW51YXRp
b24gPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkFycmF5UHVzaCBpbnQzMi9jb250aWd1b3VzIGNv
bnRpbnVhdGlvbiIpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbV9vdXQuYnJhbmNoKAor
ICAgICAgICAgICAgICAgIG1fb3V0LmFib3ZlT3JFcXVhbCgKKyAgICAgICAgICAgICAgICAgICAg
cHJldkxlbmd0aCwgbV9vdXQubG9hZDMyKHN0b3JhZ2UsIG1faGVhcHMuQnV0dGVyZmx5X3ZlY3Rv
ckxlbmd0aCkpLAorICAgICAgICAgICAgICAgIHNsb3dQYXRoLCBmYXN0UGF0aCk7CisgICAgICAg
ICAgICAKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8o
ZmFzdFBhdGgsIHNsb3dQYXRoKTsKKyAgICAgICAgICAgIG1fb3V0LnN0b3JlKAorICAgICAgICAg
ICAgICAgIHZhbHVlLAorICAgICAgICAgICAgICAgIG1fb3V0LmJhc2VJbmRleChoZWFwLCBzdG9y
YWdlLCBtX291dC56ZXJvRXh0KHByZXZMZW5ndGgsIG1fb3V0LmludFB0cikpLAorICAgICAgICAg
ICAgICAgIHJlZlR5cGUpOworICAgICAgICAgICAgTFZhbHVlIG5ld0xlbmd0aCA9IG1fb3V0LmFk
ZChwcmV2TGVuZ3RoLCBtX291dC5pbnQzMk9uZSk7CisgICAgICAgICAgICBtX291dC5zdG9yZTMy
KG5ld0xlbmd0aCwgc3RvcmFnZSwgbV9oZWFwcy5CdXR0ZXJmbHlfcHVibGljTGVuZ3RoKTsKKyAg
ICAgICAgICAgIAorICAgICAgICAgICAgVmFsdWVGcm9tQmxvY2sgZmFzdFJlc3VsdCA9IG1fb3V0
LmFuY2hvcihib3hJbnQzMihuZXdMZW5ndGgpKTsKKyAgICAgICAgICAgIG1fb3V0Lmp1bXAoY29u
dGludWF0aW9uKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oc2xv
d1BhdGgsIGNvbnRpbnVhdGlvbik7CisgICAgICAgICAgICBMVmFsdWUgb3BlcmF0aW9uOworICAg
ICAgICAgICAgaWYgKG1fbm9kZS0+YXJyYXlNb2RlKCkudHlwZSgpICE9IEFycmF5OjpEb3VibGUp
CisgICAgICAgICAgICAgICAgb3BlcmF0aW9uID0gbV9vdXQub3BlcmF0aW9uKG9wZXJhdGlvbkFy
cmF5UHVzaCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgb3BlcmF0aW9uID0g
bV9vdXQub3BlcmF0aW9uKG9wZXJhdGlvbkFycmF5UHVzaERvdWJsZSk7CisgICAgICAgICAgICBW
YWx1ZUZyb21CbG9jayBzbG93UmVzdWx0ID0gbV9vdXQuYW5jaG9yKAorICAgICAgICAgICAgICAg
IHZtQ2FsbChvcGVyYXRpb24sIG1fY2FsbEZyYW1lLCB2YWx1ZSwgYmFzZSkpOworICAgICAgICAg
ICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOworICAgICAgICAgICAgCisgICAgICAgICAgICBt
X291dC5hcHBlbmRUbyhjb250aW51YXRpb24sIGxhc3ROZXh0KTsKKyAgICAgICAgICAgIHNldEpT
VmFsdWUobV9vdXQucGhpKG1fb3V0LmludDY0LCBmYXN0UmVzdWx0LCBzbG93UmVzdWx0KSk7Cisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICBkZWZh
dWx0OgorICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKyAgICAKICAgICB2b2lkIGNvbXBpbGVOZXdP
YmplY3QoKQogICAgIHsKICAgICAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBtX25vZGUtPnN0
cnVjdHVyZSgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9hcnJh
eS1wdXNoLWNvbnRpZ3VvdXMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy9hcnJheS1wdXNoLWNvbnRpZ3VvdXMuanMJKHJldmlzaW9uIDApCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2FycmF5LXB1c2gtY29udGlndW91cy5q
cwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE4IEBACitmdW5jdGlvbiBmb28oKSB7CisgICAg
dmFyIGFycmF5ID0gW107CisgICAgdmFyIHJlc3VsdCA9IFtdOworICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgNDI7ICsraSkKKyAgICAgICAgcmVzdWx0LnB1c2goYXJyYXkucHVzaCgiaGVsbG8iKSk7
CisgICAgcmV0dXJuIFthcnJheSwgcmVzdWx0XTsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZm9y
ICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28oKTsK
KyAgICBpZiAocmVzdWx0WzBdLnRvU3RyaW5nKCkgIT0gImhlbGxvLGhlbGxvLGhlbGxvLGhlbGxv
LGhlbGxvLGhlbGxvLGhlbGxvLGhlbGxvLGhlbGxvLGhlbGxvLGhlbGxvLGhlbGxvLGhlbGxvLGhl
bGxvLGhlbGxvLGhlbGxvLGhlbGxvLGhlbGxvLGhlbGxvLGhlbGxvLGhlbGxvLGhlbGxvLGhlbGxv
LGhlbGxvLGhlbGxvLGhlbGxvLGhlbGxvLGhlbGxvLGhlbGxvLGhlbGxvLGhlbGxvLGhlbGxvLGhl
bGxvLGhlbGxvLGhlbGxvLGhlbGxvLGhlbGxvLGhlbGxvLGhlbGxvLGhlbGxvLGhlbGxvLGhlbGxv
IikKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgYXJyYXk6ICIgKyByZXN1bHRbMF07CisgICAg
aWYgKHJlc3VsdFsxXS50b1N0cmluZygpICE9ICIxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwx
MywxNCwxNSwxNiwxNywxOCwxOSwyMCwyMSwyMiwyMywyNCwyNSwyNiwyNywyOCwyOSwzMCwzMSwz
MiwzMywzNCwzNSwzNiwzNywzOCwzOSw0MCw0MSw0MiIpCisgICAgICAgIHRocm93ICJFcnJvcjog
YmFkIGFycmF5OiAiICsgcmVzdWx0WzFdOworfQorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL2FycmF5LXB1c2gtZG91YmxlLmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvYXJyYXktcHVzaC1kb3VibGUuanMJKHJldmlz
aW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2FycmF5LXB1c2gt
ZG91YmxlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTggQEAKK2Z1bmN0aW9uIGZvbygp
IHsKKyAgICB2YXIgYXJyYXkgPSBbXTsKKyAgICB2YXIgcmVzdWx0ID0gW107CisgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCA0MjsgKytpKQorICAgICAgICByZXN1bHQucHVzaChhcnJheS5wdXNoKDcu
NSAtIGkpKTsKKyAgICByZXR1cm4gW2FycmF5LCByZXN1bHRdOworfQorCitub0lubGluZShmb28p
OworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9
IGZvbygpOworICAgIGlmIChyZXN1bHRbMF0udG9TdHJpbmcoKSAhPSAiNy41LDYuNSw1LjUsNC41
LDMuNSwyLjUsMS41LDAuNSwtMC41LC0xLjUsLTIuNSwtMy41LC00LjUsLTUuNSwtNi41LC03LjUs
LTguNSwtOS41LC0xMC41LC0xMS41LC0xMi41LC0xMy41LC0xNC41LC0xNS41LC0xNi41LC0xNy41
LC0xOC41LC0xOS41LC0yMC41LC0yMS41LC0yMi41LC0yMy41LC0yNC41LC0yNS41LC0yNi41LC0y
Ny41LC0yOC41LC0yOS41LC0zMC41LC0zMS41LC0zMi41LC0zMy41IikKKyAgICAgICAgdGhyb3cg
IkVycm9yOiBiYWQgYXJyYXk6ICIgKyByZXN1bHRbMF07CisgICAgaWYgKHJlc3VsdFsxXS50b1N0
cmluZygpICE9ICIxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNSwxNiwxNywxOCwx
OSwyMCwyMSwyMiwyMywyNCwyNSwyNiwyNywyOCwyOSwzMCwzMSwzMiwzMywzNCwzNSwzNiwzNywz
OCwzOSw0MCw0MSw0MiIpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIGFycmF5OiAiICsgcmVz
dWx0WzFdOworfQorCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222503</attachid>
            <date>2014-01-28 15:11:08 -0800</date>
            <delta_ts>2014-01-28 15:12:01 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>12421</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTYyOTU4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBA
CisyMDE0LTAxLTI3ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
RlRMIHNob3VsZCBzdXBwb3J0IEFycmF5UHVzaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3NzQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBmdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oOgor
ICAgICAgICAoSlNDOjpGVEw6OkFic3RyYWN0SGVhcFJlcG9zaXRvcnk6OmZvckFycmF5VHlwZSk6
CisgICAgICAgICogZnRsL0ZUTENhcGFiaWxpdGllcy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6
Y2FuQ29tcGlsZSk6CisgICAgICAgICogZnRsL0ZUTEludHJpbnNpY1JlcG9zaXRvcnkuaDoKKyAg
ICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwOgorICAgICAgICAoSlNDOjpGVEw6Okxv
d2VyREZHVG9MTFZNOjpjb21waWxlTm9kZSk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdU
b0xMVk06OmNvbXBpbGVBcnJheVB1c2gpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9hcnJheS1w
dXNoLWNvbnRpZ3VvdXMuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKiB0ZXN0
cy9zdHJlc3MvYXJyYXktcHVzaC1kb3VibGUuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKwog
MjAxNC0wMS0yOCAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIEFy
aXR5IGZpeHVwIGNsb2JiZXJzIGNhbGxlZS1zYXZlcywgY2F1c2luZyBGVEwtPkZUTCBhcml0eSBm
aXhlZC11cCBjYWxscyB0byBjb3JydXB0IHN0YXRlCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaAkocmV2aXNpb24g
MTYyOTU4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBv
c2l0b3J5LmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2lmIEVOQUJMRShG
VExfSklUKQogCisjaW5jbHVkZSAiREZHQXJyYXlNb2RlLmgiCiAjaW5jbHVkZSAiRlRMQWJzdHJh
Y3RIZWFwLmgiCiAjaW5jbHVkZSAiSW5kZXhpbmdUeXBlLmgiCiAKQEAgLTEzNiw2ICsxMzcsMjQg
QEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0KICAgICB9CisgICAg
CisgICAgSW5kZXhlZEFic3RyYWN0SGVhcCYgZm9yQXJyYXlUeXBlKERGRzo6QXJyYXk6OlR5cGUg
dHlwZSkKKyAgICB7CisgICAgICAgIHN3aXRjaCAodHlwZSkgeworICAgICAgICBjYXNlIERGRzo6
QXJyYXk6OkludDMyOgorICAgICAgICAgICAgcmV0dXJuIGluZGV4ZWRJbnQzMlByb3BlcnRpZXM7
CisgICAgICAgIGNhc2UgREZHOjpBcnJheTo6RG91YmxlOgorICAgICAgICAgICAgcmV0dXJuIGlu
ZGV4ZWREb3VibGVQcm9wZXJ0aWVzOworICAgICAgICBjYXNlIERGRzo6QXJyYXk6OkNvbnRpZ3Vv
dXM6CisgICAgICAgICAgICByZXR1cm4gaW5kZXhlZENvbnRpZ3VvdXNQcm9wZXJ0aWVzOworICAg
ICAgICBjYXNlIERGRzo6QXJyYXk6OkFycmF5U3RvcmFnZToKKyAgICAgICAgY2FzZSBERkc6OkFy
cmF5OjpTbG93UHV0QXJyYXlTdG9yYWdlOgorICAgICAgICAgICAgcmV0dXJuIGluZGV4ZWRBcnJh
eVN0b3JhZ2VQcm9wZXJ0aWVzOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgUkVMRUFT
RV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIHJldHVybiBpbmRleGVkSW50MzJQ
cm9wZXJ0aWVzOworICAgICAgICB9CisgICAgfQogCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFz
cyBBYnN0cmFjdEhlYXA7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFi
aWxpdGllcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExD
YXBhYmlsaXRpZXMuY3BwCShyZXZpc2lvbiAxNjI5NTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwMSw2ICsyMDEs
MTYgQEAgaW5saW5lIENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxlKE5vZGUqIAogICAgICAgICAg
ICAgcmV0dXJuIENhbm5vdENvbXBpbGU7CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBBcnJheVB1c2g6CisgICAgICAgIHN3aXRjaCAobm9kZS0+YXJyYXlNb2RlKCkudHlwZSgp
KSB7CisgICAgICAgIGNhc2UgQXJyYXk6OkludDMyOgorICAgICAgICBjYXNlIEFycmF5OjpDb250
aWd1b3VzOgorICAgICAgICBjYXNlIEFycmF5OjpEb3VibGU6CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiBDYW5ub3RDb21waWxlOworICAg
ICAgICB9CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29tcGFyZUVxOgogICAgICAgICBpZiAo
bm9kZS0+aXNCaW5hcnlVc2VLaW5kKEludDMyVXNlKSkKICAgICAgICAgICAgIGJyZWFrOwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbnRyaW5zaWNSZXBvc2l0b3J5LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbnRyaW5zaWNSZXBvc2l0
b3J5LmgJKHJldmlzaW9uIDE2Mjk1OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
SW50cmluc2ljUmVwb3NpdG9yeS5oCSh3b3JraW5nIGNvcHkpCkBAIC02Myw2ICs2Myw4IEBAIG5h
bWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKICAgICBtYWNybyhJX0pJVE9wZXJhdGlvbl9F
SnNzLCBmdW5jdGlvblR5cGUoaW50UHRyLCBpbnRQdHIsIGludFB0cikpIFwKICAgICBtYWNybyhK
X0pJVE9wZXJhdGlvbl9FLCBmdW5jdGlvblR5cGUoaW50NjQsIGludFB0cikpIFwKICAgICBtYWNy
byhKX0pJVE9wZXJhdGlvbl9FQVosIGZ1bmN0aW9uVHlwZShpbnQ2NCwgaW50UHRyLCBpbnRQdHIs
IGludDMyKSkgXAorICAgIG1hY3JvKEpfSklUT3BlcmF0aW9uX0VEQSwgZnVuY3Rpb25UeXBlKGlu
dDY0LCBpbnRQdHIsIGRvdWJsZVR5cGUsIGludFB0cikpIFwKKyAgICBtYWNybyhKX0pJVE9wZXJh
dGlvbl9FSkEsIGZ1bmN0aW9uVHlwZShpbnQ2NCwgaW50UHRyLCBpbnQ2NCwgaW50UHRyKSkgXAog
ICAgIG1hY3JvKEpfSklUT3BlcmF0aW9uX0VKSiwgZnVuY3Rpb25UeXBlKGludDY0LCBpbnRQdHIs
IGludDY0LCBpbnQ2NCkpIFwKICAgICBtYWNybyhKX0pJVE9wZXJhdGlvbl9FSnNzWiwgZnVuY3Rp
b25UeXBlKGludDY0LCBpbnRQdHIsIGludFB0ciwgaW50MzIpKSBcCiAgICAgbWFjcm8oSl9KSVRP
cGVyYXRpb25fRVNzaUpJLCBmdW5jdGlvblR5cGUoaW50NjQsIGludFB0ciwgaW50UHRyLCBpbnQ2
NCwgaW50UHRyKSkgXApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRG
R1RvTExWTS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExM
b3dlckRGR1RvTExWTS5jcHAJKHJldmlzaW9uIDE2Mjk1OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MTYsNiAr
NDE2LDkgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBQdXRCeVZhbERpcmVjdDoKICAgICAgICAg
ICAgIGNvbXBpbGVQdXRCeVZhbCgpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
QXJyYXlQdXNoOgorICAgICAgICAgICAgY29tcGlsZUFycmF5UHVzaCgpOworICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIGNhc2UgTmV3T2JqZWN0OgogICAgICAgICAgICAgY29tcGlsZU5ld09i
amVjdCgpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0yMTgxLDYgKzIxODQsMTAyIEBAIHByaXZh
dGU6CiAgICAgICAgIH0KICAgICB9CiAgICAgCisgICAgdm9pZCBjb21waWxlQXJyYXlQdXNoKCkK
KyAgICB7CisgICAgICAgIExWYWx1ZSBiYXNlID0gbG93Q2VsbChtX25vZGUtPmNoaWxkMSgpKTsK
KyAgICAgICAgTFZhbHVlIHN0b3JhZ2UgPSBsb3dTdG9yYWdlKG1fbm9kZS0+Y2hpbGQzKCkpOwor
ICAgICAgICAKKyAgICAgICAgc3dpdGNoIChtX25vZGUtPmFycmF5TW9kZSgpLnR5cGUoKSkgewor
ICAgICAgICBjYXNlIEFycmF5OjpJbnQzMjoKKyAgICAgICAgY2FzZSBBcnJheTo6Q29udGlndW91
czoKKyAgICAgICAgY2FzZSBBcnJheTo6RG91YmxlOiB7CisgICAgICAgICAgICBpZiAodHJ1ZSkg
eworICAgICAgICAgICAgICAgIExWYWx1ZSB2YWx1ZTsKKyAgICAgICAgICAgICAgICBpZiAobV9u
b2RlLT5hcnJheU1vZGUoKS50eXBlKCkgIT0gQXJyYXk6OkRvdWJsZSkgeworICAgICAgICAgICAg
ICAgICAgICB2YWx1ZSA9IGxvd0pTVmFsdWUobV9ub2RlLT5jaGlsZDIoKSwgTWFudWFsT3BlcmFu
ZFNwZWN1bGF0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1fbm9kZS0+YXJyYXlNb2Rl
KCkudHlwZSgpID09IEFycmF5OjpJbnQzMikgeworICAgICAgICAgICAgICAgICAgICAgICAgRlRM
X1RZUEVfQ0hFQ0soCisgICAgICAgICAgICAgICAgICAgICAgICAgICAganNWYWx1ZVZhbHVlKHZh
bHVlKSwgbV9ub2RlLT5jaGlsZDIoKSwgU3BlY0ludDMyLCBpc05vdEludDMyKHZhbHVlKSk7Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgICAgICAgICB2YWx1ZSA9IGxvd0RvdWJsZShtX25vZGUtPmNoaWxkMigpKTsKKyAgICAgICAg
ICAgICAgICAgICAgRlRMX1RZUEVfQ0hFQ0soCisgICAgICAgICAgICAgICAgICAgICAgICBkb3Vi
bGVWYWx1ZSh2YWx1ZSksIG1fbm9kZS0+Y2hpbGQyKCksIFNwZWNGdWxsUmVhbE51bWJlciwKKyAg
ICAgICAgICAgICAgICAgICAgICAgIG1fb3V0LmRvdWJsZU5vdEVxdWFsT3JVbm9yZGVyZWQodmFs
dWUsIHZhbHVlKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAg
ICAgICAgICAgIExWYWx1ZSBvcGVyYXRpb247CisgICAgICAgICAgICAgICAgaWYgKG1fbm9kZS0+
YXJyYXlNb2RlKCkudHlwZSgpICE9IEFycmF5OjpEb3VibGUpCisgICAgICAgICAgICAgICAgICAg
IG9wZXJhdGlvbiA9IG1fb3V0Lm9wZXJhdGlvbihvcGVyYXRpb25BcnJheVB1c2gpOworICAgICAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uID0gbV9vdXQub3Bl
cmF0aW9uKG9wZXJhdGlvbkFycmF5UHVzaERvdWJsZSk7CisgICAgICAgICAgICAgICAgc2V0SlNW
YWx1ZSh2bUNhbGwob3BlcmF0aW9uLCBtX2NhbGxGcmFtZSwgdmFsdWUsIGJhc2UpKTsKKyAgICAg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAg
ICAgIExWYWx1ZSB2YWx1ZTsKKyAgICAgICAgICAgIExUeXBlIHJlZlR5cGU7CisgICAgICAgICAg
ICAKKyAgICAgICAgICAgIGlmIChtX25vZGUtPmFycmF5TW9kZSgpLnR5cGUoKSAhPSBBcnJheTo6
RG91YmxlKSB7CisgICAgICAgICAgICAgICAgdmFsdWUgPSBsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hp
bGQyKCksIE1hbnVhbE9wZXJhbmRTcGVjdWxhdGlvbik7CisgICAgICAgICAgICAgICAgaWYgKG1f
bm9kZS0+YXJyYXlNb2RlKCkudHlwZSgpID09IEFycmF5OjpJbnQzMikgeworICAgICAgICAgICAg
ICAgICAgICBGVExfVFlQRV9DSEVDSygKKyAgICAgICAgICAgICAgICAgICAgICAgIGpzVmFsdWVW
YWx1ZSh2YWx1ZSksIG1fbm9kZS0+Y2hpbGQyKCksIFNwZWNJbnQzMiwgaXNOb3RJbnQzMih2YWx1
ZSkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZWZUeXBlID0gbV9vdXQu
cmVmNjQ7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHZhbHVlID0gbG93
RG91YmxlKG1fbm9kZS0+Y2hpbGQyKCkpOworICAgICAgICAgICAgICAgIEZUTF9UWVBFX0NIRUNL
KAorICAgICAgICAgICAgICAgICAgICBkb3VibGVWYWx1ZSh2YWx1ZSksIG1fbm9kZS0+Y2hpbGQy
KCksIFNwZWNGdWxsUmVhbE51bWJlciwKKyAgICAgICAgICAgICAgICAgICAgbV9vdXQuZG91Ymxl
Tm90RXF1YWxPclVub3JkZXJlZCh2YWx1ZSwgdmFsdWUpKTsKKyAgICAgICAgICAgICAgICByZWZU
eXBlID0gbV9vdXQucmVmRG91YmxlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAg
ICAgICAgICBJbmRleGVkQWJzdHJhY3RIZWFwJiBoZWFwID0gbV9oZWFwcy5mb3JBcnJheVR5cGUo
bV9ub2RlLT5hcnJheU1vZGUoKS50eXBlKCkpOworCisgICAgICAgICAgICBMVmFsdWUgcHJldkxl
bmd0aCA9IG1fb3V0LmxvYWQzMihzdG9yYWdlLCBtX2hlYXBzLkJ1dHRlcmZseV9wdWJsaWNMZW5n
dGgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBMQmFzaWNCbG9jayBmYXN0UGF0aCA9IEZU
TF9ORVdfQkxPQ0sobV9vdXQsICgiQXJyYXlQdXNoIGludDMyL2NvbnRpZ3VvdXMgZmFzdCBwYXRo
IikpOworICAgICAgICAgICAgTEJhc2ljQmxvY2sgc2xvd1BhdGggPSBGVExfTkVXX0JMT0NLKG1f
b3V0LCAoIkFycmF5UHVzaCBpbnQzMi9jb250aWd1b3VzIHNsb3cgcGF0aCIpKTsKKyAgICAgICAg
ICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJy
YXlQdXNoIGludDMyL2NvbnRpZ3VvdXMgY29udGludWF0aW9uIikpOworICAgICAgICAgICAgCisg
ICAgICAgICAgICBtX291dC5icmFuY2goCisgICAgICAgICAgICAgICAgbV9vdXQuYWJvdmVPckVx
dWFsKAorICAgICAgICAgICAgICAgICAgICBwcmV2TGVuZ3RoLCBtX291dC5sb2FkMzIoc3RvcmFn
ZSwgbV9oZWFwcy5CdXR0ZXJmbHlfdmVjdG9yTGVuZ3RoKSksCisgICAgICAgICAgICAgICAgc2xv
d1BhdGgsIGZhc3RQYXRoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgTEJhc2ljQmxvY2sg
bGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhmYXN0UGF0aCwgc2xvd1BhdGgpOworICAgICAgICAg
ICAgbV9vdXQuc3RvcmUoCisgICAgICAgICAgICAgICAgdmFsdWUsCisgICAgICAgICAgICAgICAg
bV9vdXQuYmFzZUluZGV4KGhlYXAsIHN0b3JhZ2UsIG1fb3V0Lnplcm9FeHQocHJldkxlbmd0aCwg
bV9vdXQuaW50UHRyKSksCisgICAgICAgICAgICAgICAgcmVmVHlwZSk7CisgICAgICAgICAgICBM
VmFsdWUgbmV3TGVuZ3RoID0gbV9vdXQuYWRkKHByZXZMZW5ndGgsIG1fb3V0LmludDMyT25lKTsK
KyAgICAgICAgICAgIG1fb3V0LnN0b3JlMzIobmV3TGVuZ3RoLCBzdG9yYWdlLCBtX2hlYXBzLkJ1
dHRlcmZseV9wdWJsaWNMZW5ndGgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBWYWx1ZUZy
b21CbG9jayBmYXN0UmVzdWx0ID0gbV9vdXQuYW5jaG9yKGJveEludDMyKG5ld0xlbmd0aCkpOwor
ICAgICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOworICAgICAgICAgICAgCisgICAg
ICAgICAgICBtX291dC5hcHBlbmRUbyhzbG93UGF0aCwgY29udGludWF0aW9uKTsKKyAgICAgICAg
ICAgIExWYWx1ZSBvcGVyYXRpb247CisgICAgICAgICAgICBpZiAobV9ub2RlLT5hcnJheU1vZGUo
KS50eXBlKCkgIT0gQXJyYXk6OkRvdWJsZSkKKyAgICAgICAgICAgICAgICBvcGVyYXRpb24gPSBt
X291dC5vcGVyYXRpb24ob3BlcmF0aW9uQXJyYXlQdXNoKTsKKyAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICBvcGVyYXRpb24gPSBtX291dC5vcGVyYXRpb24ob3BlcmF0aW9uQXJyYXlQ
dXNoRG91YmxlKTsKKyAgICAgICAgICAgIFZhbHVlRnJvbUJsb2NrIHNsb3dSZXN1bHQgPSBtX291
dC5hbmNob3IoCisgICAgICAgICAgICAgICAgdm1DYWxsKG9wZXJhdGlvbiwgbV9jYWxsRnJhbWUs
IHZhbHVlLCBiYXNlKSk7CisgICAgICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7Cisg
ICAgICAgICAgICAKKyAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlvbiwgbGFz
dE5leHQpOworICAgICAgICAgICAgc2V0SlNWYWx1ZShtX291dC5waGkobV9vdXQuaW50NjQsIGZh
c3RSZXN1bHQsIHNsb3dSZXN1bHQpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
ICAgICAgICAgICAgCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBSRUxFQVNFX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQor
ICAgIAogICAgIHZvaWQgY29tcGlsZU5ld09iamVjdCgpCiAgICAgewogICAgICAgICBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSA9IG1fbm9kZS0+c3RydWN0dXJlKCk7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvc3RyZXNzL2FycmF5LXB1c2gtY29udGlndW91cy5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2FycmF5LXB1c2gtY29udGln
dW91cy5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJl
c3MvYXJyYXktcHVzaC1jb250aWd1b3VzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTgg
QEAKK2Z1bmN0aW9uIGZvbygpIHsKKyAgICB2YXIgYXJyYXkgPSBbXTsKKyAgICB2YXIgcmVzdWx0
ID0gW107CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCA0MjsgKytpKQorICAgICAgICByZXN1bHQu
cHVzaChhcnJheS5wdXNoKCJoZWxsbyIpKTsKKyAgICByZXR1cm4gW2FycmF5LCByZXN1bHRdOwor
fQorCitub0lubGluZShmb28pOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7
CisgICAgdmFyIHJlc3VsdCA9IGZvbygpOworICAgIGlmIChyZXN1bHRbMF0udG9TdHJpbmcoKSAh
PSAiaGVsbG8saGVsbG8saGVsbG8saGVsbG8saGVsbG8saGVsbG8saGVsbG8saGVsbG8saGVsbG8s
aGVsbG8saGVsbG8saGVsbG8saGVsbG8saGVsbG8saGVsbG8saGVsbG8saGVsbG8saGVsbG8saGVs
bG8saGVsbG8saGVsbG8saGVsbG8saGVsbG8saGVsbG8saGVsbG8saGVsbG8saGVsbG8saGVsbG8s
aGVsbG8saGVsbG8saGVsbG8saGVsbG8saGVsbG8saGVsbG8saGVsbG8saGVsbG8saGVsbG8saGVs
bG8saGVsbG8saGVsbG8saGVsbG8saGVsbG8iKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCBh
cnJheTogIiArIHJlc3VsdFswXTsKKyAgICBpZiAocmVzdWx0WzFdLnRvU3RyaW5nKCkgIT0gIjEs
MiwzLDQsNSw2LDcsOCw5LDEwLDExLDEyLDEzLDE0LDE1LDE2LDE3LDE4LDE5LDIwLDIxLDIyLDIz
LDI0LDI1LDI2LDI3LDI4LDI5LDMwLDMxLDMyLDMzLDM0LDM1LDM2LDM3LDM4LDM5LDQwLDQxLDQy
IikKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgYXJyYXk6ICIgKyByZXN1bHRbMV07Cit9CisK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvYXJyYXktcHVzaC1kb3Vi
bGUtdGhlbi1uYW4uanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L3N0cmVzcy9hcnJheS1wdXNoLWRvdWJsZS10aGVuLW5hbi5qcwkocmV2aXNpb24gMCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvYXJyYXktcHVzaC1kb3VibGUtdGhlbi1u
YW4uanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMyBAQAorZnVuY3Rpb24gZm9vKHgpIHsK
KyAgICB2YXIgYXJyYXkgPSBbXTsKKyAgICB2YXIgcmVzdWx0ID0gW107CisgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCA0MjsgKytpKQorICAgICAgICByZXN1bHQucHVzaChhcnJheS5wdXNoKHgpKTsK
KyAgICByZXR1cm4gW2FycmF5LCByZXN1bHRdOworfQorCitub0lubGluZShmb28pOworCitmb3Ig
KHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyg1LjUp
OworICAgIGlmIChyZXN1bHRbMF0udG9TdHJpbmcoKSAhPSAiNS41LDUuNSw1LjUsNS41LDUuNSw1
LjUsNS41LDUuNSw1LjUsNS41LDUuNSw1LjUsNS41LDUuNSw1LjUsNS41LDUuNSw1LjUsNS41LDUu
NSw1LjUsNS41LDUuNSw1LjUsNS41LDUuNSw1LjUsNS41LDUuNSw1LjUsNS41LDUuNSw1LjUsNS41
LDUuNSw1LjUsNS41LDUuNSw1LjUsNS41LDUuNSw1LjUiKQorICAgICAgICB0aHJvdyAiRXJyb3I6
IGJhZCBhcnJheTogIiArIHJlc3VsdFswXTsKKyAgICBpZiAocmVzdWx0WzFdLnRvU3RyaW5nKCkg
IT0gIjEsMiwzLDQsNSw2LDcsOCw5LDEwLDExLDEyLDEzLDE0LDE1LDE2LDE3LDE4LDE5LDIwLDIx
LDIyLDIzLDI0LDI1LDI2LDI3LDI4LDI5LDMwLDMxLDMyLDMzLDM0LDM1LDM2LDM3LDM4LDM5LDQw
LDQxLDQyIikKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgYXJyYXk6ICIgKyByZXN1bHRbMV07
Cit9CisKK3ZhciByZXN1bHQgPSBmb28oMC8wKTsKK2lmIChyZXN1bHRbMF0udG9TdHJpbmcoKSAh
PSAiTmFOLE5hTixOYU4sTmFOLE5hTixOYU4sTmFOLE5hTixOYU4sTmFOLE5hTixOYU4sTmFOLE5h
TixOYU4sTmFOLE5hTixOYU4sTmFOLE5hTixOYU4sTmFOLE5hTixOYU4sTmFOLE5hTixOYU4sTmFO
LE5hTixOYU4sTmFOLE5hTixOYU4sTmFOLE5hTixOYU4sTmFOLE5hTixOYU4sTmFOLE5hTixOYU4i
KQorICAgIHRocm93ICJFcnJvcjogYmFkIGFycmF5OiAiICsgcmVzdWx0WzBdOworaWYgKHJlc3Vs
dFsxXS50b1N0cmluZygpICE9ICIxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNSwx
NiwxNywxOCwxOSwyMCwyMSwyMiwyMywyNCwyNSwyNiwyNywyOCwyOSwzMCwzMSwzMiwzMywzNCwz
NSwzNiwzNywzOCwzOSw0MCw0MSw0MiIpCisgICAgdGhyb3cgIkVycm9yOiBiYWQgYXJyYXk6ICIg
KyByZXN1bHRbMV07CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2Fy
cmF5LXB1c2gtZG91YmxlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9zdHJlc3MvYXJyYXktcHVzaC1kb3VibGUuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2FycmF5LXB1c2gtZG91YmxlLmpzCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMTggQEAKK2Z1bmN0aW9uIGZvbygpIHsKKyAgICB2YXIgYXJyYXkg
PSBbXTsKKyAgICB2YXIgcmVzdWx0ID0gW107CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCA0Mjsg
KytpKQorICAgICAgICByZXN1bHQucHVzaChhcnJheS5wdXNoKDcuNSAtIGkpKTsKKyAgICByZXR1
cm4gW2FycmF5LCByZXN1bHRdOworfQorCitub0lubGluZShmb28pOworCitmb3IgKHZhciBpID0g
MDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbygpOworICAgIGlmIChy
ZXN1bHRbMF0udG9TdHJpbmcoKSAhPSAiNy41LDYuNSw1LjUsNC41LDMuNSwyLjUsMS41LDAuNSwt
MC41LC0xLjUsLTIuNSwtMy41LC00LjUsLTUuNSwtNi41LC03LjUsLTguNSwtOS41LC0xMC41LC0x
MS41LC0xMi41LC0xMy41LC0xNC41LC0xNS41LC0xNi41LC0xNy41LC0xOC41LC0xOS41LC0yMC41
LC0yMS41LC0yMi41LC0yMy41LC0yNC41LC0yNS41LC0yNi41LC0yNy41LC0yOC41LC0yOS41LC0z
MC41LC0zMS41LC0zMi41LC0zMy41IikKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgYXJyYXk6
ICIgKyByZXN1bHRbMF07CisgICAgaWYgKHJlc3VsdFsxXS50b1N0cmluZygpICE9ICIxLDIsMyw0
LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNSwxNiwxNywxOCwxOSwyMCwyMSwyMiwyMywyNCwy
NSwyNiwyNywyOCwyOSwzMCwzMSwzMiwzMywzNCwzNSwzNiwzNywzOCwzOSw0MCw0MSw0MiIpCisg
ICAgICAgIHRocm93ICJFcnJvcjogYmFkIGFycmF5OiAiICsgcmVzdWx0WzFdOworfQorCg==
</data>
<flag name="review"
          id="246499"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>