<?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>38982</bug_id>
          
          <creation_ts>2010-05-12 03:44:41 -0700</creation_ts>
          <short_desc>[Chromium] WebKit API: Support icon loading for &lt;input type=file&gt;</short_desc>
          <delta_ts>2011-01-24 01:18:01 -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>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kent Tamura">tkent</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>224508</commentid>
    <comment_count>0</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-05-12 03:44:41 -0700</bug_when>
    <thetext>http://code.google.com/p/chromium/issues/detail?id=13225

The whole patch (WebKit + Chromium) is at http://codereview.chromium.org/174318/show</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224512</commentid>
    <comment_count>1</comment_count>
      <attachid>55828</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-05-12 03:55:41 -0700</bug_when>
    <thetext>Created attachment 55828
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224734</commentid>
    <comment_count>2</comment_count>
      <attachid>55828</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-05-12 11:13:30 -0700</bug_when>
    <thetext>Comment on attachment 55828
Proposed patch

WebKit/chromium/public/WebIconLoadingCompletion.h:45
 +      virtual void iconLoaded(const WebData&amp;) = 0;
nit: name this didLoadIcon for consistency with WebFileChooserCompletion::didChooseFile.
is there a reason why this data stream has to be a PNG?  it can&apos;t be a different image
format?

WebKit/chromium/public/WebViewClient.h:108
 +  
nit: please preserve the two new lines before a section comment

WebKit/chromium/public/WebViewClient.h:107
 +      virtual bool chooseIconForFiles(const WebVector&lt;WebString&gt;&amp; filenames, WebIconLoadingCompletion*) { return false; }
nit: using the word &quot;choose&quot; in this method suggests that the user
will be prompted to make a choice.  i don&apos;t think this is what you
intend.  maybe queryIconForFiles would be better.

is there a reason why this needs to be a method on WebViewClient?
it seems more like a platform thing that wouldn&apos;t vary depending
on the WebView.  should this be part of WebKitClient instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226622</commentid>
    <comment_count>3</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-05-16 22:31:07 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; is there a reason why this needs to be a method on WebViewClient?
&gt; it seems more like a platform thing that wouldn&apos;t vary depending
&gt; on the WebView.  should this be part of WebKitClient instead?

Patch Set 1 of http://codereview.chromium.org/174318/show used WebKitClient, and I switched to WebViewClient in Patch Set 2.  I think I had difficulty in implementing asynchronous reply in resource_message_filter.cc.   I&apos;ll try to remember the reason...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226713</commentid>
    <comment_count>4</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-05-17 03:11:31 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; is there a reason why this needs to be a method on WebViewClient?
&gt; &gt; it seems more like a platform thing that wouldn&apos;t vary depending
&gt; &gt; on the WebView.  should this be part of WebKitClient instead?
&gt; 
&gt; Patch Set 1 of http://codereview.chromium.org/174318/show used WebKitClient, and I switched to WebViewClient in Patch Set 2.  I think I had difficulty in implementing asynchronous reply in resource_message_filter.cc.   I&apos;ll try to remember the reason...


- IconManager must run on the UI thread.
- We can&apos;t use the UI thread in a sync message handling. (Pointed out by jam, and [1] mentions it)
- So, we must use asynchronous request and response messages.

Probably I couldn&apos;t find a way to identify a destination of response messages in resource_message_filter.cc. It there a way to implement asynchronous message round-trip in resource_message_filter?


[1] http://www.chromium.org/developers/design-documents/inter-process-communication</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227663</commentid>
    <comment_count>5</comment_count>
      <attachid>56453</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-05-18 22:09:46 -0700</bug_when>
    <thetext>Created attachment 56453
Proposed patch (rev.2)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227667</commentid>
    <comment_count>6</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-05-18 22:13:23 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 55828 [details])
&gt; WebKit/chromium/public/WebIconLoadingCompletion.h:45
&gt;  +      virtual void iconLoaded(const WebData&amp;) = 0;
&gt; nit: name this didLoadIcon for consistency with WebFileChooserCompletion::didChooseFile.

Renamed it to didLoadIcon().

&gt; is there a reason why this data stream has to be a PNG?  it can&apos;t be a different image
&gt; format?

No reason.  It accepts any bitmap image formats which WebCore::Image can handle.  I updated the comment.

&gt; WebKit/chromium/public/WebViewClient.h:108
&gt;  +  
&gt; nit: please preserve the two new lines before a section comment

Fixed.

&gt; WebKit/chromium/public/WebViewClient.h:107
&gt;  +      virtual bool chooseIconForFiles(const WebVector&lt;WebString&gt;&amp; filenames, WebIconLoadingCompletion*) { return false; }
&gt; nit: using the word &quot;choose&quot; in this method suggests that the user
&gt; will be prompted to make a choice.  i don&apos;t think this is what you
&gt; intend.  maybe queryIconForFiles would be better.

Renamed it to queryIconForFiles().

&gt; is there a reason why this needs to be a method on WebViewClient?
&gt; it seems more like a platform thing that wouldn&apos;t vary depending
&gt; on the WebView.  should this be part of WebKitClient instead?

See my prior comments please.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247994</commentid>
    <comment_count>7</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-07-07 21:51:25 -0700</bug_when>
    <thetext>fishd, do you have any comments?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292326</commentid>
    <comment_count>8</comment_count>
      <attachid>56453</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-10-10 11:11:21 -0700</bug_when>
    <thetext>Comment on attachment 56453
Proposed patch (rev.2)

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

Looks reasonable.  R- for nits.  We&apos;ll need fishd for Chromium WebKit API review.

&gt; WebKit/chromium/public/WebIconLoadingCompletion.h:45
&gt; +    virtual void didLoadIcon(const WebData&amp;) = 0;

Space after this line.

&gt; WebKit/chromium/src/WebIconLoadingCompletionImpl.cpp:57
&gt; +    delete this;

:(

&gt; WebKit/chromium/src/WebIconLoadingCompletionImpl.h:37
&gt; +// FIXME: These relative paths are a temporary hack to support using this
&gt; +// header from webkit/glue.
&gt; +#include &quot;../public/WebData.h&quot;
&gt; +#include &quot;../public/WebIconLoadingCompletion.h&quot;

Can&apos;t we just do the right thing?

&gt; WebKit/chromium/src/WebIconLoadingCompletionImpl.h:52
&gt; +    virtual void didLoadIcon(const WebData&amp;);

Blank line after this line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292866</commentid>
    <comment_count>9</comment_count>
      <attachid>70514</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-10-11 23:37:29 -0700</bug_when>
    <thetext>Created attachment 70514
Patch rev.3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292867</commentid>
    <comment_count>10</comment_count>
      <attachid>56453</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-10-11 23:44:00 -0700</bug_when>
    <thetext>Comment on attachment 56453
Proposed patch (rev.2)

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

Thank you for reviewing.

&gt;&gt; WebKit/chromium/public/WebIconLoadingCompletion.h:45
&gt;&gt; +    virtual void didLoadIcon(const WebData&amp;) = 0;
&gt; 
&gt; Space after this line.

Fixed.

&gt;&gt; WebKit/chromium/src/WebIconLoadingCompletionImpl.cpp:57
&gt;&gt; +    delete this;
&gt; 
&gt; :(

Not fixed :(

I think &quot;delete this&quot; is the best in this case and is not harmful.

&gt;&gt; WebKit/chromium/src/WebIconLoadingCompletionImpl.h:37
&gt;&gt; +#include &quot;../public/WebIconLoadingCompletion.h&quot;
&gt; 
&gt; Can&apos;t we just do the right thing?

Fixed.

&gt;&gt; WebKit/chromium/src/WebIconLoadingCompletionImpl.h:52
&gt;&gt; +    virtual void didLoadIcon(const WebData&amp;);
&gt; 
&gt; Blank line after this line.

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318063</commentid>
    <comment_count>11</comment_count>
      <attachid>75786</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-12-06 22:41:58 -0800</bug_when>
    <thetext>Created attachment 75786
Patch 4 (rebased)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318205</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-07 08:32:12 -0800</bug_when>
    <thetext>Attachment 75786 did not pass style-queue:

Failed to run &quot;[u&apos;git&apos;, u&apos;reset&apos;, u&apos;--hard&apos;, u&apos;refs/remotes/trunk&apos;]&quot; exit_code: 128
error: Could not write new index file.
fatal: Could not reset index file to revision &apos;refs/remotes/trunk&apos;.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318252</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-07 09:33:23 -0800</bug_when>
    <thetext>Attachment 75786 did not pass style-queue:

Failed to run &quot;[u&apos;git&apos;, u&apos;reset&apos;, u&apos;--hard&apos;, u&apos;refs/remotes/trunk&apos;]&quot; exit_code: 128
error: Could not write new index file.
fatal: Could not reset index file to revision &apos;refs/remotes/trunk&apos;.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318304</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-07 10:34:33 -0800</bug_when>
    <thetext>Attachment 75786 did not pass style-queue:

Failed to run &quot;[u&apos;git&apos;, u&apos;reset&apos;, u&apos;--hard&apos;, u&apos;refs/remotes/trunk&apos;]&quot; exit_code: 128
error: Could not write new index file.
fatal: Could not reset index file to revision &apos;refs/remotes/trunk&apos;.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318353</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-07 11:35:41 -0800</bug_when>
    <thetext>Attachment 75786 did not pass style-queue:

Failed to run &quot;[u&apos;git&apos;, u&apos;reset&apos;, u&apos;--hard&apos;, u&apos;refs/remotes/trunk&apos;]&quot; exit_code: 128
error: Could not write new index file.
fatal: Could not reset index file to revision &apos;refs/remotes/trunk&apos;.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318443</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-07 14:24:09 -0800</bug_when>
    <thetext>Attachment 75786 did not build on chromium:
Build output: http://queues.webkit.org/results/6841083</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318448</commentid>
    <comment_count>17</comment_count>
      <attachid>75786</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-12-07 14:53:34 -0800</bug_when>
    <thetext>Comment on attachment 75786
Patch 4 (rebased)

Wow, IconChromium.cpp is missing.
Withdrawn.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318521</commentid>
    <comment_count>18</comment_count>
      <attachid>75854</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-12-07 17:38:32 -0800</bug_when>
    <thetext>Created attachment 75854
Patch 5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318586</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-07 21:30:43 -0800</bug_when>
    <thetext>Attachment 75786 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/update-webkit&apos;]&quot; exit_code: 2
Updating OpenSource
Incomplete data: Delta source ended unexpectedly at /usr/lib/git-core/git-svn line 5061

Died at WebKitTools/Scripts/update-webkit line 132.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318637</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-07 21:57:26 -0800</bug_when>
    <thetext>Attachment 75854 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/update-webkit&apos;]&quot; exit_code: 2
Updating OpenSource
Incomplete data: Delta source ended unexpectedly at /usr/lib/git-core/git-svn line 5061

Died at WebKitTools/Scripts/update-webkit line 132.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>337908</commentid>
    <comment_count>21</comment_count>
      <attachid>79702</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-01-20 23:42:37 -0800</bug_when>
    <thetext>Created attachment 79702
Patch 6

Resolve a conflict with ToT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>337909</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-20 23:47:45 -0800</bug_when>
    <thetext>Attachment 79702 did not build on chromium:
Build output: http://queues.webkit.org/results/7634110</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>337911</commentid>
    <comment_count>23</comment_count>
      <attachid>79703</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-01-20 23:59:53 -0800</bug_when>
    <thetext>Created attachment 79703
Patch 7

Add missing files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>338116</commentid>
    <comment_count>24</comment_count>
      <attachid>79703</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-01-21 09:46:17 -0800</bug_when>
    <thetext>Comment on attachment 79703
Patch 7

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

&gt; Source/WebKit/chromium/src/WebIconLoadingCompletionImpl.cpp:52
&gt; +        RefPtr&lt;WebCore::Image&gt; image = WebCore::BitmapImage::create();

nit: I recommend a &apos;using namespace WebCore&apos; up top, so you can ditch the WebCore::

&gt; Source/WebKit/chromium/src/WebIconLoadingCompletionImpl.h:47
&gt; +    ~WebIconLoadingCompletionImpl();

nit: I think the destructor here can be private.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>338894</commentid>
    <comment_count>25</comment_count>
      <attachid>79703</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-01-24 01:17:49 -0800</bug_when>
    <thetext>Comment on attachment 79703
Patch 7

Thank you for reviewing!!!

Landed with the following fixes: http://trac.webkit.org/changeset/76491


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

&gt;&gt; Source/WebKit/chromium/src/WebIconLoadingCompletionImpl.cpp:52
&gt;&gt; +        RefPtr&lt;WebCore::Image&gt; image = WebCore::BitmapImage::create();
&gt; 
&gt; nit: I recommend a &apos;using namespace WebCore&apos; up top, so you can ditch the WebCore::

Done.

&gt;&gt; Source/WebKit/chromium/src/WebIconLoadingCompletionImpl.h:47
&gt;&gt; +    ~WebIconLoadingCompletionImpl();
&gt; 
&gt; nit: I think the destructor here can be private.

Done.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55828</attachid>
            <date>2010-05-12 03:55:41 -0700</date>
            <delta_ts>2010-05-18 22:09:39 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>bug-38982-20100512195539.patch</filename>
            <type>text/plain</type>
            <size>18321</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MTM3OWJiZWEwMjk1YzAyYmE4MWY2ODc3ZGE4MWMyOTgyZmY0OGM1ZS4uYjUxN2JmNDc0MGVmOWZm
Y2JhY2IwMzhlZGFkMzQ0OGE4ZjczZmI2MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMC0wNS0xMiAgS2Vu
dCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW0Nocm9taXVtXSBTdXBwb3J0IGljb24gbG9hZGluZyBm
b3IgPGlucHV0IHR5cGU9ZmlsZT4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTM4OTgyCisKKyAgICAgICAgQW4gaWNvbiBkYXRhIGluIENocm9taXVtIHBv
cnQgaXMgcmVwcmVzZW50ZWQgYXMgV2ViQ29yZTo6SW1hZ2UuIFdlCisgICAgICAgIGRvbid0IG5l
ZWQgT1Mtc3BlY2lmaWMgY29kZSBhbnltb3JlLgorCisgICAgICAgICogV2ViQ29yZS5neXBpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ljb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Oklj
b246OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSWNvbkNo
cm9taXVtLmNwcDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
SWNvbkNocm9taXVtTGludXguY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0ljb25DaHJvbWl1bU1hYy5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSWNvbkNocm9taXVtV2luLmNwcDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9QbGF0Zm9ybUljb24uaDoKKwogMjAx
MC0wNS0xMiAgWm9sdGFuIEhlcmN6ZWcgIDx6aGVyY3plZ0B3ZWJraXQub3JnPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IE5pa29sYXMgWmltbWVybWFubi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2Vi
Q29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMTRlZjRmN2MxYTViOWUyOWEx
ODM1NWRlMTU5MTI3NzA2Njg1ZjNhNy4uZGE2NjhiNjk5NTNiYThhNGNhNTFkM2FjM2U5YzE3MGIx
NDY5MmZmZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKQEAgLTIwODEsOSArMjA4MSw3IEBACiAgICAgICAgICAgICAncGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vR2x5cGhQYWdlVHJlZU5vZGVMaW51eC5jcHAnLAogICAgICAgICAg
ICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJD
aHJvbWl1bS5oJywKLSAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JY29u
Q2hyb21pdW1MaW51eC5jcHAnLAotICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0ljb25DaHJvbWl1bU1hYy5jcHAnLAotICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0ljb25DaHJvbWl1bVdpbi5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0ljb25DaHJvbWl1bS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0ltYWdlQnVmZmVyRGF0YS5oJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFnZUNocm9taXVtTWFjLm1tJywKICAgICAgICAgICAg
ICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmNwcCcsCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ljb24uaCBiL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvSWNvbi5oCmluZGV4IDU5YzczMmZhN2VhN2VkNjlkYTY5NTg0NzdiODI5MjMzMzVj
ODZiYjYuLjliODM5YzNiYWQxNmZjYjBhYThjZDM4MTI5ZjVhYmM5Y2IzZmNmMDYgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSWNvbi5oCisrKyBiL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvSWNvbi5oCkBAIC00Miw2ICs0Miw3IEBAIHR5cGVkZWYgc3RydWN0IF9HZGtQ
aXhidWYgR2RrUGl4YnVmOwogI2VsaWYgUExBVEZPUk0oRUZMKQogI2luY2x1ZGUgPEV2YXMuaD4K
ICNlbGlmIFBMQVRGT1JNKENIUk9NSVVNKQorI2luY2x1ZGUgIkltYWdlLmgiCiAjaW5jbHVkZSAi
UGxhdGZvcm1JY29uLmgiCiAjZW5kaWYKIApAQCAtNjEsNiArNjIsOCBAQCBwdWJsaWM6CiAKICNp
ZiBQTEFURk9STShXSU4pCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8SWNvbj4gY3JlYXRlKEhJQ09O
IGhJY29uKSB7IHJldHVybiBhZG9wdFJlZihuZXcgSWNvbihoSWNvbikpOyB9CisjZWxpZiBQTEFU
Rk9STShDSFJPTUlVTSkKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxJY29uPiBjcmVhdGUoUGFzc1Jl
ZlB0cjxQbGF0Zm9ybUljb24+IGljb24pIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBJY29uKGljb24p
KTsgfQogI2VuZGlmCiAKIHByaXZhdGU6CkBAIC04MCw4ICs4Myw4IEBAIHByaXZhdGU6CiAgICAg
SWNvbigpOwogICAgIEV2YXNfT2JqZWN0KiBtX2ljb247CiAjZWxpZiBQTEFURk9STShDSFJPTUlV
TSkKLSAgICBJY29uKGNvbnN0IFBsYXRmb3JtSWNvbiYpOwotICAgIFBsYXRmb3JtSWNvbiBtX2lj
b247CisgICAgSWNvbihQYXNzUmVmUHRyPFBsYXRmb3JtSWNvbj4pOworICAgIFJlZlB0cjxQbGF0
Zm9ybUljb24+IG1faWNvbjsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JY29uQ2hyb21pdW1MaW51eC5jcHAgYi9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ljb25DaHJvbWl1bS5jcHAKc2ltaWxhcml0eSBpbmRl
eCA4MSUKY29weSBmcm9tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSWNvbkNo
cm9taXVtTGludXguY3BwCmNvcHkgdG8gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9JY29uQ2hyb21pdW0uY3BwCmluZGV4IDE2ZjU1ZTJjNDg5NGM5OGE0MzZiZTU3YWQ4NGQ5OGZh
MWYwMzUxYTAuLmY5Yzg2NDRhMzI2ZjgxYmU2YzQ0MjI0YWFhZjRjOThkN2ZhNDBkYTggMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSWNvbkNocm9taXVtTGlu
dXguY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSWNvbkNocm9t
aXVtLmNwcApAQCAtMSwxMCArMSwxMCBAQAogLyoKLSAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAw
OSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogCisgKiBDb3B5cmlnaHQgKGMp
IDIwMTAsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCiAgKiBtZXQ6Ci0gKiAKKyAqCiAgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogICog
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgogICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQpAQCAtMTQsNyArMTQsNyBAQAogICogICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogICogY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KICAq
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
Ci0gKiAKKyAqCiAgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogICogTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCkBA
IC0zMiwxMiArMzIsMTEgQEAKICNpbmNsdWRlICJJY29uLmgiCiAKICNpbmNsdWRlICJHcmFwaGlj
c0NvbnRleHQuaCIKLSNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlBsYXRm
b3JtU3RyaW5nLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotSWNvbjo6SWNvbihjb25zdCBQ
bGF0Zm9ybUljb24mIGljb24pCitJY29uOjpJY29uKFBhc3NSZWZQdHI8UGxhdGZvcm1JY29uPiBp
Y29uKQogICAgIDogbV9pY29uKGljb24pCiB7CiB9CkBAIC00Niw5ICs0NSwxNCBAQCBJY29uOjp+
SWNvbigpCiB7CiB9CiAKLXZvaWQgSWNvbjo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3Qg
SW50UmVjdCYpCit2b2lkIEljb246OnBhaW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29u
c3QgSW50UmVjdCYgcmVjdCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIGlmIChjb250
ZXh0LT5wYWludGluZ0Rpc2FibGVkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIEFuIElj
b24gZG9lc24ndCBrbm93IHRoZSBjb2xvciBzcGFjZSBvZiB0aGUgZmlsZSB1cGxvYWQgY29udHJv
bC4KKyAgICAvLyBTbyB1c2UgRGV2aWNlQ29sb3JTcGFjZS4KKyAgICBjb250ZXh0LT5kcmF3SW1h
Z2UobV9pY29uLmdldCgpLCBEZXZpY2VDb2xvclNwYWNlLCByZWN0KTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9QbGF0Zm9ybUljb24uaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
UGxhdGZvcm1JY29uLmgKaW5kZXggNTE2MTNiODZlZDdlYjllMDI0Y2Y1ZDY1NjljZGU4ZmNhYmU2
YjljNi4uYjQ4NTkxN2YyNzQ4MWQxMGQ1YTU0MTdmMTViOWRmZjc3NmEzYTgxYiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9QbGF0Zm9ybUljb24uaAorKysg
Yi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1BsYXRmb3JtSWNvbi5oCkBAIC0z
MSwxMSArMzEsMTEgQEAKICNpZm5kZWYgUGxhdGZvcm1JY29uX2gKICNkZWZpbmUgUGxhdGZvcm1J
Y29uX2gKIAotdHlwZWRlZiBzdHJ1Y3QgSElDT05fXyogSElDT047Ci0KIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotdHlwZWRlZiBISUNPTiBQbGF0Zm9ybUljb247CitjbGFzcyBJbWFnZTsKKwordHlw
ZWRlZiBJbWFnZSBQbGF0Zm9ybUljb247CiAKIH0gIC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlm
ZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCmluZGV4IGYxNTgzNzNlNjIzODBlZDBjOWQ4ZjNlZjI4YjZiNTU3MTk1ZmNiY2QuLjA0
Y2ZjYTdiN2RmM2QzMTkwZDc5Y2MwODBiOTY1MjNiOWFhNjJiY2QgMTAwNjQ0Ci0tLSBhL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI4IEBACisyMDEwLTA1LTEyICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbQ2hy
b21pdW1dIFN1cHBvcnQgaWNvbiBsb2FkaW5nIGZvciA8aW5wdXQgdHlwZT1maWxlPgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg5ODIKKworICAgICAg
ICBJbXBsZW1lbnQgQ2hyb21lQ2xpZW50SW1wbDo6Y2hvb3NlSWNvbkZvckZpbGVzKCkuIEl0IGRl
bGVnYXRlcyBsb2FkaW5nCisgICAgICAgIHRvIFdlYlZpZXdDbGllbnQ6OmNob29zZUljb25Gb3JG
aWxlcygpLCBhbmQgYW4gaW1wbGVtZW50YXRpb24gb2YKKyAgICAgICAgV2ViVmlld0NsaWVudDo6
Y2hvb3NlSWNvbkZvckZpbGVzKCkgbG9hZHMgYW4gaWNvbiBhbmQgcGFzc2VzIGl0IHRvIGEKKyAg
ICAgICAgRmlsZUNob29zZXIgdGhyb3VnaCBXZWJJY29uTG9hZGluZ0NvbXBsZXRpb24uCisKKyAg
ICAgICAgKiBXZWJLaXQuZ3lwOgorICAgICAgICAqIHB1YmxpYy9XZWJJY29uTG9hZGluZ0NvbXBs
ZXRpb24uaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkljb25Mb2FkaW5nQ29tcGxldGlv
bjo6fldlYkljb25Mb2FkaW5nQ29tcGxldGlvbik6CisgICAgICAgICogcHVibGljL1dlYlZpZXdD
bGllbnQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0NsaWVudDo6Y2hvb3NlSWNvbkZvckZp
bGVzKToKKyAgICAgICAgKiBzcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkNocm9tZUNsaWVudEltcGw6OmNob29zZUljb25Gb3JGaWxlcyk6CisgICAgICAgICogc3Jj
L1dlYkljb25Mb2FkaW5nQ29tcGxldGlvbkltcGwuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktp
dDo6V2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1wbDo6V2ViSWNvbkxvYWRpbmdDb21wbGV0aW9u
SW1wbCk6CisgICAgICAgIChXZWJLaXQ6OldlYkljb25Mb2FkaW5nQ29tcGxldGlvbkltcGw6On5X
ZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViSWNvbkxv
YWRpbmdDb21wbGV0aW9uSW1wbDo6aWNvbkxvYWRlZCk6CisgICAgICAgICogc3JjL1dlYkljb25M
b2FkaW5nQ29tcGxldGlvbkltcGwuaDogQWRkZWQuCisKIDIwMTAtMDUtMTIgIE1PUklUQSBIYWpp
bWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VudCBUYW11
cmEuCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cCBiL1dlYktpdC9jaHJv
bWl1bS9XZWJLaXQuZ3lwCmluZGV4IDMyZjQ4NWI5OWEyN2UxNGIxMTUyNDNkYWY0MTk1YjhmNTE0
ODZhNWUuLmY2MmJmNjlmODdlODQ5MmFjYjQ2OGZkMDU5NzdhYzRhNWJlYzQ4OGMgMTAwNjQ0Ci0t
LSBhL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9XZWJL
aXQuZ3lwCkBAIC0xMzMsNiArMTMzLDcgQEAKICAgICAgICAgICAgICAgICAncHVibGljL1dlYkdy
YXBoaWNzQ29udGV4dDNELmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSGlzdG9yeUl0
ZW0uaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJIVFRQQm9keS5oJywKKyAgICAgICAg
ICAgICAgICAncHVibGljL1dlYkljb25Mb2FkaW5nQ29tcGxldGlvbi5oJywKICAgICAgICAgICAg
ICAgICAncHVibGljL1dlYkltYWdlLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSW1h
Z2VEZWNvZGVyLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSURCQ2FsbGJhY2tzLmgn
LApAQCAtMzQ2LDYgKzM0Nyw4IEBACiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJIaXN0b3J5SXRl
bS5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViSFRUUEJvZHkuY3BwJywKICAgICAgICAg
ICAgICAgICAnc3JjL1dlYklEQkRhdGFiYXNlRXJyb3IuY3BwJywKKyAgICAgICAgICAgICAgICAn
c3JjL1dlYkljb25Mb2FkaW5nQ29tcGxldGlvbkltcGwuY3BwJywKKyAgICAgICAgICAgICAgICAn
c3JjL1dlYkljb25Mb2FkaW5nQ29tcGxldGlvbkltcGwuaCcsCiAgICAgICAgICAgICAgICAgJ3Ny
Yy9XZWJJbWFnZUNHLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJJbWFnZURlY29kZXIu
Y3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkltYWdlU2tpYS5jcHAnLApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JY29uQ2hyb21pdW1NYWMuY3Bw
IGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJY29uTG9hZGluZ0NvbXBsZXRpb24uaApzaW1p
bGFyaXR5IGluZGV4IDcxJQpyZW5hbWUgZnJvbSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0ljb25DaHJvbWl1bU1hYy5jcHAKcmVuYW1lIHRvIFdlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uLmgKaW5kZXggYTI0YWZiMjk1NTQ1YmU0YjhiMTJh
ZWY1NmM4YzBhODBiMjA2Y2RhZC4uNTQyYmRhNTIwYjlhN2NhMWJiMzUyOTNjZWE4OWU5YWIwZjNk
ODEwMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JY29u
Q2hyb21pdW1NYWMuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSWNvbkxvYWRp
bmdDb21wbGV0aW9uLmgKQEAgLTEsMTAgKzEsMTAgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKGMpIDIw
MDgsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiAKKyAqIENvcHlyaWdodCAo
QykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQogICogbWV0OgotICogCisgKgogICogICAgICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKICAq
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KICAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKQEAgLTE0LDcgKzE0LDcgQEAKICAqICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKICAqIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiAg
KiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgotICogCisgKgogICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKICAqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgpA
QCAtMjgsMjMgKzI4LDI1IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpbmNsdWRlICJjb25m
aWcuaCIKLSNpbmNsdWRlICJJY29uLmgiCisjaWZuZGVmIFdlYkljb25Mb2FkaW5nQ29tcGxldGlv
bl9oCisjZGVmaW5lIFdlYkljb25Mb2FkaW5nQ29tcGxldGlvbl9oCiAKLSNpbmNsdWRlICJQYXNz
UmVmUHRyLmgiCituYW1lc3BhY2UgV2ViS2l0IHsKIAotLy8gRklYTUU6IFRoZXNlIGFyZSB0ZW1w
b3Jhcnkgc3R1YnMsIHdlIG5lZWQgcmVhbCBpbXBsZW1lbnRhdGlvbnMgd2hpY2gKLS8vIG1heSBj
b21lIGluIHRoZSBmb3JtIG9mIEljb25DaHJvbWl1bS5jcHAuICBUaGUgV2luZG93cyBDaHJvbWl1
bQotLy8gaW1wbGVtZW50YXRpb24gaXMgY3VycmVudGx5IGluIEljb25XaW4uY3BwLgotIAotbmFt
ZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgV2ViRGF0YTsKK2NsYXNzIFdlYlN0cmluZzsKIAotSWNv
bjo6fkljb24oKQotewotfQorLy8gR2V0cyBjYWxsZWQgYmFjayB3aGVuIFdlYlZpZXdDbGllbnQg
ZmluaXNoZWQgbG9hZGluZyBhbiBpY29uLgorY2xhc3MgV2ViSWNvbkxvYWRpbmdDb21wbGV0aW9u
IHsKK3B1YmxpYzoKKyAgICAvLyBDYWxsZWQgd2l0aCB0aGUgbG9hZGVkIGljb24gZGF0YSwgd2hp
Y2ggaXMgYSBQTkcgc3RyZWFtLiBBIG51bGwgV2ViRGF0YQorICAgIC8vIG1lYW5zIGEgZmFpbHVy
ZSBvZiBsb2FkaW5nLiBUaGUgY2FsbGJhY2sgaW5zdGFuY2UgaXMgZGVzdHJveWVkIHdoZW4gdGhp
cworICAgIC8vIG1ldGhvZCBpcyBjYWxsZWQuCisgICAgdmlydHVhbCB2b2lkIGljb25Mb2FkZWQo
Y29uc3QgV2ViRGF0YSYpID0gMDsKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIH5XZWJJY29uTG9h
ZGluZ0NvbXBsZXRpb24oKSB7fQorfTsKIAotdm9pZCBJY29uOjpwYWludChHcmFwaGljc0NvbnRl
eHQqLCBjb25zdCBJbnRSZWN0JikKLXsKLX0KK30gLy8gbmFtZXNwYWNlIFdlYktpdAogCi19Cisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5o
IGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgKaW5kZXggMGVlMzkwN2Mx
N2U2YjU5MjZmNTRkMWYyOTE0ZjBiMTBiOGQzMjg2Yi4uYTNmODNkNzU1MjI1YjU5YmY3MzVlNWY1
NGZmNDczYWUwZjJjZjcwNyAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJW
aWV3Q2xpZW50LmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgK
QEAgLTQ4LDYgKzQ4LDcgQEAgY2xhc3MgV2ViRHJhZ0RhdGE7CiBjbGFzcyBXZWJGaWxlQ2hvb3Nl
ckNvbXBsZXRpb247CiBjbGFzcyBXZWJGcmFtZTsKIGNsYXNzIFdlYkdlb2xvY2F0aW9uU2Vydmlj
ZTsKK2NsYXNzIFdlYkljb25Mb2FkaW5nQ29tcGxldGlvbjsKIGNsYXNzIFdlYkltYWdlOwogY2xh
c3MgV2ViTm9kZTsKIGNsYXNzIFdlYk5vdGlmaWNhdGlvblByZXNlbnRlcjsKQEAgLTEwMSw2ICsx
MDIsOSBAQCBwdWJsaWM6CiAgICAgLy8gQ2FsbGVkIHRvIHJldHJpZXZlIHRoZSBwcm92aWRlciBv
ZiBkZXNrdG9wIG5vdGlmaWNhdGlvbnMuCiAgICAgdmlydHVhbCBXZWJOb3RpZmljYXRpb25QcmVz
ZW50ZXIqIG5vdGlmaWNhdGlvblByZXNlbnRlcigpIHsgcmV0dXJuIDA7IH0KIAorICAgIC8vIENh
bGxlZCB0byByZXF1ZXN0IGFuIGljb24gZm9yIHRoZSBzcGVjaWZpZWQgZmlsZW5hbWVzLgorICAg
IC8vIFRoZSBpY29uIGlzIHNob3duIGluIGEgZmlsZSB1cGxvYWQgY29udHJvbC4KKyAgICB2aXJ0
dWFsIGJvb2wgY2hvb3NlSWNvbkZvckZpbGVzKGNvbnN0IFdlYlZlY3RvcjxXZWJTdHJpbmc+JiBm
aWxlbmFtZXMsIFdlYkljb25Mb2FkaW5nQ29tcGxldGlvbiopIHsgcmV0dXJuIGZhbHNlOyB9CiAK
ICAgICAvLyBOYXZpZ2F0aW9uYWwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KIApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9D
aHJvbWVDbGllbnRJbXBsLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1w
bC5jcHAKaW5kZXggODJmZGVmY2JkMTczZDBhOWI5NTBmZjA2ZjcwOTNkYmU5Y2ViNjA5MS4uN2Uy
ZTFmODA1OTZjOGRjMWNjZDBmZjIzMmE5Y2JlNjllZTg1ZDM2ZCAxMDA2NDQKLS0tIGEvV2ViS2l0
L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0v
c3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCkBAIC02NCw2ICs2NCw3IEBACiAjaW5jbHVkZSAiV2Vi
RmlsZUNob29zZXJDb21wbGV0aW9uSW1wbC5oIgogI2luY2x1ZGUgIldlYkZyYW1lQ2xpZW50Lmgi
CiAjaW5jbHVkZSAiV2ViRnJhbWVJbXBsLmgiCisjaW5jbHVkZSAiV2ViSWNvbkxvYWRpbmdDb21w
bGV0aW9uSW1wbC5oIgogI2luY2x1ZGUgIldlYklucHV0RXZlbnQuaCIKICNpbmNsdWRlICJXZWJL
aXQuaCIKICNpbmNsdWRlICJXZWJQb3B1cE1lbnVJbXBsLmgiCkBAIC02MDMsOSArNjA0LDEzIEBA
IHZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6cnVuT3BlblBhbmVsKEZyYW1lKiBmcmFtZSwgUGFzc1Jl
ZlB0cjxGaWxlQ2hvb3Nlcj4gZmlsZUNoCiAgICAgY2hvb3NlckNvbXBsZXRpb24tPmRpZENob29z
ZUZpbGUoV2ViVmVjdG9yPFdlYlN0cmluZz4oKSk7CiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50SW1w
bDo6Y2hvb3NlSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTdHJpbmc+JiwgV2Vi
Q29yZTo6RmlsZUNob29zZXIqKQordm9pZCBDaHJvbWVDbGllbnRJbXBsOjpjaG9vc2VJY29uRm9y
RmlsZXMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OlN0cmluZz4mIGZpbGVuYW1lcywgV2ViQ29yZTo6
RmlsZUNob29zZXIqIGZpbGVDaG9vc2VyKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
aWYgKCFtX3dlYlZpZXctPmNsaWVudCgpKQorICAgICAgICByZXR1cm47CisgICAgV2ViSWNvbkxv
YWRpbmdDb21wbGV0aW9uSW1wbCogaWNvbkNvbXBsZXRpb24gPSBuZXcgV2ViSWNvbkxvYWRpbmdD
b21wbGV0aW9uSW1wbChmaWxlQ2hvb3Nlcik7CisgICAgaWYgKCFtX3dlYlZpZXctPmNsaWVudCgp
LT5jaG9vc2VJY29uRm9yRmlsZXMoZmlsZW5hbWVzLCBpY29uQ29tcGxldGlvbikpCisgICAgICAg
IGljb25Db21wbGV0aW9uLT5pY29uTG9hZGVkKFdlYkRhdGEoKSk7CiB9CiAKIHZvaWQgQ2hyb21l
Q2xpZW50SW1wbDo6cG9wdXBPcGVuZWQoUG9wdXBDb250YWluZXIqIHBvcHVwQ29udGFpbmVyLApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JY29uQ2hyb21p
dW1XaW4uY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJY29uTG9hZGluZ0NvbXBsZXRpb25J
bXBsLmNwcApzaW1pbGFyaXR5IGluZGV4IDY3JQpyZW5hbWUgZnJvbSBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0ljb25DaHJvbWl1bVdpbi5jcHAKcmVuYW1lIHRvIFdlYktpdC9j
aHJvbWl1bS9zcmMvV2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1wbC5jcHAKaW5kZXggZTk1OGQ0
YWY5NDQ0NWQ2ZGU5YzMxMWI0OGViN2FhOGRiNmFjMTA3Yy4uYjgxYTMzNGM1NDg4ODQ2YTUzZDgx
N2NkOTFlMWZmZTU2NGM4NDc0MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9JY29uQ2hyb21pdW1XaW4uY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1wbC5jcHAKQEAgLTEsMTAgKzEsMTAgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMDksIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKiAKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogICogbWV0OgotICog
CisgKgogICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKICAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKQEAgLTE0LDcgKzE0LDcgQEAK
ICAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKICAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCiAgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICogCisgKgogICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKICAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgpAQCAtMjksMzcgKzI5LDMyIEBACiAgKi8KIAogI2luY2x1
ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkljb24uaCIKLQotI2luY2x1ZGUgPHdpbmRvd3MuaD4K
LSNpbmNsdWRlIDxzaGVsbGFwaS5oPgorI2luY2x1ZGUgIldlYkljb25Mb2FkaW5nQ29tcGxldGlv
bkltcGwuaCIKIAotI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgotI2luY2x1ZGUgIlBsYXRm
b3JtQ29udGV4dFNraWEuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgotI2luY2x1ZGUg
IlNraWFVdGlscy5oIgorI2luY2x1ZGUgIkJpdG1hcEltYWdlLmgiCisjaW5jbHVkZSAiSWNvbi5o
IgorI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogCi1uYW1lc3BhY2UgV2ViQ29yZSB7CituYW1l
c3BhY2UgV2ViS2l0IHsKIAotSWNvbjo6SWNvbihjb25zdCBQbGF0Zm9ybUljb24mIGljb24pCi0g
ICAgOiBtX2ljb24oaWNvbikKK1dlYkljb25Mb2FkaW5nQ29tcGxldGlvbkltcGw6OldlYkljb25M
b2FkaW5nQ29tcGxldGlvbkltcGwoV2ViQ29yZTo6RmlsZUNob29zZXIqIGNob29zZXIpCisgICAg
OiBtX2ZpbGVDaG9vc2VyKGNob29zZXIpCiB7CiB9CiAKLUljb246On5JY29uKCkKK1dlYkljb25M
b2FkaW5nQ29tcGxldGlvbkltcGw6On5XZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBsKCkKIHsK
LSAgICBpZiAobV9pY29uKQotICAgICAgICBEZXN0cm95SWNvbihtX2ljb24pOwogfQogCi12b2lk
IEljb246OnBhaW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYgcmVj
dCkKK3ZvaWQgV2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1wbDo6aWNvbkxvYWRlZChjb25zdCBX
ZWJEYXRhJiBpY29uRGF0YSkKIHsKLSAgICBpZiAoY29udGV4dC0+cGFpbnRpbmdEaXNhYmxlZCgp
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBIREMgaGRjID0gY29udGV4dC0+cGxhdGZvcm1Db250
ZXh0KCktPmNhbnZhcygpLT5iZWdpblBsYXRmb3JtUGFpbnQoKTsKLSAgICBEcmF3SWNvbkV4KGhk
YywgcmVjdC54KCksIHJlY3QueSgpLCBtX2ljb24sIHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQo
KSwgMCwgMCwgRElfTk9STUFMKTsKLSAgICBjb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKS0+Y2Fu
dmFzKCktPmVuZFBsYXRmb3JtUGFpbnQoKTsKKyAgICBpZiAoIWljb25EYXRhLmlzRW1wdHkoKSkg
eworICAgICAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2U+IGltYWdlID0gV2ViQ29yZTo6Qml0bWFw
SW1hZ2U6OmNyZWF0ZSgpOworICAgICAgICBpbWFnZS0+c2V0RGF0YShpY29uRGF0YSwgdHJ1ZSk7
CisgICAgICAgIG1fZmlsZUNob29zZXItPmljb25Mb2FkZWQoV2ViQ29yZTo6SWNvbjo6Y3JlYXRl
KGltYWdlKSk7CisgICAgfQorICAgIC8vIFRoaXMgb2JqZWN0IGlzIG5vIGxvbmdlciBuZWVkZWQu
CisgICAgZGVsZXRlIHRoaXM7CiB9CiAKLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9JY29uQ2hyb21pdW1MaW51eC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkljb25M
b2FkaW5nQ29tcGxldGlvbkltcGwuaApzaW1pbGFyaXR5IGluZGV4IDY2JQpyZW5hbWUgZnJvbSBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ljb25DaHJvbWl1bUxpbnV4LmNwcApy
ZW5hbWUgdG8gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBs
LmgKaW5kZXggMTZmNTVlMmM0ODk0Yzk4YTQzNmJlNTdhZDg0ZDk4ZmExZjAzNTFhMC4uMzkzNWIy
ZjFiYWUzNmQ0N2E0NDk0NTdmOTM3MzEyNjFhODM2ODYxYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JY29uQ2hyb21pdW1MaW51eC5jcHAKKysrIGIvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBsLmgKQEAgLTEsMTAg
KzEsMTAgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMDkgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqIAorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CiAgKiBtZXQ6Ci0gKiAKKyAqCiAgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogICogbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICogICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQpAQCAt
MTQsNyArMTQsNyBAQAogICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cwogICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KICAqIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKiAKKyAqCiAgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCiAgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAogICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCkBAIC0yOCwyNyArMjgsMzIgQEAK
ICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIklj
b24uaCIKKyNpZm5kZWYgV2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1wbF9oCisjZGVmaW5lIFdl
Ykljb25Mb2FkaW5nQ29tcGxldGlvbkltcGxfaAogCi0jaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0
LmgiCi0jaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybVN0cmlu
Zy5oIgorLy8gRklYTUU6IFRoZXNlIHJlbGF0aXZlIHBhdGhzIGFyZSBhIHRlbXBvcmFyeSBoYWNr
IHRvIHN1cHBvcnQgdXNpbmcgdGhpcworLy8gaGVhZGVyIGZyb20gd2Via2l0L2dsdWUuCisjaW5j
bHVkZSAiLi4vcHVibGljL1dlYkRhdGEuaCIKKyNpbmNsdWRlICIuLi9wdWJsaWMvV2ViSWNvbkxv
YWRpbmdDb21wbGV0aW9uLmgiCiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKKyNpbmNsdWRlICJGaWxl
Q2hvb3Nlci5oIgogCi1JY29uOjpJY29uKGNvbnN0IFBsYXRmb3JtSWNvbiYgaWNvbikKLSAgICA6
IG1faWNvbihpY29uKQotewotfQorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAKLUljb246
On5JY29uKCkKLXsKLX0KK3VzaW5nIFdlYktpdDo6V2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uOwor
dXNpbmcgV2ViS2l0OjpXZWJEYXRhOwogCi12b2lkIEljb246OnBhaW50KEdyYXBoaWNzQ29udGV4
dCosIGNvbnN0IEludFJlY3QmKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19CituYW1lc3Bh
Y2UgV2ViS2l0IHsKIAotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorY2xhc3MgV2ViSWNvbkxvYWRp
bmdDb21wbGV0aW9uSW1wbCA6IHB1YmxpYyBXZWJJY29uTG9hZGluZ0NvbXBsZXRpb24geworcHVi
bGljOgorICAgIFdlYkljb25Mb2FkaW5nQ29tcGxldGlvbkltcGwoV2ViQ29yZTo6RmlsZUNob29z
ZXIqIGNob29zZSk7CisgICAgfldlYkljb25Mb2FkaW5nQ29tcGxldGlvbkltcGwoKTsKKyAgICB2
aXJ0dWFsIHZvaWQgaWNvbkxvYWRlZChjb25zdCBXZWJEYXRhJik7Citwcml2YXRlOgorICAgIFJl
ZlB0cjxXZWJDb3JlOjpGaWxlQ2hvb3Nlcj4gbV9maWxlQ2hvb3NlcjsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56453</attachid>
            <date>2010-05-18 22:09:46 -0700</date>
            <delta_ts>2010-10-11 23:44:00 -0700</delta_ts>
            <desc>Proposed patch (rev.2)</desc>
            <filename>bug-38982-20100519140944.patch</filename>
            <type>text/plain</type>
            <size>18334</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZjBjZGNmZjQ3MDQ3MDljMjg4NmUyZmEwYzQ4YTRlODAzM2YxZGI2OS4uYTcwMzdkZmQ4ZjA1N2Zm
OWY1MmFkZDIzYWFiYjZiMTVhNDkwNTFlNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMC0wNS0xMiAgS2Vu
dCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW0Nocm9taXVtXSBTdXBwb3J0IGljb24gbG9hZGluZyBm
b3IgPGlucHV0IHR5cGU9ZmlsZT4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTM4OTgyCisKKyAgICAgICAgQW4gaWNvbiBkYXRhIGluIENocm9taXVtIHBv
cnQgaXMgcmVwcmVzZW50ZWQgYXMgV2ViQ29yZTo6SW1hZ2UuIFdlCisgICAgICAgIGRvbid0IG5l
ZWQgT1Mtc3BlY2lmaWMgY29kZSBhbnltb3JlLgorCisgICAgICAgICogV2ViQ29yZS5neXBpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ljb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Oklj
b246OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSWNvbkNo
cm9taXVtLmNwcDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
SWNvbkNocm9taXVtTGludXguY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0ljb25DaHJvbWl1bU1hYy5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSWNvbkNocm9taXVtV2luLmNwcDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9QbGF0Zm9ybUljb24uaDoKKwogMjAx
MC0wNS0xOCAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IE9qYW4gVmFmYWkuCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dl
YkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDEyMTk4NmQwYzgwZGU3ZTA0MTg2OWYyMzFkNWI1Yjk0
ODhiZWY0OTAuLjk3MDJlMGEzMzg4ZTM1OGRhMzFhZmZkZGZlZWYwY2M4OGFlODQ3NzIgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBA
IC0yMDkyLDkgKzIwOTIsNyBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0dseXBoUGFnZVRyZWVOb2RlTGludXguY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3BwJywKICAgICAgICAgICAg
ICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uaCcsCi0g
ICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSWNvbkNocm9taXVtTGludXgu
Y3BwJywKLSAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JY29uQ2hyb21p
dW1NYWMuY3BwJywKLSAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JY29u
Q2hyb21pdW1XaW4uY3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9JY29uQ2hyb21pdW0uY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9JbWFnZUJ1ZmZlckRhdGEuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vSW1hZ2VDaHJvbWl1bU1hYy5tbScsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9JY29uLmggYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ljb24u
aAppbmRleCA1OWM3MzJmYTdlYTdlZDY5ZGE2OTU4NDc3YjgyOTIzMzM1Yzg2YmI2Li45YjgzOWMz
YmFkMTZmY2IwYWE4Y2QzODEyOWY1YWJjOWNiM2ZjZjA2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ljb24uaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0lj
b24uaApAQCAtNDIsNiArNDIsNyBAQCB0eXBlZGVmIHN0cnVjdCBfR2RrUGl4YnVmIEdka1BpeGJ1
ZjsKICNlbGlmIFBMQVRGT1JNKEVGTCkKICNpbmNsdWRlIDxFdmFzLmg+CiAjZWxpZiBQTEFURk9S
TShDSFJPTUlVTSkKKyNpbmNsdWRlICJJbWFnZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtSWNvbi5o
IgogI2VuZGlmCiAKQEAgLTYxLDYgKzYyLDggQEAgcHVibGljOgogCiAjaWYgUExBVEZPUk0oV0lO
KQogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEljb24+IGNyZWF0ZShISUNPTiBoSWNvbikgeyByZXR1
cm4gYWRvcHRSZWYobmV3IEljb24oaEljb24pKTsgfQorI2VsaWYgUExBVEZPUk0oQ0hST01JVU0p
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SWNvbj4gY3JlYXRlKFBhc3NSZWZQdHI8UGxhdGZvcm1J
Y29uPiBpY29uKSB7IHJldHVybiBhZG9wdFJlZihuZXcgSWNvbihpY29uKSk7IH0KICNlbmRpZgog
CiBwcml2YXRlOgpAQCAtODAsOCArODMsOCBAQCBwcml2YXRlOgogICAgIEljb24oKTsKICAgICBF
dmFzX09iamVjdCogbV9pY29uOwogI2VsaWYgUExBVEZPUk0oQ0hST01JVU0pCi0gICAgSWNvbihj
b25zdCBQbGF0Zm9ybUljb24mKTsKLSAgICBQbGF0Zm9ybUljb24gbV9pY29uOworICAgIEljb24o
UGFzc1JlZlB0cjxQbGF0Zm9ybUljb24+KTsKKyAgICBSZWZQdHI8UGxhdGZvcm1JY29uPiBtX2lj
b247CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vSWNvbkNocm9taXVtTGludXguY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9JY29uQ2hyb21pdW0uY3BwCnNpbWlsYXJpdHkgaW5kZXggODElCmNvcHkgZnJv
bSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ljb25DaHJvbWl1bUxpbnV4LmNw
cApjb3B5IHRvIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSWNvbkNocm9taXVt
LmNwcAppbmRleCAxNmY1NWUyYzQ4OTRjOThhNDM2YmU1N2FkODRkOThmYTFmMDM1MWEwLi5mOWM4
NjQ0YTMyNmY4MWJlNmM0NDIyNGFhYWY0Yzk4ZDdmYTQwZGE4IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ljb25DaHJvbWl1bUxpbnV4LmNwcAorKysgYi9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ljb25DaHJvbWl1bS5jcHAKQEAgLTEs
MTAgKzEsMTAgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMDkgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIAorICogQ29weXJpZ2h0IChjKSAyMDEwLCBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQogICogbWV0OgotICogCisgKgogICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKICAqIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
QEAgLTE0LDcgKzE0LDcgQEAKICAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKICAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiAgKiB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICogCisgKgogICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUwogICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKICAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgpAQCAtMzIsMTIgKzMyLDEx
IEBACiAjaW5jbHVkZSAiSWNvbi5oIgogCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCi0j
aW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUljb246Okljb24oY29uc3QgUGxhdGZvcm1JY29uJiBp
Y29uKQorSWNvbjo6SWNvbihQYXNzUmVmUHRyPFBsYXRmb3JtSWNvbj4gaWNvbikKICAgICA6IG1f
aWNvbihpY29uKQogewogfQpAQCAtNDYsOSArNDUsMTQgQEAgSWNvbjo6fkljb24oKQogewogfQog
Ci12b2lkIEljb246OnBhaW50KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEludFJlY3QmKQordm9p
ZCBJY29uOjpwYWludChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEludFJlY3QmIHJl
Y3QpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBpZiAoY29udGV4dC0+cGFpbnRpbmdE
aXNhYmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBBbiBJY29uIGRvZXNuJ3Qga25v
dyB0aGUgY29sb3Igc3BhY2Ugb2YgdGhlIGZpbGUgdXBsb2FkIGNvbnRyb2wuCisgICAgLy8gU28g
dXNlIERldmljZUNvbG9yU3BhY2UuCisgICAgY29udGV4dC0+ZHJhd0ltYWdlKG1faWNvbi5nZXQo
KSwgRGV2aWNlQ29sb3JTcGFjZSwgcmVjdCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vUGxhdGZvcm1J
Y29uLmggYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1BsYXRmb3JtSWNvbi5o
CmluZGV4IDUxNjEzYjg2ZWQ3ZWI5ZTAyNGNmNWQ2NTY5Y2RlOGZjYWJlNmI5YzYuLmI0ODU5MTdm
Mjc0ODFkMTBkNWE1NDE3ZjE1YjlkZmY3NzZhM2E4MWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vUGxhdGZvcm1JY29uLmgKKysrIGIvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9QbGF0Zm9ybUljb24uaApAQCAtMzEsMTEgKzMxLDExIEBA
CiAjaWZuZGVmIFBsYXRmb3JtSWNvbl9oCiAjZGVmaW5lIFBsYXRmb3JtSWNvbl9oCiAKLXR5cGVk
ZWYgc3RydWN0IEhJQ09OX18qIEhJQ09OOwotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXR5cGVk
ZWYgSElDT04gUGxhdGZvcm1JY29uOworY2xhc3MgSW1hZ2U7CisKK3R5cGVkZWYgSW1hZ2UgUGxh
dGZvcm1JY29uOwogCiB9ICAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAy
MjYwNjI4YjcwZTJhN2U2ZTlkMjhmYmZmZTM5ZDEzOTJiMmUwOGMyLi4yMTBlNDFiOTMyNjM3YjUw
Mjk4MDhjYTdhNTRiMTViMjNjNjk0NTVjIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAor
MjAxMC0wNS0xMiAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0Nocm9taXVtXSBTdXBwb3J0
IGljb24gbG9hZGluZyBmb3IgPGlucHV0IHR5cGU9ZmlsZT4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4OTgyCisKKyAgICAgICAgSW1wbGVtZW50IENo
cm9tZUNsaWVudEltcGw6OmNob29zZUljb25Gb3JGaWxlcygpLiBJdCBkZWxlZ2F0ZXMgbG9hZGlu
ZworICAgICAgICB0byBXZWJWaWV3Q2xpZW50OjpxdWVyeUljb25Gb3JGaWxlcygpLCBhbmQgYW4g
aW1wbGVtZW50YXRpb24gb2YKKyAgICAgICAgV2ViVmlld0NsaWVudDo6cXVlcnlJY29uRm9yRmls
ZXMoKSBsb2FkcyBhbiBpY29uIGFuZCBwYXNzZXMgaXQgdG8gYQorICAgICAgICBGaWxlQ2hvb3Nl
ciB0aHJvdWdoIFdlYkljb25Mb2FkaW5nQ29tcGxldGlvbi4KKworICAgICAgICAqIFdlYktpdC5n
eXA6CisgICAgICAgICogcHVibGljL1dlYkljb25Mb2FkaW5nQ29tcGxldGlvbi5oOiBBZGRlZC4K
KyAgICAgICAgKFdlYktpdDo6V2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uOjp+V2ViSWNvbkxvYWRp
bmdDb21wbGV0aW9uKToKKyAgICAgICAgKiBwdWJsaWMvV2ViVmlld0NsaWVudC5oOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3Q2xpZW50OjpxdWVyeUljb25Gb3JGaWxlcyk6CisgICAgICAgICog
c3JjL0Nocm9tZUNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJ
bXBsOjpjaG9vc2VJY29uRm9yRmlsZXMpOgorICAgICAgICAqIHNyYy9XZWJJY29uTG9hZGluZ0Nv
bXBsZXRpb25JbXBsLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkljb25Mb2FkaW5n
Q29tcGxldGlvbkltcGw6OldlYkljb25Mb2FkaW5nQ29tcGxldGlvbkltcGwpOgorICAgICAgICAo
V2ViS2l0OjpXZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBsOjp+V2ViSWNvbkxvYWRpbmdDb21w
bGV0aW9uSW1wbCk6CisgICAgICAgIChXZWJLaXQ6OldlYkljb25Mb2FkaW5nQ29tcGxldGlvbklt
cGw6OmRpZExvYWRJY29uKToKKyAgICAgICAgKiBzcmMvV2ViSWNvbkxvYWRpbmdDb21wbGV0aW9u
SW1wbC5oOiBBZGRlZC4KKwogMjAxMC0wNS0xOCAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE9qYW4gVmFmYWkuCmRpZmYgLS1naXQgYS9XZWJL
aXQvY2hyb21pdW0vV2ViS2l0Lmd5cCBiL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCmluZGV4
IDhhYzVhOTA3ZjcxZTQ5ZjJjMDk1YjcyODcwNzU4YTJmYjQ4NTc2ODYuLjliODNjYjk4MWI5YmMx
NDMwY2E1N2FkZTY0ODQ5NjkyYjk0NDAxMjggMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9X
ZWJLaXQuZ3lwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCkBAIC0xMzEsNiArMTMx
LDcgQEAKICAgICAgICAgICAgICAgICAncHVibGljL1dlYkdyYXBoaWNzQ29udGV4dDNELmgnLAog
ICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSGlzdG9yeUl0ZW0uaCcsCiAgICAgICAgICAgICAg
ICAgJ3B1YmxpYy9XZWJIVFRQQm9keS5oJywKKyAgICAgICAgICAgICAgICAncHVibGljL1dlYklj
b25Mb2FkaW5nQ29tcGxldGlvbi5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYkltYWdl
LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSW1hZ2VEZWNvZGVyLmgnLAogICAgICAg
ICAgICAgICAgICdwdWJsaWMvV2ViSURCQ2FsbGJhY2tzLmgnLApAQCAtMzQ0LDYgKzM0NSw4IEBA
CiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJIaXN0b3J5SXRlbS5jcHAnLAogICAgICAgICAgICAg
ICAgICdzcmMvV2ViSFRUUEJvZHkuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYklEQkRh
dGFiYXNlRXJyb3IuY3BwJywKKyAgICAgICAgICAgICAgICAnc3JjL1dlYkljb25Mb2FkaW5nQ29t
cGxldGlvbkltcGwuY3BwJywKKyAgICAgICAgICAgICAgICAnc3JjL1dlYkljb25Mb2FkaW5nQ29t
cGxldGlvbkltcGwuaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJJbWFnZUNHLmNwcCcsCiAg
ICAgICAgICAgICAgICAgJ3NyYy9XZWJJbWFnZURlY29kZXIuY3BwJywKICAgICAgICAgICAgICAg
ICAnc3JjL1dlYkltYWdlU2tpYS5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9JY29uQ2hyb21pdW1NYWMuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJJY29uTG9hZGluZ0NvbXBsZXRpb24uaApzaW1pbGFyaXR5IGluZGV4IDY5JQpyZW5h
bWUgZnJvbSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ljb25DaHJvbWl1bU1h
Yy5jcHAKcmVuYW1lIHRvIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSWNvbkxvYWRpbmdDb21w
bGV0aW9uLmgKaW5kZXggYTI0YWZiMjk1NTQ1YmU0YjhiMTJhZWY1NmM4YzBhODBiMjA2Y2RhZC4u
NTk2ZmE1YWYzNDdhOGNmZGI0YzczOGVjNGFhYWUxZjE0NzhkNjI2MiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JY29uQ2hyb21pdW1NYWMuY3BwCisrKyBi
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uLmgKQEAgLTEs
MTAgKzEsMTAgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMDgsIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKiAKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQog
ICogbWV0OgotICogCisgKgogICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKICAqIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKQEAgLTE0
LDcgKzE0LDcgQEAKICAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKICAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiAgKiB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICogCisgKgogICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUwogICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKICAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgpAQCAtMjgsMjMgKzI4LDI1IEBACiAg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgogICovCiAKLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJJY29u
LmgiCisjaWZuZGVmIFdlYkljb25Mb2FkaW5nQ29tcGxldGlvbl9oCisjZGVmaW5lIFdlYkljb25M
b2FkaW5nQ29tcGxldGlvbl9oCiAKLSNpbmNsdWRlICJQYXNzUmVmUHRyLmgiCituYW1lc3BhY2Ug
V2ViS2l0IHsKIAotLy8gRklYTUU6IFRoZXNlIGFyZSB0ZW1wb3Jhcnkgc3R1YnMsIHdlIG5lZWQg
cmVhbCBpbXBsZW1lbnRhdGlvbnMgd2hpY2gKLS8vIG1heSBjb21lIGluIHRoZSBmb3JtIG9mIElj
b25DaHJvbWl1bS5jcHAuICBUaGUgV2luZG93cyBDaHJvbWl1bQotLy8gaW1wbGVtZW50YXRpb24g
aXMgY3VycmVudGx5IGluIEljb25XaW4uY3BwLgotIAotbmFtZXNwYWNlIFdlYkNvcmUgeworY2xh
c3MgV2ViRGF0YTsKK2NsYXNzIFdlYlN0cmluZzsKIAotSWNvbjo6fkljb24oKQotewotfQorLy8g
R2V0cyBjYWxsZWQgYmFjayB3aGVuIFdlYlZpZXdDbGllbnQgZmluaXNoZWQgbG9hZGluZyBhbiBp
Y29uLgorY2xhc3MgV2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uIHsKK3B1YmxpYzoKKyAgICAvLyBD
YWxsZWQgd2l0aCB0aGUgbG9hZGVkIGljb24gZGF0YSwgd2hpY2ggaXMgYW4gaW1hZ2UgZGF0YSBz
dHJlYW0KKyAgICAvLyBXZWJDb3JlIGNhbiBkZWNvZGUsIHN1Y2ggYXMgUE5HLiBBIG51bGwgV2Vi
RGF0YSBtZWFucyBhIGZhaWx1cmUgb2YKKyAgICAvLyBsb2FkaW5nLiBUaGUgY2FsbGJhY2sgaW5z
dGFuY2UgaXMgZGVzdHJveWVkIHdoZW4gdGhpcyBtZXRob2QgaXMgY2FsbGVkLgorICAgIHZpcnR1
YWwgdm9pZCBkaWRMb2FkSWNvbihjb25zdCBXZWJEYXRhJikgPSAwOworcHJvdGVjdGVkOgorICAg
IHZpcnR1YWwgfldlYkljb25Mb2FkaW5nQ29tcGxldGlvbigpIHt9Cit9OwogCi12b2lkIEljb246
OnBhaW50KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEludFJlY3QmKQotewotfQorfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CiAKLX0KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJWaWV3Q2xpZW50LmggYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGll
bnQuaAppbmRleCA5NDc4ZGY5NDZiMjg1NGM0ODIwOGU1YzFmZDg2YjY5ZWNiMzYyNzQ0Li45NDgw
ZWRiYzgxNDlhZGIyNDg2ZGIxYTgzNjc5OWY0YjlhMDJmOTQ2IDEwMDY0NAotLS0gYS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYlZpZXdDbGllbnQuaApAQCAtNDgsNiArNDgsNyBAQCBjbGFzcyBXZWJEcmFnRGF0YTsK
IGNsYXNzIFdlYkZpbGVDaG9vc2VyQ29tcGxldGlvbjsKIGNsYXNzIFdlYkZyYW1lOwogY2xhc3Mg
V2ViR2VvbG9jYXRpb25TZXJ2aWNlOworY2xhc3MgV2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uOwog
Y2xhc3MgV2ViSW1hZ2U7CiBjbGFzcyBXZWJOb2RlOwogY2xhc3MgV2ViTm90aWZpY2F0aW9uUHJl
c2VudGVyOwpAQCAtOTgsNiArOTksMTAgQEAgcHVibGljOgogICAgIC8vIENhbGxlZCB0byByZXRy
aWV2ZSB0aGUgcHJvdmlkZXIgb2YgZGVza3RvcCBub3RpZmljYXRpb25zLgogICAgIHZpcnR1YWwg
V2ViTm90aWZpY2F0aW9uUHJlc2VudGVyKiBub3RpZmljYXRpb25QcmVzZW50ZXIoKSB7IHJldHVy
biAwOyB9CiAKKyAgICAvLyBDYWxsZWQgdG8gcmVxdWVzdCBhbiBpY29uIGZvciB0aGUgc3BlY2lm
aWVkIGZpbGVuYW1lcy4KKyAgICAvLyBUaGUgaWNvbiBpcyBzaG93biBpbiBhIGZpbGUgdXBsb2Fk
IGNvbnRyb2wuCisgICAgdmlydHVhbCBib29sIHF1ZXJ5SWNvbkZvckZpbGVzKGNvbnN0IFdlYlZl
Y3RvcjxXZWJTdHJpbmc+JiBmaWxlbmFtZXMsIFdlYkljb25Mb2FkaW5nQ29tcGxldGlvbiopIHsg
cmV0dXJuIGZhbHNlOyB9CisKIAogICAgIC8vIE5hdmlnYXRpb25hbCAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCmRpZmYgLS1naXQgYS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwIGIvV2ViS2l0L2Nocm9taXVt
L3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAppbmRleCAxYTM2NmJjOGM4NDMxN2QxMWZjZmQwM2Uz
MTc1YTcyNmE5Yjg3OTk3Li5iMjk3MWIzMjBhZjgxNjI3YmRjOGI3NzA4NTJmMjVjN2ZmNmI4NGEx
IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCisr
KyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKQEAgLTY0LDYgKzY0
LDcgQEAKICNpbmNsdWRlICJXZWJGaWxlQ2hvb3NlckNvbXBsZXRpb25JbXBsLmgiCiAjaW5jbHVk
ZSAiV2ViRnJhbWVDbGllbnQuaCIKICNpbmNsdWRlICJXZWJGcmFtZUltcGwuaCIKKyNpbmNsdWRl
ICJXZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBsLmgiCiAjaW5jbHVkZSAiV2ViSW5wdXRFdmVu
dC5oIgogI2luY2x1ZGUgIldlYktpdC5oIgogI2luY2x1ZGUgIldlYk5vZGUuaCIKQEAgLTYwNiw5
ICs2MDcsMTMgQEAgdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpydW5PcGVuUGFuZWwoRnJhbWUqIGZy
YW1lLCBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPiBmaWxlQ2gKICAgICBjaG9vc2VyQ29tcGxldGlv
bi0+ZGlkQ2hvb3NlRmlsZShXZWJWZWN0b3I8V2ViU3RyaW5nPigpKTsKIH0KIAotdm9pZCBDaHJv
bWVDbGllbnRJbXBsOjpjaG9vc2VJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OlN0
cmluZz4mLCBXZWJDb3JlOjpGaWxlQ2hvb3NlciopCit2b2lkIENocm9tZUNsaWVudEltcGw6OmNo
b29zZUljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8V2ViQ29yZTo6U3RyaW5nPiYgZmlsZW5hbWVz
LCBXZWJDb3JlOjpGaWxlQ2hvb3NlciogZmlsZUNob29zZXIpCiB7Ci0gICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICBpZiAoIW1fd2ViVmlldy0+Y2xpZW50KCkpCisgICAgICAgIHJldHVybjsKKyAg
ICBXZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBsKiBpY29uQ29tcGxldGlvbiA9IG5ldyBXZWJJ
Y29uTG9hZGluZ0NvbXBsZXRpb25JbXBsKGZpbGVDaG9vc2VyKTsKKyAgICBpZiAoIW1fd2ViVmll
dy0+Y2xpZW50KCktPnF1ZXJ5SWNvbkZvckZpbGVzKGZpbGVuYW1lcywgaWNvbkNvbXBsZXRpb24p
KQorICAgICAgICBpY29uQ29tcGxldGlvbi0+ZGlkTG9hZEljb24oV2ViRGF0YSgpKTsKIH0KIAog
dm9pZCBDaHJvbWVDbGllbnRJbXBsOjpwb3B1cE9wZW5lZChQb3B1cENvbnRhaW5lciogcG9wdXBD
b250YWluZXIsCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0ljb25DaHJvbWl1bVdpbi5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkljb25Mb2FkaW5n
Q29tcGxldGlvbkltcGwuY3BwCnNpbWlsYXJpdHkgaW5kZXggNjclCnJlbmFtZSBmcm9tIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSWNvbkNocm9taXVtV2luLmNwcApyZW5hbWUg
dG8gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBsLmNwcApp
bmRleCBlOTU4ZDRhZjk0NDQ1ZDZkZTljMzExYjQ4ZWI3YWE4ZGI2YWMxMDdjLi45NzhjNjZjOGZm
YjU0NTAyZWFmOTFlNzM3ODJjZTdjMDk0MGM4ZGU1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0ljb25DaHJvbWl1bVdpbi5jcHAKKysrIGIvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBsLmNwcApAQCAtMSwxMCArMSwx
MCBAQAogLyoKLSAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAwOSwgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqIAorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiAg
KiBtZXQ6Ci0gKiAKKyAqCiAgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogICogbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICogICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQpAQCAtMTQs
NyArMTQsNyBAQAogICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cwogICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KICAqIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKiAKKyAqCiAgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCiAgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAogICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCkBAIC0yOSwzNyArMjksMzIgQEAKICAq
LwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSWNvbi5oIgotCi0jaW5jbHVkZSA8
d2luZG93cy5oPgotI2luY2x1ZGUgPHNoZWxsYXBpLmg+CisjaW5jbHVkZSAiV2ViSWNvbkxvYWRp
bmdDb21wbGV0aW9uSW1wbC5oIgogCi0jaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCi0jaW5j
bHVkZSAiUGxhdGZvcm1Db250ZXh0U2tpYS5oIgotI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgi
Ci0jaW5jbHVkZSAiU2tpYVV0aWxzLmgiCisjaW5jbHVkZSAiQml0bWFwSW1hZ2UuaCIKKyNpbmNs
dWRlICJJY29uLmgiCisjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAKLW5hbWVzcGFjZSBXZWJD
b3JlIHsKK25hbWVzcGFjZSBXZWJLaXQgewogCi1JY29uOjpJY29uKGNvbnN0IFBsYXRmb3JtSWNv
biYgaWNvbikKLSAgICA6IG1faWNvbihpY29uKQorV2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1w
bDo6V2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1wbChXZWJDb3JlOjpGaWxlQ2hvb3NlciogY2hv
b3NlcikKKyAgICA6IG1fZmlsZUNob29zZXIoY2hvb3NlcikKIHsKIH0KIAotSWNvbjo6fkljb24o
KQorV2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1wbDo6fldlYkljb25Mb2FkaW5nQ29tcGxldGlv
bkltcGwoKQogewotICAgIGlmIChtX2ljb24pCi0gICAgICAgIERlc3Ryb3lJY29uKG1faWNvbik7
CiB9CiAKLXZvaWQgSWNvbjo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJ
bnRSZWN0JiByZWN0KQordm9pZCBXZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBsOjpkaWRMb2Fk
SWNvbihjb25zdCBXZWJEYXRhJiBpY29uRGF0YSkKIHsKLSAgICBpZiAoY29udGV4dC0+cGFpbnRp
bmdEaXNhYmxlZCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBIREMgaGRjID0gY29udGV4dC0+
cGxhdGZvcm1Db250ZXh0KCktPmNhbnZhcygpLT5iZWdpblBsYXRmb3JtUGFpbnQoKTsKLSAgICBE
cmF3SWNvbkV4KGhkYywgcmVjdC54KCksIHJlY3QueSgpLCBtX2ljb24sIHJlY3Qud2lkdGgoKSwg
cmVjdC5oZWlnaHQoKSwgMCwgMCwgRElfTk9STUFMKTsKLSAgICBjb250ZXh0LT5wbGF0Zm9ybUNv
bnRleHQoKS0+Y2FudmFzKCktPmVuZFBsYXRmb3JtUGFpbnQoKTsKKyAgICBpZiAoIWljb25EYXRh
LmlzRW1wdHkoKSkgeworICAgICAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2U+IGltYWdlID0gV2Vi
Q29yZTo6Qml0bWFwSW1hZ2U6OmNyZWF0ZSgpOworICAgICAgICBpbWFnZS0+c2V0RGF0YShpY29u
RGF0YSwgdHJ1ZSk7CisgICAgICAgIG1fZmlsZUNob29zZXItPmljb25Mb2FkZWQoV2ViQ29yZTo6
SWNvbjo6Y3JlYXRlKGltYWdlKSk7CisgICAgfQorICAgIC8vIFRoaXMgb2JqZWN0IGlzIG5vIGxv
bmdlciBuZWVkZWQuCisgICAgZGVsZXRlIHRoaXM7CiB9CiAKLX0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9JY29uQ2hyb21pdW1MaW51eC5jcHAgYi9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYkljb25Mb2FkaW5nQ29tcGxldGlvbkltcGwuaApzaW1pbGFyaXR5IGluZGV4IDY2JQpy
ZW5hbWUgZnJvbSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ljb25DaHJvbWl1
bUxpbnV4LmNwcApyZW5hbWUgdG8gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJY29uTG9hZGluZ0Nv
bXBsZXRpb25JbXBsLmgKaW5kZXggMTZmNTVlMmM0ODk0Yzk4YTQzNmJlNTdhZDg0ZDk4ZmExZjAz
NTFhMC4uYjhmZWIyYmJhM2FhMGRiYTcyNjExOTcwNTFjMWZlMjAwNGY3YjU1NCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JY29uQ2hyb21pdW1MaW51eC5j
cHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBs
LmgKQEAgLTEsMTAgKzEsMTAgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMDkgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIAorICogQ29weXJpZ2h0IChDKSAyMDEw
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCiAgKiBtZXQ6Ci0gKiAKKyAqCiAgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogICogbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgog
ICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQpAQCAtMTQsNyArMTQsNyBAQAogICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogICogY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KICAqIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKiAK
KyAqCiAgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCiAgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogICogTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCkBAIC0yOCwy
NyArMjgsMzIgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2luY2x1ZGUgImNvbmZpZy5oIgot
I2luY2x1ZGUgIkljb24uaCIKKyNpZm5kZWYgV2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1wbF9o
CisjZGVmaW5lIFdlYkljb25Mb2FkaW5nQ29tcGxldGlvbkltcGxfaAogCi0jaW5jbHVkZSAiR3Jh
cGhpY3NDb250ZXh0LmgiCi0jaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKLSNpbmNsdWRlICJQ
bGF0Zm9ybVN0cmluZy5oIgorLy8gRklYTUU6IFRoZXNlIHJlbGF0aXZlIHBhdGhzIGFyZSBhIHRl
bXBvcmFyeSBoYWNrIHRvIHN1cHBvcnQgdXNpbmcgdGhpcworLy8gaGVhZGVyIGZyb20gd2Via2l0
L2dsdWUuCisjaW5jbHVkZSAiLi4vcHVibGljL1dlYkRhdGEuaCIKKyNpbmNsdWRlICIuLi9wdWJs
aWMvV2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uLmgiCiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKKyNp
bmNsdWRlICJGaWxlQ2hvb3Nlci5oIgogCi1JY29uOjpJY29uKGNvbnN0IFBsYXRmb3JtSWNvbiYg
aWNvbikKLSAgICA6IG1faWNvbihpY29uKQotewotfQorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRy
Lmg+CiAKLUljb246On5JY29uKCkKLXsKLX0KK3VzaW5nIFdlYktpdDo6V2ViSWNvbkxvYWRpbmdD
b21wbGV0aW9uOwordXNpbmcgV2ViS2l0OjpXZWJEYXRhOwogCi12b2lkIEljb246OnBhaW50KEdy
YXBoaWNzQ29udGV4dCosIGNvbnN0IEludFJlY3QmKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7
Ci19CituYW1lc3BhY2UgV2ViS2l0IHsKIAotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorY2xhc3Mg
V2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1wbCA6IHB1YmxpYyBXZWJJY29uTG9hZGluZ0NvbXBs
ZXRpb24geworcHVibGljOgorICAgIFdlYkljb25Mb2FkaW5nQ29tcGxldGlvbkltcGwoV2ViQ29y
ZTo6RmlsZUNob29zZXIqIGNob29zZSk7CisgICAgfldlYkljb25Mb2FkaW5nQ29tcGxldGlvbklt
cGwoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkTG9hZEljb24oY29uc3QgV2ViRGF0YSYpOworcHJp
dmF0ZToKKyAgICBSZWZQdHI8V2ViQ29yZTo6RmlsZUNob29zZXI+IG1fZmlsZUNob29zZXI7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70514</attachid>
            <date>2010-10-11 23:37:29 -0700</date>
            <delta_ts>2010-12-06 22:41:53 -0800</delta_ts>
            <desc>Patch rev.3</desc>
            <filename>bug-38982-20101012153727.patch</filename>
            <type>text/plain</type>
            <size>18260</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NjBjNTc5YWIyZDc4MGZiZGFiZmI3Yjg5MDFjMzBjZmQwMzBiOWFkNy4uOTFmNWY2ZjNmYjA4NGM1
MTliMzU0ZTA2NTc4MWM4NGJmMTEwNjQwMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMC0wNS0xMiAgS2Vu
dCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW0Nocm9taXVtXSBTdXBwb3J0IGljb24gbG9hZGluZyBm
b3IgPGlucHV0IHR5cGU9ZmlsZT4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTM4OTgyCisKKyAgICAgICAgQW4gaWNvbiBkYXRhIGluIENocm9taXVtIHBv
cnQgaXMgcmVwcmVzZW50ZWQgYXMgV2ViQ29yZTo6SW1hZ2UuIFdlCisgICAgICAgIGRvbid0IG5l
ZWQgT1Mtc3BlY2lmaWMgY29kZSBhbnltb3JlLgorCisgICAgICAgICogV2ViQ29yZS5neXBpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ljb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Oklj
b246OmNyZWF0ZSk6IEFkZCBDaHJvbWl1bS1zcGVjaWZpYyBmYWN0b3J5LgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ljb25DaHJvbWl1bS5jcHA6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ljb25DaHJvbWl1bUxpbnV4LmNwcDogUmVt
b3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JY29uQ2hyb21pdW1N
YWMuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0lj
b25DaHJvbWl1bVdpbi5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vUGxhdGZvcm1JY29uLmg6CisKIDIwMTAtMTAtMTEgIEFuZGVycyBDYXJsc3NvbiAg
PGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
aW5kZXggZTUxNTNmYTFhYjNkNTlkYzRlN2YxZWRhYzc5ZTdlYTVjYzJiYjM2MS4uNTJkNTgyMTU5
YjliNjk2NGJmMmE5YjY0Y2MxZTcyNzFiNDI1ZGRmZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTI0MTksOSArMjQxOSw3IEBA
CiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNo
cm9taXVtLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0hhcmZi
dXp6U2tpYS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0hh
cmZidXp6U2tpYS5oJywKLSAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9J
Y29uQ2hyb21pdW1MaW51eC5jcHAnLAotICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0ljb25DaHJvbWl1bU1hYy5jcHAnLAotICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0ljb25DaHJvbWl1bVdpbi5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0ljb25DaHJvbWl1bS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0ltYWdlQnVmZmVyRGF0YS5oJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFnZUNocm9taXVtLmNwcCcsCiAgICAgICAgICAg
ICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1hZ2VDaHJvbWl1bU1hYy5tbScsCmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ljb24uaCBiL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvSWNvbi5oCmluZGV4IGM4MzY4NWY2YjJmMWMyMWE2NzczYzZjYjUxYWEzZjUy
YjljYWM0YTkuLjI3OTcxMzMzMTAyNDllYjE5MzQ5ZDQxZWIzZjc5NjlmNDIzMDE1NTcgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSWNvbi5oCisrKyBiL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvSWNvbi5oCkBAIC00Miw2ICs0Miw3IEBAIHR5cGVkZWYgc3RydWN0IF9H
ZGtQaXhidWYgR2RrUGl4YnVmOwogI2VsaWYgUExBVEZPUk0oRUZMKQogdHlwZWRlZiBzdHJ1Y3Qg
X0V2YXNfT2JqZWN0IEV2YXNfT2JqZWN0OwogI2VsaWYgUExBVEZPUk0oQ0hST01JVU0pCisjaW5j
bHVkZSAiSW1hZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUljb24uaCIKICNlbmRpZgogCkBAIC02
MCw2ICs2MSw4IEBAIHB1YmxpYzoKIAogI2lmIFBMQVRGT1JNKFdJTikKICAgICBzdGF0aWMgUGFz
c1JlZlB0cjxJY29uPiBjcmVhdGUoSElDT04gaEljb24pIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBJ
Y29uKGhJY29uKSk7IH0KKyNlbGlmIFBMQVRGT1JNKENIUk9NSVVNKQorICAgIHN0YXRpYyBQYXNz
UmVmUHRyPEljb24+IGNyZWF0ZShQYXNzUmVmUHRyPFBsYXRmb3JtSWNvbj4gaWNvbikgeyByZXR1
cm4gYWRvcHRSZWYobmV3IEljb24oaWNvbikpOyB9CiAjZW5kaWYKIAogcHJpdmF0ZToKQEAgLTc5
LDggKzgyLDggQEAgcHJpdmF0ZToKICAgICBJY29uKCk7CiAgICAgRXZhc19PYmplY3QqIG1faWNv
bjsKICNlbGlmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgIEljb24oY29uc3QgUGxhdGZvcm1JY29u
Jik7Ci0gICAgUGxhdGZvcm1JY29uIG1faWNvbjsKKyAgICBJY29uKFBhc3NSZWZQdHI8UGxhdGZv
cm1JY29uPik7CisgICAgUmVmUHRyPFBsYXRmb3JtSWNvbj4gbV9pY29uOwogI2VuZGlmCiB9Owog
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ljb25DaHJv
bWl1bUxpbnV4LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSWNvbkNo
cm9taXVtLmNwcApzaW1pbGFyaXR5IGluZGV4IDgxJQpjb3B5IGZyb20gV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9JY29uQ2hyb21pdW1MaW51eC5jcHAKY29weSB0byBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ljb25DaHJvbWl1bS5jcHAKaW5kZXggMTZmNTVl
MmM0ODk0Yzk4YTQzNmJlNTdhZDg0ZDk4ZmExZjAzNTFhMC4uZjljODY0NGEzMjZmODFiZTZjNDQy
MjRhYWFmNGM5OGQ3ZmE0MGRhOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9JY29uQ2hyb21pdW1MaW51eC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9JY29uQ2hyb21pdW0uY3BwCkBAIC0xLDEwICsxLDEwIEBACiAvKgot
ICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKiAKKyAqIENvcHlyaWdodCAoYykgMjAxMCwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKICAqIG1ldDoKLSAq
IAorICoKICAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CiAgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCkBAIC0xNCw3ICsxNCw3IEBA
CiAgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCiAgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqIAorICoKICAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICAqICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UCiAgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKQEAgLTMyLDEyICszMiwxMSBAQAogI2luY2x1ZGUgIklj
b24uaCIKIAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgotI2luY2x1ZGUgIk5vdEltcGxl
bWVudGVkLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1JY29uOjpJY29uKGNvbnN0IFBsYXRmb3JtSWNvbiYgaWNvbikKK0ljb246Okljb24o
UGFzc1JlZlB0cjxQbGF0Zm9ybUljb24+IGljb24pCiAgICAgOiBtX2ljb24oaWNvbikKIHsKIH0K
QEAgLTQ2LDkgKzQ1LDE0IEBAIEljb246On5JY29uKCkKIHsKIH0KIAotdm9pZCBJY29uOjpwYWlu
dChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBJbnRSZWN0JikKK3ZvaWQgSWNvbjo6cGFpbnQoR3Jh
cGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiByZWN0KQogewotICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgaWYgKGNvbnRleHQtPnBhaW50aW5nRGlzYWJsZWQoKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgLy8gQW4gSWNvbiBkb2Vzbid0IGtub3cgdGhlIGNvbG9yIHNwYWNl
IG9mIHRoZSBmaWxlIHVwbG9hZCBjb250cm9sLgorICAgIC8vIFNvIHVzZSBEZXZpY2VDb2xvclNw
YWNlLgorICAgIGNvbnRleHQtPmRyYXdJbWFnZShtX2ljb24uZ2V0KCksIERldmljZUNvbG9yU3Bh
Y2UsIHJlY3QpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1BsYXRmb3JtSWNvbi5oIGIvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9QbGF0Zm9ybUljb24uaAppbmRleCA1MTYxM2I4NmVk
N2ViOWUwMjRjZjVkNjU2OWNkZThmY2FiZTZiOWM2Li5iNDg1OTE3ZjI3NDgxZDEwZDVhNTQxN2Yx
NWI5ZGZmNzc2YTNhODFiIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL1BsYXRmb3JtSWNvbi5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vUGxhdGZvcm1JY29uLmgKQEAgLTMxLDExICszMSwxMSBAQAogI2lmbmRlZiBQbGF0Zm9y
bUljb25faAogI2RlZmluZSBQbGF0Zm9ybUljb25faAogCi10eXBlZGVmIHN0cnVjdCBISUNPTl9f
KiBISUNPTjsKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCi10eXBlZGVmIEhJQ09OIFBsYXRmb3Jt
SWNvbjsKK2NsYXNzIEltYWdlOworCit0eXBlZGVmIEltYWdlIFBsYXRmb3JtSWNvbjsKIAogfSAg
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggODRjNGNjYWMzZDA4MTIyNjU4
MWZlZWJhOWE1OGYwODdlYjVhYTgwMC4uYTNiNDUxODEzZDEwM2ZiYWRkZWE5ZDc1NjFlZjExMDA3
ZGIwNzNmNCAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTAtMDUtMTIgIEtlbnQg
VGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFtDaHJvbWl1bV0gU3VwcG9ydCBpY29uIGxvYWRpbmcgZm9y
IDxpbnB1dCB0eXBlPWZpbGU+CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zODk4MgorCisgICAgICAgIEltcGxlbWVudCBDaHJvbWVDbGllbnRJbXBsOjpj
aG9vc2VJY29uRm9yRmlsZXMoKS4gSXQgZGVsZWdhdGVzIGxvYWRpbmcKKyAgICAgICAgdG8gV2Vi
Vmlld0NsaWVudDo6cXVlcnlJY29uRm9yRmlsZXMoKSwgYW5kIGFuIGltcGxlbWVudGF0aW9uIG9m
CisgICAgICAgIFdlYlZpZXdDbGllbnQ6OnF1ZXJ5SWNvbkZvckZpbGVzKCkgbG9hZHMgYW4gaWNv
biBhbmQgcGFzc2VzIGl0IHRvIGEKKyAgICAgICAgRmlsZUNob29zZXIgdGhyb3VnaCBXZWJJY29u
TG9hZGluZ0NvbXBsZXRpb24uCisKKyAgICAgICAgKiBXZWJLaXQuZ3lwOgorICAgICAgICAqIHB1
YmxpYy9XZWJJY29uTG9hZGluZ0NvbXBsZXRpb24uaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OldlYkljb25Mb2FkaW5nQ29tcGxldGlvbjo6fldlYkljb25Mb2FkaW5nQ29tcGxldGlvbik6Cisg
ICAgICAgICogcHVibGljL1dlYlZpZXdDbGllbnQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmll
d0NsaWVudDo6cXVlcnlJY29uRm9yRmlsZXMpOgorICAgICAgICAqIHNyYy9DaHJvbWVDbGllbnRJ
bXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6Y2hvb3NlSWNvbkZv
ckZpbGVzKToKKyAgICAgICAgKiBzcmMvV2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1wbC5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBsOjpX
ZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViSWNvbkxv
YWRpbmdDb21wbGV0aW9uSW1wbDo6fldlYkljb25Mb2FkaW5nQ29tcGxldGlvbkltcGwpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBsOjpkaWRMb2FkSWNvbik6
CisgICAgICAgICogc3JjL1dlYkljb25Mb2FkaW5nQ29tcGxldGlvbkltcGwuaDogQWRkZWQuCisK
IDIwMTAtMTAtMTEgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgTmF0ZSBDaGFwaW4uCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0v
V2ViS2l0Lmd5cCBiL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCmluZGV4IGUxM2I4M2JhYjRj
MmM5YTNkZDRhNTAxM2I4NGZhYmM4N2NlYzI2YmEuLjE4NjEzMWIyYzFmN2M4MmUwMmU5MDA3ZDUz
Y2EzZjVmNmNkYWMwMDMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCisr
KyBiL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCkBAIC0xNzgsNiArMTc4LDcgQEAKICAgICAg
ICAgICAgICAgICAncHVibGljL1dlYkdyYXBoaWNzQ29udGV4dDNELmgnLAogICAgICAgICAgICAg
ICAgICdwdWJsaWMvV2ViSGlzdG9yeUl0ZW0uaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9X
ZWJIVFRQQm9keS5oJywKKyAgICAgICAgICAgICAgICAncHVibGljL1dlYkljb25Mb2FkaW5nQ29t
cGxldGlvbi5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYkltYWdlLmgnLAogICAgICAg
ICAgICAgICAgICdwdWJsaWMvV2ViSW1hZ2VEZWNvZGVyLmgnLAogICAgICAgICAgICAgICAgICdw
dWJsaWMvV2ViSURCQ2FsbGJhY2tzLmgnLApAQCAtNDQyLDYgKzQ0Myw4IEBACiAgICAgICAgICAg
ICAgICAgJ3NyYy9XZWJHcmFwaGljc0NvbnRleHQzRERlZmF1bHRJbXBsLmgnLAogICAgICAgICAg
ICAgICAgICdzcmMvV2ViSGlzdG9yeUl0ZW0uY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dl
YkhUVFBCb2R5LmNwcCcsCisgICAgICAgICAgICAgICAgJ3NyYy9XZWJJY29uTG9hZGluZ0NvbXBs
ZXRpb25JbXBsLmNwcCcsCisgICAgICAgICAgICAgICAgJ3NyYy9XZWJJY29uTG9hZGluZ0NvbXBs
ZXRpb25JbXBsLmgnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5j
cHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5oJywKICAgICAg
ICAgICAgICAgICAnc3JjL1dlYklEQkN1cnNvckltcGwuY3BwJywKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSWNvbkNocm9taXVtTGludXguY3BwIGIvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJY29uTG9hZGluZ0NvbXBsZXRpb24uaApzaW1pbGFyaXR5
IGluZGV4IDY5JQpyZW5hbWUgZnJvbSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0ljb25DaHJvbWl1bUxpbnV4LmNwcApyZW5hbWUgdG8gV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJJY29uTG9hZGluZ0NvbXBsZXRpb24uaAppbmRleCAxNmY1NWUyYzQ4OTRjOThhNDM2YmU1N2Fk
ODRkOThmYTFmMDM1MWEwLi4yNTc4NGQ1ODViZGNmN2M0NzE3NzMyNTQzNWI3MDg5M2QzOTMxMjEz
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ljb25DaHJv
bWl1bUxpbnV4LmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkljb25Mb2FkaW5n
Q29tcGxldGlvbi5oCkBAIC0xLDEwICsxLDEwIEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDA4
LCAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiAKKyAqIENvcHlyaWdo
dCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQogICogbWV0OgotICogCisgKgogICogICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
ICAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KICAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUKQEAgLTE0LDcgKzE0LDcgQEAKICAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKICAqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
CiAgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgotICogCisgKgogICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKICAqIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgpAQCAtMjgsMjcgKzI4LDI2IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpbmNsdWRlICJj
b25maWcuaCIKLSNpbmNsdWRlICJJY29uLmgiCisjaWZuZGVmIFdlYkljb25Mb2FkaW5nQ29tcGxl
dGlvbl9oCisjZGVmaW5lIFdlYkljb25Mb2FkaW5nQ29tcGxldGlvbl9oCiAKLSNpbmNsdWRlICJH
cmFwaGljc0NvbnRleHQuaCIKLSNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgotI2luY2x1ZGUg
IlBsYXRmb3JtU3RyaW5nLmgiCituYW1lc3BhY2UgV2ViS2l0IHsKIAotbmFtZXNwYWNlIFdlYkNv
cmUgeworY2xhc3MgV2ViRGF0YTsKK2NsYXNzIFdlYlN0cmluZzsKIAotSWNvbjo6SWNvbihjb25z
dCBQbGF0Zm9ybUljb24mIGljb24pCi0gICAgOiBtX2ljb24oaWNvbikKLXsKLX0KKy8vIEdldHMg
Y2FsbGVkIGJhY2sgd2hlbiBXZWJWaWV3Q2xpZW50IGZpbmlzaGVkIGxvYWRpbmcgYW4gaWNvbi4K
K2NsYXNzIFdlYkljb25Mb2FkaW5nQ29tcGxldGlvbiB7CitwdWJsaWM6CisgICAgLy8gQ2FsbGVk
IHdpdGggdGhlIGxvYWRlZCBpY29uIGRhdGEsIHdoaWNoIGlzIGFuIGltYWdlIGRhdGEgc3RyZWFt
CisgICAgLy8gV2ViQ29yZSBjYW4gZGVjb2RlLCBzdWNoIGFzIFBORy4gQSBudWxsIFdlYkRhdGEg
bWVhbnMgYSBmYWlsdXJlIG9mCisgICAgLy8gbG9hZGluZy4gVGhlIGNhbGxiYWNrIGluc3RhbmNl
IGlzIGRlc3Ryb3llZCB3aGVuIHRoaXMgbWV0aG9kIGlzIGNhbGxlZC4KKyAgICB2aXJ0dWFsIHZv
aWQgZGlkTG9hZEljb24oY29uc3QgV2ViRGF0YSYpID0gMDsKIAotSWNvbjo6fkljb24oKQotewot
fQorcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgfldlYkljb25Mb2FkaW5nQ29tcGxldGlvbigpIHsg
fQorfTsKIAotdm9pZCBJY29uOjpwYWludChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBJbnRSZWN0
JikKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQorfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAK
LX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmggYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZp
ZXdDbGllbnQuaAppbmRleCA4NThjYjJhNGI5N2YxMDIwNmYzZjZhYzk4Y2E1ZWI4NTU5MWVjZmMw
Li4wNGU5MTMxZWY4N2VkZjhkMmY5NDE5MDNkY2E3OGVmMWE5MWMwZDg4IDEwMDY0NAotLS0gYS9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAorKysgYi9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYlZpZXdDbGllbnQuaApAQCAtNTEsNiArNTEsNyBAQCBjbGFzcyBXZWJFbGVt
ZW50OwogY2xhc3MgV2ViRmlsZUNob29zZXJDb21wbGV0aW9uOwogY2xhc3MgV2ViRnJhbWU7CiBj
bGFzcyBXZWJHZW9sb2NhdGlvblNlcnZpY2U7CitjbGFzcyBXZWJJY29uTG9hZGluZ0NvbXBsZXRp
b247CiBjbGFzcyBXZWJJbWFnZTsKIGNsYXNzIFdlYklucHV0RWxlbWVudDsKIGNsYXNzIFdlYktl
eWJvYXJkRXZlbnQ7CkBAIC0xMDYsNiArMTA3LDEwIEBAIHB1YmxpYzoKICAgICAvLyBDYWxsZWQg
dG8gcmV0cmlldmUgdGhlIHByb3ZpZGVyIG9mIGRlc2t0b3Agbm90aWZpY2F0aW9ucy4KICAgICB2
aXJ0dWFsIFdlYk5vdGlmaWNhdGlvblByZXNlbnRlciogbm90aWZpY2F0aW9uUHJlc2VudGVyKCkg
eyByZXR1cm4gMDsgfQogCisgICAgLy8gQ2FsbGVkIHRvIHJlcXVlc3QgYW4gaWNvbiBmb3IgdGhl
IHNwZWNpZmllZCBmaWxlbmFtZXMuCisgICAgLy8gVGhlIGljb24gaXMgc2hvd24gaW4gYSBmaWxl
IHVwbG9hZCBjb250cm9sLgorICAgIHZpcnR1YWwgYm9vbCBxdWVyeUljb25Gb3JGaWxlcyhjb25z
dCBXZWJWZWN0b3I8V2ViU3RyaW5nPiYgZmlsZW5hbWVzLCBXZWJJY29uTG9hZGluZ0NvbXBsZXRp
b24qKSB7IHJldHVybiBmYWxzZTsgfQorCiAKICAgICAvLyBOYXZpZ2F0aW9uYWwgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIApkaWZmIC0t
Z2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcCBiL1dlYktpdC9j
aHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKaW5kZXggNTc0YTlmNjg2M2ZlMjg1YjM5
NDdkNDdkYzVhZDljMmYxOWViMjY2MS4uOTdiZGRjZmYxMzQzMjVkMGU4YmNlYTBlZjg5YzdlZjE3
NDY3ZjQwMSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBs
LmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCkBAIC02
OSw2ICs2OSw3IEBACiAjaW5jbHVkZSAiV2ViRnJhbWVDbGllbnQuaCIKICNpbmNsdWRlICJXZWJG
cmFtZUltcGwuaCIKICNpbmNsdWRlICJXZWJHZW9sb2NhdGlvblNlcnZpY2UuaCIKKyNpbmNsdWRl
ICJXZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBsLmgiCiAjaW5jbHVkZSAiV2ViSW5wdXRFdmVu
dC5oIgogI2luY2x1ZGUgIldlYktpdC5oIgogI2luY2x1ZGUgIldlYk5vZGUuaCIKQEAgLTY2Niw5
ICs2NjcsMTMgQEAgdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpydW5PcGVuUGFuZWwoRnJhbWUqIGZy
YW1lLCBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPiBmaWxlQ2gKICAgICBjaG9vc2VyQ29tcGxldGlv
bi0+ZGlkQ2hvb3NlRmlsZShXZWJWZWN0b3I8V2ViU3RyaW5nPigpKTsKIH0KIAotdm9pZCBDaHJv
bWVDbGllbnRJbXBsOjpjaG9vc2VJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFdURjo6U3RyaW5n
PiYsIFdlYkNvcmU6OkZpbGVDaG9vc2VyKikKK3ZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6Y2hvb3Nl
SWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mIGZpbGVuYW1lcywgV2ViQ29y
ZTo6RmlsZUNob29zZXIqIGZpbGVDaG9vc2VyKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgaWYgKCFtX3dlYlZpZXctPmNsaWVudCgpKQorICAgICAgICByZXR1cm47CisgICAgV2ViSWNv
bkxvYWRpbmdDb21wbGV0aW9uSW1wbCogaWNvbkNvbXBsZXRpb24gPSBuZXcgV2ViSWNvbkxvYWRp
bmdDb21wbGV0aW9uSW1wbChmaWxlQ2hvb3Nlcik7CisgICAgaWYgKCFtX3dlYlZpZXctPmNsaWVu
dCgpLT5xdWVyeUljb25Gb3JGaWxlcyhmaWxlbmFtZXMsIGljb25Db21wbGV0aW9uKSkKKyAgICAg
ICAgaWNvbkNvbXBsZXRpb24tPmRpZExvYWRJY29uKFdlYkRhdGEoKSk7CiB9CiAKIHZvaWQgQ2hy
b21lQ2xpZW50SW1wbDo6cG9wdXBPcGVuZWQoUG9wdXBDb250YWluZXIqIHBvcHVwQ29udGFpbmVy
LApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JY29uQ2hy
b21pdW1XaW4uY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJY29uTG9hZGluZ0NvbXBsZXRp
b25JbXBsLmNwcApzaW1pbGFyaXR5IGluZGV4IDY3JQpyZW5hbWUgZnJvbSBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0ljb25DaHJvbWl1bVdpbi5jcHAKcmVuYW1lIHRvIFdlYktp
dC9jaHJvbWl1bS9zcmMvV2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1wbC5jcHAKaW5kZXggZTk1
OGQ0YWY5NDQ0NWQ2ZGU5YzMxMWI0OGViN2FhOGRiNmFjMTA3Yy4uOTc4YzY2YzhmZmI1NDUwMmVh
ZjkxZTczNzgyY2U3YzA5NDBjOGRlNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9JY29uQ2hyb21pdW1XaW4uY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1wbC5jcHAKQEAgLTEsMTAgKzEsMTAgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMDksIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKiAKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogICogbWV0Ogot
ICogCisgKgogICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKICAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKQEAgLTE0LDcgKzE0LDcg
QEAKICAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKICAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiAgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICogCisgKgogICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKICAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgpAQCAtMjksMzcgKzI5LDMyIEBACiAgKi8KIAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkljb24uaCIKLQotI2luY2x1ZGUgPHdpbmRvd3Mu
aD4KLSNpbmNsdWRlIDxzaGVsbGFwaS5oPgorI2luY2x1ZGUgIldlYkljb25Mb2FkaW5nQ29tcGxl
dGlvbkltcGwuaCIKIAotI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgotI2luY2x1ZGUgIlBs
YXRmb3JtQ29udGV4dFNraWEuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgotI2luY2x1
ZGUgIlNraWFVdGlscy5oIgorI2luY2x1ZGUgIkJpdG1hcEltYWdlLmgiCisjaW5jbHVkZSAiSWNv
bi5oIgorI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogCi1uYW1lc3BhY2UgV2ViQ29yZSB7Citu
YW1lc3BhY2UgV2ViS2l0IHsKIAotSWNvbjo6SWNvbihjb25zdCBQbGF0Zm9ybUljb24mIGljb24p
Ci0gICAgOiBtX2ljb24oaWNvbikKK1dlYkljb25Mb2FkaW5nQ29tcGxldGlvbkltcGw6OldlYklj
b25Mb2FkaW5nQ29tcGxldGlvbkltcGwoV2ViQ29yZTo6RmlsZUNob29zZXIqIGNob29zZXIpCisg
ICAgOiBtX2ZpbGVDaG9vc2VyKGNob29zZXIpCiB7CiB9CiAKLUljb246On5JY29uKCkKK1dlYklj
b25Mb2FkaW5nQ29tcGxldGlvbkltcGw6On5XZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBsKCkK
IHsKLSAgICBpZiAobV9pY29uKQotICAgICAgICBEZXN0cm95SWNvbihtX2ljb24pOwogfQogCi12
b2lkIEljb246OnBhaW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYg
cmVjdCkKK3ZvaWQgV2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1wbDo6ZGlkTG9hZEljb24oY29u
c3QgV2ViRGF0YSYgaWNvbkRhdGEpCiB7Ci0gICAgaWYgKGNvbnRleHQtPnBhaW50aW5nRGlzYWJs
ZWQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgSERDIGhkYyA9IGNvbnRleHQtPnBsYXRmb3Jt
Q29udGV4dCgpLT5jYW52YXMoKS0+YmVnaW5QbGF0Zm9ybVBhaW50KCk7Ci0gICAgRHJhd0ljb25F
eChoZGMsIHJlY3QueCgpLCByZWN0LnkoKSwgbV9pY29uLCByZWN0LndpZHRoKCksIHJlY3QuaGVp
Z2h0KCksIDAsIDAsIERJX05PUk1BTCk7Ci0gICAgY29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCkt
PmNhbnZhcygpLT5lbmRQbGF0Zm9ybVBhaW50KCk7CisgICAgaWYgKCFpY29uRGF0YS5pc0VtcHR5
KCkpIHsKKyAgICAgICAgUmVmUHRyPFdlYkNvcmU6OkltYWdlPiBpbWFnZSA9IFdlYkNvcmU6OkJp
dG1hcEltYWdlOjpjcmVhdGUoKTsKKyAgICAgICAgaW1hZ2UtPnNldERhdGEoaWNvbkRhdGEsIHRy
dWUpOworICAgICAgICBtX2ZpbGVDaG9vc2VyLT5pY29uTG9hZGVkKFdlYkNvcmU6Okljb246OmNy
ZWF0ZShpbWFnZSkpOworICAgIH0KKyAgICAvLyBUaGlzIG9iamVjdCBpcyBubyBsb25nZXIgbmVl
ZGVkLgorICAgIGRlbGV0ZSB0aGlzOwogfQogCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vSWNvbkNocm9taXVtTWFjLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSWNv
bkxvYWRpbmdDb21wbGV0aW9uSW1wbC5oCnNpbWlsYXJpdHkgaW5kZXggNjklCnJlbmFtZSBmcm9t
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSWNvbkNocm9taXVtTWFjLmNwcApy
ZW5hbWUgdG8gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBs
LmgKaW5kZXggYTI0YWZiMjk1NTQ1YmU0YjhiMTJhZWY1NmM4YzBhODBiMjA2Y2RhZC4uMDE3NDIx
MWI2ODI3ZWQ2YTA5M2FhYzA3MzRhOGYyZTMzNjE3ZDc0ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JY29uQ2hyb21pdW1NYWMuY3BwCisrKyBiL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1wbC5oCkBAIC0xLDEwICsx
LDEwIEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDA4LCBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICogCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKICAqIG1l
dDoKLSAqIAorICoKICAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiAgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCkBAIC0xNCw3ICsx
NCw3IEBACiAgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCiAgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqIAorICoKICAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
ICAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCiAgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKQEAgLTI4LDIzICsyOCwyOSBAQAogICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KICAqLwogCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSWNvbi5oIgor
I2lmbmRlZiBXZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBsX2gKKyNkZWZpbmUgV2ViSWNvbkxv
YWRpbmdDb21wbGV0aW9uSW1wbF9oCiAKLSNpbmNsdWRlICJQYXNzUmVmUHRyLmgiCisjaW5jbHVk
ZSAiRmlsZUNob29zZXIuaCIKKyNpbmNsdWRlICJXZWJEYXRhLmgiCisjaW5jbHVkZSAiV2ViSWNv
bkxvYWRpbmdDb21wbGV0aW9uLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KIAotLy8g
RklYTUU6IFRoZXNlIGFyZSB0ZW1wb3Jhcnkgc3R1YnMsIHdlIG5lZWQgcmVhbCBpbXBsZW1lbnRh
dGlvbnMgd2hpY2gKLS8vIG1heSBjb21lIGluIHRoZSBmb3JtIG9mIEljb25DaHJvbWl1bS5jcHAu
ICBUaGUgV2luZG93cyBDaHJvbWl1bQotLy8gaW1wbGVtZW50YXRpb24gaXMgY3VycmVudGx5IGlu
IEljb25XaW4uY3BwLgotIAotbmFtZXNwYWNlIFdlYkNvcmUgewordXNpbmcgV2ViS2l0OjpXZWJJ
Y29uTG9hZGluZ0NvbXBsZXRpb247Cit1c2luZyBXZWJLaXQ6OldlYkRhdGE7CiAKLUljb246On5J
Y29uKCkKLXsKLX0KK25hbWVzcGFjZSBXZWJLaXQgewogCi12b2lkIEljb246OnBhaW50KEdyYXBo
aWNzQ29udGV4dCosIGNvbnN0IEludFJlY3QmKQotewotfQorY2xhc3MgV2ViSWNvbkxvYWRpbmdD
b21wbGV0aW9uSW1wbCA6IHB1YmxpYyBXZWJJY29uTG9hZGluZ0NvbXBsZXRpb24geworcHVibGlj
OgorICAgIFdlYkljb25Mb2FkaW5nQ29tcGxldGlvbkltcGwoV2ViQ29yZTo6RmlsZUNob29zZXIq
KTsKKyAgICB+V2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1wbCgpOworICAgIHZpcnR1YWwgdm9p
ZCBkaWRMb2FkSWNvbihjb25zdCBXZWJEYXRhJik7CiAKLX0KK3ByaXZhdGU6CisgICAgUmVmUHRy
PFdlYkNvcmU6OkZpbGVDaG9vc2VyPiBtX2ZpbGVDaG9vc2VyOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CisKKyNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75786</attachid>
            <date>2010-12-06 22:41:58 -0800</date>
            <delta_ts>2010-12-07 17:38:32 -0800</delta_ts>
            <desc>Patch 4 (rebased)</desc>
            <filename>bug-38982-20101207154156.patch</filename>
            <type>text/plain</type>
            <size>8173</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OGUwMzI1ZWM0NTlmZTliNzViMjkyNzM4ZGJlMzQwOGVkZTBiZTk2YS4uZjdlZTU4YWI5ZjM1MDBi
NzAwYzMwYTI5OGI2NzJjN2JhYjVkMzZlMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMC0wNS0xMiAgS2Vu
dCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW0Nocm9taXVtXSBTdXBwb3J0IGljb24gbG9hZGluZyBm
b3IgPGlucHV0IHR5cGU9ZmlsZT4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTM4OTgyCisKKyAgICAgICAgQW4gaWNvbiBkYXRhIGluIENocm9taXVtIHBv
cnQgaXMgcmVwcmVzZW50ZWQgYXMgV2ViQ29yZTo6SW1hZ2UuIFdlCisgICAgICAgIGRvbid0IG5l
ZWQgT1Mtc3BlY2lmaWMgY29kZSBhbnltb3JlLgorCisgICAgICAgICogV2ViQ29yZS5neXBpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ljb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Oklj
b246OmNyZWF0ZSk6IEFkZCBDaHJvbWl1bS1zcGVjaWZpYyBmYWN0b3J5LgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ljb25DaHJvbWl1bS5jcHA6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ljb25DaHJvbWl1bUxpbnV4LmNwcDogUmVt
b3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JY29uQ2hyb21pdW1N
YWMuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0lj
b25DaHJvbWl1bVdpbi5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vUGxhdGZvcm1JY29uLmg6CisKIDIwMTAtMTItMDYgIFNpbW9uIEZyYXNlciAgPHNp
bW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQmV0aCBEYWtpbi4K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
aW5kZXggMDFjNWM4OTlmOWJlYTY5Yjk5ZWY2NWNkOTVmMDUyMDVlMDU5MTk4NS4uMDVkMzRkZDAy
MmZmN2E2YWRkMzY2YWVjZjdmMGI0MmZiZjk1NjI3MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTI1NjgsOSArMjU2OCw3IEBA
CiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNo
cm9taXVtLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0hhcmZi
dXp6U2tpYS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0hh
cmZidXp6U2tpYS5oJywKLSAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9J
Y29uQ2hyb21pdW1MaW51eC5jcHAnLAotICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0ljb25DaHJvbWl1bU1hYy5jcHAnLAotICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0ljb25DaHJvbWl1bVdpbi5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0ljb25DaHJvbWl1bS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0ltYWdlQnVmZmVyRGF0YS5oJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFnZUNocm9taXVtLmNwcCcsCiAgICAgICAgICAg
ICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1hZ2VDaHJvbWl1bU1hYy5tbScsCmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ljb24uaCBiL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvSWNvbi5oCmluZGV4IGM4MzY4NWY2YjJmMWMyMWE2NzczYzZjYjUxYWEzZjUy
YjljYWM0YTkuLjI3OTcxMzMzMTAyNDllYjE5MzQ5ZDQxZWIzZjc5NjlmNDIzMDE1NTcgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSWNvbi5oCisrKyBiL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvSWNvbi5oCkBAIC00Miw2ICs0Miw3IEBAIHR5cGVkZWYgc3RydWN0IF9H
ZGtQaXhidWYgR2RrUGl4YnVmOwogI2VsaWYgUExBVEZPUk0oRUZMKQogdHlwZWRlZiBzdHJ1Y3Qg
X0V2YXNfT2JqZWN0IEV2YXNfT2JqZWN0OwogI2VsaWYgUExBVEZPUk0oQ0hST01JVU0pCisjaW5j
bHVkZSAiSW1hZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUljb24uaCIKICNlbmRpZgogCkBAIC02
MCw2ICs2MSw4IEBAIHB1YmxpYzoKIAogI2lmIFBMQVRGT1JNKFdJTikKICAgICBzdGF0aWMgUGFz
c1JlZlB0cjxJY29uPiBjcmVhdGUoSElDT04gaEljb24pIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBJ
Y29uKGhJY29uKSk7IH0KKyNlbGlmIFBMQVRGT1JNKENIUk9NSVVNKQorICAgIHN0YXRpYyBQYXNz
UmVmUHRyPEljb24+IGNyZWF0ZShQYXNzUmVmUHRyPFBsYXRmb3JtSWNvbj4gaWNvbikgeyByZXR1
cm4gYWRvcHRSZWYobmV3IEljb24oaWNvbikpOyB9CiAjZW5kaWYKIAogcHJpdmF0ZToKQEAgLTc5
LDggKzgyLDggQEAgcHJpdmF0ZToKICAgICBJY29uKCk7CiAgICAgRXZhc19PYmplY3QqIG1faWNv
bjsKICNlbGlmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgIEljb24oY29uc3QgUGxhdGZvcm1JY29u
Jik7Ci0gICAgUGxhdGZvcm1JY29uIG1faWNvbjsKKyAgICBJY29uKFBhc3NSZWZQdHI8UGxhdGZv
cm1JY29uPik7CisgICAgUmVmUHRyPFBsYXRmb3JtSWNvbj4gbV9pY29uOwogI2VuZGlmCiB9Owog
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1BsYXRmb3Jt
SWNvbi5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9QbGF0Zm9ybUljb24u
aAppbmRleCA1MTYxM2I4NmVkN2ViOWUwMjRjZjVkNjU2OWNkZThmY2FiZTZiOWM2Li5iNDg1OTE3
ZjI3NDgxZDEwZDVhNTQxN2YxNWI5ZGZmNzc2YTNhODFiIDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1BsYXRmb3JtSWNvbi5oCisrKyBiL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vUGxhdGZvcm1JY29uLmgKQEAgLTMxLDExICszMSwxMSBA
QAogI2lmbmRlZiBQbGF0Zm9ybUljb25faAogI2RlZmluZSBQbGF0Zm9ybUljb25faAogCi10eXBl
ZGVmIHN0cnVjdCBISUNPTl9fKiBISUNPTjsKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCi10eXBl
ZGVmIEhJQ09OIFBsYXRmb3JtSWNvbjsKK2NsYXNzIEltYWdlOworCit0eXBlZGVmIEltYWdlIFBs
YXRmb3JtSWNvbjsKIAogfSAgLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
NTg5MmEyNjFhZjQwMjBjMDJhN2U0OTIzODMxNThkNGRmYzdmNmE3My4uMTRlZTY1MGIwZWFkM2E1
YmNlMDg2N2ZlZjQwNDY5YTQyOWZlOWU0ZCAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZworKysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAK
KzIwMTAtMDUtMTIgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtDaHJvbWl1bV0gU3VwcG9y
dCBpY29uIGxvYWRpbmcgZm9yIDxpbnB1dCB0eXBlPWZpbGU+CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zODk4MgorCisgICAgICAgIEltcGxlbWVudCBD
aHJvbWVDbGllbnRJbXBsOjpjaG9vc2VJY29uRm9yRmlsZXMoKS4gSXQgZGVsZWdhdGVzIGxvYWRp
bmcKKyAgICAgICAgdG8gV2ViVmlld0NsaWVudDo6cXVlcnlJY29uRm9yRmlsZXMoKSwgYW5kIGFu
IGltcGxlbWVudGF0aW9uIG9mCisgICAgICAgIFdlYlZpZXdDbGllbnQ6OnF1ZXJ5SWNvbkZvckZp
bGVzKCkgbG9hZHMgYW4gaWNvbiBhbmQgcGFzc2VzIGl0IHRvIGEKKyAgICAgICAgRmlsZUNob29z
ZXIgdGhyb3VnaCBXZWJJY29uTG9hZGluZ0NvbXBsZXRpb24uCisKKyAgICAgICAgKiBXZWJLaXQu
Z3lwOgorICAgICAgICAqIHB1YmxpYy9XZWJJY29uTG9hZGluZ0NvbXBsZXRpb24uaDogQWRkZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYkljb25Mb2FkaW5nQ29tcGxldGlvbjo6fldlYkljb25Mb2Fk
aW5nQ29tcGxldGlvbik6CisgICAgICAgICogcHVibGljL1dlYlZpZXdDbGllbnQuaDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlld0NsaWVudDo6cXVlcnlJY29uRm9yRmlsZXMpOgorICAgICAgICAq
IHNyYy9DaHJvbWVDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50
SW1wbDo6Y2hvb3NlSWNvbkZvckZpbGVzKToKKyAgICAgICAgKiBzcmMvV2ViSWNvbkxvYWRpbmdD
b21wbGV0aW9uSW1wbC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJJY29uTG9hZGlu
Z0NvbXBsZXRpb25JbXBsOjpXZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBsKToKKyAgICAgICAg
KFdlYktpdDo6V2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1wbDo6fldlYkljb25Mb2FkaW5nQ29t
cGxldGlvbkltcGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJJY29uTG9hZGluZ0NvbXBsZXRpb25J
bXBsOjpkaWRMb2FkSWNvbik6CisgICAgICAgICogc3JjL1dlYkljb25Mb2FkaW5nQ29tcGxldGlv
bkltcGwuaDogQWRkZWQuCisKIDIwMTAtMTItMDYgIE5hdGUgQ2hhcGluICA8amFwaGV0QGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpkaWZmIC0tZ2l0IGEv
V2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAgYi9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cApp
bmRleCAwMWJiMDkyNDUwODQwZDAwMGQyZWVhMzAyYzllNmJhNDY2ZjMyNzdiLi5lNmMwODNkODA5
NmU2OWE0MzQyOWQxYzE2YjcyZTIzYzg5MGI5ZGNhIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21p
dW0vV2ViS2l0Lmd5cAorKysgYi9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cApAQCAtMTgzLDYg
KzE4Myw3IEBACiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJIaXN0b3J5SXRlbS5oJywKICAg
ICAgICAgICAgICAgICAncHVibGljL1dlYkhUVFBCb2R5LmgnLAogICAgICAgICAgICAgICAgICdw
dWJsaWMvV2ViSFRUUExvYWRJbmZvLmgnLAorICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSWNv
bkxvYWRpbmdDb21wbGV0aW9uLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSW1hZ2Uu
aCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJJbWFnZURlY29kZXIuaCcsCiAgICAgICAg
ICAgICAgICAgJ3B1YmxpYy9XZWJJREJDYWxsYmFja3MuaCcsCkBAIC00NTYsNiArNDU3LDggQEAK
ICAgICAgICAgICAgICAgICAnc3JjL1dlYkhpc3RvcnlJdGVtLmNwcCcsCiAgICAgICAgICAgICAg
ICAgJ3NyYy9XZWJIVFRQQm9keS5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViSFRUUExv
YWRJbmZvLmNwcCcsCisgICAgICAgICAgICAgICAgJ3NyYy9XZWJJY29uTG9hZGluZ0NvbXBsZXRp
b25JbXBsLmNwcCcsCisgICAgICAgICAgICAgICAgJ3NyYy9XZWJJY29uTG9hZGluZ0NvbXBsZXRp
b25JbXBsLmgnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHAn
LAogICAgICAgICAgICAgICAgICdzcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5oJywKICAgICAgICAg
ICAgICAgICAnc3JjL1dlYklEQkN1cnNvckltcGwuY3BwJywKZGlmZiAtLWdpdCBhL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJWaWV3Q2xpZW50LmgKaW5kZXggN2NlMTQ4MzM0OWE1YjAwMWQ4MzM5NzFkYThiOWZlNTAwY2E1
MGUzOS4uZjExNDBkMzlkYmEyNmRkZGFkYTY0YzViOWJkNjdkODdkMWY3ZTY2NiAxMDA2NDQKLS0t
IGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgKKysrIGIvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgKQEAgLTUzLDYgKzUzLDcgQEAgY2xhc3MgV2Vi
RXh0ZXJuYWxQb3B1cE1lbnVDbGllbnQ7CiBjbGFzcyBXZWJGaWxlQ2hvb3NlckNvbXBsZXRpb247
CiBjbGFzcyBXZWJGcmFtZTsKIGNsYXNzIFdlYkdlb2xvY2F0aW9uU2VydmljZTsKK2NsYXNzIFdl
Ykljb25Mb2FkaW5nQ29tcGxldGlvbjsKIGNsYXNzIFdlYkltYWdlOwogY2xhc3MgV2ViSW5wdXRF
bGVtZW50OwogY2xhc3MgV2ViS2V5Ym9hcmRFdmVudDsKQEAgLTExMCw2ICsxMTEsMTAgQEAgcHVi
bGljOgogICAgIC8vIENhbGxlZCB0byByZXRyaWV2ZSB0aGUgcHJvdmlkZXIgb2YgZGVza3RvcCBu
b3RpZmljYXRpb25zLgogICAgIHZpcnR1YWwgV2ViTm90aWZpY2F0aW9uUHJlc2VudGVyKiBub3Rp
ZmljYXRpb25QcmVzZW50ZXIoKSB7IHJldHVybiAwOyB9CiAKKyAgICAvLyBDYWxsZWQgdG8gcmVx
dWVzdCBhbiBpY29uIGZvciB0aGUgc3BlY2lmaWVkIGZpbGVuYW1lcy4KKyAgICAvLyBUaGUgaWNv
biBpcyBzaG93biBpbiBhIGZpbGUgdXBsb2FkIGNvbnRyb2wuCisgICAgdmlydHVhbCBib29sIHF1
ZXJ5SWNvbkZvckZpbGVzKGNvbnN0IFdlYlZlY3RvcjxXZWJTdHJpbmc+JiBmaWxlbmFtZXMsIFdl
Ykljb25Mb2FkaW5nQ29tcGxldGlvbiopIHsgcmV0dXJuIGZhbHNlOyB9CisKIAogICAgIC8vIE5h
dmlnYXRpb25hbCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQogCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVu
dEltcGwuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAppbmRl
eCA3YjY3ZWRlZDIxMmIyZDI3MDFhOWZlOTBkNjRmNTEzYzliODRhOTUwLi4yNjQwN2ZiNDg2ZTg1
NDQ3MGM1NjkzZDcwOGM3YWM3YzkxMmE3MDg2IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0v
c3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21l
Q2xpZW50SW1wbC5jcHAKQEAgLTcyLDYgKzcyLDcgQEAKICNpbmNsdWRlICJXZWJGcmFtZUNsaWVu
dC5oIgogI2luY2x1ZGUgIldlYkZyYW1lSW1wbC5oIgogI2luY2x1ZGUgIldlYkdlb2xvY2F0aW9u
U2VydmljZS5oIgorI2luY2x1ZGUgIldlYkljb25Mb2FkaW5nQ29tcGxldGlvbkltcGwuaCIKICNp
bmNsdWRlICJXZWJJbnB1dEV2ZW50LmgiCiAjaW5jbHVkZSAiV2ViS2l0LmgiCiAjaW5jbHVkZSAi
V2ViTm9kZS5oIgpAQCAtNjczLDkgKzY3NCwxMyBAQCB2b2lkIENocm9tZUNsaWVudEltcGw6OnJ1
bk9wZW5QYW5lbChGcmFtZSogZnJhbWUsIFBhc3NSZWZQdHI8RmlsZUNob29zZXI+IGZpbGVDaAog
ICAgIGNob29zZXJDb21wbGV0aW9uLT5kaWRDaG9vc2VGaWxlKFdlYlZlY3RvcjxXZWJTdHJpbmc+
KCkpOwogfQogCi12b2lkIENocm9tZUNsaWVudEltcGw6OmNob29zZUljb25Gb3JGaWxlcyhjb25z
dCBWZWN0b3I8V1RGOjpTdHJpbmc+JiwgV2ViQ29yZTo6RmlsZUNob29zZXIqKQordm9pZCBDaHJv
bWVDbGllbnRJbXBsOjpjaG9vc2VJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFdURjo6U3RyaW5n
PiYgZmlsZW5hbWVzLCBXZWJDb3JlOjpGaWxlQ2hvb3NlciogZmlsZUNob29zZXIpCiB7Ci0gICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICBpZiAoIW1fd2ViVmlldy0+Y2xpZW50KCkpCisgICAgICAg
IHJldHVybjsKKyAgICBXZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBsKiBpY29uQ29tcGxldGlv
biA9IG5ldyBXZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBsKGZpbGVDaG9vc2VyKTsKKyAgICBp
ZiAoIW1fd2ViVmlldy0+Y2xpZW50KCktPnF1ZXJ5SWNvbkZvckZpbGVzKGZpbGVuYW1lcywgaWNv
bkNvbXBsZXRpb24pKQorICAgICAgICBpY29uQ29tcGxldGlvbi0+ZGlkTG9hZEljb24oV2ViRGF0
YSgpKTsKIH0KIAogdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpwb3B1cE9wZW5lZChQb3B1cENvbnRh
aW5lciogcG9wdXBDb250YWluZXIsCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75854</attachid>
            <date>2010-12-07 17:38:32 -0800</date>
            <delta_ts>2011-01-20 23:42:32 -0800</delta_ts>
            <desc>Patch 5</desc>
            <filename>0001-Chromium-Support-icon-loading-for-input-type-file.patch</filename>
            <type>text/plain</type>
            <size>27850</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">RnJvbSBlMWE4NTg3YzM0M2NkYTRmMWY4N2I5MDcxODY1ZmVjOTBmNDljNGRmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW50IFRhbXVyYSA8dGtlbnRAY2hyb21pdW0ub3JnPgpEYXRl
OiBXZWQsIDEyIE1heSAyMDEwIDE5OjM2OjQ5ICswOTAwClN1YmplY3Q6IFtQQVRDSF0gW0Nocm9t
aXVtXSBTdXBwb3J0IGljb24gbG9hZGluZyBmb3IgPGlucHV0IHR5cGU9ZmlsZT4KIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zODk4MgoKUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCgpXZWJDb3JlOgoKQW4gaWNvbiBkYXRhIGluIENocm9taXVtIHBvcnQgaXMgcmVw
cmVzZW50ZWQgYXMgV2ViQ29yZTo6SW1hZ2UuIFdlCmRvbid0IG5lZWQgT1Mtc3BlY2lmaWMgY29k
ZSBhbnltb3JlLgoKKiBXZWJDb3JlLmd5cGk6CiogcGxhdGZvcm0vZ3JhcGhpY3MvSWNvbi5oOgoo
V2ViQ29yZTo6SWNvbjo6Y3JlYXRlKTogQWRkIENocm9taXVtLXNwZWNpZmljIGZhY3RvcnkuCiog
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSWNvbkNocm9taXVtLmNwcDogQWRkZWQuCiogcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSWNvbkNocm9taXVtTGludXguY3BwOiBSZW1vdmVkLgoq
IHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ljb25DaHJvbWl1bU1hYy5jcHA6IFJlbW92ZWQu
CiogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSWNvbkNocm9taXVtV2luLmNwcDogUmVtb3Zl
ZC4KKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9QbGF0Zm9ybUljb24uaDoKCldlYktpdC9j
aHJvbWl1bToKCkltcGxlbWVudCBDaHJvbWVDbGllbnRJbXBsOjpjaG9vc2VJY29uRm9yRmlsZXMo
KS4gSXQgZGVsZWdhdGVzIGxvYWRpbmcKdG8gV2ViVmlld0NsaWVudDo6cXVlcnlJY29uRm9yRmls
ZXMoKSwgYW5kIGFuIGltcGxlbWVudGF0aW9uIG9mCldlYlZpZXdDbGllbnQ6OnF1ZXJ5SWNvbkZv
ckZpbGVzKCkgbG9hZHMgYW4gaWNvbiBhbmQgcGFzc2VzIGl0IHRvIGEKRmlsZUNob29zZXIgdGhy
b3VnaCBXZWJJY29uTG9hZGluZ0NvbXBsZXRpb24uCgoqIFdlYktpdC5neXA6CiogcHVibGljL1dl
Ykljb25Mb2FkaW5nQ29tcGxldGlvbi5oOiBBZGRlZC4KKFdlYktpdDo6V2ViSWNvbkxvYWRpbmdD
b21wbGV0aW9uOjp+V2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uKToKKiBwdWJsaWMvV2ViVmlld0Ns
aWVudC5oOgooV2ViS2l0OjpXZWJWaWV3Q2xpZW50OjpxdWVyeUljb25Gb3JGaWxlcyk6Ciogc3Jj
L0Nocm9tZUNsaWVudEltcGwuY3BwOgooV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjpjaG9vc2VJ
Y29uRm9yRmlsZXMpOgoqIHNyYy9XZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBsLmNwcDogQWRk
ZWQuCihXZWJLaXQ6OldlYkljb25Mb2FkaW5nQ29tcGxldGlvbkltcGw6OldlYkljb25Mb2FkaW5n
Q29tcGxldGlvbkltcGwpOgooV2ViS2l0OjpXZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBsOjp+
V2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1wbCk6CihXZWJLaXQ6OldlYkljb25Mb2FkaW5nQ29t
cGxldGlvbkltcGw6OmRpZExvYWRJY29uKToKKiBzcmMvV2ViSWNvbkxvYWRpbmdDb21wbGV0aW9u
SW1wbC5oOiBBZGRlZC4KLS0tCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgMTkgKysrKysrCiBXZWJDb3JlL1dlYkNvcmUuZ3lwaSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDQgKy0KIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSWNvbi5oICAgICAgICAgICAgICAgICAgIHwgICAgNyArKy0KIC4uLi9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9JY29uQ2hyb21pdW0uY3BwICAgIHwgICA1OCArKysrKysrKysrKysrKysr
KwogLi4uL2dyYXBoaWNzL2Nocm9taXVtL0ljb25DaHJvbWl1bUxpbnV4LmNwcCAgICAgICAgfCAg
IDU0IC0tLS0tLS0tLS0tLS0tLS0KIC4uLi9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JY29u
Q2hyb21pdW1NYWMuY3BwIHwgICA1MCAtLS0tLS0tLS0tLS0tLS0KIC4uLi9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9JY29uQ2hyb21pdW1XaW4uY3BwIHwgICA2NSAtLS0tLS0tLS0tLS0tLS0t
LS0tLQogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9QbGF0Zm9ybUljb24uaCAg
fCAgICA2ICstCiBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAgMjUgKysrKysrKysKIFdlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgICAgMyArCiBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkljb25M
b2FkaW5nQ29tcGxldGlvbi5oICB8ICAgNTMgKysrKysrKysrKysrKysrKwogV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmggICAgICAgICAgICAgfCAgICA1ICsrCiBXZWJLaXQv
Y2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwICAgICAgICAgICB8ICAgIDkgKystCiAu
Li4vY2hyb21pdW0vc3JjL1dlYkljb25Mb2FkaW5nQ29tcGxldGlvbkltcGwuY3BwICB8ICAgNjAg
KysrKysrKysrKysrKysrKysrCiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYkljb25Mb2FkaW5nQ29t
cGxldGlvbkltcGwuaCB8ICAgNTYgKysrKysrKysrKysrKysrKysKIDE1IGZpbGVzIGNoYW5nZWQs
IDI5NSBpbnNlcnRpb25zKCspLCAxNzkgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQg
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JY29uQ2hyb21pdW0uY3BwCiBkZWxl
dGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JY29uQ2hy
b21pdW1MaW51eC5jcHAKIGRlbGV0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0ljb25DaHJvbWl1bU1hYy5jcHAKIGRlbGV0ZSBtb2RlIDEwMDY0NCBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ljb25DaHJvbWl1bVdpbi5jcHAKIGNyZWF0
ZSBtb2RlIDEwMDY0NCBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkljb25Mb2FkaW5nQ29tcGxl
dGlvbi5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJY29uTG9h
ZGluZ0NvbXBsZXRpb25JbXBsLmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYktpdC9jaHJvbWl1
bS9zcmMvV2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1wbC5oCgpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlMTczN2U1Li5mNDZhYzE0IDEw
MDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDIyIEBACisyMDEwLTA1LTEyICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbQ2hy
b21pdW1dIFN1cHBvcnQgaWNvbiBsb2FkaW5nIGZvciA8aW5wdXQgdHlwZT1maWxlPgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg5ODIKKworICAgICAg
ICBBbiBpY29uIGRhdGEgaW4gQ2hyb21pdW0gcG9ydCBpcyByZXByZXNlbnRlZCBhcyBXZWJDb3Jl
OjpJbWFnZS4gV2UKKyAgICAgICAgZG9uJ3QgbmVlZCBPUy1zcGVjaWZpYyBjb2RlIGFueW1vcmUu
CisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
SWNvbi5oOgorICAgICAgICAoV2ViQ29yZTo6SWNvbjo6Y3JlYXRlKTogQWRkIENocm9taXVtLXNw
ZWNpZmljIGZhY3RvcnkuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSWNv
bkNocm9taXVtLmNwcDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vSWNvbkNocm9taXVtTGludXguY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0ljb25DaHJvbWl1bU1hYy5jcHA6IFJlbW92ZWQuCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSWNvbkNocm9taXVtV2luLmNwcDogUmVtb3ZlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9QbGF0Zm9ybUljb24uaDoKKwog
MjAxMC0xMi0wNyAgQ2hyaXMgTWFycmluICA8Y21hcnJpbkBhcHBsZS5jb20+CiAKICAgICAgICAg
VW5yZXZpZXdlZC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKaW5kZXggNGJhNjE1NS4uMWI4MTY3YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTI1NzAsOSArMjU3MCw3
IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXll
ckNocm9taXVtLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0hh
cmZidXp6U2tpYS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0hhcmZidXp6U2tpYS5oJywKLSAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9JY29uQ2hyb21pdW1MaW51eC5jcHAnLAotICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0ljb25DaHJvbWl1bU1hYy5jcHAnLAotICAgICAgICAgICAgJ3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0ljb25DaHJvbWl1bVdpbi5jcHAnLAorICAgICAgICAgICAgJ3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0ljb25DaHJvbWl1bS5jcHAnLAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ltYWdlQnVmZmVyRGF0YS5oJywKICAgICAgICAgICAg
ICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFnZUNocm9taXVtLmNwcCcsCiAgICAgICAg
ICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1hZ2VDaHJvbWl1bU1hYy5tbScsCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ljb24uaCBiL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvSWNvbi5oCmluZGV4IGM4MzY4NWYuLjI3OTcxMzMgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSWNvbi5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvSWNvbi5oCkBAIC00Miw2ICs0Miw3IEBAIHR5cGVkZWYgc3RydWN0IF9HZGtQaXhi
dWYgR2RrUGl4YnVmOwogI2VsaWYgUExBVEZPUk0oRUZMKQogdHlwZWRlZiBzdHJ1Y3QgX0V2YXNf
T2JqZWN0IEV2YXNfT2JqZWN0OwogI2VsaWYgUExBVEZPUk0oQ0hST01JVU0pCisjaW5jbHVkZSAi
SW1hZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUljb24uaCIKICNlbmRpZgogCkBAIC02MCw2ICs2
MSw4IEBAIHB1YmxpYzoKIAogI2lmIFBMQVRGT1JNKFdJTikKICAgICBzdGF0aWMgUGFzc1JlZlB0
cjxJY29uPiBjcmVhdGUoSElDT04gaEljb24pIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBJY29uKGhJ
Y29uKSk7IH0KKyNlbGlmIFBMQVRGT1JNKENIUk9NSVVNKQorICAgIHN0YXRpYyBQYXNzUmVmUHRy
PEljb24+IGNyZWF0ZShQYXNzUmVmUHRyPFBsYXRmb3JtSWNvbj4gaWNvbikgeyByZXR1cm4gYWRv
cHRSZWYobmV3IEljb24oaWNvbikpOyB9CiAjZW5kaWYKIAogcHJpdmF0ZToKQEAgLTc5LDggKzgy
LDggQEAgcHJpdmF0ZToKICAgICBJY29uKCk7CiAgICAgRXZhc19PYmplY3QqIG1faWNvbjsKICNl
bGlmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgIEljb24oY29uc3QgUGxhdGZvcm1JY29uJik7Ci0g
ICAgUGxhdGZvcm1JY29uIG1faWNvbjsKKyAgICBJY29uKFBhc3NSZWZQdHI8UGxhdGZvcm1JY29u
Pik7CisgICAgUmVmUHRyPFBsYXRmb3JtSWNvbj4gbV9pY29uOwogI2VuZGlmCiB9OwogCmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ljb25DaHJvbWl1bS5j
cHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ljb25DaHJvbWl1bS5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWM2MDQzYQotLS0gL2Rldi9udWxs
CisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSWNvbkNocm9taXVtLmNw
cApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDEwLCBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisg
KiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJY29uLmgi
CisKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmlu
Zy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0ljb246Okljb24oUGFzc1JlZlB0cjxQbGF0
Zm9ybUljb24+IGljb24pCisgICAgOiBtX2ljb24oaWNvbikKK3sKK30KKworSWNvbjo6fkljb24o
KQoreworfQorCit2b2lkIEljb246OnBhaW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29u
c3QgSW50UmVjdCYgcmVjdCkKK3sKKyAgICBpZiAoY29udGV4dC0+cGFpbnRpbmdEaXNhYmxlZCgp
KQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBBbiBJY29uIGRvZXNuJ3Qga25vdyB0aGUgY29s
b3Igc3BhY2Ugb2YgdGhlIGZpbGUgdXBsb2FkIGNvbnRyb2wuCisgICAgLy8gU28gdXNlIENvbG9y
U3BhY2VEZXZpY2VSR0IuCisgICAgY29udGV4dC0+ZHJhd0ltYWdlKG1faWNvbi5nZXQoKSwgQ29s
b3JTcGFjZURldmljZVJHQiwgcmVjdCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSWNvbkNocm9taXVt
TGludXguY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JY29uQ2hyb21p
dW1MaW51eC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE2ZjU1ZTIuLjAwMDAw
MDAKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JY29uQ2hyb21pdW1M
aW51eC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw1NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChjKSAyMDA4LCAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiAKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICogCi0gKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJp
YnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKiAKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUg
ImNvbmZpZy5oIgotI2luY2x1ZGUgIkljb24uaCIKLQotI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4
dC5oIgotI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1TdHJp
bmcuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1JY29uOjpJY29uKGNvbnN0IFBsYXRmb3Jt
SWNvbiYgaWNvbikKLSAgICA6IG1faWNvbihpY29uKQotewotfQotCi1JY29uOjp+SWNvbigpCi17
Ci19Ci0KLXZvaWQgSWNvbjo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYp
Ci17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JY29uQ2hyb21p
dW1NYWMuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JY29uQ2hyb21p
dW1NYWMuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMjRhZmIyLi4wMDAwMDAw
Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSWNvbkNocm9taXVtTWFj
LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDUwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMp
IDIwMDgsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiAKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICogCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgot
ICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKiAKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
Ci0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0g
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5o
IgotI2luY2x1ZGUgIkljb24uaCIKLQotI2luY2x1ZGUgIlBhc3NSZWZQdHIuaCIKLQotLy8gRklY
TUU6IFRoZXNlIGFyZSB0ZW1wb3Jhcnkgc3R1YnMsIHdlIG5lZWQgcmVhbCBpbXBsZW1lbnRhdGlv
bnMgd2hpY2gKLS8vIG1heSBjb21lIGluIHRoZSBmb3JtIG9mIEljb25DaHJvbWl1bS5jcHAuICBU
aGUgV2luZG93cyBDaHJvbWl1bQotLy8gaW1wbGVtZW50YXRpb24gaXMgY3VycmVudGx5IGluIElj
b25XaW4uY3BwLgotIAotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1JY29uOjp+SWNvbigpCi17Ci19
Ci0KLXZvaWQgSWNvbjo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYpCi17
Ci19Ci0KLX0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
SWNvbkNocm9taXVtV2luLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
SWNvbkNocm9taXVtV2luLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTk1OGQ0
YS4uMDAwMDAwMAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ljb25D
aHJvbWl1bVdpbi5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw2NSArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChjKSAyMDA4LCAyMDA5LCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICogCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqIAotICogICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAq
IGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICogCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQot
ICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNp
bmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJJY29uLmgiCi0KLSNpbmNsdWRlIDx3aW5kb3dz
Lmg+Ci0jaW5jbHVkZSA8c2hlbGxhcGkuaD4KLQotI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5o
IgotI2luY2x1ZGUgIlBsYXRmb3JtQ29udGV4dFNraWEuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybVN0
cmluZy5oIgotI2luY2x1ZGUgIlNraWFVdGlscy5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LUljb246Okljb24oY29uc3QgUGxhdGZvcm1JY29uJiBpY29uKQotICAgIDogbV9pY29uKGljb24p
Ci17Ci19Ci0KLUljb246On5JY29uKCkKLXsKLSAgICBpZiAobV9pY29uKQotICAgICAgICBEZXN0
cm95SWNvbihtX2ljb24pOwotfQotCi12b2lkIEljb246OnBhaW50KEdyYXBoaWNzQ29udGV4dCog
Y29udGV4dCwgY29uc3QgSW50UmVjdCYgcmVjdCkKLXsKLSAgICBpZiAoY29udGV4dC0+cGFpbnRp
bmdEaXNhYmxlZCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBIREMgaGRjID0gY29udGV4dC0+
cGxhdGZvcm1Db250ZXh0KCktPmNhbnZhcygpLT5iZWdpblBsYXRmb3JtUGFpbnQoKTsKLSAgICBE
cmF3SWNvbkV4KGhkYywgcmVjdC54KCksIHJlY3QueSgpLCBtX2ljb24sIHJlY3Qud2lkdGgoKSwg
cmVjdC5oZWlnaHQoKSwgMCwgMCwgRElfTk9STUFMKTsKLSAgICBjb250ZXh0LT5wbGF0Zm9ybUNv
bnRleHQoKS0+Y2FudmFzKCktPmVuZFBsYXRmb3JtUGFpbnQoKTsKLX0KLQotfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9QbGF0Zm9ybUljb24uaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vUGxh
dGZvcm1JY29uLmgKaW5kZXggNTE2MTNiOC4uYjQ4NTkxNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9QbGF0Zm9ybUljb24uaAorKysgYi9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1BsYXRmb3JtSWNvbi5oCkBAIC0zMSwxMSArMzEsMTEg
QEAKICNpZm5kZWYgUGxhdGZvcm1JY29uX2gKICNkZWZpbmUgUGxhdGZvcm1JY29uX2gKIAotdHlw
ZWRlZiBzdHJ1Y3QgSElDT05fXyogSElDT047Ci0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdHlw
ZWRlZiBISUNPTiBQbGF0Zm9ybUljb247CitjbGFzcyBJbWFnZTsKKwordHlwZWRlZiBJbWFnZSBQ
bGF0Zm9ybUljb247CiAKIH0gIC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDU2YjliY2UuLjQzYjhmNTcgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
KysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEwLTA1
LTEyICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbQ2hyb21pdW1dIFN1cHBvcnQgaWNvbiBs
b2FkaW5nIGZvciA8aW5wdXQgdHlwZT1maWxlPgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg5ODIKKworICAgICAgICBJbXBsZW1lbnQgQ2hyb21lQ2xp
ZW50SW1wbDo6Y2hvb3NlSWNvbkZvckZpbGVzKCkuIEl0IGRlbGVnYXRlcyBsb2FkaW5nCisgICAg
ICAgIHRvIFdlYlZpZXdDbGllbnQ6OnF1ZXJ5SWNvbkZvckZpbGVzKCksIGFuZCBhbiBpbXBsZW1l
bnRhdGlvbiBvZgorICAgICAgICBXZWJWaWV3Q2xpZW50OjpxdWVyeUljb25Gb3JGaWxlcygpIGxv
YWRzIGFuIGljb24gYW5kIHBhc3NlcyBpdCB0byBhCisgICAgICAgIEZpbGVDaG9vc2VyIHRocm91
Z2ggV2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uLgorCisgICAgICAgICogV2ViS2l0Lmd5cDoKKyAg
ICAgICAgKiBwdWJsaWMvV2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uLmg6IEFkZGVkLgorICAgICAg
ICAoV2ViS2l0OjpXZWJJY29uTG9hZGluZ0NvbXBsZXRpb246On5XZWJJY29uTG9hZGluZ0NvbXBs
ZXRpb24pOgorICAgICAgICAqIHB1YmxpYy9XZWJWaWV3Q2xpZW50Lmg6CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZXdDbGllbnQ6OnF1ZXJ5SWNvbkZvckZpbGVzKToKKyAgICAgICAgKiBzcmMvQ2hy
b21lQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6OmNo
b29zZUljb25Gb3JGaWxlcyk6CisgICAgICAgICogc3JjL1dlYkljb25Mb2FkaW5nQ29tcGxldGlv
bkltcGwuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViSWNvbkxvYWRpbmdDb21wbGV0
aW9uSW1wbDo6V2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1wbCk6CisgICAgICAgIChXZWJLaXQ6
OldlYkljb25Mb2FkaW5nQ29tcGxldGlvbkltcGw6On5XZWJJY29uTG9hZGluZ0NvbXBsZXRpb25J
bXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1wbDo6ZGlk
TG9hZEljb24pOgorICAgICAgICAqIHNyYy9XZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBsLmg6
IEFkZGVkLgorCiAyMDEwLTEyLTA2ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9t
aXVtL1dlYktpdC5neXAgYi9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAppbmRleCAwMWJiMDky
Li5lNmMwODNkIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAorKysgYi9X
ZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cApAQCAtMTgzLDYgKzE4Myw3IEBACiAgICAgICAgICAg
ICAgICAgJ3B1YmxpYy9XZWJIaXN0b3J5SXRlbS5oJywKICAgICAgICAgICAgICAgICAncHVibGlj
L1dlYkhUVFBCb2R5LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSFRUUExvYWRJbmZv
LmgnLAorICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uLmgn
LAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSW1hZ2UuaCcsCiAgICAgICAgICAgICAgICAg
J3B1YmxpYy9XZWJJbWFnZURlY29kZXIuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJJ
REJDYWxsYmFja3MuaCcsCkBAIC00NTYsNiArNDU3LDggQEAKICAgICAgICAgICAgICAgICAnc3Jj
L1dlYkhpc3RvcnlJdGVtLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJIVFRQQm9keS5j
cHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViSFRUUExvYWRJbmZvLmNwcCcsCisgICAgICAg
ICAgICAgICAgJ3NyYy9XZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBsLmNwcCcsCisgICAgICAg
ICAgICAgICAgJ3NyYy9XZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBsLmgnLAogICAgICAgICAg
ICAgICAgICdzcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHAnLAogICAgICAgICAgICAgICAgICdz
cmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5oJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYklEQkN1
cnNvckltcGwuY3BwJywKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSWNv
bkxvYWRpbmdDb21wbGV0aW9uLmggYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkljb25Mb2Fk
aW5nQ29tcGxldGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1Nzg0
ZDUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkljb25Mb2Fk
aW5nQ29tcGxldGlvbi5oCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwor
ICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYkljb25Mb2FkaW5nQ29t
cGxldGlvbl9oCisjZGVmaW5lIFdlYkljb25Mb2FkaW5nQ29tcGxldGlvbl9oCisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitjbGFzcyBXZWJEYXRhOworY2xhc3MgV2ViU3RyaW5nOworCisvLyBHZXRz
IGNhbGxlZCBiYWNrIHdoZW4gV2ViVmlld0NsaWVudCBmaW5pc2hlZCBsb2FkaW5nIGFuIGljb24u
CitjbGFzcyBXZWJJY29uTG9hZGluZ0NvbXBsZXRpb24geworcHVibGljOgorICAgIC8vIENhbGxl
ZCB3aXRoIHRoZSBsb2FkZWQgaWNvbiBkYXRhLCB3aGljaCBpcyBhbiBpbWFnZSBkYXRhIHN0cmVh
bQorICAgIC8vIFdlYkNvcmUgY2FuIGRlY29kZSwgc3VjaCBhcyBQTkcuIEEgbnVsbCBXZWJEYXRh
IG1lYW5zIGEgZmFpbHVyZSBvZgorICAgIC8vIGxvYWRpbmcuIFRoZSBjYWxsYmFjayBpbnN0YW5j
ZSBpcyBkZXN0cm95ZWQgd2hlbiB0aGlzIG1ldGhvZCBpcyBjYWxsZWQuCisgICAgdmlydHVhbCB2
b2lkIGRpZExvYWRJY29uKGNvbnN0IFdlYkRhdGEmKSA9IDA7CisKK3Byb3RlY3RlZDoKKyAgICB2
aXJ0dWFsIH5XZWJJY29uTG9hZGluZ0NvbXBsZXRpb24oKSB7IH0KK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViVmlld0NsaWVudC5oIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgK
aW5kZXggN2NlMTQ4My4uZjExNDBkMyAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJWaWV3Q2xpZW50LmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xp
ZW50LmgKQEAgLTUzLDYgKzUzLDcgQEAgY2xhc3MgV2ViRXh0ZXJuYWxQb3B1cE1lbnVDbGllbnQ7
CiBjbGFzcyBXZWJGaWxlQ2hvb3NlckNvbXBsZXRpb247CiBjbGFzcyBXZWJGcmFtZTsKIGNsYXNz
IFdlYkdlb2xvY2F0aW9uU2VydmljZTsKK2NsYXNzIFdlYkljb25Mb2FkaW5nQ29tcGxldGlvbjsK
IGNsYXNzIFdlYkltYWdlOwogY2xhc3MgV2ViSW5wdXRFbGVtZW50OwogY2xhc3MgV2ViS2V5Ym9h
cmRFdmVudDsKQEAgLTExMCw2ICsxMTEsMTAgQEAgcHVibGljOgogICAgIC8vIENhbGxlZCB0byBy
ZXRyaWV2ZSB0aGUgcHJvdmlkZXIgb2YgZGVza3RvcCBub3RpZmljYXRpb25zLgogICAgIHZpcnR1
YWwgV2ViTm90aWZpY2F0aW9uUHJlc2VudGVyKiBub3RpZmljYXRpb25QcmVzZW50ZXIoKSB7IHJl
dHVybiAwOyB9CiAKKyAgICAvLyBDYWxsZWQgdG8gcmVxdWVzdCBhbiBpY29uIGZvciB0aGUgc3Bl
Y2lmaWVkIGZpbGVuYW1lcy4KKyAgICAvLyBUaGUgaWNvbiBpcyBzaG93biBpbiBhIGZpbGUgdXBs
b2FkIGNvbnRyb2wuCisgICAgdmlydHVhbCBib29sIHF1ZXJ5SWNvbkZvckZpbGVzKGNvbnN0IFdl
YlZlY3RvcjxXZWJTdHJpbmc+JiBmaWxlbmFtZXMsIFdlYkljb25Mb2FkaW5nQ29tcGxldGlvbiop
IHsgcmV0dXJuIGZhbHNlOyB9CisKIAogICAgIC8vIE5hdmlnYXRpb25hbCAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCmRpZmYgLS1naXQg
YS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwIGIvV2ViS2l0L2Nocm9t
aXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAppbmRleCA3YjY3ZWRlLi4yNjQwN2ZiIDEwMDY0
NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCisrKyBiL1dl
YktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKQEAgLTcyLDYgKzcyLDcgQEAK
ICNpbmNsdWRlICJXZWJGcmFtZUNsaWVudC5oIgogI2luY2x1ZGUgIldlYkZyYW1lSW1wbC5oIgog
I2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uU2VydmljZS5oIgorI2luY2x1ZGUgIldlYkljb25Mb2Fk
aW5nQ29tcGxldGlvbkltcGwuaCIKICNpbmNsdWRlICJXZWJJbnB1dEV2ZW50LmgiCiAjaW5jbHVk
ZSAiV2ViS2l0LmgiCiAjaW5jbHVkZSAiV2ViTm9kZS5oIgpAQCAtNjczLDkgKzY3NCwxMyBAQCB2
b2lkIENocm9tZUNsaWVudEltcGw6OnJ1bk9wZW5QYW5lbChGcmFtZSogZnJhbWUsIFBhc3NSZWZQ
dHI8RmlsZUNob29zZXI+IGZpbGVDaAogICAgIGNob29zZXJDb21wbGV0aW9uLT5kaWRDaG9vc2VG
aWxlKFdlYlZlY3RvcjxXZWJTdHJpbmc+KCkpOwogfQogCi12b2lkIENocm9tZUNsaWVudEltcGw6
OmNob29zZUljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiwgV2ViQ29yZTo6
RmlsZUNob29zZXIqKQordm9pZCBDaHJvbWVDbGllbnRJbXBsOjpjaG9vc2VJY29uRm9yRmlsZXMo
Y29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYgZmlsZW5hbWVzLCBXZWJDb3JlOjpGaWxlQ2hvb3Nl
ciogZmlsZUNob29zZXIpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBpZiAoIW1fd2Vi
Vmlldy0+Y2xpZW50KCkpCisgICAgICAgIHJldHVybjsKKyAgICBXZWJJY29uTG9hZGluZ0NvbXBs
ZXRpb25JbXBsKiBpY29uQ29tcGxldGlvbiA9IG5ldyBXZWJJY29uTG9hZGluZ0NvbXBsZXRpb25J
bXBsKGZpbGVDaG9vc2VyKTsKKyAgICBpZiAoIW1fd2ViVmlldy0+Y2xpZW50KCktPnF1ZXJ5SWNv
bkZvckZpbGVzKGZpbGVuYW1lcywgaWNvbkNvbXBsZXRpb24pKQorICAgICAgICBpY29uQ29tcGxl
dGlvbi0+ZGlkTG9hZEljb24oV2ViRGF0YSgpKTsKIH0KIAogdm9pZCBDaHJvbWVDbGllbnRJbXBs
Ojpwb3B1cE9wZW5lZChQb3B1cENvbnRhaW5lciogcG9wdXBDb250YWluZXIsCmRpZmYgLS1naXQg
YS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkljb25Mb2FkaW5nQ29tcGxldGlvbkltcGwuY3BwIGIv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBsLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NzhjNjZjCi0tLSAvZGV2L251bGwKKysr
IGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBsLmNwcApA
QCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisg
KiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisg
KiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAor
ICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkljb25Mb2Fk
aW5nQ29tcGxldGlvbkltcGwuaCIKKworI2luY2x1ZGUgIkJpdG1hcEltYWdlLmgiCisjaW5jbHVk
ZSAiSWNvbi5oIgorI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworV2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1wbDo6V2ViSWNvbkxvYWRpbmdDb21wbGV0
aW9uSW1wbChXZWJDb3JlOjpGaWxlQ2hvb3NlciogY2hvb3NlcikKKyAgICA6IG1fZmlsZUNob29z
ZXIoY2hvb3NlcikKK3sKK30KKworV2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1wbDo6fldlYklj
b25Mb2FkaW5nQ29tcGxldGlvbkltcGwoKQoreworfQorCit2b2lkIFdlYkljb25Mb2FkaW5nQ29t
cGxldGlvbkltcGw6OmRpZExvYWRJY29uKGNvbnN0IFdlYkRhdGEmIGljb25EYXRhKQoreworICAg
IGlmICghaWNvbkRhdGEuaXNFbXB0eSgpKSB7CisgICAgICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFn
ZT4gaW1hZ2UgPSBXZWJDb3JlOjpCaXRtYXBJbWFnZTo6Y3JlYXRlKCk7CisgICAgICAgIGltYWdl
LT5zZXREYXRhKGljb25EYXRhLCB0cnVlKTsKKyAgICAgICAgbV9maWxlQ2hvb3Nlci0+aWNvbkxv
YWRlZChXZWJDb3JlOjpJY29uOjpjcmVhdGUoaW1hZ2UpKTsKKyAgICB9CisgICAgLy8gVGhpcyBv
YmplY3QgaXMgbm8gbG9uZ2VyIG5lZWRlZC4KKyAgICBkZWxldGUgdGhpczsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkljb25M
b2FkaW5nQ29tcGxldGlvbkltcGwuaCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSWNvbkxvYWRp
bmdDb21wbGV0aW9uSW1wbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAx
NzQyMTEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkljb25Mb2Fk
aW5nQ29tcGxldGlvbkltcGwuaApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAq
ICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJJY29uTG9hZGlu
Z0NvbXBsZXRpb25JbXBsX2gKKyNkZWZpbmUgV2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1wbF9o
CisKKyNpbmNsdWRlICJGaWxlQ2hvb3Nlci5oIgorI2luY2x1ZGUgIldlYkRhdGEuaCIKKyNpbmNs
dWRlICJXZWJJY29uTG9hZGluZ0NvbXBsZXRpb24uaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0
ci5oPgorCit1c2luZyBXZWJLaXQ6OldlYkljb25Mb2FkaW5nQ29tcGxldGlvbjsKK3VzaW5nIFdl
YktpdDo6V2ViRGF0YTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYkljb25Mb2Fk
aW5nQ29tcGxldGlvbkltcGwgOiBwdWJsaWMgV2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uIHsKK3B1
YmxpYzoKKyAgICBXZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBsKFdlYkNvcmU6OkZpbGVDaG9v
c2VyKik7CisgICAgfldlYkljb25Mb2FkaW5nQ29tcGxldGlvbkltcGwoKTsKKyAgICB2aXJ0dWFs
IHZvaWQgZGlkTG9hZEljb24oY29uc3QgV2ViRGF0YSYpOworCitwcml2YXRlOgorICAgIFJlZlB0
cjxXZWJDb3JlOjpGaWxlQ2hvb3Nlcj4gbV9maWxlQ2hvb3NlcjsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYKLS0gCjEuNy4yLjEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>79702</attachid>
            <date>2011-01-20 23:42:37 -0800</date>
            <delta_ts>2011-01-20 23:59:53 -0800</delta_ts>
            <desc>Patch 6</desc>
            <filename>bug-38982-20110121164235.patch</filename>
            <type>text/plain</type>
            <size>8396</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjNDI2NzI4MjUyMWVkMjNkNzhkOWM5OTRlMWYxZDlmZTNhYzk3MWUwLi5l
NzhlY2UxN2U4NWM4OThhMDRiMjM1OGRjMjE2NTdhYjlmZjlhZWIxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjIgQEAKKzIwMTAtMDUtMTIgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtDaHJv
bWl1bV0gU3VwcG9ydCBpY29uIGxvYWRpbmcgZm9yIDxpbnB1dCB0eXBlPWZpbGU+CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zODk4MgorCisgICAgICAg
IEFuIGljb24gZGF0YSBpbiBDaHJvbWl1bSBwb3J0IGlzIHJlcHJlc2VudGVkIGFzIFdlYkNvcmU6
OkltYWdlLiBXZQorICAgICAgICBkb24ndCBuZWVkIE9TLXNwZWNpZmljIGNvZGUgYW55bW9yZS4K
KworICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9J
Y29uLmg6CisgICAgICAgIChXZWJDb3JlOjpJY29uOjpjcmVhdGUpOiBBZGQgQ2hyb21pdW0tc3Bl
Y2lmaWMgZmFjdG9yeS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JY29u
Q2hyb21pdW0uY3BwOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9JY29uQ2hyb21pdW1MaW51eC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vSWNvbkNocm9taXVtTWFjLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JY29uQ2hyb21pdW1XaW4uY3BwOiBSZW1vdmVkLgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1BsYXRmb3JtSWNvbi5oOgorCiAy
MDExLTAxLTIwICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgR2F2aW4gQmFycmFjbG91Z2guCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNTM0ZGRmMjg0ZTUz
YjBmNzQzYzI1MmFkNDc2ODI4ZTdiNDI3YWUyNy4uM2Q3MzkxNTdlMTRhNjgwMmYwNGNkYTczZmM3
MDEwNTUwMmJmNTVhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMjU3OSw5ICsyNTc5LDcgQEAKICAg
ICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21p
dW0uaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSGFyZmJ1enpT
a2lhLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSGFyZmJ1
enpTa2lhLmgnLAotICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ljb25D
aHJvbWl1bUxpbnV4LmNwcCcsCi0gICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vSWNvbkNocm9taXVtTWFjLmNwcCcsCi0gICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vSWNvbkNocm9taXVtV2luLmNwcCcsCisgICAgICAgICAgICAncGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vSWNvbkNocm9taXVtLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vSW1hZ2VCdWZmZXJEYXRhLmgnLAogICAgICAgICAgICAgJ3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0ltYWdlQ2hyb21pdW0uY3BwJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFnZUNocm9taXVtTWFjLm1tJywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ljb24uaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ljb24uaAppbmRleCBjODM2ODVmNmIyZjFjMjFhNjc3M2M2
Y2I1MWFhM2Y1MmI5Y2FjNGE5Li4yNzk3MTMzMzEwMjQ5ZWIxOTM0OWQ0MWViM2Y3OTY5ZjQyMzAx
NTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JY29uLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSWNvbi5oCkBAIC00Miw2ICs0
Miw3IEBAIHR5cGVkZWYgc3RydWN0IF9HZGtQaXhidWYgR2RrUGl4YnVmOwogI2VsaWYgUExBVEZP
Uk0oRUZMKQogdHlwZWRlZiBzdHJ1Y3QgX0V2YXNfT2JqZWN0IEV2YXNfT2JqZWN0OwogI2VsaWYg
UExBVEZPUk0oQ0hST01JVU0pCisjaW5jbHVkZSAiSW1hZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9y
bUljb24uaCIKICNlbmRpZgogCkBAIC02MCw2ICs2MSw4IEBAIHB1YmxpYzoKIAogI2lmIFBMQVRG
T1JNKFdJTikKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxJY29uPiBjcmVhdGUoSElDT04gaEljb24p
IHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBJY29uKGhJY29uKSk7IH0KKyNlbGlmIFBMQVRGT1JNKENI
Uk9NSVVNKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEljb24+IGNyZWF0ZShQYXNzUmVmUHRyPFBs
YXRmb3JtSWNvbj4gaWNvbikgeyByZXR1cm4gYWRvcHRSZWYobmV3IEljb24oaWNvbikpOyB9CiAj
ZW5kaWYKIAogcHJpdmF0ZToKQEAgLTc5LDggKzgyLDggQEAgcHJpdmF0ZToKICAgICBJY29uKCk7
CiAgICAgRXZhc19PYmplY3QqIG1faWNvbjsKICNlbGlmIFBMQVRGT1JNKENIUk9NSVVNKQotICAg
IEljb24oY29uc3QgUGxhdGZvcm1JY29uJik7Ci0gICAgUGxhdGZvcm1JY29uIG1faWNvbjsKKyAg
ICBJY29uKFBhc3NSZWZQdHI8UGxhdGZvcm1JY29uPik7CisgICAgUmVmUHRyPFBsYXRmb3JtSWNv
bj4gbV9pY29uOwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9QbGF0Zm9ybUljb24uaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1BsYXRmb3JtSWNvbi5oCmluZGV4IDUxNjEzYjg2ZWQ3
ZWI5ZTAyNGNmNWQ2NTY5Y2RlOGZjYWJlNmI5YzYuLmI0ODU5MTdmMjc0ODFkMTBkNWE1NDE3ZjE1
YjlkZmY3NzZhM2E4MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL1BsYXRmb3JtSWNvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL1BsYXRmb3JtSWNvbi5oCkBAIC0zMSwxMSArMzEsMTEgQEAKICNp
Zm5kZWYgUGxhdGZvcm1JY29uX2gKICNkZWZpbmUgUGxhdGZvcm1JY29uX2gKIAotdHlwZWRlZiBz
dHJ1Y3QgSElDT05fXyogSElDT047Ci0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdHlwZWRlZiBI
SUNPTiBQbGF0Zm9ybUljb247CitjbGFzcyBJbWFnZTsKKwordHlwZWRlZiBJbWFnZSBQbGF0Zm9y
bUljb247CiAKIH0gIC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKaW5kZXggMmIzOTFjOTU4N2ZiMzU0NWY0NzgxZWFmM2M4MWNmM2E4ODUxOTI1MC4uYmNmNTA3
YTI5ZDZhMGU2NDFhNTc4NWIxMmZlNGQ1NmJmYjQ3MTgzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxMC0wNS0xMiAgS2VudCBUYW11cmEgIDx0a2VudEBj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgW0Nocm9taXVtXSBTdXBwb3J0IGljb24gbG9hZGluZyBmb3IgPGlucHV0IHR5cGU9Zmls
ZT4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4OTgy
CisKKyAgICAgICAgSW1wbGVtZW50IENocm9tZUNsaWVudEltcGw6OmNob29zZUljb25Gb3JGaWxl
cygpLiBJdCBkZWxlZ2F0ZXMgbG9hZGluZworICAgICAgICB0byBXZWJWaWV3Q2xpZW50OjpxdWVy
eUljb25Gb3JGaWxlcygpLCBhbmQgYW4gaW1wbGVtZW50YXRpb24gb2YKKyAgICAgICAgV2ViVmll
d0NsaWVudDo6cXVlcnlJY29uRm9yRmlsZXMoKSBsb2FkcyBhbiBpY29uIGFuZCBwYXNzZXMgaXQg
dG8gYQorICAgICAgICBGaWxlQ2hvb3NlciB0aHJvdWdoIFdlYkljb25Mb2FkaW5nQ29tcGxldGlv
bi4KKworICAgICAgICAqIFdlYktpdC5neXA6CisgICAgICAgICogcHVibGljL1dlYkljb25Mb2Fk
aW5nQ29tcGxldGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViSWNvbkxvYWRpbmdD
b21wbGV0aW9uOjp+V2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uKToKKyAgICAgICAgKiBwdWJsaWMv
V2ViVmlld0NsaWVudC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3Q2xpZW50OjpxdWVyeUlj
b25Gb3JGaWxlcyk6CisgICAgICAgICogc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjpjaG9vc2VJY29uRm9yRmlsZXMpOgorICAgICAg
ICAqIHNyYy9XZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBsLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJLaXQ6OldlYkljb25Mb2FkaW5nQ29tcGxldGlvbkltcGw6OldlYkljb25Mb2FkaW5nQ29t
cGxldGlvbkltcGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJJY29uTG9hZGluZ0NvbXBsZXRpb25J
bXBsOjp+V2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1wbCk6CisgICAgICAgIChXZWJLaXQ6Oldl
Ykljb25Mb2FkaW5nQ29tcGxldGlvbkltcGw6OmRpZExvYWRJY29uKToKKyAgICAgICAgKiBzcmMv
V2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1wbC5oOiBBZGRlZC4KKwogMjAxMS0wMS0yMCAgQWRh
bSBLbGVpbiAgPGFkYW1rQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbmRy
ZWFzIEtsaW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lw
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCmluZGV4IDg1ZjY3MWRjZGIwZjY0
YmM1YzFiNmU2NmE1NTE3N2EzNjZiYWM3YmQuLmQwOWVjNzQ2ZjBhYjA1YzA3NGU1MGRhY2Q0NjE4
MDBmN2Y2ODYwMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKQEAgLTE4OCw2ICsxODgs
NyBAQAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSGlzdG9yeUl0ZW0uaCcsCiAgICAgICAg
ICAgICAgICAgJ3B1YmxpYy9XZWJIVFRQQm9keS5oJywKICAgICAgICAgICAgICAgICAncHVibGlj
L1dlYkhUVFBMb2FkSW5mby5oJywKKyAgICAgICAgICAgICAgICAncHVibGljL1dlYkljb25Mb2Fk
aW5nQ29tcGxldGlvbi5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYkltYWdlLmgnLAog
ICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSW1hZ2VEZWNvZGVyLmgnLAogICAgICAgICAgICAg
ICAgICdwdWJsaWMvV2ViSURCQ2FsbGJhY2tzLmgnLApAQCAtNDYzLDYgKzQ2NCw4IEBACiAgICAg
ICAgICAgICAgICAgJ3NyYy9XZWJIaXN0b3J5SXRlbS5jcHAnLAogICAgICAgICAgICAgICAgICdz
cmMvV2ViSFRUUEJvZHkuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkhUVFBMb2FkSW5m
by5jcHAnLAorICAgICAgICAgICAgICAgICdzcmMvV2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1w
bC5jcHAnLAorICAgICAgICAgICAgICAgICdzcmMvV2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1w
bC5oJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuY3BwJywKICAg
ICAgICAgICAgICAgICAnc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuaCcsCiAgICAgICAgICAgICAg
ICAgJ3NyYy9XZWJJREJDdXJzb3JJbXBsLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgKaW5kZXggMDhmYjk0MjZhOTg4NzNlMzBhZWYwMzJhMGRk
ODhjYTQ2YTEyM2E0Yi4uZmNjOTZlOTFkNGVkMDE3ZjE5ZDE4ZjJlZDU3OWYxMjEyOTRmMmE5OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaApAQCAt
NTQsNiArNTQsNyBAQCBjbGFzcyBXZWJGaWxlQ2hvb3NlckNvbXBsZXRpb247CiBjbGFzcyBXZWJG
cmFtZTsKIGNsYXNzIFdlYkdlb2xvY2F0aW9uQ2xpZW50OwogY2xhc3MgV2ViR2VvbG9jYXRpb25T
ZXJ2aWNlOworY2xhc3MgV2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uOwogY2xhc3MgV2ViSW1hZ2U7
CiBjbGFzcyBXZWJJbnB1dEVsZW1lbnQ7CiBjbGFzcyBXZWJLZXlib2FyZEV2ZW50OwpAQCAtMTE3
LDYgKzExOCwxMCBAQCBwdWJsaWM6CiAgICAgLy8gQ2FsbGVkIHRvIHJldHJpZXZlIHRoZSBwcm92
aWRlciBvZiBkZXNrdG9wIG5vdGlmaWNhdGlvbnMuCiAgICAgdmlydHVhbCBXZWJOb3RpZmljYXRp
b25QcmVzZW50ZXIqIG5vdGlmaWNhdGlvblByZXNlbnRlcigpIHsgcmV0dXJuIDA7IH0KIAorICAg
IC8vIENhbGxlZCB0byByZXF1ZXN0IGFuIGljb24gZm9yIHRoZSBzcGVjaWZpZWQgZmlsZW5hbWVz
LgorICAgIC8vIFRoZSBpY29uIGlzIHNob3duIGluIGEgZmlsZSB1cGxvYWQgY29udHJvbC4KKyAg
ICB2aXJ0dWFsIGJvb2wgcXVlcnlJY29uRm9yRmlsZXMoY29uc3QgV2ViVmVjdG9yPFdlYlN0cmlu
Zz4mIGZpbGVuYW1lcywgV2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uKikgeyByZXR1cm4gZmFsc2U7
IH0KKwogCiAgICAgLy8gTmF2aWdhdGlvbmFsIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKaW5kZXggYTYzYTYyNWVjOTRlY2MxMGJiNTkxZjI5
MjIwY2RkYjJhZWUyODBmMy4uZTU2Yzc1MGI2N2I2OTY0Yjg4MjQ0NjA4ZjI0Y2IxZjQ5YTBmM2M5
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1w
bC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5j
cHAKQEAgLTcwLDYgKzcwLDcgQEAKICNpbmNsdWRlICJXZWJGaWxlQ2hvb3NlckNvbXBsZXRpb25J
bXBsLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWVDbGllbnQuaCIKICNpbmNsdWRlICJXZWJGcmFtZUlt
cGwuaCIKKyNpbmNsdWRlICJXZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBsLmgiCiAjaW5jbHVk
ZSAiV2ViSW5wdXRFdmVudC5oIgogI2luY2x1ZGUgIldlYktpdC5oIgogI2luY2x1ZGUgIldlYk5v
ZGUuaCIKQEAgLTY2OSw5ICs2NzAsMTMgQEAgdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpydW5PcGVu
UGFuZWwoRnJhbWUqIGZyYW1lLCBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPiBmaWxlQ2gKICAgICBj
aG9vc2VyQ29tcGxldGlvbi0+ZGlkQ2hvb3NlRmlsZShXZWJWZWN0b3I8V2ViU3RyaW5nPigpKTsK
IH0KIAotdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpjaG9vc2VJY29uRm9yRmlsZXMoY29uc3QgVmVj
dG9yPFdURjo6U3RyaW5nPiYsIFdlYkNvcmU6OkZpbGVDaG9vc2VyKikKK3ZvaWQgQ2hyb21lQ2xp
ZW50SW1wbDo6Y2hvb3NlSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mIGZp
bGVuYW1lcywgV2ViQ29yZTo6RmlsZUNob29zZXIqIGZpbGVDaG9vc2VyKQogewotICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgaWYgKCFtX3dlYlZpZXctPmNsaWVudCgpKQorICAgICAgICByZXR1
cm47CisgICAgV2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1wbCogaWNvbkNvbXBsZXRpb24gPSBu
ZXcgV2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1wbChmaWxlQ2hvb3Nlcik7CisgICAgaWYgKCFt
X3dlYlZpZXctPmNsaWVudCgpLT5xdWVyeUljb25Gb3JGaWxlcyhmaWxlbmFtZXMsIGljb25Db21w
bGV0aW9uKSkKKyAgICAgICAgaWNvbkNvbXBsZXRpb24tPmRpZExvYWRJY29uKFdlYkRhdGEoKSk7
CiB9CiAKIHZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6cG9wdXBPcGVuZWQoUG9wdXBDb250YWluZXIq
IHBvcHVwQ29udGFpbmVyLAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>79703</attachid>
            <date>2011-01-20 23:59:53 -0800</date>
            <delta_ts>2011-01-24 01:17:49 -0800</delta_ts>
            <desc>Patch 7</desc>
            <filename>0001-hoge.patch</filename>
            <type>text/plain</type>
            <size>25000</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggYzQyNjcyOC4uZTc4ZWNlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIy
IEBACisyMDEwLTA1LTEyICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbQ2hyb21pdW1dIFN1
cHBvcnQgaWNvbiBsb2FkaW5nIGZvciA8aW5wdXQgdHlwZT1maWxlPgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg5ODIKKworICAgICAgICBBbiBpY29u
IGRhdGEgaW4gQ2hyb21pdW0gcG9ydCBpcyByZXByZXNlbnRlZCBhcyBXZWJDb3JlOjpJbWFnZS4g
V2UKKyAgICAgICAgZG9uJ3QgbmVlZCBPUy1zcGVjaWZpYyBjb2RlIGFueW1vcmUuCisKKyAgICAg
ICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSWNvbi5oOgor
ICAgICAgICAoV2ViQ29yZTo6SWNvbjo6Y3JlYXRlKTogQWRkIENocm9taXVtLXNwZWNpZmljIGZh
Y3RvcnkuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSWNvbkNocm9taXVt
LmNwcDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSWNvbkNo
cm9taXVtTGludXguY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0ljb25DaHJvbWl1bU1hYy5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vSWNvbkNocm9taXVtV2luLmNwcDogUmVtb3ZlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9QbGF0Zm9ybUljb24uaDoKKwogMjAxMS0wMS0y
MCAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEdh
dmluIEJhcnJhY2xvdWdoLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDUzNGRkZjIuLjNkNzM5MTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKQEAgLTI1NzksOSArMjU3OSw3IEBACiAgICAgICAgICAgICAncGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmgnLAogICAgICAgICAg
ICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0hhcmZidXp6U2tpYS5jcHAnLAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0hhcmZidXp6U2tpYS5oJywKLSAgICAg
ICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JY29uQ2hyb21pdW1MaW51eC5jcHAn
LAotICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ljb25DaHJvbWl1bU1h
Yy5jcHAnLAotICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ljb25DaHJv
bWl1bVdpbi5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0lj
b25DaHJvbWl1bS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0ltYWdlQnVmZmVyRGF0YS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9JbWFnZUNocm9taXVtLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vSW1hZ2VDaHJvbWl1bU1hYy5tbScsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9JY29uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9JY29uLmgKaW5kZXggYzgzNjg1Zi4uMjc5NzEzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSWNvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ljb24uaApAQCAtNDIsNiArNDIsNyBAQCB0eXBlZGVmIHN0cnVjdCBfR2Rr
UGl4YnVmIEdka1BpeGJ1ZjsKICNlbGlmIFBMQVRGT1JNKEVGTCkKIHR5cGVkZWYgc3RydWN0IF9F
dmFzX09iamVjdCBFdmFzX09iamVjdDsKICNlbGlmIFBMQVRGT1JNKENIUk9NSVVNKQorI2luY2x1
ZGUgIkltYWdlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1JY29uLmgiCiAjZW5kaWYKIApAQCAtNjAs
NiArNjEsOCBAQCBwdWJsaWM6CiAKICNpZiBQTEFURk9STShXSU4pCiAgICAgc3RhdGljIFBhc3NS
ZWZQdHI8SWNvbj4gY3JlYXRlKEhJQ09OIGhJY29uKSB7IHJldHVybiBhZG9wdFJlZihuZXcgSWNv
bihoSWNvbikpOyB9CisjZWxpZiBQTEFURk9STShDSFJPTUlVTSkKKyAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxJY29uPiBjcmVhdGUoUGFzc1JlZlB0cjxQbGF0Zm9ybUljb24+IGljb24pIHsgcmV0dXJu
IGFkb3B0UmVmKG5ldyBJY29uKGljb24pKTsgfQogI2VuZGlmCiAKIHByaXZhdGU6CkBAIC03OSw4
ICs4Miw4IEBAIHByaXZhdGU6CiAgICAgSWNvbigpOwogICAgIEV2YXNfT2JqZWN0KiBtX2ljb247
CiAjZWxpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICBJY29uKGNvbnN0IFBsYXRmb3JtSWNvbiYp
OwotICAgIFBsYXRmb3JtSWNvbiBtX2ljb247CisgICAgSWNvbihQYXNzUmVmUHRyPFBsYXRmb3Jt
SWNvbj4pOworICAgIFJlZlB0cjxQbGF0Zm9ybUljb24+IG1faWNvbjsKICNlbmRpZgogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSWNv
bkNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0ljb25DaHJvbWl1bS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzk4
Y2MzYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0ljb25DaHJvbWl1bS5jcHAKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHly
aWdodCAoYykgMjAxMSwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0
aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAor
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiSWNvbi5oIgorCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0Lmgi
CisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitJ
Y29uOjpJY29uKFBhc3NSZWZQdHI8UGxhdGZvcm1JY29uPiBpY29uKQorICAgIDogbV9pY29uKGlj
b24pCit7Cit9CisKK0ljb246On5JY29uKCkKK3sKK30KKwordm9pZCBJY29uOjpwYWludChHcmFw
aGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEludFJlY3QmIHJlY3QpCit7CisgICAgaWYgKGNv
bnRleHQtPnBhaW50aW5nRGlzYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gQW4g
SWNvbiBkb2Vzbid0IGtub3cgdGhlIGNvbG9yIHNwYWNlIG9mIHRoZSBmaWxlIHVwbG9hZCBjb250
cm9sLgorICAgIC8vIFNvIHVzZSBDb2xvclNwYWNlRGV2aWNlUkdCLgorICAgIGNvbnRleHQtPmRy
YXdJbWFnZShtX2ljb24uZ2V0KCksIENvbG9yU3BhY2VEZXZpY2VSR0IsIHJlY3QpOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9JY29uQ2hyb21pdW1MaW51eC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JY29uQ2hyb21pdW1MaW51eC5jcHAKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE2ZjU1ZTIuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSWNvbkNocm9taXVtTGludXguY3BwCisr
KyAvZGV2L251bGwKQEAgLTEsNTQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAwOCwg
MjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqIAotICogICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAq
ICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICogCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAot
ICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIK
LSNpbmNsdWRlICJJY29uLmgiCi0KLSNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKLSNpbmNs
dWRlICJOb3RJbXBsZW1lbnRlZC5oIgotI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCi0KLW5h
bWVzcGFjZSBXZWJDb3JlIHsKLQotSWNvbjo6SWNvbihjb25zdCBQbGF0Zm9ybUljb24mIGljb24p
Ci0gICAgOiBtX2ljb24oaWNvbikKLXsKLX0KLQotSWNvbjo6fkljb24oKQotewotfQotCi12b2lk
IEljb246OnBhaW50KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEludFJlY3QmKQotewotICAgIG5v
dEltcGxlbWVudGVkKCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ljb25DaHJvbWl1bU1h
Yy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JY29uQ2hy
b21pdW1NYWMuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMjRhZmIyLi4wMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ljb25D
aHJvbWl1bU1hYy5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw1MCArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChjKSAyMDA4LCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqIAotICogICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3Ry
aWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICogCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0g
KiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRl
ICJjb25maWcuaCIKLSNpbmNsdWRlICJJY29uLmgiCi0KLSNpbmNsdWRlICJQYXNzUmVmUHRyLmgi
Ci0KLS8vIEZJWE1FOiBUaGVzZSBhcmUgdGVtcG9yYXJ5IHN0dWJzLCB3ZSBuZWVkIHJlYWwgaW1w
bGVtZW50YXRpb25zIHdoaWNoCi0vLyBtYXkgY29tZSBpbiB0aGUgZm9ybSBvZiBJY29uQ2hyb21p
dW0uY3BwLiAgVGhlIFdpbmRvd3MgQ2hyb21pdW0KLS8vIGltcGxlbWVudGF0aW9uIGlzIGN1cnJl
bnRseSBpbiBJY29uV2luLmNwcC4KLSAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotSWNvbjo6fklj
b24oKQotewotfQotCi12b2lkIEljb246OnBhaW50KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IElu
dFJlY3QmKQotewotfQotCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9JY29uQ2hyb21pdW1XaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSWNvbkNocm9taXVtV2luLmNwcApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZTk1OGQ0YS4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JY29uQ2hyb21pdW1XaW4uY3BwCisrKyAvZGV2L251
bGwKQEAgLTEsNjUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAwOSwgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIAotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKiAKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
Ci0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KLSAqIAotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiSWNvbi5oIgotCi0jaW5jbHVkZSA8d2luZG93cy5oPgotI2luY2x1ZGUgPHNoZWxsYXBpLmg+
Ci0KLSNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybUNvbnRl
eHRTa2lhLmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKLSNpbmNsdWRlICJTa2lhVXRp
bHMuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1JY29uOjpJY29uKGNvbnN0IFBsYXRmb3Jt
SWNvbiYgaWNvbikKLSAgICA6IG1faWNvbihpY29uKQotewotfQotCi1JY29uOjp+SWNvbigpCi17
Ci0gICAgaWYgKG1faWNvbikKLSAgICAgICAgRGVzdHJveUljb24obV9pY29uKTsKLX0KLQotdm9p
ZCBJY29uOjpwYWludChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEludFJlY3QmIHJl
Y3QpCi17Ci0gICAgaWYgKGNvbnRleHQtPnBhaW50aW5nRGlzYWJsZWQoKSkKLSAgICAgICAgcmV0
dXJuOwotCi0gICAgSERDIGhkYyA9IGNvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpLT5jYW52YXMo
KS0+YmVnaW5QbGF0Zm9ybVBhaW50KCk7Ci0gICAgRHJhd0ljb25FeChoZGMsIHJlY3QueCgpLCBy
ZWN0LnkoKSwgbV9pY29uLCByZWN0LndpZHRoKCksIHJlY3QuaGVpZ2h0KCksIDAsIDAsIERJX05P
Uk1BTCk7Ci0gICAgY29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCktPmNhbnZhcygpLT5lbmRQbGF0
Zm9ybVBhaW50KCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1BsYXRmb3JtSWNvbi5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vUGxhdGZvcm1JY29uLmgK
aW5kZXggNTE2MTNiOC4uYjQ4NTkxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vUGxhdGZvcm1JY29uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vUGxhdGZvcm1JY29uLmgKQEAgLTMxLDExICszMSwx
MSBAQAogI2lmbmRlZiBQbGF0Zm9ybUljb25faAogI2RlZmluZSBQbGF0Zm9ybUljb25faAogCi10
eXBlZGVmIHN0cnVjdCBISUNPTl9fKiBISUNPTjsKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCi10
eXBlZGVmIEhJQ09OIFBsYXRmb3JtSWNvbjsKK2NsYXNzIEltYWdlOworCit0eXBlZGVmIEltYWdl
IFBsYXRmb3JtSWNvbjsKIAogfSAgLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwppbmRleCAyYjM5MWM5Li5iY2Y1MDdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEwLTA1LTEyICBLZW50IFRhbXVyYSAgPHRrZW50QGNo
cm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBbQ2hyb21pdW1dIFN1cHBvcnQgaWNvbiBsb2FkaW5nIGZvciA8aW5wdXQgdHlwZT1maWxl
PgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg5ODIK
KworICAgICAgICBJbXBsZW1lbnQgQ2hyb21lQ2xpZW50SW1wbDo6Y2hvb3NlSWNvbkZvckZpbGVz
KCkuIEl0IGRlbGVnYXRlcyBsb2FkaW5nCisgICAgICAgIHRvIFdlYlZpZXdDbGllbnQ6OnF1ZXJ5
SWNvbkZvckZpbGVzKCksIGFuZCBhbiBpbXBsZW1lbnRhdGlvbiBvZgorICAgICAgICBXZWJWaWV3
Q2xpZW50OjpxdWVyeUljb25Gb3JGaWxlcygpIGxvYWRzIGFuIGljb24gYW5kIHBhc3NlcyBpdCB0
byBhCisgICAgICAgIEZpbGVDaG9vc2VyIHRocm91Z2ggV2ViSWNvbkxvYWRpbmdDb21wbGV0aW9u
LgorCisgICAgICAgICogV2ViS2l0Lmd5cDoKKyAgICAgICAgKiBwdWJsaWMvV2ViSWNvbkxvYWRp
bmdDb21wbGV0aW9uLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJJY29uTG9hZGluZ0Nv
bXBsZXRpb246On5XZWJJY29uTG9hZGluZ0NvbXBsZXRpb24pOgorICAgICAgICAqIHB1YmxpYy9X
ZWJWaWV3Q2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdDbGllbnQ6OnF1ZXJ5SWNv
bkZvckZpbGVzKToKKyAgICAgICAgKiBzcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6OmNob29zZUljb25Gb3JGaWxlcyk6CisgICAgICAg
ICogc3JjL1dlYkljb25Mb2FkaW5nQ29tcGxldGlvbkltcGwuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYktpdDo6V2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1wbDo6V2ViSWNvbkxvYWRpbmdDb21w
bGV0aW9uSW1wbCk6CisgICAgICAgIChXZWJLaXQ6OldlYkljb25Mb2FkaW5nQ29tcGxldGlvbklt
cGw6On5XZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
SWNvbkxvYWRpbmdDb21wbGV0aW9uSW1wbDo6ZGlkTG9hZEljb24pOgorICAgICAgICAqIHNyYy9X
ZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBsLmg6IEFkZGVkLgorCiAyMDExLTAxLTIwICBBZGFt
IEtsZWluICA8YWRhbWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFuZHJl
YXMgS2xpbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKaW5kZXggODVmNjcxZC4uZDA5ZWM3
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cApAQCAtMTg4LDYgKzE4OCw3IEBACiAgICAg
ICAgICAgICAgICAgJ3B1YmxpYy9XZWJIaXN0b3J5SXRlbS5oJywKICAgICAgICAgICAgICAgICAn
cHVibGljL1dlYkhUVFBCb2R5LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSFRUUExv
YWRJbmZvLmgnLAorICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSWNvbkxvYWRpbmdDb21wbGV0
aW9uLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSW1hZ2UuaCcsCiAgICAgICAgICAg
ICAgICAgJ3B1YmxpYy9XZWJJbWFnZURlY29kZXIuaCcsCiAgICAgICAgICAgICAgICAgJ3B1Ymxp
Yy9XZWJJREJDYWxsYmFja3MuaCcsCkBAIC00NjMsNiArNDY0LDggQEAKICAgICAgICAgICAgICAg
ICAnc3JjL1dlYkhpc3RvcnlJdGVtLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJIVFRQ
Qm9keS5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViSFRUUExvYWRJbmZvLmNwcCcsCisg
ICAgICAgICAgICAgICAgJ3NyYy9XZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBsLmNwcCcsCisg
ICAgICAgICAgICAgICAgJ3NyYy9XZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBsLmgnLAogICAg
ICAgICAgICAgICAgICdzcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHAnLAogICAgICAgICAgICAg
ICAgICdzcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5oJywKICAgICAgICAgICAgICAgICAnc3JjL1dl
YklEQkN1cnNvckltcGwuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYkljb25Mb2FkaW5nQ29tcGxldGlvbi5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uYjYyMjlhYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYkljb25Mb2FkaW5nQ29tcGxldGlvbi5oCkBAIC0wLDAgKzEsNTMg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAq
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIFdlYkljb25Mb2FkaW5nQ29tcGxldGlvbl9oCisjZGVmaW5lIFdlYkljb25Mb2Fk
aW5nQ29tcGxldGlvbl9oCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJEYXRhOwor
Y2xhc3MgV2ViU3RyaW5nOworCisvLyBHZXRzIGNhbGxlZCBiYWNrIHdoZW4gV2ViVmlld0NsaWVu
dCBmaW5pc2hlZCBsb2FkaW5nIGFuIGljb24uCitjbGFzcyBXZWJJY29uTG9hZGluZ0NvbXBsZXRp
b24geworcHVibGljOgorICAgIC8vIENhbGxlZCB3aXRoIHRoZSBsb2FkZWQgaWNvbiBkYXRhLCB3
aGljaCBpcyBhbiBpbWFnZSBkYXRhIHN0cmVhbQorICAgIC8vIFdlYkNvcmUgY2FuIGRlY29kZSwg
c3VjaCBhcyBQTkcuIEEgbnVsbCBXZWJEYXRhIG1lYW5zIGEgZmFpbHVyZSBvZgorICAgIC8vIGxv
YWRpbmcuIFRoZSBjYWxsYmFjayBpbnN0YW5jZSBpcyBkZXN0cm95ZWQgd2hlbiB0aGlzIG1ldGhv
ZCBpcyBjYWxsZWQuCisgICAgdmlydHVhbCB2b2lkIGRpZExvYWRJY29uKGNvbnN0IFdlYkRhdGEm
KSA9IDA7CisKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIH5XZWJJY29uTG9hZGluZ0NvbXBsZXRp
b24oKSB7IH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAppbmRleCAwOGZiOTQyLi5m
Y2M5NmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVu
dC5oCkBAIC01NCw2ICs1NCw3IEBAIGNsYXNzIFdlYkZpbGVDaG9vc2VyQ29tcGxldGlvbjsKIGNs
YXNzIFdlYkZyYW1lOwogY2xhc3MgV2ViR2VvbG9jYXRpb25DbGllbnQ7CiBjbGFzcyBXZWJHZW9s
b2NhdGlvblNlcnZpY2U7CitjbGFzcyBXZWJJY29uTG9hZGluZ0NvbXBsZXRpb247CiBjbGFzcyBX
ZWJJbWFnZTsKIGNsYXNzIFdlYklucHV0RWxlbWVudDsKIGNsYXNzIFdlYktleWJvYXJkRXZlbnQ7
CkBAIC0xMTcsNiArMTE4LDEwIEBAIHB1YmxpYzoKICAgICAvLyBDYWxsZWQgdG8gcmV0cmlldmUg
dGhlIHByb3ZpZGVyIG9mIGRlc2t0b3Agbm90aWZpY2F0aW9ucy4KICAgICB2aXJ0dWFsIFdlYk5v
dGlmaWNhdGlvblByZXNlbnRlciogbm90aWZpY2F0aW9uUHJlc2VudGVyKCkgeyByZXR1cm4gMDsg
fQogCisgICAgLy8gQ2FsbGVkIHRvIHJlcXVlc3QgYW4gaWNvbiBmb3IgdGhlIHNwZWNpZmllZCBm
aWxlbmFtZXMuCisgICAgLy8gVGhlIGljb24gaXMgc2hvd24gaW4gYSBmaWxlIHVwbG9hZCBjb250
cm9sLgorICAgIHZpcnR1YWwgYm9vbCBxdWVyeUljb25Gb3JGaWxlcyhjb25zdCBXZWJWZWN0b3I8
V2ViU3RyaW5nPiYgZmlsZW5hbWVzLCBXZWJJY29uTG9hZGluZ0NvbXBsZXRpb24qKSB7IHJldHVy
biBmYWxzZTsgfQorCiAKICAgICAvLyBOYXZpZ2F0aW9uYWwgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAppbmRleCBhNjNhNjI1Li5lNTZjNzUw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBs
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNw
cApAQCAtNzAsNiArNzAsNyBAQAogI2luY2x1ZGUgIldlYkZpbGVDaG9vc2VyQ29tcGxldGlvbklt
cGwuaCIKICNpbmNsdWRlICJXZWJGcmFtZUNsaWVudC5oIgogI2luY2x1ZGUgIldlYkZyYW1lSW1w
bC5oIgorI2luY2x1ZGUgIldlYkljb25Mb2FkaW5nQ29tcGxldGlvbkltcGwuaCIKICNpbmNsdWRl
ICJXZWJJbnB1dEV2ZW50LmgiCiAjaW5jbHVkZSAiV2ViS2l0LmgiCiAjaW5jbHVkZSAiV2ViTm9k
ZS5oIgpAQCAtNjY5LDkgKzY3MCwxMyBAQCB2b2lkIENocm9tZUNsaWVudEltcGw6OnJ1bk9wZW5Q
YW5lbChGcmFtZSogZnJhbWUsIFBhc3NSZWZQdHI8RmlsZUNob29zZXI+IGZpbGVDaAogICAgIGNo
b29zZXJDb21wbGV0aW9uLT5kaWRDaG9vc2VGaWxlKFdlYlZlY3RvcjxXZWJTdHJpbmc+KCkpOwog
fQogCi12b2lkIENocm9tZUNsaWVudEltcGw6OmNob29zZUljb25Gb3JGaWxlcyhjb25zdCBWZWN0
b3I8V1RGOjpTdHJpbmc+JiwgV2ViQ29yZTo6RmlsZUNob29zZXIqKQordm9pZCBDaHJvbWVDbGll
bnRJbXBsOjpjaG9vc2VJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYgZmls
ZW5hbWVzLCBXZWJDb3JlOjpGaWxlQ2hvb3NlciogZmlsZUNob29zZXIpCiB7Ci0gICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICBpZiAoIW1fd2ViVmlldy0+Y2xpZW50KCkpCisgICAgICAgIHJldHVy
bjsKKyAgICBXZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBsKiBpY29uQ29tcGxldGlvbiA9IG5l
dyBXZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBsKGZpbGVDaG9vc2VyKTsKKyAgICBpZiAoIW1f
d2ViVmlldy0+Y2xpZW50KCktPnF1ZXJ5SWNvbkZvckZpbGVzKGZpbGVuYW1lcywgaWNvbkNvbXBs
ZXRpb24pKQorICAgICAgICBpY29uQ29tcGxldGlvbi0+ZGlkTG9hZEljb24oV2ViRGF0YSgpKTsK
IH0KIAogdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpwb3B1cE9wZW5lZChQb3B1cENvbnRhaW5lciog
cG9wdXBDb250YWluZXIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYkljb25Mb2FkaW5nQ29tcGxldGlvbkltcGwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmE2MzE5YWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBsLmNwcApAQCAtMCwwICsx
LDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6Cisg
KgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAq
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
CisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkljb25Mb2FkaW5nQ29tcGxl
dGlvbkltcGwuaCIKKworI2luY2x1ZGUgIkJpdG1hcEltYWdlLmgiCisjaW5jbHVkZSAiSWNvbi5o
IgorI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2Vi
SWNvbkxvYWRpbmdDb21wbGV0aW9uSW1wbDo6V2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1wbChX
ZWJDb3JlOjpGaWxlQ2hvb3NlciogY2hvb3NlcikKKyAgICA6IG1fZmlsZUNob29zZXIoY2hvb3Nl
cikKK3sKK30KKworV2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uSW1wbDo6fldlYkljb25Mb2FkaW5n
Q29tcGxldGlvbkltcGwoKQoreworfQorCit2b2lkIFdlYkljb25Mb2FkaW5nQ29tcGxldGlvbklt
cGw6OmRpZExvYWRJY29uKGNvbnN0IFdlYkRhdGEmIGljb25EYXRhKQoreworICAgIGlmICghaWNv
bkRhdGEuaXNFbXB0eSgpKSB7CisgICAgICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZT4gaW1hZ2Ug
PSBXZWJDb3JlOjpCaXRtYXBJbWFnZTo6Y3JlYXRlKCk7CisgICAgICAgIGltYWdlLT5zZXREYXRh
KGljb25EYXRhLCB0cnVlKTsKKyAgICAgICAgbV9maWxlQ2hvb3Nlci0+aWNvbkxvYWRlZChXZWJD
b3JlOjpJY29uOjpjcmVhdGUoaW1hZ2UpKTsKKyAgICB9CisgICAgLy8gVGhpcyBvYmplY3QgaXMg
bm8gbG9uZ2VyIG5lZWRlZC4KKyAgICBkZWxldGUgdGhpczsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJY29uTG9h
ZGluZ0NvbXBsZXRpb25JbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJY29u
TG9hZGluZ0NvbXBsZXRpb25JbXBsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uYTIxMmRkMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYkljb25Mb2FkaW5nQ29tcGxldGlvbkltcGwuaApAQCAtMCwwICsxLDU2IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3Ry
aWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBX
ZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBsX2gKKyNkZWZpbmUgV2ViSWNvbkxvYWRpbmdDb21w
bGV0aW9uSW1wbF9oCisKKyNpbmNsdWRlICJGaWxlQ2hvb3Nlci5oIgorI2luY2x1ZGUgIldlYkRh
dGEuaCIKKyNpbmNsdWRlICJXZWJJY29uTG9hZGluZ0NvbXBsZXRpb24uaCIKKyNpbmNsdWRlIDx3
dGYvUGFzc1JlZlB0ci5oPgorCit1c2luZyBXZWJLaXQ6OldlYkljb25Mb2FkaW5nQ29tcGxldGlv
bjsKK3VzaW5nIFdlYktpdDo6V2ViRGF0YTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNz
IFdlYkljb25Mb2FkaW5nQ29tcGxldGlvbkltcGwgOiBwdWJsaWMgV2ViSWNvbkxvYWRpbmdDb21w
bGV0aW9uIHsKK3B1YmxpYzoKKyAgICBXZWJJY29uTG9hZGluZ0NvbXBsZXRpb25JbXBsKFdlYkNv
cmU6OkZpbGVDaG9vc2VyKik7CisgICAgfldlYkljb25Mb2FkaW5nQ29tcGxldGlvbkltcGwoKTsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlkTG9hZEljb24oY29uc3QgV2ViRGF0YSYpOworCitwcml2YXRl
OgorICAgIFJlZlB0cjxXZWJDb3JlOjpGaWxlQ2hvb3Nlcj4gbV9maWxlQ2hvb3NlcjsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>