<?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>54083</bug_id>
          
          <creation_ts>2011-02-09 02:10:10 -0800</creation_ts>
          <short_desc>Add WTF::cryptographicallyRandomNumber</short_desc>
          <delta_ts>2011-02-09 17:46:10 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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>22049</blocked>
    
    <blocked>54155</blocked>
    
    <blocked>54156</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>abarth</cc>
    
    <cc>buildbot</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>mjs</cc>
    
    <cc>paroga</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>webkit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>348081</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-02-09 02:10:10 -0800</bug_when>
    <thetext>Add WTF::cryptographicallyRandomNumber</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348086</commentid>
    <comment_count>1</comment_count>
      <attachid>81775</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-02-09 02:18:46 -0800</bug_when>
    <thetext>Created attachment 81775
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348094</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-09 02:29:01 -0800</bug_when>
    <thetext>Attachment 81775 did not build on chromium:
Build output: http://queues.webkit.org/results/7847345</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348103</commentid>
    <comment_count>3</comment_count>
      <attachid>81780</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-02-09 02:36:54 -0800</bug_when>
    <thetext>Created attachment 81780
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348104</commentid>
    <comment_count>4</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-02-09 02:36:57 -0800</bug_when>
    <thetext>Attachment 81775 did not build on win:
Build output: http://queues.webkit.org/results/7819395</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348106</commentid>
    <comment_count>5</comment_count>
      <attachid>81781</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-02-09 02:40:06 -0800</bug_when>
    <thetext>Created attachment 81781
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348107</commentid>
    <comment_count>6</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-02-09 02:43:09 -0800</bug_when>
    <thetext>Attachment 81775 did not build on qt:
Build output: http://queues.webkit.org/results/7724346</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348109</commentid>
    <comment_count>7</comment_count>
      <attachid>81775</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-02-09 02:48:44 -0800</bug_when>
    <thetext>Comment on attachment 81775
Patch

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

Seems OK, but I would give it one more round of bathing.

&gt; Source/JavaScriptCore/wtf/CryptographicallyRandomNumber.cpp:51
&gt; +static int randomStreamInitialized;
&gt; +static struct ARC4Stream randomStream;
&gt; +static int streamCount;

Really this should just all be a class and have one shared instance of said class.  A bunch of globals and inline global functions isn&apos;t very webkitty.

&gt; Source/JavaScriptCore/wtf/CryptographicallyRandomNumber.cpp:56
&gt; +inline void initMutexIfNeeded()

WebKit would use a method with a static variable in it, I think.  No?  sharedMutex(), etc.

&gt; Source/JavaScriptCore/wtf/OSRandomSource.cpp:59
&gt; +    // FIXME: What do we do if we can&apos;t read /dev/urandom?

CRASH() maybe?

&gt; Source/JavaScriptCore/wtf/OSRandomSource.cpp:63
&gt; +    // WARNING: When adding new sources of OS randomness, the randomness must
&gt; +    //          be of cryptographic quality!

Do you want to add a line like &quot;if you ahve any doubt, please CC abarth on the bug?&quot; :)

&gt; Source/JavaScriptCore/wtf/OSRandomSource.h:34
&gt; +// partially filled.  Rather than calling this function directly, consider

Seems odd that there is no way to return to the caller that it was a partial fill.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348121</commentid>
    <comment_count>8</comment_count>
      <attachid>81784</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-02-09 03:12:05 -0800</bug_when>
    <thetext>Created attachment 81784
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348126</commentid>
    <comment_count>9</comment_count>
      <attachid>81784</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-02-09 03:21:12 -0800</bug_when>
    <thetext>Comment on attachment 81784
Patch

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

Wow, looks so much better!

Of course now that you&apos;ve cleaned it up more, I understand it more, and thus have more questions about the rest of it.  I&apos;d like to see one more round if you have the stamina.

&gt; Source/JavaScriptCore/wtf/CryptographicallyRandomNumber.cpp:44
&gt; +struct ARC4Stream {

This could be internal to the class, but it&apos;s OK as is.

&gt; Source/JavaScriptCore/wtf/CryptographicallyRandomNumber.cpp:78
&gt; +    for (int n = 0; n &lt; 256; n++)
&gt; +        m_stream.s[n] = n;
&gt; +    m_stream.i = 0;
&gt; +    m_stream.j = 0;

This feels like the constructor for the stream class.

&gt; Source/JavaScriptCore/wtf/CryptographicallyRandomNumber.cpp:81
&gt; +void ARC4RandomNumberGenerator::addRandomData(unsigned char *data, int length)

* goes to the left.  Should this take a Vector/CString type as input?

&gt; Source/JavaScriptCore/wtf/CryptographicallyRandomNumber.cpp:85
&gt; +        m_stream.i = (m_stream.i + 1);

This is just ++.

&gt; Source/JavaScriptCore/wtf/CryptographicallyRandomNumber.cpp:87
&gt; +        m_stream.j = (m_stream.j + si + data[n % length]);

This is just +=.

&gt; Source/JavaScriptCore/wtf/CryptographicallyRandomNumber.cpp:89
&gt; +        m_stream.s[m_stream.i] = m_stream.s[m_stream.j];
&gt; +        m_stream.s[m_stream.j] = si;

I don&apos;t really understand what this is doing, but that&apos;s probably OK. :)

&gt; Source/JavaScriptCore/wtf/CryptographicallyRandomNumber.cpp:105
&gt; +    m_count = 1600000;

What&apos;s this magical value do?  It looks like it makes us stir every 40,000 numbers.  Why?  Seems we should add that as a comment?

&gt; Source/JavaScriptCore/wtf/CryptographicallyRandomNumber.cpp:110
&gt; +    if (m_count &lt;= 0 || !m_initialized)

Does count ever wrap?  Or is this just a double-check of m_initialized? (since they&apos;re both set to 0 in teh constructor).

&gt; Source/JavaScriptCore/wtf/CryptographicallyRandomNumber.cpp:116
&gt; +    m_stream.i = (m_stream.i + 1);

++.  This feels familiar.

&gt; Source/JavaScriptCore/wtf/CryptographicallyRandomNumber.cpp:118
&gt; +    m_stream.j = (m_stream.j + si);

Again +=.  Difficult to tell what this is doing.  Should this be sharing code with addRandomData?

&gt; Source/JavaScriptCore/wtf/CryptographicallyRandomNumber.cpp:132
&gt; +    val = getByte() &lt;&lt; 24;
&gt; +    val |= getByte() &lt;&lt; 16;
&gt; +    val |= getByte() &lt;&lt; 8;
&gt; +    val |= getByte();
&gt; +    return val;

I would probably have just written this as one line, but maybe that&apos;s lazy of me.

&gt; Source/JavaScriptCore/wtf/CryptographicallyRandomNumber.cpp:143
&gt; +    m_count -= 4;

Why is this decrement not in getWord() itself?

&gt; Source/JavaScriptCore/wtf/CryptographicallyRandomNumber.cpp:160
&gt; +        if (--m_count &lt;= 0)
&gt; +            stir();

Isn&apos;t this just stirIfNeeded()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348152</commentid>
    <comment_count>10</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-02-09 04:24:02 -0800</bug_when>
    <thetext>Attachment 81784 did not build on qt:
Build output: http://queues.webkit.org/results/7819417</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348394</commentid>
    <comment_count>11</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-02-09 11:07:58 -0800</bug_when>
    <thetext>I&apos;m slightly hesitant to change the core algorithm for fear of screwing it up, but I&apos;ll try to be careful.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348429</commentid>
    <comment_count>12</comment_count>
      <attachid>81784</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-02-09 11:55:00 -0800</bug_when>
    <thetext>Comment on attachment 81784
Patch

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

&gt;&gt; Source/JavaScriptCore/wtf/CryptographicallyRandomNumber.cpp:44

&gt; 
&gt; This could be internal to the class, but it&apos;s OK as is.

It&apos;s already in an anonymous namespace!  How much more hidden do you want.  :)

&gt;&gt; Source/JavaScriptCore/wtf/CryptographicallyRandomNumber.cpp:78
&gt;&gt; +    for (int n = 0; n &lt; 256; n++)
&gt;&gt; +        m_stream.s[n] = n;
&gt;&gt; +    m_stream.i = 0;
&gt;&gt; +    m_stream.j = 0;
&gt; 
&gt; This feels like the constructor for the stream class.

Done.

&gt;&gt; Source/JavaScriptCore/wtf/CryptographicallyRandomNumber.cpp:81
&gt;&gt; +void ARC4RandomNumberGenerator::addRandomData(unsigned char *data, int length)
&gt; 
&gt; * goes to the left.  Should this take a Vector/CString type as input?

I&apos;ve moved the * but left it non-vectorized.

&gt;&gt; Source/JavaScriptCore/wtf/CryptographicallyRandomNumber.cpp:85
&gt;&gt; +        m_stream.i = (m_stream.i + 1);
&gt; 
&gt; This is just ++.

k

&gt;&gt; Source/JavaScriptCore/wtf/CryptographicallyRandomNumber.cpp:87
&gt;&gt; +        m_stream.j = (m_stream.j + si + data[n % length]);
&gt; 
&gt; This is just +=.

k

&gt;&gt; Source/JavaScriptCore/wtf/CryptographicallyRandomNumber.cpp:89
&gt;&gt; +        m_stream.s[m_stream.j] = si;
&gt; 
&gt; I don&apos;t really understand what this is doing, but that&apos;s probably OK. :)

It&apos;s just RC4.

&gt;&gt; Source/JavaScriptCore/wtf/CryptographicallyRandomNumber.cpp:105
&gt;&gt; +    m_count = 1600000;
&gt; 
&gt; What&apos;s this magical value do?  It looks like it makes us stir every 40,000 numbers.  Why?  Seems we should add that as a comment?

It&apos;s just some state of the RC4 algorithm.  I think the value is pretty arbitrary with a large margin of safety.

&gt;&gt; Source/JavaScriptCore/wtf/CryptographicallyRandomNumber.cpp:110
&gt;&gt; +    if (m_count &lt;= 0 || !m_initialized)
&gt; 
&gt; Does count ever wrap?  Or is this just a double-check of m_initialized? (since they&apos;re both set to 0 in teh constructor).

m_count goes down every time you pull out randomness.  I&apos;ve removed m_initialized.

&gt;&gt; Source/JavaScriptCore/wtf/CryptographicallyRandomNumber.cpp:116
&gt;&gt; +    m_stream.i = (m_stream.i + 1);
&gt; 
&gt; ++.  This feels familiar.

done.

&gt;&gt; Source/JavaScriptCore/wtf/CryptographicallyRandomNumber.cpp:118
&gt;&gt; +    m_stream.j = (m_stream.j + si);
&gt; 
&gt; Again +=.  Difficult to tell what this is doing.  Should this be sharing code with addRandomData?

Hum..  That seems like too risky a change.  I&apos;ve changed this to +=, but I haven&apos;t changed this to share code.

&gt;&gt; Source/JavaScriptCore/wtf/CryptographicallyRandomNumber.cpp:143
&gt;&gt; +    m_count -= 4;
&gt; 
&gt; Why is this decrement not in getWord() itself?

Maybe so stirIfNeeded sees the lower count?  Dunno.

&gt;&gt; Source/JavaScriptCore/wtf/CryptographicallyRandomNumber.cpp:160
&gt;&gt; +        if (--m_count &lt;= 0)
&gt;&gt; +            stir();
&gt; 
&gt; Isn&apos;t this just stirIfNeeded()?

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348430</commentid>
    <comment_count>13</comment_count>
      <attachid>81845</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-02-09 11:55:59 -0800</bug_when>
    <thetext>Created attachment 81845
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348605</commentid>
    <comment_count>14</comment_count>
      <attachid>81845</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-02-09 14:56:55 -0800</bug_when>
    <thetext>Comment on attachment 81845
Patch

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

Looks good.  Thanks for all the cleanup!

&gt; Source/JavaScriptCore/wtf/CryptographicallyRandomNumber.cpp:164
&gt; +        stirIfNeeded();

I would have just put all the stirIfNeeded and count stuff in getByte and bumped the initial m_count up by how much one is supposed to disgard at the beginning (or just reset the m_count after the initial discard).  But this is OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348623</commentid>
    <comment_count>15</comment_count>
      <attachid>81845</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-02-09 15:12:10 -0800</bug_when>
    <thetext>Comment on attachment 81845
Patch

Clearing flags on attachment: 81845

Committed r78149: &lt;http://trac.webkit.org/changeset/78149&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348624</commentid>
    <comment_count>16</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-02-09 15:12:15 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348646</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-09 15:27:58 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/78149 might have broken Qt Windows 32-bit Release</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348685</commentid>
    <comment_count>18</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2011-02-09 16:20:35 -0800</bug_when>
    <thetext>Can we merge OSRandomSource.h with RandomNumber.h? They are doing very similar things and both contain only one function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348693</commentid>
    <comment_count>19</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-02-09 16:32:11 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; Can we merge OSRandomSource.h with RandomNumber.h? They are doing very similar things and both contain only one function.

Conceptually there are very different different.  OSRandomSource is an abstraction for OS-specific hardware randomness used internally by WTF.  RandomNumber is a weak PRNG for use by clients of WTF.  It would make more sense to have RandomNumberSeed use OSRandomSource on platforms where it&apos;s available.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81775</attachid>
            <date>2011-02-09 02:18:46 -0800</date>
            <delta_ts>2011-02-09 03:11:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54083-20110209021844.patch</filename>
            <type>text/plain</type>
            <size>26361</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzgwMjcKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BbmRyb2lkLm1rIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FuZHJvaWQubWsKaW5kZXgg
NDJkMjA0MTQwOTVhMWQ0NDNiMjkwN2MwNGQ1NTA2MDlkZGU3YmZkZS4uY2I2ODFkZDA0ZmU2OWVj
Y2NkYTE1NmRjZTBiZjA2NzEwNjcwNmIwMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FuZHJvaWQubWsKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FuZHJvaWQubWsKQEAg
LTE2MSwxNyArMTYxLDE5IEBAIExPQ0FMX1NSQ19GSUxFUyA6PSBcCiAJXAogCXd0Zi9Bc3NlcnRp
b25zLmNwcCBcCiAJd3RmL0J5dGVBcnJheS5jcHAgXAorCXd0Zi9DcnlwdG9ncmFwaGljYWxseVJh
bmRvbU51bWJlci5jcHAgXAogCXd0Zi9DdXJyZW50VGltZS5jcHAgXAogCXd0Zi9EYXRlTWF0aC5j
cHAgXAogCXd0Zi9EZWNpbWFsTnVtYmVyLmNwcCBcCiAJd3RmL0Zhc3RNYWxsb2MuY3BwIFwKIAl3
dGYvSGFzaFRhYmxlLmNwcCBcCiAJd3RmL01haW5UaHJlYWQuY3BwIFwKKwl3dGYvT1NSYW5kb21T
b3VyY2UuY3BwIFwKIAl3dGYvUGFnZUFsbG9jYXRpb25BbGlnbmVkLmNwcFwKIAl3dGYvUGFnZUJs
b2NrLmNwcFwKIAl3dGYvUmFuZG9tTnVtYmVyLmNwcCBcCiAJd3RmL1JlZkNvdW50ZWRMZWFrQ291
bnRlci5jcHAgXAotICAgIHd0Zi9TdGFja0JvdW5kcy5jcHAgXAorCXd0Zi9TdGFja0JvdW5kcy5j
cHAgXAogCXd0Zi9UQ1N5c3RlbUFsbG9jLmNwcCBcCiAJd3RmL1RocmVhZElkZW50aWZpZXJEYXRh
UHRocmVhZHMuY3BwIFwKIAl3dGYvVGhyZWFkaW5nLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQW5kcm9pZC52OC53dGYubWsgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QW5kcm9pZC52OC53dGYubWsKaW5kZXggNDJjYmZlODUwZmRjZGVlYmRkMGFiMjY4ZjQ0ZDEyN2M5
ODg1NzMxOC4uZGMwNzgyOGU0ODA3ZjRjZjZlY2E1ZWQ2NDEwNzUyNjkwODBiNzA3ZiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FuZHJvaWQudjgud3RmLm1rCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BbmRyb2lkLnY4Lnd0Zi5tawpAQCAtMzQsMTUgKzM0LDE3IEBAIExP
Q0FMX1NSQ19GSUxFUyA6PSBcCiAJXAogCXd0Zi9Bc3NlcnRpb25zLmNwcCBcCiAJd3RmL0J5dGVB
cnJheS5jcHAgXAorCXd0Zi9DcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5jcHAgXAogCXd0
Zi9DdXJyZW50VGltZS5jcHAgXAogCXd0Zi9EYXRlTWF0aC5jcHAgXAogCXd0Zi9EZWNpbWFsTnVt
YmVyLmNwcCBcCiAJd3RmL0Zhc3RNYWxsb2MuY3BwIFwKIAl3dGYvSGFzaFRhYmxlLmNwcCBcCiAJ
d3RmL01haW5UaHJlYWQuY3BwIFwKKwl3dGYvT1NSYW5kb21Tb3VyY2UuY3BwIFwKIAl3dGYvUmFu
ZG9tTnVtYmVyLmNwcCBcCiAJd3RmL1JlZkNvdW50ZWRMZWFrQ291bnRlci5jcHAgXAotICAgIHd0
Zi9TdGFja0JvdW5kcy5jcHAgXAorCXd0Zi9TdGFja0JvdW5kcy5jcHAgXAogCXd0Zi9UQ1N5c3Rl
bUFsbG9jLmNwcCBcCiAJd3RmL1RocmVhZElkZW50aWZpZXJEYXRhUHRocmVhZHMuY3BwIFwKIAl3
dGYvVGhyZWFkaW5nLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0Y2RjOGUwZDY2
Nzc4NzBkN2NmM2VkM2I1OWE2N2E0MWM5YjljNjVmLi44ZjEwOTEwNjAzNGZjMjA3MTA3OTIyYzhi
ODEzMWIyZDYxM2NhYmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NCBA
QAorMjAxMS0wMi0wOSAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBXVEY6OmNyeXB0b2dy
YXBoaWNhbGx5UmFuZG9tTnVtYmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD01NDA4MworCisgICAgICAgIEludHJvZHVjZSBhIGNyeXB0b2dyYXBoaWNh
bGx5IHN0cm9uZyByYW5kb20gbnVtYmVyIGdlbmVyYXRvciB0byBXVEYuCisgICAgICAgIFRoZSBy
YW5kb20gbnVtYmVyIGdlbmVyYXRvciBpcyBiYXNlZCBvbiBhcmM0cmFuZG9tIGFzIGZvdW5kIGlu
OgorCisgICAgICAgIGh0dHA6Ly93d3cub3BlbmJzZC5vcmcvY2dpLWJpbi9jdnN3ZWIvc3JjL2xp
Yi9saWJjL2NyeXB0L2FyYzRyYW5kb20uYz9yZXY9MS4yMgorCisgICAgICAgIEkndmUgY2hhbmdl
ZCB0byBzb3VyY2UgdG8gV2ViS2l0IHN0eWxlIGFuZCBhYnN0cmFjdGVkIHRoZSBvcGVyYXRpbmcK
KyAgICAgICAgc3lzdGVtIGludGVyYWN0aW9uIHRvIE9TUmFuZG9tU291cmNlLiAgV2UnbGwgdXNl
IHRoaXMgZnVuY3Rpb25hbGl0eSB0bworICAgICAgICBleHBvc2UgYSBjcnlwdG9ncmFwaGljYWxs
eSBzdHJvbmcgcmFuZG9tIG51bWJlciBnZW5lcmF0b3IgdG8KKyAgICAgICAgSmF2YVNjcmlwdC4K
KworICAgICAgICAqIEFuZHJvaWQubWs6CisgICAgICAgICogQW5kcm9pZC52OC53dGYubWs6Cisg
ICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogSmF2YVNjcmlwdENvcmUuZ3lwaToK
KyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3Byb2ovV1RGL1dURi52Y3Byb2o6CisgICAgICAg
ICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBj
b25maWcuaDoKKyAgICAgICAgKiB3dGYvQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogd3RmL0Ny
eXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmNwcDogQWRkZWQuCisgICAgICAgIChXVEY6Omlu
aXRNdXRleElmTmVlZGVkKToKKyAgICAgICAgKFdURjo6aW5pdCk6CisgICAgICAgIChXVEY6OmFk
ZFJhbmRvbURhdGEpOgorICAgICAgICAoV1RGOjpzdGlyKToKKyAgICAgICAgKFdURjo6c3Rpcklm
TmVlZGVkKToKKyAgICAgICAgKFdURjo6Z2V0Qnl0ZSk6CisgICAgICAgIChXVEY6OmdldFdvcmQp
OgorICAgICAgICAoV1RGOjpjcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlcik6CisgICAgICAg
IChXVEY6OmNyeXB0b2dyYXBoaWNhbGx5UmFuZG9tVmFsdWVzKToKKyAgICAgICAgKiB3dGYvQ3J5
cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1iZXIuaDogQWRkZWQuCisgICAgICAgICogd3RmL09TUmFu
ZG9tU291cmNlLmNwcDogQWRkZWQuCisgICAgICAgIChXVEY6OnJhbmRvbVZhbHVlc0Zyb21PUyk6
CisgICAgICAgICogd3RmL09TUmFuZG9tU291cmNlLmg6IEFkZGVkLgorICAgICAgICAqIHd0Zi93
dGYucHJpOgorCiAyMDExLTAyLTA4ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVt
YWtlZmlsZS5hbQppbmRleCA1MmQ2YjY5YjVlOTgxYzgxYzkzOWE2NTNjYTUxOTFlZmEzZDlhMmE1
Li42OTYyNTg0MDU3ODZjNDA3NjVlNDZmZWM4MjJjNmRjMWNiZWYxYzk3IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC00NDMsNiArNDQzLDggQEAgamF2YXNjcmlwdGNvcmVf
c291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9CeXRlQXJyYXkuY3BwIFwK
IAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0J5dGVBcnJheS5oIFwKIAlTb3VyY2UvSmF2YVNj
cmlwdENvcmUvd3RmL0Nyb3NzVGhyZWFkUmVmQ291bnRlZC5oIFwKKwlTb3VyY2UvSmF2YVNjcmlw
dENvcmUvd3RmL0NyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmNwcCBcCisJU291cmNlL0ph
dmFTY3JpcHRDb3JlL3d0Zi9DcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5oIFwKIAlTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd3RmL0N1cnJlbnRUaW1lLmNwcCBcCiAJU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9DdXJyZW50VGltZS5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0Rh
dGVNYXRoLmNwcCBcCkBAIC00OTEsNiArNDkzLDggQEAgamF2YXNjcmlwdGNvcmVfc291cmNlcyAr
PSBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9Ob3RGb3VuZC5oIFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL051bGxQdHIuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9P
U0FsbG9jYXRvci5oIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL09TUmFuZG9tU291cmNl
LmNwcCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9PU1JhbmRvbVNvdXJjZS5oIFwKIAlT
b3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL093bkFycmF5UHRyLmggXAogCVNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93dGYvT3duRmFzdE1hbGxvY1B0ci5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUv
d3RmL093blB0ckNvbW1vbi5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS5neXBpIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
Lmd5cGkKaW5kZXggNDE3ODY4MzhkNjBhYWUwYjZlMWY4ZTk3NDQyODJjMjUzNDE3YmFiZi4uYzRk
ZjZkNjg0M2E0MDBkOWEyMTQzMDRmYzFmMTA1ZTg2ZTY0NWRmYSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5cGkKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5cGkKQEAgLTM3NCw2ICszNzQsOCBAQAogICAgICAgICAg
ICAgJ3d0Zi9jaHJvbWl1bS9DaHJvbWl1bVRocmVhZGluZy5oJywKICAgICAgICAgICAgICd3dGYv
Y2hyb21pdW0vTWFpblRocmVhZENocm9taXVtLmNwcCcsCiAgICAgICAgICAgICAnd3RmL0Nyb3Nz
VGhyZWFkUmVmQ291bnRlZC5oJywKKyAgICAgICAgICAgICd3dGYvQ3J5cHRvZ3JhcGhpY2FsbHlS
YW5kb21OdW1iZXIuY3BwJywKKyAgICAgICAgICAgICd3dGYvQ3J5cHRvZ3JhcGhpY2FsbHlSYW5k
b21OdW1iZXIuaCcsCiAgICAgICAgICAgICAnd3RmL0N1cnJlbnRUaW1lLmNwcCcsCiAgICAgICAg
ICAgICAnd3RmL0N1cnJlbnRUaW1lLmgnLAogICAgICAgICAgICAgJ3d0Zi9EYXRlTWF0aC5jcHAn
LApAQCAtNDE2LDYgKzQxOCw4IEBACiAgICAgICAgICAgICAnd3RmL09TQWxsb2NhdG9yUG9zaXgu
Y3BwJywKICAgICAgICAgICAgICd3dGYvT1NBbGxvY2F0b3JXaW4uY3BwJywKICAgICAgICAgICAg
ICd3dGYvT1NBbGxvY2F0b3IuaCcsCisgICAgICAgICAgICAnd3RmL09TUmFuZG9tU291cmNlLmNw
cCcsCisgICAgICAgICAgICAnd3RmL09TUmFuZG9tU291cmNlLmgnLAogICAgICAgICAgICAgJ3d0
Zi9Pd25BcnJheVB0ci5oJywKICAgICAgICAgICAgICd3dGYvT3duRmFzdE1hbGxvY1B0ci5oJywK
ICAgICAgICAgICAgICd3dGYvT3duUHRyLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9XVEYvV1RGLnZjcHJvaiBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovV1RGL1dURi52Y3Byb2oKaW5kZXggNzgy
MGQxMzU0MjU1MDlkZjkwMzk0N2I5M2NhMGYxOTk3N2M5OTQ5Yy4uNTUzNzFmM2RhMDExMWU4ZjA1
OTI2MzlmMmM1ZGZjNTU4MTVkMjNmMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnZjcHJvai9XVEYvV1RGLnZjcHJvagorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL1dURi9XVEYudmNwcm9qCkBAIC01NjEsNiAr
NTYxLDE0IEBACiAJCQk+CiAJCTwvRmlsZT4KIAkJPEZpbGUKKwkJCVJlbGF0aXZlUGF0aD0iLi5c
Li5cd3RmXENyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmNwcCIKKwkJCT4KKwkJPC9GaWxl
PgorCQk8RmlsZQorCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlx3dGZcQ3J5cHRvZ3JhcGhpY2FsbHlS
YW5kb21OdW1iZXIuaCIKKwkJCT4KKwkJPC9GaWxlPgorCQk8RmlsZQogCQkJUmVsYXRpdmVQYXRo
PSIuLlwuLlx3dGZcQ3VycmVudFRpbWUuY3BwIgogCQkJPgogCQk8L0ZpbGU+CkBAIC03NTMsNiAr
NzYxLDE0IEBACiAJCQk+CiAJCTwvRmlsZT4KIAkJPEZpbGUKKwkJCVJlbGF0aXZlUGF0aD0iLi5c
Li5cd3RmXE9TUmFuZG9tU291cmNlLmNwcCIKKwkJCT4KKwkJPC9GaWxlPgorCQk8RmlsZQorCQkJ
UmVsYXRpdmVQYXRoPSIuLlwuLlx3dGZcT1NSYW5kb21Tb3VyY2UuaCIKKwkJCT4KKwkJPC9GaWxl
PgorCQk8RmlsZQogCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlx3dGZcT3duQXJyYXlQdHIuaCIKIAkJ
CT4KIAkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzYmQzOTBiODUx
ZjRkZTBhZjM3NWVhMzVkNTZkNzkwZDYyZWY5NGY3Li45OTg2MjM5ZDE0ZDU5ODdmMTU4OGQ3ZWEx
NjdhMDg5OGU2OWM4MmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzM4LDYg
KzMzOCwxMCBAQAogCQk5NzFFREVBNjExNjlFMEQzMDA1RTQyNjIgLyogVGVybWluYXRvci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTdGNjkwM0ExMTY5
REY3RjAwQTZCQjQ2IC8qIFRlcm1pbmF0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk5NzJBNDg1RjEyNjYxRTA4MDBGNDUxNEYgLyogVVJMQ2hh
cmFjdGVyVHlwZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTcyQTQ4NUQxMjY2MUUwODAwRjQ1MTRGIC8qIFVSTENoYXJhY3RlclR5cGVzLmNwcCAq
LzsgfTsKIAkJOTcyQTQ4NzcxMjY2MjU2RjAwRjQ1MTRGIC8qIFVSTEVzY2FwZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzJBNDg3NDEyNjYyNTZG
MDBGNDUxNEYgLyogVVJMRXNjYXBlLmNwcCAqLzsgfTsKKwkJOTc5NDFBNTcxMzAyOUFBQjAwNEEz
NDQ3IC8qIE9TUmFuZG9tU291cmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDk3OTQxQTNGMTMwMjk5REIwMDRBMzQ0NyAvKiBPU1JhbmRvbVNvdXJj
ZS5jcHAgKi87IH07CisJCTk3OTQxQTVBMTMwMjlBQ0MwMDRBMzQ0NyAvKiBPU1JhbmRvbVNvdXJj
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc5NDFB
NDAxMzAyOTlEQjAwNEEzNDQ3IC8qIE9TUmFuZG9tU291cmNlLmggKi87IH07CisJCTk3OTQxQTdF
MTMwMkEwOTgwMDRBMzQ0NyAvKiBDcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5Nzk0MUE3QzEzMDJB
MDk4MDA0QTM0NDcgLyogQ3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1iZXIuY3BwICovOyB9Owor
CQk5Nzk0MUE3RjEzMDJBMDk4MDA0QTM0NDcgLyogQ3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1i
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3OTQx
QTdEMTMwMkEwOTgwMDRBMzQ0NyAvKiBDcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5oICov
OyB9OwogCQlBMTcxMkIzQjExQzdCMjEyMDA3QTUzMTUgLyogUmVnRXhwQ2FjaGUuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTE3MTJCM0ExMUM3QjIx
MjAwN0E1MzE1IC8qIFJlZ0V4cENhY2hlLmNwcCAqLzsgfTsKIAkJQTE3MTJCM0YxMUM3QjIyODAw
N0E1MzE1IC8qIFJlZ0V4cENhY2hlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBMTcxMkIzRTExQzdCMjI4MDA3QTUzMTUgLyogUmVnRXhwQ2FjaGUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBMTcxMkI0
MTExQzdCMjM1MDA3QTUzMTUgLyogUmVnRXhwS2V5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTcxMkI0MDExQzdCMjM1MDA3QTUzMTUgLyogUmVnRXhw
S2V5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAg
LTEwMDYsNiArMTAxMCwxMCBAQAogCQk5NzJBNDg3NDEyNjYyNTZGMDBGNDUxNEYgLyogVVJMRXNj
YXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFVSTEVzY2FwZS5j
cHA7IHBhdGggPSB1cmwvc3JjL1VSTEVzY2FwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTk3MkE0ODc1MTI2NjI1NkYwMEY0NTE0RiAvKiBVUkxFc2NhcGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gVVJMRXNjYXBlLmg7IHBhdGggPSB1cmwvc3JjL1VSTEVz
Y2FwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzJBNDg3NjEyNjYyNTZGMDBG
NDUxNEYgLyogVVJMUXVlcnlDYW5vbmljYWxpemVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IFVSTFF1ZXJ5Q2Fub25pY2FsaXplci5oOyBwYXRoID0gdXJsL3NyYy9VUkxRdWVy
eUNhbm9uaWNhbGl6ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTc5NDFBM0Yx
MzAyOTlEQjAwNEEzNDQ3IC8qIE9TUmFuZG9tU291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IE9TUmFuZG9tU291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOTc5NDFBNDAxMzAyOTlEQjAwNEEzNDQ3IC8qIE9TUmFuZG9tU291cmNlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE9TUmFuZG9tU291cmNlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk3OTQxQTdDMTMwMkEwOTgwMDRBMzQ0NyAvKiBDcnlw
dG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBDcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTk3OTQxQTdEMTMwMkEwOTgwMDRBMzQ0NyAvKiBDcnlwdG9ncmFw
aGljYWxseVJhbmRvbU51bWJlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBD
cnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5N0Y2OTAzQTExNjlERjdGMDBBNkJCNDYgLyogVGVybWluYXRvci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBUZXJtaW5hdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUExNzEyQjNBMTFDN0IyMTIwMDdBNTMxNSAvKiBSZWdFeHBDYWNoZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWdFeHBDYWNoZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExNzEyQjNFMTFDN0IyMjgwMDdBNTMxNSAvKiBSZWdF
eHBDYWNoZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWdFeHBDYWNoZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTUzNyw2ICsxNTQ1LDggQEAKIAkJCQlB
N0ExRjdBQjBGMjUyQjNDMDBFMTg0RTIgLyogQnl0ZUFycmF5LmggKi8sCiAJCQkJRkRBMTVDMTYx
MkIwMzAyODAwM0E1ODNBIC8qIENvbXBsZXguaCAqLywKIAkJCQkwQkRGRkFENDBGQzYxNzEwMDBE
NjlFRjQgLyogQ3Jvc3NUaHJlYWRSZWZDb3VudGVkLmggKi8sCisJCQkJOTc5NDFBN0MxMzAyQTA5
ODAwNEEzNDQ3IC8qIENyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmNwcCAqLywKKwkJCQk5
Nzk0MUE3RDEzMDJBMDk4MDA0QTM0NDcgLyogQ3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1iZXIu
aCAqLywKIAkJCQkxODBCOUFFRjBGMTZDNTY5MDA5QkRCQzUgLyogQ3VycmVudFRpbWUuY3BwICov
LAogCQkJCTE4MEI5QUYwMEYxNkM1NjkwMDlCREJDNSAvKiBDdXJyZW50VGltZS5oICovLAogCQkJ
CTQxMzU5Q0Y0MEZERDg5Q0IwMDIwNjE4MCAvKiBEYXRlTWF0aC5jcHAgKi8sCkBAIC0xNTc5LDYg
KzE1ODksOCBAQAogCQkJCTkzM0Y1Q0RCMTI2OTIyNjkwMDQ5MTkxRSAvKiBOdWxsUHRyLmggKi8s
CiAJCQkJMTQwMDA2NzYxMkE2Rjc4MzAwNjREMTIzIC8qIE9TQWxsb2NhdG9yLmggKi8sCiAJCQkJ
MTQwMDA2OTIxMkE2RjlFMTAwNjREMTIzIC8qIE9TQWxsb2NhdG9yUG9zaXguY3BwICovLAorCQkJ
CTk3OTQxQTNGMTMwMjk5REIwMDRBMzQ0NyAvKiBPU1JhbmRvbVNvdXJjZS5jcHAgKi8sCisJCQkJ
OTc5NDFBNDAxMzAyOTlEQjAwNEEzNDQ3IC8qIE9TUmFuZG9tU291cmNlLmggKi8sCiAJCQkJOTMw
M0Y1QTQwOTkxMUE1ODAwQUQ3MUI4IC8qIE93bkFycmF5UHRyLmggKi8sCiAJCQkJMEJERkZBRDEw
RkM2MTZFQzAwRDY5RUY0IC8qIE93bkZhc3RNYWxsb2NQdHIuaCAqLywKIAkJCQk5MzAzRjU2NzA5
OTExOEZBMDBBRDcxQjggLyogT3duUHRyLmggKi8sCkBAIC0yNDQ0LDYgKzI0NTYsOCBAQAogCQkJ
CUU0OURDMTZEMTJFRjI5NTMwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRlckNhY2hlSXRlbS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMTRDODI0QUQxMkY3Qzc4NTAwOEYzNUUwIC8qIE1hcmtlZEJsb2Nr
LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNEQ4Q0VGQjEyRkM0Mzk2MDBCQzlGNUEgLyogQmxvb21G
aWx0ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTk3OTQxQTVBMTMwMjlBQ0MwMDRBMzQ0NyAvKiBP
U1JhbmRvbVNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTc5NDFBN0YxMzAyQTA5ODAwNEEz
NDQ3IC8qIENyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAg
LTI5MTMsNiArMjkyNyw4IEBACiAJCQkJODY3MDRCNDIxMkRCOEE4MTAwQTlGRTdCIC8qIFlhcnJT
eW50YXhDaGVja2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUU0OURDMTZCMTJFRjI5M0UwMDE4
NEExRiAvKiBTb3VyY2VQcm92aWRlckNhY2hlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0Qzgy
NEFCMTJGN0M3N0UwMDhGMzVFMCAvKiBNYXJrZWRCbG9jay5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQk5Nzk0MUE1NzEzMDI5QUFCMDA0QTM0NDcgLyogT1NSYW5kb21Tb3VyY2UuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJOTc5NDFBN0UxMzAyQTA5ODAwNEEzNDQ3IC8qIENyeXB0b2dyYXBoaWNhbGx5
UmFuZG9tTnVtYmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBs
b3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2NvbmZpZy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2NvbmZpZy5oCmluZGV4
IGEyYjYyODU4OWYzMmQ2MzYzYmViZGViZTQzOWY1YWQ3ZjcxM2QyZGUuLjIzZTY1OWE4MGM0MGIx
YjVmMzVlZmEyNDI5NDk1MGM5NDhkNWI5MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9jb25maWcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvY29uZmlnLmgKQEAgLTUy
LDExICs1MiwxNiBAQAogLy8gV2UgbmVlZCB0byBkZWZpbmUgdGhpcyBiZWZvcmUgdGhlIGZpcnN0
ICNpbmNsdWRlIG9mIHN0ZGxpYi5oIG9yIGl0IHdvbid0IGNvbnRhaW4gcmFuZF9zLgogI2lmbmRl
ZiBfQ1JUX1JBTkRfUwogI2RlZmluZSBfQ1JUX1JBTkRfUworI2RlZmluZSBXVEZfVVNFX09TX1JB
TkRPTU5FU1MgMQogI2VuZGlmCiAjZW5kaWYKIAogI2VuZGlmCiAKKyNpZiBPUyhEQVJXSU4pIHx8
IE9TKFVOSVgpCisjZGVmaW5lIFdURl9VU0VfT1NfUkFORE9NTkVTUyAxCisjZW5kaWYKKwogI2lm
IE9TKEZSRUVCU0QpIHx8IE9TKE9QRU5CU0QpCiAjZGVmaW5lIEhBVkVfUFRIUkVBRF9OUF9IIDEK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9DTWFrZUxpc3Rz
LnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvQ01ha2VMaXN0cy50eHQKaW5kZXggMzgx
ZWFiN2QzMWI2ZmU1Njg0Yjg2NmQ2ZjkyYWYwMDZlNTFjY2EyZC4uZjg1YmYwMjA3NGNlZjdmNTM3
MzY5ZTQwOGZmNDFiNjUxNjM3NWU5NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3d0Zi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0NNYWtl
TGlzdHMudHh0CkBAIC05LDYgKzksNyBAQCBTRVQoV1RGX0hFQURFUlMKICAgICBCeXRlQXJyYXku
aAogICAgIENvbXBsZXguaAogICAgIENyb3NzVGhyZWFkUmVmQ291bnRlZC5oCisgICAgQ3J5cHRv
Z3JhcGhpY2FsbHlSYW5kb21OdW1iZXIuaAogICAgIEN1cnJlbnRUaW1lLmgKICAgICBEYXRlTWF0
aC5oCiAgICAgRGVjaW1hbE51bWJlci5oCkBAIC00MSw2ICs0Miw3IEBAIFNFVChXVEZfSEVBREVS
UwogICAgIE5vdEZvdW5kLmgKICAgICBOdWxsUHRyLmgKICAgICBPU0FsbG9jYXRvci5oCisgICAg
T1NSYW5kb21Tb3VyY2UuaAogICAgIE93bkFycmF5UHRyLmgKICAgICBPd25GYXN0TWFsbG9jUHRy
LmgKICAgICBPd25QdHIuaApAQCAtMTAzLDEyICsxMDUsMTQgQEAgU0VUKFdURl9IRUFERVJTCiBT
RVQoV1RGX1NPVVJDRVMKICAgICBBc3NlcnRpb25zLmNwcAogICAgIEJ5dGVBcnJheS5jcHAKKyAg
ICBDcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5jcHAKICAgICBDdXJyZW50VGltZS5jcHAK
ICAgICBEZWNpbWFsTnVtYmVyLmNwcAogICAgIEZhc3RNYWxsb2MuY3BwCiAgICAgSGFzaFRhYmxl
LmNwcAogICAgIE1haW5UaHJlYWQuY3BwCiAgICAgTUQ1LmNwcAorICAgIE9TUmFuZG9tU291cmNl
LmNwcAogICAgIFJhbmRvbU51bWJlci5jcHAKICAgICBSZWZDb3VudGVkTGVha0NvdW50ZXIuY3Bw
CiAgICAgU3RhY2tCb3VuZHMuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d3RmL0NyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93dGYvQ3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1iZXIuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgx
YTdhMTM0OGM1ODFjZjVhY2ViNWRkMzVhMzgxYTQ2OWRlZGFlNzQKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0NyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVy
LmNwcApAQCAtMCwwICsxLDE2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMTk5NiwgRGF2aWQg
TWF6aWVyZXMgPGRtQHV1bi5vcmc+CisgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIERhbWllbiBNaWxs
ZXIgPGRqbUBvcGVuYnNkLm9yZz4KKyAqCisgKiBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9k
aWZ5LCBhbmQgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnkKKyAqIHB1cnBvc2Ugd2l0
aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZCwgcHJvdmlkZWQgdGhhdCB0aGUgYWJv
dmUKKyAqIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgYXBwZWFy
IGluIGFsbCBjb3BpZXMuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIg
QU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTCisgKiBXSVRIIFJFR0FSRCBU
TyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GCisgKiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1Ig
QkUgTElBQkxFIEZPUgorICogQU5ZIFNQRUNJQUwsIERJUkVDVCwgSU5ESVJFQ1QsIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUworICogV0hBVFNPRVZFUiBSRVNVTFRJTkcg
RlJPTSBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOCisgKiBBQ1RJ
T04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1IgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklT
SU5HIE9VVCBPRgorICogT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1IgUEVSRk9STUFO
Q0UgT0YgVEhJUyBTT0ZUV0FSRS4KKyAqLworCisvKgorICogQXJjNCByYW5kb20gbnVtYmVyIGdl
bmVyYXRvciBmb3IgT3BlbkJTRC4KKyAqCisgKiBUaGlzIGNvZGUgaXMgZGVyaXZlZCBmcm9tIHNl
Y3Rpb24gMTcuMSBvZiBBcHBsaWVkIENyeXB0b2dyYXBoeSwKKyAqIHNlY29uZCBlZGl0aW9uLCB3
aGljaCBkZXNjcmliZXMgYSBzdHJlYW0gY2lwaGVyIGFsbGVnZWRseQorICogY29tcGF0aWJsZSB3
aXRoIFJTQSBMYWJzICJSQzQiIGNpcGhlciAodGhlIGFjdHVhbCBkZXNjcmlwdGlvbiBvZgorICog
d2hpY2ggaXMgYSB0cmFkZSBzZWNyZXQpLiAgVGhlIHNhbWUgYWxnb3JpdGhtIGlzIHVzZWQgYXMg
YSBzdHJlYW0KKyAqIGNpcGhlciBjYWxsZWQgImFyY2ZvdXIiIGluIFRhdHUgWWxvbmVuJ3Mgc3No
IHBhY2thZ2UuCisgKgorICogUkM0IGlzIGEgcmVnaXN0ZXJlZCB0cmFkZW1hcmsgb2YgUlNBIExh
Ym9yYXRvcmllcy4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ3J5cHRv
Z3JhcGhpY2FsbHlSYW5kb21OdW1iZXIuaCIKKworI2luY2x1ZGUgIk1haW5UaHJlYWQuaCIKKyNp
bmNsdWRlICJPU1JhbmRvbVNvdXJjZS5oIgorI2luY2x1ZGUgIlRocmVhZGluZ1ByaW1pdGl2ZXMu
aCIKKworbmFtZXNwYWNlIFdURiB7CisKKyNpZiBVU0UoT1NfUkFORE9NTkVTUykKKworbmFtZXNw
YWNlIHsKKworc3RydWN0IEFSQzRTdHJlYW0geworICAgIHVpbnQ4X3QgaTsKKyAgICB1aW50OF90
IGo7CisgICAgdWludDhfdCBzWzI1Nl07Cit9OworCitzdGF0aWMgaW50IHJhbmRvbVN0cmVhbUlu
aXRpYWxpemVkOworc3RhdGljIHN0cnVjdCBBUkM0U3RyZWFtIHJhbmRvbVN0cmVhbTsKK3N0YXRp
YyBpbnQgc3RyZWFtQ291bnQ7CitzdGF0aWMgTXV0ZXgqIG11dGV4OworCitpbmxpbmUgdWludDhf
dCBnZXRCeXRlKCk7CisKK2lubGluZSB2b2lkIGluaXRNdXRleElmTmVlZGVkKCkKK3sKKyAgICBp
ZiAobXV0ZXgpCisgICAgICAgIHJldHVybjsKKyAgICAvLyBUZWNobmljYWxseSB0aGVyZSdzIGEg
cmFjZSBjb25kaXRpb24gaW4gY3JlYXRpbmcgdGhlIG11dGV4LCBidXQgaXQncworICAgIC8vIHVu
Y2xlYXIgaG93IHRvIHJlbW92ZSB0aGUgcmFjZSBjb25kaXRpb24gd2l0aG91dCBhIHN0YXRpYyBp
bml0aWFsaXplci4KKyAgICBtdXRleCA9IG5ldyBNdXRleDsKK30KKworaW5saW5lIHZvaWQgaW5p
dCgpCit7CisgICAgZm9yIChpbnQgbiA9IDA7IG4gPCAyNTY7IG4rKykKKyAgICAgICAgcmFuZG9t
U3RyZWFtLnNbbl0gPSBuOworICAgIHJhbmRvbVN0cmVhbS5pID0gMDsKKyAgICByYW5kb21TdHJl
YW0uaiA9IDA7Cit9CisKK2lubGluZSB2b2lkIGFkZFJhbmRvbURhdGEodW5zaWduZWQgY2hhciAq
ZGF0YSwgaW50IGRhdGxlbikKK3sKKyAgICByYW5kb21TdHJlYW0uaS0tOworICAgIGZvciAoaW50
IG4gPSAwOyBuIDwgMjU2OyBuKyspIHsKKyAgICAgICAgcmFuZG9tU3RyZWFtLmkgPSAocmFuZG9t
U3RyZWFtLmkgKyAxKTsKKyAgICAgICAgdWludDhfdCBzaSA9IHJhbmRvbVN0cmVhbS5zW3JhbmRv
bVN0cmVhbS5pXTsKKyAgICAgICAgcmFuZG9tU3RyZWFtLmogPSAocmFuZG9tU3RyZWFtLmogKyBz
aSArIGRhdGFbbiAlIGRhdGxlbl0pOworICAgICAgICByYW5kb21TdHJlYW0uc1tyYW5kb21TdHJl
YW0uaV0gPSByYW5kb21TdHJlYW0uc1tyYW5kb21TdHJlYW0ual07CisgICAgICAgIHJhbmRvbVN0
cmVhbS5zW3JhbmRvbVN0cmVhbS5qXSA9IHNpOworICAgIH0KKyAgICByYW5kb21TdHJlYW0uaiA9
IHJhbmRvbVN0cmVhbS5pOworfQorCit2b2lkIHN0aXIoKQoreworICAgIGlmICghcmFuZG9tU3Ry
ZWFtSW5pdGlhbGl6ZWQpIHsKKyAgICAgICAgaW5pdCgpOworICAgICAgICByYW5kb21TdHJlYW1J
bml0aWFsaXplZCA9IDE7CisgICAgfQorCisgICAgdW5zaWduZWQgY2hhciByYW5kb21uZXNzWzEy
OF07CisgICAgc2l6ZV90IGxlbmd0aCA9IHNpemVvZihyYW5kb21uZXNzKTsKKyAgICByYW5kb21W
YWx1ZXNGcm9tT1MocmFuZG9tbmVzcywgbGVuZ3RoKTsKKyAgICBhZGRSYW5kb21EYXRhKHJhbmRv
bW5lc3MsIGxlbmd0aCk7CisKKyAgICAvLyBEaXNjYXJkIGVhcmx5IGtleXN0cmVhbSwgYXMgcGVy
IHJlY29tbWVuZGF0aW9ucyBpbjoKKyAgICAvLyBodHRwOi8vd3d3Lndpc2RvbS53ZWl6bWFubi5h
Yy5pbC9+aXRzaWsvUkM0L1BhcGVycy9SYzRfa3NhLnBzCisgICAgZm9yIChpbnQgaSA9IDA7IGkg
PCAyNTY7IGkrKykKKyAgICAgICAgZ2V0Qnl0ZSgpOworICAgIHN0cmVhbUNvdW50ID0gMTYwMDAw
MDsKK30KKwordm9pZCBzdGlySWZOZWVkZWQoKQoreworICAgIGlmIChzdHJlYW1Db3VudCA8PSAw
IHx8ICFyYW5kb21TdHJlYW1Jbml0aWFsaXplZCkKKyAgICAgICAgc3RpcigpOworfQorCitpbmxp
bmUgdWludDhfdCBnZXRCeXRlKCkKK3sKKyAgICByYW5kb21TdHJlYW0uaSA9IChyYW5kb21TdHJl
YW0uaSArIDEpOworICAgIHVpbnQ4X3Qgc2kgPSByYW5kb21TdHJlYW0uc1tyYW5kb21TdHJlYW0u
aV07CisgICAgcmFuZG9tU3RyZWFtLmogPSAocmFuZG9tU3RyZWFtLmogKyBzaSk7CisgICAgdWlu
dDhfdCBzaiA9IHJhbmRvbVN0cmVhbS5zW3JhbmRvbVN0cmVhbS5qXTsKKyAgICByYW5kb21TdHJl
YW0uc1tyYW5kb21TdHJlYW0uaV0gPSBzajsKKyAgICByYW5kb21TdHJlYW0uc1tyYW5kb21TdHJl
YW0ual0gPSBzaTsKKyAgICByZXR1cm4gKHJhbmRvbVN0cmVhbS5zWyhzaSArIHNqKSAmIDB4ZmZd
KTsKK30KKworaW5saW5lIHVpbnQzMl90IGdldFdvcmQoKQoreworICAgIHVpbnQzMl90IHZhbDsK
KyAgICB2YWwgPSBnZXRCeXRlKCkgPDwgMjQ7CisgICAgdmFsIHw9IGdldEJ5dGUoKSA8PCAxNjsK
KyAgICB2YWwgfD0gZ2V0Qnl0ZSgpIDw8IDg7CisgICAgdmFsIHw9IGdldEJ5dGUoKTsKKyAgICBy
ZXR1cm4gdmFsOworfQorCit9CisKK3VpbnQzMl90IGNyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVt
YmVyKCkKK3sKKyNpZiAhRU5BQkxFKEpTQ19NVUxUSVBMRV9USFJFQURTKQorICAgIGluaXRNdXRl
eElmTmVlZGVkKCk7CisgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKCptdXRleCk7CisjZWxzZQorICAg
IEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisjZW5kaWYKKworICAgIHN0cmVhbUNvdW50IC09IDQ7
CisgICAgc3RpcklmTmVlZGVkKCk7CisgICAgcmV0dXJuIGdldFdvcmQoKTsKK30KKwordm9pZCBj
cnlwdG9ncmFwaGljYWxseVJhbmRvbVZhbHVlcyh2b2lkKiBidWZmZXIsIHNpemVfdCBsZW5ndGgp
Cit7CisjaWYgIUVOQUJMRShKU0NfTVVMVElQTEVfVEhSRUFEUykKKyAgICBpbml0TXV0ZXhJZk5l
ZWRlZCgpOworICAgIE11dGV4TG9ja2VyIGxvY2tlcigqbXV0ZXgpOworI2Vsc2UKKyAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOworI2VuZGlmCisKKyAgICB1bnNpZ25lZCBjaGFyKiByZXN1bHQg
PSByZWludGVycHJldF9jYXN0PHVuc2lnbmVkIGNoYXIqPihidWZmZXIpOworICAgIHN0aXJJZk5l
ZWRlZCgpOworICAgIHdoaWxlIChsZW5ndGgtLSkgeworICAgICAgICBpZiAoLS1zdHJlYW1Db3Vu
dCA8PSAwKQorICAgICAgICAgICAgc3RpcigpOworICAgICAgICByZXN1bHRbbGVuZ3RoXSA9IGdl
dEJ5dGUoKTsKKyAgICB9Cit9CisKKyNlbmRpZgorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL0NyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL0NyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNzNiMGExODU4ZDg0MGZiMThhMDE0ZDNjMjlmM2ZlYzU1OGU4MzViZQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvQ3J5cHRvZ3JhcGhpY2FsbHlSYW5k
b21OdW1iZXIuaApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IFRv
cmNoIE1vYmlsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIChodHRwOi8vd3d3LnRvcmNobW9i
aWxlLmNvbS8pCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgV1RGX0NyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVt
YmVyX2gKKyNkZWZpbmUgV1RGX0NyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyX2gKKworbmFt
ZXNwYWNlIFdURiB7CisKKyNpZiBVU0UoT1NfUkFORE9NTkVTUykKK3VpbnQzMl90IGNyeXB0b2dy
YXBoaWNhbGx5UmFuZG9tTnVtYmVyKCk7Cit2b2lkIGNyeXB0b2dyYXBoaWNhbGx5UmFuZG9tVmFs
dWVzKHZvaWQqIGJ1ZmZlciwgc2l6ZV90IGxlbmd0aCk7CisjZW5kaWYKKworfQorCisjaWYgVVNF
KE9TX1JBTkRPTU5FU1MpCit1c2luZyBXVEY6OmNyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVy
OwordXNpbmcgV1RGOjpjcnlwdG9ncmFwaGljYWxseVJhbmRvbVZhbHVlczsKKyNlbmRpZgorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvT1NSYW5kb21Tb3Vy
Y2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9PU1JhbmRvbVNvdXJjZS5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNzhkZGRiOWEzYzI4ZGRhN2RmNGI1NjYxMTI0MzI3NjkxNjcyMzYyMAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvT1NSYW5kb21Tb3VyY2UuY3Bw
CkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEdPT0dMRSwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJPU1Jh
bmRvbVNvdXJjZS5oIgorCisjaW5jbHVkZSA8c3RkaW50Lmg+CisjaW5jbHVkZSA8c3RkbGliLmg+
CisKKyNpZiBPUyhVTklYKQorI2luY2x1ZGUgPGZjbnRsLmg+CisjZW5kaWYKKworbmFtZXNwYWNl
IFdURiB7CisKKyNpZiBVU0UoT1NfUkFORE9NTkVTUykKK3ZvaWQgcmFuZG9tVmFsdWVzRnJvbU9T
KHVuc2lnbmVkIGNoYXIqIGJ1ZmZlciwgc2l6ZV90IGxlbmd0aCkKK3sKKyNpZiBDT01QSUxFUihN
U1ZDKSAmJiBkZWZpbmVkKF9DUlRfUkFORF9TKQorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
bGVuZ3RoOyBpKyspIHsKKyAgICAgICAgdWludDMyX3QgYml0czsKKyAgICAgICAgcmFuZF9zKCZi
aXRzKTsKKyAgICAgICAgYnVmZmVyW2ldID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4oYml0
cyk7CisgICAgfQorI2VsaWYgT1MoREFSV0lOKQorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
bGVuZ3RoOyBpKyspIHsKKyAgICAgICAgdWludDMyX3QgYml0czsKKyAgICAgICAgYml0cyA9IGFy
YzRyYW5kb20oKTsKKyAgICAgICAgYnVmZmVyW2ldID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hh
cj4oYml0cyk7CisgICAgfQorI2VsaWYgT1MoVU5JWCkKKyAgICBmZCA9IG9wZW4oIi9kZXYvdXJh
bmRvbSIsIE9fUkRPTkxZLCAwKTsKKyAgICBpZiAoZmQgPj0gMCkgeworICAgICAgICByZWFkKGZk
LCBidWZmZXIsIGxlbmd0aCk7CisgICAgICAgIGNsb3NlKGZkKTsKKyAgICB9CisgICAgLy8gRklY
TUU6IFdoYXQgZG8gd2UgZG8gaWYgd2UgY2FuJ3QgcmVhZCAvZGV2L3VyYW5kb20/CisjZWxzZQor
ICAgICNlcnJvciBUaGlzIGNvbmZpZ3VyYXRpb24gZG9lc24ndCBoYXZlIGEgc3Ryb25nIHNvdXJj
ZSBvZiByYW5kb21uZXNzLgorICAgIC8vIFdBUk5JTkc6IFdoZW4gYWRkaW5nIG5ldyBzb3VyY2Vz
IG9mIE9TIHJhbmRvbW5lc3MsIHRoZSByYW5kb21uZXNzIG11c3QKKyAgICAvLyAgICAgICAgICBi
ZSBvZiBjcnlwdG9ncmFwaGljIHF1YWxpdHkhCisjZW5kaWYKK30KKyNlbmRpZgorCit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL09TUmFuZG9tU291cmNlLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd3RmL09TUmFuZG9tU291cmNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDU1ZmEx
ZGFiNTA3ZGJhMjk1NjY0NWFjYzU3N2Y0OGRhNWM1ZTNlNwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvT1NSYW5kb21Tb3VyY2UuaApAQCAtMCwwICsxLDQxIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSBHb29nbGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEdPT0dMRSwgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpZm5kZWYgV1RGX09TUmFuZG9tU291cmNlX2gKKyNkZWZpbmUgV1RGX09TUmFuZG9tU291cmNl
X2gKKworbmFtZXNwYWNlIFdURiB7CisKKyNpZiBVU0UoT1NfUkFORE9NTkVTUykKKy8vIFRoaXMg
ZnVuY3Rpb24gYXR0ZW1wdHMgdG8gZmlsbCBidWZmZXIgd2l0aCByYW5kb21uZXNzIGZyb20gdGhl
IG9wZXJhdGluZworLy8gc3lzdGVtLiAgSWYgaW5zdWZmaWNpZW50IHJhbmRvbW5lc3MgaXMgYXZh
aWxhYmxlLCB0aGUgYnVmZmVyIHdpbGwgYmUKKy8vIHBhcnRpYWxseSBmaWxsZWQuICBSYXRoZXIg
dGhhbiBjYWxsaW5nIHRoaXMgZnVuY3Rpb24gZGlyZWN0bHksIGNvbnNpZGVyCisvLyBjYWxsaW5n
IGNyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyIG9yIGNyeXB0b2dyYXBoaWNhbGx5UmFuZG9t
VmFsdWVzLgordm9pZCByYW5kb21WYWx1ZXNGcm9tT1ModW5zaWduZWQgY2hhciogYnVmZmVyLCBz
aXplX3QgbGVuZ3RoKTsKKyNlbmRpZgorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3d0Zi93dGYucHJpIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi93
dGYucHJpCmluZGV4IDg4ZDY5NWYwZjI1ZGMxYWUzOTQ4NTg2ODIzYTUzZjNhNTYzNDhiZTEuLjNi
ZTNiNWZjNGU4ZGJlYzgyZGVlYTBkNmVmMTNmNGMwYWY3ZTFiMGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvd3RmLnByaQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d3RmL3d0Zi5wcmkKQEAgLTMsNiArMyw3IEBACiBTT1VSQ0VTICs9IFwKICAgICB3dGYvQXNzZXJ0
aW9ucy5jcHAgXAogICAgIHd0Zi9CeXRlQXJyYXkuY3BwIFwKKyAgICB3dGYvQ3J5cHRvZ3JhcGhp
Y2FsbHlSYW5kb21OdW1iZXIuY3BwIFwKICAgICB3dGYvQ3VycmVudFRpbWUuY3BwIFwKICAgICB3
dGYvRGF0ZU1hdGguY3BwIFwKICAgICB3dGYvZHRvYS5jcHAgXApAQCAtMTQsNiArMTUsNyBAQCBT
T1VSQ0VTICs9IFwKICAgICB3dGYvTUQ1LmNwcCBcCiAgICAgd3RmL01haW5UaHJlYWQuY3BwIFwK
ICAgICB3dGYvTnVsbFB0ci5jcHAgXAorICAgIHd0Zi9PU1JhbmRvbVNvdXJjZS5jcHAgXAogICAg
IHd0Zi9xdC9NYWluVGhyZWFkUXQuY3BwIFwKICAgICB3dGYvcXQvU3RyaW5nUXQuY3BwIFwKICAg
ICB3dGYvcXQvVGhyZWFkaW5nUXQuY3BwIFwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81780</attachid>
            <date>2011-02-09 02:36:54 -0800</date>
            <delta_ts>2011-02-09 02:40:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54083-20110209023653.patch</filename>
            <type>text/plain</type>
            <size>26386</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzgwMjcKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BbmRyb2lkLm1rIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FuZHJvaWQubWsKaW5kZXgg
NDJkMjA0MTQwOTVhMWQ0NDNiMjkwN2MwNGQ1NTA2MDlkZGU3YmZkZS4uY2I2ODFkZDA0ZmU2OWVj
Y2NkYTE1NmRjZTBiZjA2NzEwNjcwNmIwMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FuZHJvaWQubWsKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FuZHJvaWQubWsKQEAg
LTE2MSwxNyArMTYxLDE5IEBAIExPQ0FMX1NSQ19GSUxFUyA6PSBcCiAJXAogCXd0Zi9Bc3NlcnRp
b25zLmNwcCBcCiAJd3RmL0J5dGVBcnJheS5jcHAgXAorCXd0Zi9DcnlwdG9ncmFwaGljYWxseVJh
bmRvbU51bWJlci5jcHAgXAogCXd0Zi9DdXJyZW50VGltZS5jcHAgXAogCXd0Zi9EYXRlTWF0aC5j
cHAgXAogCXd0Zi9EZWNpbWFsTnVtYmVyLmNwcCBcCiAJd3RmL0Zhc3RNYWxsb2MuY3BwIFwKIAl3
dGYvSGFzaFRhYmxlLmNwcCBcCiAJd3RmL01haW5UaHJlYWQuY3BwIFwKKwl3dGYvT1NSYW5kb21T
b3VyY2UuY3BwIFwKIAl3dGYvUGFnZUFsbG9jYXRpb25BbGlnbmVkLmNwcFwKIAl3dGYvUGFnZUJs
b2NrLmNwcFwKIAl3dGYvUmFuZG9tTnVtYmVyLmNwcCBcCiAJd3RmL1JlZkNvdW50ZWRMZWFrQ291
bnRlci5jcHAgXAotICAgIHd0Zi9TdGFja0JvdW5kcy5jcHAgXAorCXd0Zi9TdGFja0JvdW5kcy5j
cHAgXAogCXd0Zi9UQ1N5c3RlbUFsbG9jLmNwcCBcCiAJd3RmL1RocmVhZElkZW50aWZpZXJEYXRh
UHRocmVhZHMuY3BwIFwKIAl3dGYvVGhyZWFkaW5nLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQW5kcm9pZC52OC53dGYubWsgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QW5kcm9pZC52OC53dGYubWsKaW5kZXggNDJjYmZlODUwZmRjZGVlYmRkMGFiMjY4ZjQ0ZDEyN2M5
ODg1NzMxOC4uZGMwNzgyOGU0ODA3ZjRjZjZlY2E1ZWQ2NDEwNzUyNjkwODBiNzA3ZiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FuZHJvaWQudjgud3RmLm1rCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BbmRyb2lkLnY4Lnd0Zi5tawpAQCAtMzQsMTUgKzM0LDE3IEBAIExP
Q0FMX1NSQ19GSUxFUyA6PSBcCiAJXAogCXd0Zi9Bc3NlcnRpb25zLmNwcCBcCiAJd3RmL0J5dGVB
cnJheS5jcHAgXAorCXd0Zi9DcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5jcHAgXAogCXd0
Zi9DdXJyZW50VGltZS5jcHAgXAogCXd0Zi9EYXRlTWF0aC5jcHAgXAogCXd0Zi9EZWNpbWFsTnVt
YmVyLmNwcCBcCiAJd3RmL0Zhc3RNYWxsb2MuY3BwIFwKIAl3dGYvSGFzaFRhYmxlLmNwcCBcCiAJ
d3RmL01haW5UaHJlYWQuY3BwIFwKKwl3dGYvT1NSYW5kb21Tb3VyY2UuY3BwIFwKIAl3dGYvUmFu
ZG9tTnVtYmVyLmNwcCBcCiAJd3RmL1JlZkNvdW50ZWRMZWFrQ291bnRlci5jcHAgXAotICAgIHd0
Zi9TdGFja0JvdW5kcy5jcHAgXAorCXd0Zi9TdGFja0JvdW5kcy5jcHAgXAogCXd0Zi9UQ1N5c3Rl
bUFsbG9jLmNwcCBcCiAJd3RmL1RocmVhZElkZW50aWZpZXJEYXRhUHRocmVhZHMuY3BwIFwKIAl3
dGYvVGhyZWFkaW5nLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0Y2RjOGUwZDY2
Nzc4NzBkN2NmM2VkM2I1OWE2N2E0MWM5YjljNjVmLi44ZjEwOTEwNjAzNGZjMjA3MTA3OTIyYzhi
ODEzMWIyZDYxM2NhYmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NCBA
QAorMjAxMS0wMi0wOSAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBXVEY6OmNyeXB0b2dy
YXBoaWNhbGx5UmFuZG9tTnVtYmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD01NDA4MworCisgICAgICAgIEludHJvZHVjZSBhIGNyeXB0b2dyYXBoaWNh
bGx5IHN0cm9uZyByYW5kb20gbnVtYmVyIGdlbmVyYXRvciB0byBXVEYuCisgICAgICAgIFRoZSBy
YW5kb20gbnVtYmVyIGdlbmVyYXRvciBpcyBiYXNlZCBvbiBhcmM0cmFuZG9tIGFzIGZvdW5kIGlu
OgorCisgICAgICAgIGh0dHA6Ly93d3cub3BlbmJzZC5vcmcvY2dpLWJpbi9jdnN3ZWIvc3JjL2xp
Yi9saWJjL2NyeXB0L2FyYzRyYW5kb20uYz9yZXY9MS4yMgorCisgICAgICAgIEkndmUgY2hhbmdl
ZCB0byBzb3VyY2UgdG8gV2ViS2l0IHN0eWxlIGFuZCBhYnN0cmFjdGVkIHRoZSBvcGVyYXRpbmcK
KyAgICAgICAgc3lzdGVtIGludGVyYWN0aW9uIHRvIE9TUmFuZG9tU291cmNlLiAgV2UnbGwgdXNl
IHRoaXMgZnVuY3Rpb25hbGl0eSB0bworICAgICAgICBleHBvc2UgYSBjcnlwdG9ncmFwaGljYWxs
eSBzdHJvbmcgcmFuZG9tIG51bWJlciBnZW5lcmF0b3IgdG8KKyAgICAgICAgSmF2YVNjcmlwdC4K
KworICAgICAgICAqIEFuZHJvaWQubWs6CisgICAgICAgICogQW5kcm9pZC52OC53dGYubWs6Cisg
ICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogSmF2YVNjcmlwdENvcmUuZ3lwaToK
KyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3Byb2ovV1RGL1dURi52Y3Byb2o6CisgICAgICAg
ICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBj
b25maWcuaDoKKyAgICAgICAgKiB3dGYvQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogd3RmL0Ny
eXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmNwcDogQWRkZWQuCisgICAgICAgIChXVEY6Omlu
aXRNdXRleElmTmVlZGVkKToKKyAgICAgICAgKFdURjo6aW5pdCk6CisgICAgICAgIChXVEY6OmFk
ZFJhbmRvbURhdGEpOgorICAgICAgICAoV1RGOjpzdGlyKToKKyAgICAgICAgKFdURjo6c3Rpcklm
TmVlZGVkKToKKyAgICAgICAgKFdURjo6Z2V0Qnl0ZSk6CisgICAgICAgIChXVEY6OmdldFdvcmQp
OgorICAgICAgICAoV1RGOjpjcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlcik6CisgICAgICAg
IChXVEY6OmNyeXB0b2dyYXBoaWNhbGx5UmFuZG9tVmFsdWVzKToKKyAgICAgICAgKiB3dGYvQ3J5
cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1iZXIuaDogQWRkZWQuCisgICAgICAgICogd3RmL09TUmFu
ZG9tU291cmNlLmNwcDogQWRkZWQuCisgICAgICAgIChXVEY6OnJhbmRvbVZhbHVlc0Zyb21PUyk6
CisgICAgICAgICogd3RmL09TUmFuZG9tU291cmNlLmg6IEFkZGVkLgorICAgICAgICAqIHd0Zi93
dGYucHJpOgorCiAyMDExLTAyLTA4ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVt
YWtlZmlsZS5hbQppbmRleCA1MmQ2YjY5YjVlOTgxYzgxYzkzOWE2NTNjYTUxOTFlZmEzZDlhMmE1
Li42OTYyNTg0MDU3ODZjNDA3NjVlNDZmZWM4MjJjNmRjMWNiZWYxYzk3IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC00NDMsNiArNDQzLDggQEAgamF2YXNjcmlwdGNvcmVf
c291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9CeXRlQXJyYXkuY3BwIFwK
IAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0J5dGVBcnJheS5oIFwKIAlTb3VyY2UvSmF2YVNj
cmlwdENvcmUvd3RmL0Nyb3NzVGhyZWFkUmVmQ291bnRlZC5oIFwKKwlTb3VyY2UvSmF2YVNjcmlw
dENvcmUvd3RmL0NyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmNwcCBcCisJU291cmNlL0ph
dmFTY3JpcHRDb3JlL3d0Zi9DcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5oIFwKIAlTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd3RmL0N1cnJlbnRUaW1lLmNwcCBcCiAJU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9DdXJyZW50VGltZS5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0Rh
dGVNYXRoLmNwcCBcCkBAIC00OTEsNiArNDkzLDggQEAgamF2YXNjcmlwdGNvcmVfc291cmNlcyAr
PSBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9Ob3RGb3VuZC5oIFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL051bGxQdHIuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9P
U0FsbG9jYXRvci5oIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL09TUmFuZG9tU291cmNl
LmNwcCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9PU1JhbmRvbVNvdXJjZS5oIFwKIAlT
b3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL093bkFycmF5UHRyLmggXAogCVNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93dGYvT3duRmFzdE1hbGxvY1B0ci5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUv
d3RmL093blB0ckNvbW1vbi5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS5neXBpIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
Lmd5cGkKaW5kZXggNDE3ODY4MzhkNjBhYWUwYjZlMWY4ZTk3NDQyODJjMjUzNDE3YmFiZi4uYzRk
ZjZkNjg0M2E0MDBkOWEyMTQzMDRmYzFmMTA1ZTg2ZTY0NWRmYSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5cGkKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5cGkKQEAgLTM3NCw2ICszNzQsOCBAQAogICAgICAgICAg
ICAgJ3d0Zi9jaHJvbWl1bS9DaHJvbWl1bVRocmVhZGluZy5oJywKICAgICAgICAgICAgICd3dGYv
Y2hyb21pdW0vTWFpblRocmVhZENocm9taXVtLmNwcCcsCiAgICAgICAgICAgICAnd3RmL0Nyb3Nz
VGhyZWFkUmVmQ291bnRlZC5oJywKKyAgICAgICAgICAgICd3dGYvQ3J5cHRvZ3JhcGhpY2FsbHlS
YW5kb21OdW1iZXIuY3BwJywKKyAgICAgICAgICAgICd3dGYvQ3J5cHRvZ3JhcGhpY2FsbHlSYW5k
b21OdW1iZXIuaCcsCiAgICAgICAgICAgICAnd3RmL0N1cnJlbnRUaW1lLmNwcCcsCiAgICAgICAg
ICAgICAnd3RmL0N1cnJlbnRUaW1lLmgnLAogICAgICAgICAgICAgJ3d0Zi9EYXRlTWF0aC5jcHAn
LApAQCAtNDE2LDYgKzQxOCw4IEBACiAgICAgICAgICAgICAnd3RmL09TQWxsb2NhdG9yUG9zaXgu
Y3BwJywKICAgICAgICAgICAgICd3dGYvT1NBbGxvY2F0b3JXaW4uY3BwJywKICAgICAgICAgICAg
ICd3dGYvT1NBbGxvY2F0b3IuaCcsCisgICAgICAgICAgICAnd3RmL09TUmFuZG9tU291cmNlLmNw
cCcsCisgICAgICAgICAgICAnd3RmL09TUmFuZG9tU291cmNlLmgnLAogICAgICAgICAgICAgJ3d0
Zi9Pd25BcnJheVB0ci5oJywKICAgICAgICAgICAgICd3dGYvT3duRmFzdE1hbGxvY1B0ci5oJywK
ICAgICAgICAgICAgICd3dGYvT3duUHRyLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9XVEYvV1RGLnZjcHJvaiBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovV1RGL1dURi52Y3Byb2oKaW5kZXggNzgy
MGQxMzU0MjU1MDlkZjkwMzk0N2I5M2NhMGYxOTk3N2M5OTQ5Yy4uNTUzNzFmM2RhMDExMWU4ZjA1
OTI2MzlmMmM1ZGZjNTU4MTVkMjNmMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnZjcHJvai9XVEYvV1RGLnZjcHJvagorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL1dURi9XVEYudmNwcm9qCkBAIC01NjEsNiAr
NTYxLDE0IEBACiAJCQk+CiAJCTwvRmlsZT4KIAkJPEZpbGUKKwkJCVJlbGF0aXZlUGF0aD0iLi5c
Li5cd3RmXENyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmNwcCIKKwkJCT4KKwkJPC9GaWxl
PgorCQk8RmlsZQorCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlx3dGZcQ3J5cHRvZ3JhcGhpY2FsbHlS
YW5kb21OdW1iZXIuaCIKKwkJCT4KKwkJPC9GaWxlPgorCQk8RmlsZQogCQkJUmVsYXRpdmVQYXRo
PSIuLlwuLlx3dGZcQ3VycmVudFRpbWUuY3BwIgogCQkJPgogCQk8L0ZpbGU+CkBAIC03NTMsNiAr
NzYxLDE0IEBACiAJCQk+CiAJCTwvRmlsZT4KIAkJPEZpbGUKKwkJCVJlbGF0aXZlUGF0aD0iLi5c
Li5cd3RmXE9TUmFuZG9tU291cmNlLmNwcCIKKwkJCT4KKwkJPC9GaWxlPgorCQk8RmlsZQorCQkJ
UmVsYXRpdmVQYXRoPSIuLlwuLlx3dGZcT1NSYW5kb21Tb3VyY2UuaCIKKwkJCT4KKwkJPC9GaWxl
PgorCQk8RmlsZQogCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlx3dGZcT3duQXJyYXlQdHIuaCIKIAkJ
CT4KIAkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzYmQzOTBiODUx
ZjRkZTBhZjM3NWVhMzVkNTZkNzkwZDYyZWY5NGY3Li45OTg2MjM5ZDE0ZDU5ODdmMTU4OGQ3ZWEx
NjdhMDg5OGU2OWM4MmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzM4LDYg
KzMzOCwxMCBAQAogCQk5NzFFREVBNjExNjlFMEQzMDA1RTQyNjIgLyogVGVybWluYXRvci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTdGNjkwM0ExMTY5
REY3RjAwQTZCQjQ2IC8qIFRlcm1pbmF0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk5NzJBNDg1RjEyNjYxRTA4MDBGNDUxNEYgLyogVVJMQ2hh
cmFjdGVyVHlwZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTcyQTQ4NUQxMjY2MUUwODAwRjQ1MTRGIC8qIFVSTENoYXJhY3RlclR5cGVzLmNwcCAq
LzsgfTsKIAkJOTcyQTQ4NzcxMjY2MjU2RjAwRjQ1MTRGIC8qIFVSTEVzY2FwZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzJBNDg3NDEyNjYyNTZG
MDBGNDUxNEYgLyogVVJMRXNjYXBlLmNwcCAqLzsgfTsKKwkJOTc5NDFBNTcxMzAyOUFBQjAwNEEz
NDQ3IC8qIE9TUmFuZG9tU291cmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDk3OTQxQTNGMTMwMjk5REIwMDRBMzQ0NyAvKiBPU1JhbmRvbVNvdXJj
ZS5jcHAgKi87IH07CisJCTk3OTQxQTVBMTMwMjlBQ0MwMDRBMzQ0NyAvKiBPU1JhbmRvbVNvdXJj
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc5NDFB
NDAxMzAyOTlEQjAwNEEzNDQ3IC8qIE9TUmFuZG9tU291cmNlLmggKi87IH07CisJCTk3OTQxQTdF
MTMwMkEwOTgwMDRBMzQ0NyAvKiBDcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5Nzk0MUE3QzEzMDJB
MDk4MDA0QTM0NDcgLyogQ3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1iZXIuY3BwICovOyB9Owor
CQk5Nzk0MUE3RjEzMDJBMDk4MDA0QTM0NDcgLyogQ3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1i
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3OTQx
QTdEMTMwMkEwOTgwMDRBMzQ0NyAvKiBDcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5oICov
OyB9OwogCQlBMTcxMkIzQjExQzdCMjEyMDA3QTUzMTUgLyogUmVnRXhwQ2FjaGUuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTE3MTJCM0ExMUM3QjIx
MjAwN0E1MzE1IC8qIFJlZ0V4cENhY2hlLmNwcCAqLzsgfTsKIAkJQTE3MTJCM0YxMUM3QjIyODAw
N0E1MzE1IC8qIFJlZ0V4cENhY2hlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBMTcxMkIzRTExQzdCMjI4MDA3QTUzMTUgLyogUmVnRXhwQ2FjaGUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBMTcxMkI0
MTExQzdCMjM1MDA3QTUzMTUgLyogUmVnRXhwS2V5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTcxMkI0MDExQzdCMjM1MDA3QTUzMTUgLyogUmVnRXhw
S2V5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAg
LTEwMDYsNiArMTAxMCwxMCBAQAogCQk5NzJBNDg3NDEyNjYyNTZGMDBGNDUxNEYgLyogVVJMRXNj
YXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFVSTEVzY2FwZS5j
cHA7IHBhdGggPSB1cmwvc3JjL1VSTEVzY2FwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTk3MkE0ODc1MTI2NjI1NkYwMEY0NTE0RiAvKiBVUkxFc2NhcGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gVVJMRXNjYXBlLmg7IHBhdGggPSB1cmwvc3JjL1VSTEVz
Y2FwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzJBNDg3NjEyNjYyNTZGMDBG
NDUxNEYgLyogVVJMUXVlcnlDYW5vbmljYWxpemVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IFVSTFF1ZXJ5Q2Fub25pY2FsaXplci5oOyBwYXRoID0gdXJsL3NyYy9VUkxRdWVy
eUNhbm9uaWNhbGl6ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTc5NDFBM0Yx
MzAyOTlEQjAwNEEzNDQ3IC8qIE9TUmFuZG9tU291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IE9TUmFuZG9tU291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOTc5NDFBNDAxMzAyOTlEQjAwNEEzNDQ3IC8qIE9TUmFuZG9tU291cmNlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE9TUmFuZG9tU291cmNlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk3OTQxQTdDMTMwMkEwOTgwMDRBMzQ0NyAvKiBDcnlw
dG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBDcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTk3OTQxQTdEMTMwMkEwOTgwMDRBMzQ0NyAvKiBDcnlwdG9ncmFw
aGljYWxseVJhbmRvbU51bWJlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBD
cnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5N0Y2OTAzQTExNjlERjdGMDBBNkJCNDYgLyogVGVybWluYXRvci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBUZXJtaW5hdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUExNzEyQjNBMTFDN0IyMTIwMDdBNTMxNSAvKiBSZWdFeHBDYWNoZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWdFeHBDYWNoZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExNzEyQjNFMTFDN0IyMjgwMDdBNTMxNSAvKiBSZWdF
eHBDYWNoZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWdFeHBDYWNoZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTUzNyw2ICsxNTQ1LDggQEAKIAkJCQlB
N0ExRjdBQjBGMjUyQjNDMDBFMTg0RTIgLyogQnl0ZUFycmF5LmggKi8sCiAJCQkJRkRBMTVDMTYx
MkIwMzAyODAwM0E1ODNBIC8qIENvbXBsZXguaCAqLywKIAkJCQkwQkRGRkFENDBGQzYxNzEwMDBE
NjlFRjQgLyogQ3Jvc3NUaHJlYWRSZWZDb3VudGVkLmggKi8sCisJCQkJOTc5NDFBN0MxMzAyQTA5
ODAwNEEzNDQ3IC8qIENyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmNwcCAqLywKKwkJCQk5
Nzk0MUE3RDEzMDJBMDk4MDA0QTM0NDcgLyogQ3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1iZXIu
aCAqLywKIAkJCQkxODBCOUFFRjBGMTZDNTY5MDA5QkRCQzUgLyogQ3VycmVudFRpbWUuY3BwICov
LAogCQkJCTE4MEI5QUYwMEYxNkM1NjkwMDlCREJDNSAvKiBDdXJyZW50VGltZS5oICovLAogCQkJ
CTQxMzU5Q0Y0MEZERDg5Q0IwMDIwNjE4MCAvKiBEYXRlTWF0aC5jcHAgKi8sCkBAIC0xNTc5LDYg
KzE1ODksOCBAQAogCQkJCTkzM0Y1Q0RCMTI2OTIyNjkwMDQ5MTkxRSAvKiBOdWxsUHRyLmggKi8s
CiAJCQkJMTQwMDA2NzYxMkE2Rjc4MzAwNjREMTIzIC8qIE9TQWxsb2NhdG9yLmggKi8sCiAJCQkJ
MTQwMDA2OTIxMkE2RjlFMTAwNjREMTIzIC8qIE9TQWxsb2NhdG9yUG9zaXguY3BwICovLAorCQkJ
CTk3OTQxQTNGMTMwMjk5REIwMDRBMzQ0NyAvKiBPU1JhbmRvbVNvdXJjZS5jcHAgKi8sCisJCQkJ
OTc5NDFBNDAxMzAyOTlEQjAwNEEzNDQ3IC8qIE9TUmFuZG9tU291cmNlLmggKi8sCiAJCQkJOTMw
M0Y1QTQwOTkxMUE1ODAwQUQ3MUI4IC8qIE93bkFycmF5UHRyLmggKi8sCiAJCQkJMEJERkZBRDEw
RkM2MTZFQzAwRDY5RUY0IC8qIE93bkZhc3RNYWxsb2NQdHIuaCAqLywKIAkJCQk5MzAzRjU2NzA5
OTExOEZBMDBBRDcxQjggLyogT3duUHRyLmggKi8sCkBAIC0yNDQ0LDYgKzI0NTYsOCBAQAogCQkJ
CUU0OURDMTZEMTJFRjI5NTMwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRlckNhY2hlSXRlbS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMTRDODI0QUQxMkY3Qzc4NTAwOEYzNUUwIC8qIE1hcmtlZEJsb2Nr
LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNEQ4Q0VGQjEyRkM0Mzk2MDBCQzlGNUEgLyogQmxvb21G
aWx0ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTk3OTQxQTVBMTMwMjlBQ0MwMDRBMzQ0NyAvKiBP
U1JhbmRvbVNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTc5NDFBN0YxMzAyQTA5ODAwNEEz
NDQ3IC8qIENyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAg
LTI5MTMsNiArMjkyNyw4IEBACiAJCQkJODY3MDRCNDIxMkRCOEE4MTAwQTlGRTdCIC8qIFlhcnJT
eW50YXhDaGVja2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUU0OURDMTZCMTJFRjI5M0UwMDE4
NEExRiAvKiBTb3VyY2VQcm92aWRlckNhY2hlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0Qzgy
NEFCMTJGN0M3N0UwMDhGMzVFMCAvKiBNYXJrZWRCbG9jay5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQk5Nzk0MUE1NzEzMDI5QUFCMDA0QTM0NDcgLyogT1NSYW5kb21Tb3VyY2UuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJOTc5NDFBN0UxMzAyQTA5ODAwNEEzNDQ3IC8qIENyeXB0b2dyYXBoaWNhbGx5
UmFuZG9tTnVtYmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBs
b3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2NvbmZpZy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2NvbmZpZy5oCmluZGV4
IGEyYjYyODU4OWYzMmQ2MzYzYmViZGViZTQzOWY1YWQ3ZjcxM2QyZGUuLjIzZTY1OWE4MGM0MGIx
YjVmMzVlZmEyNDI5NDk1MGM5NDhkNWI5MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9jb25maWcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvY29uZmlnLmgKQEAgLTUy
LDExICs1MiwxNiBAQAogLy8gV2UgbmVlZCB0byBkZWZpbmUgdGhpcyBiZWZvcmUgdGhlIGZpcnN0
ICNpbmNsdWRlIG9mIHN0ZGxpYi5oIG9yIGl0IHdvbid0IGNvbnRhaW4gcmFuZF9zLgogI2lmbmRl
ZiBfQ1JUX1JBTkRfUwogI2RlZmluZSBfQ1JUX1JBTkRfUworI2RlZmluZSBXVEZfVVNFX09TX1JB
TkRPTU5FU1MgMQogI2VuZGlmCiAjZW5kaWYKIAogI2VuZGlmCiAKKyNpZiBPUyhEQVJXSU4pIHx8
IE9TKFVOSVgpCisjZGVmaW5lIFdURl9VU0VfT1NfUkFORE9NTkVTUyAxCisjZW5kaWYKKwogI2lm
IE9TKEZSRUVCU0QpIHx8IE9TKE9QRU5CU0QpCiAjZGVmaW5lIEhBVkVfUFRIUkVBRF9OUF9IIDEK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9DTWFrZUxpc3Rz
LnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvQ01ha2VMaXN0cy50eHQKaW5kZXggMzgx
ZWFiN2QzMWI2ZmU1Njg0Yjg2NmQ2ZjkyYWYwMDZlNTFjY2EyZC4uZjg1YmYwMjA3NGNlZjdmNTM3
MzY5ZTQwOGZmNDFiNjUxNjM3NWU5NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3d0Zi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0NNYWtl
TGlzdHMudHh0CkBAIC05LDYgKzksNyBAQCBTRVQoV1RGX0hFQURFUlMKICAgICBCeXRlQXJyYXku
aAogICAgIENvbXBsZXguaAogICAgIENyb3NzVGhyZWFkUmVmQ291bnRlZC5oCisgICAgQ3J5cHRv
Z3JhcGhpY2FsbHlSYW5kb21OdW1iZXIuaAogICAgIEN1cnJlbnRUaW1lLmgKICAgICBEYXRlTWF0
aC5oCiAgICAgRGVjaW1hbE51bWJlci5oCkBAIC00MSw2ICs0Miw3IEBAIFNFVChXVEZfSEVBREVS
UwogICAgIE5vdEZvdW5kLmgKICAgICBOdWxsUHRyLmgKICAgICBPU0FsbG9jYXRvci5oCisgICAg
T1NSYW5kb21Tb3VyY2UuaAogICAgIE93bkFycmF5UHRyLmgKICAgICBPd25GYXN0TWFsbG9jUHRy
LmgKICAgICBPd25QdHIuaApAQCAtMTAzLDEyICsxMDUsMTQgQEAgU0VUKFdURl9IRUFERVJTCiBT
RVQoV1RGX1NPVVJDRVMKICAgICBBc3NlcnRpb25zLmNwcAogICAgIEJ5dGVBcnJheS5jcHAKKyAg
ICBDcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5jcHAKICAgICBDdXJyZW50VGltZS5jcHAK
ICAgICBEZWNpbWFsTnVtYmVyLmNwcAogICAgIEZhc3RNYWxsb2MuY3BwCiAgICAgSGFzaFRhYmxl
LmNwcAogICAgIE1haW5UaHJlYWQuY3BwCiAgICAgTUQ1LmNwcAorICAgIE9TUmFuZG9tU291cmNl
LmNwcAogICAgIFJhbmRvbU51bWJlci5jcHAKICAgICBSZWZDb3VudGVkTGVha0NvdW50ZXIuY3Bw
CiAgICAgU3RhY2tCb3VuZHMuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d3RmL0NyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93dGYvQ3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1iZXIuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgx
YTdhMTM0OGM1ODFjZjVhY2ViNWRkMzVhMzgxYTQ2OWRlZGFlNzQKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0NyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVy
LmNwcApAQCAtMCwwICsxLDE2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMTk5NiwgRGF2aWQg
TWF6aWVyZXMgPGRtQHV1bi5vcmc+CisgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIERhbWllbiBNaWxs
ZXIgPGRqbUBvcGVuYnNkLm9yZz4KKyAqCisgKiBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9k
aWZ5LCBhbmQgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnkKKyAqIHB1cnBvc2Ugd2l0
aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZCwgcHJvdmlkZWQgdGhhdCB0aGUgYWJv
dmUKKyAqIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgYXBwZWFy
IGluIGFsbCBjb3BpZXMuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIg
QU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTCisgKiBXSVRIIFJFR0FSRCBU
TyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GCisgKiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1Ig
QkUgTElBQkxFIEZPUgorICogQU5ZIFNQRUNJQUwsIERJUkVDVCwgSU5ESVJFQ1QsIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUworICogV0hBVFNPRVZFUiBSRVNVTFRJTkcg
RlJPTSBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOCisgKiBBQ1RJ
T04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1IgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklT
SU5HIE9VVCBPRgorICogT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1IgUEVSRk9STUFO
Q0UgT0YgVEhJUyBTT0ZUV0FSRS4KKyAqLworCisvKgorICogQXJjNCByYW5kb20gbnVtYmVyIGdl
bmVyYXRvciBmb3IgT3BlbkJTRC4KKyAqCisgKiBUaGlzIGNvZGUgaXMgZGVyaXZlZCBmcm9tIHNl
Y3Rpb24gMTcuMSBvZiBBcHBsaWVkIENyeXB0b2dyYXBoeSwKKyAqIHNlY29uZCBlZGl0aW9uLCB3
aGljaCBkZXNjcmliZXMgYSBzdHJlYW0gY2lwaGVyIGFsbGVnZWRseQorICogY29tcGF0aWJsZSB3
aXRoIFJTQSBMYWJzICJSQzQiIGNpcGhlciAodGhlIGFjdHVhbCBkZXNjcmlwdGlvbiBvZgorICog
d2hpY2ggaXMgYSB0cmFkZSBzZWNyZXQpLiAgVGhlIHNhbWUgYWxnb3JpdGhtIGlzIHVzZWQgYXMg
YSBzdHJlYW0KKyAqIGNpcGhlciBjYWxsZWQgImFyY2ZvdXIiIGluIFRhdHUgWWxvbmVuJ3Mgc3No
IHBhY2thZ2UuCisgKgorICogUkM0IGlzIGEgcmVnaXN0ZXJlZCB0cmFkZW1hcmsgb2YgUlNBIExh
Ym9yYXRvcmllcy4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ3J5cHRv
Z3JhcGhpY2FsbHlSYW5kb21OdW1iZXIuaCIKKworI2luY2x1ZGUgIk1haW5UaHJlYWQuaCIKKyNp
bmNsdWRlICJPU1JhbmRvbVNvdXJjZS5oIgorI2luY2x1ZGUgIlRocmVhZGluZ1ByaW1pdGl2ZXMu
aCIKKworbmFtZXNwYWNlIFdURiB7CisKKyNpZiBVU0UoT1NfUkFORE9NTkVTUykKKworbmFtZXNw
YWNlIHsKKworc3RydWN0IEFSQzRTdHJlYW0geworICAgIHVpbnQ4X3QgaTsKKyAgICB1aW50OF90
IGo7CisgICAgdWludDhfdCBzWzI1Nl07Cit9OworCitzdGF0aWMgaW50IHJhbmRvbVN0cmVhbUlu
aXRpYWxpemVkOworc3RhdGljIHN0cnVjdCBBUkM0U3RyZWFtIHJhbmRvbVN0cmVhbTsKK3N0YXRp
YyBpbnQgc3RyZWFtQ291bnQ7CitzdGF0aWMgTXV0ZXgqIG11dGV4OworCitpbmxpbmUgdWludDhf
dCBnZXRCeXRlKCk7CisKK2lubGluZSB2b2lkIGluaXRNdXRleElmTmVlZGVkKCkKK3sKKyAgICBp
ZiAobXV0ZXgpCisgICAgICAgIHJldHVybjsKKyAgICAvLyBUZWNobmljYWxseSB0aGVyZSdzIGEg
cmFjZSBjb25kaXRpb24gaW4gY3JlYXRpbmcgdGhlIG11dGV4LCBidXQgaXQncworICAgIC8vIHVu
Y2xlYXIgaG93IHRvIHJlbW92ZSB0aGUgcmFjZSBjb25kaXRpb24gd2l0aG91dCBhIHN0YXRpYyBp
bml0aWFsaXplci4KKyAgICBtdXRleCA9IG5ldyBNdXRleDsKK30KKworaW5saW5lIHZvaWQgaW5p
dCgpCit7CisgICAgZm9yIChpbnQgbiA9IDA7IG4gPCAyNTY7IG4rKykKKyAgICAgICAgcmFuZG9t
U3RyZWFtLnNbbl0gPSBuOworICAgIHJhbmRvbVN0cmVhbS5pID0gMDsKKyAgICByYW5kb21TdHJl
YW0uaiA9IDA7Cit9CisKK2lubGluZSB2b2lkIGFkZFJhbmRvbURhdGEodW5zaWduZWQgY2hhciAq
ZGF0YSwgaW50IGRhdGxlbikKK3sKKyAgICByYW5kb21TdHJlYW0uaS0tOworICAgIGZvciAoaW50
IG4gPSAwOyBuIDwgMjU2OyBuKyspIHsKKyAgICAgICAgcmFuZG9tU3RyZWFtLmkgPSAocmFuZG9t
U3RyZWFtLmkgKyAxKTsKKyAgICAgICAgdWludDhfdCBzaSA9IHJhbmRvbVN0cmVhbS5zW3JhbmRv
bVN0cmVhbS5pXTsKKyAgICAgICAgcmFuZG9tU3RyZWFtLmogPSAocmFuZG9tU3RyZWFtLmogKyBz
aSArIGRhdGFbbiAlIGRhdGxlbl0pOworICAgICAgICByYW5kb21TdHJlYW0uc1tyYW5kb21TdHJl
YW0uaV0gPSByYW5kb21TdHJlYW0uc1tyYW5kb21TdHJlYW0ual07CisgICAgICAgIHJhbmRvbVN0
cmVhbS5zW3JhbmRvbVN0cmVhbS5qXSA9IHNpOworICAgIH0KKyAgICByYW5kb21TdHJlYW0uaiA9
IHJhbmRvbVN0cmVhbS5pOworfQorCit2b2lkIHN0aXIoKQoreworICAgIGlmICghcmFuZG9tU3Ry
ZWFtSW5pdGlhbGl6ZWQpIHsKKyAgICAgICAgaW5pdCgpOworICAgICAgICByYW5kb21TdHJlYW1J
bml0aWFsaXplZCA9IDE7CisgICAgfQorCisgICAgdW5zaWduZWQgY2hhciByYW5kb21uZXNzWzEy
OF07CisgICAgc2l6ZV90IGxlbmd0aCA9IHNpemVvZihyYW5kb21uZXNzKTsKKyAgICByYW5kb21W
YWx1ZXNGcm9tT1MocmFuZG9tbmVzcywgbGVuZ3RoKTsKKyAgICBhZGRSYW5kb21EYXRhKHJhbmRv
bW5lc3MsIGxlbmd0aCk7CisKKyAgICAvLyBEaXNjYXJkIGVhcmx5IGtleXN0cmVhbSwgYXMgcGVy
IHJlY29tbWVuZGF0aW9ucyBpbjoKKyAgICAvLyBodHRwOi8vd3d3Lndpc2RvbS53ZWl6bWFubi5h
Yy5pbC9+aXRzaWsvUkM0L1BhcGVycy9SYzRfa3NhLnBzCisgICAgZm9yIChpbnQgaSA9IDA7IGkg
PCAyNTY7IGkrKykKKyAgICAgICAgZ2V0Qnl0ZSgpOworICAgIHN0cmVhbUNvdW50ID0gMTYwMDAw
MDsKK30KKwordm9pZCBzdGlySWZOZWVkZWQoKQoreworICAgIGlmIChzdHJlYW1Db3VudCA8PSAw
IHx8ICFyYW5kb21TdHJlYW1Jbml0aWFsaXplZCkKKyAgICAgICAgc3RpcigpOworfQorCitpbmxp
bmUgdWludDhfdCBnZXRCeXRlKCkKK3sKKyAgICByYW5kb21TdHJlYW0uaSA9IChyYW5kb21TdHJl
YW0uaSArIDEpOworICAgIHVpbnQ4X3Qgc2kgPSByYW5kb21TdHJlYW0uc1tyYW5kb21TdHJlYW0u
aV07CisgICAgcmFuZG9tU3RyZWFtLmogPSAocmFuZG9tU3RyZWFtLmogKyBzaSk7CisgICAgdWlu
dDhfdCBzaiA9IHJhbmRvbVN0cmVhbS5zW3JhbmRvbVN0cmVhbS5qXTsKKyAgICByYW5kb21TdHJl
YW0uc1tyYW5kb21TdHJlYW0uaV0gPSBzajsKKyAgICByYW5kb21TdHJlYW0uc1tyYW5kb21TdHJl
YW0ual0gPSBzaTsKKyAgICByZXR1cm4gKHJhbmRvbVN0cmVhbS5zWyhzaSArIHNqKSAmIDB4ZmZd
KTsKK30KKworaW5saW5lIHVpbnQzMl90IGdldFdvcmQoKQoreworICAgIHVpbnQzMl90IHZhbDsK
KyAgICB2YWwgPSBnZXRCeXRlKCkgPDwgMjQ7CisgICAgdmFsIHw9IGdldEJ5dGUoKSA8PCAxNjsK
KyAgICB2YWwgfD0gZ2V0Qnl0ZSgpIDw8IDg7CisgICAgdmFsIHw9IGdldEJ5dGUoKTsKKyAgICBy
ZXR1cm4gdmFsOworfQorCit9CisKK3VpbnQzMl90IGNyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVt
YmVyKCkKK3sKKyNpZiAhRU5BQkxFKEpTQ19NVUxUSVBMRV9USFJFQURTKQorICAgIGluaXRNdXRl
eElmTmVlZGVkKCk7CisgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKCptdXRleCk7CisjZWxzZQorICAg
IEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisjZW5kaWYKKworICAgIHN0cmVhbUNvdW50IC09IDQ7
CisgICAgc3RpcklmTmVlZGVkKCk7CisgICAgcmV0dXJuIGdldFdvcmQoKTsKK30KKwordm9pZCBj
cnlwdG9ncmFwaGljYWxseVJhbmRvbVZhbHVlcyh2b2lkKiBidWZmZXIsIHNpemVfdCBsZW5ndGgp
Cit7CisjaWYgIUVOQUJMRShKU0NfTVVMVElQTEVfVEhSRUFEUykKKyAgICBpbml0TXV0ZXhJZk5l
ZWRlZCgpOworICAgIE11dGV4TG9ja2VyIGxvY2tlcigqbXV0ZXgpOworI2Vsc2UKKyAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOworI2VuZGlmCisKKyAgICB1bnNpZ25lZCBjaGFyKiByZXN1bHQg
PSByZWludGVycHJldF9jYXN0PHVuc2lnbmVkIGNoYXIqPihidWZmZXIpOworICAgIHN0aXJJZk5l
ZWRlZCgpOworICAgIHdoaWxlIChsZW5ndGgtLSkgeworICAgICAgICBpZiAoLS1zdHJlYW1Db3Vu
dCA8PSAwKQorICAgICAgICAgICAgc3RpcigpOworICAgICAgICByZXN1bHRbbGVuZ3RoXSA9IGdl
dEJ5dGUoKTsKKyAgICB9Cit9CisKKyNlbmRpZgorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL0NyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL0NyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNzNiMGExODU4ZDg0MGZiMThhMDE0ZDNjMjlmM2ZlYzU1OGU4MzViZQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvQ3J5cHRvZ3JhcGhpY2FsbHlSYW5k
b21OdW1iZXIuaApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IFRv
cmNoIE1vYmlsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIChodHRwOi8vd3d3LnRvcmNobW9i
aWxlLmNvbS8pCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgV1RGX0NyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVt
YmVyX2gKKyNkZWZpbmUgV1RGX0NyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyX2gKKworbmFt
ZXNwYWNlIFdURiB7CisKKyNpZiBVU0UoT1NfUkFORE9NTkVTUykKK3VpbnQzMl90IGNyeXB0b2dy
YXBoaWNhbGx5UmFuZG9tTnVtYmVyKCk7Cit2b2lkIGNyeXB0b2dyYXBoaWNhbGx5UmFuZG9tVmFs
dWVzKHZvaWQqIGJ1ZmZlciwgc2l6ZV90IGxlbmd0aCk7CisjZW5kaWYKKworfQorCisjaWYgVVNF
KE9TX1JBTkRPTU5FU1MpCit1c2luZyBXVEY6OmNyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVy
OwordXNpbmcgV1RGOjpjcnlwdG9ncmFwaGljYWxseVJhbmRvbVZhbHVlczsKKyNlbmRpZgorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvT1NSYW5kb21Tb3Vy
Y2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9PU1JhbmRvbVNvdXJjZS5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYzgxOTZlN2NhZTI4YWRhMDA0YWIwYzhmNmIzYTZhOTJjZmNhM2I2OQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvT1NSYW5kb21Tb3VyY2UuY3Bw
CkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEdPT0dMRSwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJPU1Jh
bmRvbVNvdXJjZS5oIgorCisjaW5jbHVkZSA8c3RkaW50Lmg+CisjaW5jbHVkZSA8c3RkbGliLmg+
CisKKyNpZiBPUyhVTklYKQorI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+
CisjZW5kaWYKKworbmFtZXNwYWNlIFdURiB7CisKKyNpZiBVU0UoT1NfUkFORE9NTkVTUykKK3Zv
aWQgcmFuZG9tVmFsdWVzRnJvbU9TKHVuc2lnbmVkIGNoYXIqIGJ1ZmZlciwgc2l6ZV90IGxlbmd0
aCkKK3sKKyNpZiBDT01QSUxFUihNU1ZDKSAmJiBkZWZpbmVkKF9DUlRfUkFORF9TKQorICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKKyAgICAgICAgdWludDMyX3QgYml0
czsKKyAgICAgICAgcmFuZF9zKCZiaXRzKTsKKyAgICAgICAgYnVmZmVyW2ldID0gc3RhdGljX2Nh
c3Q8dW5zaWduZWQgY2hhcj4oYml0cyk7CisgICAgfQorI2VsaWYgT1MoREFSV0lOKQorICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKKyAgICAgICAgdWludDMyX3QgYml0
czsKKyAgICAgICAgYml0cyA9IGFyYzRyYW5kb20oKTsKKyAgICAgICAgYnVmZmVyW2ldID0gc3Rh
dGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4oYml0cyk7CisgICAgfQorI2VsaWYgT1MoVU5JWCkKKyAg
ICBpbnQgZmQgPSBvcGVuKCIvZGV2L3VyYW5kb20iLCBPX1JET05MWSwgMCk7CisgICAgaWYgKGZk
ID49IDApIHsKKyAgICAgICAgcmVhZChmZCwgYnVmZmVyLCBsZW5ndGgpOworICAgICAgICBjbG9z
ZShmZCk7CisgICAgfQorICAgIC8vIEZJWE1FOiBXaGF0IGRvIHdlIGRvIGlmIHdlIGNhbid0IHJl
YWQgL2Rldi91cmFuZG9tPworI2Vsc2UKKyAgICAjZXJyb3IgVGhpcyBjb25maWd1cmF0aW9uIGRv
ZXNuJ3QgaGF2ZSBhIHN0cm9uZyBzb3VyY2Ugb2YgcmFuZG9tbmVzcy4KKyAgICAvLyBXQVJOSU5H
OiBXaGVuIGFkZGluZyBuZXcgc291cmNlcyBvZiBPUyByYW5kb21uZXNzLCB0aGUgcmFuZG9tbmVz
cyBtdXN0CisgICAgLy8gICAgICAgICAgYmUgb2YgY3J5cHRvZ3JhcGhpYyBxdWFsaXR5IQorI2Vu
ZGlmCit9CisjZW5kaWYKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0
Zi9PU1JhbmRvbVNvdXJjZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9PU1JhbmRvbVNv
dXJjZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjA1NWZhMWRhYjUwN2RiYTI5NTY2NDVhY2M1NzdmNDhkYTVjNWUz
ZTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL09TUmFuZG9t
U291cmNlLmgKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgR29vZ2xlLCBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBHT09HTEUsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFdURl9PU1JhbmRvbVNvdXJjZV9oCisj
ZGVmaW5lIFdURl9PU1JhbmRvbVNvdXJjZV9oCisKK25hbWVzcGFjZSBXVEYgeworCisjaWYgVVNF
KE9TX1JBTkRPTU5FU1MpCisvLyBUaGlzIGZ1bmN0aW9uIGF0dGVtcHRzIHRvIGZpbGwgYnVmZmVy
IHdpdGggcmFuZG9tbmVzcyBmcm9tIHRoZSBvcGVyYXRpbmcKKy8vIHN5c3RlbS4gIElmIGluc3Vm
ZmljaWVudCByYW5kb21uZXNzIGlzIGF2YWlsYWJsZSwgdGhlIGJ1ZmZlciB3aWxsIGJlCisvLyBw
YXJ0aWFsbHkgZmlsbGVkLiAgUmF0aGVyIHRoYW4gY2FsbGluZyB0aGlzIGZ1bmN0aW9uIGRpcmVj
dGx5LCBjb25zaWRlcgorLy8gY2FsbGluZyBjcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlciBv
ciBjcnlwdG9ncmFwaGljYWxseVJhbmRvbVZhbHVlcy4KK3ZvaWQgcmFuZG9tVmFsdWVzRnJvbU9T
KHVuc2lnbmVkIGNoYXIqIGJ1ZmZlciwgc2l6ZV90IGxlbmd0aCk7CisjZW5kaWYKKworfQorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvd3RmLnByaSBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvd3RmLnByaQppbmRleCA4OGQ2OTVmMGYyNWRjMWFlMzk0
ODU4NjgyM2E1M2YzYTU2MzQ4YmUxLi4zYmUzYjVmYzRlOGRiZWM4MmRlZWEwZDZlZjEzZjRjMGFm
N2UxYjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3d0Zi5wcmkKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi93dGYucHJpCkBAIC0zLDYgKzMsNyBAQAogU09V
UkNFUyArPSBcCiAgICAgd3RmL0Fzc2VydGlvbnMuY3BwIFwKICAgICB3dGYvQnl0ZUFycmF5LmNw
cCBcCisgICAgd3RmL0NyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmNwcCBcCiAgICAgd3Rm
L0N1cnJlbnRUaW1lLmNwcCBcCiAgICAgd3RmL0RhdGVNYXRoLmNwcCBcCiAgICAgd3RmL2R0b2Eu
Y3BwIFwKQEAgLTE0LDYgKzE1LDcgQEAgU09VUkNFUyArPSBcCiAgICAgd3RmL01ENS5jcHAgXAog
ICAgIHd0Zi9NYWluVGhyZWFkLmNwcCBcCiAgICAgd3RmL051bGxQdHIuY3BwIFwKKyAgICB3dGYv
T1NSYW5kb21Tb3VyY2UuY3BwIFwKICAgICB3dGYvcXQvTWFpblRocmVhZFF0LmNwcCBcCiAgICAg
d3RmL3F0L1N0cmluZ1F0LmNwcCBcCiAgICAgd3RmL3F0L1RocmVhZGluZ1F0LmNwcCBcCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81781</attachid>
            <date>2011-02-09 02:40:06 -0800</date>
            <delta_ts>2011-02-09 03:12:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54083-20110209024004.patch</filename>
            <type>text/plain</type>
            <size>26409</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzgwMjcKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BbmRyb2lkLm1rIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FuZHJvaWQubWsKaW5kZXgg
NDJkMjA0MTQwOTVhMWQ0NDNiMjkwN2MwNGQ1NTA2MDlkZGU3YmZkZS4uY2I2ODFkZDA0ZmU2OWVj
Y2NkYTE1NmRjZTBiZjA2NzEwNjcwNmIwMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FuZHJvaWQubWsKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FuZHJvaWQubWsKQEAg
LTE2MSwxNyArMTYxLDE5IEBAIExPQ0FMX1NSQ19GSUxFUyA6PSBcCiAJXAogCXd0Zi9Bc3NlcnRp
b25zLmNwcCBcCiAJd3RmL0J5dGVBcnJheS5jcHAgXAorCXd0Zi9DcnlwdG9ncmFwaGljYWxseVJh
bmRvbU51bWJlci5jcHAgXAogCXd0Zi9DdXJyZW50VGltZS5jcHAgXAogCXd0Zi9EYXRlTWF0aC5j
cHAgXAogCXd0Zi9EZWNpbWFsTnVtYmVyLmNwcCBcCiAJd3RmL0Zhc3RNYWxsb2MuY3BwIFwKIAl3
dGYvSGFzaFRhYmxlLmNwcCBcCiAJd3RmL01haW5UaHJlYWQuY3BwIFwKKwl3dGYvT1NSYW5kb21T
b3VyY2UuY3BwIFwKIAl3dGYvUGFnZUFsbG9jYXRpb25BbGlnbmVkLmNwcFwKIAl3dGYvUGFnZUJs
b2NrLmNwcFwKIAl3dGYvUmFuZG9tTnVtYmVyLmNwcCBcCiAJd3RmL1JlZkNvdW50ZWRMZWFrQ291
bnRlci5jcHAgXAotICAgIHd0Zi9TdGFja0JvdW5kcy5jcHAgXAorCXd0Zi9TdGFja0JvdW5kcy5j
cHAgXAogCXd0Zi9UQ1N5c3RlbUFsbG9jLmNwcCBcCiAJd3RmL1RocmVhZElkZW50aWZpZXJEYXRh
UHRocmVhZHMuY3BwIFwKIAl3dGYvVGhyZWFkaW5nLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQW5kcm9pZC52OC53dGYubWsgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QW5kcm9pZC52OC53dGYubWsKaW5kZXggNDJjYmZlODUwZmRjZGVlYmRkMGFiMjY4ZjQ0ZDEyN2M5
ODg1NzMxOC4uZGMwNzgyOGU0ODA3ZjRjZjZlY2E1ZWQ2NDEwNzUyNjkwODBiNzA3ZiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FuZHJvaWQudjgud3RmLm1rCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BbmRyb2lkLnY4Lnd0Zi5tawpAQCAtMzQsMTUgKzM0LDE3IEBAIExP
Q0FMX1NSQ19GSUxFUyA6PSBcCiAJXAogCXd0Zi9Bc3NlcnRpb25zLmNwcCBcCiAJd3RmL0J5dGVB
cnJheS5jcHAgXAorCXd0Zi9DcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5jcHAgXAogCXd0
Zi9DdXJyZW50VGltZS5jcHAgXAogCXd0Zi9EYXRlTWF0aC5jcHAgXAogCXd0Zi9EZWNpbWFsTnVt
YmVyLmNwcCBcCiAJd3RmL0Zhc3RNYWxsb2MuY3BwIFwKIAl3dGYvSGFzaFRhYmxlLmNwcCBcCiAJ
d3RmL01haW5UaHJlYWQuY3BwIFwKKwl3dGYvT1NSYW5kb21Tb3VyY2UuY3BwIFwKIAl3dGYvUmFu
ZG9tTnVtYmVyLmNwcCBcCiAJd3RmL1JlZkNvdW50ZWRMZWFrQ291bnRlci5jcHAgXAotICAgIHd0
Zi9TdGFja0JvdW5kcy5jcHAgXAorCXd0Zi9TdGFja0JvdW5kcy5jcHAgXAogCXd0Zi9UQ1N5c3Rl
bUFsbG9jLmNwcCBcCiAJd3RmL1RocmVhZElkZW50aWZpZXJEYXRhUHRocmVhZHMuY3BwIFwKIAl3
dGYvVGhyZWFkaW5nLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0Y2RjOGUwZDY2
Nzc4NzBkN2NmM2VkM2I1OWE2N2E0MWM5YjljNjVmLi44ZjEwOTEwNjAzNGZjMjA3MTA3OTIyYzhi
ODEzMWIyZDYxM2NhYmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NCBA
QAorMjAxMS0wMi0wOSAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBXVEY6OmNyeXB0b2dy
YXBoaWNhbGx5UmFuZG9tTnVtYmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD01NDA4MworCisgICAgICAgIEludHJvZHVjZSBhIGNyeXB0b2dyYXBoaWNh
bGx5IHN0cm9uZyByYW5kb20gbnVtYmVyIGdlbmVyYXRvciB0byBXVEYuCisgICAgICAgIFRoZSBy
YW5kb20gbnVtYmVyIGdlbmVyYXRvciBpcyBiYXNlZCBvbiBhcmM0cmFuZG9tIGFzIGZvdW5kIGlu
OgorCisgICAgICAgIGh0dHA6Ly93d3cub3BlbmJzZC5vcmcvY2dpLWJpbi9jdnN3ZWIvc3JjL2xp
Yi9saWJjL2NyeXB0L2FyYzRyYW5kb20uYz9yZXY9MS4yMgorCisgICAgICAgIEkndmUgY2hhbmdl
ZCB0byBzb3VyY2UgdG8gV2ViS2l0IHN0eWxlIGFuZCBhYnN0cmFjdGVkIHRoZSBvcGVyYXRpbmcK
KyAgICAgICAgc3lzdGVtIGludGVyYWN0aW9uIHRvIE9TUmFuZG9tU291cmNlLiAgV2UnbGwgdXNl
IHRoaXMgZnVuY3Rpb25hbGl0eSB0bworICAgICAgICBleHBvc2UgYSBjcnlwdG9ncmFwaGljYWxs
eSBzdHJvbmcgcmFuZG9tIG51bWJlciBnZW5lcmF0b3IgdG8KKyAgICAgICAgSmF2YVNjcmlwdC4K
KworICAgICAgICAqIEFuZHJvaWQubWs6CisgICAgICAgICogQW5kcm9pZC52OC53dGYubWs6Cisg
ICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogSmF2YVNjcmlwdENvcmUuZ3lwaToK
KyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3Byb2ovV1RGL1dURi52Y3Byb2o6CisgICAgICAg
ICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBj
b25maWcuaDoKKyAgICAgICAgKiB3dGYvQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogd3RmL0Ny
eXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmNwcDogQWRkZWQuCisgICAgICAgIChXVEY6Omlu
aXRNdXRleElmTmVlZGVkKToKKyAgICAgICAgKFdURjo6aW5pdCk6CisgICAgICAgIChXVEY6OmFk
ZFJhbmRvbURhdGEpOgorICAgICAgICAoV1RGOjpzdGlyKToKKyAgICAgICAgKFdURjo6c3Rpcklm
TmVlZGVkKToKKyAgICAgICAgKFdURjo6Z2V0Qnl0ZSk6CisgICAgICAgIChXVEY6OmdldFdvcmQp
OgorICAgICAgICAoV1RGOjpjcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlcik6CisgICAgICAg
IChXVEY6OmNyeXB0b2dyYXBoaWNhbGx5UmFuZG9tVmFsdWVzKToKKyAgICAgICAgKiB3dGYvQ3J5
cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1iZXIuaDogQWRkZWQuCisgICAgICAgICogd3RmL09TUmFu
ZG9tU291cmNlLmNwcDogQWRkZWQuCisgICAgICAgIChXVEY6OnJhbmRvbVZhbHVlc0Zyb21PUyk6
CisgICAgICAgICogd3RmL09TUmFuZG9tU291cmNlLmg6IEFkZGVkLgorICAgICAgICAqIHd0Zi93
dGYucHJpOgorCiAyMDExLTAyLTA4ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVt
YWtlZmlsZS5hbQppbmRleCA1MmQ2YjY5YjVlOTgxYzgxYzkzOWE2NTNjYTUxOTFlZmEzZDlhMmE1
Li42OTYyNTg0MDU3ODZjNDA3NjVlNDZmZWM4MjJjNmRjMWNiZWYxYzk3IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC00NDMsNiArNDQzLDggQEAgamF2YXNjcmlwdGNvcmVf
c291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9CeXRlQXJyYXkuY3BwIFwK
IAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0J5dGVBcnJheS5oIFwKIAlTb3VyY2UvSmF2YVNj
cmlwdENvcmUvd3RmL0Nyb3NzVGhyZWFkUmVmQ291bnRlZC5oIFwKKwlTb3VyY2UvSmF2YVNjcmlw
dENvcmUvd3RmL0NyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmNwcCBcCisJU291cmNlL0ph
dmFTY3JpcHRDb3JlL3d0Zi9DcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5oIFwKIAlTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd3RmL0N1cnJlbnRUaW1lLmNwcCBcCiAJU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9DdXJyZW50VGltZS5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0Rh
dGVNYXRoLmNwcCBcCkBAIC00OTEsNiArNDkzLDggQEAgamF2YXNjcmlwdGNvcmVfc291cmNlcyAr
PSBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9Ob3RGb3VuZC5oIFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL051bGxQdHIuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9P
U0FsbG9jYXRvci5oIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL09TUmFuZG9tU291cmNl
LmNwcCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9PU1JhbmRvbVNvdXJjZS5oIFwKIAlT
b3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL093bkFycmF5UHRyLmggXAogCVNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93dGYvT3duRmFzdE1hbGxvY1B0ci5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUv
d3RmL093blB0ckNvbW1vbi5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS5neXBpIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
Lmd5cGkKaW5kZXggNDE3ODY4MzhkNjBhYWUwYjZlMWY4ZTk3NDQyODJjMjUzNDE3YmFiZi4uYzRk
ZjZkNjg0M2E0MDBkOWEyMTQzMDRmYzFmMTA1ZTg2ZTY0NWRmYSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5cGkKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5cGkKQEAgLTM3NCw2ICszNzQsOCBAQAogICAgICAgICAg
ICAgJ3d0Zi9jaHJvbWl1bS9DaHJvbWl1bVRocmVhZGluZy5oJywKICAgICAgICAgICAgICd3dGYv
Y2hyb21pdW0vTWFpblRocmVhZENocm9taXVtLmNwcCcsCiAgICAgICAgICAgICAnd3RmL0Nyb3Nz
VGhyZWFkUmVmQ291bnRlZC5oJywKKyAgICAgICAgICAgICd3dGYvQ3J5cHRvZ3JhcGhpY2FsbHlS
YW5kb21OdW1iZXIuY3BwJywKKyAgICAgICAgICAgICd3dGYvQ3J5cHRvZ3JhcGhpY2FsbHlSYW5k
b21OdW1iZXIuaCcsCiAgICAgICAgICAgICAnd3RmL0N1cnJlbnRUaW1lLmNwcCcsCiAgICAgICAg
ICAgICAnd3RmL0N1cnJlbnRUaW1lLmgnLAogICAgICAgICAgICAgJ3d0Zi9EYXRlTWF0aC5jcHAn
LApAQCAtNDE2LDYgKzQxOCw4IEBACiAgICAgICAgICAgICAnd3RmL09TQWxsb2NhdG9yUG9zaXgu
Y3BwJywKICAgICAgICAgICAgICd3dGYvT1NBbGxvY2F0b3JXaW4uY3BwJywKICAgICAgICAgICAg
ICd3dGYvT1NBbGxvY2F0b3IuaCcsCisgICAgICAgICAgICAnd3RmL09TUmFuZG9tU291cmNlLmNw
cCcsCisgICAgICAgICAgICAnd3RmL09TUmFuZG9tU291cmNlLmgnLAogICAgICAgICAgICAgJ3d0
Zi9Pd25BcnJheVB0ci5oJywKICAgICAgICAgICAgICd3dGYvT3duRmFzdE1hbGxvY1B0ci5oJywK
ICAgICAgICAgICAgICd3dGYvT3duUHRyLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9XVEYvV1RGLnZjcHJvaiBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovV1RGL1dURi52Y3Byb2oKaW5kZXggNzgy
MGQxMzU0MjU1MDlkZjkwMzk0N2I5M2NhMGYxOTk3N2M5OTQ5Yy4uNTUzNzFmM2RhMDExMWU4ZjA1
OTI2MzlmMmM1ZGZjNTU4MTVkMjNmMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnZjcHJvai9XVEYvV1RGLnZjcHJvagorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL1dURi9XVEYudmNwcm9qCkBAIC01NjEsNiAr
NTYxLDE0IEBACiAJCQk+CiAJCTwvRmlsZT4KIAkJPEZpbGUKKwkJCVJlbGF0aXZlUGF0aD0iLi5c
Li5cd3RmXENyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmNwcCIKKwkJCT4KKwkJPC9GaWxl
PgorCQk8RmlsZQorCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlx3dGZcQ3J5cHRvZ3JhcGhpY2FsbHlS
YW5kb21OdW1iZXIuaCIKKwkJCT4KKwkJPC9GaWxlPgorCQk8RmlsZQogCQkJUmVsYXRpdmVQYXRo
PSIuLlwuLlx3dGZcQ3VycmVudFRpbWUuY3BwIgogCQkJPgogCQk8L0ZpbGU+CkBAIC03NTMsNiAr
NzYxLDE0IEBACiAJCQk+CiAJCTwvRmlsZT4KIAkJPEZpbGUKKwkJCVJlbGF0aXZlUGF0aD0iLi5c
Li5cd3RmXE9TUmFuZG9tU291cmNlLmNwcCIKKwkJCT4KKwkJPC9GaWxlPgorCQk8RmlsZQorCQkJ
UmVsYXRpdmVQYXRoPSIuLlwuLlx3dGZcT1NSYW5kb21Tb3VyY2UuaCIKKwkJCT4KKwkJPC9GaWxl
PgorCQk8RmlsZQogCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlx3dGZcT3duQXJyYXlQdHIuaCIKIAkJ
CT4KIAkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzYmQzOTBiODUx
ZjRkZTBhZjM3NWVhMzVkNTZkNzkwZDYyZWY5NGY3Li45OTg2MjM5ZDE0ZDU5ODdmMTU4OGQ3ZWEx
NjdhMDg5OGU2OWM4MmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzM4LDYg
KzMzOCwxMCBAQAogCQk5NzFFREVBNjExNjlFMEQzMDA1RTQyNjIgLyogVGVybWluYXRvci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTdGNjkwM0ExMTY5
REY3RjAwQTZCQjQ2IC8qIFRlcm1pbmF0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk5NzJBNDg1RjEyNjYxRTA4MDBGNDUxNEYgLyogVVJMQ2hh
cmFjdGVyVHlwZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTcyQTQ4NUQxMjY2MUUwODAwRjQ1MTRGIC8qIFVSTENoYXJhY3RlclR5cGVzLmNwcCAq
LzsgfTsKIAkJOTcyQTQ4NzcxMjY2MjU2RjAwRjQ1MTRGIC8qIFVSTEVzY2FwZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzJBNDg3NDEyNjYyNTZG
MDBGNDUxNEYgLyogVVJMRXNjYXBlLmNwcCAqLzsgfTsKKwkJOTc5NDFBNTcxMzAyOUFBQjAwNEEz
NDQ3IC8qIE9TUmFuZG9tU291cmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDk3OTQxQTNGMTMwMjk5REIwMDRBMzQ0NyAvKiBPU1JhbmRvbVNvdXJj
ZS5jcHAgKi87IH07CisJCTk3OTQxQTVBMTMwMjlBQ0MwMDRBMzQ0NyAvKiBPU1JhbmRvbVNvdXJj
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc5NDFB
NDAxMzAyOTlEQjAwNEEzNDQ3IC8qIE9TUmFuZG9tU291cmNlLmggKi87IH07CisJCTk3OTQxQTdF
MTMwMkEwOTgwMDRBMzQ0NyAvKiBDcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5Nzk0MUE3QzEzMDJB
MDk4MDA0QTM0NDcgLyogQ3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1iZXIuY3BwICovOyB9Owor
CQk5Nzk0MUE3RjEzMDJBMDk4MDA0QTM0NDcgLyogQ3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1i
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3OTQx
QTdEMTMwMkEwOTgwMDRBMzQ0NyAvKiBDcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5oICov
OyB9OwogCQlBMTcxMkIzQjExQzdCMjEyMDA3QTUzMTUgLyogUmVnRXhwQ2FjaGUuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTE3MTJCM0ExMUM3QjIx
MjAwN0E1MzE1IC8qIFJlZ0V4cENhY2hlLmNwcCAqLzsgfTsKIAkJQTE3MTJCM0YxMUM3QjIyODAw
N0E1MzE1IC8qIFJlZ0V4cENhY2hlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBMTcxMkIzRTExQzdCMjI4MDA3QTUzMTUgLyogUmVnRXhwQ2FjaGUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBMTcxMkI0
MTExQzdCMjM1MDA3QTUzMTUgLyogUmVnRXhwS2V5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTcxMkI0MDExQzdCMjM1MDA3QTUzMTUgLyogUmVnRXhw
S2V5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAg
LTEwMDYsNiArMTAxMCwxMCBAQAogCQk5NzJBNDg3NDEyNjYyNTZGMDBGNDUxNEYgLyogVVJMRXNj
YXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFVSTEVzY2FwZS5j
cHA7IHBhdGggPSB1cmwvc3JjL1VSTEVzY2FwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTk3MkE0ODc1MTI2NjI1NkYwMEY0NTE0RiAvKiBVUkxFc2NhcGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gVVJMRXNjYXBlLmg7IHBhdGggPSB1cmwvc3JjL1VSTEVz
Y2FwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzJBNDg3NjEyNjYyNTZGMDBG
NDUxNEYgLyogVVJMUXVlcnlDYW5vbmljYWxpemVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IFVSTFF1ZXJ5Q2Fub25pY2FsaXplci5oOyBwYXRoID0gdXJsL3NyYy9VUkxRdWVy
eUNhbm9uaWNhbGl6ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTc5NDFBM0Yx
MzAyOTlEQjAwNEEzNDQ3IC8qIE9TUmFuZG9tU291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IE9TUmFuZG9tU291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOTc5NDFBNDAxMzAyOTlEQjAwNEEzNDQ3IC8qIE9TUmFuZG9tU291cmNlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE9TUmFuZG9tU291cmNlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk3OTQxQTdDMTMwMkEwOTgwMDRBMzQ0NyAvKiBDcnlw
dG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBDcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTk3OTQxQTdEMTMwMkEwOTgwMDRBMzQ0NyAvKiBDcnlwdG9ncmFw
aGljYWxseVJhbmRvbU51bWJlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBD
cnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5N0Y2OTAzQTExNjlERjdGMDBBNkJCNDYgLyogVGVybWluYXRvci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBUZXJtaW5hdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUExNzEyQjNBMTFDN0IyMTIwMDdBNTMxNSAvKiBSZWdFeHBDYWNoZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWdFeHBDYWNoZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExNzEyQjNFMTFDN0IyMjgwMDdBNTMxNSAvKiBSZWdF
eHBDYWNoZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWdFeHBDYWNoZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTUzNyw2ICsxNTQ1LDggQEAKIAkJCQlB
N0ExRjdBQjBGMjUyQjNDMDBFMTg0RTIgLyogQnl0ZUFycmF5LmggKi8sCiAJCQkJRkRBMTVDMTYx
MkIwMzAyODAwM0E1ODNBIC8qIENvbXBsZXguaCAqLywKIAkJCQkwQkRGRkFENDBGQzYxNzEwMDBE
NjlFRjQgLyogQ3Jvc3NUaHJlYWRSZWZDb3VudGVkLmggKi8sCisJCQkJOTc5NDFBN0MxMzAyQTA5
ODAwNEEzNDQ3IC8qIENyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmNwcCAqLywKKwkJCQk5
Nzk0MUE3RDEzMDJBMDk4MDA0QTM0NDcgLyogQ3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1iZXIu
aCAqLywKIAkJCQkxODBCOUFFRjBGMTZDNTY5MDA5QkRCQzUgLyogQ3VycmVudFRpbWUuY3BwICov
LAogCQkJCTE4MEI5QUYwMEYxNkM1NjkwMDlCREJDNSAvKiBDdXJyZW50VGltZS5oICovLAogCQkJ
CTQxMzU5Q0Y0MEZERDg5Q0IwMDIwNjE4MCAvKiBEYXRlTWF0aC5jcHAgKi8sCkBAIC0xNTc5LDYg
KzE1ODksOCBAQAogCQkJCTkzM0Y1Q0RCMTI2OTIyNjkwMDQ5MTkxRSAvKiBOdWxsUHRyLmggKi8s
CiAJCQkJMTQwMDA2NzYxMkE2Rjc4MzAwNjREMTIzIC8qIE9TQWxsb2NhdG9yLmggKi8sCiAJCQkJ
MTQwMDA2OTIxMkE2RjlFMTAwNjREMTIzIC8qIE9TQWxsb2NhdG9yUG9zaXguY3BwICovLAorCQkJ
CTk3OTQxQTNGMTMwMjk5REIwMDRBMzQ0NyAvKiBPU1JhbmRvbVNvdXJjZS5jcHAgKi8sCisJCQkJ
OTc5NDFBNDAxMzAyOTlEQjAwNEEzNDQ3IC8qIE9TUmFuZG9tU291cmNlLmggKi8sCiAJCQkJOTMw
M0Y1QTQwOTkxMUE1ODAwQUQ3MUI4IC8qIE93bkFycmF5UHRyLmggKi8sCiAJCQkJMEJERkZBRDEw
RkM2MTZFQzAwRDY5RUY0IC8qIE93bkZhc3RNYWxsb2NQdHIuaCAqLywKIAkJCQk5MzAzRjU2NzA5
OTExOEZBMDBBRDcxQjggLyogT3duUHRyLmggKi8sCkBAIC0yNDQ0LDYgKzI0NTYsOCBAQAogCQkJ
CUU0OURDMTZEMTJFRjI5NTMwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRlckNhY2hlSXRlbS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMTRDODI0QUQxMkY3Qzc4NTAwOEYzNUUwIC8qIE1hcmtlZEJsb2Nr
LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNEQ4Q0VGQjEyRkM0Mzk2MDBCQzlGNUEgLyogQmxvb21G
aWx0ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTk3OTQxQTVBMTMwMjlBQ0MwMDRBMzQ0NyAvKiBP
U1JhbmRvbVNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTc5NDFBN0YxMzAyQTA5ODAwNEEz
NDQ3IC8qIENyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAg
LTI5MTMsNiArMjkyNyw4IEBACiAJCQkJODY3MDRCNDIxMkRCOEE4MTAwQTlGRTdCIC8qIFlhcnJT
eW50YXhDaGVja2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUU0OURDMTZCMTJFRjI5M0UwMDE4
NEExRiAvKiBTb3VyY2VQcm92aWRlckNhY2hlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0Qzgy
NEFCMTJGN0M3N0UwMDhGMzVFMCAvKiBNYXJrZWRCbG9jay5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQk5Nzk0MUE1NzEzMDI5QUFCMDA0QTM0NDcgLyogT1NSYW5kb21Tb3VyY2UuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJOTc5NDFBN0UxMzAyQTA5ODAwNEEzNDQ3IC8qIENyeXB0b2dyYXBoaWNhbGx5
UmFuZG9tTnVtYmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBs
b3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2NvbmZpZy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2NvbmZpZy5oCmluZGV4
IGEyYjYyODU4OWYzMmQ2MzYzYmViZGViZTQzOWY1YWQ3ZjcxM2QyZGUuLjIzZTY1OWE4MGM0MGIx
YjVmMzVlZmEyNDI5NDk1MGM5NDhkNWI5MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9jb25maWcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvY29uZmlnLmgKQEAgLTUy
LDExICs1MiwxNiBAQAogLy8gV2UgbmVlZCB0byBkZWZpbmUgdGhpcyBiZWZvcmUgdGhlIGZpcnN0
ICNpbmNsdWRlIG9mIHN0ZGxpYi5oIG9yIGl0IHdvbid0IGNvbnRhaW4gcmFuZF9zLgogI2lmbmRl
ZiBfQ1JUX1JBTkRfUwogI2RlZmluZSBfQ1JUX1JBTkRfUworI2RlZmluZSBXVEZfVVNFX09TX1JB
TkRPTU5FU1MgMQogI2VuZGlmCiAjZW5kaWYKIAogI2VuZGlmCiAKKyNpZiBPUyhEQVJXSU4pIHx8
IE9TKFVOSVgpCisjZGVmaW5lIFdURl9VU0VfT1NfUkFORE9NTkVTUyAxCisjZW5kaWYKKwogI2lm
IE9TKEZSRUVCU0QpIHx8IE9TKE9QRU5CU0QpCiAjZGVmaW5lIEhBVkVfUFRIUkVBRF9OUF9IIDEK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9DTWFrZUxpc3Rz
LnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvQ01ha2VMaXN0cy50eHQKaW5kZXggMzgx
ZWFiN2QzMWI2ZmU1Njg0Yjg2NmQ2ZjkyYWYwMDZlNTFjY2EyZC4uZjg1YmYwMjA3NGNlZjdmNTM3
MzY5ZTQwOGZmNDFiNjUxNjM3NWU5NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3d0Zi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0NNYWtl
TGlzdHMudHh0CkBAIC05LDYgKzksNyBAQCBTRVQoV1RGX0hFQURFUlMKICAgICBCeXRlQXJyYXku
aAogICAgIENvbXBsZXguaAogICAgIENyb3NzVGhyZWFkUmVmQ291bnRlZC5oCisgICAgQ3J5cHRv
Z3JhcGhpY2FsbHlSYW5kb21OdW1iZXIuaAogICAgIEN1cnJlbnRUaW1lLmgKICAgICBEYXRlTWF0
aC5oCiAgICAgRGVjaW1hbE51bWJlci5oCkBAIC00MSw2ICs0Miw3IEBAIFNFVChXVEZfSEVBREVS
UwogICAgIE5vdEZvdW5kLmgKICAgICBOdWxsUHRyLmgKICAgICBPU0FsbG9jYXRvci5oCisgICAg
T1NSYW5kb21Tb3VyY2UuaAogICAgIE93bkFycmF5UHRyLmgKICAgICBPd25GYXN0TWFsbG9jUHRy
LmgKICAgICBPd25QdHIuaApAQCAtMTAzLDEyICsxMDUsMTQgQEAgU0VUKFdURl9IRUFERVJTCiBT
RVQoV1RGX1NPVVJDRVMKICAgICBBc3NlcnRpb25zLmNwcAogICAgIEJ5dGVBcnJheS5jcHAKKyAg
ICBDcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5jcHAKICAgICBDdXJyZW50VGltZS5jcHAK
ICAgICBEZWNpbWFsTnVtYmVyLmNwcAogICAgIEZhc3RNYWxsb2MuY3BwCiAgICAgSGFzaFRhYmxl
LmNwcAogICAgIE1haW5UaHJlYWQuY3BwCiAgICAgTUQ1LmNwcAorICAgIE9TUmFuZG9tU291cmNl
LmNwcAogICAgIFJhbmRvbU51bWJlci5jcHAKICAgICBSZWZDb3VudGVkTGVha0NvdW50ZXIuY3Bw
CiAgICAgU3RhY2tCb3VuZHMuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d3RmL0NyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93dGYvQ3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1iZXIuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgx
YTdhMTM0OGM1ODFjZjVhY2ViNWRkMzVhMzgxYTQ2OWRlZGFlNzQKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0NyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVy
LmNwcApAQCAtMCwwICsxLDE2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMTk5NiwgRGF2aWQg
TWF6aWVyZXMgPGRtQHV1bi5vcmc+CisgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIERhbWllbiBNaWxs
ZXIgPGRqbUBvcGVuYnNkLm9yZz4KKyAqCisgKiBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9k
aWZ5LCBhbmQgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnkKKyAqIHB1cnBvc2Ugd2l0
aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZCwgcHJvdmlkZWQgdGhhdCB0aGUgYWJv
dmUKKyAqIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgYXBwZWFy
IGluIGFsbCBjb3BpZXMuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIg
QU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTCisgKiBXSVRIIFJFR0FSRCBU
TyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GCisgKiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1Ig
QkUgTElBQkxFIEZPUgorICogQU5ZIFNQRUNJQUwsIERJUkVDVCwgSU5ESVJFQ1QsIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUworICogV0hBVFNPRVZFUiBSRVNVTFRJTkcg
RlJPTSBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOCisgKiBBQ1RJ
T04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1IgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklT
SU5HIE9VVCBPRgorICogT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1IgUEVSRk9STUFO
Q0UgT0YgVEhJUyBTT0ZUV0FSRS4KKyAqLworCisvKgorICogQXJjNCByYW5kb20gbnVtYmVyIGdl
bmVyYXRvciBmb3IgT3BlbkJTRC4KKyAqCisgKiBUaGlzIGNvZGUgaXMgZGVyaXZlZCBmcm9tIHNl
Y3Rpb24gMTcuMSBvZiBBcHBsaWVkIENyeXB0b2dyYXBoeSwKKyAqIHNlY29uZCBlZGl0aW9uLCB3
aGljaCBkZXNjcmliZXMgYSBzdHJlYW0gY2lwaGVyIGFsbGVnZWRseQorICogY29tcGF0aWJsZSB3
aXRoIFJTQSBMYWJzICJSQzQiIGNpcGhlciAodGhlIGFjdHVhbCBkZXNjcmlwdGlvbiBvZgorICog
d2hpY2ggaXMgYSB0cmFkZSBzZWNyZXQpLiAgVGhlIHNhbWUgYWxnb3JpdGhtIGlzIHVzZWQgYXMg
YSBzdHJlYW0KKyAqIGNpcGhlciBjYWxsZWQgImFyY2ZvdXIiIGluIFRhdHUgWWxvbmVuJ3Mgc3No
IHBhY2thZ2UuCisgKgorICogUkM0IGlzIGEgcmVnaXN0ZXJlZCB0cmFkZW1hcmsgb2YgUlNBIExh
Ym9yYXRvcmllcy4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ3J5cHRv
Z3JhcGhpY2FsbHlSYW5kb21OdW1iZXIuaCIKKworI2luY2x1ZGUgIk1haW5UaHJlYWQuaCIKKyNp
bmNsdWRlICJPU1JhbmRvbVNvdXJjZS5oIgorI2luY2x1ZGUgIlRocmVhZGluZ1ByaW1pdGl2ZXMu
aCIKKworbmFtZXNwYWNlIFdURiB7CisKKyNpZiBVU0UoT1NfUkFORE9NTkVTUykKKworbmFtZXNw
YWNlIHsKKworc3RydWN0IEFSQzRTdHJlYW0geworICAgIHVpbnQ4X3QgaTsKKyAgICB1aW50OF90
IGo7CisgICAgdWludDhfdCBzWzI1Nl07Cit9OworCitzdGF0aWMgaW50IHJhbmRvbVN0cmVhbUlu
aXRpYWxpemVkOworc3RhdGljIHN0cnVjdCBBUkM0U3RyZWFtIHJhbmRvbVN0cmVhbTsKK3N0YXRp
YyBpbnQgc3RyZWFtQ291bnQ7CitzdGF0aWMgTXV0ZXgqIG11dGV4OworCitpbmxpbmUgdWludDhf
dCBnZXRCeXRlKCk7CisKK2lubGluZSB2b2lkIGluaXRNdXRleElmTmVlZGVkKCkKK3sKKyAgICBp
ZiAobXV0ZXgpCisgICAgICAgIHJldHVybjsKKyAgICAvLyBUZWNobmljYWxseSB0aGVyZSdzIGEg
cmFjZSBjb25kaXRpb24gaW4gY3JlYXRpbmcgdGhlIG11dGV4LCBidXQgaXQncworICAgIC8vIHVu
Y2xlYXIgaG93IHRvIHJlbW92ZSB0aGUgcmFjZSBjb25kaXRpb24gd2l0aG91dCBhIHN0YXRpYyBp
bml0aWFsaXplci4KKyAgICBtdXRleCA9IG5ldyBNdXRleDsKK30KKworaW5saW5lIHZvaWQgaW5p
dCgpCit7CisgICAgZm9yIChpbnQgbiA9IDA7IG4gPCAyNTY7IG4rKykKKyAgICAgICAgcmFuZG9t
U3RyZWFtLnNbbl0gPSBuOworICAgIHJhbmRvbVN0cmVhbS5pID0gMDsKKyAgICByYW5kb21TdHJl
YW0uaiA9IDA7Cit9CisKK2lubGluZSB2b2lkIGFkZFJhbmRvbURhdGEodW5zaWduZWQgY2hhciAq
ZGF0YSwgaW50IGRhdGxlbikKK3sKKyAgICByYW5kb21TdHJlYW0uaS0tOworICAgIGZvciAoaW50
IG4gPSAwOyBuIDwgMjU2OyBuKyspIHsKKyAgICAgICAgcmFuZG9tU3RyZWFtLmkgPSAocmFuZG9t
U3RyZWFtLmkgKyAxKTsKKyAgICAgICAgdWludDhfdCBzaSA9IHJhbmRvbVN0cmVhbS5zW3JhbmRv
bVN0cmVhbS5pXTsKKyAgICAgICAgcmFuZG9tU3RyZWFtLmogPSAocmFuZG9tU3RyZWFtLmogKyBz
aSArIGRhdGFbbiAlIGRhdGxlbl0pOworICAgICAgICByYW5kb21TdHJlYW0uc1tyYW5kb21TdHJl
YW0uaV0gPSByYW5kb21TdHJlYW0uc1tyYW5kb21TdHJlYW0ual07CisgICAgICAgIHJhbmRvbVN0
cmVhbS5zW3JhbmRvbVN0cmVhbS5qXSA9IHNpOworICAgIH0KKyAgICByYW5kb21TdHJlYW0uaiA9
IHJhbmRvbVN0cmVhbS5pOworfQorCit2b2lkIHN0aXIoKQoreworICAgIGlmICghcmFuZG9tU3Ry
ZWFtSW5pdGlhbGl6ZWQpIHsKKyAgICAgICAgaW5pdCgpOworICAgICAgICByYW5kb21TdHJlYW1J
bml0aWFsaXplZCA9IDE7CisgICAgfQorCisgICAgdW5zaWduZWQgY2hhciByYW5kb21uZXNzWzEy
OF07CisgICAgc2l6ZV90IGxlbmd0aCA9IHNpemVvZihyYW5kb21uZXNzKTsKKyAgICByYW5kb21W
YWx1ZXNGcm9tT1MocmFuZG9tbmVzcywgbGVuZ3RoKTsKKyAgICBhZGRSYW5kb21EYXRhKHJhbmRv
bW5lc3MsIGxlbmd0aCk7CisKKyAgICAvLyBEaXNjYXJkIGVhcmx5IGtleXN0cmVhbSwgYXMgcGVy
IHJlY29tbWVuZGF0aW9ucyBpbjoKKyAgICAvLyBodHRwOi8vd3d3Lndpc2RvbS53ZWl6bWFubi5h
Yy5pbC9+aXRzaWsvUkM0L1BhcGVycy9SYzRfa3NhLnBzCisgICAgZm9yIChpbnQgaSA9IDA7IGkg
PCAyNTY7IGkrKykKKyAgICAgICAgZ2V0Qnl0ZSgpOworICAgIHN0cmVhbUNvdW50ID0gMTYwMDAw
MDsKK30KKwordm9pZCBzdGlySWZOZWVkZWQoKQoreworICAgIGlmIChzdHJlYW1Db3VudCA8PSAw
IHx8ICFyYW5kb21TdHJlYW1Jbml0aWFsaXplZCkKKyAgICAgICAgc3RpcigpOworfQorCitpbmxp
bmUgdWludDhfdCBnZXRCeXRlKCkKK3sKKyAgICByYW5kb21TdHJlYW0uaSA9IChyYW5kb21TdHJl
YW0uaSArIDEpOworICAgIHVpbnQ4X3Qgc2kgPSByYW5kb21TdHJlYW0uc1tyYW5kb21TdHJlYW0u
aV07CisgICAgcmFuZG9tU3RyZWFtLmogPSAocmFuZG9tU3RyZWFtLmogKyBzaSk7CisgICAgdWlu
dDhfdCBzaiA9IHJhbmRvbVN0cmVhbS5zW3JhbmRvbVN0cmVhbS5qXTsKKyAgICByYW5kb21TdHJl
YW0uc1tyYW5kb21TdHJlYW0uaV0gPSBzajsKKyAgICByYW5kb21TdHJlYW0uc1tyYW5kb21TdHJl
YW0ual0gPSBzaTsKKyAgICByZXR1cm4gKHJhbmRvbVN0cmVhbS5zWyhzaSArIHNqKSAmIDB4ZmZd
KTsKK30KKworaW5saW5lIHVpbnQzMl90IGdldFdvcmQoKQoreworICAgIHVpbnQzMl90IHZhbDsK
KyAgICB2YWwgPSBnZXRCeXRlKCkgPDwgMjQ7CisgICAgdmFsIHw9IGdldEJ5dGUoKSA8PCAxNjsK
KyAgICB2YWwgfD0gZ2V0Qnl0ZSgpIDw8IDg7CisgICAgdmFsIHw9IGdldEJ5dGUoKTsKKyAgICBy
ZXR1cm4gdmFsOworfQorCit9CisKK3VpbnQzMl90IGNyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVt
YmVyKCkKK3sKKyNpZiAhRU5BQkxFKEpTQ19NVUxUSVBMRV9USFJFQURTKQorICAgIGluaXRNdXRl
eElmTmVlZGVkKCk7CisgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKCptdXRleCk7CisjZWxzZQorICAg
IEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisjZW5kaWYKKworICAgIHN0cmVhbUNvdW50IC09IDQ7
CisgICAgc3RpcklmTmVlZGVkKCk7CisgICAgcmV0dXJuIGdldFdvcmQoKTsKK30KKwordm9pZCBj
cnlwdG9ncmFwaGljYWxseVJhbmRvbVZhbHVlcyh2b2lkKiBidWZmZXIsIHNpemVfdCBsZW5ndGgp
Cit7CisjaWYgIUVOQUJMRShKU0NfTVVMVElQTEVfVEhSRUFEUykKKyAgICBpbml0TXV0ZXhJZk5l
ZWRlZCgpOworICAgIE11dGV4TG9ja2VyIGxvY2tlcigqbXV0ZXgpOworI2Vsc2UKKyAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOworI2VuZGlmCisKKyAgICB1bnNpZ25lZCBjaGFyKiByZXN1bHQg
PSByZWludGVycHJldF9jYXN0PHVuc2lnbmVkIGNoYXIqPihidWZmZXIpOworICAgIHN0aXJJZk5l
ZWRlZCgpOworICAgIHdoaWxlIChsZW5ndGgtLSkgeworICAgICAgICBpZiAoLS1zdHJlYW1Db3Vu
dCA8PSAwKQorICAgICAgICAgICAgc3RpcigpOworICAgICAgICByZXN1bHRbbGVuZ3RoXSA9IGdl
dEJ5dGUoKTsKKyAgICB9Cit9CisKKyNlbmRpZgorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL0NyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL0NyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMzQ4MjQyZTI1Y2NiNTI3OTc5YWUwZjgzNWY4ZWE3YWFjYzQ1YWVhZQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvQ3J5cHRvZ3JhcGhpY2FsbHlSYW5k
b21OdW1iZXIuaApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IFRv
cmNoIE1vYmlsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIChodHRwOi8vd3d3LnRvcmNobW9i
aWxlLmNvbS8pCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgV1RGX0NyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVt
YmVyX2gKKyNkZWZpbmUgV1RGX0NyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyX2gKKworI2lu
Y2x1ZGUgPHN0ZGludC5oPgorCituYW1lc3BhY2UgV1RGIHsKKworI2lmIFVTRShPU19SQU5ET01O
RVNTKQordWludDMyX3QgY3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1iZXIoKTsKK3ZvaWQgY3J5
cHRvZ3JhcGhpY2FsbHlSYW5kb21WYWx1ZXModm9pZCogYnVmZmVyLCBzaXplX3QgbGVuZ3RoKTsK
KyNlbmRpZgorCit9CisKKyNpZiBVU0UoT1NfUkFORE9NTkVTUykKK3VzaW5nIFdURjo6Y3J5cHRv
Z3JhcGhpY2FsbHlSYW5kb21OdW1iZXI7Cit1c2luZyBXVEY6OmNyeXB0b2dyYXBoaWNhbGx5UmFu
ZG9tVmFsdWVzOworI2VuZGlmCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9PU1JhbmRvbVNvdXJjZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3Rm
L09TUmFuZG9tU291cmNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jODE5NmU3Y2FlMjhhZGEwMDRhYjBjOGY2
YjNhNmE5MmNmY2EzYjY5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3d0Zi9PU1JhbmRvbVNvdXJjZS5jcHAKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgR09PR0xFLCBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIk9TUmFuZG9tU291cmNlLmgiCisKKyNpbmNsdWRlIDxzdGRpbnQu
aD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKworI2lmIE9TKFVOSVgpCisjaW5jbHVkZSA8ZmNudGwu
aD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNlbmRpZgorCituYW1lc3BhY2UgV1RGIHsKKworI2lm
IFVTRShPU19SQU5ET01ORVNTKQordm9pZCByYW5kb21WYWx1ZXNGcm9tT1ModW5zaWduZWQgY2hh
ciogYnVmZmVyLCBzaXplX3QgbGVuZ3RoKQoreworI2lmIENPTVBJTEVSKE1TVkMpICYmIGRlZmlu
ZWQoX0NSVF9SQU5EX1MpCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykg
eworICAgICAgICB1aW50MzJfdCBiaXRzOworICAgICAgICByYW5kX3MoJmJpdHMpOworICAgICAg
ICBidWZmZXJbaV0gPSBzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyPihiaXRzKTsKKyAgICB9Cisj
ZWxpZiBPUyhEQVJXSU4pCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykg
eworICAgICAgICB1aW50MzJfdCBiaXRzOworICAgICAgICBiaXRzID0gYXJjNHJhbmRvbSgpOwor
ICAgICAgICBidWZmZXJbaV0gPSBzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyPihiaXRzKTsKKyAg
ICB9CisjZWxpZiBPUyhVTklYKQorICAgIGludCBmZCA9IG9wZW4oIi9kZXYvdXJhbmRvbSIsIE9f
UkRPTkxZLCAwKTsKKyAgICBpZiAoZmQgPj0gMCkgeworICAgICAgICByZWFkKGZkLCBidWZmZXIs
IGxlbmd0aCk7CisgICAgICAgIGNsb3NlKGZkKTsKKyAgICB9CisgICAgLy8gRklYTUU6IFdoYXQg
ZG8gd2UgZG8gaWYgd2UgY2FuJ3QgcmVhZCAvZGV2L3VyYW5kb20/CisjZWxzZQorICAgICNlcnJv
ciBUaGlzIGNvbmZpZ3VyYXRpb24gZG9lc24ndCBoYXZlIGEgc3Ryb25nIHNvdXJjZSBvZiByYW5k
b21uZXNzLgorICAgIC8vIFdBUk5JTkc6IFdoZW4gYWRkaW5nIG5ldyBzb3VyY2VzIG9mIE9TIHJh
bmRvbW5lc3MsIHRoZSByYW5kb21uZXNzIG11c3QKKyAgICAvLyAgICAgICAgICBiZSBvZiBjcnlw
dG9ncmFwaGljIHF1YWxpdHkhCisjZW5kaWYKK30KKyNlbmRpZgorCit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL09TUmFuZG9tU291cmNlLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd3RmL09TUmFuZG9tU291cmNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDU1ZmExZGFiNTA3ZGJh
Mjk1NjY0NWFjYzU3N2Y0OGRhNWM1ZTNlNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93dGYvT1NSYW5kb21Tb3VyY2UuaApAQCAtMCwwICsxLDQxIEBACisvKgorICog
Q29weXJpZ2h0IChDKSBHb29nbGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEdPT0dMRSwgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYg
V1RGX09TUmFuZG9tU291cmNlX2gKKyNkZWZpbmUgV1RGX09TUmFuZG9tU291cmNlX2gKKworbmFt
ZXNwYWNlIFdURiB7CisKKyNpZiBVU0UoT1NfUkFORE9NTkVTUykKKy8vIFRoaXMgZnVuY3Rpb24g
YXR0ZW1wdHMgdG8gZmlsbCBidWZmZXIgd2l0aCByYW5kb21uZXNzIGZyb20gdGhlIG9wZXJhdGlu
ZworLy8gc3lzdGVtLiAgSWYgaW5zdWZmaWNpZW50IHJhbmRvbW5lc3MgaXMgYXZhaWxhYmxlLCB0
aGUgYnVmZmVyIHdpbGwgYmUKKy8vIHBhcnRpYWxseSBmaWxsZWQuICBSYXRoZXIgdGhhbiBjYWxs
aW5nIHRoaXMgZnVuY3Rpb24gZGlyZWN0bHksIGNvbnNpZGVyCisvLyBjYWxsaW5nIGNyeXB0b2dy
YXBoaWNhbGx5UmFuZG9tTnVtYmVyIG9yIGNyeXB0b2dyYXBoaWNhbGx5UmFuZG9tVmFsdWVzLgor
dm9pZCByYW5kb21WYWx1ZXNGcm9tT1ModW5zaWduZWQgY2hhciogYnVmZmVyLCBzaXplX3QgbGVu
Z3RoKTsKKyNlbmRpZgorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi93dGYucHJpIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi93dGYucHJpCmlu
ZGV4IDg4ZDY5NWYwZjI1ZGMxYWUzOTQ4NTg2ODIzYTUzZjNhNTYzNDhiZTEuLjNiZTNiNWZjNGU4
ZGJlYzgyZGVlYTBkNmVmMTNmNGMwYWY3ZTFiMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93dGYvd3RmLnByaQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3d0Zi5w
cmkKQEAgLTMsNiArMyw3IEBACiBTT1VSQ0VTICs9IFwKICAgICB3dGYvQXNzZXJ0aW9ucy5jcHAg
XAogICAgIHd0Zi9CeXRlQXJyYXkuY3BwIFwKKyAgICB3dGYvQ3J5cHRvZ3JhcGhpY2FsbHlSYW5k
b21OdW1iZXIuY3BwIFwKICAgICB3dGYvQ3VycmVudFRpbWUuY3BwIFwKICAgICB3dGYvRGF0ZU1h
dGguY3BwIFwKICAgICB3dGYvZHRvYS5jcHAgXApAQCAtMTQsNiArMTUsNyBAQCBTT1VSQ0VTICs9
IFwKICAgICB3dGYvTUQ1LmNwcCBcCiAgICAgd3RmL01haW5UaHJlYWQuY3BwIFwKICAgICB3dGYv
TnVsbFB0ci5jcHAgXAorICAgIHd0Zi9PU1JhbmRvbVNvdXJjZS5jcHAgXAogICAgIHd0Zi9xdC9N
YWluVGhyZWFkUXQuY3BwIFwKICAgICB3dGYvcXQvU3RyaW5nUXQuY3BwIFwKICAgICB3dGYvcXQv
VGhyZWFkaW5nUXQuY3BwIFwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81784</attachid>
            <date>2011-02-09 03:12:05 -0800</date>
            <delta_ts>2011-02-09 11:55:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54083-20110209031204.patch</filename>
            <type>text/plain</type>
            <size>26805</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzgwMjcKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BbmRyb2lkLm1rIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FuZHJvaWQubWsKaW5kZXgg
NDJkMjA0MTQwOTVhMWQ0NDNiMjkwN2MwNGQ1NTA2MDlkZGU3YmZkZS4uY2I2ODFkZDA0ZmU2OWVj
Y2NkYTE1NmRjZTBiZjA2NzEwNjcwNmIwMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FuZHJvaWQubWsKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FuZHJvaWQubWsKQEAg
LTE2MSwxNyArMTYxLDE5IEBAIExPQ0FMX1NSQ19GSUxFUyA6PSBcCiAJXAogCXd0Zi9Bc3NlcnRp
b25zLmNwcCBcCiAJd3RmL0J5dGVBcnJheS5jcHAgXAorCXd0Zi9DcnlwdG9ncmFwaGljYWxseVJh
bmRvbU51bWJlci5jcHAgXAogCXd0Zi9DdXJyZW50VGltZS5jcHAgXAogCXd0Zi9EYXRlTWF0aC5j
cHAgXAogCXd0Zi9EZWNpbWFsTnVtYmVyLmNwcCBcCiAJd3RmL0Zhc3RNYWxsb2MuY3BwIFwKIAl3
dGYvSGFzaFRhYmxlLmNwcCBcCiAJd3RmL01haW5UaHJlYWQuY3BwIFwKKwl3dGYvT1NSYW5kb21T
b3VyY2UuY3BwIFwKIAl3dGYvUGFnZUFsbG9jYXRpb25BbGlnbmVkLmNwcFwKIAl3dGYvUGFnZUJs
b2NrLmNwcFwKIAl3dGYvUmFuZG9tTnVtYmVyLmNwcCBcCiAJd3RmL1JlZkNvdW50ZWRMZWFrQ291
bnRlci5jcHAgXAotICAgIHd0Zi9TdGFja0JvdW5kcy5jcHAgXAorCXd0Zi9TdGFja0JvdW5kcy5j
cHAgXAogCXd0Zi9UQ1N5c3RlbUFsbG9jLmNwcCBcCiAJd3RmL1RocmVhZElkZW50aWZpZXJEYXRh
UHRocmVhZHMuY3BwIFwKIAl3dGYvVGhyZWFkaW5nLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQW5kcm9pZC52OC53dGYubWsgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QW5kcm9pZC52OC53dGYubWsKaW5kZXggNDJjYmZlODUwZmRjZGVlYmRkMGFiMjY4ZjQ0ZDEyN2M5
ODg1NzMxOC4uZGMwNzgyOGU0ODA3ZjRjZjZlY2E1ZWQ2NDEwNzUyNjkwODBiNzA3ZiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FuZHJvaWQudjgud3RmLm1rCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BbmRyb2lkLnY4Lnd0Zi5tawpAQCAtMzQsMTUgKzM0LDE3IEBAIExP
Q0FMX1NSQ19GSUxFUyA6PSBcCiAJXAogCXd0Zi9Bc3NlcnRpb25zLmNwcCBcCiAJd3RmL0J5dGVB
cnJheS5jcHAgXAorCXd0Zi9DcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5jcHAgXAogCXd0
Zi9DdXJyZW50VGltZS5jcHAgXAogCXd0Zi9EYXRlTWF0aC5jcHAgXAogCXd0Zi9EZWNpbWFsTnVt
YmVyLmNwcCBcCiAJd3RmL0Zhc3RNYWxsb2MuY3BwIFwKIAl3dGYvSGFzaFRhYmxlLmNwcCBcCiAJ
d3RmL01haW5UaHJlYWQuY3BwIFwKKwl3dGYvT1NSYW5kb21Tb3VyY2UuY3BwIFwKIAl3dGYvUmFu
ZG9tTnVtYmVyLmNwcCBcCiAJd3RmL1JlZkNvdW50ZWRMZWFrQ291bnRlci5jcHAgXAotICAgIHd0
Zi9TdGFja0JvdW5kcy5jcHAgXAorCXd0Zi9TdGFja0JvdW5kcy5jcHAgXAogCXd0Zi9UQ1N5c3Rl
bUFsbG9jLmNwcCBcCiAJd3RmL1RocmVhZElkZW50aWZpZXJEYXRhUHRocmVhZHMuY3BwIFwKIAl3
dGYvVGhyZWFkaW5nLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0Y2RjOGUwZDY2
Nzc4NzBkN2NmM2VkM2I1OWE2N2E0MWM5YjljNjVmLi44ZjEwOTEwNjAzNGZjMjA3MTA3OTIyYzhi
ODEzMWIyZDYxM2NhYmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NCBA
QAorMjAxMS0wMi0wOSAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBXVEY6OmNyeXB0b2dy
YXBoaWNhbGx5UmFuZG9tTnVtYmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD01NDA4MworCisgICAgICAgIEludHJvZHVjZSBhIGNyeXB0b2dyYXBoaWNh
bGx5IHN0cm9uZyByYW5kb20gbnVtYmVyIGdlbmVyYXRvciB0byBXVEYuCisgICAgICAgIFRoZSBy
YW5kb20gbnVtYmVyIGdlbmVyYXRvciBpcyBiYXNlZCBvbiBhcmM0cmFuZG9tIGFzIGZvdW5kIGlu
OgorCisgICAgICAgIGh0dHA6Ly93d3cub3BlbmJzZC5vcmcvY2dpLWJpbi9jdnN3ZWIvc3JjL2xp
Yi9saWJjL2NyeXB0L2FyYzRyYW5kb20uYz9yZXY9MS4yMgorCisgICAgICAgIEkndmUgY2hhbmdl
ZCB0byBzb3VyY2UgdG8gV2ViS2l0IHN0eWxlIGFuZCBhYnN0cmFjdGVkIHRoZSBvcGVyYXRpbmcK
KyAgICAgICAgc3lzdGVtIGludGVyYWN0aW9uIHRvIE9TUmFuZG9tU291cmNlLiAgV2UnbGwgdXNl
IHRoaXMgZnVuY3Rpb25hbGl0eSB0bworICAgICAgICBleHBvc2UgYSBjcnlwdG9ncmFwaGljYWxs
eSBzdHJvbmcgcmFuZG9tIG51bWJlciBnZW5lcmF0b3IgdG8KKyAgICAgICAgSmF2YVNjcmlwdC4K
KworICAgICAgICAqIEFuZHJvaWQubWs6CisgICAgICAgICogQW5kcm9pZC52OC53dGYubWs6Cisg
ICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogSmF2YVNjcmlwdENvcmUuZ3lwaToK
KyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3Byb2ovV1RGL1dURi52Y3Byb2o6CisgICAgICAg
ICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBj
b25maWcuaDoKKyAgICAgICAgKiB3dGYvQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogd3RmL0Ny
eXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmNwcDogQWRkZWQuCisgICAgICAgIChXVEY6Omlu
aXRNdXRleElmTmVlZGVkKToKKyAgICAgICAgKFdURjo6aW5pdCk6CisgICAgICAgIChXVEY6OmFk
ZFJhbmRvbURhdGEpOgorICAgICAgICAoV1RGOjpzdGlyKToKKyAgICAgICAgKFdURjo6c3Rpcklm
TmVlZGVkKToKKyAgICAgICAgKFdURjo6Z2V0Qnl0ZSk6CisgICAgICAgIChXVEY6OmdldFdvcmQp
OgorICAgICAgICAoV1RGOjpjcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlcik6CisgICAgICAg
IChXVEY6OmNyeXB0b2dyYXBoaWNhbGx5UmFuZG9tVmFsdWVzKToKKyAgICAgICAgKiB3dGYvQ3J5
cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1iZXIuaDogQWRkZWQuCisgICAgICAgICogd3RmL09TUmFu
ZG9tU291cmNlLmNwcDogQWRkZWQuCisgICAgICAgIChXVEY6OnJhbmRvbVZhbHVlc0Zyb21PUyk6
CisgICAgICAgICogd3RmL09TUmFuZG9tU291cmNlLmg6IEFkZGVkLgorICAgICAgICAqIHd0Zi93
dGYucHJpOgorCiAyMDExLTAyLTA4ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVt
YWtlZmlsZS5hbQppbmRleCA1MmQ2YjY5YjVlOTgxYzgxYzkzOWE2NTNjYTUxOTFlZmEzZDlhMmE1
Li42OTYyNTg0MDU3ODZjNDA3NjVlNDZmZWM4MjJjNmRjMWNiZWYxYzk3IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC00NDMsNiArNDQzLDggQEAgamF2YXNjcmlwdGNvcmVf
c291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9CeXRlQXJyYXkuY3BwIFwK
IAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0J5dGVBcnJheS5oIFwKIAlTb3VyY2UvSmF2YVNj
cmlwdENvcmUvd3RmL0Nyb3NzVGhyZWFkUmVmQ291bnRlZC5oIFwKKwlTb3VyY2UvSmF2YVNjcmlw
dENvcmUvd3RmL0NyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmNwcCBcCisJU291cmNlL0ph
dmFTY3JpcHRDb3JlL3d0Zi9DcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5oIFwKIAlTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd3RmL0N1cnJlbnRUaW1lLmNwcCBcCiAJU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9DdXJyZW50VGltZS5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0Rh
dGVNYXRoLmNwcCBcCkBAIC00OTEsNiArNDkzLDggQEAgamF2YXNjcmlwdGNvcmVfc291cmNlcyAr
PSBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9Ob3RGb3VuZC5oIFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL051bGxQdHIuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9P
U0FsbG9jYXRvci5oIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL09TUmFuZG9tU291cmNl
LmNwcCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9PU1JhbmRvbVNvdXJjZS5oIFwKIAlT
b3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL093bkFycmF5UHRyLmggXAogCVNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93dGYvT3duRmFzdE1hbGxvY1B0ci5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUv
d3RmL093blB0ckNvbW1vbi5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS5neXBpIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
Lmd5cGkKaW5kZXggNDE3ODY4MzhkNjBhYWUwYjZlMWY4ZTk3NDQyODJjMjUzNDE3YmFiZi4uYzRk
ZjZkNjg0M2E0MDBkOWEyMTQzMDRmYzFmMTA1ZTg2ZTY0NWRmYSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5cGkKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5cGkKQEAgLTM3NCw2ICszNzQsOCBAQAogICAgICAgICAg
ICAgJ3d0Zi9jaHJvbWl1bS9DaHJvbWl1bVRocmVhZGluZy5oJywKICAgICAgICAgICAgICd3dGYv
Y2hyb21pdW0vTWFpblRocmVhZENocm9taXVtLmNwcCcsCiAgICAgICAgICAgICAnd3RmL0Nyb3Nz
VGhyZWFkUmVmQ291bnRlZC5oJywKKyAgICAgICAgICAgICd3dGYvQ3J5cHRvZ3JhcGhpY2FsbHlS
YW5kb21OdW1iZXIuY3BwJywKKyAgICAgICAgICAgICd3dGYvQ3J5cHRvZ3JhcGhpY2FsbHlSYW5k
b21OdW1iZXIuaCcsCiAgICAgICAgICAgICAnd3RmL0N1cnJlbnRUaW1lLmNwcCcsCiAgICAgICAg
ICAgICAnd3RmL0N1cnJlbnRUaW1lLmgnLAogICAgICAgICAgICAgJ3d0Zi9EYXRlTWF0aC5jcHAn
LApAQCAtNDE2LDYgKzQxOCw4IEBACiAgICAgICAgICAgICAnd3RmL09TQWxsb2NhdG9yUG9zaXgu
Y3BwJywKICAgICAgICAgICAgICd3dGYvT1NBbGxvY2F0b3JXaW4uY3BwJywKICAgICAgICAgICAg
ICd3dGYvT1NBbGxvY2F0b3IuaCcsCisgICAgICAgICAgICAnd3RmL09TUmFuZG9tU291cmNlLmNw
cCcsCisgICAgICAgICAgICAnd3RmL09TUmFuZG9tU291cmNlLmgnLAogICAgICAgICAgICAgJ3d0
Zi9Pd25BcnJheVB0ci5oJywKICAgICAgICAgICAgICd3dGYvT3duRmFzdE1hbGxvY1B0ci5oJywK
ICAgICAgICAgICAgICd3dGYvT3duUHRyLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9XVEYvV1RGLnZjcHJvaiBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovV1RGL1dURi52Y3Byb2oKaW5kZXggNzgy
MGQxMzU0MjU1MDlkZjkwMzk0N2I5M2NhMGYxOTk3N2M5OTQ5Yy4uNTUzNzFmM2RhMDExMWU4ZjA1
OTI2MzlmMmM1ZGZjNTU4MTVkMjNmMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnZjcHJvai9XVEYvV1RGLnZjcHJvagorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL1dURi9XVEYudmNwcm9qCkBAIC01NjEsNiAr
NTYxLDE0IEBACiAJCQk+CiAJCTwvRmlsZT4KIAkJPEZpbGUKKwkJCVJlbGF0aXZlUGF0aD0iLi5c
Li5cd3RmXENyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmNwcCIKKwkJCT4KKwkJPC9GaWxl
PgorCQk8RmlsZQorCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlx3dGZcQ3J5cHRvZ3JhcGhpY2FsbHlS
YW5kb21OdW1iZXIuaCIKKwkJCT4KKwkJPC9GaWxlPgorCQk8RmlsZQogCQkJUmVsYXRpdmVQYXRo
PSIuLlwuLlx3dGZcQ3VycmVudFRpbWUuY3BwIgogCQkJPgogCQk8L0ZpbGU+CkBAIC03NTMsNiAr
NzYxLDE0IEBACiAJCQk+CiAJCTwvRmlsZT4KIAkJPEZpbGUKKwkJCVJlbGF0aXZlUGF0aD0iLi5c
Li5cd3RmXE9TUmFuZG9tU291cmNlLmNwcCIKKwkJCT4KKwkJPC9GaWxlPgorCQk8RmlsZQorCQkJ
UmVsYXRpdmVQYXRoPSIuLlwuLlx3dGZcT1NSYW5kb21Tb3VyY2UuaCIKKwkJCT4KKwkJPC9GaWxl
PgorCQk8RmlsZQogCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlx3dGZcT3duQXJyYXlQdHIuaCIKIAkJ
CT4KIAkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzYmQzOTBiODUx
ZjRkZTBhZjM3NWVhMzVkNTZkNzkwZDYyZWY5NGY3Li45OTg2MjM5ZDE0ZDU5ODdmMTU4OGQ3ZWEx
NjdhMDg5OGU2OWM4MmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzM4LDYg
KzMzOCwxMCBAQAogCQk5NzFFREVBNjExNjlFMEQzMDA1RTQyNjIgLyogVGVybWluYXRvci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTdGNjkwM0ExMTY5
REY3RjAwQTZCQjQ2IC8qIFRlcm1pbmF0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk5NzJBNDg1RjEyNjYxRTA4MDBGNDUxNEYgLyogVVJMQ2hh
cmFjdGVyVHlwZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTcyQTQ4NUQxMjY2MUUwODAwRjQ1MTRGIC8qIFVSTENoYXJhY3RlclR5cGVzLmNwcCAq
LzsgfTsKIAkJOTcyQTQ4NzcxMjY2MjU2RjAwRjQ1MTRGIC8qIFVSTEVzY2FwZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzJBNDg3NDEyNjYyNTZG
MDBGNDUxNEYgLyogVVJMRXNjYXBlLmNwcCAqLzsgfTsKKwkJOTc5NDFBNTcxMzAyOUFBQjAwNEEz
NDQ3IC8qIE9TUmFuZG9tU291cmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDk3OTQxQTNGMTMwMjk5REIwMDRBMzQ0NyAvKiBPU1JhbmRvbVNvdXJj
ZS5jcHAgKi87IH07CisJCTk3OTQxQTVBMTMwMjlBQ0MwMDRBMzQ0NyAvKiBPU1JhbmRvbVNvdXJj
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc5NDFB
NDAxMzAyOTlEQjAwNEEzNDQ3IC8qIE9TUmFuZG9tU291cmNlLmggKi87IH07CisJCTk3OTQxQTdF
MTMwMkEwOTgwMDRBMzQ0NyAvKiBDcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5Nzk0MUE3QzEzMDJB
MDk4MDA0QTM0NDcgLyogQ3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1iZXIuY3BwICovOyB9Owor
CQk5Nzk0MUE3RjEzMDJBMDk4MDA0QTM0NDcgLyogQ3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1i
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3OTQx
QTdEMTMwMkEwOTgwMDRBMzQ0NyAvKiBDcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5oICov
OyB9OwogCQlBMTcxMkIzQjExQzdCMjEyMDA3QTUzMTUgLyogUmVnRXhwQ2FjaGUuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTE3MTJCM0ExMUM3QjIx
MjAwN0E1MzE1IC8qIFJlZ0V4cENhY2hlLmNwcCAqLzsgfTsKIAkJQTE3MTJCM0YxMUM3QjIyODAw
N0E1MzE1IC8qIFJlZ0V4cENhY2hlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBMTcxMkIzRTExQzdCMjI4MDA3QTUzMTUgLyogUmVnRXhwQ2FjaGUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBMTcxMkI0
MTExQzdCMjM1MDA3QTUzMTUgLyogUmVnRXhwS2V5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTcxMkI0MDExQzdCMjM1MDA3QTUzMTUgLyogUmVnRXhw
S2V5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAg
LTEwMDYsNiArMTAxMCwxMCBAQAogCQk5NzJBNDg3NDEyNjYyNTZGMDBGNDUxNEYgLyogVVJMRXNj
YXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFVSTEVzY2FwZS5j
cHA7IHBhdGggPSB1cmwvc3JjL1VSTEVzY2FwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTk3MkE0ODc1MTI2NjI1NkYwMEY0NTE0RiAvKiBVUkxFc2NhcGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gVVJMRXNjYXBlLmg7IHBhdGggPSB1cmwvc3JjL1VSTEVz
Y2FwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzJBNDg3NjEyNjYyNTZGMDBG
NDUxNEYgLyogVVJMUXVlcnlDYW5vbmljYWxpemVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IFVSTFF1ZXJ5Q2Fub25pY2FsaXplci5oOyBwYXRoID0gdXJsL3NyYy9VUkxRdWVy
eUNhbm9uaWNhbGl6ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTc5NDFBM0Yx
MzAyOTlEQjAwNEEzNDQ3IC8qIE9TUmFuZG9tU291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IE9TUmFuZG9tU291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOTc5NDFBNDAxMzAyOTlEQjAwNEEzNDQ3IC8qIE9TUmFuZG9tU291cmNlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE9TUmFuZG9tU291cmNlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk3OTQxQTdDMTMwMkEwOTgwMDRBMzQ0NyAvKiBDcnlw
dG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBDcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTk3OTQxQTdEMTMwMkEwOTgwMDRBMzQ0NyAvKiBDcnlwdG9ncmFw
aGljYWxseVJhbmRvbU51bWJlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBD
cnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5N0Y2OTAzQTExNjlERjdGMDBBNkJCNDYgLyogVGVybWluYXRvci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBUZXJtaW5hdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUExNzEyQjNBMTFDN0IyMTIwMDdBNTMxNSAvKiBSZWdFeHBDYWNoZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWdFeHBDYWNoZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExNzEyQjNFMTFDN0IyMjgwMDdBNTMxNSAvKiBSZWdF
eHBDYWNoZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWdFeHBDYWNoZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTUzNyw2ICsxNTQ1LDggQEAKIAkJCQlB
N0ExRjdBQjBGMjUyQjNDMDBFMTg0RTIgLyogQnl0ZUFycmF5LmggKi8sCiAJCQkJRkRBMTVDMTYx
MkIwMzAyODAwM0E1ODNBIC8qIENvbXBsZXguaCAqLywKIAkJCQkwQkRGRkFENDBGQzYxNzEwMDBE
NjlFRjQgLyogQ3Jvc3NUaHJlYWRSZWZDb3VudGVkLmggKi8sCisJCQkJOTc5NDFBN0MxMzAyQTA5
ODAwNEEzNDQ3IC8qIENyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmNwcCAqLywKKwkJCQk5
Nzk0MUE3RDEzMDJBMDk4MDA0QTM0NDcgLyogQ3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1iZXIu
aCAqLywKIAkJCQkxODBCOUFFRjBGMTZDNTY5MDA5QkRCQzUgLyogQ3VycmVudFRpbWUuY3BwICov
LAogCQkJCTE4MEI5QUYwMEYxNkM1NjkwMDlCREJDNSAvKiBDdXJyZW50VGltZS5oICovLAogCQkJ
CTQxMzU5Q0Y0MEZERDg5Q0IwMDIwNjE4MCAvKiBEYXRlTWF0aC5jcHAgKi8sCkBAIC0xNTc5LDYg
KzE1ODksOCBAQAogCQkJCTkzM0Y1Q0RCMTI2OTIyNjkwMDQ5MTkxRSAvKiBOdWxsUHRyLmggKi8s
CiAJCQkJMTQwMDA2NzYxMkE2Rjc4MzAwNjREMTIzIC8qIE9TQWxsb2NhdG9yLmggKi8sCiAJCQkJ
MTQwMDA2OTIxMkE2RjlFMTAwNjREMTIzIC8qIE9TQWxsb2NhdG9yUG9zaXguY3BwICovLAorCQkJ
CTk3OTQxQTNGMTMwMjk5REIwMDRBMzQ0NyAvKiBPU1JhbmRvbVNvdXJjZS5jcHAgKi8sCisJCQkJ
OTc5NDFBNDAxMzAyOTlEQjAwNEEzNDQ3IC8qIE9TUmFuZG9tU291cmNlLmggKi8sCiAJCQkJOTMw
M0Y1QTQwOTkxMUE1ODAwQUQ3MUI4IC8qIE93bkFycmF5UHRyLmggKi8sCiAJCQkJMEJERkZBRDEw
RkM2MTZFQzAwRDY5RUY0IC8qIE93bkZhc3RNYWxsb2NQdHIuaCAqLywKIAkJCQk5MzAzRjU2NzA5
OTExOEZBMDBBRDcxQjggLyogT3duUHRyLmggKi8sCkBAIC0yNDQ0LDYgKzI0NTYsOCBAQAogCQkJ
CUU0OURDMTZEMTJFRjI5NTMwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRlckNhY2hlSXRlbS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMTRDODI0QUQxMkY3Qzc4NTAwOEYzNUUwIC8qIE1hcmtlZEJsb2Nr
LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNEQ4Q0VGQjEyRkM0Mzk2MDBCQzlGNUEgLyogQmxvb21G
aWx0ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTk3OTQxQTVBMTMwMjlBQ0MwMDRBMzQ0NyAvKiBP
U1JhbmRvbVNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTc5NDFBN0YxMzAyQTA5ODAwNEEz
NDQ3IC8qIENyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAg
LTI5MTMsNiArMjkyNyw4IEBACiAJCQkJODY3MDRCNDIxMkRCOEE4MTAwQTlGRTdCIC8qIFlhcnJT
eW50YXhDaGVja2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUU0OURDMTZCMTJFRjI5M0UwMDE4
NEExRiAvKiBTb3VyY2VQcm92aWRlckNhY2hlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0Qzgy
NEFCMTJGN0M3N0UwMDhGMzVFMCAvKiBNYXJrZWRCbG9jay5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQk5Nzk0MUE1NzEzMDI5QUFCMDA0QTM0NDcgLyogT1NSYW5kb21Tb3VyY2UuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJOTc5NDFBN0UxMzAyQTA5ODAwNEEzNDQ3IC8qIENyeXB0b2dyYXBoaWNhbGx5
UmFuZG9tTnVtYmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBs
b3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2NvbmZpZy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2NvbmZpZy5oCmluZGV4
IGEyYjYyODU4OWYzMmQ2MzYzYmViZGViZTQzOWY1YWQ3ZjcxM2QyZGUuLjIzZTY1OWE4MGM0MGIx
YjVmMzVlZmEyNDI5NDk1MGM5NDhkNWI5MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9jb25maWcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvY29uZmlnLmgKQEAgLTUy
LDExICs1MiwxNiBAQAogLy8gV2UgbmVlZCB0byBkZWZpbmUgdGhpcyBiZWZvcmUgdGhlIGZpcnN0
ICNpbmNsdWRlIG9mIHN0ZGxpYi5oIG9yIGl0IHdvbid0IGNvbnRhaW4gcmFuZF9zLgogI2lmbmRl
ZiBfQ1JUX1JBTkRfUwogI2RlZmluZSBfQ1JUX1JBTkRfUworI2RlZmluZSBXVEZfVVNFX09TX1JB
TkRPTU5FU1MgMQogI2VuZGlmCiAjZW5kaWYKIAogI2VuZGlmCiAKKyNpZiBPUyhEQVJXSU4pIHx8
IE9TKFVOSVgpCisjZGVmaW5lIFdURl9VU0VfT1NfUkFORE9NTkVTUyAxCisjZW5kaWYKKwogI2lm
IE9TKEZSRUVCU0QpIHx8IE9TKE9QRU5CU0QpCiAjZGVmaW5lIEhBVkVfUFRIUkVBRF9OUF9IIDEK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9DTWFrZUxpc3Rz
LnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvQ01ha2VMaXN0cy50eHQKaW5kZXggMzgx
ZWFiN2QzMWI2ZmU1Njg0Yjg2NmQ2ZjkyYWYwMDZlNTFjY2EyZC4uZjg1YmYwMjA3NGNlZjdmNTM3
MzY5ZTQwOGZmNDFiNjUxNjM3NWU5NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3d0Zi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0NNYWtl
TGlzdHMudHh0CkBAIC05LDYgKzksNyBAQCBTRVQoV1RGX0hFQURFUlMKICAgICBCeXRlQXJyYXku
aAogICAgIENvbXBsZXguaAogICAgIENyb3NzVGhyZWFkUmVmQ291bnRlZC5oCisgICAgQ3J5cHRv
Z3JhcGhpY2FsbHlSYW5kb21OdW1iZXIuaAogICAgIEN1cnJlbnRUaW1lLmgKICAgICBEYXRlTWF0
aC5oCiAgICAgRGVjaW1hbE51bWJlci5oCkBAIC00MSw2ICs0Miw3IEBAIFNFVChXVEZfSEVBREVS
UwogICAgIE5vdEZvdW5kLmgKICAgICBOdWxsUHRyLmgKICAgICBPU0FsbG9jYXRvci5oCisgICAg
T1NSYW5kb21Tb3VyY2UuaAogICAgIE93bkFycmF5UHRyLmgKICAgICBPd25GYXN0TWFsbG9jUHRy
LmgKICAgICBPd25QdHIuaApAQCAtMTAzLDEyICsxMDUsMTQgQEAgU0VUKFdURl9IRUFERVJTCiBT
RVQoV1RGX1NPVVJDRVMKICAgICBBc3NlcnRpb25zLmNwcAogICAgIEJ5dGVBcnJheS5jcHAKKyAg
ICBDcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5jcHAKICAgICBDdXJyZW50VGltZS5jcHAK
ICAgICBEZWNpbWFsTnVtYmVyLmNwcAogICAgIEZhc3RNYWxsb2MuY3BwCiAgICAgSGFzaFRhYmxl
LmNwcAogICAgIE1haW5UaHJlYWQuY3BwCiAgICAgTUQ1LmNwcAorICAgIE9TUmFuZG9tU291cmNl
LmNwcAogICAgIFJhbmRvbU51bWJlci5jcHAKICAgICBSZWZDb3VudGVkTGVha0NvdW50ZXIuY3Bw
CiAgICAgU3RhY2tCb3VuZHMuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d3RmL0NyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93dGYvQ3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1iZXIuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMy
NzUwN2NhNGE5MjcwZTQyZDM4NThlMmFjOGI3ZDVlYjdlYzEyOTYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0NyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVy
LmNwcApAQCAtMCwwICsxLDE4NSBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMTk5NiwgRGF2aWQg
TWF6aWVyZXMgPGRtQHV1bi5vcmc+CisgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIERhbWllbiBNaWxs
ZXIgPGRqbUBvcGVuYnNkLm9yZz4KKyAqCisgKiBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9k
aWZ5LCBhbmQgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnkKKyAqIHB1cnBvc2Ugd2l0
aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZCwgcHJvdmlkZWQgdGhhdCB0aGUgYWJv
dmUKKyAqIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgYXBwZWFy
IGluIGFsbCBjb3BpZXMuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIg
QU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTCisgKiBXSVRIIFJFR0FSRCBU
TyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GCisgKiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1Ig
QkUgTElBQkxFIEZPUgorICogQU5ZIFNQRUNJQUwsIERJUkVDVCwgSU5ESVJFQ1QsIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUworICogV0hBVFNPRVZFUiBSRVNVTFRJTkcg
RlJPTSBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOCisgKiBBQ1RJ
T04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1IgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklT
SU5HIE9VVCBPRgorICogT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1IgUEVSRk9STUFO
Q0UgT0YgVEhJUyBTT0ZUV0FSRS4KKyAqLworCisvKgorICogQXJjNCByYW5kb20gbnVtYmVyIGdl
bmVyYXRvciBmb3IgT3BlbkJTRC4KKyAqCisgKiBUaGlzIGNvZGUgaXMgZGVyaXZlZCBmcm9tIHNl
Y3Rpb24gMTcuMSBvZiBBcHBsaWVkIENyeXB0b2dyYXBoeSwKKyAqIHNlY29uZCBlZGl0aW9uLCB3
aGljaCBkZXNjcmliZXMgYSBzdHJlYW0gY2lwaGVyIGFsbGVnZWRseQorICogY29tcGF0aWJsZSB3
aXRoIFJTQSBMYWJzICJSQzQiIGNpcGhlciAodGhlIGFjdHVhbCBkZXNjcmlwdGlvbiBvZgorICog
d2hpY2ggaXMgYSB0cmFkZSBzZWNyZXQpLiAgVGhlIHNhbWUgYWxnb3JpdGhtIGlzIHVzZWQgYXMg
YSBzdHJlYW0KKyAqIGNpcGhlciBjYWxsZWQgImFyY2ZvdXIiIGluIFRhdHUgWWxvbmVuJ3Mgc3No
IHBhY2thZ2UuCisgKgorICogUkM0IGlzIGEgcmVnaXN0ZXJlZCB0cmFkZW1hcmsgb2YgUlNBIExh
Ym9yYXRvcmllcy4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ3J5cHRv
Z3JhcGhpY2FsbHlSYW5kb21OdW1iZXIuaCIKKworI2luY2x1ZGUgIk1haW5UaHJlYWQuaCIKKyNp
bmNsdWRlICJPU1JhbmRvbVNvdXJjZS5oIgorI2luY2x1ZGUgIlN0ZExpYkV4dHJhcy5oIgorI2lu
Y2x1ZGUgIlRocmVhZGluZ1ByaW1pdGl2ZXMuaCIKKworbmFtZXNwYWNlIFdURiB7CisKKyNpZiBV
U0UoT1NfUkFORE9NTkVTUykKKworbmFtZXNwYWNlIHsKKworc3RydWN0IEFSQzRTdHJlYW0gewor
ICAgIHVpbnQ4X3QgaTsKKyAgICB1aW50OF90IGo7CisgICAgdWludDhfdCBzWzI1Nl07Cit9Owor
CitjbGFzcyBBUkM0UmFuZG9tTnVtYmVyR2VuZXJhdG9yIHsKK3B1YmxpYzoKKyAgICBBUkM0UmFu
ZG9tTnVtYmVyR2VuZXJhdG9yKCk7CisKKyAgICB1aW50MzJfdCByYW5kb21OdW1iZXIoKTsKKyAg
ICB2b2lkIHJhbmRvbVZhbHVlcyh2b2lkKiBidWZmZXIsIHNpemVfdCBsZW5ndGgpOworCitwcml2
YXRlOgorICAgIGlubGluZSB2b2lkIGFkZFJhbmRvbURhdGEodW5zaWduZWQgY2hhciAqZGF0YSwg
aW50IGxlbmd0aCk7CisgICAgdm9pZCBzdGlyKCk7CisgICAgdm9pZCBzdGlySWZOZWVkZWQoKTsK
KyAgICBpbmxpbmUgdWludDhfdCBnZXRCeXRlKCk7CisgICAgaW5saW5lIHVpbnQzMl90IGdldFdv
cmQoKTsKKworICAgIGJvb2wgbV9pbml0aWFsaXplZDsKKyAgICBBUkM0U3RyZWFtIG1fc3RyZWFt
OworICAgIGludCBtX2NvdW50OworICAgIE11dGV4IG1fbXV0ZXg7Cit9OworCisKK0FSQzRSYW5k
b21OdW1iZXJHZW5lcmF0b3I6OkFSQzRSYW5kb21OdW1iZXJHZW5lcmF0b3IoKQorICAgIDogbV9p
bml0aWFsaXplZChmYWxzZSkKKyAgICAsIG1fY291bnQoMCkKK3sKKyAgICBmb3IgKGludCBuID0g
MDsgbiA8IDI1NjsgbisrKQorICAgICAgICBtX3N0cmVhbS5zW25dID0gbjsKKyAgICBtX3N0cmVh
bS5pID0gMDsKKyAgICBtX3N0cmVhbS5qID0gMDsKK30KKwordm9pZCBBUkM0UmFuZG9tTnVtYmVy
R2VuZXJhdG9yOjphZGRSYW5kb21EYXRhKHVuc2lnbmVkIGNoYXIgKmRhdGEsIGludCBsZW5ndGgp
Cit7CisgICAgbV9zdHJlYW0uaS0tOworICAgIGZvciAoaW50IG4gPSAwOyBuIDwgMjU2OyBuKysp
IHsKKyAgICAgICAgbV9zdHJlYW0uaSA9IChtX3N0cmVhbS5pICsgMSk7CisgICAgICAgIHVpbnQ4
X3Qgc2kgPSBtX3N0cmVhbS5zW21fc3RyZWFtLmldOworICAgICAgICBtX3N0cmVhbS5qID0gKG1f
c3RyZWFtLmogKyBzaSArIGRhdGFbbiAlIGxlbmd0aF0pOworICAgICAgICBtX3N0cmVhbS5zW21f
c3RyZWFtLmldID0gbV9zdHJlYW0uc1ttX3N0cmVhbS5qXTsKKyAgICAgICAgbV9zdHJlYW0uc1tt
X3N0cmVhbS5qXSA9IHNpOworICAgIH0KKyAgICBtX3N0cmVhbS5qID0gbV9zdHJlYW0uaTsKK30K
Kwordm9pZCBBUkM0UmFuZG9tTnVtYmVyR2VuZXJhdG9yOjpzdGlyKCkKK3sKKyAgICB1bnNpZ25l
ZCBjaGFyIHJhbmRvbW5lc3NbMTI4XTsKKyAgICBzaXplX3QgbGVuZ3RoID0gc2l6ZW9mKHJhbmRv
bW5lc3MpOworICAgIHJhbmRvbVZhbHVlc0Zyb21PUyhyYW5kb21uZXNzLCBsZW5ndGgpOworICAg
IGFkZFJhbmRvbURhdGEocmFuZG9tbmVzcywgbGVuZ3RoKTsKKworICAgIC8vIERpc2NhcmQgZWFy
bHkga2V5c3RyZWFtLCBhcyBwZXIgcmVjb21tZW5kYXRpb25zIGluOgorICAgIC8vIGh0dHA6Ly93
d3cud2lzZG9tLndlaXptYW5uLmFjLmlsL35pdHNpay9SQzQvUGFwZXJzL1JjNF9rc2EucHMKKyAg
ICBmb3IgKGludCBpID0gMDsgaSA8IDI1NjsgaSsrKQorICAgICAgICBnZXRCeXRlKCk7CisgICAg
bV9jb3VudCA9IDE2MDAwMDA7Cit9CisKK3ZvaWQgQVJDNFJhbmRvbU51bWJlckdlbmVyYXRvcjo6
c3RpcklmTmVlZGVkKCkKK3sKKyAgICBpZiAobV9jb3VudCA8PSAwIHx8ICFtX2luaXRpYWxpemVk
KQorICAgICAgICBzdGlyKCk7Cit9CisKK3VpbnQ4X3QgQVJDNFJhbmRvbU51bWJlckdlbmVyYXRv
cjo6Z2V0Qnl0ZSgpCit7CisgICAgbV9zdHJlYW0uaSA9IChtX3N0cmVhbS5pICsgMSk7CisgICAg
dWludDhfdCBzaSA9IG1fc3RyZWFtLnNbbV9zdHJlYW0uaV07CisgICAgbV9zdHJlYW0uaiA9ICht
X3N0cmVhbS5qICsgc2kpOworICAgIHVpbnQ4X3Qgc2ogPSBtX3N0cmVhbS5zW21fc3RyZWFtLmpd
OworICAgIG1fc3RyZWFtLnNbbV9zdHJlYW0uaV0gPSBzajsKKyAgICBtX3N0cmVhbS5zW21fc3Ry
ZWFtLmpdID0gc2k7CisgICAgcmV0dXJuIChtX3N0cmVhbS5zWyhzaSArIHNqKSAmIDB4ZmZdKTsK
K30KKwordWludDMyX3QgQVJDNFJhbmRvbU51bWJlckdlbmVyYXRvcjo6Z2V0V29yZCgpCit7Cisg
ICAgdWludDMyX3QgdmFsOworICAgIHZhbCA9IGdldEJ5dGUoKSA8PCAyNDsKKyAgICB2YWwgfD0g
Z2V0Qnl0ZSgpIDw8IDE2OworICAgIHZhbCB8PSBnZXRCeXRlKCkgPDwgODsKKyAgICB2YWwgfD0g
Z2V0Qnl0ZSgpOworICAgIHJldHVybiB2YWw7Cit9CisKK3VpbnQzMl90IEFSQzRSYW5kb21OdW1i
ZXJHZW5lcmF0b3I6OnJhbmRvbU51bWJlcigpCit7CisjaWYgIUVOQUJMRShKU0NfTVVMVElQTEVf
VEhSRUFEUykKKyAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7CisjZWxzZQorICAgIEFT
U0VSVChpc01haW5UaHJlYWQoKSk7CisjZW5kaWYKKworICAgIG1fY291bnQgLT0gNDsKKyAgICBz
dGlySWZOZWVkZWQoKTsKKyAgICByZXR1cm4gZ2V0V29yZCgpOworfQorCit2b2lkIEFSQzRSYW5k
b21OdW1iZXJHZW5lcmF0b3I6OnJhbmRvbVZhbHVlcyh2b2lkKiBidWZmZXIsIHNpemVfdCBsZW5n
dGgpCit7CisjaWYgIUVOQUJMRShKU0NfTVVMVElQTEVfVEhSRUFEUykKKyAgICBNdXRleExvY2tl
ciBsb2NrZXIobV9tdXRleCk7CisjZWxzZQorICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Cisj
ZW5kaWYKKworICAgIHVuc2lnbmVkIGNoYXIqIHJlc3VsdCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dW5z
aWduZWQgY2hhcio+KGJ1ZmZlcik7CisgICAgc3RpcklmTmVlZGVkKCk7CisgICAgd2hpbGUgKGxl
bmd0aC0tKSB7CisgICAgICAgIGlmICgtLW1fY291bnQgPD0gMCkKKyAgICAgICAgICAgIHN0aXIo
KTsKKyAgICAgICAgcmVzdWx0W2xlbmd0aF0gPSBnZXRCeXRlKCk7CisgICAgfQorfQorCitBUkM0
UmFuZG9tTnVtYmVyR2VuZXJhdG9yJiBzaGFyZWRSYW5kb21OdW1iZXJHZW5lcmF0b3IoKQorewor
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoQVJDNFJhbmRvbU51bWJlckdlbmVyYXRvciwgcmFuZG9t
TnVtYmVyR2VuZXJhdG9yLCAoKSk7CisgICAgcmV0dXJuIHJhbmRvbU51bWJlckdlbmVyYXRvcjsK
K30KKworfQorCit1aW50MzJfdCBjcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlcigpCit7Cisg
ICAgcmV0dXJuIHNoYXJlZFJhbmRvbU51bWJlckdlbmVyYXRvcigpLnJhbmRvbU51bWJlcigpOwor
fQorCit2b2lkIGNyeXB0b2dyYXBoaWNhbGx5UmFuZG9tVmFsdWVzKHZvaWQqIGJ1ZmZlciwgc2l6
ZV90IGxlbmd0aCkKK3sKKyAgICBzaGFyZWRSYW5kb21OdW1iZXJHZW5lcmF0b3IoKS5yYW5kb21W
YWx1ZXMoYnVmZmVyLCBsZW5ndGgpOworfQorCisjZW5kaWYKKworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9DcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9DcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjM0ODI0MmUyNWNjYjUyNzk3OWFlMGY4MzVmOGVhN2FhY2M0NWFlYWUKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0NyeXB0b2dyYXBoaWNh
bGx5UmFuZG9tTnVtYmVyLmgKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAwOCBUb3JjaCBNb2JpbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAoaHR0cDovL3d3dy50
b3JjaG1vYmlsZS5jb20vKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFdURl9DcnlwdG9ncmFwaGljYWxseVJh
bmRvbU51bWJlcl9oCisjZGVmaW5lIFdURl9DcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlcl9o
CisKKyNpbmNsdWRlIDxzdGRpbnQuaD4KKworbmFtZXNwYWNlIFdURiB7CisKKyNpZiBVU0UoT1Nf
UkFORE9NTkVTUykKK3VpbnQzMl90IGNyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyKCk7Cit2
b2lkIGNyeXB0b2dyYXBoaWNhbGx5UmFuZG9tVmFsdWVzKHZvaWQqIGJ1ZmZlciwgc2l6ZV90IGxl
bmd0aCk7CisjZW5kaWYKKworfQorCisjaWYgVVNFKE9TX1JBTkRPTU5FU1MpCit1c2luZyBXVEY6
OmNyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyOwordXNpbmcgV1RGOjpjcnlwdG9ncmFwaGlj
YWxseVJhbmRvbVZhbHVlczsKKyNlbmRpZgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93dGYvT1NSYW5kb21Tb3VyY2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3d0Zi9PU1JhbmRvbVNvdXJjZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTk1ODk5ZGUyZDRhMmE1YTI0
NzAxNWZlNmY5ZjVmN2Y1N2Q2MzZhMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93dGYvT1NSYW5kb21Tb3VyY2UuY3BwCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEdPT0dMRSwgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJPU1JhbmRvbVNvdXJjZS5oIgorCisjaW5jbHVkZSA8
c3RkaW50Lmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisKKyNpZiBPUyhVTklYKQorI2luY2x1ZGUg
PGZjbnRsLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjZW5kaWYKKworbmFtZXNwYWNlIFdURiB7
CisKKyNpZiBVU0UoT1NfUkFORE9NTkVTUykKK3ZvaWQgcmFuZG9tVmFsdWVzRnJvbU9TKHVuc2ln
bmVkIGNoYXIqIGJ1ZmZlciwgc2l6ZV90IGxlbmd0aCkKK3sKKyNpZiBDT01QSUxFUihNU1ZDKSAm
JiBkZWZpbmVkKF9DUlRfUkFORF9TKQorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGVuZ3Ro
OyBpKyspIHsKKyAgICAgICAgdWludDMyX3QgYml0czsKKyAgICAgICAgcmFuZF9zKCZiaXRzKTsK
KyAgICAgICAgYnVmZmVyW2ldID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4oYml0cyk7Cisg
ICAgfQorI2VsaWYgT1MoREFSV0lOKQorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGVuZ3Ro
OyBpKyspIHsKKyAgICAgICAgdWludDMyX3QgYml0czsKKyAgICAgICAgYml0cyA9IGFyYzRyYW5k
b20oKTsKKyAgICAgICAgYnVmZmVyW2ldID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4oYml0
cyk7CisgICAgfQorI2VsaWYgT1MoVU5JWCkKKyAgICBpbnQgZmQgPSBvcGVuKCIvZGV2L3VyYW5k
b20iLCBPX1JET05MWSwgMCk7CisgICAgaWYgKGZkIDwgMCkKKyAgICAgICAgQ1JBU0goKTsgLy8g
V2UgbmVlZCAvZGV2L3VyYW5kb20gZm9yIHRoaXMgQVBJIHRvIHdvcmsuLi4KKworICAgIHJlYWQo
ZmQsIGJ1ZmZlciwgbGVuZ3RoKTsKKyAgICBjbG9zZShmZCk7CisjZWxzZQorICAgICNlcnJvciBU
aGlzIGNvbmZpZ3VyYXRpb24gZG9lc24ndCBoYXZlIGEgc3Ryb25nIHNvdXJjZSBvZiByYW5kb21u
ZXNzLgorICAgIC8vIFdBUk5JTkc6IFdoZW4gYWRkaW5nIG5ldyBzb3VyY2VzIG9mIE9TIHJhbmRv
bW5lc3MsIHRoZSByYW5kb21uZXNzIG11c3QKKyAgICAvLyAgICAgICAgICBiZSBvZiBjcnlwdG9n
cmFwaGljIHF1YWxpdHkhCisjZW5kaWYKK30KKyNlbmRpZgorCit9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd3RmL09TUmFuZG9tU291cmNlLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd3RmL09TUmFuZG9tU291cmNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDU1ZmExZGFiNTA3ZGJhMjk1
NjY0NWFjYzU3N2Y0OGRhNWM1ZTNlNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93dGYvT1NSYW5kb21Tb3VyY2UuaApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSBHb29nbGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEdPT0dMRSwgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgV1RG
X09TUmFuZG9tU291cmNlX2gKKyNkZWZpbmUgV1RGX09TUmFuZG9tU291cmNlX2gKKworbmFtZXNw
YWNlIFdURiB7CisKKyNpZiBVU0UoT1NfUkFORE9NTkVTUykKKy8vIFRoaXMgZnVuY3Rpb24gYXR0
ZW1wdHMgdG8gZmlsbCBidWZmZXIgd2l0aCByYW5kb21uZXNzIGZyb20gdGhlIG9wZXJhdGluZwor
Ly8gc3lzdGVtLiAgSWYgaW5zdWZmaWNpZW50IHJhbmRvbW5lc3MgaXMgYXZhaWxhYmxlLCB0aGUg
YnVmZmVyIHdpbGwgYmUKKy8vIHBhcnRpYWxseSBmaWxsZWQuICBSYXRoZXIgdGhhbiBjYWxsaW5n
IHRoaXMgZnVuY3Rpb24gZGlyZWN0bHksIGNvbnNpZGVyCisvLyBjYWxsaW5nIGNyeXB0b2dyYXBo
aWNhbGx5UmFuZG9tTnVtYmVyIG9yIGNyeXB0b2dyYXBoaWNhbGx5UmFuZG9tVmFsdWVzLgordm9p
ZCByYW5kb21WYWx1ZXNGcm9tT1ModW5zaWduZWQgY2hhciogYnVmZmVyLCBzaXplX3QgbGVuZ3Ro
KTsKKyNlbmRpZgorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3d0Zi93dGYucHJpIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi93dGYucHJpCmluZGV4
IDg4ZDY5NWYwZjI1ZGMxYWUzOTQ4NTg2ODIzYTUzZjNhNTYzNDhiZTEuLjNiZTNiNWZjNGU4ZGJl
YzgyZGVlYTBkNmVmMTNmNGMwYWY3ZTFiMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93dGYvd3RmLnByaQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3d0Zi5wcmkK
QEAgLTMsNiArMyw3IEBACiBTT1VSQ0VTICs9IFwKICAgICB3dGYvQXNzZXJ0aW9ucy5jcHAgXAog
ICAgIHd0Zi9CeXRlQXJyYXkuY3BwIFwKKyAgICB3dGYvQ3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21O
dW1iZXIuY3BwIFwKICAgICB3dGYvQ3VycmVudFRpbWUuY3BwIFwKICAgICB3dGYvRGF0ZU1hdGgu
Y3BwIFwKICAgICB3dGYvZHRvYS5jcHAgXApAQCAtMTQsNiArMTUsNyBAQCBTT1VSQ0VTICs9IFwK
ICAgICB3dGYvTUQ1LmNwcCBcCiAgICAgd3RmL01haW5UaHJlYWQuY3BwIFwKICAgICB3dGYvTnVs
bFB0ci5jcHAgXAorICAgIHd0Zi9PU1JhbmRvbVNvdXJjZS5jcHAgXAogICAgIHd0Zi9xdC9NYWlu
VGhyZWFkUXQuY3BwIFwKICAgICB3dGYvcXQvU3RyaW5nUXQuY3BwIFwKICAgICB3dGYvcXQvVGhy
ZWFkaW5nUXQuY3BwIFwK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81845</attachid>
            <date>2011-02-09 11:55:59 -0800</date>
            <delta_ts>2011-02-09 15:12:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54083-20110209115558.patch</filename>
            <type>text/plain</type>
            <size>26703</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzgwMjcKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BbmRyb2lkLm1rIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FuZHJvaWQubWsKaW5kZXgg
NDJkMjA0MTQwOTVhMWQ0NDNiMjkwN2MwNGQ1NTA2MDlkZGU3YmZkZS4uY2I2ODFkZDA0ZmU2OWVj
Y2NkYTE1NmRjZTBiZjA2NzEwNjcwNmIwMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FuZHJvaWQubWsKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FuZHJvaWQubWsKQEAg
LTE2MSwxNyArMTYxLDE5IEBAIExPQ0FMX1NSQ19GSUxFUyA6PSBcCiAJXAogCXd0Zi9Bc3NlcnRp
b25zLmNwcCBcCiAJd3RmL0J5dGVBcnJheS5jcHAgXAorCXd0Zi9DcnlwdG9ncmFwaGljYWxseVJh
bmRvbU51bWJlci5jcHAgXAogCXd0Zi9DdXJyZW50VGltZS5jcHAgXAogCXd0Zi9EYXRlTWF0aC5j
cHAgXAogCXd0Zi9EZWNpbWFsTnVtYmVyLmNwcCBcCiAJd3RmL0Zhc3RNYWxsb2MuY3BwIFwKIAl3
dGYvSGFzaFRhYmxlLmNwcCBcCiAJd3RmL01haW5UaHJlYWQuY3BwIFwKKwl3dGYvT1NSYW5kb21T
b3VyY2UuY3BwIFwKIAl3dGYvUGFnZUFsbG9jYXRpb25BbGlnbmVkLmNwcFwKIAl3dGYvUGFnZUJs
b2NrLmNwcFwKIAl3dGYvUmFuZG9tTnVtYmVyLmNwcCBcCiAJd3RmL1JlZkNvdW50ZWRMZWFrQ291
bnRlci5jcHAgXAotICAgIHd0Zi9TdGFja0JvdW5kcy5jcHAgXAorCXd0Zi9TdGFja0JvdW5kcy5j
cHAgXAogCXd0Zi9UQ1N5c3RlbUFsbG9jLmNwcCBcCiAJd3RmL1RocmVhZElkZW50aWZpZXJEYXRh
UHRocmVhZHMuY3BwIFwKIAl3dGYvVGhyZWFkaW5nLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQW5kcm9pZC52OC53dGYubWsgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QW5kcm9pZC52OC53dGYubWsKaW5kZXggNDJjYmZlODUwZmRjZGVlYmRkMGFiMjY4ZjQ0ZDEyN2M5
ODg1NzMxOC4uZGMwNzgyOGU0ODA3ZjRjZjZlY2E1ZWQ2NDEwNzUyNjkwODBiNzA3ZiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FuZHJvaWQudjgud3RmLm1rCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BbmRyb2lkLnY4Lnd0Zi5tawpAQCAtMzQsMTUgKzM0LDE3IEBAIExP
Q0FMX1NSQ19GSUxFUyA6PSBcCiAJXAogCXd0Zi9Bc3NlcnRpb25zLmNwcCBcCiAJd3RmL0J5dGVB
cnJheS5jcHAgXAorCXd0Zi9DcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5jcHAgXAogCXd0
Zi9DdXJyZW50VGltZS5jcHAgXAogCXd0Zi9EYXRlTWF0aC5jcHAgXAogCXd0Zi9EZWNpbWFsTnVt
YmVyLmNwcCBcCiAJd3RmL0Zhc3RNYWxsb2MuY3BwIFwKIAl3dGYvSGFzaFRhYmxlLmNwcCBcCiAJ
d3RmL01haW5UaHJlYWQuY3BwIFwKKwl3dGYvT1NSYW5kb21Tb3VyY2UuY3BwIFwKIAl3dGYvUmFu
ZG9tTnVtYmVyLmNwcCBcCiAJd3RmL1JlZkNvdW50ZWRMZWFrQ291bnRlci5jcHAgXAotICAgIHd0
Zi9TdGFja0JvdW5kcy5jcHAgXAorCXd0Zi9TdGFja0JvdW5kcy5jcHAgXAogCXd0Zi9UQ1N5c3Rl
bUFsbG9jLmNwcCBcCiAJd3RmL1RocmVhZElkZW50aWZpZXJEYXRhUHRocmVhZHMuY3BwIFwKIAl3
dGYvVGhyZWFkaW5nLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0Y2RjOGUwZDY2
Nzc4NzBkN2NmM2VkM2I1OWE2N2E0MWM5YjljNjVmLi44ZjEwOTEwNjAzNGZjMjA3MTA3OTIyYzhi
ODEzMWIyZDYxM2NhYmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NCBA
QAorMjAxMS0wMi0wOSAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBXVEY6OmNyeXB0b2dy
YXBoaWNhbGx5UmFuZG9tTnVtYmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD01NDA4MworCisgICAgICAgIEludHJvZHVjZSBhIGNyeXB0b2dyYXBoaWNh
bGx5IHN0cm9uZyByYW5kb20gbnVtYmVyIGdlbmVyYXRvciB0byBXVEYuCisgICAgICAgIFRoZSBy
YW5kb20gbnVtYmVyIGdlbmVyYXRvciBpcyBiYXNlZCBvbiBhcmM0cmFuZG9tIGFzIGZvdW5kIGlu
OgorCisgICAgICAgIGh0dHA6Ly93d3cub3BlbmJzZC5vcmcvY2dpLWJpbi9jdnN3ZWIvc3JjL2xp
Yi9saWJjL2NyeXB0L2FyYzRyYW5kb20uYz9yZXY9MS4yMgorCisgICAgICAgIEkndmUgY2hhbmdl
ZCB0byBzb3VyY2UgdG8gV2ViS2l0IHN0eWxlIGFuZCBhYnN0cmFjdGVkIHRoZSBvcGVyYXRpbmcK
KyAgICAgICAgc3lzdGVtIGludGVyYWN0aW9uIHRvIE9TUmFuZG9tU291cmNlLiAgV2UnbGwgdXNl
IHRoaXMgZnVuY3Rpb25hbGl0eSB0bworICAgICAgICBleHBvc2UgYSBjcnlwdG9ncmFwaGljYWxs
eSBzdHJvbmcgcmFuZG9tIG51bWJlciBnZW5lcmF0b3IgdG8KKyAgICAgICAgSmF2YVNjcmlwdC4K
KworICAgICAgICAqIEFuZHJvaWQubWs6CisgICAgICAgICogQW5kcm9pZC52OC53dGYubWs6Cisg
ICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogSmF2YVNjcmlwdENvcmUuZ3lwaToK
KyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3Byb2ovV1RGL1dURi52Y3Byb2o6CisgICAgICAg
ICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBj
b25maWcuaDoKKyAgICAgICAgKiB3dGYvQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogd3RmL0Ny
eXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmNwcDogQWRkZWQuCisgICAgICAgIChXVEY6Omlu
aXRNdXRleElmTmVlZGVkKToKKyAgICAgICAgKFdURjo6aW5pdCk6CisgICAgICAgIChXVEY6OmFk
ZFJhbmRvbURhdGEpOgorICAgICAgICAoV1RGOjpzdGlyKToKKyAgICAgICAgKFdURjo6c3Rpcklm
TmVlZGVkKToKKyAgICAgICAgKFdURjo6Z2V0Qnl0ZSk6CisgICAgICAgIChXVEY6OmdldFdvcmQp
OgorICAgICAgICAoV1RGOjpjcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlcik6CisgICAgICAg
IChXVEY6OmNyeXB0b2dyYXBoaWNhbGx5UmFuZG9tVmFsdWVzKToKKyAgICAgICAgKiB3dGYvQ3J5
cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1iZXIuaDogQWRkZWQuCisgICAgICAgICogd3RmL09TUmFu
ZG9tU291cmNlLmNwcDogQWRkZWQuCisgICAgICAgIChXVEY6OnJhbmRvbVZhbHVlc0Zyb21PUyk6
CisgICAgICAgICogd3RmL09TUmFuZG9tU291cmNlLmg6IEFkZGVkLgorICAgICAgICAqIHd0Zi93
dGYucHJpOgorCiAyMDExLTAyLTA4ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVt
YWtlZmlsZS5hbQppbmRleCA1MmQ2YjY5YjVlOTgxYzgxYzkzOWE2NTNjYTUxOTFlZmEzZDlhMmE1
Li42OTYyNTg0MDU3ODZjNDA3NjVlNDZmZWM4MjJjNmRjMWNiZWYxYzk3IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC00NDMsNiArNDQzLDggQEAgamF2YXNjcmlwdGNvcmVf
c291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9CeXRlQXJyYXkuY3BwIFwK
IAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0J5dGVBcnJheS5oIFwKIAlTb3VyY2UvSmF2YVNj
cmlwdENvcmUvd3RmL0Nyb3NzVGhyZWFkUmVmQ291bnRlZC5oIFwKKwlTb3VyY2UvSmF2YVNjcmlw
dENvcmUvd3RmL0NyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmNwcCBcCisJU291cmNlL0ph
dmFTY3JpcHRDb3JlL3d0Zi9DcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5oIFwKIAlTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd3RmL0N1cnJlbnRUaW1lLmNwcCBcCiAJU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9DdXJyZW50VGltZS5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0Rh
dGVNYXRoLmNwcCBcCkBAIC00OTEsNiArNDkzLDggQEAgamF2YXNjcmlwdGNvcmVfc291cmNlcyAr
PSBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9Ob3RGb3VuZC5oIFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL051bGxQdHIuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9P
U0FsbG9jYXRvci5oIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL09TUmFuZG9tU291cmNl
LmNwcCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9PU1JhbmRvbVNvdXJjZS5oIFwKIAlT
b3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL093bkFycmF5UHRyLmggXAogCVNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93dGYvT3duRmFzdE1hbGxvY1B0ci5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUv
d3RmL093blB0ckNvbW1vbi5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS5neXBpIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
Lmd5cGkKaW5kZXggNDE3ODY4MzhkNjBhYWUwYjZlMWY4ZTk3NDQyODJjMjUzNDE3YmFiZi4uYzRk
ZjZkNjg0M2E0MDBkOWEyMTQzMDRmYzFmMTA1ZTg2ZTY0NWRmYSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5cGkKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5cGkKQEAgLTM3NCw2ICszNzQsOCBAQAogICAgICAgICAg
ICAgJ3d0Zi9jaHJvbWl1bS9DaHJvbWl1bVRocmVhZGluZy5oJywKICAgICAgICAgICAgICd3dGYv
Y2hyb21pdW0vTWFpblRocmVhZENocm9taXVtLmNwcCcsCiAgICAgICAgICAgICAnd3RmL0Nyb3Nz
VGhyZWFkUmVmQ291bnRlZC5oJywKKyAgICAgICAgICAgICd3dGYvQ3J5cHRvZ3JhcGhpY2FsbHlS
YW5kb21OdW1iZXIuY3BwJywKKyAgICAgICAgICAgICd3dGYvQ3J5cHRvZ3JhcGhpY2FsbHlSYW5k
b21OdW1iZXIuaCcsCiAgICAgICAgICAgICAnd3RmL0N1cnJlbnRUaW1lLmNwcCcsCiAgICAgICAg
ICAgICAnd3RmL0N1cnJlbnRUaW1lLmgnLAogICAgICAgICAgICAgJ3d0Zi9EYXRlTWF0aC5jcHAn
LApAQCAtNDE2LDYgKzQxOCw4IEBACiAgICAgICAgICAgICAnd3RmL09TQWxsb2NhdG9yUG9zaXgu
Y3BwJywKICAgICAgICAgICAgICd3dGYvT1NBbGxvY2F0b3JXaW4uY3BwJywKICAgICAgICAgICAg
ICd3dGYvT1NBbGxvY2F0b3IuaCcsCisgICAgICAgICAgICAnd3RmL09TUmFuZG9tU291cmNlLmNw
cCcsCisgICAgICAgICAgICAnd3RmL09TUmFuZG9tU291cmNlLmgnLAogICAgICAgICAgICAgJ3d0
Zi9Pd25BcnJheVB0ci5oJywKICAgICAgICAgICAgICd3dGYvT3duRmFzdE1hbGxvY1B0ci5oJywK
ICAgICAgICAgICAgICd3dGYvT3duUHRyLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9XVEYvV1RGLnZjcHJvaiBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovV1RGL1dURi52Y3Byb2oKaW5kZXggNzgy
MGQxMzU0MjU1MDlkZjkwMzk0N2I5M2NhMGYxOTk3N2M5OTQ5Yy4uNTUzNzFmM2RhMDExMWU4ZjA1
OTI2MzlmMmM1ZGZjNTU4MTVkMjNmMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnZjcHJvai9XVEYvV1RGLnZjcHJvagorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL1dURi9XVEYudmNwcm9qCkBAIC01NjEsNiAr
NTYxLDE0IEBACiAJCQk+CiAJCTwvRmlsZT4KIAkJPEZpbGUKKwkJCVJlbGF0aXZlUGF0aD0iLi5c
Li5cd3RmXENyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmNwcCIKKwkJCT4KKwkJPC9GaWxl
PgorCQk8RmlsZQorCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlx3dGZcQ3J5cHRvZ3JhcGhpY2FsbHlS
YW5kb21OdW1iZXIuaCIKKwkJCT4KKwkJPC9GaWxlPgorCQk8RmlsZQogCQkJUmVsYXRpdmVQYXRo
PSIuLlwuLlx3dGZcQ3VycmVudFRpbWUuY3BwIgogCQkJPgogCQk8L0ZpbGU+CkBAIC03NTMsNiAr
NzYxLDE0IEBACiAJCQk+CiAJCTwvRmlsZT4KIAkJPEZpbGUKKwkJCVJlbGF0aXZlUGF0aD0iLi5c
Li5cd3RmXE9TUmFuZG9tU291cmNlLmNwcCIKKwkJCT4KKwkJPC9GaWxlPgorCQk8RmlsZQorCQkJ
UmVsYXRpdmVQYXRoPSIuLlwuLlx3dGZcT1NSYW5kb21Tb3VyY2UuaCIKKwkJCT4KKwkJPC9GaWxl
PgorCQk8RmlsZQogCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlx3dGZcT3duQXJyYXlQdHIuaCIKIAkJ
CT4KIAkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzYmQzOTBiODUx
ZjRkZTBhZjM3NWVhMzVkNTZkNzkwZDYyZWY5NGY3Li45OTg2MjM5ZDE0ZDU5ODdmMTU4OGQ3ZWEx
NjdhMDg5OGU2OWM4MmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzM4LDYg
KzMzOCwxMCBAQAogCQk5NzFFREVBNjExNjlFMEQzMDA1RTQyNjIgLyogVGVybWluYXRvci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTdGNjkwM0ExMTY5
REY3RjAwQTZCQjQ2IC8qIFRlcm1pbmF0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk5NzJBNDg1RjEyNjYxRTA4MDBGNDUxNEYgLyogVVJMQ2hh
cmFjdGVyVHlwZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTcyQTQ4NUQxMjY2MUUwODAwRjQ1MTRGIC8qIFVSTENoYXJhY3RlclR5cGVzLmNwcCAq
LzsgfTsKIAkJOTcyQTQ4NzcxMjY2MjU2RjAwRjQ1MTRGIC8qIFVSTEVzY2FwZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzJBNDg3NDEyNjYyNTZG
MDBGNDUxNEYgLyogVVJMRXNjYXBlLmNwcCAqLzsgfTsKKwkJOTc5NDFBNTcxMzAyOUFBQjAwNEEz
NDQ3IC8qIE9TUmFuZG9tU291cmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDk3OTQxQTNGMTMwMjk5REIwMDRBMzQ0NyAvKiBPU1JhbmRvbVNvdXJj
ZS5jcHAgKi87IH07CisJCTk3OTQxQTVBMTMwMjlBQ0MwMDRBMzQ0NyAvKiBPU1JhbmRvbVNvdXJj
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc5NDFB
NDAxMzAyOTlEQjAwNEEzNDQ3IC8qIE9TUmFuZG9tU291cmNlLmggKi87IH07CisJCTk3OTQxQTdF
MTMwMkEwOTgwMDRBMzQ0NyAvKiBDcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5Nzk0MUE3QzEzMDJB
MDk4MDA0QTM0NDcgLyogQ3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1iZXIuY3BwICovOyB9Owor
CQk5Nzk0MUE3RjEzMDJBMDk4MDA0QTM0NDcgLyogQ3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1i
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3OTQx
QTdEMTMwMkEwOTgwMDRBMzQ0NyAvKiBDcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5oICov
OyB9OwogCQlBMTcxMkIzQjExQzdCMjEyMDA3QTUzMTUgLyogUmVnRXhwQ2FjaGUuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTE3MTJCM0ExMUM3QjIx
MjAwN0E1MzE1IC8qIFJlZ0V4cENhY2hlLmNwcCAqLzsgfTsKIAkJQTE3MTJCM0YxMUM3QjIyODAw
N0E1MzE1IC8qIFJlZ0V4cENhY2hlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBMTcxMkIzRTExQzdCMjI4MDA3QTUzMTUgLyogUmVnRXhwQ2FjaGUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBMTcxMkI0
MTExQzdCMjM1MDA3QTUzMTUgLyogUmVnRXhwS2V5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTcxMkI0MDExQzdCMjM1MDA3QTUzMTUgLyogUmVnRXhw
S2V5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAg
LTEwMDYsNiArMTAxMCwxMCBAQAogCQk5NzJBNDg3NDEyNjYyNTZGMDBGNDUxNEYgLyogVVJMRXNj
YXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFVSTEVzY2FwZS5j
cHA7IHBhdGggPSB1cmwvc3JjL1VSTEVzY2FwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTk3MkE0ODc1MTI2NjI1NkYwMEY0NTE0RiAvKiBVUkxFc2NhcGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gVVJMRXNjYXBlLmg7IHBhdGggPSB1cmwvc3JjL1VSTEVz
Y2FwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzJBNDg3NjEyNjYyNTZGMDBG
NDUxNEYgLyogVVJMUXVlcnlDYW5vbmljYWxpemVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IFVSTFF1ZXJ5Q2Fub25pY2FsaXplci5oOyBwYXRoID0gdXJsL3NyYy9VUkxRdWVy
eUNhbm9uaWNhbGl6ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTc5NDFBM0Yx
MzAyOTlEQjAwNEEzNDQ3IC8qIE9TUmFuZG9tU291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IE9TUmFuZG9tU291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOTc5NDFBNDAxMzAyOTlEQjAwNEEzNDQ3IC8qIE9TUmFuZG9tU291cmNlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE9TUmFuZG9tU291cmNlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk3OTQxQTdDMTMwMkEwOTgwMDRBMzQ0NyAvKiBDcnlw
dG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBDcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTk3OTQxQTdEMTMwMkEwOTgwMDRBMzQ0NyAvKiBDcnlwdG9ncmFw
aGljYWxseVJhbmRvbU51bWJlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBD
cnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5N0Y2OTAzQTExNjlERjdGMDBBNkJCNDYgLyogVGVybWluYXRvci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBUZXJtaW5hdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUExNzEyQjNBMTFDN0IyMTIwMDdBNTMxNSAvKiBSZWdFeHBDYWNoZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWdFeHBDYWNoZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExNzEyQjNFMTFDN0IyMjgwMDdBNTMxNSAvKiBSZWdF
eHBDYWNoZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWdFeHBDYWNoZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTUzNyw2ICsxNTQ1LDggQEAKIAkJCQlB
N0ExRjdBQjBGMjUyQjNDMDBFMTg0RTIgLyogQnl0ZUFycmF5LmggKi8sCiAJCQkJRkRBMTVDMTYx
MkIwMzAyODAwM0E1ODNBIC8qIENvbXBsZXguaCAqLywKIAkJCQkwQkRGRkFENDBGQzYxNzEwMDBE
NjlFRjQgLyogQ3Jvc3NUaHJlYWRSZWZDb3VudGVkLmggKi8sCisJCQkJOTc5NDFBN0MxMzAyQTA5
ODAwNEEzNDQ3IC8qIENyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmNwcCAqLywKKwkJCQk5
Nzk0MUE3RDEzMDJBMDk4MDA0QTM0NDcgLyogQ3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1iZXIu
aCAqLywKIAkJCQkxODBCOUFFRjBGMTZDNTY5MDA5QkRCQzUgLyogQ3VycmVudFRpbWUuY3BwICov
LAogCQkJCTE4MEI5QUYwMEYxNkM1NjkwMDlCREJDNSAvKiBDdXJyZW50VGltZS5oICovLAogCQkJ
CTQxMzU5Q0Y0MEZERDg5Q0IwMDIwNjE4MCAvKiBEYXRlTWF0aC5jcHAgKi8sCkBAIC0xNTc5LDYg
KzE1ODksOCBAQAogCQkJCTkzM0Y1Q0RCMTI2OTIyNjkwMDQ5MTkxRSAvKiBOdWxsUHRyLmggKi8s
CiAJCQkJMTQwMDA2NzYxMkE2Rjc4MzAwNjREMTIzIC8qIE9TQWxsb2NhdG9yLmggKi8sCiAJCQkJ
MTQwMDA2OTIxMkE2RjlFMTAwNjREMTIzIC8qIE9TQWxsb2NhdG9yUG9zaXguY3BwICovLAorCQkJ
CTk3OTQxQTNGMTMwMjk5REIwMDRBMzQ0NyAvKiBPU1JhbmRvbVNvdXJjZS5jcHAgKi8sCisJCQkJ
OTc5NDFBNDAxMzAyOTlEQjAwNEEzNDQ3IC8qIE9TUmFuZG9tU291cmNlLmggKi8sCiAJCQkJOTMw
M0Y1QTQwOTkxMUE1ODAwQUQ3MUI4IC8qIE93bkFycmF5UHRyLmggKi8sCiAJCQkJMEJERkZBRDEw
RkM2MTZFQzAwRDY5RUY0IC8qIE93bkZhc3RNYWxsb2NQdHIuaCAqLywKIAkJCQk5MzAzRjU2NzA5
OTExOEZBMDBBRDcxQjggLyogT3duUHRyLmggKi8sCkBAIC0yNDQ0LDYgKzI0NTYsOCBAQAogCQkJ
CUU0OURDMTZEMTJFRjI5NTMwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRlckNhY2hlSXRlbS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMTRDODI0QUQxMkY3Qzc4NTAwOEYzNUUwIC8qIE1hcmtlZEJsb2Nr
LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNEQ4Q0VGQjEyRkM0Mzk2MDBCQzlGNUEgLyogQmxvb21G
aWx0ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTk3OTQxQTVBMTMwMjlBQ0MwMDRBMzQ0NyAvKiBP
U1JhbmRvbVNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTc5NDFBN0YxMzAyQTA5ODAwNEEz
NDQ3IC8qIENyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAg
LTI5MTMsNiArMjkyNyw4IEBACiAJCQkJODY3MDRCNDIxMkRCOEE4MTAwQTlGRTdCIC8qIFlhcnJT
eW50YXhDaGVja2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUU0OURDMTZCMTJFRjI5M0UwMDE4
NEExRiAvKiBTb3VyY2VQcm92aWRlckNhY2hlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0Qzgy
NEFCMTJGN0M3N0UwMDhGMzVFMCAvKiBNYXJrZWRCbG9jay5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQk5Nzk0MUE1NzEzMDI5QUFCMDA0QTM0NDcgLyogT1NSYW5kb21Tb3VyY2UuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJOTc5NDFBN0UxMzAyQTA5ODAwNEEzNDQ3IC8qIENyeXB0b2dyYXBoaWNhbGx5
UmFuZG9tTnVtYmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBs
b3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2NvbmZpZy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2NvbmZpZy5oCmluZGV4
IGEyYjYyODU4OWYzMmQ2MzYzYmViZGViZTQzOWY1YWQ3ZjcxM2QyZGUuLjIzZTY1OWE4MGM0MGIx
YjVmMzVlZmEyNDI5NDk1MGM5NDhkNWI5MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9jb25maWcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvY29uZmlnLmgKQEAgLTUy
LDExICs1MiwxNiBAQAogLy8gV2UgbmVlZCB0byBkZWZpbmUgdGhpcyBiZWZvcmUgdGhlIGZpcnN0
ICNpbmNsdWRlIG9mIHN0ZGxpYi5oIG9yIGl0IHdvbid0IGNvbnRhaW4gcmFuZF9zLgogI2lmbmRl
ZiBfQ1JUX1JBTkRfUwogI2RlZmluZSBfQ1JUX1JBTkRfUworI2RlZmluZSBXVEZfVVNFX09TX1JB
TkRPTU5FU1MgMQogI2VuZGlmCiAjZW5kaWYKIAogI2VuZGlmCiAKKyNpZiBPUyhEQVJXSU4pIHx8
IE9TKFVOSVgpCisjZGVmaW5lIFdURl9VU0VfT1NfUkFORE9NTkVTUyAxCisjZW5kaWYKKwogI2lm
IE9TKEZSRUVCU0QpIHx8IE9TKE9QRU5CU0QpCiAjZGVmaW5lIEhBVkVfUFRIUkVBRF9OUF9IIDEK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9DTWFrZUxpc3Rz
LnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvQ01ha2VMaXN0cy50eHQKaW5kZXggMzgx
ZWFiN2QzMWI2ZmU1Njg0Yjg2NmQ2ZjkyYWYwMDZlNTFjY2EyZC4uZjg1YmYwMjA3NGNlZjdmNTM3
MzY5ZTQwOGZmNDFiNjUxNjM3NWU5NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3d0Zi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0NNYWtl
TGlzdHMudHh0CkBAIC05LDYgKzksNyBAQCBTRVQoV1RGX0hFQURFUlMKICAgICBCeXRlQXJyYXku
aAogICAgIENvbXBsZXguaAogICAgIENyb3NzVGhyZWFkUmVmQ291bnRlZC5oCisgICAgQ3J5cHRv
Z3JhcGhpY2FsbHlSYW5kb21OdW1iZXIuaAogICAgIEN1cnJlbnRUaW1lLmgKICAgICBEYXRlTWF0
aC5oCiAgICAgRGVjaW1hbE51bWJlci5oCkBAIC00MSw2ICs0Miw3IEBAIFNFVChXVEZfSEVBREVS
UwogICAgIE5vdEZvdW5kLmgKICAgICBOdWxsUHRyLmgKICAgICBPU0FsbG9jYXRvci5oCisgICAg
T1NSYW5kb21Tb3VyY2UuaAogICAgIE93bkFycmF5UHRyLmgKICAgICBPd25GYXN0TWFsbG9jUHRy
LmgKICAgICBPd25QdHIuaApAQCAtMTAzLDEyICsxMDUsMTQgQEAgU0VUKFdURl9IRUFERVJTCiBT
RVQoV1RGX1NPVVJDRVMKICAgICBBc3NlcnRpb25zLmNwcAogICAgIEJ5dGVBcnJheS5jcHAKKyAg
ICBDcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5jcHAKICAgICBDdXJyZW50VGltZS5jcHAK
ICAgICBEZWNpbWFsTnVtYmVyLmNwcAogICAgIEZhc3RNYWxsb2MuY3BwCiAgICAgSGFzaFRhYmxl
LmNwcAogICAgIE1haW5UaHJlYWQuY3BwCiAgICAgTUQ1LmNwcAorICAgIE9TUmFuZG9tU291cmNl
LmNwcAogICAgIFJhbmRvbU51bWJlci5jcHAKICAgICBSZWZDb3VudGVkTGVha0NvdW50ZXIuY3Bw
CiAgICAgU3RhY2tCb3VuZHMuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d3RmL0NyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93dGYvQ3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1iZXIuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA2
MDRiNmU2YzVmNWM5OTA2MzlmNDc4YjRhMzQwYzkyMzQzYzMxNmYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0NyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVy
LmNwcApAQCAtMCwwICsxLDE4OSBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMTk5NiwgRGF2aWQg
TWF6aWVyZXMgPGRtQHV1bi5vcmc+CisgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIERhbWllbiBNaWxs
ZXIgPGRqbUBvcGVuYnNkLm9yZz4KKyAqCisgKiBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9k
aWZ5LCBhbmQgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnkKKyAqIHB1cnBvc2Ugd2l0
aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZCwgcHJvdmlkZWQgdGhhdCB0aGUgYWJv
dmUKKyAqIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgYXBwZWFy
IGluIGFsbCBjb3BpZXMuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIg
QU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTCisgKiBXSVRIIFJFR0FSRCBU
TyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GCisgKiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1Ig
QkUgTElBQkxFIEZPUgorICogQU5ZIFNQRUNJQUwsIERJUkVDVCwgSU5ESVJFQ1QsIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUworICogV0hBVFNPRVZFUiBSRVNVTFRJTkcg
RlJPTSBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOCisgKiBBQ1RJ
T04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1IgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklT
SU5HIE9VVCBPRgorICogT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1IgUEVSRk9STUFO
Q0UgT0YgVEhJUyBTT0ZUV0FSRS4KKyAqLworCisvKgorICogQXJjNCByYW5kb20gbnVtYmVyIGdl
bmVyYXRvciBmb3IgT3BlbkJTRC4KKyAqCisgKiBUaGlzIGNvZGUgaXMgZGVyaXZlZCBmcm9tIHNl
Y3Rpb24gMTcuMSBvZiBBcHBsaWVkIENyeXB0b2dyYXBoeSwKKyAqIHNlY29uZCBlZGl0aW9uLCB3
aGljaCBkZXNjcmliZXMgYSBzdHJlYW0gY2lwaGVyIGFsbGVnZWRseQorICogY29tcGF0aWJsZSB3
aXRoIFJTQSBMYWJzICJSQzQiIGNpcGhlciAodGhlIGFjdHVhbCBkZXNjcmlwdGlvbiBvZgorICog
d2hpY2ggaXMgYSB0cmFkZSBzZWNyZXQpLiAgVGhlIHNhbWUgYWxnb3JpdGhtIGlzIHVzZWQgYXMg
YSBzdHJlYW0KKyAqIGNpcGhlciBjYWxsZWQgImFyY2ZvdXIiIGluIFRhdHUgWWxvbmVuJ3Mgc3No
IHBhY2thZ2UuCisgKgorICogUkM0IGlzIGEgcmVnaXN0ZXJlZCB0cmFkZW1hcmsgb2YgUlNBIExh
Ym9yYXRvcmllcy4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ3J5cHRv
Z3JhcGhpY2FsbHlSYW5kb21OdW1iZXIuaCIKKworI2luY2x1ZGUgIk1haW5UaHJlYWQuaCIKKyNp
bmNsdWRlICJPU1JhbmRvbVNvdXJjZS5oIgorI2luY2x1ZGUgIlN0ZExpYkV4dHJhcy5oIgorI2lu
Y2x1ZGUgIlRocmVhZGluZ1ByaW1pdGl2ZXMuaCIKKworbmFtZXNwYWNlIFdURiB7CisKKyNpZiBV
U0UoT1NfUkFORE9NTkVTUykKKworbmFtZXNwYWNlIHsKKworY2xhc3MgQVJDNFN0cmVhbSB7Citw
dWJsaWM6CisgICAgQVJDNFN0cmVhbSgpOworCisgICAgdWludDhfdCBpOworICAgIHVpbnQ4X3Qg
ajsKKyAgICB1aW50OF90IHNbMjU2XTsKK307CisKK2NsYXNzIEFSQzRSYW5kb21OdW1iZXJHZW5l
cmF0b3IgeworcHVibGljOgorICAgIEFSQzRSYW5kb21OdW1iZXJHZW5lcmF0b3IoKTsKKworICAg
IHVpbnQzMl90IHJhbmRvbU51bWJlcigpOworICAgIHZvaWQgcmFuZG9tVmFsdWVzKHZvaWQqIGJ1
ZmZlciwgc2l6ZV90IGxlbmd0aCk7CisKK3ByaXZhdGU6CisgICAgaW5saW5lIHZvaWQgYWRkUmFu
ZG9tRGF0YSh1bnNpZ25lZCBjaGFyICpkYXRhLCBpbnQgbGVuZ3RoKTsKKyAgICB2b2lkIHN0aXIo
KTsKKyAgICB2b2lkIHN0aXJJZk5lZWRlZCgpOworICAgIGlubGluZSB1aW50OF90IGdldEJ5dGUo
KTsKKyAgICBpbmxpbmUgdWludDMyX3QgZ2V0V29yZCgpOworCisgICAgQVJDNFN0cmVhbSBtX3N0
cmVhbTsKKyAgICBpbnQgbV9jb3VudDsKKyAgICBNdXRleCBtX211dGV4OworfTsKKworQVJDNFN0
cmVhbTo6QVJDNFN0cmVhbSgpCit7CisgICAgZm9yIChpbnQgbiA9IDA7IG4gPCAyNTY7IG4rKykK
KyAgICAgICAgc1tuXSA9IG47CisgICAgaSA9IDA7CisgICAgaiA9IDA7Cit9CisKK0FSQzRSYW5k
b21OdW1iZXJHZW5lcmF0b3I6OkFSQzRSYW5kb21OdW1iZXJHZW5lcmF0b3IoKQorICAgIDogbV9j
b3VudCgwKQoreworfQorCit2b2lkIEFSQzRSYW5kb21OdW1iZXJHZW5lcmF0b3I6OmFkZFJhbmRv
bURhdGEodW5zaWduZWQgY2hhciogZGF0YSwgaW50IGxlbmd0aCkKK3sKKyAgICBtX3N0cmVhbS5p
LS07CisgICAgZm9yIChpbnQgbiA9IDA7IG4gPCAyNTY7IG4rKykgeworICAgICAgICBtX3N0cmVh
bS5pKys7CisgICAgICAgIHVpbnQ4X3Qgc2kgPSBtX3N0cmVhbS5zW21fc3RyZWFtLmldOworICAg
ICAgICBtX3N0cmVhbS5qICs9IHNpICsgZGF0YVtuICUgbGVuZ3RoXTsKKyAgICAgICAgbV9zdHJl
YW0uc1ttX3N0cmVhbS5pXSA9IG1fc3RyZWFtLnNbbV9zdHJlYW0ual07CisgICAgICAgIG1fc3Ry
ZWFtLnNbbV9zdHJlYW0ual0gPSBzaTsKKyAgICB9CisgICAgbV9zdHJlYW0uaiA9IG1fc3RyZWFt
Lmk7Cit9CisKK3ZvaWQgQVJDNFJhbmRvbU51bWJlckdlbmVyYXRvcjo6c3RpcigpCit7CisgICAg
dW5zaWduZWQgY2hhciByYW5kb21uZXNzWzEyOF07CisgICAgc2l6ZV90IGxlbmd0aCA9IHNpemVv
ZihyYW5kb21uZXNzKTsKKyAgICByYW5kb21WYWx1ZXNGcm9tT1MocmFuZG9tbmVzcywgbGVuZ3Ro
KTsKKyAgICBhZGRSYW5kb21EYXRhKHJhbmRvbW5lc3MsIGxlbmd0aCk7CisKKyAgICAvLyBEaXNj
YXJkIGVhcmx5IGtleXN0cmVhbSwgYXMgcGVyIHJlY29tbWVuZGF0aW9ucyBpbjoKKyAgICAvLyBo
dHRwOi8vd3d3Lndpc2RvbS53ZWl6bWFubi5hYy5pbC9+aXRzaWsvUkM0L1BhcGVycy9SYzRfa3Nh
LnBzCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAyNTY7IGkrKykKKyAgICAgICAgZ2V0Qnl0ZSgp
OworICAgIG1fY291bnQgPSAxNjAwMDAwOworfQorCit2b2lkIEFSQzRSYW5kb21OdW1iZXJHZW5l
cmF0b3I6OnN0aXJJZk5lZWRlZCgpCit7CisgICAgaWYgKG1fY291bnQgPD0gMCkKKyAgICAgICAg
c3RpcigpOworfQorCit1aW50OF90IEFSQzRSYW5kb21OdW1iZXJHZW5lcmF0b3I6OmdldEJ5dGUo
KQoreworICAgIG1fc3RyZWFtLmkrKzsKKyAgICB1aW50OF90IHNpID0gbV9zdHJlYW0uc1ttX3N0
cmVhbS5pXTsKKyAgICBtX3N0cmVhbS5qICs9IHNpOworICAgIHVpbnQ4X3Qgc2ogPSBtX3N0cmVh
bS5zW21fc3RyZWFtLmpdOworICAgIG1fc3RyZWFtLnNbbV9zdHJlYW0uaV0gPSBzajsKKyAgICBt
X3N0cmVhbS5zW21fc3RyZWFtLmpdID0gc2k7CisgICAgcmV0dXJuIChtX3N0cmVhbS5zWyhzaSAr
IHNqKSAmIDB4ZmZdKTsKK30KKwordWludDMyX3QgQVJDNFJhbmRvbU51bWJlckdlbmVyYXRvcjo6
Z2V0V29yZCgpCit7CisgICAgdWludDMyX3QgdmFsOworICAgIHZhbCA9IGdldEJ5dGUoKSA8PCAy
NDsKKyAgICB2YWwgfD0gZ2V0Qnl0ZSgpIDw8IDE2OworICAgIHZhbCB8PSBnZXRCeXRlKCkgPDwg
ODsKKyAgICB2YWwgfD0gZ2V0Qnl0ZSgpOworICAgIHJldHVybiB2YWw7Cit9CisKK3VpbnQzMl90
IEFSQzRSYW5kb21OdW1iZXJHZW5lcmF0b3I6OnJhbmRvbU51bWJlcigpCit7CisjaWYgIUVOQUJM
RShKU0NfTVVMVElQTEVfVEhSRUFEUykKKyAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7
CisjZWxzZQorICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisjZW5kaWYKKworICAgIG1fY291
bnQgLT0gNDsKKyAgICBzdGlySWZOZWVkZWQoKTsKKyAgICByZXR1cm4gZ2V0V29yZCgpOworfQor
Cit2b2lkIEFSQzRSYW5kb21OdW1iZXJHZW5lcmF0b3I6OnJhbmRvbVZhbHVlcyh2b2lkKiBidWZm
ZXIsIHNpemVfdCBsZW5ndGgpCit7CisjaWYgIUVOQUJMRShKU0NfTVVMVElQTEVfVEhSRUFEUykK
KyAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7CisjZWxzZQorICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7CisjZW5kaWYKKworICAgIHVuc2lnbmVkIGNoYXIqIHJlc3VsdCA9IHJlaW50
ZXJwcmV0X2Nhc3Q8dW5zaWduZWQgY2hhcio+KGJ1ZmZlcik7CisgICAgc3RpcklmTmVlZGVkKCk7
CisgICAgd2hpbGUgKGxlbmd0aC0tKSB7CisgICAgICAgIG1fY291bnQtLTsKKyAgICAgICAgc3Rp
cklmTmVlZGVkKCk7CisgICAgICAgIHJlc3VsdFtsZW5ndGhdID0gZ2V0Qnl0ZSgpOworICAgIH0K
K30KKworQVJDNFJhbmRvbU51bWJlckdlbmVyYXRvciYgc2hhcmVkUmFuZG9tTnVtYmVyR2VuZXJh
dG9yKCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEFSQzRSYW5kb21OdW1iZXJHZW5lcmF0
b3IsIHJhbmRvbU51bWJlckdlbmVyYXRvciwgKCkpOworICAgIHJldHVybiByYW5kb21OdW1iZXJH
ZW5lcmF0b3I7Cit9CisKK30KKwordWludDMyX3QgY3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1i
ZXIoKQoreworICAgIHJldHVybiBzaGFyZWRSYW5kb21OdW1iZXJHZW5lcmF0b3IoKS5yYW5kb21O
dW1iZXIoKTsKK30KKwordm9pZCBjcnlwdG9ncmFwaGljYWxseVJhbmRvbVZhbHVlcyh2b2lkKiBi
dWZmZXIsIHNpemVfdCBsZW5ndGgpCit7CisgICAgc2hhcmVkUmFuZG9tTnVtYmVyR2VuZXJhdG9y
KCkucmFuZG9tVmFsdWVzKGJ1ZmZlciwgbGVuZ3RoKTsKK30KKworI2VuZGlmCisKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvQ3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21O
dW1iZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvQ3J5cHRvZ3JhcGhpY2FsbHlSYW5k
b21OdW1iZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNDgyNDJlMjVjY2I1Mjc5NzlhZTBmODM1ZjhlYTdhYWNj
NDVhZWFlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9Dcnlw
dG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5oCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDggVG9yY2ggTW9iaWxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gKGh0
dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLykKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBXVEZfQ3J5cHRvZ3Jh
cGhpY2FsbHlSYW5kb21OdW1iZXJfaAorI2RlZmluZSBXVEZfQ3J5cHRvZ3JhcGhpY2FsbHlSYW5k
b21OdW1iZXJfaAorCisjaW5jbHVkZSA8c3RkaW50Lmg+CisKK25hbWVzcGFjZSBXVEYgeworCisj
aWYgVVNFKE9TX1JBTkRPTU5FU1MpCit1aW50MzJfdCBjcnlwdG9ncmFwaGljYWxseVJhbmRvbU51
bWJlcigpOwordm9pZCBjcnlwdG9ncmFwaGljYWxseVJhbmRvbVZhbHVlcyh2b2lkKiBidWZmZXIs
IHNpemVfdCBsZW5ndGgpOworI2VuZGlmCisKK30KKworI2lmIFVTRShPU19SQU5ET01ORVNTKQor
dXNpbmcgV1RGOjpjcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlcjsKK3VzaW5nIFdURjo6Y3J5
cHRvZ3JhcGhpY2FsbHlSYW5kb21WYWx1ZXM7CisjZW5kaWYKKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL09TUmFuZG9tU291cmNlLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93dGYvT1NSYW5kb21Tb3VyY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2Yjk1MGRh
N2RhMTRhN2U2NzM4ZmNiODdlNmM5ZThjNjVhNjBjNDkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd3RmL09TUmFuZG9tU291cmNlLmNwcApAQCAtMCwwICsxLDY5IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBHT09HTEUs
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiT1NSYW5kb21Tb3VyY2UuaCIKKwor
I2luY2x1ZGUgPHN0ZGludC5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorCisjaWYgT1MoVU5JWCkK
KyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2VuZGlmCisKK25hbWVz
cGFjZSBXVEYgeworCisjaWYgVVNFKE9TX1JBTkRPTU5FU1MpCit2b2lkIHJhbmRvbVZhbHVlc0Zy
b21PUyh1bnNpZ25lZCBjaGFyKiBidWZmZXIsIHNpemVfdCBsZW5ndGgpCit7CisjaWYgQ09NUElM
RVIoTVNWQykgJiYgZGVmaW5lZChfQ1JUX1JBTkRfUykKKyAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IGxlbmd0aDsgaSsrKSB7CisgICAgICAgIHVpbnQzMl90IGJpdHM7CisgICAgICAgIHJhbmRf
cygmYml0cyk7CisgICAgICAgIGJ1ZmZlcltpXSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXI+
KGJpdHMpOworICAgIH0KKyNlbGlmIE9TKERBUldJTikKKyAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IGxlbmd0aDsgaSsrKSB7CisgICAgICAgIHVpbnQzMl90IGJpdHM7CisgICAgICAgIGJpdHMg
PSBhcmM0cmFuZG9tKCk7CisgICAgICAgIGJ1ZmZlcltpXSA9IHN0YXRpY19jYXN0PHVuc2lnbmVk
IGNoYXI+KGJpdHMpOworICAgIH0KKyNlbGlmIE9TKFVOSVgpCisgICAgaW50IGZkID0gb3Blbigi
L2Rldi91cmFuZG9tIiwgT19SRE9OTFksIDApOworICAgIGlmIChmZCA8IDApCisgICAgICAgIENS
QVNIKCk7IC8vIFdlIG5lZWQgL2Rldi91cmFuZG9tIGZvciB0aGlzIEFQSSB0byB3b3JrLi4uCisK
KyAgICByZWFkKGZkLCBidWZmZXIsIGxlbmd0aCk7CisgICAgY2xvc2UoZmQpOworI2Vsc2UKKyAg
ICAjZXJyb3IgIlRoaXMgY29uZmlndXJhdGlvbiBkb2Vzbid0IGhhdmUgYSBzdHJvbmcgc291cmNl
IG9mIHJhbmRvbW5lc3MuIgorICAgIC8vIFdBUk5JTkc6IFdoZW4gYWRkaW5nIG5ldyBzb3VyY2Vz
IG9mIE9TIHJhbmRvbW5lc3MsIHRoZSByYW5kb21uZXNzIG11c3QKKyAgICAvLyAgICAgICAgICBi
ZSBvZiBjcnlwdG9ncmFwaGljIHF1YWxpdHkhCisjZW5kaWYKK30KKyNlbmRpZgorCit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL09TUmFuZG9tU291cmNlLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd3RmL09TUmFuZG9tU291cmNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDU1ZmEx
ZGFiNTA3ZGJhMjk1NjY0NWFjYzU3N2Y0OGRhNWM1ZTNlNwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvT1NSYW5kb21Tb3VyY2UuaApAQCAtMCwwICsxLDQxIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSBHb29nbGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEdPT0dMRSwgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpZm5kZWYgV1RGX09TUmFuZG9tU291cmNlX2gKKyNkZWZpbmUgV1RGX09TUmFuZG9tU291cmNl
X2gKKworbmFtZXNwYWNlIFdURiB7CisKKyNpZiBVU0UoT1NfUkFORE9NTkVTUykKKy8vIFRoaXMg
ZnVuY3Rpb24gYXR0ZW1wdHMgdG8gZmlsbCBidWZmZXIgd2l0aCByYW5kb21uZXNzIGZyb20gdGhl
IG9wZXJhdGluZworLy8gc3lzdGVtLiAgSWYgaW5zdWZmaWNpZW50IHJhbmRvbW5lc3MgaXMgYXZh
aWxhYmxlLCB0aGUgYnVmZmVyIHdpbGwgYmUKKy8vIHBhcnRpYWxseSBmaWxsZWQuICBSYXRoZXIg
dGhhbiBjYWxsaW5nIHRoaXMgZnVuY3Rpb24gZGlyZWN0bHksIGNvbnNpZGVyCisvLyBjYWxsaW5n
IGNyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyIG9yIGNyeXB0b2dyYXBoaWNhbGx5UmFuZG9t
VmFsdWVzLgordm9pZCByYW5kb21WYWx1ZXNGcm9tT1ModW5zaWduZWQgY2hhciogYnVmZmVyLCBz
aXplX3QgbGVuZ3RoKTsKKyNlbmRpZgorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3d0Zi93dGYucHJpIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi93
dGYucHJpCmluZGV4IDg4ZDY5NWYwZjI1ZGMxYWUzOTQ4NTg2ODIzYTUzZjNhNTYzNDhiZTEuLjNi
ZTNiNWZjNGU4ZGJlYzgyZGVlYTBkNmVmMTNmNGMwYWY3ZTFiMGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvd3RmLnByaQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d3RmL3d0Zi5wcmkKQEAgLTMsNiArMyw3IEBACiBTT1VSQ0VTICs9IFwKICAgICB3dGYvQXNzZXJ0
aW9ucy5jcHAgXAogICAgIHd0Zi9CeXRlQXJyYXkuY3BwIFwKKyAgICB3dGYvQ3J5cHRvZ3JhcGhp
Y2FsbHlSYW5kb21OdW1iZXIuY3BwIFwKICAgICB3dGYvQ3VycmVudFRpbWUuY3BwIFwKICAgICB3
dGYvRGF0ZU1hdGguY3BwIFwKICAgICB3dGYvZHRvYS5jcHAgXApAQCAtMTQsNiArMTUsNyBAQCBT
T1VSQ0VTICs9IFwKICAgICB3dGYvTUQ1LmNwcCBcCiAgICAgd3RmL01haW5UaHJlYWQuY3BwIFwK
ICAgICB3dGYvTnVsbFB0ci5jcHAgXAorICAgIHd0Zi9PU1JhbmRvbVNvdXJjZS5jcHAgXAogICAg
IHd0Zi9xdC9NYWluVGhyZWFkUXQuY3BwIFwKICAgICB3dGYvcXQvU3RyaW5nUXQuY3BwIFwKICAg
ICB3dGYvcXQvVGhyZWFkaW5nUXQuY3BwIFwK
</data>

          </attachment>
      

    </bug>

</bugzilla>