<?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>106739</bug_id>
          
          <creation_ts>2013-01-13 01:13:20 -0800</creation_ts>
          <short_desc>Fix the atomicIncrement implementation for MIPS GCC</short_desc>
          <delta_ts>2013-02-26 10:57:13 -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>Web Template Framework</component>
          <version>420+</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>
          
          <blocked>108664</blocked>
    
    <blocked>106708</blocked>
    
    <blocked>106729</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Csaba Osztrogonác">ossy</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abecsi</cc>
    
    <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fu</cc>
    
    <cc>gergely</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hausmann</cc>
    
    <cc>kilvadyb</cc>
    
    <cc>levin+threading</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>rakuco</cc>
    
    <cc>tpopela</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>805948</commentid>
    <comment_count>0</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2013-01-13 01:13:20 -0800</bug_when>
    <thetext>After https://trac.webkit.org/changeset/139514 we need 32 and 64 bit implementation 
for atomicIncrement(). I fixed it in http://trac.webkit.org/changeset/139553, but
it seems __sync_add_and_fetch isn&apos;t supported by the MIPS GCC version. As far as
I know it should be supported from GCC 4.1. Is it possible if the MIPS bot has
an older GCC or __sync_add_and_fetch isn&apos;t supported on MIPS platform?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>806211</commentid>
    <comment_count>1</comment_count>
    <who name="Gergely Kis">gergely</who>
    <bug_when>2013-01-14 03:06:34 -0800</bug_when>
    <thetext>I will take a look into this. The MIPS bot is using GCC 4.4 cross compiler from emdebian.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807092</commentid>
    <comment_count>2</comment_count>
    <who name="Gergely Kis">gergely</who>
    <bug_when>2013-01-15 01:18:16 -0800</bug_when>
    <thetext>There are no atomic 64bit builtin implementations in MIPS GCC. We will provide a custom implementation for the correct variant of __sync_add_and_fetch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>809300</commentid>
    <comment_count>3</comment_count>
      <attachid>183178</attachid>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2013-01-17 06:18:05 -0800</bug_when>
    <thetext>Created attachment 183178
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>809302</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-17 06:21:57 -0800</bug_when>
    <thetext>Attachment 183178 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/WTF.pr...&quot; exit_code: 1
Source/WTF/wtf/Atomics.cpp:115:  __sync_add_and_fetch_8 is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WTF/wtf/Atomics.cpp:120:  __sync_sub_and_fetch_8 is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 2 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>812071</commentid>
    <comment_count>5</comment_count>
      <attachid>183766</attachid>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2013-01-21 05:58:53 -0800</bug_when>
    <thetext>Created attachment 183766
proposed patch.

Rebased on r140325.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>812073</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-21 06:02:05 -0800</bug_when>
    <thetext>Attachment 183766 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/WTF.pr...&quot; exit_code: 1
Source/WTF/wtf/Atomics.cpp:116:  __sync_add_and_fetch_8 is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WTF/wtf/Atomics.cpp:121:  __sync_sub_and_fetch_8 is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 2 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814064</commentid>
    <comment_count>7</comment_count>
      <attachid>184191</attachid>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2013-01-23 03:12:25 -0800</bug_when>
    <thetext>Created attachment 184191
proposed patch with improved init.

Init method improved to use less allocation/new. Also rebased on r140530.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814065</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-23 03:15:18 -0800</bug_when>
    <thetext>Attachment 184191 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/WTF.pro&apos;, u&apos;Source/WTF/wtf/Atomics.cpp&apos;]&quot; exit_code: 1
Source/WTF/wtf/Atomics.cpp:107:  __sync_add_and_fetch_8 is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WTF/wtf/Atomics.cpp:112:  __sync_sub_and_fetch_8 is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 2 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814530</commentid>
    <comment_count>9</comment_count>
      <attachid>184191</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-01-23 12:53:04 -0800</bug_when>
    <thetext>Comment on attachment 184191
proposed patch with improved init.

This looks amazingly inefficient for an atomic increment/decrement. Is there seriously no better solution for MIPS?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815260</commentid>
    <comment_count>10</comment_count>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2013-01-24 02:06:20 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 184191 [details])
&gt; This looks amazingly inefficient for an atomic increment/decrement. Is there seriously no better solution for MIPS?
Thank you for reviewing.

32 bit MIPS cores have a ll/sc instruction pair to implement atomic read-modify-write. But only for 32 bit values in memory. Only on 64 bit cores there is a lld/scd pair for 64 memory-values. We haven&apos;t found a way to ensure atomicity on 32 bit cores without locking.

This patch is only for 64-bit atomics on 32 bit MIPS cores, and that 32-bit&apos;s atomics are inlined efficiently
by the toolchain. When webkit compiled for mips64, then we do have 64-bit atomic-ops as well by gcc, but those instructions are not available on the 32-bit cores.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815596</commentid>
    <comment_count>11</comment_count>
      <attachid>184526</attachid>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2013-01-24 10:40:04 -0800</bug_when>
    <thetext>Created attachment 184526
proposed WTFized patch.

The code of this patch is based on the Android atomicInc implementation for MIPS32 so you would get the same implementation if you compile webkit for android platform and run webkit on MIPS32.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815600</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-24 10:43:18 -0800</bug_when>
    <thetext>Attachment 184526 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/WTF.pro&apos;, u&apos;Source/WTF/wtf/Atomics.cpp&apos;]&quot; exit_code: 1
Source/WTF/wtf/Atomics.cpp:90:  __sync_add_and_fetch_8 is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WTF/wtf/Atomics.cpp:95:  __sync_sub_and_fetch_8 is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 2 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815602</commentid>
    <comment_count>13</comment_count>
      <attachid>184526</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-01-24 10:44:30 -0800</bug_when>
    <thetext>Comment on attachment 184526
proposed WTFized patch.

Attachment 184526 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/16110174</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815603</commentid>
    <comment_count>14</comment_count>
      <attachid>184526</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-01-24 10:46:39 -0800</bug_when>
    <thetext>Comment on attachment 184526
proposed WTFized patch.

Attachment 184526 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/16083771</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815615</commentid>
    <comment_count>15</comment_count>
      <attachid>184530</attachid>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2013-01-24 10:51:04 -0800</bug_when>
    <thetext>Created attachment 184530
fixed WTFized patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815620</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-24 10:54:34 -0800</bug_when>
    <thetext>Attachment 184530 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/WTF.pro&apos;, u&apos;Source/WTF/wtf/Atomics.cpp&apos;]&quot; exit_code: 1
Source/WTF/wtf/Atomics.cpp:90:  __sync_add_and_fetch_8 is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WTF/wtf/Atomics.cpp:95:  __sync_sub_and_fetch_8 is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 2 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815695</commentid>
    <comment_count>17</comment_count>
      <attachid>184530</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-24 11:59:55 -0800</bug_when>
    <thetext>Comment on attachment 184530
fixed WTFized patch.

Attachment 184530 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16097313

New failing tests:
inspector-protocol/debugger-terminate-dedicated-worker-while-paused.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822361</commentid>
    <comment_count>18</comment_count>
      <attachid>184530</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2013-01-31 23:06:43 -0800</bug_when>
    <thetext>Comment on attachment 184530
fixed WTFized patch.

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

&gt;&gt; Source/WTF/wtf/Atomics.cpp:90
&gt;&gt; +int64_t __sync_add_and_fetch_8(int64_t volatile* addend, int64_t value)
&gt; 
&gt; __sync_add_and_fetch_8 is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]

So this is a workaround for a bug in the toolchain that is missing this symbol? Maybe that should be explained in a comment and the ChangeLog? What if the toolchain is newer and suddenly provides the symbol? Are version guards missing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822475</commentid>
    <comment_count>19</comment_count>
    <who name="Gergely Kis">gergely</who>
    <bug_when>2013-02-01 01:15:36 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; (From update of attachment 184530 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=184530&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WTF/wtf/Atomics.cpp:90
&gt; &gt;&gt; +int64_t __sync_add_and_fetch_8(int64_t volatile* addend, int64_t value)
&gt; &gt; 
&gt; &gt; __sync_add_and_fetch_8 is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
&gt; 
&gt; So this is a workaround for a bug in the toolchain that is missing this symbol? Maybe that should be explained in a comment and the ChangeLog? What if the toolchain is newer and suddenly provides the symbol? Are version guards missing?


Dear Simon, 

Thank you for reviewing.

Currently none of the MIPS32 toolchains defines this symbol, that is why we did not provide version guards. Another possibility would be to add this MIPS implementation under a different name, that conforms to the webkit coding style, and select this new symbol using #if CPU(MIPS) in Atomics.h,

This would have the advantage, that the code will still work, if in the future a MIPS toolchain adds this symbol and we can add support for that version of the toolchain with the proper version guards.

Do you like this plan?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822559</commentid>
    <comment_count>20</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2013-02-01 02:47:45 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; (In reply to comment #18)
&gt; &gt; (From update of attachment 184530 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=184530&amp;action=review
&gt; &gt; 
&gt; &gt; &gt;&gt; Source/WTF/wtf/Atomics.cpp:90
&gt; &gt; &gt;&gt; +int64_t __sync_add_and_fetch_8(int64_t volatile* addend, int64_t value)
&gt; &gt; &gt; 
&gt; &gt; &gt; __sync_add_and_fetch_8 is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
&gt; &gt; 
&gt; &gt; So this is a workaround for a bug in the toolchain that is missing this symbol? Maybe that should be explained in a comment and the ChangeLog? What if the toolchain is newer and suddenly provides the symbol? Are version guards missing?
&gt; 
&gt; 
&gt; Dear Simon, 
&gt; 
&gt; Thank you for reviewing.
&gt; 
&gt; Currently none of the MIPS32 toolchains defines this symbol, that is why we did not provide version guards. Another possibility would be to add this MIPS implementation under a different name, that conforms to the webkit coding style, and select this new symbol using #if CPU(MIPS) in Atomics.h,
&gt; 
&gt; This would have the advantage, that the code will still work, if in the future a MIPS toolchain adds this symbol and we can add support for that version of the toolchain with the proper version guards.
&gt; 
&gt; Do you like this plan?
The newest Android NDK (Revision 8d released in December 2012) already support these 64 bit atomic operations with the shipped 4.6 an 4.7 gcc compilers, as far as I know also for MIPS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822855</commentid>
    <comment_count>21</comment_count>
    <who name="Gergely Kis">gergely</who>
    <bug_when>2013-02-01 09:22:34 -0800</bug_when>
    <thetext>&gt; The newest Android NDK (Revision 8d released in December 2012) already support these 64 bit atomic operations with the shipped 4.6 an 4.7 gcc compilers, as far as I know also for MIPS.

No, on MIPS it does not: 

kisg@KISGPC:/data/usr/android-ndk/toolchains/mipsel-linux-android-4.7/prebuilt/linux-x86/bin$ ./mipsel-linux-android-gcc -I/data/usr/android-ndk-r8d/platforms/android-14/arch-mips/usr/include --sysroot=/data/usr/android-ndk-r8d/platforms/android-14/arch-mips /data/synctest.c 
/tmp/ccaK9ive.o: In function `main&apos;:
synctest.c:(.text+0x40): undefined reference to `__sync_add_and_fetch_8&apos;
collect2: error: ld returned 1 exit status</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824187</commentid>
    <comment_count>22</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2013-02-04 03:23:35 -0800</bug_when>
    <thetext>(In reply to comment #21)
&gt; &gt; The newest Android NDK (Revision 8d released in December 2012) already support these 64 bit atomic operations with the shipped 4.6 an 4.7 gcc compilers, as far as I know also for MIPS.
&gt; 
&gt; No, on MIPS it does not: 
&gt; 
&gt; kisg@KISGPC:/data/usr/android-ndk/toolchains/mipsel-linux-android-4.7/prebuilt/linux-x86/bin$ ./mipsel-linux-android-gcc -I/data/usr/android-ndk-r8d/platforms/android-14/arch-mips/usr/include --sysroot=/data/usr/android-ndk-r8d/platforms/android-14/arch-mips /data/synctest.c 
&gt; /tmp/ccaK9ive.o: In function `main&apos;:
&gt; synctest.c:(.text+0x40): undefined reference to `__sync_add_and_fetch_8&apos;
&gt; collect2: error: ld returned 1 exit status

Indeed, it looks like it was only introduced in the ARM toolchain.
Sorry for the noise.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824190</commentid>
    <comment_count>23</comment_count>
      <attachid>186335</attachid>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2013-02-04 03:28:06 -0800</bug_when>
    <thetext>Created attachment 186335
fixed WTFized patch.

Rebased on r141751.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824191</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-04 03:30:02 -0800</bug_when>
    <thetext>Attachment 186335 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/WTF.pro&apos;, u&apos;Source/WTF/wtf/Atomics.cpp&apos;]&quot; exit_code: 1
Source/WTF/wtf/Atomics.cpp:90:  __sync_add_and_fetch_8 is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WTF/wtf/Atomics.cpp:95:  __sync_sub_and_fetch_8 is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 2 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829882</commentid>
    <comment_count>25</comment_count>
      <attachid>187614</attachid>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2013-02-11 10:53:02 -0800</bug_when>
    <thetext>Created attachment 187614
fixed WTFized patch.

Rebased on r142489.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829892</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-11 11:02:05 -0800</bug_when>
    <thetext>Attachment 187614 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/WTF.pro&apos;, u&apos;Source/WTF/wtf/Atomics.cpp&apos;]&quot; exit_code: 1
Source/WTF/wtf/Atomics.cpp:90:  __sync_add_and_fetch_8 is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WTF/wtf/Atomics.cpp:95:  __sync_sub_and_fetch_8 is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 2 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830691</commentid>
    <comment_count>27</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2013-02-12 01:33:27 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; (In reply to comment #18)
&gt; &gt; (From update of attachment 184530 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=184530&amp;action=review
&gt; &gt; 
&gt; &gt; &gt;&gt; Source/WTF/wtf/Atomics.cpp:90
&gt; &gt; &gt;&gt; +int64_t __sync_add_and_fetch_8(int64_t volatile* addend, int64_t value)
&gt; &gt; &gt; 
&gt; &gt; &gt; __sync_add_and_fetch_8 is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
&gt; &gt; 
&gt; &gt; So this is a workaround for a bug in the toolchain that is missing this symbol? Maybe that should be explained in a comment and the ChangeLog? What if the toolchain is newer and suddenly provides the symbol? Are version guards missing?
&gt; 
&gt; 
&gt; Dear Simon, 
&gt; 
&gt; Thank you for reviewing.
&gt; 
&gt; Currently none of the MIPS32 toolchains defines this symbol, that is why we did not provide version guards. Another possibility would be to add this MIPS implementation under a different name, that conforms to the webkit coding style, and select this new symbol using #if CPU(MIPS) in Atomics.h,
&gt; 
&gt; This would have the advantage, that the code will still work, if in the future a MIPS toolchain adds this symbol and we can add support for that version of the toolchain with the proper version guards.
&gt; 
&gt; Do you like this plan?

Well, what is the chance of plan C, i.e. fixing this where it should be fixed, upstream in (lib)gcc?

If we land a workaround in WebKit for this, then IMHO it should include a link to the upstream bug report and it should be temporary.

_If_ it becomes clear that this does not belong into libgcc (if upstream comes up with a good reason of say rejecting a bug report), then adding the missing functionality under a different name (not using the gcc symbol names) sounds like a good idea. It can then be explained properly in the ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831247</commentid>
    <comment_count>28</comment_count>
    <who name="Chao-ying Fu">fu</who>
    <bug_when>2013-02-12 14:10:26 -0800</bug_when>
    <thetext>(In reply to comment #27)
&gt; (In reply to comment #19)
&gt; &gt; (In reply to comment #18)
&gt; &gt; &gt; (From update of attachment 184530 [details] [details] [details])
&gt; &gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=184530&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt;&gt; Source/WTF/wtf/Atomics.cpp:90
&gt; &gt; &gt; &gt;&gt; +int64_t __sync_add_and_fetch_8(int64_t volatile* addend, int64_t value)
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; __sync_add_and_fetch_8 is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
&gt; &gt; &gt; 
&gt; &gt; &gt; So this is a workaround for a bug in the toolchain that is missing this symbol? Maybe that should be explained in a comment and the ChangeLog? What if the toolchain is newer and suddenly provides the symbol? Are version guards missing?
&gt; &gt; 
&gt; &gt; 
&gt; &gt; Dear Simon, 
&gt; &gt; 
&gt; &gt; Thank you for reviewing.
&gt; &gt; 
&gt; &gt; Currently none of the MIPS32 toolchains defines this symbol, that is why we did not provide version guards. Another possibility would be to add this MIPS implementation under a different name, that conforms to the webkit coding style, and select this new symbol using #if CPU(MIPS) in Atomics.h,
&gt; &gt; 
&gt; &gt; This would have the advantage, that the code will still work, if in the future a MIPS toolchain adds this symbol and we can add support for that version of the toolchain with the proper version guards.
&gt; &gt; 
&gt; &gt; Do you like this plan?
&gt; 
&gt; Well, what is the chance of plan C, i.e. fixing this where it should be fixed, upstream in (lib)gcc?
&gt; 
&gt; If we land a workaround in WebKit for this, then IMHO it should include a link to the upstream bug report and it should be temporary.

FYI.  I just opened a gcc bug as follows.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56300
Bug 56300 - Add __sync_fetch_and_add_8 and other 8-byte atomic functions to 32-bit MIPS targets

Thanks!

&gt; 
&gt; _If_ it becomes clear that this does not belong into libgcc (if upstream comes up with a good reason of say rejecting a bug report), then adding the missing functionality under a different name (not using the gcc symbol names) sounds like a good idea. It can then be explained properly in the ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831264</commentid>
    <comment_count>29</comment_count>
    <who name="Chao-ying Fu">fu</who>
    <bug_when>2013-02-12 14:31:02 -0800</bug_when>
    <thetext>From Andrew Pinkski, GCC 4.8 has a new libatomic to support 8-byte atomic functions.  For GCC before version 4.8, we can provide this patch with either same or different function names.

When GCC 4.8 toolchain is ready to compile webkit, we can submit another patch to enable the usage of libatomic for 32-bit MIPS targets.

Is this approach ok?  Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831926</commentid>
    <comment_count>30</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2013-02-13 08:21:19 -0800</bug_when>
    <thetext>(In reply to comment #29)
&gt; From Andrew Pinkski, GCC 4.8 has a new libatomic to support 8-byte atomic functions.  For GCC before version 4.8, we can provide this patch with either same or different function names.
&gt; 
&gt; When GCC 4.8 toolchain is ready to compile webkit, we can submit another patch to enable the usage of libatomic for 32-bit MIPS targets.

Excellent. I understand that gcc 4.8 is still in development, so it seems reasonable to me to place a workaround into WebKit.

I can&apos;t review the quality of the implementation itself (I&apos;m not an expert on that topic), but it would seem to me that the surrounding #ifdefs could be limited to MIPS and GCC &lt; 4.8, as well as the file name perhaps?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831995</commentid>
    <comment_count>31</comment_count>
      <attachid>188102</attachid>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2013-02-13 09:51:00 -0800</bug_when>
    <thetext>Created attachment 188102
Fixed WTFized patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831998</commentid>
    <comment_count>32</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-13 09:55:04 -0800</bug_when>
    <thetext>Attachment 188102 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/WTF.pro&apos;, u&apos;Source/WTF/wtf/Atomics.cpp&apos;]&quot; exit_code: 1
Source/WTF/wtf/Atomics.cpp:96:  __sync_add_and_fetch_8 is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WTF/wtf/Atomics.cpp:101:  __sync_sub_and_fetch_8 is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 2 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832013</commentid>
    <comment_count>33</comment_count>
      <attachid>188109</attachid>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2013-02-13 10:07:35 -0800</bug_when>
    <thetext>Created attachment 188109
Fixed WTFized patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832017</commentid>
    <comment_count>34</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-13 10:12:57 -0800</bug_when>
    <thetext>Attachment 188109 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/WTF.pro&apos;, u&apos;Source/WTF/wtf/Atomics.cpp&apos;]&quot; exit_code: 1
Source/WTF/wtf/Atomics.cpp:96:  __sync_add_and_fetch_8 is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WTF/wtf/Atomics.cpp:101:  __sync_sub_and_fetch_8 is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 2 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835369</commentid>
    <comment_count>35</comment_count>
      <attachid>188857</attachid>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2013-02-18 05:15:22 -0800</bug_when>
    <thetext>Created attachment 188857
Fixed WTFized patch.

Rebased on r142863.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835376</commentid>
    <comment_count>36</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-18 05:20:17 -0800</bug_when>
    <thetext>Attachment 188857 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/WTF.pro&apos;, u&apos;Source/WTF/wtf/Atomics.cpp&apos;]&quot; exit_code: 1
Source/WTF/wtf/Atomics.cpp:96:  __sync_add_and_fetch_8 is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WTF/wtf/Atomics.cpp:101:  __sync_sub_and_fetch_8 is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 2 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836193</commentid>
    <comment_count>37</comment_count>
    <who name="Tomas Popela">tpopela</who>
    <bug_when>2013-02-19 03:26:02 -0800</bug_when>
    <thetext>Please edit /Source/WTF/GNUmakefile.list.am too as GTK is also affected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836197</commentid>
    <comment_count>38</comment_count>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2013-02-19 03:28:56 -0800</bug_when>
    <thetext>(In reply to comment #37)
&gt; Please edit /Source/WTF/GNUmakefile.list.am too as GTK is also affected.

In progress…</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836242</commentid>
    <comment_count>39</comment_count>
      <attachid>189059</attachid>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2013-02-19 04:45:57 -0800</bug_when>
    <thetext>Created attachment 189059
Fixed WTFized patch.

Atomics.cpp added to automake (for GTK) and to cmake.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836248</commentid>
    <comment_count>40</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-19 04:49:19 -0800</bug_when>
    <thetext>Attachment 189059 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/GNUmakefile.list.am&apos;, u&apos;Source/WTF/WTF.pro&apos;, u&apos;Source/WTF/wtf/Atomics.cpp&apos;, u&apos;Source/WTF/wtf/CMakeLists.txt&apos;]&quot; exit_code: 1
Source/WTF/wtf/Atomics.cpp:97:  __sync_add_and_fetch_8 is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WTF/wtf/Atomics.cpp:102:  __sync_sub_and_fetch_8 is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 2 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841999</commentid>
    <comment_count>41</comment_count>
      <attachid>190283</attachid>
    <who name="Balazs Kilvady">kilvadyb</who>
    <bug_when>2013-02-26 07:58:13 -0800</bug_when>
    <thetext>Created attachment 190283
Fixed WTFized patch.

Rebased on r144054.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842004</commentid>
    <comment_count>42</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-26 08:00:44 -0800</bug_when>
    <thetext>Attachment 190283 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/GNUmakefile.list.am&apos;, u&apos;Source/WTF/WTF.pro&apos;, u&apos;Source/WTF/wtf/Atomics.cpp&apos;, u&apos;Source/WTF/wtf/CMakeLists.txt&apos;]&quot; exit_code: 1
Source/WTF/wtf/Atomics.cpp:97:  __sync_add_and_fetch_8 is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WTF/wtf/Atomics.cpp:102:  __sync_sub_and_fetch_8 is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 2 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842179</commentid>
    <comment_count>43</comment_count>
      <attachid>190283</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-26 10:57:04 -0800</bug_when>
    <thetext>Comment on attachment 190283
Fixed WTFized patch.

Clearing flags on attachment: 190283

Committed r144077: &lt;http://trac.webkit.org/changeset/144077&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842180</commentid>
    <comment_count>44</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-26 10:57:13 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>183178</attachid>
            <date>2013-01-17 06:18:05 -0800</date>
            <delta_ts>2013-01-21 05:58:53 -0800</delta_ts>
            <desc>proposed patch.</desc>
            <filename>atomic.diff</filename>
            <type>text/plain</type>
            <size>6242</size>
            <attacher name="Balazs Kilvady">kilvadyb</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggNmExNzk5Zi4uZWUxNjVkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMy0wMS0xNyAg
QmFsYXpzIEtpbHZhZHkgIDxraWx2YWR5YkBob21lamlubmkuY29tPgorCisgICAgICAgIEZpeCB0
aGUgYXRvbWljSW5jcmVtZW50IGltcGxlbWVudGF0aW9uIGZvciBNSVBTIEdDQworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2NzM5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50YXRpb24gb2Yg
bWlzc2luZyBfX3N5bmNfW2FkZHxzdWJdX2FuZF9mZXRjaF84IGZ1bmN0aW9ucy4KKworICAgICAg
ICAqIFdURi5wcm86CisgICAgICAgICogd3RmL0F0b21pY3MuY3BwOiBBZGRlZC4KKyAgICAgICAg
KHF1YXNpQXRvbWljc1N0YXJ0dXApOgorICAgICAgICAocXVhc2lBdG9taWNzU2h1dGRvd24pOgor
ICAgICAgICAoZ2V0U3dhcExvY2spOgorICAgICAgICAoYXRvbWljU3RlcCk6CisKIDIwMTMtMDEt
MTIgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBVc2Ug
X19zeW5jX2FkZF9hbmRfZmV0Y2ggaW5zdGVhZCBvZiBfX2dudV9jeHg6Ol9fZXhjaGFuZ2VfYW5k
X2FkZApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYucHJvIGIvU291cmNlL1dURi9XVEYucHJv
CmluZGV4IDM2NjE5NGIuLjg3MjVhZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnBybwor
KysgYi9Tb3VyY2UvV1RGL1dURi5wcm8KQEAgLTE5Niw2ICsxOTYsNyBAQCBTT1VSQ0VTICs9IFwK
ICAgICBBcnJheUJ1ZmZlci5jcHAgXAogICAgIEFycmF5QnVmZmVyVmlldy5jcHAgXAogICAgIEFz
c2VydGlvbnMuY3BwIFwKKyAgICBBdG9taWNzLmNwcCBcCiAgICAgQml0VmVjdG9yLmNwcCBcCiAg
ICAgQ3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1iZXIuY3BwIFwKICAgICBDdXJyZW50VGltZS5j
cHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQXRvbWljcy5jcHAgYi9Tb3VyY2UvV1RG
L3d0Zi9BdG9taWNzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45Y2Zh
MDBmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvQXRvbWljcy5jcHAKQEAgLTAs
MCArMSwxMjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIwMTAsIDIwMTIg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA3IEp1
c3RpbiBIYXlnb29kIChqaGF5Z29vZEByZWFrdGl4LmNvbSkKKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuIAor
ICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uIAor
ICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIp
IG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLiAKKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JT
ICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQor
ICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKgorICogTm90ZTogVGhlIGltcGxl
bWVudGF0aW9ucyBvZiBJbnRlcmxvY2tlZEluY3JlbWVudCBhbmQgSW50ZXJsb2NrZWREZWNyZW1l
bnQgYXJlIGJhc2VkCisgKiBvbiBhdG9taWNfaW5jcmVtZW50IGFuZCBhdG9taWNfZXhjaGFuZ2Vf
YW5kX2FkZCBmcm9tIHRoZSBCb29zdCBDKysgTGlicmFyeS4gVGhlIGxpY2Vuc2UKKyAqIGlzIHZp
cnR1YWxseSBpZGVudGljYWwgdG8gdGhlIEFwcGxlIGxpY2Vuc2UgYWJvdmUgYnV0IGlzIGluY2x1
ZGVkIGhlcmUgZm9yIGNvbXBsZXRlbmVzcy4KKyAqCisgKiBCb29zdCBTb2Z0d2FyZSBMaWNlbnNl
IC0gVmVyc2lvbiAxLjAgLSBBdWd1c3QgMTd0aCwgMjAwMworICogCisgKiBQZXJtaXNzaW9uIGlz
IGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvciBvcmdhbml6
YXRpb24KKyAqIG9idGFpbmluZyBhIGNvcHkgb2YgdGhlIHNvZnR3YXJlIGFuZCBhY2NvbXBhbnlp
bmcgZG9jdW1lbnRhdGlvbiBjb3ZlcmVkIGJ5CisgKiB0aGlzIGxpY2Vuc2UgKHRoZSAiU29mdHdh
cmUiKSB0byB1c2UsIHJlcHJvZHVjZSwgZGlzcGxheSwgZGlzdHJpYnV0ZSwKKyAqIGV4ZWN1dGUs
IGFuZCB0cmFuc21pdCB0aGUgU29mdHdhcmUsIGFuZCB0byBwcmVwYXJlIGRlcml2YXRpdmUgd29y
a3Mgb2YgdGhlCisgKiBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCB0aGlyZC1wYXJ0aWVzIHRvIHdo
b20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0bworICogZG8gc28sIGFsbCBzdWJqZWN0IHRv
IHRoZSBmb2xsb3dpbmc6CisgKiAKKyAqIFRoZSBjb3B5cmlnaHQgbm90aWNlcyBpbiB0aGUgU29m
dHdhcmUgYW5kIHRoaXMgZW50aXJlIHN0YXRlbWVudCwgaW5jbHVkaW5nCisgKiB0aGUgYWJvdmUg
bGljZW5zZSBncmFudCwgdGhpcyByZXN0cmljdGlvbiBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLAorICogbXVzdCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwg
aW4gd2hvbGUgb3IgaW4gcGFydCwgYW5kCisgKiBhbGwgZGVyaXZhdGl2ZSB3b3JrcyBvZiB0aGUg
U29mdHdhcmUsIHVubGVzcyBzdWNoIGNvcGllcyBvciBkZXJpdmF0aXZlCisgKiB3b3JrcyBhcmUg
c29sZWx5IGluIHRoZSBmb3JtIG9mIG1hY2hpbmUtZXhlY3V0YWJsZSBvYmplY3QgY29kZSBnZW5l
cmF0ZWQgYnkKKyAqIGEgc291cmNlIGxhbmd1YWdlIHByb2Nlc3Nvci4KKyAqIAorICogVEhFIFNP
RlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQs
IEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhF
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UsIFRJVExFIEFORCBOT04tSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVAorICog
U0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVJTIE9SIEFOWU9ORSBESVNUUklCVVRJTkcgVEhFIFNP
RlRXQVJFIEJFIExJQUJMRQorICogRk9SIEFOWSBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5HIEZST00s
IE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1Ig
T1RIRVIKKyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiQXRvbWljcy5oIgorCisjaW5jbHVkZSA8cHRocmVhZC5oPgorCisj
aWYgQ1BVKE1JUFMpICYmIENPTVBJTEVSKEdDQykgJiYgVVNFKExPQ0tGUkVFX1RIUkVBRFNBRkVS
RUZDT1VOVEVEKQorCitzdGF0aWMgYm9vbCBzX2lzSW5pdGVkID0gZmFsc2U7CitzdGF0aWMgY29u
c3Qgc2l6ZV90IGtTd2FwTG9ja0NvdW50ID0gMzI7CitzdGF0aWMgcHRocmVhZF9tdXRleF90KiBz
X3N3YXBMb2Nrc1trU3dhcExvY2tDb3VudF07CisKKworc3RhdGljIHZvaWQgcXVhc2lBdG9taWNz
U3RhcnR1cCgpCit7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBrU3dhcExvY2tDb3VudDsg
KytpKSB7CisgICAgICAgIHB0aHJlYWRfbXV0ZXhfdCogbSA9IG5ldyBwdGhyZWFkX211dGV4X3Q7
CisgICAgICAgIHB0aHJlYWRfbXV0ZXhfaW5pdChtLCAwKTsKKyAgICAgICAgc19zd2FwTG9ja3Nb
aV0gPSBtOworICAgIH0KKyAgICBzX2lzSW5pdGVkID0gdHJ1ZTsKK30KKworc3RhdGljIHZvaWQg
cXVhc2lBdG9taWNzU2h1dGRvd24oKQoreworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwga1N3
YXBMb2NrQ291bnQ7ICsraSkgeworICAgICAgICBwdGhyZWFkX211dGV4X3QqIG0gPSBzX3N3YXBM
b2Nrc1tpXTsKKyAgICAgICAgc19zd2FwTG9ja3NbaV0gPSAwOworICAgICAgICBpZiAobSkgewor
ICAgICAgICAgICAgcHRocmVhZF9tdXRleF9kZXN0cm95KG0pOworICAgICAgICAgICAgZGVsZXRl
IG07CisgICAgICAgIH0KKyAgICB9CisgICAgc19pc0luaXRlZCA9IGZhbHNlOworfQorCitzdGF0
aWMgaW5saW5lIHB0aHJlYWRfbXV0ZXhfdCogZ2V0U3dhcExvY2soY29uc3Qgdm9sYXRpbGUgaW50
NjRfdCogYWRkcikKK3sKKyAgICByZXR1cm4gc19zd2FwTG9ja3NbKHJlaW50ZXJwcmV0X2Nhc3Q8
aW50cHRyX3Q+KGFkZHIpID4+IDNVKSAlIGtTd2FwTG9ja0NvdW50XTsKK30KKworc3RhdGljIGlu
dDY0X3QgYXRvbWljU3RlcChpbnQ2NF90IHZvbGF0aWxlKiBhZGRlbmQsIGludDY0X3Qgc3RlcCkK
K3sKKyAgICBpZiAoIXNfaXNJbml0ZWQpCisgICAgICAgIHF1YXNpQXRvbWljc1N0YXJ0dXAoKTsK
KworICAgIHB0aHJlYWRfbXV0ZXhfdCogbG9jayA9IGdldFN3YXBMb2NrKGFkZGVuZCk7CisKKyAg
ICBwdGhyZWFkX211dGV4X2xvY2sobG9jayk7CisgICAgaW50NjRfdCB2YWx1ZSA9ICphZGRlbmQg
KyBzdGVwOworICAgICphZGRlbmQgPSB2YWx1ZTsKKyAgICBwdGhyZWFkX211dGV4X3VubG9jayhs
b2NrKTsKKworICAgIHJldHVybiB2YWx1ZTsKK30KKworZXh0ZXJuICJDIiB7CitpbnQ2NF90IF9f
c3luY19hZGRfYW5kX2ZldGNoXzgoaW50NjRfdCB2b2xhdGlsZSogYWRkZW5kLCBpbnQ2NF90IHZh
bHVlKQoreworICAgIHJldHVybiBhdG9taWNTdGVwKGFkZGVuZCwgdmFsdWUpOworfQorCitpbnQ2
NF90IF9fc3luY19zdWJfYW5kX2ZldGNoXzgoaW50NjRfdCB2b2xhdGlsZSogYWRkZW5kLCBpbnQ2
NF90IHZhbHVlKQoreworICAgIHJldHVybiBhdG9taWNTdGVwKGFkZGVuZCwgLXZhbHVlKTsKK30K
KworfSAvLyBleHRlcm4gIkMiCisKKyNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>183766</attachid>
            <date>2013-01-21 05:58:53 -0800</date>
            <delta_ts>2013-01-23 03:12:25 -0800</delta_ts>
            <desc>proposed patch.</desc>
            <filename>atomic.diff</filename>
            <type>text/plain</type>
            <size>6214</size>
            <attacher name="Balazs Kilvady">kilvadyb</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggMDIxODcyMC4uYTE1MjdmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMy0wMS0yMSAg
QmFsYXpzIEtpbHZhZHkgIDxraWx2YWR5YkBob21lamlubmkuY29tPgorCisgICAgICAgIEZpeCB0
aGUgYXRvbWljSW5jcmVtZW50IGltcGxlbWVudGF0aW9uIGZvciBNSVBTIEdDQworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2NzM5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50YXRpb24gb2Yg
bWlzc2luZyBfX3N5bmNfW2FkZHxzdWJdX2FuZF9mZXRjaF84IGZ1bmN0aW9ucy4KKworICAgICAg
ICAqIFdURi5wcm86CisgICAgICAgICogd3RmL0F0b21pY3MuY3BwOiBBZGRlZC4KKyAgICAgICAg
KHF1YXNpQXRvbWljc1N0YXJ0dXApOgorICAgICAgICAocXVhc2lBdG9taWNzU2h1dGRvd24pOgor
ICAgICAgICAoZ2V0U3dhcExvY2spOgorICAgICAgICAoYXRvbWljU3RlcCk6CisKIDIwMTMtMDEt
MTggIExhc3psbyBHb21ib3MgIDxsLmdvbWJvc0BzYW1zdW5nLmNvbT4KIAogICAgICAgICBSZW1v
dmUgdW5uZWNlc3NhcnkgUExBVEZPUk0oKSB0ZXN0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9X
VEYucHJvIGIvU291cmNlL1dURi9XVEYucHJvCmluZGV4IGM5MjljNjguLmEwN2VmNGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnBybworKysgYi9Tb3VyY2UvV1RGL1dURi5wcm8KQEAgLTE5
Nyw2ICsxOTcsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBBcnJheUJ1ZmZlci5jcHAgXAogICAgIEFy
cmF5QnVmZmVyVmlldy5jcHAgXAogICAgIEFzc2VydGlvbnMuY3BwIFwKKyAgICBBdG9taWNzLmNw
cCBcCiAgICAgQml0VmVjdG9yLmNwcCBcCiAgICAgQ3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1i
ZXIuY3BwIFwKICAgICBDdXJyZW50VGltZS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvQXRvbWljcy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9BdG9taWNzLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNTJmMTUzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dURi93dGYvQXRvbWljcy5jcHAKQEAgLTAsMCArMSwxMjggQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDcsIDIwMDgsIDIwMTAsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDA3IEp1c3RpbiBIYXlnb29kIChqaGF5Z29vZEByZWFrdGl4
LmNvbSkKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisg
KiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuIAorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uIAorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBw
bGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMg
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLiAKKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqCisgKgorICogTm90ZTogVGhlIGltcGxlbWVudGF0aW9ucyBvZiBJbnRlcmxvY2tlZEluY3Jl
bWVudCBhbmQgSW50ZXJsb2NrZWREZWNyZW1lbnQgYXJlIGJhc2VkCisgKiBvbiBhdG9taWNfaW5j
cmVtZW50IGFuZCBhdG9taWNfZXhjaGFuZ2VfYW5kX2FkZCBmcm9tIHRoZSBCb29zdCBDKysgTGli
cmFyeS4gVGhlIGxpY2Vuc2UKKyAqIGlzIHZpcnR1YWxseSBpZGVudGljYWwgdG8gdGhlIEFwcGxl
IGxpY2Vuc2UgYWJvdmUgYnV0IGlzIGluY2x1ZGVkIGhlcmUgZm9yIGNvbXBsZXRlbmVzcy4KKyAq
CisgKiBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlIC0gVmVyc2lvbiAxLjAgLSBBdWd1c3QgMTd0aCwg
MjAwMworICogCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJn
ZSwgdG8gYW55IHBlcnNvbiBvciBvcmdhbml6YXRpb24KKyAqIG9idGFpbmluZyBhIGNvcHkgb2Yg
dGhlIHNvZnR3YXJlIGFuZCBhY2NvbXBhbnlpbmcgZG9jdW1lbnRhdGlvbiBjb3ZlcmVkIGJ5Cisg
KiB0aGlzIGxpY2Vuc2UgKHRoZSAiU29mdHdhcmUiKSB0byB1c2UsIHJlcHJvZHVjZSwgZGlzcGxh
eSwgZGlzdHJpYnV0ZSwKKyAqIGV4ZWN1dGUsIGFuZCB0cmFuc21pdCB0aGUgU29mdHdhcmUsIGFu
ZCB0byBwcmVwYXJlIGRlcml2YXRpdmUgd29ya3Mgb2YgdGhlCisgKiBTb2Z0d2FyZSwgYW5kIHRv
IHBlcm1pdCB0aGlyZC1wYXJ0aWVzIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0
bworICogZG8gc28sIGFsbCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmc6CisgKiAKKyAqIFRoZSBj
b3B5cmlnaHQgbm90aWNlcyBpbiB0aGUgU29mdHdhcmUgYW5kIHRoaXMgZW50aXJlIHN0YXRlbWVu
dCwgaW5jbHVkaW5nCisgKiB0aGUgYWJvdmUgbGljZW5zZSBncmFudCwgdGhpcyByZXN0cmljdGlv
biBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLAorICogbXVzdCBiZSBpbmNsdWRlZCBpbiBh
bGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgaW4gd2hvbGUgb3IgaW4gcGFydCwgYW5kCisgKiBh
bGwgZGVyaXZhdGl2ZSB3b3JrcyBvZiB0aGUgU29mdHdhcmUsIHVubGVzcyBzdWNoIGNvcGllcyBv
ciBkZXJpdmF0aXZlCisgKiB3b3JrcyBhcmUgc29sZWx5IGluIHRoZSBmb3JtIG9mIG1hY2hpbmUt
ZXhlY3V0YWJsZSBvYmplY3QgY29kZSBnZW5lcmF0ZWQgYnkKKyAqIGEgc291cmNlIGxhbmd1YWdl
IHByb2Nlc3Nvci4KKyAqIAorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJ
VEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xV
RElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
LAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UsIFRJVExFIEFORCBOT04tSU5G
UklOR0VNRU5ULiBJTiBOTyBFVkVOVAorICogU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVJTIE9S
IEFOWU9ORSBESVNUUklCVVRJTkcgVEhFIFNPRlRXQVJFIEJFIExJQUJMRQorICogRk9SIEFOWSBE
QU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgVE9SVCBPUiBP
VEhFUldJU0UsCisgKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEgg
VEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKKyAqIERFQUxJTkdTIElOIFRIRSBTT0ZU
V0FSRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQXRvbWljcy5oIgor
CisjaW5jbHVkZSA8cHRocmVhZC5oPgorCisjaWYgQ1BVKE1JUFMpICYmIENPTVBJTEVSKEdDQykg
JiYgVVNFKExPQ0tGUkVFX1RIUkVBRFNBRkVSRUZDT1VOVEVEKQorCitzdGF0aWMgYm9vbCBzX2lz
SW5pdGVkID0gZmFsc2U7CitzdGF0aWMgY29uc3Qgc2l6ZV90IGtTd2FwTG9ja0NvdW50ID0gMzI7
CitzdGF0aWMgcHRocmVhZF9tdXRleF90KiBzX3N3YXBMb2Nrc1trU3dhcExvY2tDb3VudF07CisK
Kworc3RhdGljIHZvaWQgcXVhc2lBdG9taWNzU3RhcnR1cCgpCit7CisgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBrU3dhcExvY2tDb3VudDsgKytpKSB7CisgICAgICAgIHB0aHJlYWRfbXV0ZXhf
dCogbSA9IG5ldyBwdGhyZWFkX211dGV4X3Q7CisgICAgICAgIHB0aHJlYWRfbXV0ZXhfaW5pdCht
LCAwKTsKKyAgICAgICAgc19zd2FwTG9ja3NbaV0gPSBtOworICAgIH0KKyAgICBzX2lzSW5pdGVk
ID0gdHJ1ZTsKK30KKworc3RhdGljIHZvaWQgcXVhc2lBdG9taWNzU2h1dGRvd24oKQoreworICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwga1N3YXBMb2NrQ291bnQ7ICsraSkgeworICAgICAgICBw
dGhyZWFkX211dGV4X3QqIG0gPSBzX3N3YXBMb2Nrc1tpXTsKKyAgICAgICAgc19zd2FwTG9ja3Nb
aV0gPSAwOworICAgICAgICBpZiAobSkgeworICAgICAgICAgICAgcHRocmVhZF9tdXRleF9kZXN0
cm95KG0pOworICAgICAgICAgICAgZGVsZXRlIG07CisgICAgICAgIH0KKyAgICB9CisgICAgc19p
c0luaXRlZCA9IGZhbHNlOworfQorCitzdGF0aWMgaW5saW5lIHB0aHJlYWRfbXV0ZXhfdCogZ2V0
U3dhcExvY2soY29uc3Qgdm9sYXRpbGUgaW50NjRfdCogYWRkcikKK3sKKyAgICByZXR1cm4gc19z
d2FwTG9ja3NbKHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KGFkZHIpID4+IDNVKSAlIGtTd2Fw
TG9ja0NvdW50XTsKK30KKworc3RhdGljIGludDY0X3QgYXRvbWljU3RlcChpbnQ2NF90IHZvbGF0
aWxlKiBhZGRlbmQsIGludDY0X3Qgc3RlcCkKK3sKKyAgICBpZiAoIXNfaXNJbml0ZWQpCisgICAg
ICAgIHF1YXNpQXRvbWljc1N0YXJ0dXAoKTsKKworICAgIHB0aHJlYWRfbXV0ZXhfdCogbG9jayA9
IGdldFN3YXBMb2NrKGFkZGVuZCk7CisKKyAgICBwdGhyZWFkX211dGV4X2xvY2sobG9jayk7Cisg
ICAgaW50NjRfdCB2YWx1ZSA9ICphZGRlbmQgKyBzdGVwOworICAgICphZGRlbmQgPSB2YWx1ZTsK
KyAgICBwdGhyZWFkX211dGV4X3VubG9jayhsb2NrKTsKKworICAgIHJldHVybiB2YWx1ZTsKK30K
KworZXh0ZXJuICJDIiB7CisKK2ludDY0X3QgX19zeW5jX2FkZF9hbmRfZmV0Y2hfOChpbnQ2NF90
IHZvbGF0aWxlKiBhZGRlbmQsIGludDY0X3QgdmFsdWUpCit7CisgICAgcmV0dXJuIGF0b21pY1N0
ZXAoYWRkZW5kLCB2YWx1ZSk7Cit9CisKK2ludDY0X3QgX19zeW5jX3N1Yl9hbmRfZmV0Y2hfOChp
bnQ2NF90IHZvbGF0aWxlKiBhZGRlbmQsIGludDY0X3QgdmFsdWUpCit7CisgICAgcmV0dXJuIGF0
b21pY1N0ZXAoYWRkZW5kLCAtdmFsdWUpOworfQorCit9IC8vIGV4dGVybiAiQyIKKworI2VuZGlm
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184191</attachid>
            <date>2013-01-23 03:12:25 -0800</date>
            <delta_ts>2013-01-24 10:40:04 -0800</delta_ts>
            <desc>proposed patch with improved init.</desc>
            <filename>atomic.diff</filename>
            <type>text/plain</type>
            <size>6020</size>
            <attacher name="Balazs Kilvady">kilvadyb</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggZTM5NTUzZi4uNGFjN2MxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMy0wMS0yMyAg
QmFsYXpzIEtpbHZhZHkgIDxraWx2YWR5YkBob21lamlubmkuY29tPgorCisgICAgICAgIEZpeCB0
aGUgYXRvbWljSW5jcmVtZW50IGltcGxlbWVudGF0aW9uIGZvciBNSVBTIEdDQworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2NzM5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50YXRpb24gb2Yg
bWlzc2luZyBfX3N5bmNfW2FkZHxzdWJdX2FuZF9mZXRjaF84IGZ1bmN0aW9ucy4KKworICAgICAg
ICAqIFdURi5wcm86CisgICAgICAgICogd3RmL0F0b21pY3MuY3BwOiBBZGRlZC4KKyAgICAgICAg
KHF1YXNpQXRvbWljc1N0YXJ0dXApOgorICAgICAgICAocXVhc2lBdG9taWNzU2h1dGRvd24pOgor
ICAgICAgICAoZ2V0U3dhcExvY2spOgorICAgICAgICAoYXRvbWljU3RlcCk6CisKIDIwMTMtMDEt
MjIgIEpvc2h1YSBCZWxsICA8anNiZWxsQGNocm9taXVtLm9yZz4KIAogICAgICAgICBQcmV2ZW50
IHJhY2UgY29uZGl0aW9uIGR1cmluZyBXb3JrZXIgc2h1dGRvd24KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvV1RGLnBybyBiL1NvdXJjZS9XVEYvV1RGLnBybwppbmRleCBjOTI5YzY4Li5hMDdlZjRi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi5wcm8KKysrIGIvU291cmNlL1dURi9XVEYucHJv
CkBAIC0xOTcsNiArMTk3LDcgQEAgU09VUkNFUyArPSBcCiAgICAgQXJyYXlCdWZmZXIuY3BwIFwK
ICAgICBBcnJheUJ1ZmZlclZpZXcuY3BwIFwKICAgICBBc3NlcnRpb25zLmNwcCBcCisgICAgQXRv
bWljcy5jcHAgXAogICAgIEJpdFZlY3Rvci5jcHAgXAogICAgIENyeXB0b2dyYXBoaWNhbGx5UmFu
ZG9tTnVtYmVyLmNwcCBcCiAgICAgQ3VycmVudFRpbWUuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL0F0b21pY3MuY3BwIGIvU291cmNlL1dURi93dGYvQXRvbWljcy5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDU5OTk2MgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XVEYvd3RmL0F0b21pY3MuY3BwCkBAIC0wLDAgKzEsMTE5IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDA3LCAyMDA4LCAyMDEwLCAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNyBKdXN0aW4gSGF5Z29vZCAoamhheWdvb2RA
cmVha3RpeC5jb20pCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLiAKKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLiAKKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1l
IG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAg
ICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAq
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKgorICoKKyAqIE5vdGU6IFRoZSBpbXBsZW1lbnRhdGlvbnMgb2YgSW50ZXJsb2Nr
ZWRJbmNyZW1lbnQgYW5kIEludGVybG9ja2VkRGVjcmVtZW50IGFyZSBiYXNlZAorICogb24gYXRv
bWljX2luY3JlbWVudCBhbmQgYXRvbWljX2V4Y2hhbmdlX2FuZF9hZGQgZnJvbSB0aGUgQm9vc3Qg
QysrIExpYnJhcnkuIFRoZSBsaWNlbnNlCisgKiBpcyB2aXJ0dWFsbHkgaWRlbnRpY2FsIHRvIHRo
ZSBBcHBsZSBsaWNlbnNlIGFib3ZlIGJ1dCBpcyBpbmNsdWRlZCBoZXJlIGZvciBjb21wbGV0ZW5l
c3MuCisgKgorICogQm9vc3QgU29mdHdhcmUgTGljZW5zZSAtIFZlcnNpb24gMS4wIC0gQXVndXN0
IDE3dGgsIDIwMDMKKyAqIAorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBv
ZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb3Igb3JnYW5pemF0aW9uCisgKiBvYnRhaW5pbmcgYSBj
b3B5IG9mIHRoZSBzb2Z0d2FyZSBhbmQgYWNjb21wYW55aW5nIGRvY3VtZW50YXRpb24gY292ZXJl
ZCBieQorICogdGhpcyBsaWNlbnNlICh0aGUgIlNvZnR3YXJlIikgdG8gdXNlLCByZXByb2R1Y2Us
IGRpc3BsYXksIGRpc3RyaWJ1dGUsCisgKiBleGVjdXRlLCBhbmQgdHJhbnNtaXQgdGhlIFNvZnR3
YXJlLCBhbmQgdG8gcHJlcGFyZSBkZXJpdmF0aXZlIHdvcmtzIG9mIHRoZQorICogU29mdHdhcmUs
IGFuZCB0byBwZXJtaXQgdGhpcmQtcGFydGllcyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJu
aXNoZWQgdG8KKyAqIGRvIHNvLCBhbGwgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nOgorICogCisg
KiBUaGUgY29weXJpZ2h0IG5vdGljZXMgaW4gdGhlIFNvZnR3YXJlIGFuZCB0aGlzIGVudGlyZSBz
dGF0ZW1lbnQsIGluY2x1ZGluZworICogdGhlIGFib3ZlIGxpY2Vuc2UgZ3JhbnQsIHRoaXMgcmVz
dHJpY3Rpb24gYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciwKKyAqIG11c3QgYmUgaW5jbHVk
ZWQgaW4gYWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGluIHdob2xlIG9yIGluIHBhcnQsIGFu
ZAorICogYWxsIGRlcml2YXRpdmUgd29ya3Mgb2YgdGhlIFNvZnR3YXJlLCB1bmxlc3Mgc3VjaCBj
b3BpZXMgb3IgZGVyaXZhdGl2ZQorICogd29ya3MgYXJlIHNvbGVseSBpbiB0aGUgZm9ybSBvZiBt
YWNoaW5lLWV4ZWN1dGFibGUgb2JqZWN0IGNvZGUgZ2VuZXJhdGVkIGJ5CisgKiBhIHNvdXJjZSBs
YW5ndWFnZSBwcm9jZXNzb3IuCisgKiAKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMg
SVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVE
LCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLCBUSVRMRSBBTkQg
Tk9OLUlORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQKKyAqIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBPUiBBTllPTkUgRElTVFJJQlVUSU5HIFRIRSBTT0ZUV0FSRSBCRSBMSUFCTEUKKyAqIEZP
UiBBTlkgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFRP
UlQgT1IgT1RIRVJXSVNFLAorICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElP
TiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCisgKiBERUFMSU5HUyBJTiBU
SEUgU09GVFdBUkUuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkF0b21p
Y3MuaCIKKworI2luY2x1ZGUgPHB0aHJlYWQuaD4KKworI2lmIENQVShNSVBTKSAmJiBDT01QSUxF
UihHQ0MpICYmIFVTRShMT0NLRlJFRV9USFJFQURTQUZFUkVGQ09VTlRFRCkKKworc3RhdGljIGJv
b2wgc19pc0luaXRlZCA9IGZhbHNlOworc3RhdGljIGNvbnN0IHNpemVfdCBrU3dhcExvY2tDb3Vu
dCA9IDMyOworc3RhdGljIHB0aHJlYWRfbXV0ZXhfdCBzX3N3YXBMb2Nrc1trU3dhcExvY2tDb3Vu
dF07CisKKworc3RhdGljIHZvaWQgcXVhc2lBdG9taWNzU3RhcnR1cCgpCit7CisgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBrU3dhcExvY2tDb3VudDsgKytpKQorICAgICAgICBwdGhyZWFkX211
dGV4X2luaXQoJnNfc3dhcExvY2tzW2ldLCAwKTsKKyAgICBzX2lzSW5pdGVkID0gdHJ1ZTsKK30K
Kworc3RhdGljIHZvaWQgcXVhc2lBdG9taWNzU2h1dGRvd24oKQoreworICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwga1N3YXBMb2NrQ291bnQ7ICsraSkKKyAgICAgICAgcHRocmVhZF9tdXRleF9k
ZXN0cm95KCZzX3N3YXBMb2Nrc1tpXSk7CisgICAgc19pc0luaXRlZCA9IGZhbHNlOworfQorCitz
dGF0aWMgaW5saW5lIHB0aHJlYWRfbXV0ZXhfdCogZ2V0U3dhcExvY2soY29uc3Qgdm9sYXRpbGUg
aW50NjRfdCogYWRkcikKK3sKKyAgICByZXR1cm4gJnNfc3dhcExvY2tzWyhyZWludGVycHJldF9j
YXN0PGludHB0cl90PihhZGRyKSA+PiAzVSkgJSBrU3dhcExvY2tDb3VudF07Cit9CisKK3N0YXRp
YyBpbnQ2NF90IGF0b21pY1N0ZXAoaW50NjRfdCB2b2xhdGlsZSogYWRkZW5kLCBpbnQ2NF90IHN0
ZXApCit7CisgICAgaWYgKCFzX2lzSW5pdGVkKQorICAgICAgICBxdWFzaUF0b21pY3NTdGFydHVw
KCk7CisKKyAgICBwdGhyZWFkX211dGV4X3QqIGxvY2sgPSBnZXRTd2FwTG9jayhhZGRlbmQpOwor
CisgICAgcHRocmVhZF9tdXRleF9sb2NrKGxvY2spOworICAgIGludDY0X3QgdmFsdWUgPSAqYWRk
ZW5kICsgc3RlcDsKKyAgICAqYWRkZW5kID0gdmFsdWU7CisgICAgcHRocmVhZF9tdXRleF91bmxv
Y2sobG9jayk7CisKKyAgICByZXR1cm4gdmFsdWU7Cit9CisKK2V4dGVybiAiQyIgeworCitpbnQ2
NF90IF9fc3luY19hZGRfYW5kX2ZldGNoXzgoaW50NjRfdCB2b2xhdGlsZSogYWRkZW5kLCBpbnQ2
NF90IHZhbHVlKQoreworICAgIHJldHVybiBhdG9taWNTdGVwKGFkZGVuZCwgdmFsdWUpOworfQor
CitpbnQ2NF90IF9fc3luY19zdWJfYW5kX2ZldGNoXzgoaW50NjRfdCB2b2xhdGlsZSogYWRkZW5k
LCBpbnQ2NF90IHZhbHVlKQoreworICAgIHJldHVybiBhdG9taWNTdGVwKGFkZGVuZCwgLXZhbHVl
KTsKK30KKworfSAvLyBleHRlcm4gIkMiCisKKyNlbmRpZgo=
</data>
<flag name="review"
          id="202841"
          type_id="1"
          status="-"
          setter="benjamin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184526</attachid>
            <date>2013-01-24 10:40:04 -0800</date>
            <delta_ts>2013-01-24 10:47:20 -0800</delta_ts>
            <desc>proposed WTFized patch.</desc>
            <filename>atomic.diff</filename>
            <type>text/plain</type>
            <size>5607</size>
            <attacher name="Balazs Kilvady">kilvadyb</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggOGY1Njg3Ny4uOTk4YzVlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMy0wMS0yNCAg
QmFsYXpzIEtpbHZhZHkgIDxraWx2YWR5YkBob21lamlubmkuY29tPgorCisgICAgICAgIEZpeCB0
aGUgYXRvbWljSW5jcmVtZW50IGltcGxlbWVudGF0aW9uIGZvciBNSVBTIEdDQworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2NzM5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50YXRpb24gb2Yg
bWlzc2luZyBfX3N5bmNfW2FkZHxzdWJdX2FuZF9mZXRjaF84IGZ1bmN0aW9ucy4KKworICAgICAg
ICAqIFdURi5wcm86CisgICAgICAgICogd3RmL0F0b21pY3MuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdURik6CisgICAgICAgIChXVEY6OmdldFN3YXBMb2NrKToKKyAgICAgICAgKFdURjo6YXRvbWlj
U3RlcCk6CisKIDIwMTMtMDEtMjMgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBVbnJldmlld2VkLCBzZXQgc3ZuOmVvbC1zdHlsZSB0byBDUkxGIG9uIFdpbmRvd3Mg
LnNsbiBmaWxlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnBybyBiL1NvdXJjZS9XVEYv
V1RGLnBybwppbmRleCBjOTI5YzY4Li5hMDdlZjRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dU
Ri5wcm8KKysrIGIvU291cmNlL1dURi9XVEYucHJvCkBAIC0xOTcsNiArMTk3LDcgQEAgU09VUkNF
UyArPSBcCiAgICAgQXJyYXlCdWZmZXIuY3BwIFwKICAgICBBcnJheUJ1ZmZlclZpZXcuY3BwIFwK
ICAgICBBc3NlcnRpb25zLmNwcCBcCisgICAgQXRvbWljcy5jcHAgXAogICAgIEJpdFZlY3Rvci5j
cHAgXAogICAgIENyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmNwcCBcCiAgICAgQ3VycmVu
dFRpbWUuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0F0b21pY3MuY3BwIGIvU291
cmNlL1dURi93dGYvQXRvbWljcy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uZTk0MGNmMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL0F0b21pY3MuY3Bw
CkBAIC0wLDAgKzEsMTA3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4LCAyMDEw
LCAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAwNyBKdXN0aW4gSGF5Z29vZCAoamhheWdvb2RAcmVha3RpeC5jb20pCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLiAKKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLiAKKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgi
QXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20g
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4g
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRS
SUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICoKKyAqIE5vdGU6IFRo
ZSBpbXBsZW1lbnRhdGlvbnMgb2YgSW50ZXJsb2NrZWRJbmNyZW1lbnQgYW5kIEludGVybG9ja2Vk
RGVjcmVtZW50IGFyZSBiYXNlZAorICogb24gYXRvbWljX2luY3JlbWVudCBhbmQgYXRvbWljX2V4
Y2hhbmdlX2FuZF9hZGQgZnJvbSB0aGUgQm9vc3QgQysrIExpYnJhcnkuIFRoZSBsaWNlbnNlCisg
KiBpcyB2aXJ0dWFsbHkgaWRlbnRpY2FsIHRvIHRoZSBBcHBsZSBsaWNlbnNlIGFib3ZlIGJ1dCBp
cyBpbmNsdWRlZCBoZXJlIGZvciBjb21wbGV0ZW5lc3MuCisgKgorICogQm9vc3QgU29mdHdhcmUg
TGljZW5zZSAtIFZlcnNpb24gMS4wIC0gQXVndXN0IDE3dGgsIDIwMDMKKyAqIAorICogUGVybWlz
c2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb3Ig
b3JnYW5pemF0aW9uCisgKiBvYnRhaW5pbmcgYSBjb3B5IG9mIHRoZSBzb2Z0d2FyZSBhbmQgYWNj
b21wYW55aW5nIGRvY3VtZW50YXRpb24gY292ZXJlZCBieQorICogdGhpcyBsaWNlbnNlICh0aGUg
IlNvZnR3YXJlIikgdG8gdXNlLCByZXByb2R1Y2UsIGRpc3BsYXksIGRpc3RyaWJ1dGUsCisgKiBl
eGVjdXRlLCBhbmQgdHJhbnNtaXQgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcHJlcGFyZSBkZXJpdmF0
aXZlIHdvcmtzIG9mIHRoZQorICogU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgdGhpcmQtcGFydGll
cyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8KKyAqIGRvIHNvLCBhbGwgc3Vi
amVjdCB0byB0aGUgZm9sbG93aW5nOgorICogCisgKiBUaGUgY29weXJpZ2h0IG5vdGljZXMgaW4g
dGhlIFNvZnR3YXJlIGFuZCB0aGlzIGVudGlyZSBzdGF0ZW1lbnQsIGluY2x1ZGluZworICogdGhl
IGFib3ZlIGxpY2Vuc2UgZ3JhbnQsIHRoaXMgcmVzdHJpY3Rpb24gYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciwKKyAqIG11c3QgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvZiB0aGUgU29m
dHdhcmUsIGluIHdob2xlIG9yIGluIHBhcnQsIGFuZAorICogYWxsIGRlcml2YXRpdmUgd29ya3Mg
b2YgdGhlIFNvZnR3YXJlLCB1bmxlc3Mgc3VjaCBjb3BpZXMgb3IgZGVyaXZhdGl2ZQorICogd29y
a3MgYXJlIHNvbGVseSBpbiB0aGUgZm9ybSBvZiBtYWNoaW5lLWV4ZWN1dGFibGUgb2JqZWN0IGNv
ZGUgZ2VuZXJhdGVkIGJ5CisgKiBhIHNvdXJjZSBsYW5ndWFnZSBwcm9jZXNzb3IuCisgKiAKKyAq
IFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFO
WSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVE
IFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLCBUSVRMRSBBTkQgTk9OLUlORlJJTkdFTUVOVC4gSU4gTk8gRVZF
TlQKKyAqIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSUyBPUiBBTllPTkUgRElTVFJJQlVUSU5H
IFRIRSBTT0ZUV0FSRSBCRSBMSUFCTEUKKyAqIEZPUiBBTlkgREFNQUdFUyBPUiBPVEhFUiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAorICogQVJJU0lO
RyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUg
VVNFIE9SIE9USEVSCisgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkF0b21pY3MuaCIKKworI2lmIENQVShNSVBTKSAmJiBD
T01QSUxFUihHQ0MpICYmIFVTRShMT0NLRlJFRV9USFJFQURTQUZFUkVGQ09VTlRFRCkgJiYgVVNF
KFBUSFJFQURTKQorCisjaW5jbHVkZSAiVGhyZWFkaW5nUHJpbWl0aXZlcy5oIgorCituYW1lc3Bh
Y2UgV1RGIHsKKworc3RhdGljIGNvbnN0IHNpemVfdCBrU3dhcExvY2tDb3VudCA9IDMyOworc3Rh
dGljIE11dGV4IHNfc3dhcExvY2tzW2tTd2FwTG9ja0NvdW50XTsKKworc3RhdGljIGlubGluZSBN
dXRleCYgZ2V0U3dhcExvY2soY29uc3Qgdm9sYXRpbGUgaW50NjRfdCogYWRkcikKK3sKKyAgICBy
ZXR1cm4gc19zd2FwTG9ja3NbKHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KGFkZHIpID4+IDNV
KSAlIGtTd2FwTG9ja0NvdW50XTsKK30KKworc3RhdGljIGludDY0X3QgYXRvbWljU3RlcChpbnQ2
NF90IHZvbGF0aWxlKiBhZGRlbmQsIGludDY0X3Qgc3RlcCkKK3sKKyAgICBNdXRleCYgbXV0ZXgg
PSBnZXRTd2FwTG9jayhhZGRlbmQpOworCisgICAgbXV0ZXgubG9jaygpOworICAgIGludDY0X3Qg
dmFsdWUgPSAqYWRkZW5kICsgc3RlcDsKKyAgICAqYWRkZW5kID0gdmFsdWU7CisgICAgbXV0ZXgu
dW5sb2NrKCk7CisKKyAgICByZXR1cm4gdmFsdWU7Cit9CisKK2V4dGVybiAiQyIgeworCitpbnQ2
NF90IF9fc3luY19hZGRfYW5kX2ZldGNoXzgoaW50NjRfdCB2b2xhdGlsZSogYWRkZW5kLCBpbnQ2
NF90IHZhbHVlKQoreworICAgIHJldHVybiBhdG9taWNTdGVwKGFkZGVuZCwgdmFsdWUpOworfQor
CitpbnQ2NF90IF9fc3luY19zdWJfYW5kX2ZldGNoXzgoaW50NjRfdCB2b2xhdGlsZSogYWRkZW5k
LCBpbnQ2NF90IHZhbHVlKQoreworICAgIHJldHVybiBhdG9taWNTdGVwKGFkZGVuZCwgLXZhbHVl
KTsKK30KKworfSAvLyBleHRlcm4gIkMiCisKK30gLy8gbmFtZXNwYWNlIFdURgorCisjZWxzZQor
I2Vycm9yIHd0ZgorI2VuZGlmCisK
</data>
<flag name="commit-queue"
          id="203287"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184530</attachid>
            <date>2013-01-24 10:51:04 -0800</date>
            <delta_ts>2013-02-04 03:28:06 -0800</delta_ts>
            <desc>fixed WTFized patch.</desc>
            <filename>atomic.diff</filename>
            <type>text/plain</type>
            <size>5586</size>
            <attacher name="Balazs Kilvady">kilvadyb</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggOGY1Njg3Ny4uOTk4YzVlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMy0wMS0yNCAg
QmFsYXpzIEtpbHZhZHkgIDxraWx2YWR5YkBob21lamlubmkuY29tPgorCisgICAgICAgIEZpeCB0
aGUgYXRvbWljSW5jcmVtZW50IGltcGxlbWVudGF0aW9uIGZvciBNSVBTIEdDQworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2NzM5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50YXRpb24gb2Yg
bWlzc2luZyBfX3N5bmNfW2FkZHxzdWJdX2FuZF9mZXRjaF84IGZ1bmN0aW9ucy4KKworICAgICAg
ICAqIFdURi5wcm86CisgICAgICAgICogd3RmL0F0b21pY3MuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdURik6CisgICAgICAgIChXVEY6OmdldFN3YXBMb2NrKToKKyAgICAgICAgKFdURjo6YXRvbWlj
U3RlcCk6CisKIDIwMTMtMDEtMjMgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBVbnJldmlld2VkLCBzZXQgc3ZuOmVvbC1zdHlsZSB0byBDUkxGIG9uIFdpbmRvd3Mg
LnNsbiBmaWxlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnBybyBiL1NvdXJjZS9XVEYv
V1RGLnBybwppbmRleCBjOTI5YzY4Li5hMDdlZjRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dU
Ri5wcm8KKysrIGIvU291cmNlL1dURi9XVEYucHJvCkBAIC0xOTcsNiArMTk3LDcgQEAgU09VUkNF
UyArPSBcCiAgICAgQXJyYXlCdWZmZXIuY3BwIFwKICAgICBBcnJheUJ1ZmZlclZpZXcuY3BwIFwK
ICAgICBBc3NlcnRpb25zLmNwcCBcCisgICAgQXRvbWljcy5jcHAgXAogICAgIEJpdFZlY3Rvci5j
cHAgXAogICAgIENyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmNwcCBcCiAgICAgQ3VycmVu
dFRpbWUuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0F0b21pY3MuY3BwIGIvU291
cmNlL1dURi93dGYvQXRvbWljcy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uNzNmOGVhOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL0F0b21pY3MuY3Bw
CkBAIC0wLDAgKzEsMTA0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4LCAyMDEw
LCAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAwNyBKdXN0aW4gSGF5Z29vZCAoamhheWdvb2RAcmVha3RpeC5jb20pCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLiAKKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLiAKKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgi
QXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20g
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4g
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRS
SUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICoKKyAqIE5vdGU6IFRo
ZSBpbXBsZW1lbnRhdGlvbnMgb2YgSW50ZXJsb2NrZWRJbmNyZW1lbnQgYW5kIEludGVybG9ja2Vk
RGVjcmVtZW50IGFyZSBiYXNlZAorICogb24gYXRvbWljX2luY3JlbWVudCBhbmQgYXRvbWljX2V4
Y2hhbmdlX2FuZF9hZGQgZnJvbSB0aGUgQm9vc3QgQysrIExpYnJhcnkuIFRoZSBsaWNlbnNlCisg
KiBpcyB2aXJ0dWFsbHkgaWRlbnRpY2FsIHRvIHRoZSBBcHBsZSBsaWNlbnNlIGFib3ZlIGJ1dCBp
cyBpbmNsdWRlZCBoZXJlIGZvciBjb21wbGV0ZW5lc3MuCisgKgorICogQm9vc3QgU29mdHdhcmUg
TGljZW5zZSAtIFZlcnNpb24gMS4wIC0gQXVndXN0IDE3dGgsIDIwMDMKKyAqIAorICogUGVybWlz
c2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb3Ig
b3JnYW5pemF0aW9uCisgKiBvYnRhaW5pbmcgYSBjb3B5IG9mIHRoZSBzb2Z0d2FyZSBhbmQgYWNj
b21wYW55aW5nIGRvY3VtZW50YXRpb24gY292ZXJlZCBieQorICogdGhpcyBsaWNlbnNlICh0aGUg
IlNvZnR3YXJlIikgdG8gdXNlLCByZXByb2R1Y2UsIGRpc3BsYXksIGRpc3RyaWJ1dGUsCisgKiBl
eGVjdXRlLCBhbmQgdHJhbnNtaXQgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcHJlcGFyZSBkZXJpdmF0
aXZlIHdvcmtzIG9mIHRoZQorICogU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgdGhpcmQtcGFydGll
cyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8KKyAqIGRvIHNvLCBhbGwgc3Vi
amVjdCB0byB0aGUgZm9sbG93aW5nOgorICogCisgKiBUaGUgY29weXJpZ2h0IG5vdGljZXMgaW4g
dGhlIFNvZnR3YXJlIGFuZCB0aGlzIGVudGlyZSBzdGF0ZW1lbnQsIGluY2x1ZGluZworICogdGhl
IGFib3ZlIGxpY2Vuc2UgZ3JhbnQsIHRoaXMgcmVzdHJpY3Rpb24gYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciwKKyAqIG11c3QgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvZiB0aGUgU29m
dHdhcmUsIGluIHdob2xlIG9yIGluIHBhcnQsIGFuZAorICogYWxsIGRlcml2YXRpdmUgd29ya3Mg
b2YgdGhlIFNvZnR3YXJlLCB1bmxlc3Mgc3VjaCBjb3BpZXMgb3IgZGVyaXZhdGl2ZQorICogd29y
a3MgYXJlIHNvbGVseSBpbiB0aGUgZm9ybSBvZiBtYWNoaW5lLWV4ZWN1dGFibGUgb2JqZWN0IGNv
ZGUgZ2VuZXJhdGVkIGJ5CisgKiBhIHNvdXJjZSBsYW5ndWFnZSBwcm9jZXNzb3IuCisgKiAKKyAq
IFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFO
WSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVE
IFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLCBUSVRMRSBBTkQgTk9OLUlORlJJTkdFTUVOVC4gSU4gTk8gRVZF
TlQKKyAqIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSUyBPUiBBTllPTkUgRElTVFJJQlVUSU5H
IFRIRSBTT0ZUV0FSRSBCRSBMSUFCTEUKKyAqIEZPUiBBTlkgREFNQUdFUyBPUiBPVEhFUiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAorICogQVJJU0lO
RyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUg
VVNFIE9SIE9USEVSCisgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkF0b21pY3MuaCIKKworI2lmIENQVShNSVBTKSAmJiBD
T01QSUxFUihHQ0MpICYmIFVTRShMT0NLRlJFRV9USFJFQURTQUZFUkVGQ09VTlRFRCkgJiYgVVNF
KFBUSFJFQURTKQorCisjaW5jbHVkZSAiVGhyZWFkaW5nUHJpbWl0aXZlcy5oIgorCituYW1lc3Bh
Y2UgV1RGIHsKKworc3RhdGljIGNvbnN0IHNpemVfdCBrU3dhcExvY2tDb3VudCA9IDMyOworc3Rh
dGljIE11dGV4IHNfc3dhcExvY2tzW2tTd2FwTG9ja0NvdW50XTsKKworc3RhdGljIGlubGluZSBN
dXRleCYgZ2V0U3dhcExvY2soY29uc3Qgdm9sYXRpbGUgaW50NjRfdCogYWRkcikKK3sKKyAgICBy
ZXR1cm4gc19zd2FwTG9ja3NbKHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KGFkZHIpID4+IDNV
KSAlIGtTd2FwTG9ja0NvdW50XTsKK30KKworc3RhdGljIGludDY0X3QgYXRvbWljU3RlcChpbnQ2
NF90IHZvbGF0aWxlKiBhZGRlbmQsIGludDY0X3Qgc3RlcCkKK3sKKyAgICBNdXRleCYgbXV0ZXgg
PSBnZXRTd2FwTG9jayhhZGRlbmQpOworCisgICAgbXV0ZXgubG9jaygpOworICAgIGludDY0X3Qg
dmFsdWUgPSAqYWRkZW5kICsgc3RlcDsKKyAgICAqYWRkZW5kID0gdmFsdWU7CisgICAgbXV0ZXgu
dW5sb2NrKCk7CisKKyAgICByZXR1cm4gdmFsdWU7Cit9CisKK2V4dGVybiAiQyIgeworCitpbnQ2
NF90IF9fc3luY19hZGRfYW5kX2ZldGNoXzgoaW50NjRfdCB2b2xhdGlsZSogYWRkZW5kLCBpbnQ2
NF90IHZhbHVlKQoreworICAgIHJldHVybiBhdG9taWNTdGVwKGFkZGVuZCwgdmFsdWUpOworfQor
CitpbnQ2NF90IF9fc3luY19zdWJfYW5kX2ZldGNoXzgoaW50NjRfdCB2b2xhdGlsZSogYWRkZW5k
LCBpbnQ2NF90IHZhbHVlKQoreworICAgIHJldHVybiBhdG9taWNTdGVwKGFkZGVuZCwgLXZhbHVl
KTsKK30KKworfSAvLyBleHRlcm4gIkMiCisKK30gLy8gbmFtZXNwYWNlIFdURgorCisjZW5kaWYK
</data>
<flag name="commit-queue"
          id="203310"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186335</attachid>
            <date>2013-02-04 03:28:06 -0800</date>
            <delta_ts>2013-02-11 10:53:02 -0800</delta_ts>
            <desc>fixed WTFized patch.</desc>
            <filename>atomic.diff</filename>
            <type>text/plain</type>
            <size>5600</size>
            <attacher name="Balazs Kilvady">kilvadyb</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggNGQ2Njg2YS4uZmMzOTljOCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMy0wMi0wNCAg
QmFsYXpzIEtpbHZhZHkgIDxraWx2YWR5YkBob21lamlubmkuY29tPgorCisgICAgICAgIEZpeCB0
aGUgYXRvbWljSW5jcmVtZW50IGltcGxlbWVudGF0aW9uIGZvciBNSVBTIEdDQworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2NzM5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50YXRpb24gb2Yg
bWlzc2luZyBfX3N5bmNfW2FkZHxzdWJdX2FuZF9mZXRjaF84IGZ1bmN0aW9ucy4KKworICAgICAg
ICAqIFdURi5wcm86CisgICAgICAgICogd3RmL0F0b21pY3MuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdURik6CisgICAgICAgIChXVEY6OmdldFN3YXBMb2NrKToKKyAgICAgICAgKFdURjo6YXRvbWlj
U3RlcCk6CisKIDIwMTMtMDItMDIgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgog
CiAgICAgICAgIFZlY3RvciBzaG91bGQgY29uc3VsdCBhbGxvY2F0b3IgYWJvdXQgaWRlYWwgc2l6
ZSB3aGVuIGNob29zaW5nIGNhcGFjaXR5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYucHJv
IGIvU291cmNlL1dURi9XVEYucHJvCmluZGV4IDcyN2Q3OGIuLjdkZjgwZWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvV1RGLnBybworKysgYi9Tb3VyY2UvV1RGL1dURi5wcm8KQEAgLTE5Niw2ICsx
OTYsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBBcnJheUJ1ZmZlci5jcHAgXAogICAgIEFycmF5QnVm
ZmVyVmlldy5jcHAgXAogICAgIEFzc2VydGlvbnMuY3BwIFwKKyAgICBBdG9taWNzLmNwcCBcCiAg
ICAgQml0VmVjdG9yLmNwcCBcCiAgICAgQ3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1iZXIuY3Bw
IFwKICAgICBDdXJyZW50VGltZS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQXRv
bWljcy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9BdG9taWNzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi43M2Y4ZWE4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93
dGYvQXRvbWljcy5jcHAKQEAgLTAsMCArMSwxMDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDcsIDIwMDgsIDIwMTAsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDA3IEp1c3RpbiBIYXlnb29kIChqaGF5Z29vZEByZWFrdGl4LmNvbSkK
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuIAorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uIAorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29t
cHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
CisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLiAKKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICog
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisg
KgorICogTm90ZTogVGhlIGltcGxlbWVudGF0aW9ucyBvZiBJbnRlcmxvY2tlZEluY3JlbWVudCBh
bmQgSW50ZXJsb2NrZWREZWNyZW1lbnQgYXJlIGJhc2VkCisgKiBvbiBhdG9taWNfaW5jcmVtZW50
IGFuZCBhdG9taWNfZXhjaGFuZ2VfYW5kX2FkZCBmcm9tIHRoZSBCb29zdCBDKysgTGlicmFyeS4g
VGhlIGxpY2Vuc2UKKyAqIGlzIHZpcnR1YWxseSBpZGVudGljYWwgdG8gdGhlIEFwcGxlIGxpY2Vu
c2UgYWJvdmUgYnV0IGlzIGluY2x1ZGVkIGhlcmUgZm9yIGNvbXBsZXRlbmVzcy4KKyAqCisgKiBC
b29zdCBTb2Z0d2FyZSBMaWNlbnNlIC0gVmVyc2lvbiAxLjAgLSBBdWd1c3QgMTd0aCwgMjAwMwor
ICogCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8g
YW55IHBlcnNvbiBvciBvcmdhbml6YXRpb24KKyAqIG9idGFpbmluZyBhIGNvcHkgb2YgdGhlIHNv
ZnR3YXJlIGFuZCBhY2NvbXBhbnlpbmcgZG9jdW1lbnRhdGlvbiBjb3ZlcmVkIGJ5CisgKiB0aGlz
IGxpY2Vuc2UgKHRoZSAiU29mdHdhcmUiKSB0byB1c2UsIHJlcHJvZHVjZSwgZGlzcGxheSwgZGlz
dHJpYnV0ZSwKKyAqIGV4ZWN1dGUsIGFuZCB0cmFuc21pdCB0aGUgU29mdHdhcmUsIGFuZCB0byBw
cmVwYXJlIGRlcml2YXRpdmUgd29ya3Mgb2YgdGhlCisgKiBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1p
dCB0aGlyZC1wYXJ0aWVzIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0bworICog
ZG8gc28sIGFsbCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmc6CisgKiAKKyAqIFRoZSBjb3B5cmln
aHQgbm90aWNlcyBpbiB0aGUgU29mdHdhcmUgYW5kIHRoaXMgZW50aXJlIHN0YXRlbWVudCwgaW5j
bHVkaW5nCisgKiB0aGUgYWJvdmUgbGljZW5zZSBncmFudCwgdGhpcyByZXN0cmljdGlvbiBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLAorICogbXVzdCBiZSBpbmNsdWRlZCBpbiBhbGwgY29w
aWVzIG9mIHRoZSBTb2Z0d2FyZSwgaW4gd2hvbGUgb3IgaW4gcGFydCwgYW5kCisgKiBhbGwgZGVy
aXZhdGl2ZSB3b3JrcyBvZiB0aGUgU29mdHdhcmUsIHVubGVzcyBzdWNoIGNvcGllcyBvciBkZXJp
dmF0aXZlCisgKiB3b3JrcyBhcmUgc29sZWx5IGluIHRoZSBmb3JtIG9mIG1hY2hpbmUtZXhlY3V0
YWJsZSBvYmplY3QgY29kZSBnZW5lcmF0ZWQgYnkKKyAqIGEgc291cmNlIGxhbmd1YWdlIHByb2Nl
c3Nvci4KKyAqIAorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQg
V0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBC
VVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICog
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UsIFRJVExFIEFORCBOT04tSU5GUklOR0VN
RU5ULiBJTiBOTyBFVkVOVAorICogU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVJTIE9SIEFOWU9O
RSBESVNUUklCVVRJTkcgVEhFIFNPRlRXQVJFIEJFIExJQUJMRQorICogRk9SIEFOWSBEQU1BR0VT
IE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJ
U0UsCisgKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNP
RlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKKyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQXRvbWljcy5oIgorCisjaWYg
Q1BVKE1JUFMpICYmIENPTVBJTEVSKEdDQykgJiYgVVNFKExPQ0tGUkVFX1RIUkVBRFNBRkVSRUZD
T1VOVEVEKSAmJiBVU0UoUFRIUkVBRFMpCisKKyNpbmNsdWRlICJUaHJlYWRpbmdQcmltaXRpdmVz
LmgiCisKK25hbWVzcGFjZSBXVEYgeworCitzdGF0aWMgY29uc3Qgc2l6ZV90IGtTd2FwTG9ja0Nv
dW50ID0gMzI7CitzdGF0aWMgTXV0ZXggc19zd2FwTG9ja3Nba1N3YXBMb2NrQ291bnRdOworCitz
dGF0aWMgaW5saW5lIE11dGV4JiBnZXRTd2FwTG9jayhjb25zdCB2b2xhdGlsZSBpbnQ2NF90KiBh
ZGRyKQoreworICAgIHJldHVybiBzX3N3YXBMb2Nrc1socmVpbnRlcnByZXRfY2FzdDxpbnRwdHJf
dD4oYWRkcikgPj4gM1UpICUga1N3YXBMb2NrQ291bnRdOworfQorCitzdGF0aWMgaW50NjRfdCBh
dG9taWNTdGVwKGludDY0X3Qgdm9sYXRpbGUqIGFkZGVuZCwgaW50NjRfdCBzdGVwKQoreworICAg
IE11dGV4JiBtdXRleCA9IGdldFN3YXBMb2NrKGFkZGVuZCk7CisKKyAgICBtdXRleC5sb2NrKCk7
CisgICAgaW50NjRfdCB2YWx1ZSA9ICphZGRlbmQgKyBzdGVwOworICAgICphZGRlbmQgPSB2YWx1
ZTsKKyAgICBtdXRleC51bmxvY2soKTsKKworICAgIHJldHVybiB2YWx1ZTsKK30KKworZXh0ZXJu
ICJDIiB7CisKK2ludDY0X3QgX19zeW5jX2FkZF9hbmRfZmV0Y2hfOChpbnQ2NF90IHZvbGF0aWxl
KiBhZGRlbmQsIGludDY0X3QgdmFsdWUpCit7CisgICAgcmV0dXJuIGF0b21pY1N0ZXAoYWRkZW5k
LCB2YWx1ZSk7Cit9CisKK2ludDY0X3QgX19zeW5jX3N1Yl9hbmRfZmV0Y2hfOChpbnQ2NF90IHZv
bGF0aWxlKiBhZGRlbmQsIGludDY0X3QgdmFsdWUpCit7CisgICAgcmV0dXJuIGF0b21pY1N0ZXAo
YWRkZW5kLCAtdmFsdWUpOworfQorCit9IC8vIGV4dGVybiAiQyIKKworfSAvLyBuYW1lc3BhY2Ug
V1RGCisKKyNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187614</attachid>
            <date>2013-02-11 10:53:02 -0800</date>
            <delta_ts>2013-02-13 09:51:00 -0800</delta_ts>
            <desc>fixed WTFized patch.</desc>
            <filename>atomic.diff</filename>
            <type>text/plain</type>
            <size>5587</size>
            <attacher name="Balazs Kilvady">kilvadyb</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggN2Q3NThjZC4uMzdlNmViZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMy0wMi0xMSAg
QmFsYXpzIEtpbHZhZHkgIDxraWx2YWR5YkBob21lamlubmkuY29tPgorCisgICAgICAgIEZpeCB0
aGUgYXRvbWljSW5jcmVtZW50IGltcGxlbWVudGF0aW9uIGZvciBNSVBTIEdDQworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2NzM5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50YXRpb24gb2Yg
bWlzc2luZyBfX3N5bmNfW2FkZHxzdWJdX2FuZF9mZXRjaF84IGZ1bmN0aW9ucy4KKworICAgICAg
ICAqIFdURi5wcm86CisgICAgICAgICogd3RmL0F0b21pY3MuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdURik6CisgICAgICAgIChXVEY6OmdldFN3YXBMb2NrKToKKyAgICAgICAgKFdURjo6YXRvbWlj
U3RlcCk6CisKIDIwMTMtMDItMTEgIENocmlzdG9waGUgRHVtZXogIDxjaC5kdW1lekBzaXNhLnNh
bXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdIFN0b3AgdXNpbmcgc21hcnQgcG9pbnRlcnMgZm9y
IEVjb3JlX1RpbWVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi5wcm8gYi9Tb3VyY2UvV1RG
L1dURi5wcm8KaW5kZXggNzI3ZDc4Yi4uN2RmODBlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9X
VEYucHJvCisrKyBiL1NvdXJjZS9XVEYvV1RGLnBybwpAQCAtMTk2LDYgKzE5Niw3IEBAIFNPVVJD
RVMgKz0gXAogICAgIEFycmF5QnVmZmVyLmNwcCBcCiAgICAgQXJyYXlCdWZmZXJWaWV3LmNwcCBc
CiAgICAgQXNzZXJ0aW9ucy5jcHAgXAorICAgIEF0b21pY3MuY3BwIFwKICAgICBCaXRWZWN0b3Iu
Y3BwIFwKICAgICBDcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5jcHAgXAogICAgIEN1cnJl
bnRUaW1lLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9BdG9taWNzLmNwcCBiL1Nv
dXJjZS9XVEYvd3RmL0F0b21pY3MuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjczZjhlYTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9BdG9taWNzLmNw
cApAQCAtMCwwICsxLDEwNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAx
MCwgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDcgSnVzdGluIEhheWdvb2QgKGpoYXlnb29kQHJlYWt0aXguY29tKQorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4gCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4gCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAo
IkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9t
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
IAorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05U
UklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqCisgKiBOb3RlOiBU
aGUgaW1wbGVtZW50YXRpb25zIG9mIEludGVybG9ja2VkSW5jcmVtZW50IGFuZCBJbnRlcmxvY2tl
ZERlY3JlbWVudCBhcmUgYmFzZWQKKyAqIG9uIGF0b21pY19pbmNyZW1lbnQgYW5kIGF0b21pY19l
eGNoYW5nZV9hbmRfYWRkIGZyb20gdGhlIEJvb3N0IEMrKyBMaWJyYXJ5LiBUaGUgbGljZW5zZQor
ICogaXMgdmlydHVhbGx5IGlkZW50aWNhbCB0byB0aGUgQXBwbGUgbGljZW5zZSBhYm92ZSBidXQg
aXMgaW5jbHVkZWQgaGVyZSBmb3IgY29tcGxldGVuZXNzLgorICoKKyAqIEJvb3N0IFNvZnR3YXJl
IExpY2Vuc2UgLSBWZXJzaW9uIDEuMCAtIEF1Z3VzdCAxN3RoLCAyMDAzCisgKiAKKyAqIFBlcm1p
c3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9y
IG9yZ2FuaXphdGlvbgorICogb2J0YWluaW5nIGEgY29weSBvZiB0aGUgc29mdHdhcmUgYW5kIGFj
Y29tcGFueWluZyBkb2N1bWVudGF0aW9uIGNvdmVyZWQgYnkKKyAqIHRoaXMgbGljZW5zZSAodGhl
ICJTb2Z0d2FyZSIpIHRvIHVzZSwgcmVwcm9kdWNlLCBkaXNwbGF5LCBkaXN0cmlidXRlLAorICog
ZXhlY3V0ZSwgYW5kIHRyYW5zbWl0IHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHByZXBhcmUgZGVyaXZh
dGl2ZSB3b3JrcyBvZiB0aGUKKyAqIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHRoaXJkLXBhcnRp
ZXMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvCisgKiBkbyBzbywgYWxsIHN1
YmplY3QgdG8gdGhlIGZvbGxvd2luZzoKKyAqIAorICogVGhlIGNvcHlyaWdodCBub3RpY2VzIGlu
IHRoZSBTb2Z0d2FyZSBhbmQgdGhpcyBlbnRpcmUgc3RhdGVtZW50LCBpbmNsdWRpbmcKKyAqIHRo
ZSBhYm92ZSBsaWNlbnNlIGdyYW50LCB0aGlzIHJlc3RyaWN0aW9uIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIsCisgKiBtdXN0IGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb2YgdGhlIFNv
ZnR3YXJlLCBpbiB3aG9sZSBvciBpbiBwYXJ0LCBhbmQKKyAqIGFsbCBkZXJpdmF0aXZlIHdvcmtz
IG9mIHRoZSBTb2Z0d2FyZSwgdW5sZXNzIHN1Y2ggY29waWVzIG9yIGRlcml2YXRpdmUKKyAqIHdv
cmtzIGFyZSBzb2xlbHkgaW4gdGhlIGZvcm0gb2YgbWFjaGluZS1leGVjdXRhYmxlIG9iamVjdCBj
b2RlIGdlbmVyYXRlZCBieQorICogYSBzb3VyY2UgbGFuZ3VhZ2UgcHJvY2Vzc29yLgorICogCisg
KiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBB
TlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRF
RCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSwgVElUTEUgQU5EIE5PTi1JTkZSSU5HRU1FTlQuIElOIE5PIEVW
RU5UCisgKiBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUlMgT1IgQU5ZT05FIERJU1RSSUJVVElO
RyBUSEUgU09GVFdBUkUgQkUgTElBQkxFCisgKiBGT1IgQU5ZIERBTUFHRVMgT1IgT1RIRVIgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwKKyAqIEFSSVNJ
TkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhF
IFVTRSBPUiBPVEhFUgorICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBdG9taWNzLmgiCisKKyNpZiBDUFUoTUlQUykgJiYg
Q09NUElMRVIoR0NDKSAmJiBVU0UoTE9DS0ZSRUVfVEhSRUFEU0FGRVJFRkNPVU5URUQpICYmIFVT
RShQVEhSRUFEUykKKworI2luY2x1ZGUgIlRocmVhZGluZ1ByaW1pdGl2ZXMuaCIKKworbmFtZXNw
YWNlIFdURiB7CisKK3N0YXRpYyBjb25zdCBzaXplX3Qga1N3YXBMb2NrQ291bnQgPSAzMjsKK3N0
YXRpYyBNdXRleCBzX3N3YXBMb2Nrc1trU3dhcExvY2tDb3VudF07CisKK3N0YXRpYyBpbmxpbmUg
TXV0ZXgmIGdldFN3YXBMb2NrKGNvbnN0IHZvbGF0aWxlIGludDY0X3QqIGFkZHIpCit7CisgICAg
cmV0dXJuIHNfc3dhcExvY2tzWyhyZWludGVycHJldF9jYXN0PGludHB0cl90PihhZGRyKSA+PiAz
VSkgJSBrU3dhcExvY2tDb3VudF07Cit9CisKK3N0YXRpYyBpbnQ2NF90IGF0b21pY1N0ZXAoaW50
NjRfdCB2b2xhdGlsZSogYWRkZW5kLCBpbnQ2NF90IHN0ZXApCit7CisgICAgTXV0ZXgmIG11dGV4
ID0gZ2V0U3dhcExvY2soYWRkZW5kKTsKKworICAgIG11dGV4LmxvY2soKTsKKyAgICBpbnQ2NF90
IHZhbHVlID0gKmFkZGVuZCArIHN0ZXA7CisgICAgKmFkZGVuZCA9IHZhbHVlOworICAgIG11dGV4
LnVubG9jaygpOworCisgICAgcmV0dXJuIHZhbHVlOworfQorCitleHRlcm4gIkMiIHsKKworaW50
NjRfdCBfX3N5bmNfYWRkX2FuZF9mZXRjaF84KGludDY0X3Qgdm9sYXRpbGUqIGFkZGVuZCwgaW50
NjRfdCB2YWx1ZSkKK3sKKyAgICByZXR1cm4gYXRvbWljU3RlcChhZGRlbmQsIHZhbHVlKTsKK30K
KworaW50NjRfdCBfX3N5bmNfc3ViX2FuZF9mZXRjaF84KGludDY0X3Qgdm9sYXRpbGUqIGFkZGVu
ZCwgaW50NjRfdCB2YWx1ZSkKK3sKKyAgICByZXR1cm4gYXRvbWljU3RlcChhZGRlbmQsIC12YWx1
ZSk7Cit9CisKK30gLy8gZXh0ZXJuICJDIgorCit9IC8vIG5hbWVzcGFjZSBXVEYKKworI2VuZGlm
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188102</attachid>
            <date>2013-02-13 09:51:00 -0800</date>
            <delta_ts>2013-02-13 09:57:14 -0800</delta_ts>
            <desc>Fixed WTFized patch.</desc>
            <filename>atomic.diff</filename>
            <type>text/plain</type>
            <size>6153</size>
            <attacher name="Balazs Kilvady">kilvadyb</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggZTA5ZTkxYy4uMTczZjMyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMy0wMi0xMyAg
QmFsYXpzIEtpbHZhZHkgIDxraWx2YWR5YkBob21lamlubmkuY29tPgorCisgICAgICAgIEZpeCB0
aGUgYXRvbWljSW5jcmVtZW50IGltcGxlbWVudGF0aW9uIGZvciBNSVBTIEdDQworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2NzM5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50YXRpb24gb2Yg
bWlzc2luZyBfX3N5bmNfW2FkZHxzdWJdX2FuZF9mZXRjaF84IGZ1bmN0aW9ucy4KKworICAgICAg
ICAqIFdURi5wcm86CisgICAgICAgICogd3RmL0F0b21pY3MuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdURik6CisgICAgICAgIChXVEY6OmdldFN3YXBMb2NrKToKKyAgICAgICAgKFdURjo6YXRvbWlj
U3RlcCk6CisKIDIwMTMtMDItMTMgIEFuZHJldyBXaWxzb24gIDxhdHdpbHNvbkBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBDaHJvbWl1bSBneXAtZmlsZSBjbGVhbnVwIGFmdGVy
IGdsaWIgYmFja2VuZCByZW1vdmFsLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYucHJvIGIv
U291cmNlL1dURi9XVEYucHJvCmluZGV4IDcyN2Q3OGIuLjdkZjgwZWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvV1RGLnBybworKysgYi9Tb3VyY2UvV1RGL1dURi5wcm8KQEAgLTE5Niw2ICsxOTYs
NyBAQCBTT1VSQ0VTICs9IFwKICAgICBBcnJheUJ1ZmZlci5jcHAgXAogICAgIEFycmF5QnVmZmVy
Vmlldy5jcHAgXAogICAgIEFzc2VydGlvbnMuY3BwIFwKKyAgICBBdG9taWNzLmNwcCBcCiAgICAg
Qml0VmVjdG9yLmNwcCBcCiAgICAgQ3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1iZXIuY3BwIFwK
ICAgICBDdXJyZW50VGltZS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQXRvbWlj
cy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9BdG9taWNzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi4wZmVlYTE1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYv
QXRvbWljcy5jcHAKQEAgLTAsMCArMSwxMTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcs
IDIwMDgsIDIwMTAsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDA3IEp1c3RpbiBIYXlnb29kIChqaGF5Z29vZEByZWFrdGl4LmNvbSkKKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuIAorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uIAorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0
ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisg
KiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLiAKKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFO
RCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAor
ICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKgor
ICogTm90ZTogVGhlIGltcGxlbWVudGF0aW9ucyBvZiBJbnRlcmxvY2tlZEluY3JlbWVudCBhbmQg
SW50ZXJsb2NrZWREZWNyZW1lbnQgYXJlIGJhc2VkCisgKiBvbiBhdG9taWNfaW5jcmVtZW50IGFu
ZCBhdG9taWNfZXhjaGFuZ2VfYW5kX2FkZCBmcm9tIHRoZSBCb29zdCBDKysgTGlicmFyeS4gVGhl
IGxpY2Vuc2UKKyAqIGlzIHZpcnR1YWxseSBpZGVudGljYWwgdG8gdGhlIEFwcGxlIGxpY2Vuc2Ug
YWJvdmUgYnV0IGlzIGluY2x1ZGVkIGhlcmUgZm9yIGNvbXBsZXRlbmVzcy4KKyAqCisgKiBCb29z
dCBTb2Z0d2FyZSBMaWNlbnNlIC0gVmVyc2lvbiAxLjAgLSBBdWd1c3QgMTd0aCwgMjAwMworICog
CisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55
IHBlcnNvbiBvciBvcmdhbml6YXRpb24KKyAqIG9idGFpbmluZyBhIGNvcHkgb2YgdGhlIHNvZnR3
YXJlIGFuZCBhY2NvbXBhbnlpbmcgZG9jdW1lbnRhdGlvbiBjb3ZlcmVkIGJ5CisgKiB0aGlzIGxp
Y2Vuc2UgKHRoZSAiU29mdHdhcmUiKSB0byB1c2UsIHJlcHJvZHVjZSwgZGlzcGxheSwgZGlzdHJp
YnV0ZSwKKyAqIGV4ZWN1dGUsIGFuZCB0cmFuc21pdCB0aGUgU29mdHdhcmUsIGFuZCB0byBwcmVw
YXJlIGRlcml2YXRpdmUgd29ya3Mgb2YgdGhlCisgKiBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCB0
aGlyZC1wYXJ0aWVzIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0bworICogZG8g
c28sIGFsbCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmc6CisgKiAKKyAqIFRoZSBjb3B5cmlnaHQg
bm90aWNlcyBpbiB0aGUgU29mdHdhcmUgYW5kIHRoaXMgZW50aXJlIHN0YXRlbWVudCwgaW5jbHVk
aW5nCisgKiB0aGUgYWJvdmUgbGljZW5zZSBncmFudCwgdGhpcyByZXN0cmljdGlvbiBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLAorICogbXVzdCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVz
IG9mIHRoZSBTb2Z0d2FyZSwgaW4gd2hvbGUgb3IgaW4gcGFydCwgYW5kCisgKiBhbGwgZGVyaXZh
dGl2ZSB3b3JrcyBvZiB0aGUgU29mdHdhcmUsIHVubGVzcyBzdWNoIGNvcGllcyBvciBkZXJpdmF0
aXZlCisgKiB3b3JrcyBhcmUgc29sZWx5IGluIHRoZSBmb3JtIG9mIG1hY2hpbmUtZXhlY3V0YWJs
ZSBvYmplY3QgY29kZSBnZW5lcmF0ZWQgYnkKKyAqIGEgc291cmNlIGxhbmd1YWdlIHByb2Nlc3Nv
ci4KKyAqIAorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FS
UkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQg
Tk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UsIFRJVExFIEFORCBOT04tSU5GUklOR0VNRU5U
LiBJTiBOTyBFVkVOVAorICogU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVJTIE9SIEFOWU9ORSBE
SVNUUklCVVRJTkcgVEhFIFNPRlRXQVJFIEJFIExJQUJMRQorICogRk9SIEFOWSBEQU1BR0VTIE9S
IE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0Us
CisgKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRX
QVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKKyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQXRvbWljcy5oIgorCisvLyBTb21l
IGFyY2hpdGVjdHVyZXMsIGxpa2UgTUlQUzMyLCBkb24ndCBoYXZlIEdDQyBpbXBsZW1lbnRhdGlv
biBmb3IgYnVpbHRpbiBfX3N5bmNfKiBmdW5jdGlvbnMKKy8vIHdpdGggNjQgYml0cyB2YXJpYWJs
ZSBzaXplLiBPZmZpY2lhbCBHQ0MgYW5zd2VyIGZvciB0aGUgcHJvYmxlbTogSWYgYSB0YXJnZXQg
ZG9lc24ndCBzdXBwb3J0CisvLyBhdG9taWMgb3BlcmF0aW9ucyBvbiBjZXJ0YWluIHZhcmlhYmxl
IHNpemVzLCB5b3UgYXJlIG91dCBvZiBsdWNrIHdpdGggYXRvbWljaXR5IGluIHRoYXQgY2FzZQor
Ly8gKGh0dHA6Ly9nY2MuZ251Lm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9NTYyOTYpLiBH
Q0MgPj0gNC44IHdpbGwgc3VwcG9ydCBfX2F0b21pY18qIGJ1aWx0aW4KKy8vIGZ1bmN0aW9ucyBm
b3IgdGhpcyBwdXJwb3NlIGZvciBhbGwgdGhlIEdDQyB0YXJnZXRzLCBidXQgZm9yIGN1cnJlbnQg
Y29tcGlsZXJzIHdlIGhhdmUgdG8gaW5jbHVkZQorLy8gb3VyIG93biBpbXBsZW1lbnRhdGlvbi4K
KyNpZiBDT01QSUxFUihHQ0MpICYmICFkZWZpbmVkKF9fR0NDX0hBVkVfU1lOQ19DT01QQVJFX0FO
RF9TV0FQXzgpICYmIFVTRShMT0NLRlJFRV9USFJFQURTQUZFUkVGQ09VTlRFRCkgJiYgVVNFKFBU
SFJFQURTKQorCisjaW5jbHVkZSAiVGhyZWFkaW5nUHJpbWl0aXZlcy5oIgorCituYW1lc3BhY2Ug
V1RGIHsKKworc3RhdGljIGNvbnN0IHNpemVfdCBrU3dhcExvY2tDb3VudCA9IDMyOworc3RhdGlj
IE11dGV4IHNfc3dhcExvY2tzW2tTd2FwTG9ja0NvdW50XTsKKworc3RhdGljIGlubGluZSBNdXRl
eCYgZ2V0U3dhcExvY2soY29uc3Qgdm9sYXRpbGUgaW50NjRfdCogYWRkcikKK3sKKyAgICByZXR1
cm4gc19zd2FwTG9ja3NbKHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KGFkZHIpID4+IDNVKSAl
IGtTd2FwTG9ja0NvdW50XTsKK30KKworc3RhdGljIGludDY0X3QgYXRvbWljU3RlcChpbnQ2NF90
IHZvbGF0aWxlKiBhZGRlbmQsIGludDY0X3Qgc3RlcCkKK3sKKyAgICBNdXRleCYgbXV0ZXggPSBn
ZXRTd2FwTG9jayhhZGRlbmQpOworCisgICAgbXV0ZXgubG9jaygpOworICAgIGludDY0X3QgdmFs
dWUgPSAqYWRkZW5kICsgc3RlcDsKKyAgICAqYWRkZW5kID0gdmFsdWU7CisgICAgbXV0ZXgudW5s
b2NrKCk7CisKKyAgICByZXR1cm4gdmFsdWU7Cit9CisKK2V4dGVybiAiQyIgeworCitpbnQ2NF90
IF9fc3luY19hZGRfYW5kX2ZldGNoXzgoaW50NjRfdCB2b2xhdGlsZSogYWRkZW5kLCBpbnQ2NF90
IHZhbHVlKQoreworICAgIHJldHVybiBhdG9taWNTdGVwKGFkZGVuZCwgdmFsdWUpOworfQorCitp
bnQ2NF90IF9fc3luY19zdWJfYW5kX2ZldGNoXzgoaW50NjRfdCB2b2xhdGlsZSogYWRkZW5kLCBp
bnQ2NF90IHZhbHVlKQoreworICAgIHJldHVybiBhdG9taWNTdGVwKGFkZGVuZCwgLXZhbHVlKTsK
K30KKworfSAvLyBleHRlcm4gIkMiCisKK30gLy8gbmFtZXNwYWNlIFdURgorCisjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188109</attachid>
            <date>2013-02-13 10:07:35 -0800</date>
            <delta_ts>2013-02-18 05:15:22 -0800</delta_ts>
            <desc>Fixed WTFized patch.</desc>
            <filename>atomic.diff</filename>
            <type>text/plain</type>
            <size>6723</size>
            <attacher name="Balazs Kilvady">kilvadyb</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggZTA5ZTkxYy4uODA4MmExMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxMy0wMi0xMyAg
QmFsYXpzIEtpbHZhZHkgIDxraWx2YWR5YkBob21lamlubmkuY29tPgorCisgICAgICAgIEZpeCB0
aGUgYXRvbWljSW5jcmVtZW50IGltcGxlbWVudGF0aW9uIGZvciBNSVBTIEdDQworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2NzM5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50YXRpb24gb2Yg
bWlzc2luZyBfX3N5bmNfW2FkZHxzdWJdX2FuZF9mZXRjaF84IGZ1bmN0aW9ucy4KKyAgICAgICAg
CisgICAgICAgIFNvbWUgYXJjaGl0ZWN0dXJlcywgbGlrZSBNSVBTMzIsIGRvbid0IGhhdmUgR0ND
IGltcGxlbWVudGF0aW9uIGZvcgorICAgICAgICBidWlsdGluIF9fc3luY18qIGZ1bmN0aW9ucyB3
aXRoIDY0IGJpdHMgdmFyaWFibGUgc2l6ZS4gR0NDIGFuc3dlcgorICAgICAgICBmb3IgdGhlIHBy
b2JsZW06IElmIGEgdGFyZ2V0IGRvZXNuJ3Qgc3VwcG9ydCBhdG9taWMgb3BlcmF0aW9ucyBvbgor
ICAgICAgICBjZXJ0YWluIHZhcmlhYmxlIHNpemVzLCB5b3UgYXJlIG91dCBvZiBsdWNrIHdpdGgg
YXRvbWljaXR5IGluIHRoYXQKKyAgICAgICAgY2FzZSAoaHR0cDovL2djYy5nbnUub3JnL2J1Z3pp
bGxhL3Nob3dfYnVnLmNnaT9pZD01NjI5NikuIEdDQyA+PSA0LjgKKyAgICAgICAgd2lsbCBzdXBw
b3J0IF9fYXRvbWljXyogYnVpbHRpbiBmdW5jdGlvbnMgZm9yIHRoaXMgcHVycG9zZSBmb3IgYWxs
CisgICAgICAgIHRoZSBHQ0MgdGFyZ2V0cywgYnV0IGZvciBjdXJyZW50IGNvbXBpbGVycyB3ZSBo
YXZlIHRvIGluY2x1ZGUgb3VyCisgICAgICAgIG93biBpbXBsZW1lbnRhdGlvbi4KKworICAgICAg
ICAqIFdURi5wcm86CisgICAgICAgICogd3RmL0F0b21pY3MuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdURik6CisgICAgICAgIChXVEY6OmdldFN3YXBMb2NrKToKKyAgICAgICAgKFdURjo6YXRvbWlj
U3RlcCk6CisKIDIwMTMtMDItMTMgIEFuZHJldyBXaWxzb24gIDxhdHdpbHNvbkBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBDaHJvbWl1bSBneXAtZmlsZSBjbGVhbnVwIGFmdGVy
IGdsaWIgYmFja2VuZCByZW1vdmFsLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYucHJvIGIv
U291cmNlL1dURi9XVEYucHJvCmluZGV4IDcyN2Q3OGIuLjdkZjgwZWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvV1RGLnBybworKysgYi9Tb3VyY2UvV1RGL1dURi5wcm8KQEAgLTE5Niw2ICsxOTYs
NyBAQCBTT1VSQ0VTICs9IFwKICAgICBBcnJheUJ1ZmZlci5jcHAgXAogICAgIEFycmF5QnVmZmVy
Vmlldy5jcHAgXAogICAgIEFzc2VydGlvbnMuY3BwIFwKKyAgICBBdG9taWNzLmNwcCBcCiAgICAg
Qml0VmVjdG9yLmNwcCBcCiAgICAgQ3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1iZXIuY3BwIFwK
ICAgICBDdXJyZW50VGltZS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQXRvbWlj
cy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9BdG9taWNzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi4wZmVlYTE1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYv
QXRvbWljcy5jcHAKQEAgLTAsMCArMSwxMTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcs
IDIwMDgsIDIwMTAsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDA3IEp1c3RpbiBIYXlnb29kIChqaGF5Z29vZEByZWFrdGl4LmNvbSkKKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuIAorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uIAorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0
ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisg
KiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLiAKKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFO
RCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAor
ICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKgor
ICogTm90ZTogVGhlIGltcGxlbWVudGF0aW9ucyBvZiBJbnRlcmxvY2tlZEluY3JlbWVudCBhbmQg
SW50ZXJsb2NrZWREZWNyZW1lbnQgYXJlIGJhc2VkCisgKiBvbiBhdG9taWNfaW5jcmVtZW50IGFu
ZCBhdG9taWNfZXhjaGFuZ2VfYW5kX2FkZCBmcm9tIHRoZSBCb29zdCBDKysgTGlicmFyeS4gVGhl
IGxpY2Vuc2UKKyAqIGlzIHZpcnR1YWxseSBpZGVudGljYWwgdG8gdGhlIEFwcGxlIGxpY2Vuc2Ug
YWJvdmUgYnV0IGlzIGluY2x1ZGVkIGhlcmUgZm9yIGNvbXBsZXRlbmVzcy4KKyAqCisgKiBCb29z
dCBTb2Z0d2FyZSBMaWNlbnNlIC0gVmVyc2lvbiAxLjAgLSBBdWd1c3QgMTd0aCwgMjAwMworICog
CisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55
IHBlcnNvbiBvciBvcmdhbml6YXRpb24KKyAqIG9idGFpbmluZyBhIGNvcHkgb2YgdGhlIHNvZnR3
YXJlIGFuZCBhY2NvbXBhbnlpbmcgZG9jdW1lbnRhdGlvbiBjb3ZlcmVkIGJ5CisgKiB0aGlzIGxp
Y2Vuc2UgKHRoZSAiU29mdHdhcmUiKSB0byB1c2UsIHJlcHJvZHVjZSwgZGlzcGxheSwgZGlzdHJp
YnV0ZSwKKyAqIGV4ZWN1dGUsIGFuZCB0cmFuc21pdCB0aGUgU29mdHdhcmUsIGFuZCB0byBwcmVw
YXJlIGRlcml2YXRpdmUgd29ya3Mgb2YgdGhlCisgKiBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCB0
aGlyZC1wYXJ0aWVzIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0bworICogZG8g
c28sIGFsbCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmc6CisgKiAKKyAqIFRoZSBjb3B5cmlnaHQg
bm90aWNlcyBpbiB0aGUgU29mdHdhcmUgYW5kIHRoaXMgZW50aXJlIHN0YXRlbWVudCwgaW5jbHVk
aW5nCisgKiB0aGUgYWJvdmUgbGljZW5zZSBncmFudCwgdGhpcyByZXN0cmljdGlvbiBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLAorICogbXVzdCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVz
IG9mIHRoZSBTb2Z0d2FyZSwgaW4gd2hvbGUgb3IgaW4gcGFydCwgYW5kCisgKiBhbGwgZGVyaXZh
dGl2ZSB3b3JrcyBvZiB0aGUgU29mdHdhcmUsIHVubGVzcyBzdWNoIGNvcGllcyBvciBkZXJpdmF0
aXZlCisgKiB3b3JrcyBhcmUgc29sZWx5IGluIHRoZSBmb3JtIG9mIG1hY2hpbmUtZXhlY3V0YWJs
ZSBvYmplY3QgY29kZSBnZW5lcmF0ZWQgYnkKKyAqIGEgc291cmNlIGxhbmd1YWdlIHByb2Nlc3Nv
ci4KKyAqIAorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FS
UkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQg
Tk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UsIFRJVExFIEFORCBOT04tSU5GUklOR0VNRU5U
LiBJTiBOTyBFVkVOVAorICogU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVJTIE9SIEFOWU9ORSBE
SVNUUklCVVRJTkcgVEhFIFNPRlRXQVJFIEJFIExJQUJMRQorICogRk9SIEFOWSBEQU1BR0VTIE9S
IE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0Us
CisgKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRX
QVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKKyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQXRvbWljcy5oIgorCisvLyBTb21l
IGFyY2hpdGVjdHVyZXMsIGxpa2UgTUlQUzMyLCBkb24ndCBoYXZlIEdDQyBpbXBsZW1lbnRhdGlv
biBmb3IgYnVpbHRpbiBfX3N5bmNfKiBmdW5jdGlvbnMKKy8vIHdpdGggNjQgYml0cyB2YXJpYWJs
ZSBzaXplLiBPZmZpY2lhbCBHQ0MgYW5zd2VyIGZvciB0aGUgcHJvYmxlbTogSWYgYSB0YXJnZXQg
ZG9lc24ndCBzdXBwb3J0CisvLyBhdG9taWMgb3BlcmF0aW9ucyBvbiBjZXJ0YWluIHZhcmlhYmxl
IHNpemVzLCB5b3UgYXJlIG91dCBvZiBsdWNrIHdpdGggYXRvbWljaXR5IGluIHRoYXQgY2FzZQor
Ly8gKGh0dHA6Ly9nY2MuZ251Lm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9NTYyOTYpLiBH
Q0MgPj0gNC44IHdpbGwgc3VwcG9ydCBfX2F0b21pY18qIGJ1aWx0aW4KKy8vIGZ1bmN0aW9ucyBm
b3IgdGhpcyBwdXJwb3NlIGZvciBhbGwgdGhlIEdDQyB0YXJnZXRzLCBidXQgZm9yIGN1cnJlbnQg
Y29tcGlsZXJzIHdlIGhhdmUgdG8gaW5jbHVkZQorLy8gb3VyIG93biBpbXBsZW1lbnRhdGlvbi4K
KyNpZiBDT01QSUxFUihHQ0MpICYmICFkZWZpbmVkKF9fR0NDX0hBVkVfU1lOQ19DT01QQVJFX0FO
RF9TV0FQXzgpICYmIFVTRShMT0NLRlJFRV9USFJFQURTQUZFUkVGQ09VTlRFRCkgJiYgVVNFKFBU
SFJFQURTKQorCisjaW5jbHVkZSAiVGhyZWFkaW5nUHJpbWl0aXZlcy5oIgorCituYW1lc3BhY2Ug
V1RGIHsKKworc3RhdGljIGNvbnN0IHNpemVfdCBrU3dhcExvY2tDb3VudCA9IDMyOworc3RhdGlj
IE11dGV4IHNfc3dhcExvY2tzW2tTd2FwTG9ja0NvdW50XTsKKworc3RhdGljIGlubGluZSBNdXRl
eCYgZ2V0U3dhcExvY2soY29uc3Qgdm9sYXRpbGUgaW50NjRfdCogYWRkcikKK3sKKyAgICByZXR1
cm4gc19zd2FwTG9ja3NbKHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KGFkZHIpID4+IDNVKSAl
IGtTd2FwTG9ja0NvdW50XTsKK30KKworc3RhdGljIGludDY0X3QgYXRvbWljU3RlcChpbnQ2NF90
IHZvbGF0aWxlKiBhZGRlbmQsIGludDY0X3Qgc3RlcCkKK3sKKyAgICBNdXRleCYgbXV0ZXggPSBn
ZXRTd2FwTG9jayhhZGRlbmQpOworCisgICAgbXV0ZXgubG9jaygpOworICAgIGludDY0X3QgdmFs
dWUgPSAqYWRkZW5kICsgc3RlcDsKKyAgICAqYWRkZW5kID0gdmFsdWU7CisgICAgbXV0ZXgudW5s
b2NrKCk7CisKKyAgICByZXR1cm4gdmFsdWU7Cit9CisKK2V4dGVybiAiQyIgeworCitpbnQ2NF90
IF9fc3luY19hZGRfYW5kX2ZldGNoXzgoaW50NjRfdCB2b2xhdGlsZSogYWRkZW5kLCBpbnQ2NF90
IHZhbHVlKQoreworICAgIHJldHVybiBhdG9taWNTdGVwKGFkZGVuZCwgdmFsdWUpOworfQorCitp
bnQ2NF90IF9fc3luY19zdWJfYW5kX2ZldGNoXzgoaW50NjRfdCB2b2xhdGlsZSogYWRkZW5kLCBp
bnQ2NF90IHZhbHVlKQoreworICAgIHJldHVybiBhdG9taWNTdGVwKGFkZGVuZCwgLXZhbHVlKTsK
K30KKworfSAvLyBleHRlcm4gIkMiCisKK30gLy8gbmFtZXNwYWNlIFdURgorCisjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188857</attachid>
            <date>2013-02-18 05:15:22 -0800</date>
            <delta_ts>2013-02-19 04:45:57 -0800</delta_ts>
            <desc>Fixed WTFized patch.</desc>
            <filename>atomic.diff</filename>
            <type>text/plain</type>
            <size>6721</size>
            <attacher name="Balazs Kilvady">kilvadyb</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggYWI3OWM3MS4uODIzM2FlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMy0wMi0xOCAg
QmFsYXpzIEtpbHZhZHkgIDxraWx2YWR5YkBob21lamlubmkuY29tPgorCisgICAgICAgIEZpeCB0
aGUgYXRvbWljSW5jcmVtZW50IGltcGxlbWVudGF0aW9uIGZvciBNSVBTIEdDQworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2NzM5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50YXRpb24gb2Yg
bWlzc2luZyBfX3N5bmNfW2FkZHxzdWJdX2FuZF9mZXRjaF84IGZ1bmN0aW9ucy4KKworICAgICAg
ICBTb21lIGFyY2hpdGVjdHVyZXMsIGxpa2UgTUlQUzMyLCBkb24ndCBoYXZlIEdDQyBpbXBsZW1l
bnRhdGlvbiBmb3IKKyAgICAgICAgYnVpbHRpbiBfX3N5bmNfKiBmdW5jdGlvbnMgd2l0aCA2NCBi
aXRzIHZhcmlhYmxlIHNpemUuIEdDQyBhbnN3ZXIKKyAgICAgICAgZm9yIHRoZSBwcm9ibGVtOiBJ
ZiBhIHRhcmdldCBkb2Vzbid0IHN1cHBvcnQgYXRvbWljIG9wZXJhdGlvbnMgb24KKyAgICAgICAg
Y2VydGFpbiB2YXJpYWJsZSBzaXplcywgeW91IGFyZSBvdXQgb2YgbHVjayB3aXRoIGF0b21pY2l0
eSBpbiB0aGF0CisgICAgICAgIGNhc2UgKGh0dHA6Ly9nY2MuZ251Lm9yZy9idWd6aWxsYS9zaG93
X2J1Zy5jZ2k/aWQ9NTYyOTYpLiBHQ0MgPj0gNC44CisgICAgICAgIHdpbGwgc3VwcG9ydCBfX2F0
b21pY18qIGJ1aWx0aW4gZnVuY3Rpb25zIGZvciB0aGlzIHB1cnBvc2UgZm9yIGFsbAorICAgICAg
ICB0aGUgR0NDIHRhcmdldHMsIGJ1dCBmb3IgY3VycmVudCBjb21waWxlcnMgd2UgaGF2ZSB0byBp
bmNsdWRlIG91cgorICAgICAgICBvd24gaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgKiB3dGYv
QXRvbWljcy5jcHA6IEFkZGVkLgorICAgICAgICAoV1RGKToKKyAgICAgICAgKFdURjo6Z2V0U3dh
cExvY2spOgorICAgICAgICAoV1RGOjphdG9taWNTdGVwKToKKwogMjAxMy0wMi0xNCAgRXJpYyBT
ZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMTQyNzEyKTog
YXR0cmlidXRlIHZhbHVlcyBzaG93IHVwIGFzICIobnVsbCkiIGluc3RlYWQgb2YgbnVsbCB3aXRo
IHRoZSB0aHJlYWRlZCBwYXJzZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnBybyBiL1Nv
dXJjZS9XVEYvV1RGLnBybwppbmRleCA3MjdkNzhiLi43ZGY4MGVhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL1dURi5wcm8KKysrIGIvU291cmNlL1dURi9XVEYucHJvCkBAIC0xOTYsNiArMTk2LDcg
QEAgU09VUkNFUyArPSBcCiAgICAgQXJyYXlCdWZmZXIuY3BwIFwKICAgICBBcnJheUJ1ZmZlclZp
ZXcuY3BwIFwKICAgICBBc3NlcnRpb25zLmNwcCBcCisgICAgQXRvbWljcy5jcHAgXAogICAgIEJp
dFZlY3Rvci5jcHAgXAogICAgIENyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmNwcCBcCiAg
ICAgQ3VycmVudFRpbWUuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0F0b21pY3Mu
Y3BwIGIvU291cmNlL1dURi93dGYvQXRvbWljcy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uMGZlZWExNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL0F0
b21pY3MuY3BwCkBAIC0wLDAgKzEsMTEwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3LCAy
MDA4LCAyMDEwLCAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAwNyBKdXN0aW4gSGF5Z29vZCAoamhheWdvb2RAcmVha3RpeC5jb20pCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLiAKKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLiAKKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVy
LCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICog
ICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4gCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQg
SVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAq
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
CisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICoKKyAq
IE5vdGU6IFRoZSBpbXBsZW1lbnRhdGlvbnMgb2YgSW50ZXJsb2NrZWRJbmNyZW1lbnQgYW5kIElu
dGVybG9ja2VkRGVjcmVtZW50IGFyZSBiYXNlZAorICogb24gYXRvbWljX2luY3JlbWVudCBhbmQg
YXRvbWljX2V4Y2hhbmdlX2FuZF9hZGQgZnJvbSB0aGUgQm9vc3QgQysrIExpYnJhcnkuIFRoZSBs
aWNlbnNlCisgKiBpcyB2aXJ0dWFsbHkgaWRlbnRpY2FsIHRvIHRoZSBBcHBsZSBsaWNlbnNlIGFi
b3ZlIGJ1dCBpcyBpbmNsdWRlZCBoZXJlIGZvciBjb21wbGV0ZW5lc3MuCisgKgorICogQm9vc3Qg
U29mdHdhcmUgTGljZW5zZSAtIFZlcnNpb24gMS4wIC0gQXVndXN0IDE3dGgsIDIwMDMKKyAqIAor
ICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBw
ZXJzb24gb3Igb3JnYW5pemF0aW9uCisgKiBvYnRhaW5pbmcgYSBjb3B5IG9mIHRoZSBzb2Z0d2Fy
ZSBhbmQgYWNjb21wYW55aW5nIGRvY3VtZW50YXRpb24gY292ZXJlZCBieQorICogdGhpcyBsaWNl
bnNlICh0aGUgIlNvZnR3YXJlIikgdG8gdXNlLCByZXByb2R1Y2UsIGRpc3BsYXksIGRpc3RyaWJ1
dGUsCisgKiBleGVjdXRlLCBhbmQgdHJhbnNtaXQgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcHJlcGFy
ZSBkZXJpdmF0aXZlIHdvcmtzIG9mIHRoZQorICogU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgdGhp
cmQtcGFydGllcyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8KKyAqIGRvIHNv
LCBhbGwgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nOgorICogCisgKiBUaGUgY29weXJpZ2h0IG5v
dGljZXMgaW4gdGhlIFNvZnR3YXJlIGFuZCB0aGlzIGVudGlyZSBzdGF0ZW1lbnQsIGluY2x1ZGlu
ZworICogdGhlIGFib3ZlIGxpY2Vuc2UgZ3JhbnQsIHRoaXMgcmVzdHJpY3Rpb24gYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciwKKyAqIG11c3QgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBv
ZiB0aGUgU29mdHdhcmUsIGluIHdob2xlIG9yIGluIHBhcnQsIGFuZAorICogYWxsIGRlcml2YXRp
dmUgd29ya3Mgb2YgdGhlIFNvZnR3YXJlLCB1bmxlc3Mgc3VjaCBjb3BpZXMgb3IgZGVyaXZhdGl2
ZQorICogd29ya3MgYXJlIHNvbGVseSBpbiB0aGUgZm9ybSBvZiBtYWNoaW5lLWV4ZWN1dGFibGUg
b2JqZWN0IGNvZGUgZ2VuZXJhdGVkIGJ5CisgKiBhIHNvdXJjZSBsYW5ndWFnZSBwcm9jZXNzb3Iu
CisgKiAKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJB
TlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5P
VCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLCBUSVRMRSBBTkQgTk9OLUlORlJJTkdFTUVOVC4g
SU4gTk8gRVZFTlQKKyAqIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSUyBPUiBBTllPTkUgRElT
VFJJQlVUSU5HIFRIRSBTT0ZUV0FSRSBCRSBMSUFCTEUKKyAqIEZPUiBBTlkgREFNQUdFUyBPUiBP
VEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAor
ICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FS
RSBPUiBUSEUgVVNFIE9SIE9USEVSCisgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkF0b21pY3MuaCIKKworLy8gU29tZSBh
cmNoaXRlY3R1cmVzLCBsaWtlIE1JUFMzMiwgZG9uJ3QgaGF2ZSBHQ0MgaW1wbGVtZW50YXRpb24g
Zm9yIGJ1aWx0aW4gX19zeW5jXyogZnVuY3Rpb25zCisvLyB3aXRoIDY0IGJpdHMgdmFyaWFibGUg
c2l6ZS4gT2ZmaWNpYWwgR0NDIGFuc3dlciBmb3IgdGhlIHByb2JsZW06IElmIGEgdGFyZ2V0IGRv
ZXNuJ3Qgc3VwcG9ydAorLy8gYXRvbWljIG9wZXJhdGlvbnMgb24gY2VydGFpbiB2YXJpYWJsZSBz
aXplcywgeW91IGFyZSBvdXQgb2YgbHVjayB3aXRoIGF0b21pY2l0eSBpbiB0aGF0IGNhc2UKKy8v
IChodHRwOi8vZ2NjLmdudS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTU2Mjk2KS4gR0ND
ID49IDQuOCB3aWxsIHN1cHBvcnQgX19hdG9taWNfKiBidWlsdGluCisvLyBmdW5jdGlvbnMgZm9y
IHRoaXMgcHVycG9zZSBmb3IgYWxsIHRoZSBHQ0MgdGFyZ2V0cywgYnV0IGZvciBjdXJyZW50IGNv
bXBpbGVycyB3ZSBoYXZlIHRvIGluY2x1ZGUKKy8vIG91ciBvd24gaW1wbGVtZW50YXRpb24uCisj
aWYgQ09NUElMRVIoR0NDKSAmJiAhZGVmaW5lZChfX0dDQ19IQVZFX1NZTkNfQ09NUEFSRV9BTkRf
U1dBUF84KSAmJiBVU0UoTE9DS0ZSRUVfVEhSRUFEU0FGRVJFRkNPVU5URUQpICYmIFVTRShQVEhS
RUFEUykKKworI2luY2x1ZGUgIlRocmVhZGluZ1ByaW1pdGl2ZXMuaCIKKworbmFtZXNwYWNlIFdU
RiB7CisKK3N0YXRpYyBjb25zdCBzaXplX3Qga1N3YXBMb2NrQ291bnQgPSAzMjsKK3N0YXRpYyBN
dXRleCBzX3N3YXBMb2Nrc1trU3dhcExvY2tDb3VudF07CisKK3N0YXRpYyBpbmxpbmUgTXV0ZXgm
IGdldFN3YXBMb2NrKGNvbnN0IHZvbGF0aWxlIGludDY0X3QqIGFkZHIpCit7CisgICAgcmV0dXJu
IHNfc3dhcExvY2tzWyhyZWludGVycHJldF9jYXN0PGludHB0cl90PihhZGRyKSA+PiAzVSkgJSBr
U3dhcExvY2tDb3VudF07Cit9CisKK3N0YXRpYyBpbnQ2NF90IGF0b21pY1N0ZXAoaW50NjRfdCB2
b2xhdGlsZSogYWRkZW5kLCBpbnQ2NF90IHN0ZXApCit7CisgICAgTXV0ZXgmIG11dGV4ID0gZ2V0
U3dhcExvY2soYWRkZW5kKTsKKworICAgIG11dGV4LmxvY2soKTsKKyAgICBpbnQ2NF90IHZhbHVl
ID0gKmFkZGVuZCArIHN0ZXA7CisgICAgKmFkZGVuZCA9IHZhbHVlOworICAgIG11dGV4LnVubG9j
aygpOworCisgICAgcmV0dXJuIHZhbHVlOworfQorCitleHRlcm4gIkMiIHsKKworaW50NjRfdCBf
X3N5bmNfYWRkX2FuZF9mZXRjaF84KGludDY0X3Qgdm9sYXRpbGUqIGFkZGVuZCwgaW50NjRfdCB2
YWx1ZSkKK3sKKyAgICByZXR1cm4gYXRvbWljU3RlcChhZGRlbmQsIHZhbHVlKTsKK30KKworaW50
NjRfdCBfX3N5bmNfc3ViX2FuZF9mZXRjaF84KGludDY0X3Qgdm9sYXRpbGUqIGFkZGVuZCwgaW50
NjRfdCB2YWx1ZSkKK3sKKyAgICByZXR1cm4gYXRvbWljU3RlcChhZGRlbmQsIC12YWx1ZSk7Cit9
CisKK30gLy8gZXh0ZXJuICJDIgorCit9IC8vIG5hbWVzcGFjZSBXVEYKKworI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189059</attachid>
            <date>2013-02-19 04:45:57 -0800</date>
            <delta_ts>2013-02-26 07:58:13 -0800</delta_ts>
            <desc>Fixed WTFized patch.</desc>
            <filename>atomic.diff</filename>
            <type>text/plain</type>
            <size>7576</size>
            <attacher name="Balazs Kilvady">kilvadyb</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggNzQ3OTNkNC4uYjgyZmE0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxMy0wMi0xOSAg
QmFsYXpzIEtpbHZhZHkgIDxraWx2YWR5YkBob21lamlubmkuY29tPgorCisgICAgICAgIEZpeCB0
aGUgYXRvbWljSW5jcmVtZW50IGltcGxlbWVudGF0aW9uIGZvciBNSVBTIEdDQworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2NzM5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50YXRpb24gb2Yg
bWlzc2luZyBfX3N5bmNfW2FkZHxzdWJdX2FuZF9mZXRjaF84IGZ1bmN0aW9ucy4KKworICAgICAg
ICBTb21lIGFyY2hpdGVjdHVyZXMsIGxpa2UgTUlQUzMyLCBkb24ndCBoYXZlIEdDQyBpbXBsZW1l
bnRhdGlvbiBmb3IKKyAgICAgICAgYnVpbHRpbiBfX3N5bmNfKiBmdW5jdGlvbnMgd2l0aCA2NCBi
aXRzIHZhcmlhYmxlIHNpemUuIEdDQyBhbnN3ZXIKKyAgICAgICAgZm9yIHRoZSBwcm9ibGVtOiBJ
ZiBhIHRhcmdldCBkb2Vzbid0IHN1cHBvcnQgYXRvbWljIG9wZXJhdGlvbnMgb24KKyAgICAgICAg
Y2VydGFpbiB2YXJpYWJsZSBzaXplcywgeW91IGFyZSBvdXQgb2YgbHVjayB3aXRoIGF0b21pY2l0
eSBpbiB0aGF0CisgICAgICAgIGNhc2UgKGh0dHA6Ly9nY2MuZ251Lm9yZy9idWd6aWxsYS9zaG93
X2J1Zy5jZ2k/aWQ9NTYyOTYpLiBHQ0MgPj0gNC44CisgICAgICAgIHdpbGwgc3VwcG9ydCBfX2F0
b21pY18qIGJ1aWx0aW4gZnVuY3Rpb25zIGZvciB0aGlzIHB1cnBvc2UgZm9yIGFsbAorICAgICAg
ICB0aGUgR0NDIHRhcmdldHMsIGJ1dCBmb3IgY3VycmVudCBjb21waWxlcnMgd2UgaGF2ZSB0byBp
bmNsdWRlIG91cgorICAgICAgICBvd24gaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgKiBHTlVt
YWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFdURi5wcm86CisgICAgICAgICogd3RmL0F0b21p
Y3MuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdURik6CisgICAgICAgIChXVEY6OmdldFN3YXBMb2Nr
KToKKyAgICAgICAgKFdURjo6YXRvbWljU3RlcCk6CisgICAgICAgICogd3RmL0NNYWtlTGlzdHMu
dHh0OgorCiAyMDEzLTAyLTE4ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAg
ICAgICBTdHlsZSB0d2Vha3MgdG8gU3RyaW5nSGFzaGVyLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbQpp
bmRleCAzNzU3ZDliLi4wNjFmNGJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxl
Lmxpc3QuYW0KKysrIGIvU291cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0xMSw2ICsx
MSw3IEBAIHd0Zl9zb3VyY2VzICs9IFwKICAgICBTb3VyY2UvV1RGL3d0Zi9BcnJheUJ1ZmZlclZp
ZXcuaCBcCiAgICAgU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5jcHAgXAogICAgIFNvdXJjZS9X
VEYvd3RmL0Fzc2VydGlvbnMuaCBcCisgICAgU291cmNlL1dURi93dGYvQXRvbWljcy5jcHAgXAog
ICAgIFNvdXJjZS9XVEYvd3RmL0F0b21pY3MuaCBcCiAgICAgU291cmNlL1dURi93dGYvQml0QXJy
YXkuaCBcCiAgICAgU291cmNlL1dURi93dGYvQml0VmVjdG9yLmNwcCBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL1dURi5wcm8gYi9Tb3VyY2UvV1RGL1dURi5wcm8KaW5kZXggYTMxMjI5NS4uZGY5
ODAxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYucHJvCisrKyBiL1NvdXJjZS9XVEYvV1RG
LnBybwpAQCAtMTk3LDYgKzE5Nyw3IEBAIFNPVVJDRVMgKz0gXAogICAgIEFycmF5QnVmZmVyLmNw
cCBcCiAgICAgQXJyYXlCdWZmZXJWaWV3LmNwcCBcCiAgICAgQXNzZXJ0aW9ucy5jcHAgXAorICAg
IEF0b21pY3MuY3BwIFwKICAgICBCaXRWZWN0b3IuY3BwIFwKICAgICBDcnlwdG9ncmFwaGljYWxs
eVJhbmRvbU51bWJlci5jcHAgXAogICAgIEN1cnJlbnRUaW1lLmNwcCBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9BdG9taWNzLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0F0b21pY3MuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRmYjhhZDIKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9BdG9taWNzLmNwcApAQCAtMCwwICsxLDExMSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAxMCwgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcgSnVzdGluIEhheWdvb2QgKGpoYXln
b29kQHJlYWt0aXguY29tKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4gCisgKiAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4gCisgKiAzLiAgTmVpdGhlciB0aGUg
bmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgor
ICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uIAorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
CisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisg
KiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICoKKyAqCisgKiBOb3RlOiBUaGUgaW1wbGVtZW50YXRpb25zIG9mIEludGVy
bG9ja2VkSW5jcmVtZW50IGFuZCBJbnRlcmxvY2tlZERlY3JlbWVudCBhcmUgYmFzZWQKKyAqIG9u
IGF0b21pY19pbmNyZW1lbnQgYW5kIGF0b21pY19leGNoYW5nZV9hbmRfYWRkIGZyb20gdGhlIEJv
b3N0IEMrKyBMaWJyYXJ5LiBUaGUgbGljZW5zZQorICogaXMgdmlydHVhbGx5IGlkZW50aWNhbCB0
byB0aGUgQXBwbGUgbGljZW5zZSBhYm92ZSBidXQgaXMgaW5jbHVkZWQgaGVyZSBmb3IgY29tcGxl
dGVuZXNzLgorICoKKyAqIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UgLSBWZXJzaW9uIDEuMCAtIEF1
Z3VzdCAxN3RoLCAyMDAzCisgKiAKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZy
ZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9yIG9yZ2FuaXphdGlvbgorICogb2J0YWluaW5n
IGEgY29weSBvZiB0aGUgc29mdHdhcmUgYW5kIGFjY29tcGFueWluZyBkb2N1bWVudGF0aW9uIGNv
dmVyZWQgYnkKKyAqIHRoaXMgbGljZW5zZSAodGhlICJTb2Z0d2FyZSIpIHRvIHVzZSwgcmVwcm9k
dWNlLCBkaXNwbGF5LCBkaXN0cmlidXRlLAorICogZXhlY3V0ZSwgYW5kIHRyYW5zbWl0IHRoZSBT
b2Z0d2FyZSwgYW5kIHRvIHByZXBhcmUgZGVyaXZhdGl2ZSB3b3JrcyBvZiB0aGUKKyAqIFNvZnR3
YXJlLCBhbmQgdG8gcGVybWl0IHRoaXJkLXBhcnRpZXMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMg
ZnVybmlzaGVkIHRvCisgKiBkbyBzbywgYWxsIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZzoKKyAq
IAorICogVGhlIGNvcHlyaWdodCBub3RpY2VzIGluIHRoZSBTb2Z0d2FyZSBhbmQgdGhpcyBlbnRp
cmUgc3RhdGVtZW50LCBpbmNsdWRpbmcKKyAqIHRoZSBhYm92ZSBsaWNlbnNlIGdyYW50LCB0aGlz
IHJlc3RyaWN0aW9uIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIsCisgKiBtdXN0IGJlIGlu
Y2x1ZGVkIGluIGFsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBpbiB3aG9sZSBvciBpbiBwYXJ0
LCBhbmQKKyAqIGFsbCBkZXJpdmF0aXZlIHdvcmtzIG9mIHRoZSBTb2Z0d2FyZSwgdW5sZXNzIHN1
Y2ggY29waWVzIG9yIGRlcml2YXRpdmUKKyAqIHdvcmtzIGFyZSBzb2xlbHkgaW4gdGhlIGZvcm0g
b2YgbWFjaGluZS1leGVjdXRhYmxlIG9iamVjdCBjb2RlIGdlbmVyYXRlZCBieQorICogYSBzb3Vy
Y2UgbGFuZ3VhZ2UgcHJvY2Vzc29yLgorICogCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQg
IkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1Q
TElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSwgVElUTEUg
QU5EIE5PTi1JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UCisgKiBTSEFMTCBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgT1IgQU5ZT05FIERJU1RSSUJVVElORyBUSEUgU09GVFdBUkUgQkUgTElBQkxFCisg
KiBGT1IgQU5ZIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBUT1JUIE9SIE9USEVSV0lTRSwKKyAqIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5F
Q1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgorICogREVBTElOR1Mg
SU4gVEhFIFNPRlRXQVJFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworLy8gU29tZSBh
cmNoaXRlY3R1cmVzLCBsaWtlIE1JUFMzMiwgZG9uJ3QgaGF2ZSBHQ0MgaW1wbGVtZW50YXRpb24g
Zm9yIGJ1aWx0aW4gX19zeW5jXyogZnVuY3Rpb25zCisvLyB3aXRoIDY0IGJpdHMgdmFyaWFibGUg
c2l6ZS4gT2ZmaWNpYWwgR0NDIGFuc3dlciBmb3IgdGhlIHByb2JsZW06IElmIGEgdGFyZ2V0IGRv
ZXNuJ3Qgc3VwcG9ydAorLy8gYXRvbWljIG9wZXJhdGlvbnMgb24gY2VydGFpbiB2YXJpYWJsZSBz
aXplcywgeW91IGFyZSBvdXQgb2YgbHVjayB3aXRoIGF0b21pY2l0eSBpbiB0aGF0IGNhc2UKKy8v
IChodHRwOi8vZ2NjLmdudS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTU2Mjk2KS4gR0ND
ID49IDQuOCB3aWxsIHN1cHBvcnQgX19hdG9taWNfKiBidWlsdGluCisvLyBmdW5jdGlvbnMgZm9y
IHRoaXMgcHVycG9zZSBmb3IgYWxsIHRoZSBHQ0MgdGFyZ2V0cywgYnV0IGZvciBjdXJyZW50IGNv
bXBpbGVycyB3ZSBoYXZlIHRvIGluY2x1ZGUKKy8vIG91ciBvd24gaW1wbGVtZW50YXRpb24uCisj
aWYgQ09NUElMRVIoR0NDKSAmJiAhZGVmaW5lZChfX0dDQ19IQVZFX1NZTkNfQ09NUEFSRV9BTkRf
U1dBUF84KSAmJiBVU0UoTE9DS0ZSRUVfVEhSRUFEU0FGRVJFRkNPVU5URUQpICYmIFVTRShQVEhS
RUFEUykKKworI2luY2x1ZGUgIkF0b21pY3MuaCIKKworI2luY2x1ZGUgIlRocmVhZGluZ1ByaW1p
dGl2ZXMuaCIKKworbmFtZXNwYWNlIFdURiB7CisKK3N0YXRpYyBjb25zdCBzaXplX3Qga1N3YXBM
b2NrQ291bnQgPSAzMjsKK3N0YXRpYyBNdXRleCBzX3N3YXBMb2Nrc1trU3dhcExvY2tDb3VudF07
CisKK3N0YXRpYyBpbmxpbmUgTXV0ZXgmIGdldFN3YXBMb2NrKGNvbnN0IHZvbGF0aWxlIGludDY0
X3QqIGFkZHIpCit7CisgICAgcmV0dXJuIHNfc3dhcExvY2tzWyhyZWludGVycHJldF9jYXN0PGlu
dHB0cl90PihhZGRyKSA+PiAzVSkgJSBrU3dhcExvY2tDb3VudF07Cit9CisKK3N0YXRpYyBpbnQ2
NF90IGF0b21pY1N0ZXAoaW50NjRfdCB2b2xhdGlsZSogYWRkZW5kLCBpbnQ2NF90IHN0ZXApCit7
CisgICAgTXV0ZXgmIG11dGV4ID0gZ2V0U3dhcExvY2soYWRkZW5kKTsKKworICAgIG11dGV4Lmxv
Y2soKTsKKyAgICBpbnQ2NF90IHZhbHVlID0gKmFkZGVuZCArIHN0ZXA7CisgICAgKmFkZGVuZCA9
IHZhbHVlOworICAgIG11dGV4LnVubG9jaygpOworCisgICAgcmV0dXJuIHZhbHVlOworfQorCitl
eHRlcm4gIkMiIHsKKworaW50NjRfdCBfX3N5bmNfYWRkX2FuZF9mZXRjaF84KGludDY0X3Qgdm9s
YXRpbGUqIGFkZGVuZCwgaW50NjRfdCB2YWx1ZSkKK3sKKyAgICByZXR1cm4gYXRvbWljU3RlcChh
ZGRlbmQsIHZhbHVlKTsKK30KKworaW50NjRfdCBfX3N5bmNfc3ViX2FuZF9mZXRjaF84KGludDY0
X3Qgdm9sYXRpbGUqIGFkZGVuZCwgaW50NjRfdCB2YWx1ZSkKK3sKKyAgICByZXR1cm4gYXRvbWlj
U3RlcChhZGRlbmQsIC12YWx1ZSk7Cit9CisKK30gLy8gZXh0ZXJuICJDIgorCit9IC8vIG5hbWVz
cGFjZSBXVEYKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3Rz
LnR4dCBiL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0CmluZGV4IGE4Nzk4ZjcuLjQ0NzM1
MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJj
ZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0CkBAIC0xNTksNiArMTU5LDcgQEAgc2V0KFdURl9TT1VS
Q0VTCiAgICAgQXJyYXlCdWZmZXIuY3BwCiAgICAgQXJyYXlCdWZmZXJWaWV3LmNwcAogICAgIEFz
c2VydGlvbnMuY3BwCisgICAgQXRvbWljcy5jcHAKICAgICBCaXRWZWN0b3IuY3BwCiAgICAgQ3J5
cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1iZXIuY3BwCiAgICAgQ3VycmVudFRpbWUuY3BwCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190283</attachid>
            <date>2013-02-26 07:58:13 -0800</date>
            <delta_ts>2013-02-26 10:57:04 -0800</delta_ts>
            <desc>Fixed WTFized patch.</desc>
            <filename>atomic.diff</filename>
            <type>text/plain</type>
            <size>7594</size>
            <attacher name="Balazs Kilvady">kilvadyb</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggY2U3OTczNS4uNmZjZTg3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxMy0wMi0yNiAg
QmFsYXpzIEtpbHZhZHkgIDxraWx2YWR5YkBob21lamlubmkuY29tPgorCisgICAgICAgIEZpeCB0
aGUgYXRvbWljSW5jcmVtZW50IGltcGxlbWVudGF0aW9uIGZvciBNSVBTIEdDQworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2NzM5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50YXRpb24gb2Yg
bWlzc2luZyBfX3N5bmNfW2FkZHxzdWJdX2FuZF9mZXRjaF84IGZ1bmN0aW9ucy4KKworICAgICAg
ICBTb21lIGFyY2hpdGVjdHVyZXMsIGxpa2UgTUlQUzMyLCBkb24ndCBoYXZlIEdDQyBpbXBsZW1l
bnRhdGlvbiBmb3IKKyAgICAgICAgYnVpbHRpbiBfX3N5bmNfKiBmdW5jdGlvbnMgd2l0aCA2NCBi
aXRzIHZhcmlhYmxlIHNpemUuIEdDQyBhbnN3ZXIKKyAgICAgICAgZm9yIHRoZSBwcm9ibGVtOiBJ
ZiBhIHRhcmdldCBkb2Vzbid0IHN1cHBvcnQgYXRvbWljIG9wZXJhdGlvbnMgb24KKyAgICAgICAg
Y2VydGFpbiB2YXJpYWJsZSBzaXplcywgeW91IGFyZSBvdXQgb2YgbHVjayB3aXRoIGF0b21pY2l0
eSBpbiB0aGF0CisgICAgICAgIGNhc2UgKGh0dHA6Ly9nY2MuZ251Lm9yZy9idWd6aWxsYS9zaG93
X2J1Zy5jZ2k/aWQ9NTYyOTYpLiBHQ0MgPj0gNC44CisgICAgICAgIHdpbGwgc3VwcG9ydCBfX2F0
b21pY18qIGJ1aWx0aW4gZnVuY3Rpb25zIGZvciB0aGlzIHB1cnBvc2UgZm9yIGFsbAorICAgICAg
ICB0aGUgR0NDIHRhcmdldHMsIGJ1dCBmb3IgY3VycmVudCBjb21waWxlcnMgd2UgaGF2ZSB0byBp
bmNsdWRlIG91cgorICAgICAgICBvd24gaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgKiBHTlVt
YWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFdURi5wcm86CisgICAgICAgICogd3RmL0F0b21p
Y3MuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdURik6CisgICAgICAgIChXVEY6OmdldFN3YXBMb2Nr
KToKKyAgICAgICAgKFdURjo6YXRvbWljU3RlcCk6CisgICAgICAgICogd3RmL0NNYWtlTGlzdHMu
dHh0OgorCiAyMDEzLTAyLTI2ICBKb2NlbHluIFR1cmNvdHRlICA8am9jZWx5bi50dXJjb3R0ZUBk
aWdpYS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IEpJVCBvbiBXaW5kb3dzIDY0IGJpdHMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XVEYvR05V
bWFrZWZpbGUubGlzdC5hbQppbmRleCBjZGVmNGVlLi5iMWU4MjVmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dURi9HTlVtYWtlZmlsZS5s
aXN0LmFtCkBAIC0xMSw2ICsxMSw3IEBAIHd0Zl9zb3VyY2VzICs9IFwKICAgICBTb3VyY2UvV1RG
L3d0Zi9BcnJheUJ1ZmZlclZpZXcuaCBcCiAgICAgU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5j
cHAgXAogICAgIFNvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuaCBcCisgICAgU291cmNlL1dURi93
dGYvQXRvbWljcy5jcHAgXAogICAgIFNvdXJjZS9XVEYvd3RmL0F0b21pY3MuaCBcCiAgICAgU291
cmNlL1dURi93dGYvQml0QXJyYXkuaCBcCiAgICAgU291cmNlL1dURi93dGYvQml0VmVjdG9yLmNw
cCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi5wcm8gYi9Tb3VyY2UvV1RGL1dURi5wcm8K
aW5kZXggYTMxMjI5NS4uZGY5ODAxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYucHJvCisr
KyBiL1NvdXJjZS9XVEYvV1RGLnBybwpAQCAtMTk3LDYgKzE5Nyw3IEBAIFNPVVJDRVMgKz0gXAog
ICAgIEFycmF5QnVmZmVyLmNwcCBcCiAgICAgQXJyYXlCdWZmZXJWaWV3LmNwcCBcCiAgICAgQXNz
ZXJ0aW9ucy5jcHAgXAorICAgIEF0b21pY3MuY3BwIFwKICAgICBCaXRWZWN0b3IuY3BwIFwKICAg
ICBDcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5jcHAgXAogICAgIEN1cnJlbnRUaW1lLmNw
cCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9BdG9taWNzLmNwcCBiL1NvdXJjZS9XVEYv
d3RmL0F0b21pY3MuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRmYjhh
ZDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9BdG9taWNzLmNwcApAQCAtMCww
ICsxLDExMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAxMCwgMjAxMiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcgSnVz
dGluIEhheWdvb2QgKGpoYXlnb29kQHJlYWt0aXguY29tKQorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4gCisg
KiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4gCisg
KiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikg
bm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uIAorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMg
IkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisg
KiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqCisgKiBOb3RlOiBUaGUgaW1wbGVt
ZW50YXRpb25zIG9mIEludGVybG9ja2VkSW5jcmVtZW50IGFuZCBJbnRlcmxvY2tlZERlY3JlbWVu
dCBhcmUgYmFzZWQKKyAqIG9uIGF0b21pY19pbmNyZW1lbnQgYW5kIGF0b21pY19leGNoYW5nZV9h
bmRfYWRkIGZyb20gdGhlIEJvb3N0IEMrKyBMaWJyYXJ5LiBUaGUgbGljZW5zZQorICogaXMgdmly
dHVhbGx5IGlkZW50aWNhbCB0byB0aGUgQXBwbGUgbGljZW5zZSBhYm92ZSBidXQgaXMgaW5jbHVk
ZWQgaGVyZSBmb3IgY29tcGxldGVuZXNzLgorICoKKyAqIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2Ug
LSBWZXJzaW9uIDEuMCAtIEF1Z3VzdCAxN3RoLCAyMDAzCisgKiAKKyAqIFBlcm1pc3Npb24gaXMg
aGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9yIG9yZ2FuaXph
dGlvbgorICogb2J0YWluaW5nIGEgY29weSBvZiB0aGUgc29mdHdhcmUgYW5kIGFjY29tcGFueWlu
ZyBkb2N1bWVudGF0aW9uIGNvdmVyZWQgYnkKKyAqIHRoaXMgbGljZW5zZSAodGhlICJTb2Z0d2Fy
ZSIpIHRvIHVzZSwgcmVwcm9kdWNlLCBkaXNwbGF5LCBkaXN0cmlidXRlLAorICogZXhlY3V0ZSwg
YW5kIHRyYW5zbWl0IHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHByZXBhcmUgZGVyaXZhdGl2ZSB3b3Jr
cyBvZiB0aGUKKyAqIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHRoaXJkLXBhcnRpZXMgdG8gd2hv
bSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvCisgKiBkbyBzbywgYWxsIHN1YmplY3QgdG8g
dGhlIGZvbGxvd2luZzoKKyAqIAorICogVGhlIGNvcHlyaWdodCBub3RpY2VzIGluIHRoZSBTb2Z0
d2FyZSBhbmQgdGhpcyBlbnRpcmUgc3RhdGVtZW50LCBpbmNsdWRpbmcKKyAqIHRoZSBhYm92ZSBs
aWNlbnNlIGdyYW50LCB0aGlzIHJlc3RyaWN0aW9uIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIsCisgKiBtdXN0IGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBp
biB3aG9sZSBvciBpbiBwYXJ0LCBhbmQKKyAqIGFsbCBkZXJpdmF0aXZlIHdvcmtzIG9mIHRoZSBT
b2Z0d2FyZSwgdW5sZXNzIHN1Y2ggY29waWVzIG9yIGRlcml2YXRpdmUKKyAqIHdvcmtzIGFyZSBz
b2xlbHkgaW4gdGhlIGZvcm0gb2YgbWFjaGluZS1leGVjdXRhYmxlIG9iamVjdCBjb2RlIGdlbmVy
YXRlZCBieQorICogYSBzb3VyY2UgbGFuZ3VhZ2UgcHJvY2Vzc29yLgorICogCisgKiBUSEUgU09G
VFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwg
RVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSwgVElUTEUgQU5EIE5PTi1JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UCisgKiBT
SEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUlMgT1IgQU5ZT05FIERJU1RSSUJVVElORyBUSEUgU09G
VFdBUkUgQkUgTElBQkxFCisgKiBGT1IgQU5ZIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwKKyAqIEFSSVNJTkcgRlJPTSwg
T1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBP
VEhFUgorICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKworLy8gU29tZSBhcmNoaXRlY3R1cmVzLCBsaWtlIE1JUFMzMiwgZG9uJ3QgaGF2ZSBH
Q0MgaW1wbGVtZW50YXRpb24gZm9yIGJ1aWx0aW4gX19zeW5jXyogZnVuY3Rpb25zCisvLyB3aXRo
IDY0IGJpdHMgdmFyaWFibGUgc2l6ZS4gT2ZmaWNpYWwgR0NDIGFuc3dlciBmb3IgdGhlIHByb2Js
ZW06IElmIGEgdGFyZ2V0IGRvZXNuJ3Qgc3VwcG9ydAorLy8gYXRvbWljIG9wZXJhdGlvbnMgb24g
Y2VydGFpbiB2YXJpYWJsZSBzaXplcywgeW91IGFyZSBvdXQgb2YgbHVjayB3aXRoIGF0b21pY2l0
eSBpbiB0aGF0IGNhc2UKKy8vIChodHRwOi8vZ2NjLmdudS5vcmcvYnVnemlsbGEvc2hvd19idWcu
Y2dpP2lkPTU2Mjk2KS4gR0NDID49IDQuOCB3aWxsIHN1cHBvcnQgX19hdG9taWNfKiBidWlsdGlu
CisvLyBmdW5jdGlvbnMgZm9yIHRoaXMgcHVycG9zZSBmb3IgYWxsIHRoZSBHQ0MgdGFyZ2V0cywg
YnV0IGZvciBjdXJyZW50IGNvbXBpbGVycyB3ZSBoYXZlIHRvIGluY2x1ZGUKKy8vIG91ciBvd24g
aW1wbGVtZW50YXRpb24uCisjaWYgQ09NUElMRVIoR0NDKSAmJiAhZGVmaW5lZChfX0dDQ19IQVZF
X1NZTkNfQ09NUEFSRV9BTkRfU1dBUF84KSAmJiBVU0UoTE9DS0ZSRUVfVEhSRUFEU0FGRVJFRkNP
VU5URUQpICYmIFVTRShQVEhSRUFEUykKKworI2luY2x1ZGUgIkF0b21pY3MuaCIKKworI2luY2x1
ZGUgIlRocmVhZGluZ1ByaW1pdGl2ZXMuaCIKKworbmFtZXNwYWNlIFdURiB7CisKK3N0YXRpYyBj
b25zdCBzaXplX3Qga1N3YXBMb2NrQ291bnQgPSAzMjsKK3N0YXRpYyBNdXRleCBzX3N3YXBMb2Nr
c1trU3dhcExvY2tDb3VudF07CisKK3N0YXRpYyBpbmxpbmUgTXV0ZXgmIGdldFN3YXBMb2NrKGNv
bnN0IHZvbGF0aWxlIGludDY0X3QqIGFkZHIpCit7CisgICAgcmV0dXJuIHNfc3dhcExvY2tzWyhy
ZWludGVycHJldF9jYXN0PGludHB0cl90PihhZGRyKSA+PiAzVSkgJSBrU3dhcExvY2tDb3VudF07
Cit9CisKK3N0YXRpYyBpbnQ2NF90IGF0b21pY1N0ZXAoaW50NjRfdCB2b2xhdGlsZSogYWRkZW5k
LCBpbnQ2NF90IHN0ZXApCit7CisgICAgTXV0ZXgmIG11dGV4ID0gZ2V0U3dhcExvY2soYWRkZW5k
KTsKKworICAgIG11dGV4LmxvY2soKTsKKyAgICBpbnQ2NF90IHZhbHVlID0gKmFkZGVuZCArIHN0
ZXA7CisgICAgKmFkZGVuZCA9IHZhbHVlOworICAgIG11dGV4LnVubG9jaygpOworCisgICAgcmV0
dXJuIHZhbHVlOworfQorCitleHRlcm4gIkMiIHsKKworaW50NjRfdCBfX3N5bmNfYWRkX2FuZF9m
ZXRjaF84KGludDY0X3Qgdm9sYXRpbGUqIGFkZGVuZCwgaW50NjRfdCB2YWx1ZSkKK3sKKyAgICBy
ZXR1cm4gYXRvbWljU3RlcChhZGRlbmQsIHZhbHVlKTsKK30KKworaW50NjRfdCBfX3N5bmNfc3Vi
X2FuZF9mZXRjaF84KGludDY0X3Qgdm9sYXRpbGUqIGFkZGVuZCwgaW50NjRfdCB2YWx1ZSkKK3sK
KyAgICByZXR1cm4gYXRvbWljU3RlcChhZGRlbmQsIC12YWx1ZSk7Cit9CisKK30gLy8gZXh0ZXJu
ICJDIgorCit9IC8vIG5hbWVzcGFjZSBXVEYKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0Cmlu
ZGV4IGE4Nzk4ZjcuLjQ0NzM1MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlz
dHMudHh0CisrKyBiL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0CkBAIC0xNTksNiArMTU5
LDcgQEAgc2V0KFdURl9TT1VSQ0VTCiAgICAgQXJyYXlCdWZmZXIuY3BwCiAgICAgQXJyYXlCdWZm
ZXJWaWV3LmNwcAogICAgIEFzc2VydGlvbnMuY3BwCisgICAgQXRvbWljcy5jcHAKICAgICBCaXRW
ZWN0b3IuY3BwCiAgICAgQ3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1iZXIuY3BwCiAgICAgQ3Vy
cmVudFRpbWUuY3BwCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>