<?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>130283</bug_id>
          
          <creation_ts>2014-03-14 20:31:12 -0700</creation_ts>
          <short_desc>Fix undefined behavior in WTF::equal() in StringImpl.h for i386/x86_64</short_desc>
          <delta_ts>2014-03-16 12:26:30 -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>Web Template Framework</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="David Kilzer (:ddkilzer)">ddkilzer</reporter>
          <assigned_to name="David Kilzer (:ddkilzer)">ddkilzer</assigned_to>
          <cc>andersca</cc>
    
    <cc>barraclough</cc>
    
    <cc>benjamin</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ggaren</cc>
    
    <cc>jonlee</cc>
    
    <cc>roger_fong</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>990800</commentid>
    <comment_count>0</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2014-03-14 20:31:12 -0700</bug_when>
    <thetext>When compiling WebKit with -fcatch-undefined-behavior (UBSan), Safari crashes on launch due to undefined behavior in WTF::equal() due to casting unaligned const char* bytes to unit64_t, uint32_t, etc.

We can fix the unaligned access using memcpy, and clang will still optimize the code the exact same way (without calling memcpy for short lengths).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>990801</commentid>
    <comment_count>1</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2014-03-14 20:31:29 -0700</bug_when>
    <thetext>&lt;rdar://problem/16281477&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>990804</commentid>
    <comment_count>2</comment_count>
      <attachid>226798</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2014-03-14 20:44:55 -0700</bug_when>
    <thetext>Created attachment 226798
i386 assembly before patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>990805</commentid>
    <comment_count>3</comment_count>
      <attachid>226799</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2014-03-14 20:45:33 -0700</bug_when>
    <thetext>Created attachment 226799
i386 assembly with patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>990806</commentid>
    <comment_count>4</comment_count>
      <attachid>226800</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2014-03-14 20:46:13 -0700</bug_when>
    <thetext>Created attachment 226800
x86_64 assembly before patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>990807</commentid>
    <comment_count>5</comment_count>
      <attachid>226801</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2014-03-14 20:46:50 -0700</bug_when>
    <thetext>Created attachment 226801
x86_64 assembly with patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>990810</commentid>
    <comment_count>6</comment_count>
      <attachid>226803</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2014-03-14 21:15:38 -0700</bug_when>
    <thetext>Created attachment 226803
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>990849</commentid>
    <comment_count>7</comment_count>
      <attachid>226803</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-03-15 00:51:22 -0700</bug_when>
    <thetext>Comment on attachment 226803
Patch v1

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

r=me

&gt; Source/WTF/wtf/text/StringImpl.h:919
&gt; +inline T load_unaligned(const char* s)

&quot;loadUnaligned&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>990865</commentid>
    <comment_count>8</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2014-03-15 08:21:52 -0700</bug_when>
    <thetext>Committed r165681: &lt;http://trac.webkit.org/changeset/165681&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>990889</commentid>
    <comment_count>9</comment_count>
      <attachid>226803</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-03-15 14:32:24 -0700</bug_when>
    <thetext>Comment on attachment 226803
Patch v1

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

&gt; Source/WTF/wtf/text/StringImpl.h:926
&gt;  // Do comparisons 8 or 4 bytes-at-a-time on architectures where it&apos;s safe.

I think that this patch renders this comment incorrect. We compile the version that does comparisons multiple bytes at a time on configurations where we believe it will compile to more efficient code than the baseline. Now that we are writing the efficient code in terms of memcpy, I think it may be “safe” everywhere. I’m not even sure the conditional is right anymore, since the code now depends on both the architecture and the compiler. For example, this may have made Windows X86_64 significantly slower.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>990921</commentid>
    <comment_count>10</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2014-03-15 21:38:34 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 226803 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=226803&amp;action=review
&gt; 
&gt; &gt; Source/WTF/wtf/text/StringImpl.h:926
&gt; &gt;  // Do comparisons 8 or 4 bytes-at-a-time on architectures where it&apos;s safe.
&gt; 
&gt; I think that this patch renders this comment incorrect. We compile the version that does comparisons multiple bytes at a time on configurations where we believe it will compile to more efficient code than the baseline. Now that we are writing the efficient code in terms of memcpy, I think it may be “safe” everywhere. I’m not even sure the conditional is right anymore, since the code now depends on both the architecture and the compiler. For example, this may have made Windows X86_64 significantly slower.

Can someone attach assembly output for WTF::stringImplContentEqual() (__ZN3WTFL22stringImplContentEqualERKNS_10StringImplES2_) for Windows?  It would likely be sufficient to check if Visual C++ is smart enough to optimize out the memcpy calls from the function.

Some options are:

1. Add a check for the clang compiler for the conforming implementation, and (optionally) add back the non-conforming ones for other compilers on the same architectures.
2. Back out this patch, then go with Darin&apos;s suggestion in Radar to add some kind of macro to make sure it&apos;s possible to use the slower memcmp() methods when compiling with -fcatch-undefined-behavior.

I would prefer #1, although it bloats the code a bit more.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>990939</commentid>
    <comment_count>11</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-03-16 00:56:25 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; I would prefer #1, although it bloats the code a bit more.

I strongly prefer #1.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>990990</commentid>
    <comment_count>12</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2014-03-16 11:27:51 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #10)
&gt; &gt; I would prefer #1, although it bloats the code a bit more.
&gt; 
&gt; I strongly prefer #1.

I thought of a more targeted fix this morning:

 template&lt;typename T&gt;
 inline T loadUnaligned(const char* s)
 {
+#if COMPILER(CLANG)
     T tmp;
     memcpy(&amp;tmp, s, sizeof(T));
     return tmp;
+#else
+    // This may result in undefined behavior due to an unaligned access.
+    return *reinterpret_cast&lt;const T*&gt;(s);
+#endif
 }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>990993</commentid>
    <comment_count>13</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2014-03-16 11:39:59 -0700</bug_when>
    <thetext>Re-opening for follow-up fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>990998</commentid>
    <comment_count>14</comment_count>
      <attachid>226849</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2014-03-16 11:46:27 -0700</bug_when>
    <thetext>Created attachment 226849
Patch for follow-up issue

Patch to restore behavior prior to &lt;http://trac.webkit.org/r165681&gt; for non-clang compilers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991007</commentid>
    <comment_count>15</comment_count>
      <attachid>226849</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-16 12:26:25 -0700</bug_when>
    <thetext>Comment on attachment 226849
Patch for follow-up issue

Clearing flags on attachment: 226849

Committed r165706: &lt;http://trac.webkit.org/changeset/165706&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991008</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-16 12:26:30 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>226798</attachid>
            <date>2014-03-14 20:44:55 -0700</date>
            <delta_ts>2014-03-14 20:44:55 -0700</delta_ts>
            <desc>i386 assembly before patch</desc>
            <filename>WTF-stringImplContentEqual-const-StringImpl-unchanged-i386.txt</filename>
            <type>text/plain</type>
            <size>3094</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">V1RGLmJ1aWxkL1JlbGVhc2UvV1RGLmJ1aWxkL09iamVjdHMtbm9ybWFsL2kzODYvU3RyaW5nSW1w
bC5vOgooX19URVhULF9fdGV4dCkgc2VjdGlvbgpfX1pOM1dURkwyMnN0cmluZ0ltcGxDb250ZW50
RXF1YWxFUktOU18xMFN0cmluZ0ltcGxFUzJfOgowMDAwNGU1MAlwdXNobAklZWJwCjAwMDA0ZTUx
CW1vdmwJJWVzcCwgJWVicAowMDAwNGU1MwlwdXNobAklZWJ4CjAwMDA0ZTU0CXB1c2hsCSVlZGkK
MDAwMDRlNTUJcHVzaGwJJWVzaQowMDAwNGU1Ngltb3ZsCTB4NCglZWN4KSwgJWVheAowMDAwNGU1
OQljbXBsCTB4NCglZWR4KSwgJWVheAowMDAwNGU1YwlqbmUJMHg0ZWIzCjAwMDA0ZTVlCW1vdmwJ
X19aTjNXVEYxMFN0cmluZ0ltcGxEMkV2KCVlZHgpLCAlZXNpCjAwMDA0ZTYxCWFuZGwJJDB4MjAs
ICVlc2kKMDAwMDRlNjQJdGVzdGIJJDB4MjAsIF9fWk4zV1RGMTBTdHJpbmdJbXBsRDJFdiglZWN4
KQowMDAwNGU2OAlqZQkweDRlYmQKMDAwMDRlNmEJbW92bAkweDgoJWVjeCksICVlY3gKMDAwMDRl
NmQJdGVzdGwJJWVzaSwgJWVzaQowMDAwNGU2ZglqZQkweDRlZTcKMDAwMDRlNzEJbW92bAkweDgo
JWVkeCksICVlZHgKMDAwMDRlNzQJbW92bAklZWF4LCAlZXNpCjAwMDA0ZTc2CXNocmwJJDB4Miwg
JWVzaQowMDAwNGU3OQl0ZXN0bAklZXNpLCAlZXNpCjAwMDA0ZTdiCWplCTB4NGU5MwowMDAwNGU3
ZAlub3BsCV9fWk4zV1RGMTBTdHJpbmdJbXBsRDFFdiglZWF4KQowMDAwNGU4MAltb3ZsCV9fWk4z
V1RGMTBTdHJpbmdJbXBsRDFFdiglZWN4KSwgJWVkaQowMDAwNGU4MgljbXBsCV9fWk4zV1RGMTBT
dHJpbmdJbXBsRDFFdiglZWR4KSwgJWVkaQowMDAwNGU4NAlqbmUJMHg0ZjQ4CjAwMDA0ZThhCWFk
ZGwJJDB4NCwgJWVjeAowMDAwNGU4ZAlhZGRsCSQweDQsICVlZHgKMDAwMDRlOTAJZGVjbAklZXNp
CjAwMDA0ZTkxCWpuZQkweDRlODAKMDAwMDRlOTMJbW92YgkkMHgxLCAlYmwKMDAwMDRlOTUJYW5k
bAkkMHgzLCAlZWF4CjAwMDA0ZTk4CWplCTB4NGViNQowMDAwNGU5YQl4b3JsCSVlc2ksICVlc2kK
MDAwMDRlOWMJbm9wbAlfX1pOM1dURjEwU3RyaW5nSW1wbEQxRXYoJWVheCkKMDAwMDRlYTAJY21w
bAklZWF4LCAlZXNpCjAwMDA0ZWEyCWphZQkweDRlYjUKMDAwMDRlYTQJbW92YglfX1pOM1dURjEw
U3RyaW5nSW1wbEQxRXYoJWVjeCwlZXNpKSwgJWJoCjAwMDA0ZWE3CWNtcGIJX19aTjNXVEYxMFN0
cmluZ0ltcGxEMUV2KCVlZHgsJWVzaSksICViaAowMDAwNGVhYQlsZWFsCTB4MSglZXNpKSwgJWVz
aQowMDAwNGVhZAlqZQkweDRlYTAKMDAwMDRlYWYJeG9yYgklYmwsICVibAowMDAwNGViMQlqbXAJ
MHg0ZWI1CjAwMDA0ZWIzCXhvcmIJJWJsLCAlYmwKMDAwMDRlYjUJbW92emJsCSVibCwgJWVheAow
MDAwNGViOAlwb3BsCSVlc2kKMDAwMDRlYjkJcG9wbAklZWRpCjAwMDA0ZWJhCXBvcGwJJWVieAow
MDAwNGViYglwb3BsCSVlYnAKMDAwMDRlYmMJcmV0CjAwMDA0ZWJkCW1vdmwJMHg4KCVlY3gpLCAl
ZWN4CjAwMDA0ZWMwCXRlc3RsCSVlc2ksICVlc2kKMDAwMDRlYzIJamUJMHg0ZjA3CjAwMDA0ZWM0
CW1vdmwJMHg4KCVlZHgpLCAlZWR4CjAwMDA0ZWM3CXhvcmwJJWVzaSwgJWVzaQowMDAwNGVjOQlu
b3BsCV9fWk4zV1RGMTBTdHJpbmdJbXBsRDFFdiglZWF4KQowMDAwNGVkMAltb3ZiCSQweDEsICVi
bAowMDAwNGVkMgljbXBsCSVlYXgsICVlc2kKMDAwMDRlZDQJamFlCTB4NGViNQowMDAwNGVkNglt
b3Z6d2wJX19aTjNXVEYxMFN0cmluZ0ltcGxEMUV2KCVlY3gsJWVzaSwyKSwgJWVkaQowMDAwNGVk
YQltb3Z6YmwJX19aTjNXVEYxMFN0cmluZ0ltcGxEMUV2KCVlZHgsJWVzaSksICVlYngKMDAwMDRl
ZGUJaW5jbAklZXNpCjAwMDA0ZWRmCWNtcGwJJWVkaSwgJWVieAowMDAwNGVlMQlqZQkweDRlZDAK
MDAwMDRlZTMJeG9yYgklYmwsICVibAowMDAwNGVlNQlqbXAJMHg0ZWI1CjAwMDA0ZWU3CW1vdmwJ
MHg4KCVlZHgpLCAlZWR4CjAwMDA0ZWVhCXhvcmwJJWVzaSwgJWVzaQowMDAwNGVlYwlub3BsCV9f
Wk4zV1RGMTBTdHJpbmdJbXBsRDFFdiglZWF4KQowMDAwNGVmMAltb3ZiCSQweDEsICVibAowMDAw
NGVmMgljbXBsCSVlYXgsICVlc2kKMDAwMDRlZjQJamFlCTB4NGViNQowMDAwNGVmNgltb3Z6d2wJ
X19aTjNXVEYxMFN0cmluZ0ltcGxEMUV2KCVlZHgsJWVzaSwyKSwgJWVkaQowMDAwNGVmYQltb3Z6
YmwJX19aTjNXVEYxMFN0cmluZ0ltcGxEMUV2KCVlY3gsJWVzaSksICVlYngKMDAwMDRlZmUJaW5j
bAklZXNpCjAwMDA0ZWZmCWNtcGwJJWVkaSwgJWVieAowMDAwNGYwMQlqZQkweDRlZjAKMDAwMDRm
MDMJeG9yYgklYmwsICVibAowMDAwNGYwNQlqbXAJMHg0ZWI1CjAwMDA0ZjA3CW1vdmwJMHg4KCVl
ZHgpLCAlZWR4CjAwMDA0ZjBhCW1vdmwJJWVheCwgJWVzaQowMDAwNGYwYwlzaHJsCSVlc2kKMDAw
MDRmMGUJdGVzdGwJJWVzaSwgJWVzaQowMDAwNGYxMAlqZQkweDRmMmYKMDAwMDRmMTIJbm9wdwkl
Y3M6X19aTjNXVEYxMFN0cmluZ0ltcGxEMUV2KCVlYXgsJWVheCkKMDAwMDRmMjAJbW92bAlfX1pO
M1dURjEwU3RyaW5nSW1wbEQxRXYoJWVjeCksICVlZGkKMDAwMDRmMjIJY21wbAlfX1pOM1dURjEw
U3RyaW5nSW1wbEQxRXYoJWVkeCksICVlZGkKMDAwMDRmMjQJam5lCTB4NGY0ZgowMDAwNGYyNglh
ZGRsCSQweDQsICVlY3gKMDAwMDRmMjkJYWRkbAkkMHg0LCAlZWR4CjAwMDA0ZjJjCWRlY2wJJWVz
aQowMDAwNGYyZAlqbmUJMHg0ZjIwCjAwMDA0ZjJmCXRlc3RiCSQweDEsICVhbAowMDAwNGYzMQlq
ZQkweDRmNDEKMDAwMDRmMzMJbW92dwlfX1pOM1dURjEwU3RyaW5nSW1wbEQxRXYoJWVjeCksICVh
eAowMDAwNGYzNgljbXB3CV9fWk4zV1RGMTBTdHJpbmdJbXBsRDFFdiglZWR4KSwgJWF4CjAwMDA0
ZjM5CW1vdmIJJF9fWk4zV1RGMTBTdHJpbmdJbXBsRDFFdiwgJWJsCjAwMDA0ZjNiCWpuZQkweDRl
YjUKMDAwMDRmNDEJbW92YgkkMHgxLCAlYmwKMDAwMDRmNDMJam1wCTB4NGViNQowMDAwNGY0OAl4
b3JiCSVibCwgJWJsCjAwMDA0ZjRhCWptcAkweDRlYjUKMDAwMDRmNGYJeG9yYgklYmwsICVibAow
MDAwNGY1MQlqbXAJMHg0ZWI1CjAwMDA0ZjU2CW5vcHcJJWNzOl9fWk4zV1RGMTBTdHJpbmdJbXBs
RDFFdiglZWF4LCVlYXgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>226799</attachid>
            <date>2014-03-14 20:45:33 -0700</date>
            <delta_ts>2014-03-14 20:45:33 -0700</delta_ts>
            <desc>i386 assembly with patch</desc>
            <filename>WTF-stringImplContentEqual-const-StringImpl-with-memcpy-i386.txt</filename>
            <type>text/plain</type>
            <size>3094</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">V1RGLmJ1aWxkL1JlbGVhc2UvV1RGLmJ1aWxkL09iamVjdHMtbm9ybWFsL2kzODYvU3RyaW5nSW1w
bC5vOgooX19URVhULF9fdGV4dCkgc2VjdGlvbgpfX1pOM1dURkwyMnN0cmluZ0ltcGxDb250ZW50
RXF1YWxFUktOU18xMFN0cmluZ0ltcGxFUzJfOgowMDAwNGU1MAlwdXNobAklZWJwCjAwMDA0ZTUx
CW1vdmwJJWVzcCwgJWVicAowMDAwNGU1MwlwdXNobAklZWJ4CjAwMDA0ZTU0CXB1c2hsCSVlZGkK
MDAwMDRlNTUJcHVzaGwJJWVzaQowMDAwNGU1Ngltb3ZsCTB4NCglZWN4KSwgJWVheAowMDAwNGU1
OQljbXBsCTB4NCglZWR4KSwgJWVheAowMDAwNGU1YwlqbmUJMHg0ZWIzCjAwMDA0ZTVlCW1vdmwJ
X19aTjNXVEYxMFN0cmluZ0ltcGxEMkV2KCVlZHgpLCAlZXNpCjAwMDA0ZTYxCWFuZGwJJDB4MjAs
ICVlc2kKMDAwMDRlNjQJdGVzdGIJJDB4MjAsIF9fWk4zV1RGMTBTdHJpbmdJbXBsRDJFdiglZWN4
KQowMDAwNGU2OAlqZQkweDRlYmQKMDAwMDRlNmEJbW92bAkweDgoJWVjeCksICVlY3gKMDAwMDRl
NmQJdGVzdGwJJWVzaSwgJWVzaQowMDAwNGU2ZglqZQkweDRlZTcKMDAwMDRlNzEJbW92bAkweDgo
JWVkeCksICVlZHgKMDAwMDRlNzQJbW92bAklZWF4LCAlZXNpCjAwMDA0ZTc2CXNocmwJJDB4Miwg
JWVzaQowMDAwNGU3OQl0ZXN0bAklZXNpLCAlZXNpCjAwMDA0ZTdiCWplCTB4NGU5MwowMDAwNGU3
ZAlub3BsCV9fWk4zV1RGMTBTdHJpbmdJbXBsRDFFdiglZWF4KQowMDAwNGU4MAltb3ZsCV9fWk4z
V1RGMTBTdHJpbmdJbXBsRDFFdiglZWN4KSwgJWVkaQowMDAwNGU4MgljbXBsCV9fWk4zV1RGMTBT
dHJpbmdJbXBsRDFFdiglZWR4KSwgJWVkaQowMDAwNGU4NAlqbmUJMHg0ZjQ4CjAwMDA0ZThhCWFk
ZGwJJDB4NCwgJWVkeAowMDAwNGU4ZAlhZGRsCSQweDQsICVlY3gKMDAwMDRlOTAJZGVjbAklZXNp
CjAwMDA0ZTkxCWpuZQkweDRlODAKMDAwMDRlOTMJbW92YgkkMHgxLCAlYmwKMDAwMDRlOTUJYW5k
bAkkMHgzLCAlZWF4CjAwMDA0ZTk4CWplCTB4NGViNQowMDAwNGU5YQl4b3JsCSVlc2ksICVlc2kK
MDAwMDRlOWMJbm9wbAlfX1pOM1dURjEwU3RyaW5nSW1wbEQxRXYoJWVheCkKMDAwMDRlYTAJY21w
bAklZWF4LCAlZXNpCjAwMDA0ZWEyCWphZQkweDRlYjUKMDAwMDRlYTQJbW92YglfX1pOM1dURjEw
U3RyaW5nSW1wbEQxRXYoJWVjeCwlZXNpKSwgJWJoCjAwMDA0ZWE3CWNtcGIJX19aTjNXVEYxMFN0
cmluZ0ltcGxEMUV2KCVlZHgsJWVzaSksICViaAowMDAwNGVhYQlsZWFsCTB4MSglZXNpKSwgJWVz
aQowMDAwNGVhZAlqZQkweDRlYTAKMDAwMDRlYWYJeG9yYgklYmwsICVibAowMDAwNGViMQlqbXAJ
MHg0ZWI1CjAwMDA0ZWIzCXhvcmIJJWJsLCAlYmwKMDAwMDRlYjUJbW92emJsCSVibCwgJWVheAow
MDAwNGViOAlwb3BsCSVlc2kKMDAwMDRlYjkJcG9wbAklZWRpCjAwMDA0ZWJhCXBvcGwJJWVieAow
MDAwNGViYglwb3BsCSVlYnAKMDAwMDRlYmMJcmV0CjAwMDA0ZWJkCW1vdmwJMHg4KCVlY3gpLCAl
ZWN4CjAwMDA0ZWMwCXRlc3RsCSVlc2ksICVlc2kKMDAwMDRlYzIJamUJMHg0ZjA3CjAwMDA0ZWM0
CW1vdmwJMHg4KCVlZHgpLCAlZWR4CjAwMDA0ZWM3CXhvcmwJJWVzaSwgJWVzaQowMDAwNGVjOQlu
b3BsCV9fWk4zV1RGMTBTdHJpbmdJbXBsRDFFdiglZWF4KQowMDAwNGVkMAltb3ZiCSQweDEsICVi
bAowMDAwNGVkMgljbXBsCSVlYXgsICVlc2kKMDAwMDRlZDQJamFlCTB4NGViNQowMDAwNGVkNglt
b3Z6d2wJX19aTjNXVEYxMFN0cmluZ0ltcGxEMUV2KCVlY3gsJWVzaSwyKSwgJWVkaQowMDAwNGVk
YQltb3Z6YmwJX19aTjNXVEYxMFN0cmluZ0ltcGxEMUV2KCVlZHgsJWVzaSksICVlYngKMDAwMDRl
ZGUJaW5jbAklZXNpCjAwMDA0ZWRmCWNtcGwJJWVkaSwgJWVieAowMDAwNGVlMQlqZQkweDRlZDAK
MDAwMDRlZTMJeG9yYgklYmwsICVibAowMDAwNGVlNQlqbXAJMHg0ZWI1CjAwMDA0ZWU3CW1vdmwJ
MHg4KCVlZHgpLCAlZWR4CjAwMDA0ZWVhCXhvcmwJJWVzaSwgJWVzaQowMDAwNGVlYwlub3BsCV9f
Wk4zV1RGMTBTdHJpbmdJbXBsRDFFdiglZWF4KQowMDAwNGVmMAltb3ZiCSQweDEsICVibAowMDAw
NGVmMgljbXBsCSVlYXgsICVlc2kKMDAwMDRlZjQJamFlCTB4NGViNQowMDAwNGVmNgltb3Z6d2wJ
X19aTjNXVEYxMFN0cmluZ0ltcGxEMUV2KCVlZHgsJWVzaSwyKSwgJWVkaQowMDAwNGVmYQltb3Z6
YmwJX19aTjNXVEYxMFN0cmluZ0ltcGxEMUV2KCVlY3gsJWVzaSksICVlYngKMDAwMDRlZmUJaW5j
bAklZXNpCjAwMDA0ZWZmCWNtcGwJJWVkaSwgJWVieAowMDAwNGYwMQlqZQkweDRlZjAKMDAwMDRm
MDMJeG9yYgklYmwsICVibAowMDAwNGYwNQlqbXAJMHg0ZWI1CjAwMDA0ZjA3CW1vdmwJMHg4KCVl
ZHgpLCAlZWR4CjAwMDA0ZjBhCW1vdmwJJWVheCwgJWVzaQowMDAwNGYwYwlzaHJsCSVlc2kKMDAw
MDRmMGUJdGVzdGwJJWVzaSwgJWVzaQowMDAwNGYxMAlqZQkweDRmMmYKMDAwMDRmMTIJbm9wdwkl
Y3M6X19aTjNXVEYxMFN0cmluZ0ltcGxEMUV2KCVlYXgsJWVheCkKMDAwMDRmMjAJbW92bAlfX1pO
M1dURjEwU3RyaW5nSW1wbEQxRXYoJWVjeCksICVlZGkKMDAwMDRmMjIJY21wbAlfX1pOM1dURjEw
U3RyaW5nSW1wbEQxRXYoJWVkeCksICVlZGkKMDAwMDRmMjQJam5lCTB4NGY0ZgowMDAwNGYyNglh
ZGRsCSQweDQsICVlZHgKMDAwMDRmMjkJYWRkbAkkMHg0LCAlZWN4CjAwMDA0ZjJjCWRlY2wJJWVz
aQowMDAwNGYyZAlqbmUJMHg0ZjIwCjAwMDA0ZjJmCXRlc3RiCSQweDEsICVhbAowMDAwNGYzMQlq
ZQkweDRmNDEKMDAwMDRmMzMJbW92dwlfX1pOM1dURjEwU3RyaW5nSW1wbEQxRXYoJWVjeCksICVh
eAowMDAwNGYzNgljbXB3CV9fWk4zV1RGMTBTdHJpbmdJbXBsRDFFdiglZWR4KSwgJWF4CjAwMDA0
ZjM5CW1vdmIJJF9fWk4zV1RGMTBTdHJpbmdJbXBsRDFFdiwgJWJsCjAwMDA0ZjNiCWpuZQkweDRl
YjUKMDAwMDRmNDEJbW92YgkkMHgxLCAlYmwKMDAwMDRmNDMJam1wCTB4NGViNQowMDAwNGY0OAl4
b3JiCSVibCwgJWJsCjAwMDA0ZjRhCWptcAkweDRlYjUKMDAwMDRmNGYJeG9yYgklYmwsICVibAow
MDAwNGY1MQlqbXAJMHg0ZWI1CjAwMDA0ZjU2CW5vcHcJJWNzOl9fWk4zV1RGMTBTdHJpbmdJbXBs
RDFFdiglZWF4LCVlYXgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>226800</attachid>
            <date>2014-03-14 20:46:13 -0700</date>
            <delta_ts>2014-03-14 20:46:13 -0700</delta_ts>
            <desc>x86_64 assembly before patch</desc>
            <filename>WTF-stringImplContentEqual-const-StringImpl-unchanged-x86_64.txt</filename>
            <type>text/plain</type>
            <size>4470</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">V1RGLmJ1aWxkL1JlbGVhc2UvV1RGLmJ1aWxkL09iamVjdHMtbm9ybWFsL3g4Nl82NC9TdHJpbmdJ
bXBsLm86CihfX1RFWFQsX190ZXh0KSBzZWN0aW9uCl9fWk4zV1RGTDIyc3RyaW5nSW1wbENvbnRl
bnRFcXVhbEVSS05TXzEwU3RyaW5nSW1wbEVTMl86CjAwMDAwMDAwMDAwMDUwYjAJcHVzaHEJJXJi
cAowMDAwMDAwMDAwMDA1MGIxCW1vdnEJJXJzcCwgJXJicAowMDAwMDAwMDAwMDA1MGI0CW1vdmwJ
MHg0KCVyZGkpLCAlcjhkCjAwMDAwMDAwMDAwMDUwYjgJY21wbAkweDQoJXJzaSksICVyOGQKMDAw
MDAwMDAwMDAwNTBiYwlqbmUJMHg1MTRkCjAwMDAwMDAwMDAwMDUwYzIJbW92bAkweDE4KCVyc2kp
LCAlZWF4CjAwMDAwMDAwMDAwMDUwYzUJYW5kbAkkMHgyMCwgJWVheAowMDAwMDAwMDAwMDA1MGM4
CXRlc3RiCSQweDIwLCAweDE4KCVyZGkpCjAwMDAwMDAwMDAwMDUwY2MJamUJMHg1MTUxCjAwMDAw
MDAwMDAwMDUwZDIJbW92cQkweDgoJXJkaSksICVyZHgKMDAwMDAwMDAwMDAwNTBkNgl0ZXN0bAkl
ZWF4LCAlZWF4CjAwMDAwMDAwMDAwMDUwZDgJamUJMHg1MTdlCjAwMDAwMDAwMDAwMDUwZGUJbW92
cQkweDgoJXJzaSksICVyYXgKMDAwMDAwMDAwMDAwNTBlMgltb3ZsCSVyOGQsICVlc2kKMDAwMDAw
MDAwMDAwNTBlNQlzaHJsCSQweDMsICVlc2kKMDAwMDAwMDAwMDAwNTBlOAl0ZXN0bAklZXNpLCAl
ZXNpCjAwMDAwMDAwMDAwMDUwZWEJamUJMHg1MTA4CjAwMDAwMDAwMDAwMDUwZWMJbm9wbAlfX1pO
M1dURjEwU3RyaW5nSW1wbEQxRXYoJXJheCkKMDAwMDAwMDAwMDAwNTBmMAltb3ZxCV9fWk4zV1RG
MTBTdHJpbmdJbXBsRDFFdiglcmR4KSwgJXJjeAowMDAwMDAwMDAwMDA1MGYzCWNtcHEJX19aTjNX
VEYxMFN0cmluZ0ltcGxEMUV2KCVyYXgpLCAlcmN4CjAwMDAwMDAwMDAwMDUwZjYJam5lCTB4NTFm
YwowMDAwMDAwMDAwMDA1MGZjCWFkZHEJJDB4OCwgJXJkeAowMDAwMDAwMDAwMDA1MTAwCWFkZHEJ
JDB4OCwgJXJheAowMDAwMDAwMDAwMDA1MTA0CWRlY2wJJWVzaQowMDAwMDAwMDAwMDA1MTA2CWpu
ZQkweDUwZjAKMDAwMDAwMDAwMDAwNTEwOAl0ZXN0YgkkMHg0LCAlcjhiCjAwMDAwMDAwMDAwMDUx
MGMJamUJMHg1MTIwCjAwMDAwMDAwMDAwMDUxMGUJbW92bAlfX1pOM1dURjEwU3RyaW5nSW1wbEQx
RXYoJXJkeCksICVlY3gKMDAwMDAwMDAwMDAwNTExMAljbXBsCV9fWk4zV1RGMTBTdHJpbmdJbXBs
RDFFdiglcmF4KSwgJWVjeAowMDAwMDAwMDAwMDA1MTEyCWpuZQkweDUyMDAKMDAwMDAwMDAwMDAw
NTExOAlhZGRxCSQweDQsICVyYXgKMDAwMDAwMDAwMDAwNTExYwlhZGRxCSQweDQsICVyZHgKMDAw
MDAwMDAwMDAwNTEyMAl0ZXN0YgkkMHgyLCAlcjhiCjAwMDAwMDAwMDAwMDUxMjQJamUJMHg1MTNh
CjAwMDAwMDAwMDAwMDUxMjYJbW92dwlfX1pOM1dURjEwU3RyaW5nSW1wbEQxRXYoJXJkeCksICVj
eAowMDAwMDAwMDAwMDA1MTI5CWNtcHcJX19aTjNXVEYxMFN0cmluZ0ltcGxEMUV2KCVyYXgpLCAl
Y3gKMDAwMDAwMDAwMDAwNTEyYwlqbmUJMHg1MjA0CjAwMDAwMDAwMDAwMDUxMzIJYWRkcQkkMHgy
LCAlcmF4CjAwMDAwMDAwMDAwMDUxMzYJYWRkcQkkMHgyLCAlcmR4CjAwMDAwMDAwMDAwMDUxM2EJ
dGVzdGIJJDB4MSwgJXI4YgowMDAwMDAwMDAwMDA1MTNlCWplCTB4NTFmOAowMDAwMDAwMDAwMDA1
MTQ0CW1vdmIJX19aTjNXVEYxMFN0cmluZ0ltcGxEMUV2KCVyZHgpLCAlY2wKMDAwMDAwMDAwMDAw
NTE0NgljbXBiCV9fWk4zV1RGMTBTdHJpbmdJbXBsRDFFdiglcmF4KSwgJWNsCjAwMDAwMDAwMDAw
MDUxNDgJam1wcQkweDUxZjQKMDAwMDAwMDAwMDAwNTE0ZAl4b3JiCSVhbCwgJWFsCjAwMDAwMDAw
MDAwMDUxNGYJcG9wcQklcmJwCjAwMDAwMDAwMDAwMDUxNTAJcmV0CjAwMDAwMDAwMDAwMDUxNTEJ
bW92cQkweDgoJXJkaSksICVyZHgKMDAwMDAwMDAwMDAwNTE1NQl0ZXN0bAklZWF4LCAlZWF4CjAw
MDAwMDAwMDAwMDUxNTcJamUJMHg1MWFhCjAwMDAwMDAwMDAwMDUxNTkJbW92cQkweDgoJXJzaSks
ICVyc2kKMDAwMDAwMDAwMDAwNTE1ZAl4b3JsCSVlZGksICVlZGkKMDAwMDAwMDAwMDAwNTE1Zglu
b3AKMDAwMDAwMDAwMDAwNTE2MAltb3ZiCSQweDEsICVhbAowMDAwMDAwMDAwMDA1MTYyCWNtcGwJ
JXI4ZCwgJWVkaQowMDAwMDAwMDAwMDA1MTY1CWphZQkweDUxZmEKMDAwMDAwMDAwMDAwNTE2Yglt
b3Z6d2wJX19aTjNXVEYxMFN0cmluZ0ltcGxEMUV2KCVyZHgsJXJkaSwyKSwgJWVheAowMDAwMDAw
MDAwMDA1MTZmCW1vdnpibAlfX1pOM1dURjEwU3RyaW5nSW1wbEQxRXYoJXJzaSwlcmRpKSwgJWVj
eAowMDAwMDAwMDAwMDA1MTczCWluY3EJJXJkaQowMDAwMDAwMDAwMDA1MTc2CWNtcGwJJWVheCwg
JWVjeAowMDAwMDAwMDAwMDA1MTc4CWplCTB4NTE2MAowMDAwMDAwMDAwMDA1MTdhCXhvcmIJJWFs
LCAlYWwKMDAwMDAwMDAwMDAwNTE3Ywlwb3BxCSVyYnAKMDAwMDAwMDAwMDAwNTE3ZAlyZXQKMDAw
MDAwMDAwMDAwNTE3ZQltb3ZxCTB4OCglcnNpKSwgJXJzaQowMDAwMDAwMDAwMDA1MTgyCXhvcmwJ
JWVkaSwgJWVkaQowMDAwMDAwMDAwMDA1MTg0CW5vcHcJJWNzOl9fWk4zV1RGMTBTdHJpbmdJbXBs
RDFFdiglcmF4LCVyYXgpCjAwMDAwMDAwMDAwMDUxOTAJbW92YgkkMHgxLCAlYWwKMDAwMDAwMDAw
MDAwNTE5MgljbXBsCSVyOGQsICVlZGkKMDAwMDAwMDAwMDAwNTE5NQlqYWUJMHg1MWZhCjAwMDAw
MDAwMDAwMDUxOTcJbW92endsCV9fWk4zV1RGMTBTdHJpbmdJbXBsRDFFdiglcnNpLCVyZGksMiks
ICVlYXgKMDAwMDAwMDAwMDAwNTE5Ygltb3Z6YmwJX19aTjNXVEYxMFN0cmluZ0ltcGxEMUV2KCVy
ZHgsJXJkaSksICVlY3gKMDAwMDAwMDAwMDAwNTE5ZglpbmNxCSVyZGkKMDAwMDAwMDAwMDAwNTFh
MgljbXBsCSVlYXgsICVlY3gKMDAwMDAwMDAwMDAwNTFhNAlqZQkweDUxOTAKMDAwMDAwMDAwMDAw
NTFhNgl4b3JiCSVhbCwgJWFsCjAwMDAwMDAwMDAwMDUxYTgJcG9wcQklcmJwCjAwMDAwMDAwMDAw
MDUxYTkJcmV0CjAwMDAwMDAwMDAwMDUxYWEJbW92cQkweDgoJXJzaSksICVyYXgKMDAwMDAwMDAw
MDAwNTFhZQltb3ZsCSVyOGQsICVlc2kKMDAwMDAwMDAwMDAwNTFiMQlzaHJsCSQweDIsICVlc2kK
MDAwMDAwMDAwMDAwNTFiNAl0ZXN0bAklZXNpLCAlZXNpCjAwMDAwMDAwMDAwMDUxYjYJamUJMHg1
MWQ0CjAwMDAwMDAwMDAwMDUxYjgJbm9wbAlfX1pOM1dURjEwU3RyaW5nSW1wbEQxRXYoJXJheCwl
cmF4KQowMDAwMDAwMDAwMDA1MWMwCW1vdnEJX19aTjNXVEYxMFN0cmluZ0ltcGxEMUV2KCVyZHgp
LCAlcmN4CjAwMDAwMDAwMDAwMDUxYzMJY21wcQlfX1pOM1dURjEwU3RyaW5nSW1wbEQxRXYoJXJh
eCksICVyY3gKMDAwMDAwMDAwMDAwNTFjNglqbmUJMHg1MjA4CjAwMDAwMDAwMDAwMDUxYzgJYWRk
cQkkMHg4LCAlcmR4CjAwMDAwMDAwMDAwMDUxY2MJYWRkcQkkMHg4LCAlcmF4CjAwMDAwMDAwMDAw
MDUxZDAJZGVjbAklZXNpCjAwMDAwMDAwMDAwMDUxZDIJam5lCTB4NTFjMAowMDAwMDAwMDAwMDA1
MWQ0CXRlc3RiCSQweDIsICVyOGIKMDAwMDAwMDAwMDAwNTFkOAlqZQkweDUxZTgKMDAwMDAwMDAw
MDAwNTFkYQltb3ZsCV9fWk4zV1RGMTBTdHJpbmdJbXBsRDFFdiglcmR4KSwgJWVjeAowMDAwMDAw
MDAwMDA1MWRjCWNtcGwJX19aTjNXVEYxMFN0cmluZ0ltcGxEMUV2KCVyYXgpLCAlZWN4CjAwMDAw
MDAwMDAwMDUxZGUJam5lCTB4NTIwYwowMDAwMDAwMDAwMDA1MWUwCWFkZHEJJDB4NCwgJXJheAow
MDAwMDAwMDAwMDA1MWU0CWFkZHEJJDB4NCwgJXJkeAowMDAwMDAwMDAwMDA1MWU4CXRlc3RiCSQw
eDEsICVyOGIKMDAwMDAwMDAwMDAwNTFlYwlqZQkweDUxZjgKMDAwMDAwMDAwMDAwNTFlZQltb3Z3
CV9fWk4zV1RGMTBTdHJpbmdJbXBsRDFFdiglcmR4KSwgJWN4CjAwMDAwMDAwMDAwMDUxZjEJY21w
dwlfX1pOM1dURjEwU3RyaW5nSW1wbEQxRXYoJXJheCksICVjeAowMDAwMDAwMDAwMDA1MWY0CW1v
dmIJJF9fWk4zV1RGMTBTdHJpbmdJbXBsRDFFdiwgJWFsCjAwMDAwMDAwMDAwMDUxZjYJam5lCTB4
NTFmYQowMDAwMDAwMDAwMDA1MWY4CW1vdmIJJDB4MSwgJWFsCjAwMDAwMDAwMDAwMDUxZmEJcG9w
cQklcmJwCjAwMDAwMDAwMDAwMDUxZmIJcmV0CjAwMDAwMDAwMDAwMDUxZmMJeG9yYgklYWwsICVh
bAowMDAwMDAwMDAwMDA1MWZlCXBvcHEJJXJicAowMDAwMDAwMDAwMDA1MWZmCXJldAowMDAwMDAw
MDAwMDA1MjAwCXhvcmIJJWFsLCAlYWwKMDAwMDAwMDAwMDAwNTIwMglwb3BxCSVyYnAKMDAwMDAw
MDAwMDAwNTIwMwlyZXQKMDAwMDAwMDAwMDAwNTIwNAl4b3JiCSVhbCwgJWFsCjAwMDAwMDAwMDAw
MDUyMDYJcG9wcQklcmJwCjAwMDAwMDAwMDAwMDUyMDcJcmV0CjAwMDAwMDAwMDAwMDUyMDgJeG9y
YgklYWwsICVhbAowMDAwMDAwMDAwMDA1MjBhCXBvcHEJJXJicAowMDAwMDAwMDAwMDA1MjBiCXJl
dAowMDAwMDAwMDAwMDA1MjBjCXhvcmIJJWFsLCAlYWwKMDAwMDAwMDAwMDAwNTIwZQlwb3BxCSVy
YnAKMDAwMDAwMDAwMDAwNTIwZglyZXQK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>226801</attachid>
            <date>2014-03-14 20:46:50 -0700</date>
            <delta_ts>2014-03-14 20:46:50 -0700</delta_ts>
            <desc>x86_64 assembly with patch</desc>
            <filename>WTF-stringImplContentEqual-const-StringImpl-with-memcpy-x86_64.txt</filename>
            <type>text/plain</type>
            <size>4470</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">V1RGLmJ1aWxkL1JlbGVhc2UvV1RGLmJ1aWxkL09iamVjdHMtbm9ybWFsL3g4Nl82NC9TdHJpbmdJ
bXBsLm86CihfX1RFWFQsX190ZXh0KSBzZWN0aW9uCl9fWk4zV1RGTDIyc3RyaW5nSW1wbENvbnRl
bnRFcXVhbEVSS05TXzEwU3RyaW5nSW1wbEVTMl86CjAwMDAwMDAwMDAwMDUwYTAJcHVzaHEJJXJi
cAowMDAwMDAwMDAwMDA1MGExCW1vdnEJJXJzcCwgJXJicAowMDAwMDAwMDAwMDA1MGE0CW1vdmwJ
MHg0KCVyZGkpLCAlcjhkCjAwMDAwMDAwMDAwMDUwYTgJY21wbAkweDQoJXJzaSksICVyOGQKMDAw
MDAwMDAwMDAwNTBhYwlqbmUJMHg1MTNkCjAwMDAwMDAwMDAwMDUwYjIJbW92bAkweDE4KCVyc2kp
LCAlZWF4CjAwMDAwMDAwMDAwMDUwYjUJYW5kbAkkMHgyMCwgJWVheAowMDAwMDAwMDAwMDA1MGI4
CXRlc3RiCSQweDIwLCAweDE4KCVyZGkpCjAwMDAwMDAwMDAwMDUwYmMJamUJMHg1MTQxCjAwMDAw
MDAwMDAwMDUwYzIJbW92cQkweDgoJXJkaSksICVyZHgKMDAwMDAwMDAwMDAwNTBjNgl0ZXN0bAkl
ZWF4LCAlZWF4CjAwMDAwMDAwMDAwMDUwYzgJamUJMHg1MTZlCjAwMDAwMDAwMDAwMDUwY2UJbW92
cQkweDgoJXJzaSksICVyYXgKMDAwMDAwMDAwMDAwNTBkMgltb3ZsCSVyOGQsICVlc2kKMDAwMDAw
MDAwMDAwNTBkNQlzaHJsCSQweDMsICVlc2kKMDAwMDAwMDAwMDAwNTBkOAl0ZXN0bAklZXNpLCAl
ZXNpCjAwMDAwMDAwMDAwMDUwZGEJamUJMHg1MGY4CjAwMDAwMDAwMDAwMDUwZGMJbm9wbAlfX1pO
M1dURjEwU3RyaW5nSW1wbEQxRXYoJXJheCkKMDAwMDAwMDAwMDAwNTBlMAltb3ZxCV9fWk4zV1RG
MTBTdHJpbmdJbXBsRDFFdiglcmR4KSwgJXJjeAowMDAwMDAwMDAwMDA1MGUzCWNtcHEJX19aTjNX
VEYxMFN0cmluZ0ltcGxEMUV2KCVyYXgpLCAlcmN4CjAwMDAwMDAwMDAwMDUwZTYJam5lCTB4NTFl
YwowMDAwMDAwMDAwMDA1MGVjCWFkZHEJJDB4OCwgJXJheAowMDAwMDAwMDAwMDA1MGYwCWFkZHEJ
JDB4OCwgJXJkeAowMDAwMDAwMDAwMDA1MGY0CWRlY2wJJWVzaQowMDAwMDAwMDAwMDA1MGY2CWpu
ZQkweDUwZTAKMDAwMDAwMDAwMDAwNTBmOAl0ZXN0YgkkMHg0LCAlcjhiCjAwMDAwMDAwMDAwMDUw
ZmMJamUJMHg1MTEwCjAwMDAwMDAwMDAwMDUwZmUJbW92bAlfX1pOM1dURjEwU3RyaW5nSW1wbEQx
RXYoJXJkeCksICVlY3gKMDAwMDAwMDAwMDAwNTEwMAljbXBsCV9fWk4zV1RGMTBTdHJpbmdJbXBs
RDFFdiglcmF4KSwgJWVjeAowMDAwMDAwMDAwMDA1MTAyCWpuZQkweDUxZjAKMDAwMDAwMDAwMDAw
NTEwOAlhZGRxCSQweDQsICVyYXgKMDAwMDAwMDAwMDAwNTEwYwlhZGRxCSQweDQsICVyZHgKMDAw
MDAwMDAwMDAwNTExMAl0ZXN0YgkkMHgyLCAlcjhiCjAwMDAwMDAwMDAwMDUxMTQJamUJMHg1MTJh
CjAwMDAwMDAwMDAwMDUxMTYJbW92dwlfX1pOM1dURjEwU3RyaW5nSW1wbEQxRXYoJXJkeCksICVj
eAowMDAwMDAwMDAwMDA1MTE5CWNtcHcJX19aTjNXVEYxMFN0cmluZ0ltcGxEMUV2KCVyYXgpLCAl
Y3gKMDAwMDAwMDAwMDAwNTExYwlqbmUJMHg1MWY0CjAwMDAwMDAwMDAwMDUxMjIJYWRkcQkkMHgy
LCAlcmF4CjAwMDAwMDAwMDAwMDUxMjYJYWRkcQkkMHgyLCAlcmR4CjAwMDAwMDAwMDAwMDUxMmEJ
dGVzdGIJJDB4MSwgJXI4YgowMDAwMDAwMDAwMDA1MTJlCWplCTB4NTFlOAowMDAwMDAwMDAwMDA1
MTM0CW1vdmIJX19aTjNXVEYxMFN0cmluZ0ltcGxEMUV2KCVyZHgpLCAlY2wKMDAwMDAwMDAwMDAw
NTEzNgljbXBiCV9fWk4zV1RGMTBTdHJpbmdJbXBsRDFFdiglcmF4KSwgJWNsCjAwMDAwMDAwMDAw
MDUxMzgJam1wcQkweDUxZTQKMDAwMDAwMDAwMDAwNTEzZAl4b3JiCSVhbCwgJWFsCjAwMDAwMDAw
MDAwMDUxM2YJcG9wcQklcmJwCjAwMDAwMDAwMDAwMDUxNDAJcmV0CjAwMDAwMDAwMDAwMDUxNDEJ
bW92cQkweDgoJXJkaSksICVyZHgKMDAwMDAwMDAwMDAwNTE0NQl0ZXN0bAklZWF4LCAlZWF4CjAw
MDAwMDAwMDAwMDUxNDcJamUJMHg1MTlhCjAwMDAwMDAwMDAwMDUxNDkJbW92cQkweDgoJXJzaSks
ICVyc2kKMDAwMDAwMDAwMDAwNTE0ZAl4b3JsCSVlZGksICVlZGkKMDAwMDAwMDAwMDAwNTE0Zglu
b3AKMDAwMDAwMDAwMDAwNTE1MAltb3ZiCSQweDEsICVhbAowMDAwMDAwMDAwMDA1MTUyCWNtcGwJ
JXI4ZCwgJWVkaQowMDAwMDAwMDAwMDA1MTU1CWphZQkweDUxZWEKMDAwMDAwMDAwMDAwNTE1Yglt
b3Z6d2wJX19aTjNXVEYxMFN0cmluZ0ltcGxEMUV2KCVyZHgsJXJkaSwyKSwgJWVheAowMDAwMDAw
MDAwMDA1MTVmCW1vdnpibAlfX1pOM1dURjEwU3RyaW5nSW1wbEQxRXYoJXJzaSwlcmRpKSwgJWVj
eAowMDAwMDAwMDAwMDA1MTYzCWluY3EJJXJkaQowMDAwMDAwMDAwMDA1MTY2CWNtcGwJJWVheCwg
JWVjeAowMDAwMDAwMDAwMDA1MTY4CWplCTB4NTE1MAowMDAwMDAwMDAwMDA1MTZhCXhvcmIJJWFs
LCAlYWwKMDAwMDAwMDAwMDAwNTE2Ywlwb3BxCSVyYnAKMDAwMDAwMDAwMDAwNTE2ZAlyZXQKMDAw
MDAwMDAwMDAwNTE2ZQltb3ZxCTB4OCglcnNpKSwgJXJzaQowMDAwMDAwMDAwMDA1MTcyCXhvcmwJ
JWVkaSwgJWVkaQowMDAwMDAwMDAwMDA1MTc0CW5vcHcJJWNzOl9fWk4zV1RGMTBTdHJpbmdJbXBs
RDFFdiglcmF4LCVyYXgpCjAwMDAwMDAwMDAwMDUxODAJbW92YgkkMHgxLCAlYWwKMDAwMDAwMDAw
MDAwNTE4MgljbXBsCSVyOGQsICVlZGkKMDAwMDAwMDAwMDAwNTE4NQlqYWUJMHg1MWVhCjAwMDAw
MDAwMDAwMDUxODcJbW92endsCV9fWk4zV1RGMTBTdHJpbmdJbXBsRDFFdiglcnNpLCVyZGksMiks
ICVlYXgKMDAwMDAwMDAwMDAwNTE4Ygltb3Z6YmwJX19aTjNXVEYxMFN0cmluZ0ltcGxEMUV2KCVy
ZHgsJXJkaSksICVlY3gKMDAwMDAwMDAwMDAwNTE4ZglpbmNxCSVyZGkKMDAwMDAwMDAwMDAwNTE5
MgljbXBsCSVlYXgsICVlY3gKMDAwMDAwMDAwMDAwNTE5NAlqZQkweDUxODAKMDAwMDAwMDAwMDAw
NTE5Ngl4b3JiCSVhbCwgJWFsCjAwMDAwMDAwMDAwMDUxOTgJcG9wcQklcmJwCjAwMDAwMDAwMDAw
MDUxOTkJcmV0CjAwMDAwMDAwMDAwMDUxOWEJbW92cQkweDgoJXJzaSksICVyYXgKMDAwMDAwMDAw
MDAwNTE5ZQltb3ZsCSVyOGQsICVlc2kKMDAwMDAwMDAwMDAwNTFhMQlzaHJsCSQweDIsICVlc2kK
MDAwMDAwMDAwMDAwNTFhNAl0ZXN0bAklZXNpLCAlZXNpCjAwMDAwMDAwMDAwMDUxYTYJamUJMHg1
MWM0CjAwMDAwMDAwMDAwMDUxYTgJbm9wbAlfX1pOM1dURjEwU3RyaW5nSW1wbEQxRXYoJXJheCwl
cmF4KQowMDAwMDAwMDAwMDA1MWIwCW1vdnEJX19aTjNXVEYxMFN0cmluZ0ltcGxEMUV2KCVyZHgp
LCAlcmN4CjAwMDAwMDAwMDAwMDUxYjMJY21wcQlfX1pOM1dURjEwU3RyaW5nSW1wbEQxRXYoJXJh
eCksICVyY3gKMDAwMDAwMDAwMDAwNTFiNglqbmUJMHg1MWY4CjAwMDAwMDAwMDAwMDUxYjgJYWRk
cQkkMHg4LCAlcmF4CjAwMDAwMDAwMDAwMDUxYmMJYWRkcQkkMHg4LCAlcmR4CjAwMDAwMDAwMDAw
MDUxYzAJZGVjbAklZXNpCjAwMDAwMDAwMDAwMDUxYzIJam5lCTB4NTFiMAowMDAwMDAwMDAwMDA1
MWM0CXRlc3RiCSQweDIsICVyOGIKMDAwMDAwMDAwMDAwNTFjOAlqZQkweDUxZDgKMDAwMDAwMDAw
MDAwNTFjYQltb3ZsCV9fWk4zV1RGMTBTdHJpbmdJbXBsRDFFdiglcmR4KSwgJWVjeAowMDAwMDAw
MDAwMDA1MWNjCWNtcGwJX19aTjNXVEYxMFN0cmluZ0ltcGxEMUV2KCVyYXgpLCAlZWN4CjAwMDAw
MDAwMDAwMDUxY2UJam5lCTB4NTFmYwowMDAwMDAwMDAwMDA1MWQwCWFkZHEJJDB4NCwgJXJheAow
MDAwMDAwMDAwMDA1MWQ0CWFkZHEJJDB4NCwgJXJkeAowMDAwMDAwMDAwMDA1MWQ4CXRlc3RiCSQw
eDEsICVyOGIKMDAwMDAwMDAwMDAwNTFkYwlqZQkweDUxZTgKMDAwMDAwMDAwMDAwNTFkZQltb3Z3
CV9fWk4zV1RGMTBTdHJpbmdJbXBsRDFFdiglcmR4KSwgJWN4CjAwMDAwMDAwMDAwMDUxZTEJY21w
dwlfX1pOM1dURjEwU3RyaW5nSW1wbEQxRXYoJXJheCksICVjeAowMDAwMDAwMDAwMDA1MWU0CW1v
dmIJJF9fWk4zV1RGMTBTdHJpbmdJbXBsRDFFdiwgJWFsCjAwMDAwMDAwMDAwMDUxZTYJam5lCTB4
NTFlYQowMDAwMDAwMDAwMDA1MWU4CW1vdmIJJDB4MSwgJWFsCjAwMDAwMDAwMDAwMDUxZWEJcG9w
cQklcmJwCjAwMDAwMDAwMDAwMDUxZWIJcmV0CjAwMDAwMDAwMDAwMDUxZWMJeG9yYgklYWwsICVh
bAowMDAwMDAwMDAwMDA1MWVlCXBvcHEJJXJicAowMDAwMDAwMDAwMDA1MWVmCXJldAowMDAwMDAw
MDAwMDA1MWYwCXhvcmIJJWFsLCAlYWwKMDAwMDAwMDAwMDAwNTFmMglwb3BxCSVyYnAKMDAwMDAw
MDAwMDAwNTFmMwlyZXQKMDAwMDAwMDAwMDAwNTFmNAl4b3JiCSVhbCwgJWFsCjAwMDAwMDAwMDAw
MDUxZjYJcG9wcQklcmJwCjAwMDAwMDAwMDAwMDUxZjcJcmV0CjAwMDAwMDAwMDAwMDUxZjgJeG9y
YgklYWwsICVhbAowMDAwMDAwMDAwMDA1MWZhCXBvcHEJJXJicAowMDAwMDAwMDAwMDA1MWZiCXJl
dAowMDAwMDAwMDAwMDA1MWZjCXhvcmIJJWFsLCAlYWwKMDAwMDAwMDAwMDAwNTFmZQlwb3BxCSVy
YnAKMDAwMDAwMDAwMDAwNTFmZglyZXQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>226803</attachid>
            <date>2014-03-14 21:15:38 -0700</date>
            <delta_ts>2014-03-16 11:46:27 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-130283-20140314211515.patch</filename>
            <type>text/plain</type>
            <size>7308</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY1NDAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDM1OWM0MTE2YzUxYjI3YzcxYjljNWQx
MTkxNDcxMzkyZDI3ZTMyODguLjY0ZjdhYTc3MTllMGE0ZWVlYTBlODhiODExY2E2MTY3Yzc5MzRm
YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTQtMDMtMTQgIERhdmlkIEtpbHplciAgPGRka2ls
emVyQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggdW5kZWZpbmVkIGJlaGF2aW9yIGluIFdURjo6
ZXF1YWwoKSBpbiBTdHJpbmdJbXBsLmggZm9yIGkzODYveDg2XzY0CisgICAgICAgIDxodHRwOi8v
d2Via2l0Lm9yZy9iLzEzMDI4Mz4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE2MjgxNDc3Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL3Rl
eHQvU3RyaW5nSW1wbC5oOgorICAgICAgICAoV1RGOjpsb2FkX3VuYWxpZ25lZCk6IEFkZCB0ZW1w
bGF0ZSBtZXRob2QuCisgICAgICAgIChXVEY6OmVxdWFsKTogU3dpdGNoIHRvIHVzaW5nIGxvYWRf
dW5hbGlnbmVkPD4oKS4KKwogMjAxNC0wMy0xMCAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFw
cGxlLmNvbT4KIAogICAgICAgICBbV2luXSBQYXNzIGVudmlyb25tZW50IHRvIFByZS1CdWlsZCwg
UHJlLUxpbmssIGFuZCBQb3N0LUJ1aWxkIFN0YWdlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL3RleHQvU3RyaW5nSW1wbC5oIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmgK
aW5kZXggOTFkYWI3N2FkNmJhYTI0MGZmNzlmNjk3YmI2NWZhZGVjZDg3ZjUyOC4uMTdiZWE0ZmU5
MTc1ZGYzNWVlMWJiYTNkNGRjNDc4ZmMwZDIyNTUzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvdGV4dC9TdHJpbmdJbXBsLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBs
LmgKQEAgLTkxNSw5NSArOTE1LDEwNSBAQCBpbmxpbmUgYm9vbCBlcXVhbChjb25zdCBMQ2hhciog
YSwgU3RyaW5nSW1wbCogYikgeyByZXR1cm4gZXF1YWwoYiwgYSk7IH0KIGlubGluZSBib29sIGVx
dWFsKGNvbnN0IGNoYXIqIGEsIFN0cmluZ0ltcGwqIGIpIHsgcmV0dXJuIGVxdWFsKGIsIHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPihhKSk7IH0KIFdURl9FWFBPUlRfU1RSSU5HX0FQSSBi
b29sIGVxdWFsKGNvbnN0IFN0cmluZ0ltcGwmIGEsIGNvbnN0IFN0cmluZ0ltcGwmIGIpOwogCit0
ZW1wbGF0ZTx0eXBlbmFtZSBUPgoraW5saW5lIFQgbG9hZF91bmFsaWduZWQoY29uc3QgY2hhciog
cykKK3sKKyAgICBUIHRtcDsKKyAgICBtZW1jcHkoJnRtcCwgcywgc2l6ZW9mKFQpKTsKKyAgICBy
ZXR1cm4gdG1wOworfQorCiAvLyBEbyBjb21wYXJpc29ucyA4IG9yIDQgYnl0ZXMtYXQtYS10aW1l
IG9uIGFyY2hpdGVjdHVyZXMgd2hlcmUgaXQncyBzYWZlLgogI2lmIENQVShYODZfNjQpIHx8IENQ
VShBUk02NCkKLUFMV0FZU19JTkxJTkUgYm9vbCBlcXVhbChjb25zdCBMQ2hhciogYSwgY29uc3Qg
TENoYXIqIGIsIHVuc2lnbmVkIGxlbmd0aCkKK0FMV0FZU19JTkxJTkUgYm9vbCBlcXVhbChjb25z
dCBMQ2hhciogYUxDaGFyLCBjb25zdCBMQ2hhciogYkxDaGFyLCB1bnNpZ25lZCBsZW5ndGgpCiB7
CiAgICAgdW5zaWduZWQgZHdvcmRMZW5ndGggPSBsZW5ndGggPj4gMzsKIAotICAgIGlmIChkd29y
ZExlbmd0aCkgewotICAgICAgICBjb25zdCB1aW50NjRfdCogYURXb3JkQ2hhcmFjdGVycyA9IHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDY0X3QqPihhKTsKLSAgICAgICAgY29uc3QgdWludDY0
X3QqIGJEV29yZENoYXJhY3RlcnMgPSByZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ2NF90Kj4o
Yik7CisgICAgY29uc3QgY2hhciogYSA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGFM
Q2hhcik7CisgICAgY29uc3QgY2hhciogYiA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+
KGJMQ2hhcik7CiAKKyAgICBpZiAoZHdvcmRMZW5ndGgpIHsKICAgICAgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSAhPSBkd29yZExlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICBpZiAoKmFEV29y
ZENoYXJhY3RlcnMrKyAhPSAqYkRXb3JkQ2hhcmFjdGVycysrKQorICAgICAgICAgICAgaWYgKGxv
YWRfdW5hbGlnbmVkPHVpbnQ2NF90PihhKSAhPSBsb2FkX3VuYWxpZ25lZDx1aW50NjRfdD4oYikp
CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9CiAKLSAgICAgICAgYSA9
IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPihhRFdvcmRDaGFyYWN0ZXJzKTsKLSAgICAg
ICAgYiA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPihiRFdvcmRDaGFyYWN0ZXJzKTsK
KyAgICAgICAgICAgIGEgKz0gc2l6ZW9mKHVpbnQ2NF90KTsKKyAgICAgICAgICAgIGIgKz0gc2l6
ZW9mKHVpbnQ2NF90KTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIGlmIChsZW5ndGggJiA0KSB7
Ci0gICAgICAgIGlmICgqcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50MzJfdCo+KGEpICE9ICpy
ZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQzMl90Kj4oYikpCisgICAgICAgIGlmIChsb2FkX3Vu
YWxpZ25lZDx1aW50MzJfdD4oYSkgIT0gbG9hZF91bmFsaWduZWQ8dWludDMyX3Q+KGIpKQogICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAgIGEgKz0gNDsKLSAgICAgICAgYiArPSA0
OworICAgICAgICBhICs9IHNpemVvZih1aW50MzJfdCk7CisgICAgICAgIGIgKz0gc2l6ZW9mKHVp
bnQzMl90KTsKICAgICB9CiAKICAgICBpZiAobGVuZ3RoICYgMikgewotICAgICAgICBpZiAoKnJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDE2X3QqPihhKSAhPSAqcmVpbnRlcnByZXRfY2FzdDxj
b25zdCB1aW50MTZfdCo+KGIpKQorICAgICAgICBpZiAobG9hZF91bmFsaWduZWQ8dWludDE2X3Q+
KGEpICE9IGxvYWRfdW5hbGlnbmVkPHVpbnQxNl90PihiKSkKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKIAotICAgICAgICBhICs9IDI7Ci0gICAgICAgIGIgKz0gMjsKKyAgICAgICAgYSArPSBz
aXplb2YodWludDE2X3QpOworICAgICAgICBiICs9IHNpemVvZih1aW50MTZfdCk7CiAgICAgfQog
Ci0gICAgaWYgKGxlbmd0aCAmIDEgJiYgKCphICE9ICpiKSkKKyAgICBpZiAobGVuZ3RoICYgMSAm
JiAoKnJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPihhKSAhPSAqcmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBMQ2hhcio+KGIpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKLUFMV0FZU19JTkxJTkUgYm9vbCBlcXVhbChjb25zdCBVQ2hhciogYSwgY29u
c3QgVUNoYXIqIGIsIHVuc2lnbmVkIGxlbmd0aCkKK0FMV0FZU19JTkxJTkUgYm9vbCBlcXVhbChj
b25zdCBVQ2hhciogYVVDaGFyLCBjb25zdCBVQ2hhciogYlVDaGFyLCB1bnNpZ25lZCBsZW5ndGgp
CiB7CiAgICAgdW5zaWduZWQgZHdvcmRMZW5ndGggPSBsZW5ndGggPj4gMjsKLSAgICAKLSAgICBp
ZiAoZHdvcmRMZW5ndGgpIHsKLSAgICAgICAgY29uc3QgdWludDY0X3QqIGFEV29yZENoYXJhY3Rl
cnMgPSByZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ2NF90Kj4oYSk7Ci0gICAgICAgIGNvbnN0
IHVpbnQ2NF90KiBiRFdvcmRDaGFyYWN0ZXJzID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50
NjRfdCo+KGIpOwogCisgICAgY29uc3QgY2hhciogYSA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
Y2hhcio+KGFVQ2hhcik7CisgICAgY29uc3QgY2hhciogYiA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29u
c3QgY2hhcio+KGJVQ2hhcik7CisKKyAgICBpZiAoZHdvcmRMZW5ndGgpIHsKICAgICAgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSAhPSBkd29yZExlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICBp
ZiAoKmFEV29yZENoYXJhY3RlcnMrKyAhPSAqYkRXb3JkQ2hhcmFjdGVycysrKQorICAgICAgICAg
ICAgaWYgKGxvYWRfdW5hbGlnbmVkPHVpbnQ2NF90PihhKSAhPSBsb2FkX3VuYWxpZ25lZDx1aW50
NjRfdD4oYikpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9CiAKLSAg
ICAgICAgYSA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgVUNoYXIqPihhRFdvcmRDaGFyYWN0ZXJz
KTsKLSAgICAgICAgYiA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgVUNoYXIqPihiRFdvcmRDaGFy
YWN0ZXJzKTsKKyAgICAgICAgICAgIGEgKz0gc2l6ZW9mKHVpbnQ2NF90KTsKKyAgICAgICAgICAg
IGIgKz0gc2l6ZW9mKHVpbnQ2NF90KTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIGlmIChsZW5n
dGggJiAyKSB7Ci0gICAgICAgIGlmICgqcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50MzJfdCo+
KGEpICE9ICpyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQzMl90Kj4oYikpCisgICAgICAgIGlm
IChsb2FkX3VuYWxpZ25lZDx1aW50MzJfdD4oYSkgIT0gbG9hZF91bmFsaWduZWQ8dWludDMyX3Q+
KGIpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAgIGEgKz0gMjsKLSAgICAg
ICAgYiArPSAyOworICAgICAgICBhICs9IHNpemVvZih1aW50MzJfdCk7CisgICAgICAgIGIgKz0g
c2l6ZW9mKHVpbnQzMl90KTsKICAgICB9CiAKLSAgICBpZiAobGVuZ3RoICYgMSAmJiAoKmEgIT0g
KmIpKQorICAgIGlmIChsZW5ndGggJiAxICYmICgqcmVpbnRlcnByZXRfY2FzdDxjb25zdCBVQ2hh
cio+KGEpICE9ICpyZWludGVycHJldF9jYXN0PGNvbnN0IFVDaGFyKj4oYikpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KICNlbGlmIENQVShYODYpCi1BTFdB
WVNfSU5MSU5FIGJvb2wgZXF1YWwoY29uc3QgTENoYXIqIGEsIGNvbnN0IExDaGFyKiBiLCB1bnNp
Z25lZCBsZW5ndGgpCitBTFdBWVNfSU5MSU5FIGJvb2wgZXF1YWwoY29uc3QgTENoYXIqIGFMQ2hh
ciwgY29uc3QgTENoYXIqIGJMQ2hhciwgdW5zaWduZWQgbGVuZ3RoKQogewotICAgIGNvbnN0IHVp
bnQzMl90KiBhQ2hhcmFjdGVycyA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDMyX3QqPihh
KTsKLSAgICBjb25zdCB1aW50MzJfdCogYkNoYXJhY3RlcnMgPSByZWludGVycHJldF9jYXN0PGNv
bnN0IHVpbnQzMl90Kj4oYik7CisgICAgY29uc3QgY2hhciogYSA9IHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgY2hhcio+KGFMQ2hhcik7CisgICAgY29uc3QgY2hhciogYiA9IHJlaW50ZXJwcmV0X2Nh
c3Q8Y29uc3QgY2hhcio+KGJMQ2hhcik7CiAKICAgICB1bnNpZ25lZCB3b3JkTGVuZ3RoID0gbGVu
Z3RoID4+IDI7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSAhPSB3b3JkTGVuZ3RoOyArK2kp
IHsKLSAgICAgICAgaWYgKCphQ2hhcmFjdGVycysrICE9ICpiQ2hhcmFjdGVycysrKQorICAgICAg
ICBpZiAobG9hZF91bmFsaWduZWQ8dWludDMyX3Q+KGEpICE9IGxvYWRfdW5hbGlnbmVkPHVpbnQz
Ml90PihiKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgYSArPSBzaXplb2Yo
dWludDMyX3QpOworICAgICAgICBiICs9IHNpemVvZih1aW50MzJfdCk7CiAgICAgfQogCiAgICAg
bGVuZ3RoICY9IDM7CiAKICAgICBpZiAobGVuZ3RoKSB7Ci0gICAgICAgIGNvbnN0IExDaGFyKiBh
UmVtYWluZGVyID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KGFDaGFyYWN0ZXJzKTsK
LSAgICAgICAgY29uc3QgTENoYXIqIGJSZW1haW5kZXIgPSByZWludGVycHJldF9jYXN0PGNvbnN0
IExDaGFyKj4oYkNoYXJhY3RlcnMpOwotICAgICAgICAKKyAgICAgICAgY29uc3QgTENoYXIqIGFS
ZW1haW5kZXIgPSByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oYSk7CisgICAgICAgIGNv
bnN0IExDaGFyKiBiUmVtYWluZGVyID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KGIp
OworCiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCAgbGVuZ3RoOyArK2kpIHsKICAg
ICAgICAgICAgIGlmIChhUmVtYWluZGVyW2ldICE9IGJSZW1haW5kZXJbaV0pCiAgICAgICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTAxMywyMCArMTAyMywyMiBAQCBBTFdBWVNfSU5MSU5F
IGJvb2wgZXF1YWwoY29uc3QgTENoYXIqIGEsIGNvbnN0IExDaGFyKiBiLCB1bnNpZ25lZCBsZW5n
dGgpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLUFMV0FZU19JTkxJTkUgYm9vbCBlcXVhbChjb25z
dCBVQ2hhciogYSwgY29uc3QgVUNoYXIqIGIsIHVuc2lnbmVkIGxlbmd0aCkKK0FMV0FZU19JTkxJ
TkUgYm9vbCBlcXVhbChjb25zdCBVQ2hhciogYVVDaGFyLCBjb25zdCBVQ2hhciogYlVDaGFyLCB1
bnNpZ25lZCBsZW5ndGgpCiB7Ci0gICAgY29uc3QgdWludDMyX3QqIGFDaGFyYWN0ZXJzID0gcmVp
bnRlcnByZXRfY2FzdDxjb25zdCB1aW50MzJfdCo+KGEpOwotICAgIGNvbnN0IHVpbnQzMl90KiBi
Q2hhcmFjdGVycyA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDMyX3QqPihiKTsKLSAgICAK
KyAgICBjb25zdCBjaGFyKiBhID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oYVVDaGFy
KTsKKyAgICBjb25zdCBjaGFyKiBiID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oYlVD
aGFyKTsKKwogICAgIHVuc2lnbmVkIHdvcmRMZW5ndGggPSBsZW5ndGggPj4gMTsKICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpICE9IHdvcmRMZW5ndGg7ICsraSkgewotICAgICAgICBpZiAoKmFD
aGFyYWN0ZXJzKysgIT0gKmJDaGFyYWN0ZXJzKyspCisgICAgICAgIGlmIChsb2FkX3VuYWxpZ25l
ZDx1aW50MzJfdD4oYSkgIT0gbG9hZF91bmFsaWduZWQ8dWludDMyX3Q+KGIpKQogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgICBhICs9IHNpemVvZih1aW50MzJfdCk7CisgICAgICAg
IGIgKz0gc2l6ZW9mKHVpbnQzMl90KTsKICAgICB9Ci0gICAgCi0gICAgaWYgKGxlbmd0aCAmIDEg
JiYgKnJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgVUNoYXIqPihhQ2hhcmFjdGVycykgIT0gKnJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgVUNoYXIqPihiQ2hhcmFjdGVycykpCisKKyAgICBpZiAobGVuZ3Ro
ICYgMSAmJiAqcmVpbnRlcnByZXRfY2FzdDxjb25zdCBVQ2hhcio+KGEpICE9ICpyZWludGVycHJl
dF9jYXN0PGNvbnN0IFVDaGFyKj4oYikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKKwog
ICAgIHJldHVybiB0cnVlOwogfQogI2VsaWYgUExBVEZPUk0oSU9TKSAmJiBXVEZfQVJNX0FSQ0hf
QVRfTEVBU1QoNykK
</data>
<flag name="review"
          id="251043"
          type_id="1"
          status="+"
          setter="ggaren"
    />
    <flag name="commit-queue"
          id="251044"
          type_id="3"
          status="-"
          setter="ggaren"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>226849</attachid>
            <date>2014-03-16 11:46:27 -0700</date>
            <delta_ts>2014-03-16 12:26:25 -0700</delta_ts>
            <desc>Patch for follow-up issue</desc>
            <filename>bug-130286-follow-up-fix.diff</filename>
            <type>text/plain</type>
            <size>1314</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggMjkyN2ZjNC4uYjJjNDQ5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxNC0wMy0xNiAg
RGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgorCisgICAgICAgIEZvbGxvdy11cDog
Rml4IHVuZGVmaW5lZCBiZWhhdmlvciBpbiBXVEY6OmVxdWFsKCkgaW4gU3RyaW5nSW1wbC5oIGZv
ciBpMzg2L3g4Nl82NAorICAgICAgICA8aHR0cDovL3dlYmtpdC5vcmcvYi8xMzAyODM+CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS8xNjI4MTQ3Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi90ZXh0L1N0cmluZ0ltcGwuaDoKKyAgICAgICAg
KFdURjo6bG9hZFVuYWxpZ25lZCk6IFJlc3RvcmUgYmVoYXZpb3IgcHJpb3IgdG8gcjE2NTY4MSBm
b3IKKyAgICAgICAgY29tcGlsZXJzIG90aGVyIHRoYW4gY2xhbmcuCisKIDIwMTQtMDMtMTYgIERh
cmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBhbGwgdXNlcyBv
ZiBkZXByZWNhdGVkQ2hhcmFjdGVycyBmcm9tIEphdmFTY3JpcHRDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3Ry
aW5nSW1wbC5oCmluZGV4IDAyODUyMTAuLjg5ZjhmNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL3RleHQvU3RyaW5nSW1wbC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1w
bC5oCkBAIC05MTgsOSArOTE4LDE0IEBAIFdURl9FWFBPUlRfU1RSSU5HX0FQSSBib29sIGVxdWFs
KGNvbnN0IFN0cmluZ0ltcGwmIGEsIGNvbnN0IFN0cmluZ0ltcGwmIGIpOwogdGVtcGxhdGU8dHlw
ZW5hbWUgVD4KIGlubGluZSBUIGxvYWRVbmFsaWduZWQoY29uc3QgY2hhciogcykKIHsKKyNpZiBD
T01QSUxFUihDTEFORykKICAgICBUIHRtcDsKICAgICBtZW1jcHkoJnRtcCwgcywgc2l6ZW9mKFQp
KTsKICAgICByZXR1cm4gdG1wOworI2Vsc2UKKyAgICAvLyBUaGlzIG1heSByZXN1bHQgaW4gdW5k
ZWZpbmVkIGJlaGF2aW9yIGR1ZSB0byB1bmFsaWduZWQgYWNjZXNzLgorICAgIHJldHVybiAqcmVp
bnRlcnByZXRfY2FzdDxjb25zdCBUKj4ocyk7CisjZW5kaWYKIH0KIAogLy8gRG8gY29tcGFyaXNv
bnMgOCBvciA0IGJ5dGVzLWF0LWEtdGltZSBvbiBhcmNoaXRlY3R1cmVzIHdoZXJlIGl0J3Mgc2Fm
ZS4K
</data>

          </attachment>
      

    </bug>

</bugzilla>