<?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>145412</bug_id>
          
          <creation_ts>2015-05-27 11:33:19 -0700</creation_ts>
          <short_desc>REGRESSION: These sorting idioms used by Peacekeeper and Browsermark are ~20X slower</short_desc>
          <delta_ts>2015-06-01 11:40:49 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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="Geoffrey Garen">ggaren</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          <cc>benjamin</cc>
    
    <cc>fpizlo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1097681</commentid>
    <comment_count>0</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-05-27 11:33:19 -0700</bug_when>
    <thetext>REGRESSION: These sorting idioms used by Peacekeeper and Browsermark are ~20X slower</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097688</commentid>
    <comment_count>1</comment_count>
      <attachid>253797</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-05-27 11:50:40 -0700</bug_when>
    <thetext>Created attachment 253797
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097690</commentid>
    <comment_count>2</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-05-27 11:51:12 -0700</bug_when>
    <thetext>This is a partial fix for the regression.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097691</commentid>
    <comment_count>3</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-05-27 11:53:28 -0700</bug_when>
    <thetext>(I&apos;m still waiting on a build to get performance numbers.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097692</commentid>
    <comment_count>4</comment_count>
      <attachid>253797</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-05-27 11:53:59 -0700</bug_when>
    <thetext>Comment on attachment 253797
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=253797&amp;action=review

&gt; Source/JavaScriptCore/ChangeLog:10
&gt; +        Use @toString instead of the String constructor because calls to the
&gt; +        String constructor are never optimized. (See
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=144458.)

What’s the downside of using @toString? Would we want to change this back some day if resolved bug 144458?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097701</commentid>
    <comment_count>5</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-05-27 12:59:45 -0700</bug_when>
    <thetext>There&apos;s no downside to @toString.

Assuming that ES6 settles on making ToString and String identical in behavior, we might eventually remove @toString once @String is fast.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097709</commentid>
    <comment_count>6</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-05-27 13:42:14 -0700</bug_when>
    <thetext>Committed r184917: &lt;http://trac.webkit.org/changeset/184917&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097750</commentid>
    <comment_count>7</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-05-27 15:54:06 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097751</commentid>
    <comment_count>8</comment_count>
      <attachid>253806</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-05-27 15:54:07 -0700</bug_when>
    <thetext>Created attachment 253806
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097762</commentid>
    <comment_count>9</comment_count>
      <attachid>253811</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-05-27 16:26:39 -0700</bug_when>
    <thetext>Created attachment 253811
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097772</commentid>
    <comment_count>10</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-05-27 16:43:35 -0700</bug_when>
    <thetext>Committed r184926: &lt;http://trac.webkit.org/changeset/184926&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098274</commentid>
    <comment_count>11</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-05-29 17:11:10 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098275</commentid>
    <comment_count>12</comment_count>
      <attachid>253940</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-05-29 17:11:12 -0700</bug_when>
    <thetext>Created attachment 253940
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098277</commentid>
    <comment_count>13</comment_count>
      <attachid>253941</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-05-29 17:13:54 -0700</bug_when>
    <thetext>Created attachment 253941
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098555</commentid>
    <comment_count>14</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-06-01 11:40:49 -0700</bug_when>
    <thetext>Committed r185067: &lt;http://trac.webkit.org/changeset/185067&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253797</attachid>
            <date>2015-05-27 11:50:40 -0700</date>
            <delta_ts>2015-05-27 15:54:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145412-20150527115028.patch</filename>
            <type>text/plain</type>
            <size>1420</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg0OTA5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBA
CisyMDE1LTA1LTI3ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgUkVHUkVTU0lPTjogVGhlc2Ugc29ydGluZyBpZGlvbXMgdXNlZCBieSBQZWFjZWtlZXBlciBh
bmQgQnJvd3Nlcm1hcmsgYXJlIH4yMFggc2xvd2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDU0MTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgQHRvU3RyaW5nIGluc3RlYWQgb2YgdGhlIFN0cmlu
ZyBjb25zdHJ1Y3RvciBiZWNhdXNlIGNhbGxzIHRvIHRoZQorICAgICAgICBTdHJpbmcgY29uc3Ry
dWN0b3IgYXJlIG5ldmVyIG9wdGltaXplZC4gKFNlZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ0NDU4LikKKworICAgICAgICAqIGJ1aWx0aW5zL0Fy
cmF5LnByb3RvdHlwZS5qczoKKyAgICAgICAgKHNvcnQuc3RyaW5nQ29tcGFyYXRvcik6CisKIDIw
MTUtMDUtMjcgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1v
dmUgSlNDX09CSkNfQVBJX0FWQUlMQUJMRV9NQUNfT1NfWF8xMDgwCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnVpbHRpbnMvQXJyYXkucHJvdG90eXBlLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9BcnJheS5wcm90b3R5cGUuanMJKHJldmlzaW9u
IDE4NDg2MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9BcnJheS5wcm90b3R5
cGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTI4NSw4ICsyODUsOCBAQCBmdW5jdGlvbiBzb3J0KGNv
bXBhcmF0b3IpCiAKICAgICBmdW5jdGlvbiBzdHJpbmdDb21wYXJhdG9yKGEsIGIpCiAgICAgewot
ICAgICAgICB2YXIgYVN0cmluZyA9IEBTdHJpbmcoYSk7Ci0gICAgICAgIHZhciBiU3RyaW5nID0g
QFN0cmluZyhiKTsKKyAgICAgICAgdmFyIGFTdHJpbmcgPSBAdG9TdHJpbmcoYSk7CisgICAgICAg
IHZhciBiU3RyaW5nID0gQHRvU3RyaW5nKGIpOwogCiAgICAgICAgIHZhciBhTGVuZ3RoID0gYVN0
cmluZy5sZW5ndGg7CiAgICAgICAgIHZhciBiTGVuZ3RoID0gYlN0cmluZy5sZW5ndGg7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253806</attachid>
            <date>2015-05-27 15:54:07 -0700</date>
            <delta_ts>2015-05-27 16:26:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145412-20150527155355.patch</filename>
            <type>text/plain</type>
            <size>4213</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg0OTI0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBA
CisyMDE1LTA1LTI3ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgUkVHUkVTU0lPTjogVGhlc2Ugc29ydGluZyBpZGlvbXMgdXNlZCBieSBQZWFjZWtlZXBlciBh
bmQgQnJvd3Nlcm1hcmsgYXJlIH4yMFggc2xvd2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDU0MTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBDYWNoZSBzdHJpbmdzIHdoZW4gZG9pbmcgYSBzdHJpbmct
Y29udmVydGluZyBzb3J0LgorCisgICAgICAgIFRoaXMgaXMgYSAyMSUgc3BlZWR1cC4KKworICAg
ICAgICAqIGJ1aWx0aW5zL0FycmF5LnByb3RvdHlwZS5qczoKKyAgICAgICAgKHNvcnQuc3RyaW5n
Q29tcGFyYXRvcik6CisgICAgICAgIChzb3J0LmNvbXBhcmF0b3JTb3J0KToKKyAgICAgICAgKHNv
cnQuc3RyaW5nU29ydCk6CisgICAgICAgIChzb3J0KToKKworICAgICAgICAqIHBhcnNlci9QYXJz
ZXIuY3BwOgorICAgICAgICAoSlNDOjpQYXJzZXI8TGV4ZXJUeXBlPjo6Y3JlYXRlQmluZGluZ1Bh
dHRlcm4pOiBOYW1lcyBjYW4gYmUgZW1wdHkgaWYKKyAgICAgICAgdGhleSBhcmUgcHJpdmF0ZSBu
YW1lcy4KKwogMjAxNS0wNS0yNiAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAg
ICAgICAgIEpJVC1nZW5lcmF0ZWQgc3RvcmUgYmFycmllciBjb2RlIHNob3VsZCBhc3N1bWUgdGhl
IGJ1ZmZlciBwb2ludGVyIGFuZCBjYXBhY2l0eSB0byBiZSBjb21waWxlLXRpbWUgY29uc3RhbnRz
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQXJyYXkucHJvdG90eXBlLmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9BcnJheS5wcm90
b3R5cGUuanMJKHJldmlzaW9uIDE4NDkxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWls
dGlucy9BcnJheS5wcm90b3R5cGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTI4Niw4ICsyODYsOCBA
QCBmdW5jdGlvbiBzb3J0KGNvbXBhcmF0b3IpCiAKICAgICBmdW5jdGlvbiBzdHJpbmdDb21wYXJh
dG9yKGEsIGIpCiAgICAgewotICAgICAgICB2YXIgYVN0cmluZyA9IEB0b1N0cmluZyhhKTsKLSAg
ICAgICAgdmFyIGJTdHJpbmcgPSBAdG9TdHJpbmcoYik7CisgICAgICAgIHZhciBhU3RyaW5nID0g
YS5zdHJpbmc7CisgICAgICAgIHZhciBiU3RyaW5nID0gYi5zdHJpbmc7CiAKICAgICAgICAgdmFy
IGFMZW5ndGggPSBhU3RyaW5nLmxlbmd0aDsKICAgICAgICAgdmFyIGJMZW5ndGggPSBiU3RyaW5n
Lmxlbmd0aDsKQEAgLTMwMCwxOSArMzAwLDEwIEBAIGZ1bmN0aW9uIHNvcnQoY29tcGFyYXRvcikK
ICAgICAgICAgICAgIGlmIChhQ2hhckNvZGUgPT0gYkNoYXJDb2RlKQogICAgICAgICAgICAgICAg
IGNvbnRpbnVlOwogCi0gICAgICAgICAgICBpZiAoYUNoYXJDb2RlIDwgYkNoYXJDb2RlKQotICAg
ICAgICAgICAgICAgIHJldHVybiAtMTsKLQotICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAg
ICAgICByZXR1cm4gYUNoYXJDb2RlIC0gYkNoYXJDb2RlOwogICAgICAgICB9CiAKLSAgICAgICAg
aWYgKGFMZW5ndGggPT0gYkxlbmd0aCkKLSAgICAgICAgICAgIHJldHVybiAwOwotCi0gICAgICAg
IGlmIChhTGVuZ3RoIDwgYkxlbmd0aCkKLSAgICAgICAgICAgIHJldHVybiAtMTsKLQotICAgICAg
ICByZXR1cm4gMTsKKyAgICAgICAgcmV0dXJuIGFMZW5ndGggLSBiTGVuZ3RoOwogICAgIH0KIAog
ICAgIC8vIE1vdmUgdW5kZWZpbmVkcyBhbmQgaG9sZXMgdG8gdGhlIGVuZCBvZiBhIHNwYXJzZSBh
cnJheS4gUmVzdWx0IGlzIFt2YWx1ZXMuLi4sIHVuZGVmaW5lZHMuLi4sIGhvbGVzLi4uXS4KQEAg
LTQzOCw2ICs0MjksMzEgQEAgZnVuY3Rpb24gc29ydChjb21wYXJhdG9yKQogCiAgICAgICAgIHZh
ciB2YWx1ZUNvdW50ID0gY29tcGFjdChhcnJheSwgbGVuZ3RoKTsKICAgICAgICAgbWVyZ2VTb3J0
KGFycmF5LCB2YWx1ZUNvdW50LCBjb21wYXJhdG9yKTsKKworICAgICAgICByZXR1cm4gYXJyYXk7
CisgICAgfQorCisgICAgZnVuY3Rpb24gc3RyaW5nU29ydChhcnJheSkKKyAgICB7CisgICAgICAg
IHZhciBsZW5ndGggPSBhcnJheS5sZW5ndGggPj4+IDA7CisKKyAgICAgICAgLy8gRm9yIGNvbXBh
dGliaWxpdHkgd2l0aCBGaXJlZm94IGFuZCBDaHJvbWUsIGRvIG5vdGhpbmcgb2JzZXJ2YWJsZQor
ICAgICAgICAvLyB0byB0aGUgdGFyZ2V0IGFycmF5IGlmIGl0IGhhcyAwIG9yIDEgc29ydGFibGUg
cHJvcGVydGllcy4KKyAgICAgICAgaWYgKGxlbmd0aCA8IDIpCisgICAgICAgICAgICByZXR1cm47
CisKKyAgICAgICAgdmFyIHZhbHVlQ291bnQgPSBjb21wYWN0KGFycmF5LCBsZW5ndGgpOworCisg
ICAgICAgIHZhciBzdHJpbmdzID0gbmV3IEBBcnJheSh2YWx1ZUNvdW50KTsKKyAgICAgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCB2YWx1ZUNvdW50OyArK2kpCisgICAgICAgICAgICBzdHJpbmdzW2ld
ID0geyBzdHJpbmc6IEB0b1N0cmluZyhhcnJheVtpXSksIHZhbHVlOiBhcnJheVtpXSB9OworCisg
ICAgICAgIG1lcmdlU29ydChzdHJpbmdzLCB2YWx1ZUNvdW50LCBzdHJpbmdDb21wYXJhdG9yKTsK
KworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlQ291bnQ7ICsraSkKKyAgICAgICAg
ICAgIGFycmF5W2ldID0gc3RyaW5nc1tpXS52YWx1ZTsKKworICAgICAgICByZXR1cm4gYXJyYXk7
CiAgICAgfQogCiAgICAgaWYgKHRoaXMgPT09IG51bGwpCkBAIC00NDksMTIgKzQ2NSwxMiBAQCBm
dW5jdGlvbiBzb3J0KGNvbXBhcmF0b3IpCiAgICAgaWYgKHR5cGVvZiB0aGlzID09ICJzdHJpbmci
KQogICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcigiQXR0ZW1wdGVkIHRvIGFzc2lnbiB0byBy
ZWFkb25seSBwcm9wZXJ0eS4iKTsKIAorICAgIHZhciBhcnJheSA9IEBPYmplY3QodGhpcyk7CisK
ICAgICBpZiAodHlwZW9mIGNvbXBhcmF0b3IgIT09ICJmdW5jdGlvbiIpCi0gICAgICAgIGNvbXBh
cmF0b3IgPSBzdHJpbmdDb21wYXJhdG9yOworICAgICAgICByZXR1cm4gc3RyaW5nU29ydChhcnJh
eSk7CiAKLSAgICB2YXIgYXJyYXkgPSBAT2JqZWN0KHRoaXMpOwotICAgIGNvbXBhcmF0b3JTb3J0
KGFycmF5LCBjb21wYXJhdG9yKTsKLSAgICByZXR1cm4gYXJyYXk7CisgICAgcmV0dXJuIGNvbXBh
cmF0b3JTb3J0KGFycmF5LCBjb21wYXJhdG9yKTsKIH0KIAogZnVuY3Rpb24gY29weVdpdGhpbih0
YXJnZXQsIHN0YXJ0IC8qLCBlbmQgKi8pCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFy
c2VyL1BhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNl
ci9QYXJzZXIuY3BwCShyZXZpc2lvbiAxODQ5MTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL1BhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzNCw3ICs1MzQsNiBAQCB0ZW1w
bGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVFeHByZXNzCiB0ZW1wbGF0ZSA8dHlwZW5hbWUg
TGV4ZXJUeXBlPgogdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlRGVjb25zdHJ1Y3Rp
b25QYXR0ZXJuIFBhcnNlcjxMZXhlclR5cGU+OjpjcmVhdGVCaW5kaW5nUGF0dGVybihUcmVlQnVp
bGRlciYgY29udGV4dCwgRGVjb25zdHJ1Y3Rpb25LaW5kIGtpbmQsIGNvbnN0IElkZW50aWZpZXIm
IG5hbWUsIGludCBkZXB0aCwgSlNUb2tlbiB0b2tlbikKIHsKLSAgICBBU1NFUlQoIW5hbWUuaXNF
bXB0eSgpKTsKICAgICBBU1NFUlQoIW5hbWUuaXNOdWxsKCkpOwogICAgIAogICAgIEFTU0VSVChu
YW1lLmltcGwoKS0+aXNBdG9taWMoKSB8fCBuYW1lLmltcGwoKS0+aXNTeW1ib2woKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253811</attachid>
            <date>2015-05-27 16:26:39 -0700</date>
            <delta_ts>2015-05-29 17:11:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145412-20150527162627.patch</filename>
            <type>text/plain</type>
            <size>4329</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg0OTI0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBA
CisyMDE1LTA1LTI3ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgUkVHUkVTU0lPTjogVGhlc2Ugc29ydGluZyBpZGlvbXMgdXNlZCBieSBQZWFjZWtlZXBlciBh
bmQgQnJvd3Nlcm1hcmsgYXJlIH4yMFggc2xvd2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDU0MTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBDYWNoZSBzdHJpbmdzIHdoZW4gZG9pbmcgYSBzdHJpbmct
Y29udmVydGluZyBzb3J0LgorCisgICAgICAgIFRoaXMgaXMgYSAyMSUgc3BlZWR1cC4KKworICAg
ICAgICAqIGJ1aWx0aW5zL0FycmF5LnByb3RvdHlwZS5qczoKKyAgICAgICAgKHNvcnQuc3RyaW5n
Q29tcGFyYXRvcik6IFVzZSBzdWJ0cmFjdGlvbiBpbnN0ZWFkIG9mIGJyYW5jaGluZyBiZWNhdXNl
CisgICAgICAgIGl0J3Mgc2xpZ2h0bHkgZmFzdGVyLgorCisgICAgICAgIChzb3J0LmNvbXBhcmF0
b3JTb3J0KToKKyAgICAgICAgKHNvcnQuc3RyaW5nU29ydCk6CisgICAgICAgIChzb3J0KTogQWRk
IGEgc3BlY2lhbCBjYXNlIGZvciBzdHJpbmcgc29ydGluZyB0byBhdm9pZCByZWR1bmRhbnQgc3Ry
aW5nCisgICAgICAgIGNvbnZlcnNpb24uCisKKyAgICAgICAgKiBwYXJzZXIvUGFyc2VyLmNwcDoK
KyAgICAgICAgKEpTQzo6UGFyc2VyPExleGVyVHlwZT46OmNyZWF0ZUJpbmRpbmdQYXR0ZXJuKTog
TmFtZXMgY2FuIGJlIGVtcHR5IGlmCisgICAgICAgIHRoZXkgYXJlIHByaXZhdGUgbmFtZXMuCisK
IDIwMTUtMDUtMjYgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBK
SVQtZ2VuZXJhdGVkIHN0b3JlIGJhcnJpZXIgY29kZSBzaG91bGQgYXNzdW1lIHRoZSBidWZmZXIg
cG9pbnRlciBhbmQgY2FwYWNpdHkgdG8gYmUgY29tcGlsZS10aW1lIGNvbnN0YW50cwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0FycmF5LnByb3RvdHlwZS5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQXJyYXkucHJvdG90eXBlLmpz
CShyZXZpc2lvbiAxODQ5MTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQXJy
YXkucHJvdG90eXBlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0yODYsOCArMjg2LDggQEAgZnVuY3Rp
b24gc29ydChjb21wYXJhdG9yKQogCiAgICAgZnVuY3Rpb24gc3RyaW5nQ29tcGFyYXRvcihhLCBi
KQogICAgIHsKLSAgICAgICAgdmFyIGFTdHJpbmcgPSBAdG9TdHJpbmcoYSk7Ci0gICAgICAgIHZh
ciBiU3RyaW5nID0gQHRvU3RyaW5nKGIpOworICAgICAgICB2YXIgYVN0cmluZyA9IGEuc3RyaW5n
OworICAgICAgICB2YXIgYlN0cmluZyA9IGIuc3RyaW5nOwogCiAgICAgICAgIHZhciBhTGVuZ3Ro
ID0gYVN0cmluZy5sZW5ndGg7CiAgICAgICAgIHZhciBiTGVuZ3RoID0gYlN0cmluZy5sZW5ndGg7
CkBAIC0zMDAsMTkgKzMwMCwxMCBAQCBmdW5jdGlvbiBzb3J0KGNvbXBhcmF0b3IpCiAgICAgICAg
ICAgICBpZiAoYUNoYXJDb2RlID09IGJDaGFyQ29kZSkKICAgICAgICAgICAgICAgICBjb250aW51
ZTsKIAotICAgICAgICAgICAgaWYgKGFDaGFyQ29kZSA8IGJDaGFyQ29kZSkKLSAgICAgICAgICAg
ICAgICByZXR1cm4gLTE7Ci0KLSAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICAgICAgcmV0
dXJuIGFDaGFyQ29kZSAtIGJDaGFyQ29kZTsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChhTGVu
Z3RoID09IGJMZW5ndGgpCi0gICAgICAgICAgICByZXR1cm4gMDsKLQotICAgICAgICBpZiAoYUxl
bmd0aCA8IGJMZW5ndGgpCi0gICAgICAgICAgICByZXR1cm4gLTE7Ci0KLSAgICAgICAgcmV0dXJu
IDE7CisgICAgICAgIHJldHVybiBhTGVuZ3RoIC0gYkxlbmd0aDsKICAgICB9CiAKICAgICAvLyBN
b3ZlIHVuZGVmaW5lZHMgYW5kIGhvbGVzIHRvIHRoZSBlbmQgb2YgYSBzcGFyc2UgYXJyYXkuIFJl
c3VsdCBpcyBbdmFsdWVzLi4uLCB1bmRlZmluZWRzLi4uLCBob2xlcy4uLl0uCkBAIC00NDAsNiAr
NDMxLDI3IEBAIGZ1bmN0aW9uIHNvcnQoY29tcGFyYXRvcikKICAgICAgICAgbWVyZ2VTb3J0KGFy
cmF5LCB2YWx1ZUNvdW50LCBjb21wYXJhdG9yKTsKICAgICB9CiAKKyAgICBmdW5jdGlvbiBzdHJp
bmdTb3J0KGFycmF5KQorICAgIHsKKyAgICAgICAgdmFyIGxlbmd0aCA9IGFycmF5Lmxlbmd0aCA+
Pj4gMDsKKworICAgICAgICAvLyBGb3IgY29tcGF0aWJpbGl0eSB3aXRoIEZpcmVmb3ggYW5kIENo
cm9tZSwgZG8gbm90aGluZyBvYnNlcnZhYmxlCisgICAgICAgIC8vIHRvIHRoZSB0YXJnZXQgYXJy
YXkgaWYgaXQgaGFzIDAgb3IgMSBzb3J0YWJsZSBwcm9wZXJ0aWVzLgorICAgICAgICBpZiAobGVu
Z3RoIDwgMikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICB2YXIgdmFsdWVDb3VudCA9
IGNvbXBhY3QoYXJyYXksIGxlbmd0aCk7CisKKyAgICAgICAgdmFyIHN0cmluZ3MgPSBuZXcgQEFy
cmF5KHZhbHVlQ291bnQpOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlQ291bnQ7
ICsraSkKKyAgICAgICAgICAgIHN0cmluZ3NbaV0gPSB7IHN0cmluZzogQHRvU3RyaW5nKGFycmF5
W2ldKSwgdmFsdWU6IGFycmF5W2ldIH07CisKKyAgICAgICAgbWVyZ2VTb3J0KHN0cmluZ3MsIHZh
bHVlQ291bnQsIHN0cmluZ0NvbXBhcmF0b3IpOworCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgdmFsdWVDb3VudDsgKytpKQorICAgICAgICAgICAgYXJyYXlbaV0gPSBzdHJpbmdzW2ldLnZh
bHVlOworICAgIH0KKwogICAgIGlmICh0aGlzID09PSBudWxsKQogICAgICAgICB0aHJvdyBuZXcg
QFR5cGVFcnJvcigiQXJyYXkucHJvdG90eXBlLnNvcnQgcmVxdWlyZXMgdGhhdCB8dGhpc3wgbm90
IGJlIG51bGwiKTsKIApAQCAtNDQ5LDExICs0NjEsMTMgQEAgZnVuY3Rpb24gc29ydChjb21wYXJh
dG9yKQogICAgIGlmICh0eXBlb2YgdGhpcyA9PSAic3RyaW5nIikKICAgICAgICAgdGhyb3cgbmV3
IEBUeXBlRXJyb3IoIkF0dGVtcHRlZCB0byBhc3NpZ24gdG8gcmVhZG9ubHkgcHJvcGVydHkuIik7
CiAKLSAgICBpZiAodHlwZW9mIGNvbXBhcmF0b3IgIT09ICJmdW5jdGlvbiIpCi0gICAgICAgIGNv
bXBhcmF0b3IgPSBzdHJpbmdDb21wYXJhdG9yOwotCiAgICAgdmFyIGFycmF5ID0gQE9iamVjdCh0
aGlzKTsKLSAgICBjb21wYXJhdG9yU29ydChhcnJheSwgY29tcGFyYXRvcik7CisKKyAgICBpZiAo
dHlwZW9mIGNvbXBhcmF0b3IgPT0gImZ1bmN0aW9uIikKKyAgICAgICAgY29tcGFyYXRvclNvcnQo
YXJyYXksIGNvbXBhcmF0b3IpOworICAgIGVsc2UKKyAgICAgICAgc3RyaW5nU29ydChhcnJheSk7
CisKICAgICByZXR1cm4gYXJyYXk7CiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
YXJzZXIvUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFy
c2VyL1BhcnNlci5jcHAJKHJldmlzaW9uIDE4NDkxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wYXJzZXIvUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTM0LDcgKzUzNCw2IEBAIHRl
bXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZUV4cHJlc3MKIHRlbXBsYXRlIDx0eXBlbmFt
ZSBMZXhlclR5cGU+CiB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVEZWNvbnN0cnVj
dGlvblBhdHRlcm4gUGFyc2VyPExleGVyVHlwZT46OmNyZWF0ZUJpbmRpbmdQYXR0ZXJuKFRyZWVC
dWlsZGVyJiBjb250ZXh0LCBEZWNvbnN0cnVjdGlvbktpbmQga2luZCwgY29uc3QgSWRlbnRpZmll
ciYgbmFtZSwgaW50IGRlcHRoLCBKU1Rva2VuIHRva2VuKQogewotICAgIEFTU0VSVCghbmFtZS5p
c0VtcHR5KCkpOwogICAgIEFTU0VSVCghbmFtZS5pc051bGwoKSk7CiAgICAgCiAgICAgQVNTRVJU
KG5hbWUuaW1wbCgpLT5pc0F0b21pYygpIHx8IG5hbWUuaW1wbCgpLT5pc1N5bWJvbCgpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253940</attachid>
            <date>2015-05-29 17:11:12 -0700</date>
            <delta_ts>2015-05-29 17:13:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145412-20150529171058.patch</filename>
            <type>text/plain</type>
            <size>4277</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg1MDE5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBA
CisyMDE1LTA1LTI5ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgUkVHUkVTU0lPTjogVGhlc2Ugc29ydGluZyBpZGlvbXMgdXNlZCBieSBQZWFjZWtlZXBlciBh
bmQgQnJvd3Nlcm1hcmsgYXJlIH4yMFggc2xvd2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDU0MTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBNb2FyIHNwZWVkdXAuCisKKyAgICAgICAgQWRkZWQgYSBi
dWNrZXQgc29ydCBmb3Igc3RyaW5nIHNvcnRpbmcuCisKKyAgICAgICAgKiBidWlsdGlucy9BcnJh
eS5wcm90b3R5cGUuanM6CisgICAgICAgIChzb3J0LmNvbXBhY3RTcGFyc2UpOgorICAgICAgICAo
c29ydC5jb21wYWN0U2xvdyk6CisgICAgICAgIChzb3J0LmNvbXBhY3QpOiBTcGxpdCBvdXQgYSBj
b21wYWN0aW9uIGZhc3QgcGF0aCBmb3IgZGVuc2UgYXJyYXlzLiBXaXRob3V0CisgICAgICAgIGl0
LCBjb21wYWN0aW9uIGNhbiBpbmNyZWFzZSBzb3J0IHRpbWUgYnkgMlggZm9yIHNpbXBsZSBzb3J0
cy4KKworICAgICAgICAoc29ydC5idWNrZXRTb3J0KToKKyAgICAgICAgKHNvcnQuc3RyaW5nU29y
dCk6IFVzZSBhIGJ1Y2tldCBzb3J0aW5nIGFsZ29yaXRobSBpZiB3ZSBrbm93IHdlJ3JlIHNvcnRp
bmcKKyAgICAgICAgc3RyaW5ncy4gVGhpcyBtYWtlcyBhdmVyYWdlIGNhc2Ugc3RyaW5nIHNvcnRp
bmcgTyhOKSB3aXRoIE8obG9nIE4pIGFkZGl0b25hbAorICAgICAgICBtZW1vcnkgdXNlLgorCisg
ICAgICAgIFRoZSB3b3JzdCBjYXNlIGJ1Y2tldCBzb3J0IGNhbiByZXF1aXJlIE8oTSpOKSBhZGRp
dGlvbmFsCisgICAgICAgIHNwYWNlLiBXZSBhdm9pZCB0aGlzIGJ5IGZhbGxpbmcgYmFjayB0byBt
ZXJnZSBzb3J0IHdoZW4gdGhpbmdzIGFyZQorICAgICAgICBzaW1wbGUgb3Igb3Zlcmx5IGR1cGxp
Y2F0aXZlLiBUaGVzZSBhcmUgdGhlIHR3byBjYXNlcyB0aGF0IGFjY3VtdWxhdGUKKyAgICAgICAg
ZXhjZXNzaXZlIC0tIGFuZCBwb3RlbnRpYWxseSBwYXRob2xvZ2ljYWwgLS0gYnVja2V0aW5nIG92
ZXJoZWFkLgorCiAyMDE1LTA1LTI4ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAK
ICAgICAgICAgTm9uLXNwZWN1bGF0aXZlIEJyYW5jaCBzaG91bGQgYmUgZmFzdCBpbiB0aGUgRlRM
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQXJyYXkucHJvdG90eXBlLmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9BcnJheS5wcm90
b3R5cGUuanMJKHJldmlzaW9uIDE4NDkyNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWls
dGlucy9BcnJheS5wcm90b3R5cGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTM0Niw4ICszNDYsNyBA
QCBmdW5jdGlvbiBzb3J0KGNvbXBhcmF0b3IpCiAgICAgICAgIHJldHVybiB2YWx1ZUNvdW50Owog
ICAgIH0KIAotICAgIC8vIE1vdmUgdW5kZWZpbmVkcyBhbmQgaG9sZXMgdG8gdGhlIGVuZCBvZiBh
biBhcnJheS4gUmVzdWx0IGlzIFt2YWx1ZXMuLi4sIHVuZGVmaW5lZHMuLi4sIGhvbGVzLi4uXS4K
LSAgICBmdW5jdGlvbiBjb21wYWN0KGFycmF5LCBsZW5ndGgpCisgICAgZnVuY3Rpb24gY29tcGFj
dFNsb3coYXJyYXksIGxlbmd0aCkKICAgICB7CiAgICAgICAgIHZhciBob2xlQ291bnQgPSAwOwog
CkBAIC0zNjIsNiArMzYxLDcgQEAgZnVuY3Rpb24gc29ydChjb21wYXJhdG9yKQogICAgICAgICAg
ICAgdmFyIHZhbHVlID0gYXJyYXlbc3JjXTsKICAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gdW5k
ZWZpbmVkKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCiAgICAgICAgICAgICBhcnJheVtk
c3QrK10gPSB2YWx1ZTsKICAgICAgICAgfQogCkBAIC0zNzcsNiArMzc3LDE3IEBAIGZ1bmN0aW9u
IHNvcnQoY29tcGFyYXRvcikKICAgICAgICAgcmV0dXJuIHZhbHVlQ291bnQ7CiAgICAgfQogCisg
ICAgLy8gTW92ZSB1bmRlZmluZWRzIGFuZCBob2xlcyB0byB0aGUgZW5kIG9mIGFuIGFycmF5LiBS
ZXN1bHQgaXMgW3ZhbHVlcy4uLiwgdW5kZWZpbmVkcy4uLiwgaG9sZXMuLi5dLgorICAgIGZ1bmN0
aW9uIGNvbXBhY3QoYXJyYXksIGxlbmd0aCkKKyAgICB7CisgICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgYXJyYXkubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChhcnJheVtpXSA9PT0g
dW5kZWZpbmVkKQorICAgICAgICAgICAgICAgIHJldHVybiBjb21wYWN0U2xvdyhhcnJheSwgbGVu
Z3RoKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBsZW5ndGg7CisgICAgfQorCiAgICAg
ZnVuY3Rpb24gbWVyZ2UoZHN0LCBzcmMsIHNyY0luZGV4LCBzcmNFbmQsIHdpZHRoLCBjb21wYXJh
dG9yKQogICAgIHsKICAgICAgICAgdmFyIGxlZnQgPSBzcmNJbmRleDsKQEAgLTQxOCw2ICs0Mjks
MzkgQEAgZnVuY3Rpb24gc29ydChjb21wYXJhdG9yKQogICAgICAgICB9CiAgICAgfQogCisgICAg
ZnVuY3Rpb24gYnVja2V0U29ydChhcnJheSwgZHN0LCBidWNrZXQsIGRlcHRoKQorICAgIHsKKyAg
ICAgICAgaWYgKGJ1Y2tldC5sZW5ndGggPCAzMiB8fCBkZXB0aCA+IDMyKSB7CisgICAgICAgICAg
ICBtZXJnZVNvcnQoYnVja2V0LCBidWNrZXQubGVuZ3RoLCBzdHJpbmdDb21wYXJhdG9yKTsKKyAg
ICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYnVja2V0Lmxlbmd0aDsgKytpKQorICAgICAg
ICAgICAgICAgIGFycmF5W2RzdCsrXSA9IGJ1Y2tldFtpXS52YWx1ZTsKKyAgICAgICAgICAgIHJl
dHVybiBkc3Q7CisgICAgICAgIH0KKworICAgICAgICB2YXIgYnVja2V0cyA9IFsgXTsKKyAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCBidWNrZXQubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAg
IHZhciBlbnRyeSA9IGJ1Y2tldFtpXTsKKyAgICAgICAgICAgIHZhciBzdHJpbmcgPSBlbnRyeS5z
dHJpbmc7CisgICAgICAgICAgICBpZiAoc3RyaW5nLmxlbmd0aCA9PSBkZXB0aCkgeworICAgICAg
ICAgICAgICAgIGFycmF5W2RzdCsrXSA9IGVudHJ5LnZhbHVlOworICAgICAgICAgICAgICAgIGNv
bnRpbnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB2YXIgYyA9IHN0cmluZy5AY2hh
ckNvZGVBdChkZXB0aCk7CisgICAgICAgICAgICBpZiAoIWJ1Y2tldHNbY10pCisgICAgICAgICAg
ICAgICAgYnVja2V0c1tjXSA9IFsgXTsKKyAgICAgICAgICAgIGJ1Y2tldHNbY11bYnVja2V0c1tj
XS5sZW5ndGhdID0gZW50cnk7CisgICAgICAgIH0KKworICAgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IGJ1Y2tldHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGlmICghYnVja2V0c1tpXSkK
KyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIGRzdCA9IGJ1Y2tldFNvcnQo
YXJyYXksIGRzdCwgYnVja2V0c1tpXSwgZGVwdGggKyAxKTsKKyAgICAgICAgfQorCisgICAgICAg
IHJldHVybiBkc3Q7CisgICAgfQorCiAgICAgZnVuY3Rpb24gY29tcGFyYXRvclNvcnQoYXJyYXks
IGNvbXBhcmF0b3IpCiAgICAgewogICAgICAgICB2YXIgbGVuZ3RoID0gYXJyYXkubGVuZ3RoID4+
PiAwOwpAQCAtNDQ2LDEwICs0OTAsNyBAQCBmdW5jdGlvbiBzb3J0KGNvbXBhcmF0b3IpCiAgICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWVDb3VudDsgKytpKQogICAgICAgICAgICAgc3Ry
aW5nc1tpXSA9IHsgc3RyaW5nOiBAdG9TdHJpbmcoYXJyYXlbaV0pLCB2YWx1ZTogYXJyYXlbaV0g
fTsKIAotICAgICAgICBtZXJnZVNvcnQoc3RyaW5ncywgdmFsdWVDb3VudCwgc3RyaW5nQ29tcGFy
YXRvcik7Ci0KLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWx1ZUNvdW50OyArK2kpCi0g
ICAgICAgICAgICBhcnJheVtpXSA9IHN0cmluZ3NbaV0udmFsdWU7CisgICAgICAgIGJ1Y2tldFNv
cnQoYXJyYXksIDAsIHN0cmluZ3MsIDApOwogICAgIH0KIAogICAgIGlmICh0aGlzID09PSBudWxs
KQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253941</attachid>
            <date>2015-05-29 17:13:54 -0700</date>
            <delta_ts>2015-05-30 16:01:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145412-20150529171340.patch</filename>
            <type>text/plain</type>
            <size>4276</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg1MDE5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBA
CisyMDE1LTA1LTI5ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgUkVHUkVTU0lPTjogVGhlc2Ugc29ydGluZyBpZGlvbXMgdXNlZCBieSBQZWFjZWtlZXBlciBh
bmQgQnJvd3Nlcm1hcmsgYXJlIH4yMFggc2xvd2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDU0MTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBNb2FyIHNwZWVkdXAuCisKKyAgICAgICAgQWRkZWQgYSBi
dWNrZXQgc29ydCBmb3Igc3RyaW5nIHNvcnRpbmcuCisKKyAgICAgICAgKiBidWlsdGlucy9BcnJh
eS5wcm90b3R5cGUuanM6CisgICAgICAgIChzb3J0LmNvbXBhY3RTcGFyc2UpOgorICAgICAgICAo
c29ydC5jb21wYWN0U2xvdyk6CisgICAgICAgIChzb3J0LmNvbXBhY3QpOiBTcGxpdCBvdXQgYSBj
b21wYWN0aW9uIGZhc3QgcGF0aCBmb3IgZGVuc2UgYXJyYXlzLiBXaXRob3V0CisgICAgICAgIGl0
LCBjb21wYWN0aW9uIGNhbiBpbmNyZWFzZSBzb3J0IHRpbWUgYnkgMlggZm9yIHNpbXBsZSBzb3J0
cy4KKworICAgICAgICAoc29ydC5idWNrZXRTb3J0KToKKyAgICAgICAgKHNvcnQuc3RyaW5nU29y
dCk6IFVzZSBhIGJ1Y2tldCBzb3J0aW5nIGFsZ29yaXRobSBpZiB3ZSBrbm93IHdlJ3JlIHNvcnRp
bmcKKyAgICAgICAgc3RyaW5ncy4gVGhpcyBtYWtlcyBhdmVyYWdlIGNhc2Ugc3RyaW5nIHNvcnRp
bmcgTyhOKSB3aXRoIE8oTikgYWRkaXRpb25hbAorICAgICAgICBtZW1vcnkgdXNlLgorCisgICAg
ICAgIFRoZSB3b3JzdCBjYXNlIGJ1Y2tldCBzb3J0IGNhbiByZXF1aXJlIE8oTSAqIE4pIGFkZGl0
aW9uYWwKKyAgICAgICAgc3BhY2UuIFdlIGF2b2lkIHRoaXMgYnkgZmFsbGluZyBiYWNrIHRvIG1l
cmdlIHNvcnQgd2hlbiB0aGluZ3MgYXJlCisgICAgICAgIHNpbXBsZSBvciBvdmVybHkgZHVwbGlj
YXRpdmUuIFRoZXNlIGFyZSB0aGUgdHdvIGNhc2VzIHRoYXQgYWNjdW11bGF0ZQorICAgICAgICBl
eGNlc3NpdmUgLS0gYW5kIHBvdGVudGlhbGx5IHBhdGhvbG9naWNhbCAtLSBidWNrZXRpbmcgb3Zl
cmhlYWQuCisKIDIwMTUtMDUtMjggIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAog
ICAgICAgICBOb24tc3BlY3VsYXRpdmUgQnJhbmNoIHNob3VsZCBiZSBmYXN0IGluIHRoZSBGVEwK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9BcnJheS5wcm90b3R5cGUuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0FycmF5LnByb3Rv
dHlwZS5qcwkocmV2aXNpb24gMTg0OTI2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0
aW5zL0FycmF5LnByb3RvdHlwZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMzQ2LDggKzM0Niw3IEBA
IGZ1bmN0aW9uIHNvcnQoY29tcGFyYXRvcikKICAgICAgICAgcmV0dXJuIHZhbHVlQ291bnQ7CiAg
ICAgfQogCi0gICAgLy8gTW92ZSB1bmRlZmluZWRzIGFuZCBob2xlcyB0byB0aGUgZW5kIG9mIGFu
IGFycmF5LiBSZXN1bHQgaXMgW3ZhbHVlcy4uLiwgdW5kZWZpbmVkcy4uLiwgaG9sZXMuLi5dLgot
ICAgIGZ1bmN0aW9uIGNvbXBhY3QoYXJyYXksIGxlbmd0aCkKKyAgICBmdW5jdGlvbiBjb21wYWN0
U2xvdyhhcnJheSwgbGVuZ3RoKQogICAgIHsKICAgICAgICAgdmFyIGhvbGVDb3VudCA9IDA7CiAK
QEAgLTM2Miw2ICszNjEsNyBAQCBmdW5jdGlvbiBzb3J0KGNvbXBhcmF0b3IpCiAgICAgICAgICAg
ICB2YXIgdmFsdWUgPSBhcnJheVtzcmNdOwogICAgICAgICAgICAgaWYgKHZhbHVlID09PSB1bmRl
ZmluZWQpCiAgICAgICAgICAgICAgICAgY29udGludWU7CisKICAgICAgICAgICAgIGFycmF5W2Rz
dCsrXSA9IHZhbHVlOwogICAgICAgICB9CiAKQEAgLTM3Nyw2ICszNzcsMTcgQEAgZnVuY3Rpb24g
c29ydChjb21wYXJhdG9yKQogICAgICAgICByZXR1cm4gdmFsdWVDb3VudDsKICAgICB9CiAKKyAg
ICAvLyBNb3ZlIHVuZGVmaW5lZHMgYW5kIGhvbGVzIHRvIHRoZSBlbmQgb2YgYW4gYXJyYXkuIFJl
c3VsdCBpcyBbdmFsdWVzLi4uLCB1bmRlZmluZWRzLi4uLCBob2xlcy4uLl0uCisgICAgZnVuY3Rp
b24gY29tcGFjdChhcnJheSwgbGVuZ3RoKQorICAgIHsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCBhcnJheS5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYgKGFycmF5W2ldID09PSB1
bmRlZmluZWQpCisgICAgICAgICAgICAgICAgcmV0dXJuIGNvbXBhY3RTbG93KGFycmF5LCBsZW5n
dGgpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGxlbmd0aDsKKyAgICB9CisKICAgICBm
dW5jdGlvbiBtZXJnZShkc3QsIHNyYywgc3JjSW5kZXgsIHNyY0VuZCwgd2lkdGgsIGNvbXBhcmF0
b3IpCiAgICAgewogICAgICAgICB2YXIgbGVmdCA9IHNyY0luZGV4OwpAQCAtNDE4LDYgKzQyOSwz
OSBAQCBmdW5jdGlvbiBzb3J0KGNvbXBhcmF0b3IpCiAgICAgICAgIH0KICAgICB9CiAKKyAgICBm
dW5jdGlvbiBidWNrZXRTb3J0KGFycmF5LCBkc3QsIGJ1Y2tldCwgZGVwdGgpCisgICAgeworICAg
ICAgICBpZiAoYnVja2V0Lmxlbmd0aCA8IDMyIHx8IGRlcHRoID4gMzIpIHsKKyAgICAgICAgICAg
IG1lcmdlU29ydChidWNrZXQsIGJ1Y2tldC5sZW5ndGgsIHN0cmluZ0NvbXBhcmF0b3IpOworICAg
ICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBidWNrZXQubGVuZ3RoOyArK2kpCisgICAgICAg
ICAgICAgICAgYXJyYXlbZHN0KytdID0gYnVja2V0W2ldLnZhbHVlOworICAgICAgICAgICAgcmV0
dXJuIGRzdDsKKyAgICAgICAgfQorCisgICAgICAgIHZhciBidWNrZXRzID0gWyBdOworICAgICAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IGJ1Y2tldC5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAg
dmFyIGVudHJ5ID0gYnVja2V0W2ldOworICAgICAgICAgICAgdmFyIHN0cmluZyA9IGVudHJ5LnN0
cmluZzsKKyAgICAgICAgICAgIGlmIChzdHJpbmcubGVuZ3RoID09IGRlcHRoKSB7CisgICAgICAg
ICAgICAgICAgYXJyYXlbZHN0KytdID0gZW50cnkudmFsdWU7CisgICAgICAgICAgICAgICAgY29u
dGludWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHZhciBjID0gc3RyaW5nLkBjaGFy
Q29kZUF0KGRlcHRoKTsKKyAgICAgICAgICAgIGlmICghYnVja2V0c1tjXSkKKyAgICAgICAgICAg
ICAgICBidWNrZXRzW2NdID0gWyBdOworICAgICAgICAgICAgYnVja2V0c1tjXVtidWNrZXRzW2Nd
Lmxlbmd0aF0gPSBlbnRyeTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgYnVja2V0cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYgKCFidWNrZXRzW2ldKQor
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgZHN0ID0gYnVja2V0U29ydChh
cnJheSwgZHN0LCBidWNrZXRzW2ldLCBkZXB0aCArIDEpOworICAgICAgICB9CisKKyAgICAgICAg
cmV0dXJuIGRzdDsKKyAgICB9CisKICAgICBmdW5jdGlvbiBjb21wYXJhdG9yU29ydChhcnJheSwg
Y29tcGFyYXRvcikKICAgICB7CiAgICAgICAgIHZhciBsZW5ndGggPSBhcnJheS5sZW5ndGggPj4+
IDA7CkBAIC00NDYsMTAgKzQ5MCw3IEBAIGZ1bmN0aW9uIHNvcnQoY29tcGFyYXRvcikKICAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWx1ZUNvdW50OyArK2kpCiAgICAgICAgICAgICBzdHJp
bmdzW2ldID0geyBzdHJpbmc6IEB0b1N0cmluZyhhcnJheVtpXSksIHZhbHVlOiBhcnJheVtpXSB9
OwogCi0gICAgICAgIG1lcmdlU29ydChzdHJpbmdzLCB2YWx1ZUNvdW50LCBzdHJpbmdDb21wYXJh
dG9yKTsKLQotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlQ291bnQ7ICsraSkKLSAg
ICAgICAgICAgIGFycmF5W2ldID0gc3RyaW5nc1tpXS52YWx1ZTsKKyAgICAgICAgYnVja2V0U29y
dChhcnJheSwgMCwgc3RyaW5ncywgMCk7CiAgICAgfQogCiAgICAgaWYgKHRoaXMgPT09IG51bGwp
Cg==
</data>
<flag name="review"
          id="278903"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>