<?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>38045</bug_id>
          
          <creation_ts>2010-04-23 07:17:30 -0700</creation_ts>
          <short_desc>Avoid increasing required alignment of target type warning on ARM</short_desc>
          <delta_ts>2010-08-13 03:55:44 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>43223</dependson>
          <blocked>37916</blocked>
    
    <blocked>43191</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Gabor Loki">loki</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>barraclough</cc>
    
    <cc>deepak.m</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>ossy</cc>
    
    <cc>skyul</cc>
    
    <cc>thiago.macieira</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>216392</commentid>
    <comment_count>0</comment_count>
    <who name="Gabor Loki">loki</who>
    <bug_when>2010-04-23 07:17:30 -0700</bug_when>
    <thetext>Although bug 16925 fixed the alignment problem on many platforms, the problem still exists on ARM (see the ARMv5 buildbot).

One example warning:
JavaScriptCore/wtf/Vector.h:484: warning: cast from &apos;WTF::AlignedBufferChar*&apos; to &apos;JSC::Register*&apos; increases required alignment of target type

The problem is that the reinterpret_cast tries to cast from char* to a pointer of a bigger type. A possible solution is adding alignment to the array elements instead of the whole array.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216395</commentid>
    <comment_count>1</comment_count>
      <attachid>54156</attachid>
    <who name="Gabor Loki">loki</who>
    <bug_when>2010-04-23 07:25:27 -0700</bug_when>
    <thetext>Created attachment 54156
Fix VectorBuffer&apos;s alignment on ARM

I saw the style errors, but I do not want to brake the current style. ;)
If you like, I could change this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216396</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-23 07:27:31 -0700</bug_when>
    <thetext>Attachment 54156 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
JavaScriptCore/wtf/Vector.h:59:  More than one command on the same line  [whitespace/newline] [4]
JavaScriptCore/wtf/Vector.h:60:  More than one command on the same line  [whitespace/newline] [4]
JavaScriptCore/wtf/Vector.h:61:  More than one command on the same line  [whitespace/newline] [4]
JavaScriptCore/wtf/Vector.h:62:  More than one command on the same line  [whitespace/newline] [4]
JavaScriptCore/wtf/Vector.h:63:  More than one command on the same line  [whitespace/newline] [4]
JavaScriptCore/wtf/Vector.h:64:  More than one command on the same line  [whitespace/newline] [4]
JavaScriptCore/wtf/Vector.h:65:  More than one command on the same line  [whitespace/newline] [4]
JavaScriptCore/wtf/Vector.h:68:  More than one command on the same line  [whitespace/newline] [4]
JavaScriptCore/wtf/Vector.h:69:  More than one command on the same line  [whitespace/newline] [4]
JavaScriptCore/wtf/Vector.h:70:  More than one command on the same line  [whitespace/newline] [4]
JavaScriptCore/wtf/Vector.h:71:  More than one command on the same line  [whitespace/newline] [4]
JavaScriptCore/wtf/Vector.h:72:  More than one command on the same line  [whitespace/newline] [4]
JavaScriptCore/wtf/Vector.h:73:  More than one command on the same line  [whitespace/newline] [4]
JavaScriptCore/wtf/Vector.h:74:  More than one command on the same line  [whitespace/newline] [4]
Total errors found: 14 in 2 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>216418</commentid>
    <comment_count>3</comment_count>
      <attachid>54156</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-04-23 08:20:59 -0700</bug_when>
    <thetext>Comment on attachment 54156
Fix VectorBuffer&apos;s alignment on ARM

This patch does nothing to explain why this change works. What was wrong? How does this change improve things?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216570</commentid>
    <comment_count>4</comment_count>
    <who name="Gabor Loki">loki</who>
    <bug_when>2010-04-23 14:46:49 -0700</bug_when>
    <thetext>(Sorry, I had to run. So, here comes the explanation.)

The main problem is the declaration of the array. If it is casted to another array type, the alignment of the source elements should be the same (or bigger) as the alignment of the target elements. Lets see an example.

char F[6] __attribute__((__aligned__(4)));

This array takes 6 bytes for the value and 2 bytes for padding. So it takes 8 bytes in overall.

typedef struct {
  char c __attribute__((__aligned__(4)));
} S_t;
S_t S[2];

This second array takes 2 bytes for the value and 6 bytes for padding. Sum is 8 bytes as well. (You can ignore the different addressing possibilities of the character arrays. We will cast them before using.)

What is the difference between this two array? The alignment of the elements. You can easily see the S[0] and S[1] is aligned to 4 bytes. So a simple reinterpret_cast&lt;int*&gt;(S) conversion can be done without any alignment problem.
On the first case, the compiler cannot ensure that the F[1], F[2],... are aligned to 4 bytes (because the minimum required aligned is 1 for char and 4 for int). This is the reason of the warning.

Why does this solution improve things? It uses such a buffer where each element of the buffer is aligned to the target type. So the corresponding elements of the buffer have the same address in both types. There is no other magic in it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220092</commentid>
    <comment_count>5</comment_count>
    <who name="Thiago Macieira">thiago.macieira</who>
    <bug_when>2010-05-03 07:23:05 -0700</bug_when>
    <thetext>I think this is a GCC problem.

$ cat test.cpp
struct Foo
{
    char __attribute__((aligned(4))) c;
};

char junk;
Foo f;
char junk2;

int main()
{
    int *i = reinterpret_cast&lt;int *&gt;(&amp;f.c);
}

$ arm-none-linux-gnueabi-g++ -Wcast-align -fsyntax-only /tmp/test.cpp
/tmp/test.cpp: In function &apos;int main()&apos;:
/tmp/test.cpp:8: warning: cast from &apos;char*&apos; to &apos;int*&apos; increases required alignment of target type

$ arm-none-linux-gnueabi-g++ -dumpversion 
4.4.1

Reading the assembly output, we can even see:
junk:
        .space  1
        .space  3
        .type   f, %object
        .size   f, 4
f:
        .space  4

Which proves that &quot;f&quot; was aligned to a 4-byte boundary. (note the 3-byte padding)

In Vector.h, we have:
    template &lt;size_t size, size_t alignment&gt; struct AlignedBuffer;
    template &lt;size_t size&gt; struct AlignedBuffer&lt;size, 1&gt; { AlignedBufferChar buffer[size]; };
    template &lt;size_t size&gt; struct AlignedBuffer&lt;size, 2&gt; { WTF_ALIGNED(AlignedBufferChar, buffer[size], 2);  };
    template &lt;size_t size&gt; struct AlignedBuffer&lt;size, 4&gt; { WTF_ALIGNED(AlignedBufferChar, buffer[size], 4);  };
    template &lt;size_t size&gt; struct AlignedBuffer&lt;size, 8&gt; { WTF_ALIGNED(AlignedBufferChar, buffer[size], 8);  };
[...]

lines 484 to 486:
        T* inlineBuffer() { return reinterpret_cast&lt;T*&gt;(m_inlineBuffer.buffer); }

        AlignedBuffer&lt;m_inlineBufferSize, WTF_ALIGN_OF(T)&gt; m_inlineBuffer;

So, by construction, m_inlineBuffer::buffer has the same alignment as T.

GCC threw the same warning as my example above, despite the type having the proper alignment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220099</commentid>
    <comment_count>6</comment_count>
    <who name="Thiago Macieira">thiago.macieira</who>
    <bug_when>2010-05-03 07:40:53 -0700</bug_when>
    <thetext>Reported to GCC: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43976</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234095</commentid>
    <comment_count>7</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-06-04 01:08:23 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (Sorry, I had to run. So, here comes the explanation.)

I think Darin&apos;s comment meant ChangeLog should have this explanation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234262</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-06-04 10:21:27 -0700</bug_when>
    <thetext>Obviously, there is no need to paste the above explanations in a ChangeLog. Something like &quot;work around a gcc (4.3?) bug that results in an incorrect warning on ARM/on some platforms(?). No negative effect on memory use or performance&quot; would suffice - of course, if that&apos;s true, I&apos;m not sure if everyone is on the same page already.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235232</commentid>
    <comment_count>9</comment_count>
      <attachid>58134</attachid>
    <who name="Gabor Loki">loki</who>
    <bug_when>2010-06-08 06:34:42 -0700</bug_when>
    <thetext>Created attachment 58134
Fix VectorBuffer&apos;s alignment on ARM (v2)

I have just looked at C++ standard and found a better solution than the previous one.
We can use static_cast to void* which has no alignment problem on any type, and of course it will not break the value of m_inlineBuffer.buffer (which was an array type in the reinterpret_cast).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251830</commentid>
    <comment_count>10</comment_count>
    <who name="Gabor Loki">loki</who>
    <bug_when>2010-07-15 05:58:20 -0700</bug_when>
    <thetext>*** Bug 40410 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251831</commentid>
    <comment_count>11</comment_count>
    <who name="Gabor Loki">loki</who>
    <bug_when>2010-07-15 06:01:34 -0700</bug_when>
    <thetext>I have merged this and bug 40410, because they should have the same fix to remove the alignment warning.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251846</commentid>
    <comment_count>12</comment_count>
      <attachid>61650</attachid>
    <who name="Gabor Loki">loki</who>
    <bug_when>2010-07-15 06:47:12 -0700</bug_when>
    <thetext>Created attachment 61650
Avoid increasing required alignment of target type warning on ARM

One or two weeks ago Gavin and I discussed this problem on IRC, and Gavin suggested to have reinterpret_cast_ptr&lt;T&gt;(void*) template function which bypasses this warning on ARM (and do not poke any other target). So, I have created a patch which solves this issue with this reinterpret_cast_ptr template function (and a wrapper macro for other targets).

This patch fixes the alignment warnings on ARM (and on Thumb-2 as well).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251849</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-15 06:54:31 -0700</bug_when>
    <thetext>Attachment 61650 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
JavaScriptCore/wtf/qt/StringQt.cpp:28:  Found other header before a header this file implements. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 1 in 10 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>251852</commentid>
    <comment_count>14</comment_count>
    <who name="Gabor Loki">loki</who>
    <bug_when>2010-07-15 06:58:18 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; JavaScriptCore/wtf/qt/StringQt.cpp:28:  Found other header before a header this file implements. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]

There is no primary header for wtf/qt/StringQt.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257810</commentid>
    <comment_count>15</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2010-07-29 12:34:52 -0700</bug_when>
    <thetext>Looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257814</commentid>
    <comment_count>16</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2010-07-29 12:40:14 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; Looks good to me.

You forgot to set r+ flag, but modifiied the status to resolved/fixed :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257815</commentid>
    <comment_count>17</comment_count>
      <attachid>61650</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2010-07-29 12:41:44 -0700</bug_when>
    <thetext>Comment on attachment 61650
Avoid increasing required alignment of target type warning on ARM

D&apos;oh, thanks ossy. :-)
r+</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257816</commentid>
    <comment_count>18</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2010-07-29 12:43:06 -0700</bug_when>
    <thetext>ooops, hit fixed by mistake, instead of r+!
reverting back to an open state, &amp; going to find more coffee before doing anything else in bugzilla. ;-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257820</commentid>
    <comment_count>19</comment_count>
      <attachid>61650</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2010-07-29 12:52:28 -0700</bug_when>
    <thetext>Comment on attachment 61650
Avoid increasing required alignment of target type warning on ARM

Clearing flags on attachment: 61650

Committed r64302: &lt;http://trac.webkit.org/changeset/64302&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257821</commentid>
    <comment_count>20</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2010-07-29 12:52:39 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258031</commentid>
    <comment_count>21</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2010-07-29 19:49:34 -0700</bug_when>
    <thetext>Rolled out in: https://bugs.webkit.org/show_bug.cgi?id=43223

The implementation of reinterpret_cast_ptr for ARM/GCC should probably be more like:

template&lt;typename Type&gt;
bool isPointerTypeAlignmentOkay(Type* ptr)
{
    return !(reinterpret_cast&lt;intptr_t&gt;(ptr) % __alignof__(Type));
}

template&lt;typename TypePtr&gt;
TypePtr reinterpret_cast_ptr(void* ptr)
{
    ASSERT(isPointerTypeAlignmentOkay(reinterpret_cast&lt;TypePtr&gt;(ptr)));
    return reinterpret_cast&lt;TypePtr&gt;(ptr);
}

template&lt;typename TypePtr&gt;
const TypePtr reinterpret_cast_ptr(const void* ptr)
{
    ASSERT(isPointerTypeAlignmentOkay(reinterpret_cast&lt;TypePtr&gt;(ptr)));
    return reinterpret_cast&lt;TypePtr&gt;(ptr);
}

The ASSERT should be checking the alignment of the Type, not the type of TypePtr.  reinterpret_cast of a const pointer should not change constness.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258840</commentid>
    <comment_count>22</comment_count>
    <who name="Gabor Loki">loki</who>
    <bug_when>2010-08-02 06:58:38 -0700</bug_when>
    <thetext>(In reply to comment #21)
You are right the previous ASSERT was bogus. Thanks for the heads up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258848</commentid>
    <comment_count>23</comment_count>
      <attachid>63215</attachid>
    <who name="Gabor Loki">loki</who>
    <bug_when>2010-08-02 07:08:46 -0700</bug_when>
    <thetext>Created attachment 63215
Avoid increasing required alignment of target type warning on ARM (v2)

- ASSERT is fixed as Gavin suggested.
- Modify the newly introduced reinterpret_casts in JSArray.(h|cpp).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258849</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-02 07:10:07 -0700</bug_when>
    <thetext>Attachment 63215 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
JavaScriptCore/wtf/StdLibExtras.h:72:  reinterpret_cast_ptr is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
JavaScriptCore/wtf/StdLibExtras.h:79:  reinterpret_cast_ptr is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
JavaScriptCore/wtf/qt/StringQt.cpp:28:  Found other header before a header this file implements. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 3 in 12 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>263647</commentid>
    <comment_count>25</comment_count>
    <who name="deepak">deepak.m</who>
    <bug_when>2010-08-12 01:10:55 -0700</bug_when>
    <thetext>I am facing same Alignment warnings in JavaScriptCore/wtf/Vector.h ..
and few other warnings which i could fix by addin CPU(MIPS) checks in


/WebCore/platform/text/StringHash.h
./WebCore/platform/text/AtomicString.cpp

but im looking for the solution wrt JavaScriptCore/wtf/Vector.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264270</commentid>
    <comment_count>26</comment_count>
    <who name="Gabor Loki">loki</who>
    <bug_when>2010-08-13 03:49:10 -0700</bug_when>
    <thetext>Committed revision 65311.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264274</commentid>
    <comment_count>27</comment_count>
    <who name="Gabor Loki">loki</who>
    <bug_when>2010-08-13 03:55:44 -0700</bug_when>
    <thetext>The bug 43963 is the follow up of this bug. Please, submit new patches there about the alignment warning!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54156</attachid>
            <date>2010-04-23 07:25:27 -0700</date>
            <delta_ts>2010-06-08 06:34:42 -0700</delta_ts>
            <desc>Fix VectorBuffer&apos;s alignment on ARM</desc>
            <filename>0001-Fix-VectorBuffer-s-alignment-on-ARM.patch</filename>
            <type>text/plain</type>
            <size>3569</size>
            <attacher name="Gabor Loki">loki</attacher>
            
              <data encoding="base64">RnJvbSBkYTBjNWZhNDRmYWUzMDYyMTFjNjBlOTgyZTNlMGU4ZTRmMTc0YTc1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBHYWJvciBMb2tpIDxsb2tpQGluZi51LXN6ZWdlZC5odT4KRGF0
ZTogRnJpLCAyMyBBcHIgMjAxMCAxNjoxNDo0MyArMDIwMApTdWJqZWN0OiBbUEFUQ0hdIEZpeCBW
ZWN0b3JCdWZmZXIncyBhbGlnbm1lbnQgb24gQVJNCgpTaWduZWQtb2ZmLWJ5OiBHYWJvciBMb2tp
IDxsb2tpQGluZi51LXN6ZWdlZC5odT4KLS0tCiBKYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgICAg
fCAgIDEwICsrKysrKysrKysKIEphdmFTY3JpcHRDb3JlL3d0Zi9WZWN0b3IuaCB8ICAgMjMgKysr
KysrKysrKysrKysrKy0tLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgMjYgaW5zZXJ0aW9ucygrKSwg
NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggZDc2N2FlNC4uMDc3OWFlYSAxMDA2NDQKLS0t
IGEvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEzIEBACisyMDEwLTA0LTIzICBHYWJvciBMb2tpICA8bG9raUB3ZWJraXQu
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZp
eCBWZWN0b3JCdWZmZXIncyBhbGlnbm1lbnQgb24gQVJNCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zODA0NQorCisgICAgICAgICogd3RmL1ZlY3Rvci5o
OgorICAgICAgICAoV1RGOjopOgorCiAyMDEwLTA0LTIyICBTdGV2ZSBCbG9jayAgPHN0ZXZlYmxv
Y2tAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpkaWZmIC0t
Z2l0IGEvSmF2YVNjcmlwdENvcmUvd3RmL1ZlY3Rvci5oIGIvSmF2YVNjcmlwdENvcmUvd3RmL1Zl
Y3Rvci5oCmluZGV4IDZmNTVlNTMuLmYxZjIxNDYgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3Jl
L3d0Zi9WZWN0b3IuaAorKysgYi9KYXZhU2NyaXB0Q29yZS93dGYvVmVjdG9yLmgKQEAgLTU1LDE0
ICs1NSwyMyBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICAgICAgdHlwZWRlZiBjaGFyIEFsaWduZWRC
dWZmZXJDaGFyOyAKICAgICAjZW5kaWYKIAorICAgIHRlbXBsYXRlIDxzaXplX3QgYWxpZ25tZW50
PiBzdHJ1Y3QgQWxpZ25lZEJ1ZmZlclR5cGU7CisgICAgdGVtcGxhdGUgPD4gc3RydWN0IEFsaWdu
ZWRCdWZmZXJUeXBlPDE+IHsgQWxpZ25lZEJ1ZmZlckNoYXIgdmFsdWU7IH07CisgICAgdGVtcGxh
dGUgPD4gc3RydWN0IEFsaWduZWRCdWZmZXJUeXBlPDI+IHsgV1RGX0FMSUdORUQoQWxpZ25lZEJ1
ZmZlckNoYXIsIHZhbHVlLCAyKTsgfTsKKyAgICB0ZW1wbGF0ZSA8PiBzdHJ1Y3QgQWxpZ25lZEJ1
ZmZlclR5cGU8ND4geyBXVEZfQUxJR05FRChBbGlnbmVkQnVmZmVyQ2hhciwgdmFsdWUsIDQpOyB9
OworICAgIHRlbXBsYXRlIDw+IHN0cnVjdCBBbGlnbmVkQnVmZmVyVHlwZTw4PiB7IFdURl9BTElH
TkVEKEFsaWduZWRCdWZmZXJDaGFyLCB2YWx1ZSwgOCk7IH07CisgICAgdGVtcGxhdGUgPD4gc3Ry
dWN0IEFsaWduZWRCdWZmZXJUeXBlPDE2PiB7IFdURl9BTElHTkVEKEFsaWduZWRCdWZmZXJDaGFy
LCB2YWx1ZSwgMTYpOyB9OworICAgIHRlbXBsYXRlIDw+IHN0cnVjdCBBbGlnbmVkQnVmZmVyVHlw
ZTwzMj4geyBXVEZfQUxJR05FRChBbGlnbmVkQnVmZmVyQ2hhciwgdmFsdWUsIDMyKTsgfTsKKyAg
ICB0ZW1wbGF0ZSA8PiBzdHJ1Y3QgQWxpZ25lZEJ1ZmZlclR5cGU8NjQ+IHsgV1RGX0FMSUdORUQo
QWxpZ25lZEJ1ZmZlckNoYXIsIHZhbHVlLCA2NCk7IH07CisKICAgICB0ZW1wbGF0ZSA8c2l6ZV90
IHNpemUsIHNpemVfdCBhbGlnbm1lbnQ+IHN0cnVjdCBBbGlnbmVkQnVmZmVyOwotICAgIHRlbXBs
YXRlIDxzaXplX3Qgc2l6ZT4gc3RydWN0IEFsaWduZWRCdWZmZXI8c2l6ZSwgMT4geyBBbGlnbmVk
QnVmZmVyQ2hhciBidWZmZXJbc2l6ZV07IH07Ci0gICAgdGVtcGxhdGUgPHNpemVfdCBzaXplPiBz
dHJ1Y3QgQWxpZ25lZEJ1ZmZlcjxzaXplLCAyPiB7IFdURl9BTElHTkVEKEFsaWduZWRCdWZmZXJD
aGFyLCBidWZmZXJbc2l6ZV0sIDIpOyAgfTsKLSAgICB0ZW1wbGF0ZSA8c2l6ZV90IHNpemU+IHN0
cnVjdCBBbGlnbmVkQnVmZmVyPHNpemUsIDQ+IHsgV1RGX0FMSUdORUQoQWxpZ25lZEJ1ZmZlckNo
YXIsIGJ1ZmZlcltzaXplXSwgNCk7ICB9OwotICAgIHRlbXBsYXRlIDxzaXplX3Qgc2l6ZT4gc3Ry
dWN0IEFsaWduZWRCdWZmZXI8c2l6ZSwgOD4geyBXVEZfQUxJR05FRChBbGlnbmVkQnVmZmVyQ2hh
ciwgYnVmZmVyW3NpemVdLCA4KTsgIH07Ci0gICAgdGVtcGxhdGUgPHNpemVfdCBzaXplPiBzdHJ1
Y3QgQWxpZ25lZEJ1ZmZlcjxzaXplLCAxNj4geyBXVEZfQUxJR05FRChBbGlnbmVkQnVmZmVyQ2hh
ciwgYnVmZmVyW3NpemVdLCAxNik7IH07Ci0gICAgdGVtcGxhdGUgPHNpemVfdCBzaXplPiBzdHJ1
Y3QgQWxpZ25lZEJ1ZmZlcjxzaXplLCAzMj4geyBXVEZfQUxJR05FRChBbGlnbmVkQnVmZmVyQ2hh
ciwgYnVmZmVyW3NpemVdLCAzMik7IH07Ci0gICAgdGVtcGxhdGUgPHNpemVfdCBzaXplPiBzdHJ1
Y3QgQWxpZ25lZEJ1ZmZlcjxzaXplLCA2ND4geyBXVEZfQUxJR05FRChBbGlnbmVkQnVmZmVyQ2hh
ciwgYnVmZmVyW3NpemVdLCA2NCk7IH07CisgICAgdGVtcGxhdGUgPHNpemVfdCBzaXplPiBzdHJ1
Y3QgQWxpZ25lZEJ1ZmZlcjxzaXplLCAxPiB7IEFsaWduZWRCdWZmZXJUeXBlPDE+IGJ1ZmZlcltz
aXplXTsgfTsKKyAgICB0ZW1wbGF0ZSA8c2l6ZV90IHNpemU+IHN0cnVjdCBBbGlnbmVkQnVmZmVy
PHNpemUsIDI+IHsgQWxpZ25lZEJ1ZmZlclR5cGU8Mj4gYnVmZmVyW3NpemUgLyAyXTsgfTsKKyAg
ICB0ZW1wbGF0ZSA8c2l6ZV90IHNpemU+IHN0cnVjdCBBbGlnbmVkQnVmZmVyPHNpemUsIDQ+IHsg
QWxpZ25lZEJ1ZmZlclR5cGU8ND4gYnVmZmVyW3NpemUgLyA0XTsgfTsKKyAgICB0ZW1wbGF0ZSA8
c2l6ZV90IHNpemU+IHN0cnVjdCBBbGlnbmVkQnVmZmVyPHNpemUsIDg+IHsgQWxpZ25lZEJ1ZmZl
clR5cGU8OD4gYnVmZmVyW3NpemUgLyA4XTsgfTsKKyAgICB0ZW1wbGF0ZSA8c2l6ZV90IHNpemU+
IHN0cnVjdCBBbGlnbmVkQnVmZmVyPHNpemUsIDE2PiB7IEFsaWduZWRCdWZmZXJUeXBlPDE2PiBi
dWZmZXJbc2l6ZSAvIDE2XTsgfTsKKyAgICB0ZW1wbGF0ZSA8c2l6ZV90IHNpemU+IHN0cnVjdCBB
bGlnbmVkQnVmZmVyPHNpemUsIDMyPiB7IEFsaWduZWRCdWZmZXJUeXBlPDMyPiBidWZmZXJbc2l6
ZSAvIDMyXTsgfTsKKyAgICB0ZW1wbGF0ZSA8c2l6ZV90IHNpemU+IHN0cnVjdCBBbGlnbmVkQnVm
ZmVyPHNpemUsIDY0PiB7IEFsaWduZWRCdWZmZXJUeXBlPDY0PiBidWZmZXJbc2l6ZSAvIDY0XTsg
fTsKIAogICAgIHRlbXBsYXRlIDxzaXplX3Qgc2l6ZSwgc2l6ZV90IGFsaWdubWVudD4KICAgICB2
b2lkIHN3YXAoQWxpZ25lZEJ1ZmZlcjxzaXplLCBhbGlnbm1lbnQ+JiBhLCBBbGlnbmVkQnVmZmVy
PHNpemUsIGFsaWdubWVudD4mIGIpCi0tIAoxLjUuNC4zCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58134</attachid>
            <date>2010-06-08 06:34:42 -0700</date>
            <delta_ts>2010-07-15 06:01:59 -0700</delta_ts>
            <desc>Fix VectorBuffer&apos;s alignment on ARM (v2)</desc>
            <filename>0001-Fix-VectorBuffer-s-alignment-on-ARM.patch</filename>
            <type>text/plain</type>
            <size>2372</size>
            <attacher name="Gabor Loki">loki</attacher>
            
              <data encoding="base64">RnJvbSA1NzFjYThhNGE4NDhmMWIyYzM2MGI4MmE0NDZiMzE1MjI3YzA5ODA4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBHYWJvciBMb2tpIDxsb2tpQGluZi51LXN6ZWdlZC5odT4KRGF0
ZTogVHVlLCA4IEp1biAyMDEwIDE1OjI0OjM4ICswMjAwClN1YmplY3Q6IFtQQVRDSF0gRml4IFZl
Y3RvckJ1ZmZlcidzIGFsaWdubWVudCBvbiBBUk0KClNpZ25lZC1vZmYtYnk6IEdhYm9yIExva2kg
PGxva2lAaW5mLnUtc3plZ2VkLmh1PgotLS0KIEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyAgICB8
ICAgMjMgKysrKysrKysrKysrKysrKysrKysrKysKIEphdmFTY3JpcHRDb3JlL3d0Zi9WZWN0b3Iu
aCB8ICAgIDMgKystCiAyIGZpbGVzIGNoYW5nZWQsIDI1IGluc2VydGlvbnMoKyksIDEgZGVsZXRp
b25zKC0pCgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nCmluZGV4IGNjMmMzYjAuLmE1N2IxMTcgMTAwNjQ0Ci0tLSBhL0phdmFT
Y3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNiBAQAorMjAxMC0wNi0wOCAgR2Fib3IgTG9raSAgPGxva2lAd2Via2l0Lm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXggVmVjdG9y
QnVmZmVyJ3MgYWxpZ25tZW50IG9uIEFSTQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MzgwNDUKKworICAgICAgICBBbHRob3VnaCB0aGUgYWxpZ25tZW50
IG9mIHRoZSBwb2ludGVyIHRvIHRoZSBidWZmZXIgaXMgY29ycmVjdCwgdGhlCisgICAgICAgIHJl
aW50ZXJwcmV0ZXJfY2FzdCB1c2VzIHRoZSBtX2lubGluZUJ1ZmZlci5idWZmZXIgYXMgYW4gbHZh
bHVlIHdoaWNoCisgICAgICAgIGhhcyBhbiBhcnJheSB0eXBlIG5vdCBhIHBvaW50ZXIgdG8gYW4g
b2JqZWN0IHR5cGUuIE9uIEFSTSB0aGlzIGxlYWRzCisgICAgICAgIHRvIGEgd2FybmluZzogaW5j
cmVhc2VzIHJlcXVpcmVkIGFsaWdubWVudCBvZiB0YXJnZXQgdHlwZSwgYmVjYXVzZQorICAgICAg
ICB0aGUgcmVxdWlyZWQgYWxpZ21lbnQgaXMgZGlmZmVyZW50IGZvciBhcnJheSB0eXBlIGFuZCBw
b2ludGVyIHRvIGFuCisgICAgICAgIG9iamVjdCB0eXBlLgorCisgICAgICAgIFRoZSBDKysgSVNP
IHNheXMgdGhhdCBhIHZhbHVlIG9mIHR5cGUgcG9pbnRlciB0byBvYmplY3QgY29udmVydGVkIHRv
CisgICAgICAgIHBvaW50ZXIgdG8gdm9pZCBhbmQgYmFjayB0byB0aGUgb3JpZ2luYWwgcG9pbnRl
ciB0eXBlIHdpbGwgaGF2ZSBpdHMKKyAgICAgICAgb3JpZ2luYWwgdmFsdWUuIEluIGFkZGl0aW9u
YWwgdGhlIHN0YXRpY19jYXN0PHZvaWQqPiBieXBhc3NlcyB0aGUKKyAgICAgICAgYWxpZ25tZW50
IHdhcm5pbmcsIGJlY2F1c2UgdGhlIHZvaWQqIHNob3VsZCBiZSBhYmxlIHRvIGhvbGQgYW55IG9i
amVjdAorICAgICAgICBwb2ludGVyLgorCisgICAgICAgICogd3RmL1ZlY3Rvci5oOgorICAgICAg
ICAoV1RGOjpWZWN0b3JCdWZmZXI6OmlubGluZUJ1ZmZlcik6CisKIDIwMTAtMDYtMDcgIE1PUklU
QSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CiAgICAgICAgIAogICAgICAgICBSZXZpZXdl
ZCBieSBLZW50IFRhbXVyYS4KZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3d0Zi9WZWN0b3Iu
aCBiL0phdmFTY3JpcHRDb3JlL3d0Zi9WZWN0b3IuaAppbmRleCBiNjUzMDAxLi5jMjJhMTE5IDEw
MDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS93dGYvVmVjdG9yLmgKKysrIGIvSmF2YVNjcmlwdENv
cmUvd3RmL1ZlY3Rvci5oCkBAIC00ODEsNyArNDgxLDggQEAgbmFtZXNwYWNlIFdURiB7CiAgICAg
ICAgIHVzaW5nIEJhc2U6Om1fY2FwYWNpdHk7CiAKICAgICAgICAgc3RhdGljIGNvbnN0IHNpemVf
dCBtX2lubGluZUJ1ZmZlclNpemUgPSBpbmxpbmVDYXBhY2l0eSAqIHNpemVvZihUKTsKLSAgICAg
ICAgVCogaW5saW5lQnVmZmVyKCkgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxUKj4obV9pbmxp
bmVCdWZmZXIuYnVmZmVyKTsgfQorICAgICAgICAvLyBVc2Ugc3RhdGljX2Nhc3Q8dm9pZCo+IHRv
IGF2b2lkIGluY3JlYXNpbmcgcmVxdWlyZWQgYWxpZ25tZW50IG9mIHRhcmdldCB0eXBlIHdhcm5p
bmcuCisgICAgICAgIFQqIGlubGluZUJ1ZmZlcigpIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8
VCo+KHN0YXRpY19jYXN0PHZvaWQqPihtX2lubGluZUJ1ZmZlci5idWZmZXIpKTsgfQogCiAgICAg
ICAgIEFsaWduZWRCdWZmZXI8bV9pbmxpbmVCdWZmZXJTaXplLCBXVEZfQUxJR05fT0YoVCk+IG1f
aW5saW5lQnVmZmVyOwogICAgIH07Ci0tIAoxLjUuNC4zCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61650</attachid>
            <date>2010-07-15 06:47:12 -0700</date>
            <delta_ts>2010-08-02 07:08:46 -0700</delta_ts>
            <desc>Avoid increasing required alignment of target type warning on ARM</desc>
            <filename>0001-Avoid-increasing-required-alignment-of-target-type-w.patch</filename>
            <type>text/plain</type>
            <size>13633</size>
            <attacher name="Gabor Loki">loki</attacher>
            
              <data encoding="base64">RnJvbSAyYjZlN2IwMzNkNWI5MGMxZGZkYWVhMjM3ZWRhOTFiYWMxMzQ4ZTkxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBHYWJvciBMb2tpIDxsb2tpQGluZi51LXN6ZWdlZC5odT4KRGF0
ZTogVGh1LCAxNSBKdWwgMjAxMCAxNToyNzowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0hdIEF2b2lk
IGluY3JlYXNpbmcgcmVxdWlyZWQgYWxpZ25tZW50IG9mIHRhcmdldCB0eXBlIHdhcm5pbmcgb24g
QVJNCgpTaWduZWQtb2ZmLWJ5OiBHYWJvciBMb2tpIDxsb2tpQGluZi51LXN6ZWdlZC5odT4KLS0t
CiBKYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgfCAgIDM2ICsrKysr
KysrKysrKysrKysrKysrKysrKysrKysKIEphdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk1Bc3Nl
bWJsZXIuY3BwICB8ICAgIDQgKy0KIEphdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9Bc3NlbWJsZXJC
dWZmZXIuaCB8ICAgIDcgKysrLS0KIEphdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAgICAg
ICAgICAgICB8ICAgIDQgKy0KIEphdmFTY3JpcHRDb3JlL3BjcmUvcGNyZV9jb21waWxlLmNwcCAg
ICAgICB8ICAgIDMgKy0KIEphdmFTY3JpcHRDb3JlL3d0Zi9GYXN0TWFsbG9jLmNwcCAgICAgICAg
ICB8ICAgIDUgKystCiBKYXZhU2NyaXB0Q29yZS93dGYvTUQ1LmNwcCAgICAgICAgICAgICAgICAg
fCAgIDE1ICsrKysrKy0tLS0tCiBKYXZhU2NyaXB0Q29yZS93dGYvU3RkTGliRXh0cmFzLmggICAg
ICAgICAgfCAgIDI3ICsrKysrKysrKysrKysrKysrKysrKwogSmF2YVNjcmlwdENvcmUvd3RmL1Zl
Y3Rvci5oICAgICAgICAgICAgICAgIHwgICAgMyArLQogSmF2YVNjcmlwdENvcmUvd3RmL3F0L1N0
cmluZ1F0LmNwcCAgICAgICAgIHwgICAgNSArKy0KIDEwIGZpbGVzIGNoYW5nZWQsIDg5IGluc2Vy
dGlvbnMoKyksIDIwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAxNmRlZmMwLi5kOTE2YzZi
IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTAtMDctMTUgIEdhYm9yIExva2kgIDxs
b2tpQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQXZvaWQgaW5jcmVhc2luZyByZXF1aXJlZCBhbGlnbm1lbnQgb2YgdGFyZ2V0IHR5
cGUgd2FybmluZyBvbiBBUk0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTM4MDQ1CisKKyAgICAgICAgVGhlIHJlaW50ZXJwcmV0X2Nhc3Q8VHlwZTEqPihb
cG9pbnRlciB0byBUeXBlMl0pIGV4cHJlc3Npb25zIC0gd2hlcmUKKyAgICAgICAgc2l6ZW9mKFR5
cGUxKSA+IHNpemVvZihUeXBlMikgLSBjYXVzZSB0aGUgZm9sbG93aW5nIHdhcm5pbmcgb24gQVJN
OgorICAgICAgICBpbmNyZWFzZXMgcmVxdWlyZWQgYWxpZ25tZW50IG9mIHRhcmdldCB0eXBlIHdh
cm5pbmdzLgorICAgICAgICBDYXN0aW5nIHRoZSB0eXBlIG9mIFtwb2ludGVyIHRvIFR5cGUyXSBv
YmplY3QgdG8gdm9pZCogYnlwYXNzZXMgdGhlCisgICAgICAgIHdhcm5pbmcuCisKKyAgICAgICAg
KiBhc3NlbWJsZXIvQVJNQXNzZW1ibGVyLmNwcDoKKyAgICAgICAgKEpTQzo6QVJNQXNzZW1ibGVy
OjpleGVjdXRhYmxlQ29weSk6CisgICAgICAgICogYXNzZW1ibGVyL0Fzc2VtYmxlckJ1ZmZlci5o
OgorICAgICAgICAoSlNDOjpBc3NlbWJsZXJCdWZmZXI6OnB1dFNob3J0VW5jaGVja2VkKToKKyAg
ICAgICAgKEpTQzo6QXNzZW1ibGVyQnVmZmVyOjpwdXRJbnRVbmNoZWNrZWQpOgorICAgICAgICAo
SlNDOjpBc3NlbWJsZXJCdWZmZXI6OnB1dEludDY0VW5jaGVja2VkKToKKyAgICAgICAgKiBqaXQv
SklUU3R1YnMuY3BwOgorICAgICAgICAqIHBjcmUvcGNyZV9jb21waWxlLmNwcDoKKyAgICAgICAg
KGpzUmVnRXhwQ29tcGlsZSk6CisgICAgICAgICogd3RmL0Zhc3RNYWxsb2MuY3BwOgorICAgICAg
ICAoV1RGOjpQYWdlSGVhcEFsbG9jYXRvcjo6TmV3KToKKyAgICAgICAgKFdURjo6VENNYWxsb2Nf
Q2VudHJhbF9GcmVlTGlzdDo6UG9wdWxhdGUpOgorICAgICAgICAqIHd0Zi9NRDUuY3BwOgorICAg
ICAgICAoV1RGOjpyZXZlcnNlQnl0ZXMpOgorICAgICAgICAoV1RGOjpNRDU6OmFkZEJ5dGVzKToK
KyAgICAgICAgKFdURjo6TUQ1OjpjaGVja3N1bSk6CisgICAgICAgICogd3RmL1N0ZExpYkV4dHJh
cy5oOgorICAgICAgICAocmVpbnRlcnByZXRfY2FzdF9wdHIpOgorICAgICAgICAqIHd0Zi9WZWN0
b3IuaDoKKyAgICAgICAgKFdURjo6VmVjdG9yQnVmZmVyOjppbmxpbmVCdWZmZXIpOgorICAgICAg
ICAqIHd0Zi9xdC9TdHJpbmdRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHJpbmc6OlN0cmlu
Zyk6CisKIDIwMTAtMDctMTUgIE1hcmsgUm93ZSAgPG1yb3dlQGFwcGxlLmNvbT4KIAogICAgICAg
ICBVcGRhdGUgdGhlIHNvcnRpbmcgaW4gdGhlIFhjb2RlIHByb2plY3QgZmlsZXMuCmRpZmYgLS1n
aXQgYS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNQXNzZW1ibGVyLmNwcCBiL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9BUk1Bc3NlbWJsZXIuY3BwCmluZGV4IDAwMTY1NDAuLjg2YTFjMTQg
MTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk1Bc3NlbWJsZXIuY3BwCisr
KyBiL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk1Bc3NlbWJsZXIuY3BwCkBAIC0zNTUsMTEg
KzM1NSwxMSBAQCB2b2lkKiBBUk1Bc3NlbWJsZXI6OmV4ZWN1dGFibGVDb3B5KEV4ZWN1dGFibGVQ
b29sKiBhbGxvY2F0b3IpCiAgICAgZm9yIChKdW1wczo6SXRlcmF0b3IgaXRlciA9IG1fanVtcHMu
YmVnaW4oKTsgaXRlciAhPSBtX2p1bXBzLmVuZCgpOyArK2l0ZXIpIHsKICAgICAgICAgLy8gVGhl
IGxhc3QgYml0IGlzIHNldCBpZiB0aGUgY29uc3RhbnQgbXVzdCBiZSBwbGFjZWQgb24gY29uc3Rh
bnQgcG9vbC4KICAgICAgICAgaW50IHBvcyA9ICgqaXRlcikgJiAofjB4MSk7Ci0gICAgICAgIEFS
TVdvcmQqIGxkckFkZHIgPSByZWludGVycHJldF9jYXN0PEFSTVdvcmQqPihkYXRhICsgcG9zKTsK
KyAgICAgICAgQVJNV29yZCogbGRyQWRkciA9IHJlaW50ZXJwcmV0X2Nhc3RfcHRyPEFSTVdvcmQq
PihkYXRhICsgcG9zKTsKICAgICAgICAgQVJNV29yZCogYWRkciA9IGdldExkckltbUFkZHJlc3Mo
bGRyQWRkcik7CiAgICAgICAgIGlmICgqYWRkciAhPSBJbnZhbGlkQnJhbmNoVGFyZ2V0KSB7CiAg
ICAgICAgICAgICBpZiAoISgqaXRlciAmIDEpKSB7Ci0gICAgICAgICAgICAgICAgaW50IGRpZmYg
PSByZWludGVycHJldF9jYXN0PEFSTVdvcmQqPihkYXRhICsgKmFkZHIpIC0gKGxkckFkZHIgKyBE
ZWZhdWx0UHJlZmV0Y2hpbmcpOworICAgICAgICAgICAgICAgIGludCBkaWZmID0gcmVpbnRlcnBy
ZXRfY2FzdF9wdHI8QVJNV29yZCo+KGRhdGEgKyAqYWRkcikgLSAobGRyQWRkciArIERlZmF1bHRQ
cmVmZXRjaGluZyk7CiAKICAgICAgICAgICAgICAgICBpZiAoKGRpZmYgPD0gQk9GRlNFVF9NQVgg
JiYgZGlmZiA+PSBCT0ZGU0VUX01JTikpIHsKICAgICAgICAgICAgICAgICAgICAgKmxkckFkZHIg
PSBCIHwgZ2V0Q29uZGl0aW9uYWxGaWVsZCgqbGRyQWRkcikgfCAoZGlmZiAmIEJSQU5DSF9NQVNL
KTsKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9Bc3NlbWJsZXJCdWZmZXIu
aCBiL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9Bc3NlbWJsZXJCdWZmZXIuaAppbmRleCAxMWUw
ZGYwLi4wNDU0YTk5IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQXNzZW1i
bGVyQnVmZmVyLmgKKysrIGIvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0Fzc2VtYmxlckJ1ZmZl
ci5oCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSA8aml0L0V4ZWN1dGFibGVBbGxvY2F0b3Iu
aD4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9j
Lmg+CisjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogCiBuYW1lc3BhY2UgSlNDIHsKIApA
QCAtODEsNyArODIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBwdXRTaG9ydFVu
Y2hlY2tlZChpbnQgdmFsdWUpCiAgICAgICAgIHsKICAgICAgICAgICAgIEFTU0VSVCghKG1fc2l6
ZSA+IG1fY2FwYWNpdHkgLSA0KSk7Ci0gICAgICAgICAgICAqcmVpbnRlcnByZXRfY2FzdDxzaG9y
dCo+KCZtX2J1ZmZlclttX3NpemVdKSA9IHZhbHVlOworICAgICAgICAgICAgKnJlaW50ZXJwcmV0
X2Nhc3RfcHRyPHNob3J0Kj4oJm1fYnVmZmVyW21fc2l6ZV0pID0gdmFsdWU7CiAgICAgICAgICAg
ICBtX3NpemUgKz0gMjsKICAgICAgICAgfQogCkBAIC05NSwxNCArOTYsMTQgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgICAgIHZvaWQgcHV0SW50VW5jaGVja2VkKGludCB2YWx1ZSkKICAgICAgICAg
ewogICAgICAgICAgICAgQVNTRVJUKCEobV9zaXplID4gbV9jYXBhY2l0eSAtIDQpKTsKLSAgICAg
ICAgICAgICpyZWludGVycHJldF9jYXN0PGludCo+KCZtX2J1ZmZlclttX3NpemVdKSA9IHZhbHVl
OworICAgICAgICAgICAgKnJlaW50ZXJwcmV0X2Nhc3RfcHRyPGludCo+KCZtX2J1ZmZlclttX3Np
emVdKSA9IHZhbHVlOwogICAgICAgICAgICAgbV9zaXplICs9IDQ7CiAgICAgICAgIH0KIAogICAg
ICAgICB2b2lkIHB1dEludDY0VW5jaGVja2VkKGludDY0X3QgdmFsdWUpCiAgICAgICAgIHsKICAg
ICAgICAgICAgIEFTU0VSVCghKG1fc2l6ZSA+IG1fY2FwYWNpdHkgLSA4KSk7Ci0gICAgICAgICAg
ICAqcmVpbnRlcnByZXRfY2FzdDxpbnQ2NF90Kj4oJm1fYnVmZmVyW21fc2l6ZV0pID0gdmFsdWU7
CisgICAgICAgICAgICAqcmVpbnRlcnByZXRfY2FzdF9wdHI8aW50NjRfdCo+KCZtX2J1ZmZlcltt
X3NpemVdKSA9IHZhbHVlOwogICAgICAgICAgICAgbV9zaXplICs9IDg7CiAgICAgICAgIH0KIApk
aWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcCBiL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRTdHVicy5jcHAKaW5kZXggZjA4OGI2ZS4uMTUwYTRhZiAxMDA2NDQKLS0tIGEv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUU3R1YnMuY3BwCkBAIC05ODYsMTMgKzk4NiwxMyBAQCBzdHJ1Y3QgU3RhY2tIYWNrIHsKICAg
ICBSZXR1cm5BZGRyZXNzUHRyIHNhdmVkUmV0dXJuQWRkcmVzczsKIH07CiAKLSNkZWZpbmUgU1RV
Ql9JTklUX1NUQUNLX0ZSQU1FKHN0YWNrRnJhbWUpIEpJVFN0YWNrRnJhbWUmIHN0YWNrRnJhbWUg
PSAqcmVpbnRlcnByZXRfY2FzdDxKSVRTdGFja0ZyYW1lKj4oU1RVQl9BUkdTKTsgU3RhY2tIYWNr
IHN0YWNrSGFjayhzdGFja0ZyYW1lKQorI2RlZmluZSBTVFVCX0lOSVRfU1RBQ0tfRlJBTUUoc3Rh
Y2tGcmFtZSkgSklUU3RhY2tGcmFtZSYgc3RhY2tGcmFtZSA9ICpyZWludGVycHJldF9jYXN0X3B0
cjxKSVRTdGFja0ZyYW1lKj4oU1RVQl9BUkdTKTsgU3RhY2tIYWNrIHN0YWNrSGFjayhzdGFja0Zy
YW1lKQogI2RlZmluZSBTVFVCX1NFVF9SRVRVUk5fQUREUkVTUyhyZXR1cm5BZGRyZXNzKSBzdGFj
a0hhY2suc2F2ZWRSZXR1cm5BZGRyZXNzID0gUmV0dXJuQWRkcmVzc1B0cihyZXR1cm5BZGRyZXNz
KQogI2RlZmluZSBTVFVCX1JFVFVSTl9BRERSRVNTIHN0YWNrSGFjay5zYXZlZFJldHVybkFkZHJl
c3MKIAogI2Vsc2UKIAotI2RlZmluZSBTVFVCX0lOSVRfU1RBQ0tfRlJBTUUoc3RhY2tGcmFtZSkg
SklUU3RhY2tGcmFtZSYgc3RhY2tGcmFtZSA9ICpyZWludGVycHJldF9jYXN0PEpJVFN0YWNrRnJh
bWUqPihTVFVCX0FSR1MpCisjZGVmaW5lIFNUVUJfSU5JVF9TVEFDS19GUkFNRShzdGFja0ZyYW1l
KSBKSVRTdGFja0ZyYW1lJiBzdGFja0ZyYW1lID0gKnJlaW50ZXJwcmV0X2Nhc3RfcHRyPEpJVFN0
YWNrRnJhbWUqPihTVFVCX0FSR1MpCiAjZGVmaW5lIFNUVUJfU0VUX1JFVFVSTl9BRERSRVNTKHJl
dHVybkFkZHJlc3MpICpzdGFja0ZyYW1lLnJldHVybkFkZHJlc3NTbG90KCkgPSBSZXR1cm5BZGRy
ZXNzUHRyKHJldHVybkFkZHJlc3MpCiAjZGVmaW5lIFNUVUJfUkVUVVJOX0FERFJFU1MgKnN0YWNr
RnJhbWUucmV0dXJuQWRkcmVzc1Nsb3QoKQogCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9w
Y3JlL3BjcmVfY29tcGlsZS5jcHAgYi9KYXZhU2NyaXB0Q29yZS9wY3JlL3BjcmVfY29tcGlsZS5j
cHAKaW5kZXggZWE2ZTQ0Yy4uOWQ0NzJkOCAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcGNy
ZS9wY3JlX2NvbXBpbGUuY3BwCisrKyBiL0phdmFTY3JpcHRDb3JlL3BjcmUvcGNyZV9jb21waWxl
LmNwcApAQCAtNDksNiArNDksNyBAQCBzdXBwb3J0aW5nIGludGVybmFsIGZ1bmN0aW9ucyB0aGF0
IGFyZSBub3QgdXNlZCBieSBvdGhlciBtb2R1bGVzLiAqLwogI2luY2x1ZGUgPHd0Zi9BU0NJSUNU
eXBlLmg+CiAjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4KICNpbmNsdWRlIDx3dGYvRml4ZWRB
cnJheS5oPgorI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIAogdXNpbmcgbmFtZXNwYWNl
IFdURjsKIApAQCAtMjU5MCw3ICsyNTkxLDcgQEAgSlNSZWdFeHAqIGpzUmVnRXhwQ29tcGlsZShj
b25zdCBVQ2hhciogcGF0dGVybiwgaW50IHBhdHRlcm5MZW5ndGgsCiAgICAgc2l6ZV90IHN0cmlu
Z09mZnNldCA9IChzaXplICsgc2l6ZW9mKFVDaGFyKSAtIDEpIC8gc2l6ZW9mKFVDaGFyKSAqIHNp
emVvZihVQ2hhcik7CiAgICAgc2l6ZSA9IHN0cmluZ09mZnNldCArIHBhdHRlcm5MZW5ndGggKiBz
aXplb2YoVUNoYXIpOwogI2VuZGlmCi0gICAgSlNSZWdFeHAqIHJlID0gcmVpbnRlcnByZXRfY2Fz
dDxKU1JlZ0V4cCo+KG5ldyBjaGFyW3NpemVdKTsKKyAgICBKU1JlZ0V4cCogcmUgPSByZWludGVy
cHJldF9jYXN0X3B0cjxKU1JlZ0V4cCo+KG5ldyBjaGFyW3NpemVdKTsKICAgICAKICAgICBpZiAo
IXJlKQogICAgICAgICByZXR1cm4gcmV0dXJuRXJyb3IoRVJSMTMsIGVycm9yUHRyKTsKZGlmZiAt
LWdpdCBhL0phdmFTY3JpcHRDb3JlL3d0Zi9GYXN0TWFsbG9jLmNwcCBiL0phdmFTY3JpcHRDb3Jl
L3d0Zi9GYXN0TWFsbG9jLmNwcAppbmRleCA5ZGZiYzZiLi5hZTdkZjllIDEwMDY0NAotLS0gYS9K
YXZhU2NyaXB0Q29yZS93dGYvRmFzdE1hbGxvYy5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvd3Rm
L0Zhc3RNYWxsb2MuY3BwCkBAIC04Miw2ICs4Miw3IEBACiAjaWYgRU5BQkxFKEpTQ19NVUxUSVBM
RV9USFJFQURTKQogI2luY2x1ZGUgPHB0aHJlYWQuaD4KICNlbmRpZgorI2luY2x1ZGUgPHd0Zi9T
dGRMaWJFeHRyYXMuaD4KIAogI2lmbmRlZiBOT19UQ01BTExPQ19TQU1QTEVTCiAjaWZkZWYgV1RG
X0NIQU5HRVMKQEAgLTEwMTUsNyArMTAxNiw3IEBAIGNsYXNzIFBhZ2VIZWFwQWxsb2NhdG9yIHsK
ICAgICAgICAgaWYgKCFuZXdfYWxsb2NhdGlvbikKICAgICAgICAgICBDUkFTSCgpOwogCi0gICAg
ICAgICoodm9pZCoqKW5ld19hbGxvY2F0aW9uID0gYWxsb2NhdGVkX3JlZ2lvbnNfOworICAgICAg
ICAqcmVpbnRlcnByZXRfY2FzdF9wdHI8dm9pZCoqPihuZXdfYWxsb2NhdGlvbikgPSBhbGxvY2F0
ZWRfcmVnaW9uc187CiAgICAgICAgIGFsbG9jYXRlZF9yZWdpb25zXyA9IG5ld19hbGxvY2F0aW9u
OwogICAgICAgICBmcmVlX2FyZWFfID0gbmV3X2FsbG9jYXRpb24gKyBrQWxpZ25lZFNpemU7CiAg
ICAgICAgIGZyZWVfYXZhaWxfID0ga0FsbG9jSW5jcmVtZW50IC0ga0FsaWduZWRTaXplOwpAQCAt
MjcxMCw3ICsyNzExLDcgQEAgQUxXQVlTX0lOTElORSB2b2lkIFRDTWFsbG9jX0NlbnRyYWxfRnJl
ZUxpc3Q6OlBvcHVsYXRlKCkgewogICBjaGFyKiBucHRyOwogICB3aGlsZSAoKG5wdHIgPSBwdHIg
KyBzaXplKSA8PSBsaW1pdCkgewogICAgICp0YWlsID0gcHRyOwotICAgIHRhaWwgPSByZWludGVy
cHJldF9jYXN0PHZvaWQqKj4ocHRyKTsKKyAgICB0YWlsID0gcmVpbnRlcnByZXRfY2FzdF9wdHI8
dm9pZCoqPihwdHIpOwogICAgIHB0ciA9IG5wdHI7CiAgICAgbnVtKys7CiAgIH0KZGlmZiAtLWdp
dCBhL0phdmFTY3JpcHRDb3JlL3d0Zi9NRDUuY3BwIGIvSmF2YVNjcmlwdENvcmUvd3RmL01ENS5j
cHAKaW5kZXggZTk5NTEwMi4uMzc1NDQ2ZSAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvd3Rm
L01ENS5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvd3RmL01ENS5jcHAKQEAgLTU0LDYgKzU0LDcg
QEAKICNpbmNsdWRlICJTdHJpbmdFeHRyYXMuaCIKICNpbmNsdWRlICJ0ZXh0L0NTdHJpbmcuaCIK
ICNlbmRpZgorI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIAogbmFtZXNwYWNlIFdURiB7
CiAKQEAgLTEwMyw3ICsxMDQsNyBAQCBzdGF0aWMgdm9pZCByZXZlcnNlQnl0ZXModWludDhfdCog
YnVmLCB1bnNpZ25lZCBsb25ncykKICAgICBkbyB7CiAgICAgICAgIHVpbnQzMl90IHQgPSBzdGF0
aWNfY2FzdDx1aW50MzJfdD4oYnVmWzNdIDw8IDggfCBidWZbMl0pIDw8IDE2IHwgYnVmWzFdIDw8
IDggfCBidWZbMF07CiAgICAgICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoIShyZWludGVycHJldF9j
YXN0PHVpbnRwdHJfdD4oYnVmKSAlIHNpemVvZih0KSksICJhbGlnbm1lbnQgZXJyb3Igb2YgYnVm
Iik7Ci0gICAgICAgICpyZWludGVycHJldF9jYXN0PHVpbnQzMl90ICo+KGJ1ZikgPSB0OworICAg
ICAgICAqcmVpbnRlcnByZXRfY2FzdF9wdHI8dWludDMyX3QgKj4oYnVmKSA9IHQ7CiAgICAgICAg
IGJ1ZiArPSA0OwogICAgIH0gd2hpbGUgKC0tbG9uZ3MpOwogfQpAQCAtMjM4LDcgKzIzOSw3IEBA
IHZvaWQgTUQ1OjphZGRCeXRlcyhjb25zdCB1aW50OF90KiBpbnB1dCwgc2l6ZV90IGxlbmd0aCkK
ICAgICAgICAgfQogICAgICAgICBtZW1jcHkocCwgYnVmLCB0KTsKICAgICAgICAgcmV2ZXJzZUJ5
dGVzKG1faW4sIDE2KTsKLSAgICAgICAgTUQ1VHJhbnNmb3JtKG1fYnVmLCByZWludGVycHJldF9j
YXN0PHVpbnQzMl90Kj4obV9pbikpOyAvLyBtX2luIGlzIDQtYnl0ZSBhbGlnbmVkLgorICAgICAg
ICBNRDVUcmFuc2Zvcm0obV9idWYsIHJlaW50ZXJwcmV0X2Nhc3RfcHRyPHVpbnQzMl90Kj4obV9p
bikpOyAvLyBtX2luIGlzIDQtYnl0ZSBhbGlnbmVkLgogICAgICAgICBidWYgKz0gdDsKICAgICAg
ICAgbGVuZ3RoIC09IHQ7CiAgICAgfQpAQCAtMjQ4LDcgKzI0OSw3IEBAIHZvaWQgTUQ1OjphZGRC
eXRlcyhjb25zdCB1aW50OF90KiBpbnB1dCwgc2l6ZV90IGxlbmd0aCkKICAgICB3aGlsZSAobGVu
Z3RoID49IDY0KSB7CiAgICAgICAgIG1lbWNweShtX2luLCBidWYsIDY0KTsKICAgICAgICAgcmV2
ZXJzZUJ5dGVzKG1faW4sIDE2KTsKLSAgICAgICAgTUQ1VHJhbnNmb3JtKG1fYnVmLCByZWludGVy
cHJldF9jYXN0PHVpbnQzMl90Kj4obV9pbikpOyAvLyBtX2luIGlzIDQtYnl0ZSBhbGlnbmVkLgor
ICAgICAgICBNRDVUcmFuc2Zvcm0obV9idWYsIHJlaW50ZXJwcmV0X2Nhc3RfcHRyPHVpbnQzMl90
Kj4obV9pbikpOyAvLyBtX2luIGlzIDQtYnl0ZSBhbGlnbmVkLgogICAgICAgICBidWYgKz0gNjQ7
CiAgICAgICAgIGxlbmd0aCAtPSA2NDsKICAgICB9CkBAIC0yNzUsNyArMjc2LDcgQEAgdm9pZCBN
RDU6OmNoZWNrc3VtKFZlY3Rvcjx1aW50OF90LCAxNj4mIGRpZ2VzdCkKICAgICAgICAgLy8gVHdv
IGxvdHMgb2YgcGFkZGluZzogIFBhZCB0aGUgZmlyc3QgYmxvY2sgdG8gNjQgYnl0ZXMKICAgICAg
ICAgbWVtc2V0KHAsIDAsIGNvdW50KTsKICAgICAgICAgcmV2ZXJzZUJ5dGVzKG1faW4sIDE2KTsK
LSAgICAgICAgTUQ1VHJhbnNmb3JtKG1fYnVmLCByZWludGVycHJldF9jYXN0PHVpbnQzMl90ICo+
KG1faW4pKTsgLy8gbV9pbiBpcyA0LWJ5dGUgYWxpZ25lZC4KKyAgICAgICAgTUQ1VHJhbnNmb3Jt
KG1fYnVmLCByZWludGVycHJldF9jYXN0X3B0cjx1aW50MzJfdCAqPihtX2luKSk7IC8vIG1faW4g
aXMgNC1ieXRlIGFsaWduZWQuCiAKICAgICAgICAgLy8gTm93IGZpbGwgdGhlIG5leHQgYmxvY2sg
d2l0aCA1NiBieXRlcwogICAgICAgICBtZW1zZXQobV9pbiwgMCwgNTYpOwpAQCAtMjg3LDEwICsy
ODgsMTAgQEAgdm9pZCBNRDU6OmNoZWNrc3VtKFZlY3Rvcjx1aW50OF90LCAxNj4mIGRpZ2VzdCkK
IAogICAgIC8vIEFwcGVuZCBsZW5ndGggaW4gYml0cyBhbmQgdHJhbnNmb3JtCiAgICAgLy8gbV9p
biBpcyA0LWJ5dGUgYWxpZ25lZC4KLSAgICAocmVpbnRlcnByZXRfY2FzdDx1aW50MzJfdCo+KG1f
aW4pKVsxNF0gPSBtX2JpdHNbMF07Ci0gICAgKHJlaW50ZXJwcmV0X2Nhc3Q8dWludDMyX3QqPiht
X2luKSlbMTVdID0gbV9iaXRzWzFdOworICAgIChyZWludGVycHJldF9jYXN0X3B0cjx1aW50MzJf
dCo+KG1faW4pKVsxNF0gPSBtX2JpdHNbMF07CisgICAgKHJlaW50ZXJwcmV0X2Nhc3RfcHRyPHVp
bnQzMl90Kj4obV9pbikpWzE1XSA9IG1fYml0c1sxXTsKIAotICAgIE1ENVRyYW5zZm9ybShtX2J1
ZiwgcmVpbnRlcnByZXRfY2FzdDx1aW50MzJfdCo+KG1faW4pKTsKKyAgICBNRDVUcmFuc2Zvcm0o
bV9idWYsIHJlaW50ZXJwcmV0X2Nhc3RfcHRyPHVpbnQzMl90Kj4obV9pbikpOwogICAgIHJldmVy
c2VCeXRlcyhyZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihtX2J1ZiksIDQpOwogCiAgICAgLy8g
Tm93LCBtX2J1ZiBjb250YWlucyBjaGVja3N1bSByZXN1bHQuCmRpZmYgLS1naXQgYS9KYXZhU2Ny
aXB0Q29yZS93dGYvU3RkTGliRXh0cmFzLmggYi9KYXZhU2NyaXB0Q29yZS93dGYvU3RkTGliRXh0
cmFzLmgKaW5kZXggOTZhOTI5Yy4uNmM3ZWE5NCAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUv
d3RmL1N0ZExpYkV4dHJhcy5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3d0Zi9TdGRMaWJFeHRyYXMu
aApAQCAtNTEsNiArNTEsMzMgQEAKICNkZWZpbmUgU1RSSU5HSVpFKGV4cCkgI2V4cAogI2RlZmlu
ZSBTVFJJTkdJWkVfVkFMVUVfT0YoZXhwKSBTVFJJTkdJWkUoZXhwKQogCisvKgorICogVGhlIHJl
aW50ZXJwcmV0X2Nhc3Q8VHlwZTEqPihbcG9pbnRlciB0byBUeXBlMl0pIGV4cHJlc3Npb25zIC0g
d2hlcmUKKyAqIHNpemVvZihUeXBlMSkgPiBzaXplb2YoVHlwZTIpIC0gY2F1c2UgdGhlIGZvbGxv
d2luZyB3YXJuaW5nIG9uIEFSTSB3aXRoIEdDQzoKKyAqIGluY3JlYXNlcyByZXF1aXJlZCBhbGln
bm1lbnQgb2YgdGFyZ2V0IHR5cGUuCisgKgorICogQW4gaW1wbGljaXQgb3IgYW4gZXh0cmEgc3Rh
dGljX2Nhc3Q8dm9pZCo+IGJ5cGFzc2VzIHRoZSB3YXJuaW5nLgorICogRm9yIG1vcmUgaW5mbyBz
ZWUgdGhlIGZvbGxvd2luZyBidWd6aWxsYSBlbnRyaWVzOgorICogLSBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzgwNDUKKyAqIC0gaHR0cDovL2djYy5nbnUub3JnL2J1
Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD00Mzk3NgorICovCisjaWYgQ1BVKEFSTSkgJiYgQ09NUElM
RVIoR0NDKQordGVtcGxhdGU8dHlwZW5hbWUgVD4KK1QgcmVpbnRlcnByZXRfY2FzdF9wdHIodm9p
ZCogcHRyKQoreworICAgIEFTU0VSVCghKHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQgaW50Pihw
dHIpICUgX19hbGlnbm9mX18oVCkpKTsKKyAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxUPihw
dHIpOworfQordGVtcGxhdGU8dHlwZW5hbWUgVD4KK1QgcmVpbnRlcnByZXRfY2FzdF9wdHIoY29u
c3Qgdm9pZCogcHRyKQoreworICAgIEFTU0VSVCghKHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQg
aW50PihwdHIpICUgX19hbGlnbm9mX18oVCkpKTsKKyAgICByZXR1cm4gcmVpbnRlcnByZXRfY2Fz
dDxUPihwdHIpOworfQorI2Vsc2UKKyNkZWZpbmUgcmVpbnRlcnByZXRfY2FzdF9wdHIgcmVpbnRl
cnByZXRfY2FzdAorI2VuZGlmCisKIG5hbWVzcGFjZSBXVEYgewogCiAgICAgLyoKZGlmZiAtLWdp
dCBhL0phdmFTY3JpcHRDb3JlL3d0Zi9WZWN0b3IuaCBiL0phdmFTY3JpcHRDb3JlL3d0Zi9WZWN0
b3IuaAppbmRleCBjNjBkZTE1Li5mNzM3OTNmIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS93
dGYvVmVjdG9yLmgKKysrIGIvSmF2YVNjcmlwdENvcmUvd3RmL1ZlY3Rvci5oCkBAIC0yNCw2ICsy
NCw3IEBACiAjaW5jbHVkZSAiRmFzdEFsbG9jQmFzZS5oIgogI2luY2x1ZGUgIk5vbmNvcHlhYmxl
LmgiCiAjaW5jbHVkZSAiTm90Rm91bmQuaCIKKyNpbmNsdWRlICJTdGRMaWJFeHRyYXMuaCIKICNp
bmNsdWRlICJWYWx1ZUNoZWNrLmgiCiAjaW5jbHVkZSAiVmVjdG9yVHJhaXRzLmgiCiAjaW5jbHVk
ZSA8bGltaXRzPgpAQCAtNDgxLDcgKzQ4Miw3IEBAIG5hbWVzcGFjZSBXVEYgewogICAgICAgICB1
c2luZyBCYXNlOjptX2NhcGFjaXR5OwogCiAgICAgICAgIHN0YXRpYyBjb25zdCBzaXplX3QgbV9p
bmxpbmVCdWZmZXJTaXplID0gaW5saW5lQ2FwYWNpdHkgKiBzaXplb2YoVCk7Ci0gICAgICAgIFQq
IGlubGluZUJ1ZmZlcigpIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8VCo+KG1faW5saW5lQnVm
ZmVyLmJ1ZmZlcik7IH0KKyAgICAgICAgVCogaW5saW5lQnVmZmVyKCkgeyByZXR1cm4gcmVpbnRl
cnByZXRfY2FzdF9wdHI8VCo+KG1faW5saW5lQnVmZmVyLmJ1ZmZlcik7IH0KIAogICAgICAgICBB
bGlnbmVkQnVmZmVyPG1faW5saW5lQnVmZmVyU2l6ZSwgV1RGX0FMSUdOX09GKFQpPiBtX2lubGlu
ZUJ1ZmZlcjsKICAgICB9OwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvd3RmL3F0L1N0cmlu
Z1F0LmNwcCBiL0phdmFTY3JpcHRDb3JlL3d0Zi9xdC9TdHJpbmdRdC5jcHAKaW5kZXggYjJjNjIx
YS4uMTcxZDUzMiAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvd3RmL3F0L1N0cmluZ1F0LmNw
cAorKysgYi9KYXZhU2NyaXB0Q29yZS93dGYvcXQvU3RyaW5nUXQuY3BwCkBAIC0yNSw2ICsyNSw3
IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKIAorI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogI2luY2x1ZGUgPFFTdHJpbmc+
CkBAIC0zNiwxNCArMzcsMTQgQEAgU3RyaW5nOjpTdHJpbmcoY29uc3QgUVN0cmluZyYgcXN0cikK
IHsKICAgICBpZiAocXN0ci5pc051bGwoKSkKICAgICAgICAgcmV0dXJuOwotICAgIG1faW1wbCA9
IFN0cmluZ0ltcGw6OmNyZWF0ZShyZWludGVycHJldF9jYXN0PGNvbnN0IFVDaGFyKj4ocXN0ci5j
b25zdERhdGEoKSksIHFzdHIubGVuZ3RoKCkpOworICAgIG1faW1wbCA9IFN0cmluZ0ltcGw6OmNy
ZWF0ZShyZWludGVycHJldF9jYXN0X3B0cjxjb25zdCBVQ2hhcio+KHFzdHIuY29uc3REYXRhKCkp
LCBxc3RyLmxlbmd0aCgpKTsKIH0KIAogU3RyaW5nOjpTdHJpbmcoY29uc3QgUVN0cmluZ1JlZiYg
cmVmKQogewogICAgIGlmICghcmVmLnN0cmluZygpKQogICAgICAgICByZXR1cm47Ci0gICAgbV9p
bXBsID0gU3RyaW5nSW1wbDo6Y3JlYXRlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgVUNoYXIqPihy
ZWYudW5pY29kZSgpKSwgcmVmLmxlbmd0aCgpKTsKKyAgICBtX2ltcGwgPSBTdHJpbmdJbXBsOjpj
cmVhdGUocmVpbnRlcnByZXRfY2FzdF9wdHI8Y29uc3QgVUNoYXIqPihyZWYudW5pY29kZSgpKSwg
cmVmLmxlbmd0aCgpKTsKIH0KIAogU3RyaW5nOjpvcGVyYXRvciBRU3RyaW5nKCkgY29uc3QKLS0g
CjEuNy4wLjQKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63215</attachid>
            <date>2010-08-02 07:08:46 -0700</date>
            <delta_ts>2010-08-13 01:07:36 -0700</delta_ts>
            <desc>Avoid increasing required alignment of target type warning on ARM (v2)</desc>
            <filename>0001-Avoid-increasing-required-alignment-of-target-type-w.patch</filename>
            <type>text/plain</type>
            <size>17144</size>
            <attacher name="Gabor Loki">loki</attacher>
            
              <data encoding="base64">RnJvbSBmMmI0MDBlYmNmOTQ2NmRlODNiZDc1OWI1ZTk5ZmM5NmU1Y2I0MmNiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBHYWJvciBMb2tpIDxsb2tpQGluZi51LXN6ZWdlZC5odT4KRGF0
ZTogTW9uLCAyIEF1ZyAyMDEwIDE1OjQ2OjU3ICswMjAwClN1YmplY3Q6IFtQQVRDSF0gQXZvaWQg
aW5jcmVhc2luZyByZXF1aXJlZCBhbGlnbm1lbnQgb2YgdGFyZ2V0IHR5cGUgd2FybmluZyBvbiBB
Uk0KClNpZ25lZC1vZmYtYnk6IEdhYm9yIExva2kgPGxva2lAaW5mLnUtc3plZ2VkLmh1PgotLS0K
IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICB8ICAgMzYgKysrKysr
KysrKysrKysrKysrKysrKysrKysrKwogSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTUFzc2Vt
Ymxlci5jcHAgIHwgICAgNCArLQogSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0Fzc2VtYmxlckJ1
ZmZlci5oIHwgICAgNyArKystLQogSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcCAgICAg
ICAgICAgIHwgICAgNCArLQogSmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlX2NvbXBpbGUuY3BwICAg
ICAgIHwgICAgMyArLQogSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcCAgICAgICAg
IHwgICAxMCArKysrLS0tLQogSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmggICAgICAg
ICAgIHwgICAgMiArLQogSmF2YVNjcmlwdENvcmUvd3RmL0Zhc3RNYWxsb2MuY3BwICAgICAgICAg
IHwgICAgNSArKy0KIEphdmFTY3JpcHRDb3JlL3d0Zi9NRDUuY3BwICAgICAgICAgICAgICAgICB8
ICAgMTUgKysrKysrLS0tLS0KIEphdmFTY3JpcHRDb3JlL3d0Zi9TdGRMaWJFeHRyYXMuaCAgICAg
ICAgICB8ICAgMzQgKysrKysrKysrKysrKysrKysrKysrKysrKysKIEphdmFTY3JpcHRDb3JlL3d0
Zi9WZWN0b3IuaCAgICAgICAgICAgICAgICB8ICAgIDMgKy0KIEphdmFTY3JpcHRDb3JlL3d0Zi9x
dC9TdHJpbmdRdC5jcHAgICAgICAgICB8ICAgIDUgKystCiAxMiBmaWxlcyBjaGFuZ2VkLCAxMDIg
aW5zZXJ0aW9ucygrKSwgMjYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDIyNDQ0MzIuLjM2
MzUyNDYgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9KYXZhU2Ny
aXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOSBAQAorMjAxMC0wOC0wMiAgR2Fib3IgTG9r
aSAgPGxva2lAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBdm9pZCBpbmNyZWFzaW5nIHJlcXVpcmVkIGFsaWdubWVudCBvZiB0YXJn
ZXQgdHlwZSB3YXJuaW5nIG9uIEFSTQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MzgwNDUKKworICAgICAgICBUaGUgcmVpbnRlcnByZXRfY2FzdDxUeXBl
MSo+KFtwb2ludGVyIHRvIFR5cGUyXSkgZXhwcmVzc2lvbnMgLSB3aGVyZQorICAgICAgICBzaXpl
b2YoVHlwZTEpID4gc2l6ZW9mKFR5cGUyKSAtIGNhdXNlIHRoZSBmb2xsb3dpbmcgd2FybmluZyBv
biBBUk06CisgICAgICAgIGluY3JlYXNlcyByZXF1aXJlZCBhbGlnbm1lbnQgb2YgdGFyZ2V0IHR5
cGUgd2FybmluZ3MuCisgICAgICAgIENhc3RpbmcgdGhlIHR5cGUgb2YgW3BvaW50ZXIgdG8gVHlw
ZTJdIG9iamVjdCB0byB2b2lkKiBieXBhc3NlcyB0aGUKKyAgICAgICAgd2FybmluZy4KKworICAg
ICAgICAqIGFzc2VtYmxlci9BUk1Bc3NlbWJsZXIuY3BwOgorICAgICAgICAoSlNDOjpBUk1Bc3Nl
bWJsZXI6OmV4ZWN1dGFibGVDb3B5KToKKyAgICAgICAgKiBhc3NlbWJsZXIvQXNzZW1ibGVyQnVm
ZmVyLmg6CisgICAgICAgIChKU0M6OkFzc2VtYmxlckJ1ZmZlcjo6cHV0U2hvcnRVbmNoZWNrZWQp
OgorICAgICAgICAoSlNDOjpBc3NlbWJsZXJCdWZmZXI6OnB1dEludFVuY2hlY2tlZCk6CisgICAg
ICAgIChKU0M6OkFzc2VtYmxlckJ1ZmZlcjo6cHV0SW50NjRVbmNoZWNrZWQpOgorICAgICAgICAq
IGppdC9KSVRTdHVicy5jcHA6CisgICAgICAgICogcGNyZS9wY3JlX2NvbXBpbGUuY3BwOgorICAg
ICAgICAoanNSZWdFeHBDb21waWxlKToKKyAgICAgICAgKiB3dGYvRmFzdE1hbGxvYy5jcHA6Cisg
ICAgICAgIChXVEY6OlBhZ2VIZWFwQWxsb2NhdG9yOjpOZXcpOgorICAgICAgICAoV1RGOjpUQ01h
bGxvY19DZW50cmFsX0ZyZWVMaXN0OjpQb3B1bGF0ZSk6CisgICAgICAgICogd3RmL01ENS5jcHA6
CisgICAgICAgIChXVEY6OnJldmVyc2VCeXRlcyk6CisgICAgICAgIChXVEY6Ok1ENTo6YWRkQnl0
ZXMpOgorICAgICAgICAoV1RGOjpNRDU6OmNoZWNrc3VtKToKKyAgICAgICAgKiB3dGYvU3RkTGli
RXh0cmFzLmg6CisgICAgICAgIChyZWludGVycHJldF9jYXN0X3B0cik6CisgICAgICAgICogd3Rm
L1ZlY3Rvci5oOgorICAgICAgICAoV1RGOjpWZWN0b3JCdWZmZXI6OmlubGluZUJ1ZmZlcik6Cisg
ICAgICAgICogd3RmL3F0L1N0cmluZ1F0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0cmluZzo6
U3RyaW5nKToKKwogMjAxMC0wNy0zMCAgTHVpeiBBZ29zdGluaSAgPGx1aXouYWdvc3RpbmlAb3Bl
bmJvc3NhLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCmRpZmYgLS1n
aXQgYS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNQXNzZW1ibGVyLmNwcCBiL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9BUk1Bc3NlbWJsZXIuY3BwCmluZGV4IDAwMTY1NDAuLjg2YTFjMTQg
MTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk1Bc3NlbWJsZXIuY3BwCisr
KyBiL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk1Bc3NlbWJsZXIuY3BwCkBAIC0zNTUsMTEg
KzM1NSwxMSBAQCB2b2lkKiBBUk1Bc3NlbWJsZXI6OmV4ZWN1dGFibGVDb3B5KEV4ZWN1dGFibGVQ
b29sKiBhbGxvY2F0b3IpCiAgICAgZm9yIChKdW1wczo6SXRlcmF0b3IgaXRlciA9IG1fanVtcHMu
YmVnaW4oKTsgaXRlciAhPSBtX2p1bXBzLmVuZCgpOyArK2l0ZXIpIHsKICAgICAgICAgLy8gVGhl
IGxhc3QgYml0IGlzIHNldCBpZiB0aGUgY29uc3RhbnQgbXVzdCBiZSBwbGFjZWQgb24gY29uc3Rh
bnQgcG9vbC4KICAgICAgICAgaW50IHBvcyA9ICgqaXRlcikgJiAofjB4MSk7Ci0gICAgICAgIEFS
TVdvcmQqIGxkckFkZHIgPSByZWludGVycHJldF9jYXN0PEFSTVdvcmQqPihkYXRhICsgcG9zKTsK
KyAgICAgICAgQVJNV29yZCogbGRyQWRkciA9IHJlaW50ZXJwcmV0X2Nhc3RfcHRyPEFSTVdvcmQq
PihkYXRhICsgcG9zKTsKICAgICAgICAgQVJNV29yZCogYWRkciA9IGdldExkckltbUFkZHJlc3Mo
bGRyQWRkcik7CiAgICAgICAgIGlmICgqYWRkciAhPSBJbnZhbGlkQnJhbmNoVGFyZ2V0KSB7CiAg
ICAgICAgICAgICBpZiAoISgqaXRlciAmIDEpKSB7Ci0gICAgICAgICAgICAgICAgaW50IGRpZmYg
PSByZWludGVycHJldF9jYXN0PEFSTVdvcmQqPihkYXRhICsgKmFkZHIpIC0gKGxkckFkZHIgKyBE
ZWZhdWx0UHJlZmV0Y2hpbmcpOworICAgICAgICAgICAgICAgIGludCBkaWZmID0gcmVpbnRlcnBy
ZXRfY2FzdF9wdHI8QVJNV29yZCo+KGRhdGEgKyAqYWRkcikgLSAobGRyQWRkciArIERlZmF1bHRQ
cmVmZXRjaGluZyk7CiAKICAgICAgICAgICAgICAgICBpZiAoKGRpZmYgPD0gQk9GRlNFVF9NQVgg
JiYgZGlmZiA+PSBCT0ZGU0VUX01JTikpIHsKICAgICAgICAgICAgICAgICAgICAgKmxkckFkZHIg
PSBCIHwgZ2V0Q29uZGl0aW9uYWxGaWVsZCgqbGRyQWRkcikgfCAoZGlmZiAmIEJSQU5DSF9NQVNL
KTsKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9Bc3NlbWJsZXJCdWZmZXIu
aCBiL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9Bc3NlbWJsZXJCdWZmZXIuaAppbmRleCAxMWUw
ZGYwLi4wNDU0YTk5IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQXNzZW1i
bGVyQnVmZmVyLmgKKysrIGIvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0Fzc2VtYmxlckJ1ZmZl
ci5oCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSA8aml0L0V4ZWN1dGFibGVBbGxvY2F0b3Iu
aD4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9j
Lmg+CisjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogCiBuYW1lc3BhY2UgSlNDIHsKIApA
QCAtODEsNyArODIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBwdXRTaG9ydFVu
Y2hlY2tlZChpbnQgdmFsdWUpCiAgICAgICAgIHsKICAgICAgICAgICAgIEFTU0VSVCghKG1fc2l6
ZSA+IG1fY2FwYWNpdHkgLSA0KSk7Ci0gICAgICAgICAgICAqcmVpbnRlcnByZXRfY2FzdDxzaG9y
dCo+KCZtX2J1ZmZlclttX3NpemVdKSA9IHZhbHVlOworICAgICAgICAgICAgKnJlaW50ZXJwcmV0
X2Nhc3RfcHRyPHNob3J0Kj4oJm1fYnVmZmVyW21fc2l6ZV0pID0gdmFsdWU7CiAgICAgICAgICAg
ICBtX3NpemUgKz0gMjsKICAgICAgICAgfQogCkBAIC05NSwxNCArOTYsMTQgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgICAgIHZvaWQgcHV0SW50VW5jaGVja2VkKGludCB2YWx1ZSkKICAgICAgICAg
ewogICAgICAgICAgICAgQVNTRVJUKCEobV9zaXplID4gbV9jYXBhY2l0eSAtIDQpKTsKLSAgICAg
ICAgICAgICpyZWludGVycHJldF9jYXN0PGludCo+KCZtX2J1ZmZlclttX3NpemVdKSA9IHZhbHVl
OworICAgICAgICAgICAgKnJlaW50ZXJwcmV0X2Nhc3RfcHRyPGludCo+KCZtX2J1ZmZlclttX3Np
emVdKSA9IHZhbHVlOwogICAgICAgICAgICAgbV9zaXplICs9IDQ7CiAgICAgICAgIH0KIAogICAg
ICAgICB2b2lkIHB1dEludDY0VW5jaGVja2VkKGludDY0X3QgdmFsdWUpCiAgICAgICAgIHsKICAg
ICAgICAgICAgIEFTU0VSVCghKG1fc2l6ZSA+IG1fY2FwYWNpdHkgLSA4KSk7Ci0gICAgICAgICAg
ICAqcmVpbnRlcnByZXRfY2FzdDxpbnQ2NF90Kj4oJm1fYnVmZmVyW21fc2l6ZV0pID0gdmFsdWU7
CisgICAgICAgICAgICAqcmVpbnRlcnByZXRfY2FzdF9wdHI8aW50NjRfdCo+KCZtX2J1ZmZlcltt
X3NpemVdKSA9IHZhbHVlOwogICAgICAgICAgICAgbV9zaXplICs9IDg7CiAgICAgICAgIH0KIApk
aWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcCBiL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRTdHVicy5jcHAKaW5kZXggZjA4OGI2ZS4uMTUwYTRhZiAxMDA2NDQKLS0tIGEv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUU3R1YnMuY3BwCkBAIC05ODYsMTMgKzk4NiwxMyBAQCBzdHJ1Y3QgU3RhY2tIYWNrIHsKICAg
ICBSZXR1cm5BZGRyZXNzUHRyIHNhdmVkUmV0dXJuQWRkcmVzczsKIH07CiAKLSNkZWZpbmUgU1RV
Ql9JTklUX1NUQUNLX0ZSQU1FKHN0YWNrRnJhbWUpIEpJVFN0YWNrRnJhbWUmIHN0YWNrRnJhbWUg
PSAqcmVpbnRlcnByZXRfY2FzdDxKSVRTdGFja0ZyYW1lKj4oU1RVQl9BUkdTKTsgU3RhY2tIYWNr
IHN0YWNrSGFjayhzdGFja0ZyYW1lKQorI2RlZmluZSBTVFVCX0lOSVRfU1RBQ0tfRlJBTUUoc3Rh
Y2tGcmFtZSkgSklUU3RhY2tGcmFtZSYgc3RhY2tGcmFtZSA9ICpyZWludGVycHJldF9jYXN0X3B0
cjxKSVRTdGFja0ZyYW1lKj4oU1RVQl9BUkdTKTsgU3RhY2tIYWNrIHN0YWNrSGFjayhzdGFja0Zy
YW1lKQogI2RlZmluZSBTVFVCX1NFVF9SRVRVUk5fQUREUkVTUyhyZXR1cm5BZGRyZXNzKSBzdGFj
a0hhY2suc2F2ZWRSZXR1cm5BZGRyZXNzID0gUmV0dXJuQWRkcmVzc1B0cihyZXR1cm5BZGRyZXNz
KQogI2RlZmluZSBTVFVCX1JFVFVSTl9BRERSRVNTIHN0YWNrSGFjay5zYXZlZFJldHVybkFkZHJl
c3MKIAogI2Vsc2UKIAotI2RlZmluZSBTVFVCX0lOSVRfU1RBQ0tfRlJBTUUoc3RhY2tGcmFtZSkg
SklUU3RhY2tGcmFtZSYgc3RhY2tGcmFtZSA9ICpyZWludGVycHJldF9jYXN0PEpJVFN0YWNrRnJh
bWUqPihTVFVCX0FSR1MpCisjZGVmaW5lIFNUVUJfSU5JVF9TVEFDS19GUkFNRShzdGFja0ZyYW1l
KSBKSVRTdGFja0ZyYW1lJiBzdGFja0ZyYW1lID0gKnJlaW50ZXJwcmV0X2Nhc3RfcHRyPEpJVFN0
YWNrRnJhbWUqPihTVFVCX0FSR1MpCiAjZGVmaW5lIFNUVUJfU0VUX1JFVFVSTl9BRERSRVNTKHJl
dHVybkFkZHJlc3MpICpzdGFja0ZyYW1lLnJldHVybkFkZHJlc3NTbG90KCkgPSBSZXR1cm5BZGRy
ZXNzUHRyKHJldHVybkFkZHJlc3MpCiAjZGVmaW5lIFNUVUJfUkVUVVJOX0FERFJFU1MgKnN0YWNr
RnJhbWUucmV0dXJuQWRkcmVzc1Nsb3QoKQogCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9w
Y3JlL3BjcmVfY29tcGlsZS5jcHAgYi9KYXZhU2NyaXB0Q29yZS9wY3JlL3BjcmVfY29tcGlsZS5j
cHAKaW5kZXggZWE2ZTQ0Yy4uOWQ0NzJkOCAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcGNy
ZS9wY3JlX2NvbXBpbGUuY3BwCisrKyBiL0phdmFTY3JpcHRDb3JlL3BjcmUvcGNyZV9jb21waWxl
LmNwcApAQCAtNDksNiArNDksNyBAQCBzdXBwb3J0aW5nIGludGVybmFsIGZ1bmN0aW9ucyB0aGF0
IGFyZSBub3QgdXNlZCBieSBvdGhlciBtb2R1bGVzLiAqLwogI2luY2x1ZGUgPHd0Zi9BU0NJSUNU
eXBlLmg+CiAjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4KICNpbmNsdWRlIDx3dGYvRml4ZWRB
cnJheS5oPgorI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIAogdXNpbmcgbmFtZXNwYWNl
IFdURjsKIApAQCAtMjU5MCw3ICsyNTkxLDcgQEAgSlNSZWdFeHAqIGpzUmVnRXhwQ29tcGlsZShj
b25zdCBVQ2hhciogcGF0dGVybiwgaW50IHBhdHRlcm5MZW5ndGgsCiAgICAgc2l6ZV90IHN0cmlu
Z09mZnNldCA9IChzaXplICsgc2l6ZW9mKFVDaGFyKSAtIDEpIC8gc2l6ZW9mKFVDaGFyKSAqIHNp
emVvZihVQ2hhcik7CiAgICAgc2l6ZSA9IHN0cmluZ09mZnNldCArIHBhdHRlcm5MZW5ndGggKiBz
aXplb2YoVUNoYXIpOwogI2VuZGlmCi0gICAgSlNSZWdFeHAqIHJlID0gcmVpbnRlcnByZXRfY2Fz
dDxKU1JlZ0V4cCo+KG5ldyBjaGFyW3NpemVdKTsKKyAgICBKU1JlZ0V4cCogcmUgPSByZWludGVy
cHJldF9jYXN0X3B0cjxKU1JlZ0V4cCo+KG5ldyBjaGFyW3NpemVdKTsKICAgICAKICAgICBpZiAo
IXJlKQogICAgICAgICByZXR1cm4gcmV0dXJuRXJyb3IoRVJSMTMsIGVycm9yUHRyKTsKZGlmZiAt
LWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAgYi9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQXJyYXkuY3BwCmluZGV4IDk5ZTFhMTAuLjY3OGQyMTcgMTAwNjQ0Ci0tLSBh
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0FycmF5LmNwcApAQCAtNDI0LDcgKzQyNCw3IEBAIE5FVkVSX0lOTElORSB2b2lk
IEpTQXJyYXk6OnB1dFNsb3dDYXNlKEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaSwgSlNWYWx1
ZSB2YWx1CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBzdG9yYWdlID0gcmVpbnRlcnBy
ZXRfY2FzdDxBcnJheVN0b3JhZ2UqPihiYXNlU3RvcmFnZSArIGJhc2VCaWFzKTsKKyAgICBzdG9y
YWdlID0gcmVpbnRlcnByZXRfY2FzdF9wdHI8QXJyYXlTdG9yYWdlKj4oYmFzZVN0b3JhZ2UgKyBi
YXNlQmlhcyk7CiAgICAgc2V0QXJyYXlTdG9yYWdlKHN0b3JhZ2UpOwogICAgIAogICAgIHVuc2ln
bmVkIHZlY3Rvckxlbmd0aCA9IG1fdmVjdG9yTGVuZ3RoOwpAQCAtNTczLDcgKzU3Myw3IEBAIGJv
b2wgSlNBcnJheTo6aW5jcmVhc2VWZWN0b3JMZW5ndGgodW5zaWduZWQgbmV3TGVuZ3RoKQogICAg
IGlmICghdHJ5RmFzdFJlYWxsb2MoYmFzZVN0b3JhZ2UsIHN0b3JhZ2VTaXplKG5ld1ZlY3Rvckxl
bmd0aCArIG1faW5kZXhCaWFzKSkuZ2V0VmFsdWUoYmFzZVN0b3JhZ2UpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgCi0gICAgc3RvcmFnZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8QXJyYXlTdG9y
YWdlKj4oYmFzZVN0b3JhZ2UgKyBiYXNlQmlhcyk7CisgICAgc3RvcmFnZSA9IHJlaW50ZXJwcmV0
X2Nhc3RfcHRyPEFycmF5U3RvcmFnZSo+KGJhc2VTdG9yYWdlICsgYmFzZUJpYXMpOwogICAgIHNl
dEFycmF5U3RvcmFnZShzdG9yYWdlKTsKIAogICAgIEpTVmFsdWUqIHZlY3RvciA9IG1fdmVjdG9y
OwpAQCAtNjA4LDcgKzYwOCw3IEBAIGJvb2wgSlNBcnJheTo6aW5jcmVhc2VWZWN0b3JQcmVmaXhM
ZW5ndGgodW5zaWduZWQgbmV3TGVuZ3RoKQogICAgIG1faW5kZXhCaWFzICs9IG5ld1ZlY3Rvckxl
bmd0aCAtIG5ld0xlbmd0aDsKICAgICBpbnQgbmV3U3RvcmFnZU9mZnNldCA9IG1faW5kZXhCaWFz
ICogc2l6ZW9mKEpTVmFsdWUpOwogICAgIAotICAgIG5ld1N0b3JhZ2UgPSByZWludGVycHJldF9j
YXN0PEFycmF5U3RvcmFnZSo+KG5ld0Jhc2VTdG9yYWdlICsgbmV3U3RvcmFnZU9mZnNldCk7Cisg
ICAgbmV3U3RvcmFnZSA9IHJlaW50ZXJwcmV0X2Nhc3RfcHRyPEFycmF5U3RvcmFnZSo+KG5ld0Jh
c2VTdG9yYWdlICsgbmV3U3RvcmFnZU9mZnNldCk7CiAgICAgCiAgICAgbWVtY3B5KG5ld1N0b3Jh
Z2UsIHN0b3JhZ2UsIHN0b3JhZ2VTaXplKDApKTsKICAgICBtZW1jcHkoJm5ld1N0b3JhZ2UtPm1f
dmVjdG9yW25ld0xlbmd0aCAtIG1fdmVjdG9yTGVuZ3RoXSwgJnN0b3JhZ2UtPm1fdmVjdG9yWzBd
LCBzdG9yYWdlLT5tX2xlbmd0aCAqIHNpemVvZihKU1ZhbHVlKSk7CkBAIC03ODgsNyArNzg4LDcg
QEAgdm9pZCBKU0FycmF5OjpzaGlmdENvdW50KEV4ZWNTdGF0ZSogZXhlYywgaW50IGNvdW50KQog
ICAgICAgICBpZiAobV92ZWN0b3JMZW5ndGgpIHsKICAgICAgICAgICAgIGNoYXIqIG5ld0Jhc2VT
dG9yYWdlID0gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oc3RvcmFnZSkgKyBjb3VudCAqIHNpemVv
ZihKU1ZhbHVlKTsKICAgICAgICAgICAgIG1lbW1vdmUobmV3QmFzZVN0b3JhZ2UsIHN0b3JhZ2Us
IHN0b3JhZ2VTaXplKDApKTsKLSAgICAgICAgICAgIHN0b3JhZ2UgPSByZWludGVycHJldF9jYXN0
PEFycmF5U3RvcmFnZSo+KG5ld0Jhc2VTdG9yYWdlKTsKKyAgICAgICAgICAgIHN0b3JhZ2UgPSBy
ZWludGVycHJldF9jYXN0X3B0cjxBcnJheVN0b3JhZ2UqPihuZXdCYXNlU3RvcmFnZSk7CiAKICAg
ICAgICAgICAgIG1faW5kZXhCaWFzICs9IGNvdW50OwogICAgICAgICAgICAgc2V0QXJyYXlTdG9y
YWdlKHN0b3JhZ2UpOwpAQCAtODI2LDcgKzgyNiw3IEBAIHZvaWQgSlNBcnJheTo6dW5zaGlmdENv
dW50KEV4ZWNTdGF0ZSogZXhlYywgaW50IGNvdW50KQogICAgICAgICBtX2luZGV4QmlhcyAtPSBj
b3VudDsKICAgICAgICAgY2hhciogbmV3QmFzZVN0b3JhZ2UgPSByZWludGVycHJldF9jYXN0PGNo
YXIqPihzdG9yYWdlKSAtIGNvdW50ICogc2l6ZW9mKEpTVmFsdWUpOwogICAgICAgICBtZW1tb3Zl
KG5ld0Jhc2VTdG9yYWdlLCBzdG9yYWdlLCBzdG9yYWdlU2l6ZSgwKSk7Ci0gICAgICAgIHN0b3Jh
Z2UgPSByZWludGVycHJldF9jYXN0PEFycmF5U3RvcmFnZSo+KG5ld0Jhc2VTdG9yYWdlKTsKKyAg
ICAgICAgc3RvcmFnZSA9IHJlaW50ZXJwcmV0X2Nhc3RfcHRyPEFycmF5U3RvcmFnZSo+KG5ld0Jh
c2VTdG9yYWdlKTsKICAgICAgICAgc2V0QXJyYXlTdG9yYWdlKHN0b3JhZ2UpOwogICAgICAgICBt
X3ZlY3Rvckxlbmd0aCArPSBjb3VudDsKICAgICB9IGVsc2UgaWYgKCghbV9pbmRleEJpYXMpICYm
ICghaW5jcmVhc2VWZWN0b3JQcmVmaXhMZW5ndGgobV92ZWN0b3JMZW5ndGggKyBjb3VudCkpKSB7
CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaCBiL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNBcnJheS5oCmluZGV4IGE3Y2UzMjguLjliZDQ2YzAgMTAwNjQ0Ci0t
LSBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5oCisrKyBiL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNBcnJheS5oCkBAIC0xNDEsNyArMTQxLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgIAogICAgICAgICBpbmxpbmUgQXJyYXlTdG9yYWdlICphcnJheVN0b3JhZ2UoKSBjb25z
dAogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxBcnJheVN0
b3JhZ2UqPihyZWludGVycHJldF9jYXN0PGNoYXIqPihtX3ZlY3RvcikgLSAoc2l6ZW9mKEFycmF5
U3RvcmFnZSkgLSBzaXplb2YoSlNWYWx1ZSkpKTsKKyAgICAgICAgICAgIHJldHVybiByZWludGVy
cHJldF9jYXN0X3B0cjxBcnJheVN0b3JhZ2UqPihyZWludGVycHJldF9jYXN0PGNoYXIqPihtX3Zl
Y3RvcikgLSAoc2l6ZW9mKEFycmF5U3RvcmFnZSkgLSBzaXplb2YoSlNWYWx1ZSkpKTsKICAgICAg
ICAgfQogCiAgICAgICAgIGlubGluZSB2b2lkIHNldEFycmF5U3RvcmFnZShBcnJheVN0b3JhZ2Ug
KnN0b3JhZ2UpCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS93dGYvRmFzdE1hbGxvYy5jcHAg
Yi9KYXZhU2NyaXB0Q29yZS93dGYvRmFzdE1hbGxvYy5jcHAKaW5kZXggOWRmYmM2Yi4uYWU3ZGY5
ZSAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvd3RmL0Zhc3RNYWxsb2MuY3BwCisrKyBiL0ph
dmFTY3JpcHRDb3JlL3d0Zi9GYXN0TWFsbG9jLmNwcApAQCAtODIsNiArODIsNyBAQAogI2lmIEVO
QUJMRShKU0NfTVVMVElQTEVfVEhSRUFEUykKICNpbmNsdWRlIDxwdGhyZWFkLmg+CiAjZW5kaWYK
KyNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKICNpZm5kZWYgTk9fVENNQUxMT0NfU0FN
UExFUwogI2lmZGVmIFdURl9DSEFOR0VTCkBAIC0xMDE1LDcgKzEwMTYsNyBAQCBjbGFzcyBQYWdl
SGVhcEFsbG9jYXRvciB7CiAgICAgICAgIGlmICghbmV3X2FsbG9jYXRpb24pCiAgICAgICAgICAg
Q1JBU0goKTsKIAotICAgICAgICAqKHZvaWQqKiluZXdfYWxsb2NhdGlvbiA9IGFsbG9jYXRlZF9y
ZWdpb25zXzsKKyAgICAgICAgKnJlaW50ZXJwcmV0X2Nhc3RfcHRyPHZvaWQqKj4obmV3X2FsbG9j
YXRpb24pID0gYWxsb2NhdGVkX3JlZ2lvbnNfOwogICAgICAgICBhbGxvY2F0ZWRfcmVnaW9uc18g
PSBuZXdfYWxsb2NhdGlvbjsKICAgICAgICAgZnJlZV9hcmVhXyA9IG5ld19hbGxvY2F0aW9uICsg
a0FsaWduZWRTaXplOwogICAgICAgICBmcmVlX2F2YWlsXyA9IGtBbGxvY0luY3JlbWVudCAtIGtB
bGlnbmVkU2l6ZTsKQEAgLTI3MTAsNyArMjcxMSw3IEBAIEFMV0FZU19JTkxJTkUgdm9pZCBUQ01h
bGxvY19DZW50cmFsX0ZyZWVMaXN0OjpQb3B1bGF0ZSgpIHsKICAgY2hhciogbnB0cjsKICAgd2hp
bGUgKChucHRyID0gcHRyICsgc2l6ZSkgPD0gbGltaXQpIHsKICAgICAqdGFpbCA9IHB0cjsKLSAg
ICB0YWlsID0gcmVpbnRlcnByZXRfY2FzdDx2b2lkKio+KHB0cik7CisgICAgdGFpbCA9IHJlaW50
ZXJwcmV0X2Nhc3RfcHRyPHZvaWQqKj4ocHRyKTsKICAgICBwdHIgPSBucHRyOwogICAgIG51bSsr
OwogICB9CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS93dGYvTUQ1LmNwcCBiL0phdmFTY3Jp
cHRDb3JlL3d0Zi9NRDUuY3BwCmluZGV4IGU5OTUxMDIuLjM3NTQ0NmUgMTAwNjQ0Ci0tLSBhL0ph
dmFTY3JpcHRDb3JlL3d0Zi9NRDUuY3BwCisrKyBiL0phdmFTY3JpcHRDb3JlL3d0Zi9NRDUuY3Bw
CkBAIC01NCw2ICs1NCw3IEBACiAjaW5jbHVkZSAiU3RyaW5nRXh0cmFzLmgiCiAjaW5jbHVkZSAi
dGV4dC9DU3RyaW5nLmgiCiAjZW5kaWYKKyNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAK
IG5hbWVzcGFjZSBXVEYgewogCkBAIC0xMDMsNyArMTA0LDcgQEAgc3RhdGljIHZvaWQgcmV2ZXJz
ZUJ5dGVzKHVpbnQ4X3QqIGJ1ZiwgdW5zaWduZWQgbG9uZ3MpCiAgICAgZG8gewogICAgICAgICB1
aW50MzJfdCB0ID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGJ1ZlszXSA8PCA4IHwgYnVmWzJdKSA8
PCAxNiB8IGJ1ZlsxXSA8PCA4IHwgYnVmWzBdOwogICAgICAgICBBU1NFUlRfV0lUSF9NRVNTQUdF
KCEocmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGJ1ZikgJSBzaXplb2YodCkpLCAiYWxpZ25t
ZW50IGVycm9yIG9mIGJ1ZiIpOwotICAgICAgICAqcmVpbnRlcnByZXRfY2FzdDx1aW50MzJfdCAq
PihidWYpID0gdDsKKyAgICAgICAgKnJlaW50ZXJwcmV0X2Nhc3RfcHRyPHVpbnQzMl90ICo+KGJ1
ZikgPSB0OwogICAgICAgICBidWYgKz0gNDsKICAgICB9IHdoaWxlICgtLWxvbmdzKTsKIH0KQEAg
LTIzOCw3ICsyMzksNyBAQCB2b2lkIE1ENTo6YWRkQnl0ZXMoY29uc3QgdWludDhfdCogaW5wdXQs
IHNpemVfdCBsZW5ndGgpCiAgICAgICAgIH0KICAgICAgICAgbWVtY3B5KHAsIGJ1ZiwgdCk7CiAg
ICAgICAgIHJldmVyc2VCeXRlcyhtX2luLCAxNik7Ci0gICAgICAgIE1ENVRyYW5zZm9ybShtX2J1
ZiwgcmVpbnRlcnByZXRfY2FzdDx1aW50MzJfdCo+KG1faW4pKTsgLy8gbV9pbiBpcyA0LWJ5dGUg
YWxpZ25lZC4KKyAgICAgICAgTUQ1VHJhbnNmb3JtKG1fYnVmLCByZWludGVycHJldF9jYXN0X3B0
cjx1aW50MzJfdCo+KG1faW4pKTsgLy8gbV9pbiBpcyA0LWJ5dGUgYWxpZ25lZC4KICAgICAgICAg
YnVmICs9IHQ7CiAgICAgICAgIGxlbmd0aCAtPSB0OwogICAgIH0KQEAgLTI0OCw3ICsyNDksNyBA
QCB2b2lkIE1ENTo6YWRkQnl0ZXMoY29uc3QgdWludDhfdCogaW5wdXQsIHNpemVfdCBsZW5ndGgp
CiAgICAgd2hpbGUgKGxlbmd0aCA+PSA2NCkgewogICAgICAgICBtZW1jcHkobV9pbiwgYnVmLCA2
NCk7CiAgICAgICAgIHJldmVyc2VCeXRlcyhtX2luLCAxNik7Ci0gICAgICAgIE1ENVRyYW5zZm9y
bShtX2J1ZiwgcmVpbnRlcnByZXRfY2FzdDx1aW50MzJfdCo+KG1faW4pKTsgLy8gbV9pbiBpcyA0
LWJ5dGUgYWxpZ25lZC4KKyAgICAgICAgTUQ1VHJhbnNmb3JtKG1fYnVmLCByZWludGVycHJldF9j
YXN0X3B0cjx1aW50MzJfdCo+KG1faW4pKTsgLy8gbV9pbiBpcyA0LWJ5dGUgYWxpZ25lZC4KICAg
ICAgICAgYnVmICs9IDY0OwogICAgICAgICBsZW5ndGggLT0gNjQ7CiAgICAgfQpAQCAtMjc1LDcg
KzI3Niw3IEBAIHZvaWQgTUQ1OjpjaGVja3N1bShWZWN0b3I8dWludDhfdCwgMTY+JiBkaWdlc3Qp
CiAgICAgICAgIC8vIFR3byBsb3RzIG9mIHBhZGRpbmc6ICBQYWQgdGhlIGZpcnN0IGJsb2NrIHRv
IDY0IGJ5dGVzCiAgICAgICAgIG1lbXNldChwLCAwLCBjb3VudCk7CiAgICAgICAgIHJldmVyc2VC
eXRlcyhtX2luLCAxNik7Ci0gICAgICAgIE1ENVRyYW5zZm9ybShtX2J1ZiwgcmVpbnRlcnByZXRf
Y2FzdDx1aW50MzJfdCAqPihtX2luKSk7IC8vIG1faW4gaXMgNC1ieXRlIGFsaWduZWQuCisgICAg
ICAgIE1ENVRyYW5zZm9ybShtX2J1ZiwgcmVpbnRlcnByZXRfY2FzdF9wdHI8dWludDMyX3QgKj4o
bV9pbikpOyAvLyBtX2luIGlzIDQtYnl0ZSBhbGlnbmVkLgogCiAgICAgICAgIC8vIE5vdyBmaWxs
IHRoZSBuZXh0IGJsb2NrIHdpdGggNTYgYnl0ZXMKICAgICAgICAgbWVtc2V0KG1faW4sIDAsIDU2
KTsKQEAgLTI4NywxMCArMjg4LDEwIEBAIHZvaWQgTUQ1OjpjaGVja3N1bShWZWN0b3I8dWludDhf
dCwgMTY+JiBkaWdlc3QpCiAKICAgICAvLyBBcHBlbmQgbGVuZ3RoIGluIGJpdHMgYW5kIHRyYW5z
Zm9ybQogICAgIC8vIG1faW4gaXMgNC1ieXRlIGFsaWduZWQuCi0gICAgKHJlaW50ZXJwcmV0X2Nh
c3Q8dWludDMyX3QqPihtX2luKSlbMTRdID0gbV9iaXRzWzBdOwotICAgIChyZWludGVycHJldF9j
YXN0PHVpbnQzMl90Kj4obV9pbikpWzE1XSA9IG1fYml0c1sxXTsKKyAgICAocmVpbnRlcnByZXRf
Y2FzdF9wdHI8dWludDMyX3QqPihtX2luKSlbMTRdID0gbV9iaXRzWzBdOworICAgIChyZWludGVy
cHJldF9jYXN0X3B0cjx1aW50MzJfdCo+KG1faW4pKVsxNV0gPSBtX2JpdHNbMV07CiAKLSAgICBN
RDVUcmFuc2Zvcm0obV9idWYsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludDMyX3QqPihtX2luKSk7Cisg
ICAgTUQ1VHJhbnNmb3JtKG1fYnVmLCByZWludGVycHJldF9jYXN0X3B0cjx1aW50MzJfdCo+KG1f
aW4pKTsKICAgICByZXZlcnNlQnl0ZXMocmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4obV9idWYp
LCA0KTsKIAogICAgIC8vIE5vdywgbV9idWYgY29udGFpbnMgY2hlY2tzdW0gcmVzdWx0LgpkaWZm
IC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvd3RmL1N0ZExpYkV4dHJhcy5oIGIvSmF2YVNjcmlwdENv
cmUvd3RmL1N0ZExpYkV4dHJhcy5oCmluZGV4IDk2YTkyOWMuLmQ1OTRjMTcgMTAwNjQ0Ci0tLSBh
L0phdmFTY3JpcHRDb3JlL3d0Zi9TdGRMaWJFeHRyYXMuaAorKysgYi9KYXZhU2NyaXB0Q29yZS93
dGYvU3RkTGliRXh0cmFzLmgKQEAgLTUxLDYgKzUxLDQwIEBACiAjZGVmaW5lIFNUUklOR0laRShl
eHApICNleHAKICNkZWZpbmUgU1RSSU5HSVpFX1ZBTFVFX09GKGV4cCkgU1RSSU5HSVpFKGV4cCkK
IAorLyoKKyAqIFRoZSByZWludGVycHJldF9jYXN0PFR5cGUxKj4oW3BvaW50ZXIgdG8gVHlwZTJd
KSBleHByZXNzaW9ucyAtIHdoZXJlCisgKiBzaXplb2YoVHlwZTEpID4gc2l6ZW9mKFR5cGUyKSAt
IGNhdXNlIHRoZSBmb2xsb3dpbmcgd2FybmluZyBvbiBBUk0gd2l0aCBHQ0M6CisgKiBpbmNyZWFz
ZXMgcmVxdWlyZWQgYWxpZ25tZW50IG9mIHRhcmdldCB0eXBlLgorICoKKyAqIEFuIGltcGxpY2l0
IG9yIGFuIGV4dHJhIHN0YXRpY19jYXN0PHZvaWQqPiBieXBhc3NlcyB0aGUgd2FybmluZy4KKyAq
IEZvciBtb3JlIGluZm8gc2VlIHRoZSBmb2xsb3dpbmcgYnVnemlsbGEgZW50cmllczoKKyAqIC0g
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4MDQ1CisgKiAtIGh0dHA6
Ly9nY2MuZ251Lm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9NDM5NzYKKyAqLworI2lmIENQ
VShBUk0pICYmIENPTVBJTEVSKEdDQykKK3RlbXBsYXRlPHR5cGVuYW1lIFR5cGU+Citib29sIGlz
UG9pbnRlclR5cGVBbGlnbm1lbnRPa2F5KFR5cGUqIHB0cikKK3sKKyAgICByZXR1cm4gIShyZWlu
dGVycHJldF9jYXN0PGludHB0cl90PihwdHIpICUgX19hbGlnbm9mX18oVHlwZSkpOworfQorCit0
ZW1wbGF0ZTx0eXBlbmFtZSBUeXBlUHRyPgorVHlwZVB0ciByZWludGVycHJldF9jYXN0X3B0cih2
b2lkKiBwdHIpCit7CisgICAgQVNTRVJUKGlzUG9pbnRlclR5cGVBbGlnbm1lbnRPa2F5KHJlaW50
ZXJwcmV0X2Nhc3Q8VHlwZVB0cj4ocHRyKSkpOworICAgIHJldHVybiByZWludGVycHJldF9jYXN0
PFR5cGVQdHI+KHB0cik7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFR5cGVQdHI+CitUeXBlUHRy
IHJlaW50ZXJwcmV0X2Nhc3RfcHRyKGNvbnN0IHZvaWQqIHB0cikKK3sKKyAgICBBU1NFUlQoaXNQ
b2ludGVyVHlwZUFsaWdubWVudE9rYXkocmVpbnRlcnByZXRfY2FzdDxUeXBlUHRyPihwdHIpKSk7
CisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8VHlwZVB0cj4ocHRyKTsKK30KKyNlbHNlCisj
ZGVmaW5lIHJlaW50ZXJwcmV0X2Nhc3RfcHRyIHJlaW50ZXJwcmV0X2Nhc3QKKyNlbmRpZgorCiBu
YW1lc3BhY2UgV1RGIHsKIAogICAgIC8qCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS93dGYv
VmVjdG9yLmggYi9KYXZhU2NyaXB0Q29yZS93dGYvVmVjdG9yLmgKaW5kZXggYzYwZGUxNS4uZjcz
NzkzZiAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvd3RmL1ZlY3Rvci5oCisrKyBiL0phdmFT
Y3JpcHRDb3JlL3d0Zi9WZWN0b3IuaApAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgIkZhc3RB
bGxvY0Jhc2UuaCIKICNpbmNsdWRlICJOb25jb3B5YWJsZS5oIgogI2luY2x1ZGUgIk5vdEZvdW5k
LmgiCisjaW5jbHVkZSAiU3RkTGliRXh0cmFzLmgiCiAjaW5jbHVkZSAiVmFsdWVDaGVjay5oIgog
I2luY2x1ZGUgIlZlY3RvclRyYWl0cy5oIgogI2luY2x1ZGUgPGxpbWl0cz4KQEAgLTQ4MSw3ICs0
ODIsNyBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICAgICAgdXNpbmcgQmFzZTo6bV9jYXBhY2l0eTsK
IAogICAgICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IG1faW5saW5lQnVmZmVyU2l6ZSA9IGlubGlu
ZUNhcGFjaXR5ICogc2l6ZW9mKFQpOwotICAgICAgICBUKiBpbmxpbmVCdWZmZXIoKSB7IHJldHVy
biByZWludGVycHJldF9jYXN0PFQqPihtX2lubGluZUJ1ZmZlci5idWZmZXIpOyB9CisgICAgICAg
IFQqIGlubGluZUJ1ZmZlcigpIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3RfcHRyPFQqPihtX2lu
bGluZUJ1ZmZlci5idWZmZXIpOyB9CiAKICAgICAgICAgQWxpZ25lZEJ1ZmZlcjxtX2lubGluZUJ1
ZmZlclNpemUsIFdURl9BTElHTl9PRihUKT4gbV9pbmxpbmVCdWZmZXI7CiAgICAgfTsKZGlmZiAt
LWdpdCBhL0phdmFTY3JpcHRDb3JlL3d0Zi9xdC9TdHJpbmdRdC5jcHAgYi9KYXZhU2NyaXB0Q29y
ZS93dGYvcXQvU3RyaW5nUXQuY3BwCmluZGV4IGIyYzYyMWEuLjE3MWQ1MzIgMTAwNjQ0Ci0tLSBh
L0phdmFTY3JpcHRDb3JlL3d0Zi9xdC9TdHJpbmdRdC5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUv
d3RmL3F0L1N0cmluZ1F0LmNwcApAQCAtMjUsNiArMjUsNyBAQAogCiAjaW5jbHVkZSAiY29uZmln
LmgiCiAKKyNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CiAKICNpbmNsdWRlIDxRU3RyaW5nPgpAQCAtMzYsMTQgKzM3LDE0IEBAIFN0
cmluZzo6U3RyaW5nKGNvbnN0IFFTdHJpbmcmIHFzdHIpCiB7CiAgICAgaWYgKHFzdHIuaXNOdWxs
KCkpCiAgICAgICAgIHJldHVybjsKLSAgICBtX2ltcGwgPSBTdHJpbmdJbXBsOjpjcmVhdGUocmVp
bnRlcnByZXRfY2FzdDxjb25zdCBVQ2hhcio+KHFzdHIuY29uc3REYXRhKCkpLCBxc3RyLmxlbmd0
aCgpKTsKKyAgICBtX2ltcGwgPSBTdHJpbmdJbXBsOjpjcmVhdGUocmVpbnRlcnByZXRfY2FzdF9w
dHI8Y29uc3QgVUNoYXIqPihxc3RyLmNvbnN0RGF0YSgpKSwgcXN0ci5sZW5ndGgoKSk7CiB9CiAK
IFN0cmluZzo6U3RyaW5nKGNvbnN0IFFTdHJpbmdSZWYmIHJlZikKIHsKICAgICBpZiAoIXJlZi5z
dHJpbmcoKSkKICAgICAgICAgcmV0dXJuOwotICAgIG1faW1wbCA9IFN0cmluZ0ltcGw6OmNyZWF0
ZShyZWludGVycHJldF9jYXN0PGNvbnN0IFVDaGFyKj4ocmVmLnVuaWNvZGUoKSksIHJlZi5sZW5n
dGgoKSk7CisgICAgbV9pbXBsID0gU3RyaW5nSW1wbDo6Y3JlYXRlKHJlaW50ZXJwcmV0X2Nhc3Rf
cHRyPGNvbnN0IFVDaGFyKj4ocmVmLnVuaWNvZGUoKSksIHJlZi5sZW5ndGgoKSk7CiB9CiAKIFN0
cmluZzo6b3BlcmF0b3IgUVN0cmluZygpIGNvbnN0Ci0tIAoxLjcuMC40Cgo=
</data>
<flag name="review"
          id="51524"
          type_id="1"
          status="+"
          setter="barraclough"
    />
          </attachment>
      

    </bug>

</bugzilla>